OpenSSL
1.0.1c
Main Page
Classes
Files
File List
File Members
All
Classes
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
crypto
x509v3
x509v3.h
Go to the documentation of this file.
1
/* x509v3.h */
2
/* Written by Dr Stephen N Henson (
[email protected]
) for the OpenSSL
3
* project 1999.
4
*/
5
/* ====================================================================
6
* Copyright (c) 1999-2004 The OpenSSL Project. All rights reserved.
7
*
8
* Redistribution and use in source and binary forms, with or without
9
* modification, are permitted provided that the following conditions
10
* are met:
11
*
12
* 1. Redistributions of source code must retain the above copyright
13
* notice, this list of conditions and the following disclaimer.
14
*
15
* 2. Redistributions in binary form must reproduce the above copyright
16
* notice, this list of conditions and the following disclaimer in
17
* the documentation and/or other materials provided with the
18
* distribution.
19
*
20
* 3. All advertising materials mentioning features or use of this
21
* software must display the following acknowledgment:
22
* "This product includes software developed by the OpenSSL Project
23
* for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
24
*
25
* 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
26
* endorse or promote products derived from this software without
27
* prior written permission. For written permission, please contact
28
*
[email protected]
.
29
*
30
* 5. Products derived from this software may not be called "OpenSSL"
31
* nor may "OpenSSL" appear in their names without prior written
32
* permission of the OpenSSL Project.
33
*
34
* 6. Redistributions of any form whatsoever must retain the following
35
* acknowledgment:
36
* "This product includes software developed by the OpenSSL Project
37
* for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
38
*
39
* THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
40
* EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
41
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
42
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
43
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
44
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
45
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
46
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
47
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
48
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
49
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
50
* OF THE POSSIBILITY OF SUCH DAMAGE.
51
* ====================================================================
52
*
53
* This product includes cryptographic software written by Eric Young
54
* (
[email protected]
). This product includes software written by Tim
55
* Hudson (
[email protected]
).
56
*
57
*/
58
#ifndef HEADER_X509V3_H
59
#define HEADER_X509V3_H
60
61
#include <
openssl/bio.h
>
62
#include <
openssl/x509.h
>
63
#include <
openssl/conf.h
>
64
65
#ifdef __cplusplus
66
extern
"C"
{
67
#endif
68
69
/* Forward reference */
70
struct
v3_ext_method
;
71
struct
v3_ext_ctx
;
72
73
/* Useful typedefs */
74
75
typedef
void
* (*X509V3_EXT_NEW)(
void
);
76
typedef
void
(*
X509V3_EXT_FREE
)(
void
*);
77
typedef
void
* (*X509V3_EXT_D2I)(
void
*,
const
unsigned
char
** , long);
78
typedef
int (*
X509V3_EXT_I2D
)(
void
*,
unsigned
char
**);
79
typedef
STACK_OF
(
CONF_VALUE
) *
80
(*X509V3_EXT_I2V)(
const
struct
v3_ext_method
*method,
void
*
ext
,
81
STACK_OF
(
CONF_VALUE
) *extlist);
82
typedef
void
* (*X509V3_EXT_V2I)(
const
struct
v3_ext_method
*method,
83
struct
v3_ext_ctx
*ctx,
84
STACK_OF
(
CONF_VALUE
) *values);
85
typedef
char
* (*X509V3_EXT_I2S)(
const
struct
v3_ext_method
*method,
void
*
ext
);
86
typedef
void
* (*X509V3_EXT_S2I)(
const
struct
v3_ext_method
*method,
87
struct
v3_ext_ctx
*ctx,
const
char
*str);
88
typedef
int (*
X509V3_EXT_I2R
)(
const
struct
v3_ext_method
*method,
void
*
ext
,
89
BIO
*
out
,
int
indent);
90
typedef
void
* (*X509V3_EXT_R2I)(
const
struct
v3_ext_method
*method,
91
struct
v3_ext_ctx
*ctx,
const
char
*str);
92
93
/* V3 extension structure */
94
95
struct
v3_ext_method
{
96
int
ext_nid
;
97
int
ext_flags
;
98
/* If this is set the following four fields are ignored */
99
ASN1_ITEM_EXP
*
it
;
100
/* Old style ASN1 calls */
101
X509V3_EXT_NEW
ext_new
;
102
X509V3_EXT_FREE
ext_free
;
103
X509V3_EXT_D2I
d2i
;
104
X509V3_EXT_I2D
i2d
;
105
106
/* The following pair is used for string extensions */
107
X509V3_EXT_I2S
i2s
;
108
X509V3_EXT_S2I
s2i
;
109
110
/* The following pair is used for multi-valued extensions */
111
X509V3_EXT_I2V
i2v
;
112
X509V3_EXT_V2I
v2i
;
113
114
/* The following are used for raw extensions */
115
X509V3_EXT_I2R
i2r
;
116
X509V3_EXT_R2I
r2i
;
117
118
void
*
usr_data
;
/* Any extension specific data */
119
};
120
121
typedef
struct
X509V3_CONF_METHOD_st
{
122
char
* (*get_string)(
void
*db,
char
*
section
,
char
*value);
123
STACK_OF
(
CONF_VALUE
) * (*get_section)(
void
*db,
char
*
section
);
124
void
(*
free_string
)(
void
*db,
char
* string);
125
void
(*
free_section
)(
void
*db,
STACK_OF
(
CONF_VALUE
) *
section
);
126
}
X509V3_CONF_METHOD
;
127
128
/* Context specific info */
129
struct
v3_ext_ctx
{
130
#define CTX_TEST 0x1
131
int
flags
;
132
X509
*
issuer_cert
;
133
X509
*
subject_cert
;
134
X509_REQ
*
subject_req
;
135
X509_CRL
*
crl
;
136
X509V3_CONF_METHOD
*
db_meth
;
137
void
*
db
;
138
/* Maybe more here */
139
};
140
141
typedef
struct
v3_ext_method
X509V3_EXT_METHOD
;
142
143
DECLARE_STACK_OF
(
X509V3_EXT_METHOD
)
144
145
/* ext_flags values */
146
#define X509V3_EXT_DYNAMIC 0x1
147
#define X509V3_EXT_CTX_DEP 0x2
148
#define X509V3_EXT_MULTILINE 0x4
149
150
typedef
BIT_STRING_BITNAME
ENUMERATED_NAMES
;
151
152
typedef
struct
BASIC_CONSTRAINTS_st
{
153
int
ca
;
154
ASN1_INTEGER
*
pathlen
;
155
}
BASIC_CONSTRAINTS
;
156
157
158
typedef
struct
PKEY_USAGE_PERIOD_st
{
159
ASN1_GENERALIZEDTIME
*
notBefore
;
160
ASN1_GENERALIZEDTIME
*
notAfter
;
161
}
PKEY_USAGE_PERIOD
;
162
163
typedef
struct
otherName_st
{
164
ASN1_OBJECT
*
type_id
;
165
ASN1_TYPE
*
value
;
166
}
OTHERNAME
;
167
168
typedef
struct
EDIPartyName_st
{
169
ASN1_STRING
*
nameAssigner
;
170
ASN1_STRING
*
partyName
;
171
}
EDIPARTYNAME
;
172
173
typedef
struct
GENERAL_NAME_st
{
174
175
#define GEN_OTHERNAME 0
176
#define GEN_EMAIL 1
177
#define GEN_DNS 2
178
#define GEN_X400 3
179
#define GEN_DIRNAME 4
180
#define GEN_EDIPARTY 5
181
#define GEN_URI 6
182
#define GEN_IPADD 7
183
#define GEN_RID 8
184
185
int
type
;
186
union
{
187
char
*
ptr
;
188
OTHERNAME
*
otherName
;
/* otherName */
189
ASN1_IA5STRING
*
rfc822Name
;
190
ASN1_IA5STRING
*
dNSName
;
191
ASN1_TYPE
*
x400Address
;
192
X509_NAME
*
directoryName
;
193
EDIPARTYNAME
*
ediPartyName
;
194
ASN1_IA5STRING
*
uniformResourceIdentifier
;
195
ASN1_OCTET_STRING
*
iPAddress
;
196
ASN1_OBJECT
*
registeredID
;
197
198
/* Old names */
199
ASN1_OCTET_STRING
*
ip
;
/* iPAddress */
200
X509_NAME
*
dirn
;
/* dirn */
201
ASN1_IA5STRING
*
ia5
;
/* rfc822Name, dNSName, uniformResourceIdentifier */
202
ASN1_OBJECT
*
rid
;
/* registeredID */
203
ASN1_TYPE
*
other
;
/* x400Address */
204
}
d
;
205
}
GENERAL_NAME
;
206
207
typedef
STACK_OF
(
GENERAL_NAME
) GENERAL_NAMES;
208
209
typedef struct
ACCESS_DESCRIPTION_st
{
210
ASN1_OBJECT
*
method
;
211
GENERAL_NAME
*
location
;
212
}
ACCESS_DESCRIPTION
;
213
214
typedef
STACK_OF
(
ACCESS_DESCRIPTION
) AUTHORITY_INFO_ACCESS;
215
216
typedef
STACK_OF
(
ASN1_OBJECT
) EXTENDED_KEY_USAGE;
217
218
DECLARE_STACK_OF
(
GENERAL_NAME
)
219
DECLARE_ASN1_SET_OF
(
GENERAL_NAME
)
220
221
DECLARE_STACK_OF
(
ACCESS_DESCRIPTION
)
222
DECLARE_ASN1_SET_OF
(
ACCESS_DESCRIPTION
)
223
224
typedef struct
DIST_POINT_NAME_st
{
225
int
type
;
226
union
{
227
GENERAL_NAMES *
fullname
;
228
STACK_OF
(
X509_NAME_ENTRY
) *relativename;
229
} name;
230
/* If relativename then this contains the full distribution point name */
231
X509_NAME
*
dpname
;
232
}
DIST_POINT_NAME
;
233
/* All existing reasons */
234
#define CRLDP_ALL_REASONS 0x807f
235
236
#define CRL_REASON_NONE -1
237
#define CRL_REASON_UNSPECIFIED 0
238
#define CRL_REASON_KEY_COMPROMISE 1
239
#define CRL_REASON_CA_COMPROMISE 2
240
#define CRL_REASON_AFFILIATION_CHANGED 3
241
#define CRL_REASON_SUPERSEDED 4
242
#define CRL_REASON_CESSATION_OF_OPERATION 5
243
#define CRL_REASON_CERTIFICATE_HOLD 6
244
#define CRL_REASON_REMOVE_FROM_CRL 8
245
#define CRL_REASON_PRIVILEGE_WITHDRAWN 9
246
#define CRL_REASON_AA_COMPROMISE 10
247
248
struct
DIST_POINT_st
{
249
DIST_POINT_NAME
*
distpoint
;
250
ASN1_BIT_STRING
*
reasons
;
251
GENERAL_NAMES *
CRLissuer
;
252
int
dp_reasons
;
253
};
254
255
typedef
STACK_OF
(
DIST_POINT
) CRL_DIST_POINTS;
256
257
DECLARE_STACK_OF
(
DIST_POINT
)
258
DECLARE_ASN1_SET_OF
(
DIST_POINT
)
259
260
struct
AUTHORITY_KEYID_st
{
261
ASN1_OCTET_STRING
*
keyid
;
262
GENERAL_NAMES *
issuer
;
263
ASN1_INTEGER
*
serial
;
264
};
265
266
/* Strong extranet structures */
267
268
typedef
struct
SXNET_ID_st
{
269
ASN1_INTEGER
*
zone
;
270
ASN1_OCTET_STRING
*
user
;
271
}
SXNETID
;
272
273
DECLARE_STACK_OF
(
SXNETID
)
274
DECLARE_ASN1_SET_OF
(
SXNETID
)
275
276
typedef struct
SXNET_st
{
277
ASN1_INTEGER
*
version
;
278
STACK_OF
(
SXNETID
) *ids;
279
}
SXNET
;
280
281
typedef
struct
NOTICEREF_st
{
282
ASN1_STRING
*
organization
;
283
STACK_OF
(
ASN1_INTEGER
) *noticenos;
284
}
NOTICEREF
;
285
286
typedef
struct
USERNOTICE_st
{
287
NOTICEREF
*
noticeref
;
288
ASN1_STRING
*
exptext
;
289
}
USERNOTICE
;
290
291
typedef
struct
POLICYQUALINFO_st
{
292
ASN1_OBJECT
*
pqualid
;
293
union
{
294
ASN1_IA5STRING
*
cpsuri
;
295
USERNOTICE
*
usernotice
;
296
ASN1_TYPE
*
other
;
297
}
d
;
298
}
POLICYQUALINFO
;
299
300
DECLARE_STACK_OF
(
POLICYQUALINFO
)
301
DECLARE_ASN1_SET_OF
(
POLICYQUALINFO
)
302
303
typedef struct
POLICYINFO_st
{
304
ASN1_OBJECT
*
policyid
;
305
STACK_OF
(
POLICYQUALINFO
) *qualifiers;
306
}
POLICYINFO
;
307
308
typedef
STACK_OF
(
POLICYINFO
) CERTIFICATEPOLICIES;
309
310
DECLARE_STACK_OF
(
POLICYINFO
)
311
DECLARE_ASN1_SET_OF
(
POLICYINFO
)
312
313
typedef struct
POLICY_MAPPING_st
{
314
ASN1_OBJECT
*
issuerDomainPolicy
;
315
ASN1_OBJECT
*
subjectDomainPolicy
;
316
}
POLICY_MAPPING
;
317
318
DECLARE_STACK_OF
(
POLICY_MAPPING
)
319
320
typedef
STACK_OF
(
POLICY_MAPPING
) POLICY_MAPPINGS;
321
322
typedef struct
GENERAL_SUBTREE_st
{
323
GENERAL_NAME
*
base
;
324
ASN1_INTEGER
*
minimum
;
325
ASN1_INTEGER
*
maximum
;
326
}
GENERAL_SUBTREE
;
327
328
DECLARE_STACK_OF
(
GENERAL_SUBTREE
)
329
330
struct
NAME_CONSTRAINTS_st
{
331
STACK_OF
(
GENERAL_SUBTREE
) *permittedSubtrees;
332
STACK_OF
(
GENERAL_SUBTREE
) *excludedSubtrees;
333
};
334
335
typedef
struct
POLICY_CONSTRAINTS_st
{
336
ASN1_INTEGER
*
requireExplicitPolicy
;
337
ASN1_INTEGER
*
inhibitPolicyMapping
;
338
}
POLICY_CONSTRAINTS
;
339
340
/* Proxy certificate structures, see RFC 3820 */
341
typedef
struct
PROXY_POLICY_st
342
{
343
ASN1_OBJECT
*
policyLanguage
;
344
ASN1_OCTET_STRING
*
policy
;
345
}
PROXY_POLICY
;
346
347
typedef
struct
PROXY_CERT_INFO_EXTENSION_st
348
{
349
ASN1_INTEGER
*
pcPathLengthConstraint
;
350
PROXY_POLICY
*
proxyPolicy
;
351
}
PROXY_CERT_INFO_EXTENSION
;
352
353
DECLARE_ASN1_FUNCTIONS
(
PROXY_POLICY
)
354
DECLARE_ASN1_FUNCTIONS
(
PROXY_CERT_INFO_EXTENSION
)
355
356
struct
ISSUING_DIST_POINT_st
357
{
358
DIST_POINT_NAME
*
distpoint
;
359
int
onlyuser
;
360
int
onlyCA
;
361
ASN1_BIT_STRING
*
onlysomereasons
;
362
int
indirectCRL
;
363
int
onlyattr
;
364
};
365
366
/* Values in idp_flags field */
367
/* IDP present */
368
#define IDP_PRESENT 0x1
369
/* IDP values inconsistent */
370
#define IDP_INVALID 0x2
371
/* onlyuser true */
372
#define IDP_ONLYUSER 0x4
373
/* onlyCA true */
374
#define IDP_ONLYCA 0x8
375
/* onlyattr true */
376
#define IDP_ONLYATTR 0x10
377
/* indirectCRL true */
378
#define IDP_INDIRECT 0x20
379
/* onlysomereasons present */
380
#define IDP_REASONS 0x40
381
382
#define X509V3_conf_err(val) ERR_add_error_data(6, "section:", val->section, \
383
",name:", val->name, ",value:", val->value);
384
385
#define X509V3_set_ctx_test(ctx) \
386
X509V3_set_ctx(ctx, NULL, NULL, NULL, NULL, CTX_TEST)
387
#define X509V3_set_ctx_nodb(ctx) (ctx)->db = NULL;
388
389
#define EXT_BITSTRING(nid, table) { nid, 0, ASN1_ITEM_ref(ASN1_BIT_STRING), \
390
0,0,0,0, \
391
0,0, \
392
(X509V3_EXT_I2V)i2v_ASN1_BIT_STRING, \
393
(X509V3_EXT_V2I)v2i_ASN1_BIT_STRING, \
394
NULL, NULL, \
395
table}
396
397
#define EXT_IA5STRING(nid) { nid, 0, ASN1_ITEM_ref(ASN1_IA5STRING), \
398
0,0,0,0, \
399
(X509V3_EXT_I2S)i2s_ASN1_IA5STRING, \
400
(X509V3_EXT_S2I)s2i_ASN1_IA5STRING, \
401
0,0,0,0, \
402
NULL}
403
404
#define EXT_END { -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
405
406
407
/* X509_PURPOSE stuff */
408
409
#define EXFLAG_BCONS 0x1
410
#define EXFLAG_KUSAGE 0x2
411
#define EXFLAG_XKUSAGE 0x4
412
#define EXFLAG_NSCERT 0x8
413
414
#define EXFLAG_CA 0x10
415
/* Really self issued not necessarily self signed */
416
#define EXFLAG_SI 0x20
417
#define EXFLAG_SS 0x20
418
#define EXFLAG_V1 0x40
419
#define EXFLAG_INVALID 0x80
420
#define EXFLAG_SET 0x100
421
#define EXFLAG_CRITICAL 0x200
422
#define EXFLAG_PROXY 0x400
423
424
#define EXFLAG_INVALID_POLICY 0x800
425
#define EXFLAG_FRESHEST 0x1000
426
427
#define KU_DIGITAL_SIGNATURE 0x0080
428
#define KU_NON_REPUDIATION 0x0040
429
#define KU_KEY_ENCIPHERMENT 0x0020
430
#define KU_DATA_ENCIPHERMENT 0x0010
431
#define KU_KEY_AGREEMENT 0x0008
432
#define KU_KEY_CERT_SIGN 0x0004
433
#define KU_CRL_SIGN 0x0002
434
#define KU_ENCIPHER_ONLY 0x0001
435
#define KU_DECIPHER_ONLY 0x8000
436
437
#define NS_SSL_CLIENT 0x80
438
#define NS_SSL_SERVER 0x40
439
#define NS_SMIME 0x20
440
#define NS_OBJSIGN 0x10
441
#define NS_SSL_CA 0x04
442
#define NS_SMIME_CA 0x02
443
#define NS_OBJSIGN_CA 0x01
444
#define NS_ANY_CA (NS_SSL_CA|NS_SMIME_CA|NS_OBJSIGN_CA)
445
446
#define XKU_SSL_SERVER 0x1
447
#define XKU_SSL_CLIENT 0x2
448
#define XKU_SMIME 0x4
449
#define XKU_CODE_SIGN 0x8
450
#define XKU_SGC 0x10
451
#define XKU_OCSP_SIGN 0x20
452
#define XKU_TIMESTAMP 0x40
453
#define XKU_DVCS 0x80
454
455
#define X509_PURPOSE_DYNAMIC 0x1
456
#define X509_PURPOSE_DYNAMIC_NAME 0x2
457
458
typedef
struct
x509_purpose_st
{
459
int
purpose
;
460
int
trust
;
/* Default trust ID */
461
int
flags
;
462
int (*
check_purpose
)(
const
struct
x509_purpose_st
*,
463
const
X509
*, int);
464
char
*
name
;
465
char
*
sname
;
466
void
*
usr_data
;
467
}
X509_PURPOSE
;
468
469
#define X509_PURPOSE_SSL_CLIENT 1
470
#define X509_PURPOSE_SSL_SERVER 2
471
#define X509_PURPOSE_NS_SSL_SERVER 3
472
#define X509_PURPOSE_SMIME_SIGN 4
473
#define X509_PURPOSE_SMIME_ENCRYPT 5
474
#define X509_PURPOSE_CRL_SIGN 6
475
#define X509_PURPOSE_ANY 7
476
#define X509_PURPOSE_OCSP_HELPER 8
477
#define X509_PURPOSE_TIMESTAMP_SIGN 9
478
479
#define X509_PURPOSE_MIN 1
480
#define X509_PURPOSE_MAX 9
481
482
/* Flags for X509V3_EXT_print() */
483
484
#define X509V3_EXT_UNKNOWN_MASK (0xfL << 16)
485
/* Return error for unknown extensions */
486
#define X509V3_EXT_DEFAULT 0
487
/* Print error for unknown extensions */
488
#define X509V3_EXT_ERROR_UNKNOWN (1L << 16)
489
/* ASN1 parse unknown extensions */
490
#define X509V3_EXT_PARSE_UNKNOWN (2L << 16)
491
/* BIO_dump unknown extensions */
492
#define X509V3_EXT_DUMP_UNKNOWN (3L << 16)
493
494
/* Flags for X509V3_add1_i2d */
495
496
#define X509V3_ADD_OP_MASK 0xfL
497
#define X509V3_ADD_DEFAULT 0L
498
#define X509V3_ADD_APPEND 1L
499
#define X509V3_ADD_REPLACE 2L
500
#define X509V3_ADD_REPLACE_EXISTING 3L
501
#define X509V3_ADD_KEEP_EXISTING 4L
502
#define X509V3_ADD_DELETE 5L
503
#define X509V3_ADD_SILENT 0x10
504
505
DECLARE_STACK_OF
(
X509_PURPOSE
)
506
507
DECLARE_ASN1_FUNCTIONS
(
BASIC_CONSTRAINTS
)
508
509
DECLARE_ASN1_FUNCTIONS
(
SXNET
)
510
DECLARE_ASN1_FUNCTIONS
(
SXNETID
)
511
512
int
SXNET_add_id_asc
(
SXNET
**psx,
char
*zone,
char
*user,
int
userlen);
513
int
SXNET_add_id_ulong
(
SXNET
**psx,
unsigned
long
lzone,
char
*user,
int
userlen);
514
int
SXNET_add_id_INTEGER
(
SXNET
**psx,
ASN1_INTEGER
*izone,
char
*user,
int
userlen);
515
516
ASN1_OCTET_STRING
*
SXNET_get_id_asc
(
SXNET
*sx,
char
*zone);
517
ASN1_OCTET_STRING
*
SXNET_get_id_ulong
(
SXNET
*sx,
unsigned
long
lzone);
518
ASN1_OCTET_STRING
*
SXNET_get_id_INTEGER
(
SXNET
*sx,
ASN1_INTEGER
*zone);
519
520
DECLARE_ASN1_FUNCTIONS
(
AUTHORITY_KEYID
)
521
522
DECLARE_ASN1_FUNCTIONS
(
PKEY_USAGE_PERIOD
)
523
524
DECLARE_ASN1_FUNCTIONS
(
GENERAL_NAME
)
525
GENERAL_NAME
*
GENERAL_NAME_dup
(
GENERAL_NAME
*
a
);
526
int
GENERAL_NAME_cmp
(
GENERAL_NAME
*a,
GENERAL_NAME
*
b
);
527
528
529
530
ASN1_BIT_STRING
*
v2i_ASN1_BIT_STRING
(
X509V3_EXT_METHOD
*method,
531
X509V3_CTX
*ctx,
STACK_OF
(
CONF_VALUE
) *nval);
532
STACK_OF
(
CONF_VALUE
) *i2v_ASN1_BIT_STRING(
X509V3_EXT_METHOD
*method,
533
ASN1_BIT_STRING
*
bits
,
534
STACK_OF
(
CONF_VALUE
) *extlist);
535
536
STACK_OF
(
CONF_VALUE
) *i2v_GENERAL_NAME(
X509V3_EXT_METHOD
*method,
GENERAL_NAME
*
gen
,
STACK_OF
(
CONF_VALUE
) *ret);
537
int
GENERAL_NAME_print
(
BIO
*out,
GENERAL_NAME
*gen);
538
539
DECLARE_ASN1_FUNCTIONS
(GENERAL_NAMES)
540
541
STACK_OF
(
CONF_VALUE
) *i2v_GENERAL_NAMES(
X509V3_EXT_METHOD
*method,
542
GENERAL_NAMES *gen,
STACK_OF
(
CONF_VALUE
) *extlist);
543
GENERAL_NAMES *
v2i_GENERAL_NAMES
(const
X509V3_EXT_METHOD
*method,
544
X509V3_CTX
*ctx,
STACK_OF
(
CONF_VALUE
) *nval);
545
546
DECLARE_ASN1_FUNCTIONS
(
OTHERNAME
)
547
DECLARE_ASN1_FUNCTIONS
(
EDIPARTYNAME
)
548
int
OTHERNAME_cmp
(
OTHERNAME
*a,
OTHERNAME
*b);
549
void
GENERAL_NAME_set0_value
(
GENERAL_NAME
*a,
int
type
,
void
*value);
550
void
*
GENERAL_NAME_get0_value
(
GENERAL_NAME
*a,
int
*ptype);
551
int
GENERAL_NAME_set0_othername
(
GENERAL_NAME
*gen,
552
ASN1_OBJECT
*oid,
ASN1_TYPE
*value);
553
int
GENERAL_NAME_get0_otherName
(
GENERAL_NAME
*gen,
554
ASN1_OBJECT
**poid,
ASN1_TYPE
**pvalue);
555
556
char
*
i2s_ASN1_OCTET_STRING
(
X509V3_EXT_METHOD
*method,
ASN1_OCTET_STRING
*ia5);
557
ASN1_OCTET_STRING
*
s2i_ASN1_OCTET_STRING
(
X509V3_EXT_METHOD
*method,
X509V3_CTX
*ctx,
char
*str);
558
559
DECLARE_ASN1_FUNCTIONS
(EXTENDED_KEY_USAGE)
560
int
i2a_ACCESS_DESCRIPTION
(
BIO
*
bp
,
ACCESS_DESCRIPTION
* a);
561
562
DECLARE_ASN1_FUNCTIONS
(CERTIFICATEPOLICIES)
563
DECLARE_ASN1_FUNCTIONS
(
POLICYINFO
)
564
DECLARE_ASN1_FUNCTIONS
(
POLICYQUALINFO
)
565
DECLARE_ASN1_FUNCTIONS
(
USERNOTICE
)
566
DECLARE_ASN1_FUNCTIONS
(
NOTICEREF
)
567
568
DECLARE_ASN1_FUNCTIONS
(CRL_DIST_POINTS)
569
DECLARE_ASN1_FUNCTIONS
(
DIST_POINT
)
570
DECLARE_ASN1_FUNCTIONS
(
DIST_POINT_NAME
)
571
DECLARE_ASN1_FUNCTIONS
(
ISSUING_DIST_POINT
)
572
573
int
DIST_POINT_set_dpname
(
DIST_POINT_NAME
*dpn,
X509_NAME
*iname);
574
575
int
NAME_CONSTRAINTS_check
(
X509
*x,
NAME_CONSTRAINTS
*nc);
576
577
DECLARE_ASN1_FUNCTIONS
(
ACCESS_DESCRIPTION
)
578
DECLARE_ASN1_FUNCTIONS
(AUTHORITY_INFO_ACCESS)
579
580
DECLARE_ASN1_ITEM
(
POLICY_MAPPING
)
581
DECLARE_ASN1_ALLOC_FUNCTIONS
(
POLICY_MAPPING
)
582
DECLARE_ASN1_ITEM
(POLICY_MAPPINGS)
583
584
DECLARE_ASN1_ITEM
(
GENERAL_SUBTREE
)
585
DECLARE_ASN1_ALLOC_FUNCTIONS
(
GENERAL_SUBTREE
)
586
587
DECLARE_ASN1_ITEM
(
NAME_CONSTRAINTS
)
588
DECLARE_ASN1_ALLOC_FUNCTIONS
(
NAME_CONSTRAINTS
)
589
590
DECLARE_ASN1_ALLOC_FUNCTIONS
(
POLICY_CONSTRAINTS
)
591
DECLARE_ASN1_ITEM
(
POLICY_CONSTRAINTS
)
592
593
GENERAL_NAME
*
a2i_GENERAL_NAME
(
GENERAL_NAME
*out,
594
const
X509V3_EXT_METHOD
*method,
X509V3_CTX
*ctx,
595
int
gen_type,
char
*value,
int
is_nc);
596
597
#ifdef HEADER_CONF_H
598
GENERAL_NAME
*
v2i_GENERAL_NAME
(
const
X509V3_EXT_METHOD
*method,
X509V3_CTX
*ctx,
599
CONF_VALUE
*cnf);
600
GENERAL_NAME
*
v2i_GENERAL_NAME_ex
(
GENERAL_NAME
*out,
601
const
X509V3_EXT_METHOD
*method,
602
X509V3_CTX
*ctx,
CONF_VALUE
*cnf,
int
is_nc);
603
void
X509V3_conf_free
(
CONF_VALUE
*val);
604
605
X509_EXTENSION
*
X509V3_EXT_nconf_nid
(
CONF
*conf,
X509V3_CTX
*ctx,
int
ext_nid,
char
*value);
606
X509_EXTENSION
*X509V3_EXT_nconf(
CONF
*conf,
X509V3_CTX
*ctx,
char
*
name
,
char
*value);
607
int
X509V3_EXT_add_nconf_sk
(
CONF
*conf,
X509V3_CTX
*ctx,
char
*section,
STACK_OF
(
X509_EXTENSION
) **sk);
608
int
X509V3_EXT_add_nconf
(
CONF
*conf,
X509V3_CTX
*ctx,
char
*section,
X509
*cert);
609
int
X509V3_EXT_REQ_add_nconf
(
CONF
*conf,
X509V3_CTX
*ctx,
char
*section,
X509_REQ
*req);
610
int
X509V3_EXT_CRL_add_nconf
(
CONF
*conf,
X509V3_CTX
*ctx,
char
*section,
X509_CRL
*crl);
611
612
X509_EXTENSION
*
X509V3_EXT_conf_nid
(
LHASH_OF
(
CONF_VALUE
) *conf,
X509V3_CTX
*ctx,
613
int
ext_nid,
char
*value);
614
X509_EXTENSION
*
X509V3_EXT_conf
(
LHASH_OF
(
CONF_VALUE
) *conf,
X509V3_CTX
*ctx,
615
char
*
name
,
char
*value);
616
int
X509V3_EXT_add_conf
(
LHASH_OF
(
CONF_VALUE
) *conf,
X509V3_CTX
*ctx,
617
char
*section,
X509
*cert);
618
int
X509V3_EXT_REQ_add_conf
(
LHASH_OF
(
CONF_VALUE
) *conf,
X509V3_CTX
*ctx,
619
char
*section,
X509_REQ
*req);
620
int
X509V3_EXT_CRL_add_conf
(
LHASH_OF
(
CONF_VALUE
) *conf,
X509V3_CTX
*ctx,
621
char
*section,
X509_CRL
*crl);
622
623
int
X509V3_add_value_bool_nf
(
char
*
name
,
int
asn1_bool,
624
STACK_OF
(
CONF_VALUE
) **extlist);
625
int
X509V3_get_value_bool
(
CONF_VALUE
*value,
int
*asn1_bool);
626
int
X509V3_get_value_int
(
CONF_VALUE
*value,
ASN1_INTEGER
**aint);
627
void
X509V3_set_nconf
(
X509V3_CTX
*ctx,
CONF
*conf);
628
void
X509V3_set_conf_lhash
(
X509V3_CTX
*ctx,
LHASH_OF
(
CONF_VALUE
) *lhash);
629
#endif
630
631
char
*
X509V3_get_string
(
X509V3_CTX
*ctx,
char
*name,
char
*section);
632
STACK_OF
(
CONF_VALUE
) * X509V3_get_section(
X509V3_CTX
*ctx,
char
*section);
633
void
X509V3_string_free
(
X509V3_CTX
*ctx,
char
*str);
634
void
X509V3_section_free
(
X509V3_CTX
*ctx,
STACK_OF
(
CONF_VALUE
) *section);
635
void
X509V3_set_ctx
(
X509V3_CTX
*ctx,
X509
*issuer,
X509
*subject,
636
X509_REQ
*req,
X509_CRL
*crl,
int
flags
);
637
638
int
X509V3_add_value
(
const
char
*name,
const
char
*value,
639
STACK_OF
(
CONF_VALUE
) **extlist);
640
int
X509V3_add_value_uchar
(
const
char
*name,
const
unsigned
char
*value,
641
STACK_OF
(
CONF_VALUE
) **extlist);
642
int
X509V3_add_value_bool
(
const
char
*name,
int
asn1_bool,
643
STACK_OF
(
CONF_VALUE
) **extlist);
644
int
X509V3_add_value_int
(
const
char
*name,
ASN1_INTEGER
*aint,
645
STACK_OF
(
CONF_VALUE
) **extlist);
646
char
*
i2s_ASN1_INTEGER
(
X509V3_EXT_METHOD
*meth,
ASN1_INTEGER
*aint);
647
ASN1_INTEGER
*
s2i_ASN1_INTEGER
(
X509V3_EXT_METHOD
*meth,
char
*value);
648
char
*
i2s_ASN1_ENUMERATED
(
X509V3_EXT_METHOD
*meth,
ASN1_ENUMERATED
*aint);
649
char
*
i2s_ASN1_ENUMERATED_TABLE
(
X509V3_EXT_METHOD
*meth,
ASN1_ENUMERATED
*aint);
650
int
X509V3_EXT_add
(
X509V3_EXT_METHOD
*ext);
651
int
X509V3_EXT_add_list
(
X509V3_EXT_METHOD
*extlist);
652
int
X509V3_EXT_add_alias
(
int
nid_to,
int
nid_from);
653
void
X509V3_EXT_cleanup
(
void
);
654
655
const
X509V3_EXT_METHOD
*
X509V3_EXT_get
(
X509_EXTENSION
*ext);
656
const
X509V3_EXT_METHOD
*
X509V3_EXT_get_nid
(
int
nid
);
657
int
X509V3_add_standard_extensions
(
void
);
658
STACK_OF
(
CONF_VALUE
) *X509V3_parse_list(
const
char
*line);
659
void
*
X509V3_EXT_d2i
(
X509_EXTENSION
*ext);
660
void
*
X509V3_get_d2i
(
STACK_OF
(
X509_EXTENSION
) *x,
int
nid
,
int
*crit,
int
*idx);
661
662
663
X509_EXTENSION
*
X509V3_EXT_i2d
(
int
ext_nid,
int
crit,
void
*ext_struc);
664
int
X509V3_add1_i2d
(
STACK_OF
(
X509_EXTENSION
) **x,
int
nid
,
void
*value,
int
crit,
unsigned
long
flags
);
665
666
char
*
hex_to_string
(
const
unsigned
char
*buffer,
long
len
);
667
unsigned
char
*
string_to_hex
(
const
char
*str,
long
*
len
);
668
int
name_cmp
(
const
char
*name,
const
char
*cmp);
669
670
void
X509V3_EXT_val_prn
(
BIO
*out,
STACK_OF
(
CONF_VALUE
) *val,
int
indent,
671
int
ml);
672
int
X509V3_EXT_print
(
BIO
*out,
X509_EXTENSION
*ext,
unsigned
long
flag,
int
indent);
673
int
X509V3_EXT_print_fp
(FILE *out,
X509_EXTENSION
*ext,
int
flag,
int
indent);
674
675
int
X509V3_extensions_print
(
BIO
*out,
char
*title,
STACK_OF
(
X509_EXTENSION
) *exts,
unsigned
long
flag,
int
indent);
676
677
int
X509_check_ca
(
X509
*x);
678
int
X509_check_purpose
(
X509
*x,
int
id
,
int
ca);
679
int
X509_supported_extension
(
X509_EXTENSION
*
ex
);
680
int
X509_PURPOSE_set
(
int
*
p
,
int
purpose
);
681
int
X509_check_issued
(
X509
*issuer,
X509
*subject);
682
int
X509_check_akid
(
X509
*issuer,
AUTHORITY_KEYID
*akid);
683
int
X509_PURPOSE_get_count
(
void
);
684
X509_PURPOSE
*
X509_PURPOSE_get0
(
int
idx);
685
int
X509_PURPOSE_get_by_sname
(
char
*
sname
);
686
int
X509_PURPOSE_get_by_id
(
int
id
);
687
int
X509_PURPOSE_add
(
int
id
,
int
trust
,
int
flags
,
688
int
(*ck)(
const
X509_PURPOSE
*,
const
X509
*,
int
),
689
char
*name,
char
*
sname
,
void
*
arg
);
690
char
*
X509_PURPOSE_get0_name
(
X509_PURPOSE
*xp);
691
char
*
X509_PURPOSE_get0_sname
(
X509_PURPOSE
*xp);
692
int
X509_PURPOSE_get_trust
(
X509_PURPOSE
*xp);
693
void
X509_PURPOSE_cleanup
(
void
);
694
int
X509_PURPOSE_get_id
(
X509_PURPOSE
*);
695
696
STACK_OF
(
OPENSSL_STRING
) *X509_get1_email(
X509
*x);
697
STACK_OF
(
OPENSSL_STRING
) *X509_REQ_get1_email(
X509_REQ
*x);
698
void
X509_email_free
(
STACK_OF
(
OPENSSL_STRING
) *sk);
699
STACK_OF
(
OPENSSL_STRING
) *X509_get1_ocsp(
X509
*x);
700
701
ASN1_OCTET_STRING
*
a2i_IPADDRESS
(
const
char
*ipasc);
702
ASN1_OCTET_STRING
*
a2i_IPADDRESS_NC
(
const
char
*ipasc);
703
int
a2i_ipadd
(
unsigned
char
*ipout,
const
char
*ipasc);
704
int
X509V3_NAME_from_section
(
X509_NAME
*
nm
,
STACK_OF
(
CONF_VALUE
)*dn_sk,
705
unsigned
long
chtype);
706
707
void
X509_POLICY_NODE_print
(
BIO
*out,
X509_POLICY_NODE
*node,
int
indent);
708
DECLARE_STACK_OF
(
X509_POLICY_NODE
)
709
710
#ifndef OPENSSL_NO_RFC3779
711
712
typedef
struct
ASRange_st
{
713
ASN1_INTEGER
*
min
, *
max
;
714
}
ASRange
;
715
716
#define ASIdOrRange_id 0
717
#define ASIdOrRange_range 1
718
719
typedef
struct
ASIdOrRange_st
{
720
int
type
;
721
union
{
722
ASN1_INTEGER
*
id
;
723
ASRange
*
range
;
724
}
u
;
725
}
ASIdOrRange
;
726
727
typedef
STACK_OF
(
ASIdOrRange
) ASIdOrRanges;
728
DECLARE_STACK_OF
(
ASIdOrRange
)
729
730
#define ASIdentifierChoice_inherit 0
731
#define ASIdentifierChoice_asIdsOrRanges 1
732
733
typedef
struct
ASIdentifierChoice_st
{
734
int
type
;
735
union
{
736
ASN1_NULL
*
inherit
;
737
ASIdOrRanges *
asIdsOrRanges
;
738
}
u
;
739
}
ASIdentifierChoice
;
740
741
typedef
struct
ASIdentifiers_st
{
742
ASIdentifierChoice
*
asnum
, *
rdi
;
743
}
ASIdentifiers
;
744
745
DECLARE_ASN1_FUNCTIONS
(
ASRange
)
746
DECLARE_ASN1_FUNCTIONS
(
ASIdOrRange
)
747
DECLARE_ASN1_FUNCTIONS
(
ASIdentifierChoice
)
748
DECLARE_ASN1_FUNCTIONS
(
ASIdentifiers
)
749
750
751
typedef struct
IPAddressRange_st
{
752
ASN1_BIT_STRING
*
min
, *
max
;
753
}
IPAddressRange
;
754
755
#define IPAddressOrRange_addressPrefix 0
756
#define IPAddressOrRange_addressRange 1
757
758
typedef
struct
IPAddressOrRange_st
{
759
int
type
;
760
union
{
761
ASN1_BIT_STRING
*
addressPrefix
;
762
IPAddressRange
*
addressRange
;
763
}
u
;
764
}
IPAddressOrRange
;
765
766
typedef
STACK_OF
(
IPAddressOrRange
) IPAddressOrRanges;
767
DECLARE_STACK_OF
(
IPAddressOrRange
)
768
769
#define IPAddressChoice_inherit 0
770
#define IPAddressChoice_addressesOrRanges 1
771
772
typedef
struct
IPAddressChoice_st
{
773
int
type
;
774
union
{
775
ASN1_NULL
*
inherit
;
776
IPAddressOrRanges *
addressesOrRanges
;
777
}
u
;
778
}
IPAddressChoice
;
779
780
typedef
struct
IPAddressFamily_st
{
781
ASN1_OCTET_STRING
*
addressFamily
;
782
IPAddressChoice
*
ipAddressChoice
;
783
}
IPAddressFamily
;
784
785
typedef
STACK_OF
(
IPAddressFamily
) IPAddrBlocks;
786
DECLARE_STACK_OF
(
IPAddressFamily
)
787
788
DECLARE_ASN1_FUNCTIONS
(
IPAddressRange
)
789
DECLARE_ASN1_FUNCTIONS
(
IPAddressOrRange
)
790
DECLARE_ASN1_FUNCTIONS
(
IPAddressChoice
)
791
DECLARE_ASN1_FUNCTIONS
(
IPAddressFamily
)
792
793
/*
794
* API tag for elements of the ASIdentifer SEQUENCE.
795
*/
796
#define V3_ASID_ASNUM 0
797
#define V3_ASID_RDI 1
798
799
/*
800
* AFI values, assigned by IANA. It'd be nice to make the AFI
801
* handling code totally generic, but there are too many little things
802
* that would need to be defined for other address families for it to
803
* be worth the trouble.
804
*/
805
#define IANA_AFI_IPV4 1
806
#define IANA_AFI_IPV6 2
807
808
/*
809
* Utilities to construct and extract values from RFC3779 extensions,
810
* since some of the encodings (particularly for IP address prefixes
811
* and ranges) are a bit tedious to work with directly.
812
*/
813
int
v3_asid_add_inherit
(
ASIdentifiers
*asid,
int
which);
814
int
v3_asid_add_id_or_range
(
ASIdentifiers
*asid,
int
which,
815
ASN1_INTEGER
*
min
,
ASN1_INTEGER
*
max
);
816
int
v3_addr_add_inherit
(IPAddrBlocks *addr,
817
const
unsigned
afi,
const
unsigned
*safi);
818
int
v3_addr_add_prefix
(IPAddrBlocks *addr,
819
const
unsigned
afi,
const
unsigned
*safi,
820
unsigned
char
*a,
const
int
prefixlen);
821
int
v3_addr_add_range
(IPAddrBlocks *addr,
822
const
unsigned
afi,
const
unsigned
*safi,
823
unsigned
char
*
min
,
unsigned
char
*
max
);
824
unsigned
v3_addr_get_afi
(
const
IPAddressFamily
*
f
);
825
int
v3_addr_get_range
(
IPAddressOrRange
*aor,
const
unsigned
afi,
826
unsigned
char
*
min
,
unsigned
char
*
max
,
827
const
int
length
);
828
829
/*
830
* Canonical forms.
831
*/
832
int
v3_asid_is_canonical
(
ASIdentifiers
*asid);
833
int
v3_addr_is_canonical
(IPAddrBlocks *addr);
834
int
v3_asid_canonize
(
ASIdentifiers
*asid);
835
int
v3_addr_canonize
(IPAddrBlocks *addr);
836
837
/*
838
* Tests for inheritance and containment.
839
*/
840
int
v3_asid_inherits
(
ASIdentifiers
*asid);
841
int
v3_addr_inherits
(IPAddrBlocks *addr);
842
int
v3_asid_subset
(
ASIdentifiers
*a,
ASIdentifiers
*b);
843
int
v3_addr_subset
(IPAddrBlocks *a, IPAddrBlocks *b);
844
845
/*
846
* Check whether RFC 3779 extensions nest properly in chains.
847
*/
848
int
v3_asid_validate_path
(
X509_STORE_CTX
*);
849
int
v3_addr_validate_path
(
X509_STORE_CTX
*);
850
int
v3_asid_validate_resource_set
(
STACK_OF
(
X509
) *chain,
851
ASIdentifiers
*ext,
852
int
allow_inheritance);
853
int
v3_addr_validate_resource_set
(
STACK_OF
(
X509
) *chain,
854
IPAddrBlocks *ext,
855
int
allow_inheritance);
856
857
#endif
/* OPENSSL_NO_RFC3779 */
858
859
/* BEGIN ERROR CODES */
860
/* The following lines are auto generated by the script mkerr.pl. Any changes
861
* made after this point may be overwritten when the script is next run.
862
*/
863
void
ERR_load_X509V3_strings
(
void
);
864
865
/* Error codes for the X509V3 functions. */
866
867
/* Function codes. */
868
#define X509V3_F_A2I_GENERAL_NAME 164
869
#define X509V3_F_ASIDENTIFIERCHOICE_CANONIZE 161
870
#define X509V3_F_ASIDENTIFIERCHOICE_IS_CANONICAL 162
871
#define X509V3_F_COPY_EMAIL 122
872
#define X509V3_F_COPY_ISSUER 123
873
#define X509V3_F_DO_DIRNAME 144
874
#define X509V3_F_DO_EXT_CONF 124
875
#define X509V3_F_DO_EXT_I2D 135
876
#define X509V3_F_DO_EXT_NCONF 151
877
#define X509V3_F_DO_I2V_NAME_CONSTRAINTS 148
878
#define X509V3_F_GNAMES_FROM_SECTNAME 156
879
#define X509V3_F_HEX_TO_STRING 111
880
#define X509V3_F_I2S_ASN1_ENUMERATED 121
881
#define X509V3_F_I2S_ASN1_IA5STRING 149
882
#define X509V3_F_I2S_ASN1_INTEGER 120
883
#define X509V3_F_I2V_AUTHORITY_INFO_ACCESS 138
884
#define X509V3_F_NOTICE_SECTION 132
885
#define X509V3_F_NREF_NOS 133
886
#define X509V3_F_POLICY_SECTION 131
887
#define X509V3_F_PROCESS_PCI_VALUE 150
888
#define X509V3_F_R2I_CERTPOL 130
889
#define X509V3_F_R2I_PCI 155
890
#define X509V3_F_S2I_ASN1_IA5STRING 100
891
#define X509V3_F_S2I_ASN1_INTEGER 108
892
#define X509V3_F_S2I_ASN1_OCTET_STRING 112
893
#define X509V3_F_S2I_ASN1_SKEY_ID 114
894
#define X509V3_F_S2I_SKEY_ID 115
895
#define X509V3_F_SET_DIST_POINT_NAME 158
896
#define X509V3_F_STRING_TO_HEX 113
897
#define X509V3_F_SXNET_ADD_ID_ASC 125
898
#define X509V3_F_SXNET_ADD_ID_INTEGER 126
899
#define X509V3_F_SXNET_ADD_ID_ULONG 127
900
#define X509V3_F_SXNET_GET_ID_ASC 128
901
#define X509V3_F_SXNET_GET_ID_ULONG 129
902
#define X509V3_F_V2I_ASIDENTIFIERS 163
903
#define X509V3_F_V2I_ASN1_BIT_STRING 101
904
#define X509V3_F_V2I_AUTHORITY_INFO_ACCESS 139
905
#define X509V3_F_V2I_AUTHORITY_KEYID 119
906
#define X509V3_F_V2I_BASIC_CONSTRAINTS 102
907
#define X509V3_F_V2I_CRLD 134
908
#define X509V3_F_V2I_EXTENDED_KEY_USAGE 103
909
#define X509V3_F_V2I_GENERAL_NAMES 118
910
#define X509V3_F_V2I_GENERAL_NAME_EX 117
911
#define X509V3_F_V2I_IDP 157
912
#define X509V3_F_V2I_IPADDRBLOCKS 159
913
#define X509V3_F_V2I_ISSUER_ALT 153
914
#define X509V3_F_V2I_NAME_CONSTRAINTS 147
915
#define X509V3_F_V2I_POLICY_CONSTRAINTS 146
916
#define X509V3_F_V2I_POLICY_MAPPINGS 145
917
#define X509V3_F_V2I_SUBJECT_ALT 154
918
#define X509V3_F_V3_ADDR_VALIDATE_PATH_INTERNAL 160
919
#define X509V3_F_V3_GENERIC_EXTENSION 116
920
#define X509V3_F_X509V3_ADD1_I2D 140
921
#define X509V3_F_X509V3_ADD_VALUE 105
922
#define X509V3_F_X509V3_EXT_ADD 104
923
#define X509V3_F_X509V3_EXT_ADD_ALIAS 106
924
#define X509V3_F_X509V3_EXT_CONF 107
925
#define X509V3_F_X509V3_EXT_I2D 136
926
#define X509V3_F_X509V3_EXT_NCONF 152
927
#define X509V3_F_X509V3_GET_SECTION 142
928
#define X509V3_F_X509V3_GET_STRING 143
929
#define X509V3_F_X509V3_GET_VALUE_BOOL 110
930
#define X509V3_F_X509V3_PARSE_LIST 109
931
#define X509V3_F_X509_PURPOSE_ADD 137
932
#define X509V3_F_X509_PURPOSE_SET 141
933
934
/* Reason codes. */
935
#define X509V3_R_BAD_IP_ADDRESS 118
936
#define X509V3_R_BAD_OBJECT 119
937
#define X509V3_R_BN_DEC2BN_ERROR 100
938
#define X509V3_R_BN_TO_ASN1_INTEGER_ERROR 101
939
#define X509V3_R_DIRNAME_ERROR 149
940
#define X509V3_R_DISTPOINT_ALREADY_SET 160
941
#define X509V3_R_DUPLICATE_ZONE_ID 133
942
#define X509V3_R_ERROR_CONVERTING_ZONE 131
943
#define X509V3_R_ERROR_CREATING_EXTENSION 144
944
#define X509V3_R_ERROR_IN_EXTENSION 128
945
#define X509V3_R_EXPECTED_A_SECTION_NAME 137
946
#define X509V3_R_EXTENSION_EXISTS 145
947
#define X509V3_R_EXTENSION_NAME_ERROR 115
948
#define X509V3_R_EXTENSION_NOT_FOUND 102
949
#define X509V3_R_EXTENSION_SETTING_NOT_SUPPORTED 103
950
#define X509V3_R_EXTENSION_VALUE_ERROR 116
951
#define X509V3_R_ILLEGAL_EMPTY_EXTENSION 151
952
#define X509V3_R_ILLEGAL_HEX_DIGIT 113
953
#define X509V3_R_INCORRECT_POLICY_SYNTAX_TAG 152
954
#define X509V3_R_INVALID_MULTIPLE_RDNS 161
955
#define X509V3_R_INVALID_ASNUMBER 162
956
#define X509V3_R_INVALID_ASRANGE 163
957
#define X509V3_R_INVALID_BOOLEAN_STRING 104
958
#define X509V3_R_INVALID_EXTENSION_STRING 105
959
#define X509V3_R_INVALID_INHERITANCE 165
960
#define X509V3_R_INVALID_IPADDRESS 166
961
#define X509V3_R_INVALID_NAME 106
962
#define X509V3_R_INVALID_NULL_ARGUMENT 107
963
#define X509V3_R_INVALID_NULL_NAME 108
964
#define X509V3_R_INVALID_NULL_VALUE 109
965
#define X509V3_R_INVALID_NUMBER 140
966
#define X509V3_R_INVALID_NUMBERS 141
967
#define X509V3_R_INVALID_OBJECT_IDENTIFIER 110
968
#define X509V3_R_INVALID_OPTION 138
969
#define X509V3_R_INVALID_POLICY_IDENTIFIER 134
970
#define X509V3_R_INVALID_PROXY_POLICY_SETTING 153
971
#define X509V3_R_INVALID_PURPOSE 146
972
#define X509V3_R_INVALID_SAFI 164
973
#define X509V3_R_INVALID_SECTION 135
974
#define X509V3_R_INVALID_SYNTAX 143
975
#define X509V3_R_ISSUER_DECODE_ERROR 126
976
#define X509V3_R_MISSING_VALUE 124
977
#define X509V3_R_NEED_ORGANIZATION_AND_NUMBERS 142
978
#define X509V3_R_NO_CONFIG_DATABASE 136
979
#define X509V3_R_NO_ISSUER_CERTIFICATE 121
980
#define X509V3_R_NO_ISSUER_DETAILS 127
981
#define X509V3_R_NO_POLICY_IDENTIFIER 139
982
#define X509V3_R_NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED 154
983
#define X509V3_R_NO_PUBLIC_KEY 114
984
#define X509V3_R_NO_SUBJECT_DETAILS 125
985
#define X509V3_R_ODD_NUMBER_OF_DIGITS 112
986
#define X509V3_R_OPERATION_NOT_DEFINED 148
987
#define X509V3_R_OTHERNAME_ERROR 147
988
#define X509V3_R_POLICY_LANGUAGE_ALREADY_DEFINED 155
989
#define X509V3_R_POLICY_PATH_LENGTH 156
990
#define X509V3_R_POLICY_PATH_LENGTH_ALREADY_DEFINED 157
991
#define X509V3_R_POLICY_SYNTAX_NOT_CURRENTLY_SUPPORTED 158
992
#define X509V3_R_POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY 159
993
#define X509V3_R_SECTION_NOT_FOUND 150
994
#define X509V3_R_UNABLE_TO_GET_ISSUER_DETAILS 122
995
#define X509V3_R_UNABLE_TO_GET_ISSUER_KEYID 123
996
#define X509V3_R_UNKNOWN_BIT_STRING_ARGUMENT 111
997
#define X509V3_R_UNKNOWN_EXTENSION 129
998
#define X509V3_R_UNKNOWN_EXTENSION_NAME 130
999
#define X509V3_R_UNKNOWN_OPTION 120
1000
#define X509V3_R_UNSUPPORTED_OPTION 117
1001
#define X509V3_R_UNSUPPORTED_TYPE 167
1002
#define X509V3_R_USER_TOO_LONG 132
1003
1004
#ifdef __cplusplus
1005
}
1006
#endif
1007
#endif
Generated on Thu Jan 10 2013 09:53:41 for OpenSSL by
1.8.2