/* certreq.h - Internal definitions for pkcs-10 objects * Copyright (C) 2002, 2005, 2012 g10 Code GmbH * * This file is part of KSBA. * * KSBA is free software; you can redistribute it and/or modify * it under the terms of either * * - the GNU Lesser General Public License as published by the Free * Software Foundation; either version 3 of the License, or (at * your option) any later version. * * or * * - the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at * your option) any later version. * * or both in parallel, as here. * * KSBA is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public * License for more details. * * You should have received a copies of the GNU General Public License * and the GNU Lesser General Public License along with this program; * if not, see . */ #ifndef CERTREQ_H #define CERTREQ_H 1 #include "ksba.h" #ifndef HAVE_TYPEDEFD_ASNNODE typedef struct asn_node_struct *AsnNode; /* FIXME: should not go here */ #define HAVE_TYPEDEFD_ASNNODE #endif struct extn_list_s { struct extn_list_s *next; const char *oid; int critical; int derlen; unsigned char der[1]; }; /* Object to collect information for building a GeneralNames. */ struct general_names_s { struct general_names_s *next; int tag; /* The GeneralName CHOICE. Only certain values are supported. This is not strictly required because DATA below has already been prefixed with the DER encoded tag. */ size_t datalen; /* Length of the data. */ char data[1]; /* The actual data: encoded tag, llength and value. */ }; struct ksba_certreq_s { gpg_error_t last_error; ksba_writer_t writer; void (*hash_fnc)(void *, const void *, size_t); void *hash_fnc_arg; int any_build_done; struct { struct { char *der; /* Malloced serialno; if this is set we want to build a real X.509 certificate. */ size_t derlen; } serial; struct { char *der; size_t derlen; } issuer; ksba_isotime_t not_before; ksba_isotime_t not_after; struct { unsigned char *der; size_t derlen; } siginfo; } x509; struct { char *der; size_t derlen; } subject; struct { unsigned char *der; size_t derlen; } key; struct general_names_s *subject_alt_names; struct extn_list_s *extn_list; struct { unsigned char *der; size_t derlen; } cri; struct { char *algo; unsigned char *value; size_t valuelen; } sig_val; }; #endif /*CERTREQ_H*/