epoc32/include/stdapis/openssl/x509v3.h
branchSymbian2
changeset 2 2fe1408b6811
parent 0 061f57f2323e
     1.1 --- a/epoc32/include/stdapis/openssl/x509v3.h	Tue Nov 24 13:55:44 2009 +0000
     1.2 +++ b/epoc32/include/stdapis/openssl/x509v3.h	Tue Mar 16 16:12:26 2010 +0000
     1.3 @@ -1,1 +1,782 @@
     1.4 -x509v3.h
     1.5 +/* x509v3.h */
     1.6 +/* Written by Dr Stephen N Henson (shenson@bigfoot.com) for the OpenSSL
     1.7 + * project 1999.
     1.8 + */
     1.9 +/* ====================================================================
    1.10 + * Copyright (c) 1999-2004 The OpenSSL Project.  All rights reserved.
    1.11 + *
    1.12 + * Redistribution and use in source and binary forms, with or without
    1.13 + * modification, are permitted provided that the following conditions
    1.14 + * are met:
    1.15 + *
    1.16 + * 1. Redistributions of source code must retain the above copyright
    1.17 + *    notice, this list of conditions and the following disclaimer. 
    1.18 + *
    1.19 + * 2. Redistributions in binary form must reproduce the above copyright
    1.20 + *    notice, this list of conditions and the following disclaimer in
    1.21 + *    the documentation and/or other materials provided with the
    1.22 + *    distribution.
    1.23 + *
    1.24 + * 3. All advertising materials mentioning features or use of this
    1.25 + *    software must display the following acknowledgment:
    1.26 + *    "This product includes software developed by the OpenSSL Project
    1.27 + *    for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
    1.28 + *
    1.29 + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
    1.30 + *    endorse or promote products derived from this software without
    1.31 + *    prior written permission. For written permission, please contact
    1.32 + *    licensing@OpenSSL.org.
    1.33 + *
    1.34 + * 5. Products derived from this software may not be called "OpenSSL"
    1.35 + *    nor may "OpenSSL" appear in their names without prior written
    1.36 + *    permission of the OpenSSL Project.
    1.37 + *
    1.38 + * 6. Redistributions of any form whatsoever must retain the following
    1.39 + *    acknowledgment:
    1.40 + *    "This product includes software developed by the OpenSSL Project
    1.41 + *    for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
    1.42 + *
    1.43 + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
    1.44 + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    1.45 + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
    1.46 + * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
    1.47 + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
    1.48 + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
    1.49 + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    1.50 + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
    1.51 + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
    1.52 + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
    1.53 + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
    1.54 + * OF THE POSSIBILITY OF SUCH DAMAGE.
    1.55 + * ====================================================================
    1.56 + *
    1.57 + * This product includes cryptographic software written by Eric Young
    1.58 + * (eay@cryptsoft.com).  This product includes software written by Tim
    1.59 + * Hudson (tjh@cryptsoft.com).
    1.60 + *
    1.61 + */
    1.62 + /*
    1.63 + © Portions copyright (c) 2006 Nokia Corporation.  All rights reserved.
    1.64 + */
    1.65 +
    1.66 +#ifndef HEADER_X509V3_H
    1.67 +#define HEADER_X509V3_H
    1.68 +
    1.69 +#if (defined(__SYMBIAN32__) && !defined(SYMBIAN))
    1.70 +#define SYMBIAN
    1.71 +#endif
    1.72 +
    1.73 +#ifdef SYMBIAN
    1.74 +#include <e32def.h>
    1.75 +#endif
    1.76 +#include <openssl/bio.h>
    1.77 +#include <openssl/x509.h>
    1.78 +#include <openssl/conf.h>
    1.79 +
    1.80 +#ifdef __cplusplus
    1.81 +extern "C" {
    1.82 +#endif
    1.83 +
    1.84 +/* Forward reference */
    1.85 +struct v3_ext_method;
    1.86 +struct v3_ext_ctx;
    1.87 +
    1.88 +/* Useful typedefs */
    1.89 +
    1.90 +typedef void * (*X509V3_EXT_NEW)(void);
    1.91 +typedef void (*X509V3_EXT_FREE)(void *);
    1.92 +typedef void * (*X509V3_EXT_D2I)(void *, const unsigned char ** , long);
    1.93 +typedef int (*X509V3_EXT_I2D)(void *, unsigned char **);
    1.94 +typedef STACK_OF(CONF_VALUE) * (*X509V3_EXT_I2V)(struct v3_ext_method *method, void *ext, STACK_OF(CONF_VALUE) *extlist);
    1.95 +typedef void * (*X509V3_EXT_V2I)(struct v3_ext_method *method, struct v3_ext_ctx *ctx, STACK_OF(CONF_VALUE) *values);
    1.96 +typedef char * (*X509V3_EXT_I2S)(struct v3_ext_method *method, void *ext);
    1.97 +typedef void * (*X509V3_EXT_S2I)(struct v3_ext_method *method, struct v3_ext_ctx *ctx, const char *str);
    1.98 +typedef int (*X509V3_EXT_I2R)(struct v3_ext_method *method, void *ext, BIO *out, int indent);
    1.99 +typedef void * (*X509V3_EXT_R2I)(struct v3_ext_method *method, struct v3_ext_ctx *ctx, const char *str);
   1.100 +
   1.101 +/* V3 extension structure */
   1.102 +
   1.103 +struct v3_ext_method {
   1.104 +int ext_nid;
   1.105 +int ext_flags;
   1.106 +/* If this is set the following four fields are ignored */
   1.107 +ASN1_ITEM_EXP *it;
   1.108 +/* Old style ASN1 calls */
   1.109 +X509V3_EXT_NEW ext_new;
   1.110 +X509V3_EXT_FREE ext_free;
   1.111 +X509V3_EXT_D2I d2i;
   1.112 +X509V3_EXT_I2D i2d;
   1.113 +
   1.114 +/* The following pair is used for string extensions */
   1.115 +X509V3_EXT_I2S i2s;
   1.116 +X509V3_EXT_S2I s2i;
   1.117 +
   1.118 +/* The following pair is used for multi-valued extensions */
   1.119 +X509V3_EXT_I2V i2v;
   1.120 +X509V3_EXT_V2I v2i;
   1.121 +
   1.122 +/* The following are used for raw extensions */
   1.123 +X509V3_EXT_I2R i2r;
   1.124 +X509V3_EXT_R2I r2i;
   1.125 +
   1.126 +void *usr_data;	/* Any extension specific data */
   1.127 +};
   1.128 +
   1.129 +typedef struct X509V3_CONF_METHOD_st {
   1.130 +char * (*get_string)(void *db, char *section, char *value);
   1.131 +STACK_OF(CONF_VALUE) * (*get_section)(void *db, char *section);
   1.132 +void (*free_string)(void *db, char * string);
   1.133 +void (*free_section)(void *db, STACK_OF(CONF_VALUE) *section);
   1.134 +} X509V3_CONF_METHOD;
   1.135 +
   1.136 +/* Context specific info */
   1.137 +struct v3_ext_ctx {
   1.138 +#define CTX_TEST 0x1
   1.139 +int flags;
   1.140 +X509 *issuer_cert;
   1.141 +X509 *subject_cert;
   1.142 +X509_REQ *subject_req;
   1.143 +X509_CRL *crl;
   1.144 +X509V3_CONF_METHOD *db_meth;
   1.145 +void *db;
   1.146 +/* Maybe more here */
   1.147 +};
   1.148 +
   1.149 +typedef struct v3_ext_method X509V3_EXT_METHOD;
   1.150 +
   1.151 +DECLARE_STACK_OF(X509V3_EXT_METHOD)
   1.152 +
   1.153 +/* ext_flags values */
   1.154 +#define X509V3_EXT_DYNAMIC	0x1
   1.155 +#define X509V3_EXT_CTX_DEP	0x2
   1.156 +#define X509V3_EXT_MULTILINE	0x4
   1.157 +
   1.158 +typedef BIT_STRING_BITNAME ENUMERATED_NAMES;
   1.159 +
   1.160 +typedef struct BASIC_CONSTRAINTS_st {
   1.161 +int ca;
   1.162 +ASN1_INTEGER *pathlen;
   1.163 +} BASIC_CONSTRAINTS;
   1.164 +
   1.165 +
   1.166 +typedef struct PKEY_USAGE_PERIOD_st {
   1.167 +ASN1_GENERALIZEDTIME *notBefore;
   1.168 +ASN1_GENERALIZEDTIME *notAfter;
   1.169 +} PKEY_USAGE_PERIOD;
   1.170 +
   1.171 +typedef struct otherName_st {
   1.172 +ASN1_OBJECT *type_id;
   1.173 +ASN1_TYPE *value;
   1.174 +} OTHERNAME;
   1.175 +
   1.176 +typedef struct EDIPartyName_st {
   1.177 +	ASN1_STRING *nameAssigner;
   1.178 +	ASN1_STRING *partyName;
   1.179 +} EDIPARTYNAME;
   1.180 +
   1.181 +typedef struct GENERAL_NAME_st {
   1.182 +
   1.183 +#define GEN_OTHERNAME	0
   1.184 +#define GEN_EMAIL	1
   1.185 +#define GEN_DNS		2
   1.186 +#define GEN_X400	3
   1.187 +#define GEN_DIRNAME	4
   1.188 +#define GEN_EDIPARTY	5
   1.189 +#define GEN_URI		6
   1.190 +#define GEN_IPADD	7
   1.191 +#define GEN_RID		8
   1.192 +
   1.193 +int type;
   1.194 +union {
   1.195 +	char *ptr;
   1.196 +	OTHERNAME *otherName; /* otherName */
   1.197 +	ASN1_IA5STRING *rfc822Name;
   1.198 +	ASN1_IA5STRING *dNSName;
   1.199 +	ASN1_TYPE *x400Address;
   1.200 +	X509_NAME *directoryName;
   1.201 +	EDIPARTYNAME *ediPartyName;
   1.202 +	ASN1_IA5STRING *uniformResourceIdentifier;
   1.203 +	ASN1_OCTET_STRING *iPAddress;
   1.204 +	ASN1_OBJECT *registeredID;
   1.205 +
   1.206 +	/* Old names */
   1.207 +	ASN1_OCTET_STRING *ip; /* iPAddress */
   1.208 +	X509_NAME *dirn;		/* dirn */
   1.209 +	ASN1_IA5STRING *ia5;/* rfc822Name, dNSName, uniformResourceIdentifier */
   1.210 +	ASN1_OBJECT *rid; /* registeredID */
   1.211 +	ASN1_TYPE *other; /* x400Address */
   1.212 +} d;
   1.213 +} GENERAL_NAME;
   1.214 +
   1.215 +typedef STACK_OF(GENERAL_NAME) GENERAL_NAMES;
   1.216 +
   1.217 +typedef struct ACCESS_DESCRIPTION_st {
   1.218 +	ASN1_OBJECT *method;
   1.219 +	GENERAL_NAME *location;
   1.220 +} ACCESS_DESCRIPTION;
   1.221 +
   1.222 +typedef STACK_OF(ACCESS_DESCRIPTION) AUTHORITY_INFO_ACCESS;
   1.223 +
   1.224 +typedef STACK_OF(ASN1_OBJECT) EXTENDED_KEY_USAGE;
   1.225 +
   1.226 +DECLARE_STACK_OF(GENERAL_NAME)
   1.227 +DECLARE_ASN1_SET_OF(GENERAL_NAME)
   1.228 +
   1.229 +DECLARE_STACK_OF(ACCESS_DESCRIPTION)
   1.230 +DECLARE_ASN1_SET_OF(ACCESS_DESCRIPTION)
   1.231 +
   1.232 +typedef struct DIST_POINT_NAME_st {
   1.233 +int type;
   1.234 +union {
   1.235 +	GENERAL_NAMES *fullname;
   1.236 +	STACK_OF(X509_NAME_ENTRY) *relativename;
   1.237 +} name;
   1.238 +} DIST_POINT_NAME;
   1.239 +
   1.240 +typedef struct DIST_POINT_st {
   1.241 +DIST_POINT_NAME	*distpoint;
   1.242 +ASN1_BIT_STRING *reasons;
   1.243 +GENERAL_NAMES *CRLissuer;
   1.244 +} DIST_POINT;
   1.245 +
   1.246 +typedef STACK_OF(DIST_POINT) CRL_DIST_POINTS;
   1.247 +
   1.248 +DECLARE_STACK_OF(DIST_POINT)
   1.249 +DECLARE_ASN1_SET_OF(DIST_POINT)
   1.250 +
   1.251 +typedef struct AUTHORITY_KEYID_st {
   1.252 +ASN1_OCTET_STRING *keyid;
   1.253 +GENERAL_NAMES *issuer;
   1.254 +ASN1_INTEGER *serial;
   1.255 +} AUTHORITY_KEYID;
   1.256 +
   1.257 +/* Strong extranet structures */
   1.258 +
   1.259 +typedef struct SXNET_ID_st {
   1.260 +	ASN1_INTEGER *zone;
   1.261 +	ASN1_OCTET_STRING *user;
   1.262 +} SXNETID;
   1.263 +
   1.264 +DECLARE_STACK_OF(SXNETID)
   1.265 +DECLARE_ASN1_SET_OF(SXNETID)
   1.266 +
   1.267 +typedef struct SXNET_st {
   1.268 +	ASN1_INTEGER *version;
   1.269 +	STACK_OF(SXNETID) *ids;
   1.270 +} SXNET;
   1.271 +
   1.272 +typedef struct NOTICEREF_st {
   1.273 +	ASN1_STRING *organization;
   1.274 +	STACK_OF(ASN1_INTEGER) *noticenos;
   1.275 +} NOTICEREF;
   1.276 +
   1.277 +typedef struct USERNOTICE_st {
   1.278 +	NOTICEREF *noticeref;
   1.279 +	ASN1_STRING *exptext;
   1.280 +} USERNOTICE;
   1.281 +
   1.282 +typedef struct POLICYQUALINFO_st {
   1.283 +	ASN1_OBJECT *pqualid;
   1.284 +	union {
   1.285 +		ASN1_IA5STRING *cpsuri;
   1.286 +		USERNOTICE *usernotice;
   1.287 +		ASN1_TYPE *other;
   1.288 +	} d;
   1.289 +} POLICYQUALINFO;
   1.290 +
   1.291 +DECLARE_STACK_OF(POLICYQUALINFO)
   1.292 +DECLARE_ASN1_SET_OF(POLICYQUALINFO)
   1.293 +
   1.294 +typedef struct POLICYINFO_st {
   1.295 +	ASN1_OBJECT *policyid;
   1.296 +	STACK_OF(POLICYQUALINFO) *qualifiers;
   1.297 +} POLICYINFO;
   1.298 +
   1.299 +typedef STACK_OF(POLICYINFO) CERTIFICATEPOLICIES;
   1.300 +
   1.301 +DECLARE_STACK_OF(POLICYINFO)
   1.302 +DECLARE_ASN1_SET_OF(POLICYINFO)
   1.303 +
   1.304 +typedef struct POLICY_MAPPING_st {
   1.305 +	ASN1_OBJECT *issuerDomainPolicy;
   1.306 +	ASN1_OBJECT *subjectDomainPolicy;
   1.307 +} POLICY_MAPPING;
   1.308 +
   1.309 +DECLARE_STACK_OF(POLICY_MAPPING)
   1.310 +
   1.311 +typedef STACK_OF(POLICY_MAPPING) POLICY_MAPPINGS;
   1.312 +
   1.313 +typedef struct GENERAL_SUBTREE_st {
   1.314 +	GENERAL_NAME *base;
   1.315 +	ASN1_INTEGER *minimum;
   1.316 +	ASN1_INTEGER *maximum;
   1.317 +} GENERAL_SUBTREE;
   1.318 +
   1.319 +DECLARE_STACK_OF(GENERAL_SUBTREE)
   1.320 +
   1.321 +typedef struct NAME_CONSTRAINTS_st {
   1.322 +	STACK_OF(GENERAL_SUBTREE) *permittedSubtrees;
   1.323 +	STACK_OF(GENERAL_SUBTREE) *excludedSubtrees;
   1.324 +} NAME_CONSTRAINTS;
   1.325 +
   1.326 +typedef struct POLICY_CONSTRAINTS_st {
   1.327 +	ASN1_INTEGER *requireExplicitPolicy;
   1.328 +	ASN1_INTEGER *inhibitPolicyMapping;
   1.329 +} POLICY_CONSTRAINTS;
   1.330 +
   1.331 +/* Proxy certificate structures, see RFC 3820 */
   1.332 +typedef struct PROXY_POLICY_st
   1.333 +	{
   1.334 +	ASN1_OBJECT *policyLanguage;
   1.335 +	ASN1_OCTET_STRING *policy;
   1.336 +	} PROXY_POLICY;
   1.337 +
   1.338 +typedef struct PROXY_CERT_INFO_EXTENSION_st
   1.339 +	{
   1.340 +	ASN1_INTEGER *pcPathLengthConstraint;
   1.341 +	PROXY_POLICY *proxyPolicy;
   1.342 +	} PROXY_CERT_INFO_EXTENSION;
   1.343 +
   1.344 +DECLARE_ASN1_FUNCTIONS(PROXY_POLICY)
   1.345 +DECLARE_ASN1_FUNCTIONS(PROXY_CERT_INFO_EXTENSION)
   1.346 +
   1.347 +
   1.348 +#define X509V3_conf_err(val) ERR_add_error_data(6, "section:", val->section, \
   1.349 +",name:", val->name, ",value:", val->value);
   1.350 +
   1.351 +#define X509V3_set_ctx_test(ctx) \
   1.352 +			X509V3_set_ctx(ctx, NULL, NULL, NULL, NULL, CTX_TEST)
   1.353 +#define X509V3_set_ctx_nodb(ctx) (ctx)->db = NULL;
   1.354 +
   1.355 +#define EXT_BITSTRING(nid, table) { nid, 0, ASN1_ITEM_ref(ASN1_BIT_STRING), \
   1.356 +			0,0,0,0, \
   1.357 +			0,0, \
   1.358 +			(X509V3_EXT_I2V)i2v_ASN1_BIT_STRING, \
   1.359 +			(X509V3_EXT_V2I)v2i_ASN1_BIT_STRING, \
   1.360 +			NULL, NULL, \
   1.361 +			table}
   1.362 +
   1.363 +#define EXT_IA5STRING(nid) { nid, 0, ASN1_ITEM_ref(ASN1_IA5STRING), \
   1.364 +			0,0,0,0, \
   1.365 +			(X509V3_EXT_I2S)i2s_ASN1_IA5STRING, \
   1.366 +			(X509V3_EXT_S2I)s2i_ASN1_IA5STRING, \
   1.367 +			0,0,0,0, \
   1.368 +			NULL}
   1.369 +
   1.370 +#define EXT_END { -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
   1.371 +
   1.372 +
   1.373 +/* X509_PURPOSE stuff */
   1.374 +
   1.375 +#define EXFLAG_BCONS		0x1
   1.376 +#define EXFLAG_KUSAGE		0x2
   1.377 +#define EXFLAG_XKUSAGE		0x4
   1.378 +#define EXFLAG_NSCERT		0x8
   1.379 +
   1.380 +#define EXFLAG_CA		0x10
   1.381 +#define EXFLAG_SS		0x20
   1.382 +#define EXFLAG_V1		0x40
   1.383 +#define EXFLAG_INVALID		0x80
   1.384 +#define EXFLAG_SET		0x100
   1.385 +#define EXFLAG_CRITICAL		0x200
   1.386 +#define EXFLAG_PROXY		0x400
   1.387 +
   1.388 +#define EXFLAG_INVALID_POLICY	0x400
   1.389 +
   1.390 +#define KU_DIGITAL_SIGNATURE	0x0080
   1.391 +#define KU_NON_REPUDIATION	0x0040
   1.392 +#define KU_KEY_ENCIPHERMENT	0x0020
   1.393 +#define KU_DATA_ENCIPHERMENT	0x0010
   1.394 +#define KU_KEY_AGREEMENT	0x0008
   1.395 +#define KU_KEY_CERT_SIGN	0x0004
   1.396 +#define KU_CRL_SIGN		0x0002
   1.397 +#define KU_ENCIPHER_ONLY	0x0001
   1.398 +#define KU_DECIPHER_ONLY	0x8000
   1.399 +
   1.400 +#define NS_SSL_CLIENT		0x80
   1.401 +#define NS_SSL_SERVER		0x40
   1.402 +#define NS_SMIME		0x20
   1.403 +#define NS_OBJSIGN		0x10
   1.404 +#define NS_SSL_CA		0x04
   1.405 +#define NS_SMIME_CA		0x02
   1.406 +#define NS_OBJSIGN_CA		0x01
   1.407 +#define NS_ANY_CA		(NS_SSL_CA|NS_SMIME_CA|NS_OBJSIGN_CA)
   1.408 +
   1.409 +#define XKU_SSL_SERVER		0x1	
   1.410 +#define XKU_SSL_CLIENT		0x2
   1.411 +#define XKU_SMIME		0x4
   1.412 +#define XKU_CODE_SIGN		0x8
   1.413 +#define XKU_SGC			0x10
   1.414 +#define XKU_OCSP_SIGN		0x20
   1.415 +#define XKU_TIMESTAMP		0x40
   1.416 +#define XKU_DVCS		0x80
   1.417 +
   1.418 +#define X509_PURPOSE_DYNAMIC	0x1
   1.419 +#define X509_PURPOSE_DYNAMIC_NAME	0x2
   1.420 +
   1.421 +typedef struct x509_purpose_st {
   1.422 +	int purpose;
   1.423 +	int trust;		/* Default trust ID */
   1.424 +	int flags;
   1.425 +	int (*check_purpose)(const struct x509_purpose_st *,
   1.426 +				const X509 *, int);
   1.427 +	char *name;
   1.428 +	char *sname;
   1.429 +	void *usr_data;
   1.430 +} X509_PURPOSE;
   1.431 +
   1.432 +#define X509_PURPOSE_SSL_CLIENT		1
   1.433 +#define X509_PURPOSE_SSL_SERVER		2
   1.434 +#define X509_PURPOSE_NS_SSL_SERVER	3
   1.435 +#define X509_PURPOSE_SMIME_SIGN		4
   1.436 +#define X509_PURPOSE_SMIME_ENCRYPT	5
   1.437 +#define X509_PURPOSE_CRL_SIGN		6
   1.438 +#define X509_PURPOSE_ANY		7
   1.439 +#define X509_PURPOSE_OCSP_HELPER	8
   1.440 +
   1.441 +#define X509_PURPOSE_MIN		1
   1.442 +#define X509_PURPOSE_MAX		8
   1.443 +
   1.444 +/* Flags for X509V3_EXT_print() */
   1.445 +
   1.446 +#define X509V3_EXT_UNKNOWN_MASK		(0xfL << 16)
   1.447 +/* Return error for unknown extensions */
   1.448 +#define X509V3_EXT_DEFAULT		0
   1.449 +/* Print error for unknown extensions */
   1.450 +#define X509V3_EXT_ERROR_UNKNOWN	(1L << 16)
   1.451 +/* ASN1 parse unknown extensions */
   1.452 +#define X509V3_EXT_PARSE_UNKNOWN	(2L << 16)
   1.453 +/* BIO_dump unknown extensions */
   1.454 +#define X509V3_EXT_DUMP_UNKNOWN		(3L << 16)
   1.455 +
   1.456 +/* Flags for X509V3_add1_i2d */
   1.457 +
   1.458 +#define X509V3_ADD_OP_MASK		0xfL
   1.459 +#define X509V3_ADD_DEFAULT		0L
   1.460 +#define X509V3_ADD_APPEND		1L
   1.461 +#define X509V3_ADD_REPLACE		2L
   1.462 +#define X509V3_ADD_REPLACE_EXISTING	3L
   1.463 +#define X509V3_ADD_KEEP_EXISTING	4L
   1.464 +#define X509V3_ADD_DELETE		5L
   1.465 +#define X509V3_ADD_SILENT		0x10
   1.466 +
   1.467 +DECLARE_STACK_OF(X509_PURPOSE)
   1.468 +
   1.469 +DECLARE_ASN1_FUNCTIONS(BASIC_CONSTRAINTS)
   1.470 +
   1.471 +DECLARE_ASN1_FUNCTIONS(SXNET)
   1.472 +DECLARE_ASN1_FUNCTIONS(SXNETID)
   1.473 +
   1.474 +IMPORT_C int SXNET_add_id_asc(SXNET **psx, char *zone, char *user, int userlen); 
   1.475 +IMPORT_C int SXNET_add_id_ulong(SXNET **psx, unsigned long lzone, char *user, int userlen); 
   1.476 +IMPORT_C int SXNET_add_id_INTEGER(SXNET **psx, ASN1_INTEGER *izone, char *user, int userlen); 
   1.477 +
   1.478 +IMPORT_C ASN1_OCTET_STRING *SXNET_get_id_asc(SXNET *sx, char *zone);
   1.479 +IMPORT_C ASN1_OCTET_STRING *SXNET_get_id_ulong(SXNET *sx, unsigned long lzone);
   1.480 +IMPORT_C ASN1_OCTET_STRING *SXNET_get_id_INTEGER(SXNET *sx, ASN1_INTEGER *zone);
   1.481 +
   1.482 +DECLARE_ASN1_FUNCTIONS(AUTHORITY_KEYID)
   1.483 +
   1.484 +DECLARE_ASN1_FUNCTIONS(PKEY_USAGE_PERIOD)
   1.485 +
   1.486 +DECLARE_ASN1_FUNCTIONS(GENERAL_NAME)
   1.487 +
   1.488 +
   1.489 +IMPORT_C ASN1_BIT_STRING *v2i_ASN1_BIT_STRING(X509V3_EXT_METHOD *method,
   1.490 +				X509V3_CTX *ctx, STACK_OF(CONF_VALUE) *nval);
   1.491 +IMPORT_C STACK_OF(CONF_VALUE) *i2v_ASN1_BIT_STRING(X509V3_EXT_METHOD *method,
   1.492 +				ASN1_BIT_STRING *bits,
   1.493 +				STACK_OF(CONF_VALUE) *extlist);
   1.494 +
   1.495 +IMPORT_C STACK_OF(CONF_VALUE) *i2v_GENERAL_NAME(X509V3_EXT_METHOD *method, GENERAL_NAME *gen, STACK_OF(CONF_VALUE) *ret);
   1.496 +IMPORT_C int GENERAL_NAME_print(BIO *out, GENERAL_NAME *gen);
   1.497 +
   1.498 +DECLARE_ASN1_FUNCTIONS(GENERAL_NAMES)
   1.499 +
   1.500 +IMPORT_C STACK_OF(CONF_VALUE) *i2v_GENERAL_NAMES(X509V3_EXT_METHOD *method,
   1.501 +		GENERAL_NAMES *gen, STACK_OF(CONF_VALUE) *extlist);
   1.502 +GENERAL_NAMES *v2i_GENERAL_NAMES(X509V3_EXT_METHOD *method,
   1.503 +				X509V3_CTX *ctx, STACK_OF(CONF_VALUE) *nval);
   1.504 +
   1.505 +DECLARE_ASN1_FUNCTIONS(OTHERNAME)
   1.506 +DECLARE_ASN1_FUNCTIONS(EDIPARTYNAME)
   1.507 +
   1.508 +IMPORT_C char *i2s_ASN1_OCTET_STRING(X509V3_EXT_METHOD *method, ASN1_OCTET_STRING *ia5);
   1.509 +ASN1_OCTET_STRING *s2i_ASN1_OCTET_STRING(X509V3_EXT_METHOD *method, X509V3_CTX *ctx, char *str);
   1.510 +
   1.511 +DECLARE_ASN1_FUNCTIONS(EXTENDED_KEY_USAGE)
   1.512 +IMPORT_C int i2a_ACCESS_DESCRIPTION(BIO *bp, ACCESS_DESCRIPTION* a);
   1.513 +
   1.514 +DECLARE_ASN1_FUNCTIONS(CERTIFICATEPOLICIES)
   1.515 +DECLARE_ASN1_FUNCTIONS(POLICYINFO)
   1.516 +DECLARE_ASN1_FUNCTIONS(POLICYQUALINFO)
   1.517 +DECLARE_ASN1_FUNCTIONS(USERNOTICE)
   1.518 +DECLARE_ASN1_FUNCTIONS(NOTICEREF)
   1.519 +
   1.520 +DECLARE_ASN1_FUNCTIONS(CRL_DIST_POINTS)
   1.521 +DECLARE_ASN1_FUNCTIONS(DIST_POINT)
   1.522 +DECLARE_ASN1_FUNCTIONS(DIST_POINT_NAME)
   1.523 +
   1.524 +DECLARE_ASN1_FUNCTIONS(ACCESS_DESCRIPTION)
   1.525 +DECLARE_ASN1_FUNCTIONS(AUTHORITY_INFO_ACCESS)
   1.526 +
   1.527 +DECLARE_ASN1_ITEM(POLICY_MAPPING)
   1.528 +DECLARE_ASN1_ALLOC_FUNCTIONS(POLICY_MAPPING)
   1.529 +DECLARE_ASN1_ITEM(POLICY_MAPPINGS)
   1.530 +
   1.531 +DECLARE_ASN1_ITEM(GENERAL_SUBTREE)
   1.532 +DECLARE_ASN1_ALLOC_FUNCTIONS(GENERAL_SUBTREE)
   1.533 +
   1.534 +DECLARE_ASN1_ITEM(NAME_CONSTRAINTS)
   1.535 +DECLARE_ASN1_ALLOC_FUNCTIONS(NAME_CONSTRAINTS)
   1.536 +
   1.537 +DECLARE_ASN1_ALLOC_FUNCTIONS(POLICY_CONSTRAINTS)
   1.538 +DECLARE_ASN1_ITEM(POLICY_CONSTRAINTS)
   1.539 +
   1.540 +#ifdef HEADER_CONF_H
   1.541 +IMPORT_C GENERAL_NAME *v2i_GENERAL_NAME(X509V3_EXT_METHOD *method, X509V3_CTX *ctx,
   1.542 +							CONF_VALUE *cnf);
   1.543 +IMPORT_C GENERAL_NAME *v2i_GENERAL_NAME_ex(GENERAL_NAME *out, X509V3_EXT_METHOD *method,
   1.544 +				X509V3_CTX *ctx, CONF_VALUE *cnf, int is_nc);
   1.545 +IMPORT_C void X509V3_conf_free(CONF_VALUE *val);
   1.546 +
   1.547 +IMPORT_C X509_EXTENSION *X509V3_EXT_nconf_nid(CONF *conf, X509V3_CTX *ctx, int ext_nid, char *value);
   1.548 +IMPORT_C X509_EXTENSION *X509V3_EXT_nconf(CONF *conf, X509V3_CTX *ctx, char *name, char *value);
   1.549 +IMPORT_C int X509V3_EXT_add_nconf_sk(CONF *conf, X509V3_CTX *ctx, char *section, STACK_OF(X509_EXTENSION) **sk);
   1.550 +IMPORT_C int X509V3_EXT_add_nconf(CONF *conf, X509V3_CTX *ctx, char *section, X509 *cert);
   1.551 +IMPORT_C int X509V3_EXT_REQ_add_nconf(CONF *conf, X509V3_CTX *ctx, char *section, X509_REQ *req);
   1.552 +IMPORT_C int X509V3_EXT_CRL_add_nconf(CONF *conf, X509V3_CTX *ctx, char *section, X509_CRL *crl);
   1.553 +
   1.554 +IMPORT_C X509_EXTENSION *X509V3_EXT_conf_nid(LHASH *conf, X509V3_CTX *ctx, int ext_nid, char *value);
   1.555 +IMPORT_C X509_EXTENSION *X509V3_EXT_conf(LHASH *conf, X509V3_CTX *ctx, char *name, char *value);
   1.556 +IMPORT_C int X509V3_EXT_add_conf(LHASH *conf, X509V3_CTX *ctx, char *section, X509 *cert);
   1.557 +IMPORT_C int X509V3_EXT_REQ_add_conf(LHASH *conf, X509V3_CTX *ctx, char *section, X509_REQ *req);
   1.558 +IMPORT_C int X509V3_EXT_CRL_add_conf(LHASH *conf, X509V3_CTX *ctx, char *section, X509_CRL *crl);
   1.559 +
   1.560 +IMPORT_C int X509V3_add_value_bool_nf(char *name, int asn1_bool,
   1.561 +						STACK_OF(CONF_VALUE) **extlist);
   1.562 +IMPORT_C int X509V3_get_value_bool(CONF_VALUE *value, int *asn1_bool);
   1.563 +IMPORT_C int X509V3_get_value_int(CONF_VALUE *value, ASN1_INTEGER **aint);
   1.564 +IMPORT_C void X509V3_set_nconf(X509V3_CTX *ctx, CONF *conf);
   1.565 +IMPORT_C void X509V3_set_conf_lhash(X509V3_CTX *ctx, LHASH *lhash);
   1.566 +#endif
   1.567 +
   1.568 +IMPORT_C char * X509V3_get_string(X509V3_CTX *ctx, char *name, char *section);
   1.569 +IMPORT_C STACK_OF(CONF_VALUE) * X509V3_get_section(X509V3_CTX *ctx, char *section);
   1.570 +IMPORT_C void X509V3_string_free(X509V3_CTX *ctx, char *str);
   1.571 +IMPORT_C void X509V3_section_free( X509V3_CTX *ctx, STACK_OF(CONF_VALUE) *section);
   1.572 +IMPORT_C void X509V3_set_ctx(X509V3_CTX *ctx, X509 *issuer, X509 *subject,
   1.573 +				 X509_REQ *req, X509_CRL *crl, int flags);
   1.574 +
   1.575 +IMPORT_C int X509V3_add_value(const char *name, const char *value,
   1.576 +						STACK_OF(CONF_VALUE) **extlist);
   1.577 +IMPORT_C int X509V3_add_value_uchar(const char *name, const unsigned char *value,
   1.578 +						STACK_OF(CONF_VALUE) **extlist);
   1.579 +IMPORT_C int X509V3_add_value_bool(const char *name, int asn1_bool,
   1.580 +						STACK_OF(CONF_VALUE) **extlist);
   1.581 +IMPORT_C int X509V3_add_value_int(const char *name, ASN1_INTEGER *aint,
   1.582 +						STACK_OF(CONF_VALUE) **extlist);
   1.583 +IMPORT_C char * i2s_ASN1_INTEGER(X509V3_EXT_METHOD *meth, ASN1_INTEGER *aint);
   1.584 +IMPORT_C ASN1_INTEGER * s2i_ASN1_INTEGER(X509V3_EXT_METHOD *meth, char *value);
   1.585 +IMPORT_C char * i2s_ASN1_ENUMERATED(X509V3_EXT_METHOD *meth, ASN1_ENUMERATED *aint);
   1.586 +IMPORT_C char * i2s_ASN1_ENUMERATED_TABLE(X509V3_EXT_METHOD *meth, ASN1_ENUMERATED *aint);
   1.587 +IMPORT_C int X509V3_EXT_add(X509V3_EXT_METHOD *ext);
   1.588 +IMPORT_C int X509V3_EXT_add_list(X509V3_EXT_METHOD *extlist);
   1.589 +IMPORT_C int X509V3_EXT_add_alias(int nid_to, int nid_from);
   1.590 +IMPORT_C void X509V3_EXT_cleanup(void);
   1.591 +
   1.592 +IMPORT_C X509V3_EXT_METHOD *X509V3_EXT_get(X509_EXTENSION *ext);
   1.593 +IMPORT_C X509V3_EXT_METHOD *X509V3_EXT_get_nid(int nid);
   1.594 +IMPORT_C int X509V3_add_standard_extensions(void);
   1.595 +IMPORT_C STACK_OF(CONF_VALUE) *X509V3_parse_list(const char *line);
   1.596 +IMPORT_C void *X509V3_EXT_d2i(X509_EXTENSION *ext);
   1.597 +IMPORT_C void *X509V3_get_d2i(STACK_OF(X509_EXTENSION) *x, int nid, int *crit, int *idx);
   1.598 +
   1.599 +
   1.600 +IMPORT_C X509_EXTENSION *X509V3_EXT_i2d(int ext_nid, int crit, void *ext_struc);
   1.601 +IMPORT_C int X509V3_add1_i2d(STACK_OF(X509_EXTENSION) **x, int nid, void *value, int crit, unsigned long flags);
   1.602 +
   1.603 +IMPORT_C char *hex_to_string(unsigned char *buffer, long len);
   1.604 +IMPORT_C unsigned char *string_to_hex(char *str, long *len);
   1.605 +IMPORT_C int name_cmp(const char *name, const char *cmp);
   1.606 +
   1.607 +IMPORT_C void X509V3_EXT_val_prn(BIO *out, STACK_OF(CONF_VALUE) *val, int indent,
   1.608 +								 int ml);
   1.609 +IMPORT_C int X509V3_EXT_print(BIO *out, X509_EXTENSION *ext, unsigned long flag, int indent);
   1.610 +IMPORT_C int X509V3_EXT_print_fp(FILE *out, X509_EXTENSION *ext, int flag, int indent);
   1.611 +
   1.612 +IMPORT_C int X509V3_extensions_print(BIO *out, char *title, STACK_OF(X509_EXTENSION) *exts, unsigned long flag, int indent);
   1.613 +
   1.614 +IMPORT_C int X509_check_ca(X509 *x);
   1.615 +IMPORT_C int X509_check_purpose(X509 *x, int id, int ca);
   1.616 +IMPORT_C int X509_supported_extension(X509_EXTENSION *ex);
   1.617 +IMPORT_C int X509_PURPOSE_set(int *p, int purpose);
   1.618 +IMPORT_C int X509_check_issued(X509 *issuer, X509 *subject);
   1.619 +IMPORT_C int X509_PURPOSE_get_count(void);
   1.620 +IMPORT_C X509_PURPOSE * X509_PURPOSE_get0(int idx);
   1.621 +IMPORT_C int X509_PURPOSE_get_by_sname(char *sname);
   1.622 +IMPORT_C int X509_PURPOSE_get_by_id(int id);
   1.623 +IMPORT_C int X509_PURPOSE_add(int id, int trust, int flags,
   1.624 +			int (*ck)(const X509_PURPOSE *, const X509 *, int),
   1.625 +				char *name, char *sname, void *arg);
   1.626 +IMPORT_C char *X509_PURPOSE_get0_name(X509_PURPOSE *xp);
   1.627 +IMPORT_C char *X509_PURPOSE_get0_sname(X509_PURPOSE *xp);
   1.628 +IMPORT_C int X509_PURPOSE_get_trust(X509_PURPOSE *xp);
   1.629 +IMPORT_C void X509_PURPOSE_cleanup(void);
   1.630 +IMPORT_C int X509_PURPOSE_get_id(X509_PURPOSE *);
   1.631 +
   1.632 +IMPORT_C STACK *X509_get1_email(X509 *x);
   1.633 +IMPORT_C STACK *X509_REQ_get1_email(X509_REQ *x);
   1.634 +IMPORT_C void X509_email_free(STACK *sk);
   1.635 +
   1.636 +IMPORT_C ASN1_OCTET_STRING *a2i_IPADDRESS(const char *ipasc);
   1.637 +IMPORT_C ASN1_OCTET_STRING *a2i_IPADDRESS_NC(const char *ipasc);
   1.638 +IMPORT_C int a2i_ipadd(unsigned char *ipout, const char *ipasc);
   1.639 +IMPORT_C int X509V3_NAME_from_section(X509_NAME *nm, STACK_OF(CONF_VALUE)*dn_sk,
   1.640 +						unsigned long chtype);
   1.641 +
   1.642 +IMPORT_C void X509_POLICY_NODE_print(BIO *out, X509_POLICY_NODE *node, int indent);
   1.643 +
   1.644 +
   1.645 +/* BEGIN ERROR CODES */
   1.646 +/* The following lines are auto generated by the script mkerr.pl. Any changes
   1.647 + * made after this point may be overwritten when the script is next run.
   1.648 + */
   1.649 +IMPORT_C void ERR_load_X509V3_strings(void);
   1.650 +
   1.651 +/* Error codes for the X509V3 functions. */
   1.652 +
   1.653 +/* Function codes. */
   1.654 +#define X509V3_F_ASIDENTIFIERCHOICE_CANONIZE		 156
   1.655 +#define X509V3_F_ASIDENTIFIERCHOICE_IS_CANONICAL	 157
   1.656 +#define X509V3_F_COPY_EMAIL				 122
   1.657 +#define X509V3_F_COPY_ISSUER				 123
   1.658 +#define X509V3_F_DO_DIRNAME				 144
   1.659 +#define X509V3_F_DO_EXT_CONF				 124
   1.660 +#define X509V3_F_DO_EXT_I2D				 135
   1.661 +#define X509V3_F_DO_EXT_NCONF				 151
   1.662 +#define X509V3_F_DO_I2V_NAME_CONSTRAINTS		 148
   1.663 +#define X509V3_F_HEX_TO_STRING				 111
   1.664 +#define X509V3_F_I2S_ASN1_ENUMERATED			 121
   1.665 +#define X509V3_F_I2S_ASN1_IA5STRING			 149
   1.666 +#define X509V3_F_I2S_ASN1_INTEGER			 120
   1.667 +#define X509V3_F_I2V_AUTHORITY_INFO_ACCESS		 138
   1.668 +#define X509V3_F_NOTICE_SECTION				 132
   1.669 +#define X509V3_F_NREF_NOS				 133
   1.670 +#define X509V3_F_POLICY_SECTION				 131
   1.671 +#define X509V3_F_PROCESS_PCI_VALUE			 150
   1.672 +#define X509V3_F_R2I_CERTPOL				 130
   1.673 +#define X509V3_F_R2I_PCI				 155
   1.674 +#define X509V3_F_S2I_ASN1_IA5STRING			 100
   1.675 +#define X509V3_F_S2I_ASN1_INTEGER			 108
   1.676 +#define X509V3_F_S2I_ASN1_OCTET_STRING			 112
   1.677 +#define X509V3_F_S2I_ASN1_SKEY_ID			 114
   1.678 +#define X509V3_F_S2I_SKEY_ID				 115
   1.679 +#define X509V3_F_STRING_TO_HEX				 113
   1.680 +#define X509V3_F_SXNET_ADD_ID_ASC			 125
   1.681 +#define X509V3_F_SXNET_ADD_ID_INTEGER			 126
   1.682 +#define X509V3_F_SXNET_ADD_ID_ULONG			 127
   1.683 +#define X509V3_F_SXNET_GET_ID_ASC			 128
   1.684 +#define X509V3_F_SXNET_GET_ID_ULONG			 129
   1.685 +#define X509V3_F_V2I_ASIDENTIFIERS			 158
   1.686 +#define X509V3_F_V2I_ASN1_BIT_STRING			 101
   1.687 +#define X509V3_F_V2I_AUTHORITY_INFO_ACCESS		 139
   1.688 +#define X509V3_F_V2I_AUTHORITY_KEYID			 119
   1.689 +#define X509V3_F_V2I_BASIC_CONSTRAINTS			 102
   1.690 +#define X509V3_F_V2I_CRLD				 134
   1.691 +#define X509V3_F_V2I_EXTENDED_KEY_USAGE			 103
   1.692 +#define X509V3_F_V2I_GENERAL_NAMES			 118
   1.693 +#define X509V3_F_V2I_GENERAL_NAME_EX			 117
   1.694 +#define X509V3_F_V2I_IPADDRBLOCKS			 159
   1.695 +#define X509V3_F_V2I_ISSUER_ALT				 153
   1.696 +#define X509V3_F_V2I_NAME_CONSTRAINTS			 147
   1.697 +#define X509V3_F_V2I_POLICY_CONSTRAINTS			 146
   1.698 +#define X509V3_F_V2I_POLICY_MAPPINGS			 145
   1.699 +#define X509V3_F_V2I_SUBJECT_ALT			 154
   1.700 +#define X509V3_F_V3_ADDR_VALIDATE_PATH_INTERNAL		 160
   1.701 +#define X509V3_F_V3_GENERIC_EXTENSION			 116
   1.702 +#define X509V3_F_X509V3_ADD1_I2D			 140
   1.703 +#define X509V3_F_X509V3_ADD_VALUE			 105
   1.704 +#define X509V3_F_X509V3_EXT_ADD				 104
   1.705 +#define X509V3_F_X509V3_EXT_ADD_ALIAS			 106
   1.706 +#define X509V3_F_X509V3_EXT_CONF			 107
   1.707 +#define X509V3_F_X509V3_EXT_I2D				 136
   1.708 +#define X509V3_F_X509V3_EXT_NCONF			 152
   1.709 +#define X509V3_F_X509V3_GET_SECTION			 142
   1.710 +#define X509V3_F_X509V3_GET_STRING			 143
   1.711 +#define X509V3_F_X509V3_GET_VALUE_BOOL			 110
   1.712 +#define X509V3_F_X509V3_PARSE_LIST			 109
   1.713 +#define X509V3_F_X509_PURPOSE_ADD			 137
   1.714 +#define X509V3_F_X509_PURPOSE_SET			 141
   1.715 +
   1.716 +/* Reason codes. */
   1.717 +#define X509V3_R_BAD_IP_ADDRESS				 118
   1.718 +#define X509V3_R_BAD_OBJECT				 119
   1.719 +#define X509V3_R_BN_DEC2BN_ERROR			 100
   1.720 +#define X509V3_R_BN_TO_ASN1_INTEGER_ERROR		 101
   1.721 +#define X509V3_R_DIRNAME_ERROR				 149
   1.722 +#define X509V3_R_DUPLICATE_ZONE_ID			 133
   1.723 +#define X509V3_R_ERROR_CONVERTING_ZONE			 131
   1.724 +#define X509V3_R_ERROR_CREATING_EXTENSION		 144
   1.725 +#define X509V3_R_ERROR_IN_EXTENSION			 128
   1.726 +#define X509V3_R_EXPECTED_A_SECTION_NAME		 137
   1.727 +#define X509V3_R_EXTENSION_EXISTS			 145
   1.728 +#define X509V3_R_EXTENSION_NAME_ERROR			 115
   1.729 +#define X509V3_R_EXTENSION_NOT_FOUND			 102
   1.730 +#define X509V3_R_EXTENSION_SETTING_NOT_SUPPORTED	 103
   1.731 +#define X509V3_R_EXTENSION_VALUE_ERROR			 116
   1.732 +#define X509V3_R_ILLEGAL_EMPTY_EXTENSION		 151
   1.733 +#define X509V3_R_ILLEGAL_HEX_DIGIT			 113
   1.734 +#define X509V3_R_INCORRECT_POLICY_SYNTAX_TAG		 152
   1.735 +#define X509V3_R_INVALID_ASNUMBER			 160
   1.736 +#define X509V3_R_INVALID_ASRANGE			 161
   1.737 +#define X509V3_R_INVALID_BOOLEAN_STRING			 104
   1.738 +#define X509V3_R_INVALID_EXTENSION_STRING		 105
   1.739 +#define X509V3_R_INVALID_INHERITANCE			 162
   1.740 +#define X509V3_R_INVALID_IPADDRESS			 163
   1.741 +#define X509V3_R_INVALID_NAME				 106
   1.742 +#define X509V3_R_INVALID_NULL_ARGUMENT			 107
   1.743 +#define X509V3_R_INVALID_NULL_NAME			 108
   1.744 +#define X509V3_R_INVALID_NULL_VALUE			 109
   1.745 +#define X509V3_R_INVALID_NUMBER				 140
   1.746 +#define X509V3_R_INVALID_NUMBERS			 141
   1.747 +#define X509V3_R_INVALID_OBJECT_IDENTIFIER		 110
   1.748 +#define X509V3_R_INVALID_OPTION				 138
   1.749 +#define X509V3_R_INVALID_POLICY_IDENTIFIER		 134
   1.750 +#define X509V3_R_INVALID_PROXY_POLICY_SETTING		 153
   1.751 +#define X509V3_R_INVALID_PURPOSE			 146
   1.752 +#define X509V3_R_INVALID_SAFI				 164
   1.753 +#define X509V3_R_INVALID_SECTION			 135
   1.754 +#define X509V3_R_INVALID_SYNTAX				 143
   1.755 +#define X509V3_R_ISSUER_DECODE_ERROR			 126
   1.756 +#define X509V3_R_MISSING_VALUE				 124
   1.757 +#define X509V3_R_NEED_ORGANIZATION_AND_NUMBERS		 142
   1.758 +#define X509V3_R_NO_CONFIG_DATABASE			 136
   1.759 +#define X509V3_R_NO_ISSUER_CERTIFICATE			 121
   1.760 +#define X509V3_R_NO_ISSUER_DETAILS			 127
   1.761 +#define X509V3_R_NO_POLICY_IDENTIFIER			 139
   1.762 +#define X509V3_R_NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED	 154
   1.763 +#define X509V3_R_NO_PUBLIC_KEY				 114
   1.764 +#define X509V3_R_NO_SUBJECT_DETAILS			 125
   1.765 +#define X509V3_R_ODD_NUMBER_OF_DIGITS			 112
   1.766 +#define X509V3_R_OPERATION_NOT_DEFINED			 148
   1.767 +#define X509V3_R_OTHERNAME_ERROR			 147
   1.768 +#define X509V3_R_POLICY_LANGUAGE_ALREADTY_DEFINED	 155
   1.769 +#define X509V3_R_POLICY_PATH_LENGTH			 156
   1.770 +#define X509V3_R_POLICY_PATH_LENGTH_ALREADTY_DEFINED	 157
   1.771 +#define X509V3_R_POLICY_SYNTAX_NOT_CURRENTLY_SUPPORTED	 158
   1.772 +#define X509V3_R_POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY 159
   1.773 +#define X509V3_R_SECTION_NOT_FOUND			 150
   1.774 +#define X509V3_R_UNABLE_TO_GET_ISSUER_DETAILS		 122
   1.775 +#define X509V3_R_UNABLE_TO_GET_ISSUER_KEYID		 123
   1.776 +#define X509V3_R_UNKNOWN_BIT_STRING_ARGUMENT		 111
   1.777 +#define X509V3_R_UNKNOWN_EXTENSION			 129
   1.778 +#define X509V3_R_UNKNOWN_EXTENSION_NAME			 130
   1.779 +#define X509V3_R_UNKNOWN_OPTION				 120
   1.780 +#define X509V3_R_UNSUPPORTED_OPTION			 117
   1.781 +#define X509V3_R_USER_TOO_LONG				 132
   1.782 +
   1.783 +#ifdef  __cplusplus
   1.784 +}
   1.785 +#endif
   1.786 +#endif