Mercurial > repos > rliterman > csp2
comparison CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/include/openssl/x509v3.h @ 69:33d812a61356
planemo upload commit 2e9511a184a1ca667c7be0c6321a36dc4e3d116d
author | jpayne |
---|---|
date | Tue, 18 Mar 2025 17:55:14 -0400 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
67:0e9998148a16 | 69:33d812a61356 |
---|---|
1 /* | |
2 * Copyright 1999-2023 The OpenSSL Project Authors. All Rights Reserved. | |
3 * | |
4 * Licensed under the OpenSSL license (the "License"). You may not use | |
5 * this file except in compliance with the License. You can obtain a copy | |
6 * in the file LICENSE in the source distribution or at | |
7 * https://www.openssl.org/source/license.html | |
8 */ | |
9 | |
10 #ifndef HEADER_X509V3_H | |
11 # define HEADER_X509V3_H | |
12 | |
13 # include <openssl/bio.h> | |
14 # include <openssl/x509.h> | |
15 # include <openssl/conf.h> | |
16 # include <openssl/x509v3err.h> | |
17 | |
18 #ifdef __cplusplus | |
19 extern "C" { | |
20 #endif | |
21 | |
22 /* Forward reference */ | |
23 struct v3_ext_method; | |
24 struct v3_ext_ctx; | |
25 | |
26 /* Useful typedefs */ | |
27 | |
28 typedef void *(*X509V3_EXT_NEW)(void); | |
29 typedef void (*X509V3_EXT_FREE) (void *); | |
30 typedef void *(*X509V3_EXT_D2I)(void *, const unsigned char **, long); | |
31 typedef int (*X509V3_EXT_I2D) (void *, unsigned char **); | |
32 typedef STACK_OF(CONF_VALUE) * | |
33 (*X509V3_EXT_I2V) (const struct v3_ext_method *method, void *ext, | |
34 STACK_OF(CONF_VALUE) *extlist); | |
35 typedef void *(*X509V3_EXT_V2I)(const struct v3_ext_method *method, | |
36 struct v3_ext_ctx *ctx, | |
37 STACK_OF(CONF_VALUE) *values); | |
38 typedef char *(*X509V3_EXT_I2S)(const struct v3_ext_method *method, | |
39 void *ext); | |
40 typedef void *(*X509V3_EXT_S2I)(const struct v3_ext_method *method, | |
41 struct v3_ext_ctx *ctx, const char *str); | |
42 typedef int (*X509V3_EXT_I2R) (const struct v3_ext_method *method, void *ext, | |
43 BIO *out, int indent); | |
44 typedef void *(*X509V3_EXT_R2I)(const struct v3_ext_method *method, | |
45 struct v3_ext_ctx *ctx, const char *str); | |
46 | |
47 /* V3 extension structure */ | |
48 | |
49 struct v3_ext_method { | |
50 int ext_nid; | |
51 int ext_flags; | |
52 /* If this is set the following four fields are ignored */ | |
53 ASN1_ITEM_EXP *it; | |
54 /* Old style ASN1 calls */ | |
55 X509V3_EXT_NEW ext_new; | |
56 X509V3_EXT_FREE ext_free; | |
57 X509V3_EXT_D2I d2i; | |
58 X509V3_EXT_I2D i2d; | |
59 /* The following pair is used for string extensions */ | |
60 X509V3_EXT_I2S i2s; | |
61 X509V3_EXT_S2I s2i; | |
62 /* The following pair is used for multi-valued extensions */ | |
63 X509V3_EXT_I2V i2v; | |
64 X509V3_EXT_V2I v2i; | |
65 /* The following are used for raw extensions */ | |
66 X509V3_EXT_I2R i2r; | |
67 X509V3_EXT_R2I r2i; | |
68 void *usr_data; /* Any extension specific data */ | |
69 }; | |
70 | |
71 typedef struct X509V3_CONF_METHOD_st { | |
72 char *(*get_string) (void *db, const char *section, const char *value); | |
73 STACK_OF(CONF_VALUE) *(*get_section) (void *db, const char *section); | |
74 void (*free_string) (void *db, char *string); | |
75 void (*free_section) (void *db, STACK_OF(CONF_VALUE) *section); | |
76 } X509V3_CONF_METHOD; | |
77 | |
78 /* Context specific info */ | |
79 struct v3_ext_ctx { | |
80 # define CTX_TEST 0x1 | |
81 # define X509V3_CTX_REPLACE 0x2 | |
82 int flags; | |
83 X509 *issuer_cert; | |
84 X509 *subject_cert; | |
85 X509_REQ *subject_req; | |
86 X509_CRL *crl; | |
87 X509V3_CONF_METHOD *db_meth; | |
88 void *db; | |
89 /* Maybe more here */ | |
90 }; | |
91 | |
92 typedef struct v3_ext_method X509V3_EXT_METHOD; | |
93 | |
94 DEFINE_STACK_OF(X509V3_EXT_METHOD) | |
95 | |
96 /* ext_flags values */ | |
97 # define X509V3_EXT_DYNAMIC 0x1 | |
98 # define X509V3_EXT_CTX_DEP 0x2 | |
99 # define X509V3_EXT_MULTILINE 0x4 | |
100 | |
101 typedef BIT_STRING_BITNAME ENUMERATED_NAMES; | |
102 | |
103 typedef struct BASIC_CONSTRAINTS_st { | |
104 int ca; | |
105 ASN1_INTEGER *pathlen; | |
106 } BASIC_CONSTRAINTS; | |
107 | |
108 typedef struct PKEY_USAGE_PERIOD_st { | |
109 ASN1_GENERALIZEDTIME *notBefore; | |
110 ASN1_GENERALIZEDTIME *notAfter; | |
111 } PKEY_USAGE_PERIOD; | |
112 | |
113 typedef struct otherName_st { | |
114 ASN1_OBJECT *type_id; | |
115 ASN1_TYPE *value; | |
116 } OTHERNAME; | |
117 | |
118 typedef struct EDIPartyName_st { | |
119 ASN1_STRING *nameAssigner; | |
120 ASN1_STRING *partyName; | |
121 } EDIPARTYNAME; | |
122 | |
123 typedef struct GENERAL_NAME_st { | |
124 # define GEN_OTHERNAME 0 | |
125 # define GEN_EMAIL 1 | |
126 # define GEN_DNS 2 | |
127 # define GEN_X400 3 | |
128 # define GEN_DIRNAME 4 | |
129 # define GEN_EDIPARTY 5 | |
130 # define GEN_URI 6 | |
131 # define GEN_IPADD 7 | |
132 # define GEN_RID 8 | |
133 int type; | |
134 union { | |
135 char *ptr; | |
136 OTHERNAME *otherName; /* otherName */ | |
137 ASN1_IA5STRING *rfc822Name; | |
138 ASN1_IA5STRING *dNSName; | |
139 ASN1_STRING *x400Address; | |
140 X509_NAME *directoryName; | |
141 EDIPARTYNAME *ediPartyName; | |
142 ASN1_IA5STRING *uniformResourceIdentifier; | |
143 ASN1_OCTET_STRING *iPAddress; | |
144 ASN1_OBJECT *registeredID; | |
145 /* Old names */ | |
146 ASN1_OCTET_STRING *ip; /* iPAddress */ | |
147 X509_NAME *dirn; /* dirn */ | |
148 ASN1_IA5STRING *ia5; /* rfc822Name, dNSName, | |
149 * uniformResourceIdentifier */ | |
150 ASN1_OBJECT *rid; /* registeredID */ | |
151 ASN1_TYPE *other; /* x400Address */ | |
152 } d; | |
153 } GENERAL_NAME; | |
154 | |
155 typedef struct ACCESS_DESCRIPTION_st { | |
156 ASN1_OBJECT *method; | |
157 GENERAL_NAME *location; | |
158 } ACCESS_DESCRIPTION; | |
159 | |
160 typedef STACK_OF(ACCESS_DESCRIPTION) AUTHORITY_INFO_ACCESS; | |
161 | |
162 typedef STACK_OF(ASN1_OBJECT) EXTENDED_KEY_USAGE; | |
163 | |
164 typedef STACK_OF(ASN1_INTEGER) TLS_FEATURE; | |
165 | |
166 DEFINE_STACK_OF(GENERAL_NAME) | |
167 typedef STACK_OF(GENERAL_NAME) GENERAL_NAMES; | |
168 DEFINE_STACK_OF(GENERAL_NAMES) | |
169 | |
170 DEFINE_STACK_OF(ACCESS_DESCRIPTION) | |
171 | |
172 typedef struct DIST_POINT_NAME_st { | |
173 int type; | |
174 union { | |
175 GENERAL_NAMES *fullname; | |
176 STACK_OF(X509_NAME_ENTRY) *relativename; | |
177 } name; | |
178 /* If relativename then this contains the full distribution point name */ | |
179 X509_NAME *dpname; | |
180 } DIST_POINT_NAME; | |
181 /* All existing reasons */ | |
182 # define CRLDP_ALL_REASONS 0x807f | |
183 | |
184 # define CRL_REASON_NONE -1 | |
185 # define CRL_REASON_UNSPECIFIED 0 | |
186 # define CRL_REASON_KEY_COMPROMISE 1 | |
187 # define CRL_REASON_CA_COMPROMISE 2 | |
188 # define CRL_REASON_AFFILIATION_CHANGED 3 | |
189 # define CRL_REASON_SUPERSEDED 4 | |
190 # define CRL_REASON_CESSATION_OF_OPERATION 5 | |
191 # define CRL_REASON_CERTIFICATE_HOLD 6 | |
192 # define CRL_REASON_REMOVE_FROM_CRL 8 | |
193 # define CRL_REASON_PRIVILEGE_WITHDRAWN 9 | |
194 # define CRL_REASON_AA_COMPROMISE 10 | |
195 | |
196 struct DIST_POINT_st { | |
197 DIST_POINT_NAME *distpoint; | |
198 ASN1_BIT_STRING *reasons; | |
199 GENERAL_NAMES *CRLissuer; | |
200 int dp_reasons; | |
201 }; | |
202 | |
203 typedef STACK_OF(DIST_POINT) CRL_DIST_POINTS; | |
204 | |
205 DEFINE_STACK_OF(DIST_POINT) | |
206 | |
207 struct AUTHORITY_KEYID_st { | |
208 ASN1_OCTET_STRING *keyid; | |
209 GENERAL_NAMES *issuer; | |
210 ASN1_INTEGER *serial; | |
211 }; | |
212 | |
213 /* Strong extranet structures */ | |
214 | |
215 typedef struct SXNET_ID_st { | |
216 ASN1_INTEGER *zone; | |
217 ASN1_OCTET_STRING *user; | |
218 } SXNETID; | |
219 | |
220 DEFINE_STACK_OF(SXNETID) | |
221 | |
222 typedef struct SXNET_st { | |
223 ASN1_INTEGER *version; | |
224 STACK_OF(SXNETID) *ids; | |
225 } SXNET; | |
226 | |
227 typedef struct NOTICEREF_st { | |
228 ASN1_STRING *organization; | |
229 STACK_OF(ASN1_INTEGER) *noticenos; | |
230 } NOTICEREF; | |
231 | |
232 typedef struct USERNOTICE_st { | |
233 NOTICEREF *noticeref; | |
234 ASN1_STRING *exptext; | |
235 } USERNOTICE; | |
236 | |
237 typedef struct POLICYQUALINFO_st { | |
238 ASN1_OBJECT *pqualid; | |
239 union { | |
240 ASN1_IA5STRING *cpsuri; | |
241 USERNOTICE *usernotice; | |
242 ASN1_TYPE *other; | |
243 } d; | |
244 } POLICYQUALINFO; | |
245 | |
246 DEFINE_STACK_OF(POLICYQUALINFO) | |
247 | |
248 typedef struct POLICYINFO_st { | |
249 ASN1_OBJECT *policyid; | |
250 STACK_OF(POLICYQUALINFO) *qualifiers; | |
251 } POLICYINFO; | |
252 | |
253 typedef STACK_OF(POLICYINFO) CERTIFICATEPOLICIES; | |
254 | |
255 DEFINE_STACK_OF(POLICYINFO) | |
256 | |
257 typedef struct POLICY_MAPPING_st { | |
258 ASN1_OBJECT *issuerDomainPolicy; | |
259 ASN1_OBJECT *subjectDomainPolicy; | |
260 } POLICY_MAPPING; | |
261 | |
262 DEFINE_STACK_OF(POLICY_MAPPING) | |
263 | |
264 typedef STACK_OF(POLICY_MAPPING) POLICY_MAPPINGS; | |
265 | |
266 typedef struct GENERAL_SUBTREE_st { | |
267 GENERAL_NAME *base; | |
268 ASN1_INTEGER *minimum; | |
269 ASN1_INTEGER *maximum; | |
270 } GENERAL_SUBTREE; | |
271 | |
272 DEFINE_STACK_OF(GENERAL_SUBTREE) | |
273 | |
274 struct NAME_CONSTRAINTS_st { | |
275 STACK_OF(GENERAL_SUBTREE) *permittedSubtrees; | |
276 STACK_OF(GENERAL_SUBTREE) *excludedSubtrees; | |
277 }; | |
278 | |
279 typedef struct POLICY_CONSTRAINTS_st { | |
280 ASN1_INTEGER *requireExplicitPolicy; | |
281 ASN1_INTEGER *inhibitPolicyMapping; | |
282 } POLICY_CONSTRAINTS; | |
283 | |
284 /* Proxy certificate structures, see RFC 3820 */ | |
285 typedef struct PROXY_POLICY_st { | |
286 ASN1_OBJECT *policyLanguage; | |
287 ASN1_OCTET_STRING *policy; | |
288 } PROXY_POLICY; | |
289 | |
290 typedef struct PROXY_CERT_INFO_EXTENSION_st { | |
291 ASN1_INTEGER *pcPathLengthConstraint; | |
292 PROXY_POLICY *proxyPolicy; | |
293 } PROXY_CERT_INFO_EXTENSION; | |
294 | |
295 DECLARE_ASN1_FUNCTIONS(PROXY_POLICY) | |
296 DECLARE_ASN1_FUNCTIONS(PROXY_CERT_INFO_EXTENSION) | |
297 | |
298 struct ISSUING_DIST_POINT_st { | |
299 DIST_POINT_NAME *distpoint; | |
300 int onlyuser; | |
301 int onlyCA; | |
302 ASN1_BIT_STRING *onlysomereasons; | |
303 int indirectCRL; | |
304 int onlyattr; | |
305 }; | |
306 | |
307 /* Values in idp_flags field */ | |
308 /* IDP present */ | |
309 # define IDP_PRESENT 0x1 | |
310 /* IDP values inconsistent */ | |
311 # define IDP_INVALID 0x2 | |
312 /* onlyuser true */ | |
313 # define IDP_ONLYUSER 0x4 | |
314 /* onlyCA true */ | |
315 # define IDP_ONLYCA 0x8 | |
316 /* onlyattr true */ | |
317 # define IDP_ONLYATTR 0x10 | |
318 /* indirectCRL true */ | |
319 # define IDP_INDIRECT 0x20 | |
320 /* onlysomereasons present */ | |
321 # define IDP_REASONS 0x40 | |
322 | |
323 # define X509V3_conf_err(val) ERR_add_error_data(6, \ | |
324 "section:", (val)->section, \ | |
325 ",name:", (val)->name, ",value:", (val)->value) | |
326 | |
327 # define X509V3_set_ctx_test(ctx) \ | |
328 X509V3_set_ctx(ctx, NULL, NULL, NULL, NULL, CTX_TEST) | |
329 # define X509V3_set_ctx_nodb(ctx) (ctx)->db = NULL; | |
330 | |
331 # define EXT_BITSTRING(nid, table) { nid, 0, ASN1_ITEM_ref(ASN1_BIT_STRING), \ | |
332 0,0,0,0, \ | |
333 0,0, \ | |
334 (X509V3_EXT_I2V)i2v_ASN1_BIT_STRING, \ | |
335 (X509V3_EXT_V2I)v2i_ASN1_BIT_STRING, \ | |
336 NULL, NULL, \ | |
337 table} | |
338 | |
339 # define EXT_IA5STRING(nid) { nid, 0, ASN1_ITEM_ref(ASN1_IA5STRING), \ | |
340 0,0,0,0, \ | |
341 (X509V3_EXT_I2S)i2s_ASN1_IA5STRING, \ | |
342 (X509V3_EXT_S2I)s2i_ASN1_IA5STRING, \ | |
343 0,0,0,0, \ | |
344 NULL} | |
345 | |
346 # define EXT_END { -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} | |
347 | |
348 /* X509_PURPOSE stuff */ | |
349 | |
350 # define EXFLAG_BCONS 0x1 | |
351 # define EXFLAG_KUSAGE 0x2 | |
352 # define EXFLAG_XKUSAGE 0x4 | |
353 # define EXFLAG_NSCERT 0x8 | |
354 | |
355 # define EXFLAG_CA 0x10 | |
356 /* Really self issued not necessarily self signed */ | |
357 # define EXFLAG_SI 0x20 | |
358 # define EXFLAG_V1 0x40 | |
359 # define EXFLAG_INVALID 0x80 | |
360 /* EXFLAG_SET is set to indicate that some values have been precomputed */ | |
361 # define EXFLAG_SET 0x100 | |
362 # define EXFLAG_CRITICAL 0x200 | |
363 # define EXFLAG_PROXY 0x400 | |
364 | |
365 # define EXFLAG_INVALID_POLICY 0x800 | |
366 # define EXFLAG_FRESHEST 0x1000 | |
367 # define EXFLAG_SS 0x2000 /* cert is apparently self-signed */ | |
368 | |
369 # define EXFLAG_NO_FINGERPRINT 0x100000 | |
370 | |
371 # define KU_DIGITAL_SIGNATURE 0x0080 | |
372 # define KU_NON_REPUDIATION 0x0040 | |
373 # define KU_KEY_ENCIPHERMENT 0x0020 | |
374 # define KU_DATA_ENCIPHERMENT 0x0010 | |
375 # define KU_KEY_AGREEMENT 0x0008 | |
376 # define KU_KEY_CERT_SIGN 0x0004 | |
377 # define KU_CRL_SIGN 0x0002 | |
378 # define KU_ENCIPHER_ONLY 0x0001 | |
379 # define KU_DECIPHER_ONLY 0x8000 | |
380 | |
381 # define NS_SSL_CLIENT 0x80 | |
382 # define NS_SSL_SERVER 0x40 | |
383 # define NS_SMIME 0x20 | |
384 # define NS_OBJSIGN 0x10 | |
385 # define NS_SSL_CA 0x04 | |
386 # define NS_SMIME_CA 0x02 | |
387 # define NS_OBJSIGN_CA 0x01 | |
388 # define NS_ANY_CA (NS_SSL_CA|NS_SMIME_CA|NS_OBJSIGN_CA) | |
389 | |
390 # define XKU_SSL_SERVER 0x1 | |
391 # define XKU_SSL_CLIENT 0x2 | |
392 # define XKU_SMIME 0x4 | |
393 # define XKU_CODE_SIGN 0x8 | |
394 # define XKU_SGC 0x10 | |
395 # define XKU_OCSP_SIGN 0x20 | |
396 # define XKU_TIMESTAMP 0x40 | |
397 # define XKU_DVCS 0x80 | |
398 # define XKU_ANYEKU 0x100 | |
399 | |
400 # define X509_PURPOSE_DYNAMIC 0x1 | |
401 # define X509_PURPOSE_DYNAMIC_NAME 0x2 | |
402 | |
403 typedef struct x509_purpose_st { | |
404 int purpose; | |
405 int trust; /* Default trust ID */ | |
406 int flags; | |
407 int (*check_purpose) (const struct x509_purpose_st *, const X509 *, int); | |
408 char *name; | |
409 char *sname; | |
410 void *usr_data; | |
411 } X509_PURPOSE; | |
412 | |
413 # define X509_PURPOSE_SSL_CLIENT 1 | |
414 # define X509_PURPOSE_SSL_SERVER 2 | |
415 # define X509_PURPOSE_NS_SSL_SERVER 3 | |
416 # define X509_PURPOSE_SMIME_SIGN 4 | |
417 # define X509_PURPOSE_SMIME_ENCRYPT 5 | |
418 # define X509_PURPOSE_CRL_SIGN 6 | |
419 # define X509_PURPOSE_ANY 7 | |
420 # define X509_PURPOSE_OCSP_HELPER 8 | |
421 # define X509_PURPOSE_TIMESTAMP_SIGN 9 | |
422 | |
423 # define X509_PURPOSE_MIN 1 | |
424 # define X509_PURPOSE_MAX 9 | |
425 | |
426 /* Flags for X509V3_EXT_print() */ | |
427 | |
428 # define X509V3_EXT_UNKNOWN_MASK (0xfL << 16) | |
429 /* Return error for unknown extensions */ | |
430 # define X509V3_EXT_DEFAULT 0 | |
431 /* Print error for unknown extensions */ | |
432 # define X509V3_EXT_ERROR_UNKNOWN (1L << 16) | |
433 /* ASN1 parse unknown extensions */ | |
434 # define X509V3_EXT_PARSE_UNKNOWN (2L << 16) | |
435 /* BIO_dump unknown extensions */ | |
436 # define X509V3_EXT_DUMP_UNKNOWN (3L << 16) | |
437 | |
438 /* Flags for X509V3_add1_i2d */ | |
439 | |
440 # define X509V3_ADD_OP_MASK 0xfL | |
441 # define X509V3_ADD_DEFAULT 0L | |
442 # define X509V3_ADD_APPEND 1L | |
443 # define X509V3_ADD_REPLACE 2L | |
444 # define X509V3_ADD_REPLACE_EXISTING 3L | |
445 # define X509V3_ADD_KEEP_EXISTING 4L | |
446 # define X509V3_ADD_DELETE 5L | |
447 # define X509V3_ADD_SILENT 0x10 | |
448 | |
449 DEFINE_STACK_OF(X509_PURPOSE) | |
450 | |
451 DECLARE_ASN1_FUNCTIONS(BASIC_CONSTRAINTS) | |
452 | |
453 DECLARE_ASN1_FUNCTIONS(SXNET) | |
454 DECLARE_ASN1_FUNCTIONS(SXNETID) | |
455 | |
456 int SXNET_add_id_asc(SXNET **psx, const char *zone, const char *user, int userlen); | |
457 int SXNET_add_id_ulong(SXNET **psx, unsigned long lzone, const char *user, | |
458 int userlen); | |
459 int SXNET_add_id_INTEGER(SXNET **psx, ASN1_INTEGER *izone, const char *user, | |
460 int userlen); | |
461 | |
462 ASN1_OCTET_STRING *SXNET_get_id_asc(SXNET *sx, const char *zone); | |
463 ASN1_OCTET_STRING *SXNET_get_id_ulong(SXNET *sx, unsigned long lzone); | |
464 ASN1_OCTET_STRING *SXNET_get_id_INTEGER(SXNET *sx, ASN1_INTEGER *zone); | |
465 | |
466 DECLARE_ASN1_FUNCTIONS(AUTHORITY_KEYID) | |
467 | |
468 DECLARE_ASN1_FUNCTIONS(PKEY_USAGE_PERIOD) | |
469 | |
470 DECLARE_ASN1_FUNCTIONS(GENERAL_NAME) | |
471 GENERAL_NAME *GENERAL_NAME_dup(GENERAL_NAME *a); | |
472 int GENERAL_NAME_cmp(GENERAL_NAME *a, GENERAL_NAME *b); | |
473 | |
474 ASN1_BIT_STRING *v2i_ASN1_BIT_STRING(X509V3_EXT_METHOD *method, | |
475 X509V3_CTX *ctx, | |
476 STACK_OF(CONF_VALUE) *nval); | |
477 STACK_OF(CONF_VALUE) *i2v_ASN1_BIT_STRING(X509V3_EXT_METHOD *method, | |
478 ASN1_BIT_STRING *bits, | |
479 STACK_OF(CONF_VALUE) *extlist); | |
480 char *i2s_ASN1_IA5STRING(X509V3_EXT_METHOD *method, ASN1_IA5STRING *ia5); | |
481 ASN1_IA5STRING *s2i_ASN1_IA5STRING(X509V3_EXT_METHOD *method, | |
482 X509V3_CTX *ctx, const char *str); | |
483 | |
484 STACK_OF(CONF_VALUE) *i2v_GENERAL_NAME(X509V3_EXT_METHOD *method, | |
485 GENERAL_NAME *gen, | |
486 STACK_OF(CONF_VALUE) *ret); | |
487 int GENERAL_NAME_print(BIO *out, GENERAL_NAME *gen); | |
488 | |
489 DECLARE_ASN1_FUNCTIONS(GENERAL_NAMES) | |
490 | |
491 STACK_OF(CONF_VALUE) *i2v_GENERAL_NAMES(X509V3_EXT_METHOD *method, | |
492 GENERAL_NAMES *gen, | |
493 STACK_OF(CONF_VALUE) *extlist); | |
494 GENERAL_NAMES *v2i_GENERAL_NAMES(const X509V3_EXT_METHOD *method, | |
495 X509V3_CTX *ctx, STACK_OF(CONF_VALUE) *nval); | |
496 | |
497 DECLARE_ASN1_FUNCTIONS(OTHERNAME) | |
498 DECLARE_ASN1_FUNCTIONS(EDIPARTYNAME) | |
499 int OTHERNAME_cmp(OTHERNAME *a, OTHERNAME *b); | |
500 void GENERAL_NAME_set0_value(GENERAL_NAME *a, int type, void *value); | |
501 void *GENERAL_NAME_get0_value(const GENERAL_NAME *a, int *ptype); | |
502 int GENERAL_NAME_set0_othername(GENERAL_NAME *gen, | |
503 ASN1_OBJECT *oid, ASN1_TYPE *value); | |
504 int GENERAL_NAME_get0_otherName(const GENERAL_NAME *gen, | |
505 ASN1_OBJECT **poid, ASN1_TYPE **pvalue); | |
506 | |
507 char *i2s_ASN1_OCTET_STRING(X509V3_EXT_METHOD *method, | |
508 const ASN1_OCTET_STRING *ia5); | |
509 ASN1_OCTET_STRING *s2i_ASN1_OCTET_STRING(X509V3_EXT_METHOD *method, | |
510 X509V3_CTX *ctx, const char *str); | |
511 | |
512 DECLARE_ASN1_FUNCTIONS(EXTENDED_KEY_USAGE) | |
513 int i2a_ACCESS_DESCRIPTION(BIO *bp, const ACCESS_DESCRIPTION *a); | |
514 | |
515 DECLARE_ASN1_ALLOC_FUNCTIONS(TLS_FEATURE) | |
516 | |
517 DECLARE_ASN1_FUNCTIONS(CERTIFICATEPOLICIES) | |
518 DECLARE_ASN1_FUNCTIONS(POLICYINFO) | |
519 DECLARE_ASN1_FUNCTIONS(POLICYQUALINFO) | |
520 DECLARE_ASN1_FUNCTIONS(USERNOTICE) | |
521 DECLARE_ASN1_FUNCTIONS(NOTICEREF) | |
522 | |
523 DECLARE_ASN1_FUNCTIONS(CRL_DIST_POINTS) | |
524 DECLARE_ASN1_FUNCTIONS(DIST_POINT) | |
525 DECLARE_ASN1_FUNCTIONS(DIST_POINT_NAME) | |
526 DECLARE_ASN1_FUNCTIONS(ISSUING_DIST_POINT) | |
527 | |
528 int DIST_POINT_set_dpname(DIST_POINT_NAME *dpn, X509_NAME *iname); | |
529 | |
530 int NAME_CONSTRAINTS_check(X509 *x, NAME_CONSTRAINTS *nc); | |
531 int NAME_CONSTRAINTS_check_CN(X509 *x, NAME_CONSTRAINTS *nc); | |
532 | |
533 DECLARE_ASN1_FUNCTIONS(ACCESS_DESCRIPTION) | |
534 DECLARE_ASN1_FUNCTIONS(AUTHORITY_INFO_ACCESS) | |
535 | |
536 DECLARE_ASN1_ITEM(POLICY_MAPPING) | |
537 DECLARE_ASN1_ALLOC_FUNCTIONS(POLICY_MAPPING) | |
538 DECLARE_ASN1_ITEM(POLICY_MAPPINGS) | |
539 | |
540 DECLARE_ASN1_ITEM(GENERAL_SUBTREE) | |
541 DECLARE_ASN1_ALLOC_FUNCTIONS(GENERAL_SUBTREE) | |
542 | |
543 DECLARE_ASN1_ITEM(NAME_CONSTRAINTS) | |
544 DECLARE_ASN1_ALLOC_FUNCTIONS(NAME_CONSTRAINTS) | |
545 | |
546 DECLARE_ASN1_ALLOC_FUNCTIONS(POLICY_CONSTRAINTS) | |
547 DECLARE_ASN1_ITEM(POLICY_CONSTRAINTS) | |
548 | |
549 GENERAL_NAME *a2i_GENERAL_NAME(GENERAL_NAME *out, | |
550 const X509V3_EXT_METHOD *method, | |
551 X509V3_CTX *ctx, int gen_type, | |
552 const char *value, int is_nc); | |
553 | |
554 # ifdef HEADER_CONF_H | |
555 GENERAL_NAME *v2i_GENERAL_NAME(const X509V3_EXT_METHOD *method, | |
556 X509V3_CTX *ctx, CONF_VALUE *cnf); | |
557 GENERAL_NAME *v2i_GENERAL_NAME_ex(GENERAL_NAME *out, | |
558 const X509V3_EXT_METHOD *method, | |
559 X509V3_CTX *ctx, CONF_VALUE *cnf, | |
560 int is_nc); | |
561 void X509V3_conf_free(CONF_VALUE *val); | |
562 | |
563 X509_EXTENSION *X509V3_EXT_nconf_nid(CONF *conf, X509V3_CTX *ctx, int ext_nid, | |
564 const char *value); | |
565 X509_EXTENSION *X509V3_EXT_nconf(CONF *conf, X509V3_CTX *ctx, const char *name, | |
566 const char *value); | |
567 int X509V3_EXT_add_nconf_sk(CONF *conf, X509V3_CTX *ctx, const char *section, | |
568 STACK_OF(X509_EXTENSION) **sk); | |
569 int X509V3_EXT_add_nconf(CONF *conf, X509V3_CTX *ctx, const char *section, | |
570 X509 *cert); | |
571 int X509V3_EXT_REQ_add_nconf(CONF *conf, X509V3_CTX *ctx, const char *section, | |
572 X509_REQ *req); | |
573 int X509V3_EXT_CRL_add_nconf(CONF *conf, X509V3_CTX *ctx, const char *section, | |
574 X509_CRL *crl); | |
575 | |
576 X509_EXTENSION *X509V3_EXT_conf_nid(LHASH_OF(CONF_VALUE) *conf, | |
577 X509V3_CTX *ctx, int ext_nid, | |
578 const char *value); | |
579 X509_EXTENSION *X509V3_EXT_conf(LHASH_OF(CONF_VALUE) *conf, X509V3_CTX *ctx, | |
580 const char *name, const char *value); | |
581 int X509V3_EXT_add_conf(LHASH_OF(CONF_VALUE) *conf, X509V3_CTX *ctx, | |
582 const char *section, X509 *cert); | |
583 int X509V3_EXT_REQ_add_conf(LHASH_OF(CONF_VALUE) *conf, X509V3_CTX *ctx, | |
584 const char *section, X509_REQ *req); | |
585 int X509V3_EXT_CRL_add_conf(LHASH_OF(CONF_VALUE) *conf, X509V3_CTX *ctx, | |
586 const char *section, X509_CRL *crl); | |
587 | |
588 int X509V3_add_value_bool_nf(const char *name, int asn1_bool, | |
589 STACK_OF(CONF_VALUE) **extlist); | |
590 int X509V3_get_value_bool(const CONF_VALUE *value, int *asn1_bool); | |
591 int X509V3_get_value_int(const CONF_VALUE *value, ASN1_INTEGER **aint); | |
592 void X509V3_set_nconf(X509V3_CTX *ctx, CONF *conf); | |
593 void X509V3_set_conf_lhash(X509V3_CTX *ctx, LHASH_OF(CONF_VALUE) *lhash); | |
594 # endif | |
595 | |
596 char *X509V3_get_string(X509V3_CTX *ctx, const char *name, const char *section); | |
597 STACK_OF(CONF_VALUE) *X509V3_get_section(X509V3_CTX *ctx, const char *section); | |
598 void X509V3_string_free(X509V3_CTX *ctx, char *str); | |
599 void X509V3_section_free(X509V3_CTX *ctx, STACK_OF(CONF_VALUE) *section); | |
600 void X509V3_set_ctx(X509V3_CTX *ctx, X509 *issuer, X509 *subject, | |
601 X509_REQ *req, X509_CRL *crl, int flags); | |
602 | |
603 int X509V3_add_value(const char *name, const char *value, | |
604 STACK_OF(CONF_VALUE) **extlist); | |
605 int X509V3_add_value_uchar(const char *name, const unsigned char *value, | |
606 STACK_OF(CONF_VALUE) **extlist); | |
607 int X509V3_add_value_bool(const char *name, int asn1_bool, | |
608 STACK_OF(CONF_VALUE) **extlist); | |
609 int X509V3_add_value_int(const char *name, const ASN1_INTEGER *aint, | |
610 STACK_OF(CONF_VALUE) **extlist); | |
611 char *i2s_ASN1_INTEGER(X509V3_EXT_METHOD *meth, const ASN1_INTEGER *aint); | |
612 ASN1_INTEGER *s2i_ASN1_INTEGER(X509V3_EXT_METHOD *meth, const char *value); | |
613 char *i2s_ASN1_ENUMERATED(X509V3_EXT_METHOD *meth, const ASN1_ENUMERATED *aint); | |
614 char *i2s_ASN1_ENUMERATED_TABLE(X509V3_EXT_METHOD *meth, | |
615 const ASN1_ENUMERATED *aint); | |
616 int X509V3_EXT_add(X509V3_EXT_METHOD *ext); | |
617 int X509V3_EXT_add_list(X509V3_EXT_METHOD *extlist); | |
618 int X509V3_EXT_add_alias(int nid_to, int nid_from); | |
619 void X509V3_EXT_cleanup(void); | |
620 | |
621 const X509V3_EXT_METHOD *X509V3_EXT_get(X509_EXTENSION *ext); | |
622 const X509V3_EXT_METHOD *X509V3_EXT_get_nid(int nid); | |
623 int X509V3_add_standard_extensions(void); | |
624 STACK_OF(CONF_VALUE) *X509V3_parse_list(const char *line); | |
625 void *X509V3_EXT_d2i(X509_EXTENSION *ext); | |
626 void *X509V3_get_d2i(const STACK_OF(X509_EXTENSION) *x, int nid, int *crit, | |
627 int *idx); | |
628 | |
629 X509_EXTENSION *X509V3_EXT_i2d(int ext_nid, int crit, void *ext_struc); | |
630 int X509V3_add1_i2d(STACK_OF(X509_EXTENSION) **x, int nid, void *value, | |
631 int crit, unsigned long flags); | |
632 | |
633 #if OPENSSL_API_COMPAT < 0x10100000L | |
634 /* The new declarations are in crypto.h, but the old ones were here. */ | |
635 # define hex_to_string OPENSSL_buf2hexstr | |
636 # define string_to_hex OPENSSL_hexstr2buf | |
637 #endif | |
638 | |
639 void X509V3_EXT_val_prn(BIO *out, STACK_OF(CONF_VALUE) *val, int indent, | |
640 int ml); | |
641 int X509V3_EXT_print(BIO *out, X509_EXTENSION *ext, unsigned long flag, | |
642 int indent); | |
643 #ifndef OPENSSL_NO_STDIO | |
644 int X509V3_EXT_print_fp(FILE *out, X509_EXTENSION *ext, int flag, int indent); | |
645 #endif | |
646 int X509V3_extensions_print(BIO *out, const char *title, | |
647 const STACK_OF(X509_EXTENSION) *exts, | |
648 unsigned long flag, int indent); | |
649 | |
650 int X509_check_ca(X509 *x); | |
651 int X509_check_purpose(X509 *x, int id, int ca); | |
652 int X509_supported_extension(X509_EXTENSION *ex); | |
653 int X509_PURPOSE_set(int *p, int purpose); | |
654 int X509_check_issued(X509 *issuer, X509 *subject); | |
655 int X509_check_akid(X509 *issuer, AUTHORITY_KEYID *akid); | |
656 void X509_set_proxy_flag(X509 *x); | |
657 void X509_set_proxy_pathlen(X509 *x, long l); | |
658 long X509_get_proxy_pathlen(X509 *x); | |
659 | |
660 uint32_t X509_get_extension_flags(X509 *x); | |
661 uint32_t X509_get_key_usage(X509 *x); | |
662 uint32_t X509_get_extended_key_usage(X509 *x); | |
663 const ASN1_OCTET_STRING *X509_get0_subject_key_id(X509 *x); | |
664 const ASN1_OCTET_STRING *X509_get0_authority_key_id(X509 *x); | |
665 const GENERAL_NAMES *X509_get0_authority_issuer(X509 *x); | |
666 const ASN1_INTEGER *X509_get0_authority_serial(X509 *x); | |
667 | |
668 int X509_PURPOSE_get_count(void); | |
669 X509_PURPOSE *X509_PURPOSE_get0(int idx); | |
670 int X509_PURPOSE_get_by_sname(const char *sname); | |
671 int X509_PURPOSE_get_by_id(int id); | |
672 int X509_PURPOSE_add(int id, int trust, int flags, | |
673 int (*ck) (const X509_PURPOSE *, const X509 *, int), | |
674 const char *name, const char *sname, void *arg); | |
675 char *X509_PURPOSE_get0_name(const X509_PURPOSE *xp); | |
676 char *X509_PURPOSE_get0_sname(const X509_PURPOSE *xp); | |
677 int X509_PURPOSE_get_trust(const X509_PURPOSE *xp); | |
678 void X509_PURPOSE_cleanup(void); | |
679 int X509_PURPOSE_get_id(const X509_PURPOSE *); | |
680 | |
681 STACK_OF(OPENSSL_STRING) *X509_get1_email(X509 *x); | |
682 STACK_OF(OPENSSL_STRING) *X509_REQ_get1_email(X509_REQ *x); | |
683 void X509_email_free(STACK_OF(OPENSSL_STRING) *sk); | |
684 STACK_OF(OPENSSL_STRING) *X509_get1_ocsp(X509 *x); | |
685 /* Flags for X509_check_* functions */ | |
686 | |
687 /* | |
688 * Always check subject name for host match even if subject alt names present | |
689 */ | |
690 # define X509_CHECK_FLAG_ALWAYS_CHECK_SUBJECT 0x1 | |
691 /* Disable wildcard matching for dnsName fields and common name. */ | |
692 # define X509_CHECK_FLAG_NO_WILDCARDS 0x2 | |
693 /* Wildcards must not match a partial label. */ | |
694 # define X509_CHECK_FLAG_NO_PARTIAL_WILDCARDS 0x4 | |
695 /* Allow (non-partial) wildcards to match multiple labels. */ | |
696 # define X509_CHECK_FLAG_MULTI_LABEL_WILDCARDS 0x8 | |
697 /* Constraint verifier subdomain patterns to match a single labels. */ | |
698 # define X509_CHECK_FLAG_SINGLE_LABEL_SUBDOMAINS 0x10 | |
699 /* Never check the subject CN */ | |
700 # define X509_CHECK_FLAG_NEVER_CHECK_SUBJECT 0x20 | |
701 /* | |
702 * Match reference identifiers starting with "." to any sub-domain. | |
703 * This is a non-public flag, turned on implicitly when the subject | |
704 * reference identity is a DNS name. | |
705 */ | |
706 # define _X509_CHECK_FLAG_DOT_SUBDOMAINS 0x8000 | |
707 | |
708 int X509_check_host(X509 *x, const char *chk, size_t chklen, | |
709 unsigned int flags, char **peername); | |
710 int X509_check_email(X509 *x, const char *chk, size_t chklen, | |
711 unsigned int flags); | |
712 int X509_check_ip(X509 *x, const unsigned char *chk, size_t chklen, | |
713 unsigned int flags); | |
714 int X509_check_ip_asc(X509 *x, const char *ipasc, unsigned int flags); | |
715 | |
716 ASN1_OCTET_STRING *a2i_IPADDRESS(const char *ipasc); | |
717 ASN1_OCTET_STRING *a2i_IPADDRESS_NC(const char *ipasc); | |
718 int X509V3_NAME_from_section(X509_NAME *nm, STACK_OF(CONF_VALUE) *dn_sk, | |
719 unsigned long chtype); | |
720 | |
721 void X509_POLICY_NODE_print(BIO *out, X509_POLICY_NODE *node, int indent); | |
722 DEFINE_STACK_OF(X509_POLICY_NODE) | |
723 | |
724 #ifndef OPENSSL_NO_RFC3779 | |
725 typedef struct ASRange_st { | |
726 ASN1_INTEGER *min, *max; | |
727 } ASRange; | |
728 | |
729 # define ASIdOrRange_id 0 | |
730 # define ASIdOrRange_range 1 | |
731 | |
732 typedef struct ASIdOrRange_st { | |
733 int type; | |
734 union { | |
735 ASN1_INTEGER *id; | |
736 ASRange *range; | |
737 } u; | |
738 } ASIdOrRange; | |
739 | |
740 typedef STACK_OF(ASIdOrRange) ASIdOrRanges; | |
741 DEFINE_STACK_OF(ASIdOrRange) | |
742 | |
743 # define ASIdentifierChoice_inherit 0 | |
744 # define ASIdentifierChoice_asIdsOrRanges 1 | |
745 | |
746 typedef struct ASIdentifierChoice_st { | |
747 int type; | |
748 union { | |
749 ASN1_NULL *inherit; | |
750 ASIdOrRanges *asIdsOrRanges; | |
751 } u; | |
752 } ASIdentifierChoice; | |
753 | |
754 typedef struct ASIdentifiers_st { | |
755 ASIdentifierChoice *asnum, *rdi; | |
756 } ASIdentifiers; | |
757 | |
758 DECLARE_ASN1_FUNCTIONS(ASRange) | |
759 DECLARE_ASN1_FUNCTIONS(ASIdOrRange) | |
760 DECLARE_ASN1_FUNCTIONS(ASIdentifierChoice) | |
761 DECLARE_ASN1_FUNCTIONS(ASIdentifiers) | |
762 | |
763 typedef struct IPAddressRange_st { | |
764 ASN1_BIT_STRING *min, *max; | |
765 } IPAddressRange; | |
766 | |
767 # define IPAddressOrRange_addressPrefix 0 | |
768 # define IPAddressOrRange_addressRange 1 | |
769 | |
770 typedef struct IPAddressOrRange_st { | |
771 int type; | |
772 union { | |
773 ASN1_BIT_STRING *addressPrefix; | |
774 IPAddressRange *addressRange; | |
775 } u; | |
776 } IPAddressOrRange; | |
777 | |
778 typedef STACK_OF(IPAddressOrRange) IPAddressOrRanges; | |
779 DEFINE_STACK_OF(IPAddressOrRange) | |
780 | |
781 # define IPAddressChoice_inherit 0 | |
782 # define IPAddressChoice_addressesOrRanges 1 | |
783 | |
784 typedef struct IPAddressChoice_st { | |
785 int type; | |
786 union { | |
787 ASN1_NULL *inherit; | |
788 IPAddressOrRanges *addressesOrRanges; | |
789 } u; | |
790 } IPAddressChoice; | |
791 | |
792 typedef struct IPAddressFamily_st { | |
793 ASN1_OCTET_STRING *addressFamily; | |
794 IPAddressChoice *ipAddressChoice; | |
795 } IPAddressFamily; | |
796 | |
797 typedef STACK_OF(IPAddressFamily) IPAddrBlocks; | |
798 DEFINE_STACK_OF(IPAddressFamily) | |
799 | |
800 DECLARE_ASN1_FUNCTIONS(IPAddressRange) | |
801 DECLARE_ASN1_FUNCTIONS(IPAddressOrRange) | |
802 DECLARE_ASN1_FUNCTIONS(IPAddressChoice) | |
803 DECLARE_ASN1_FUNCTIONS(IPAddressFamily) | |
804 | |
805 /* | |
806 * API tag for elements of the ASIdentifer SEQUENCE. | |
807 */ | |
808 # define V3_ASID_ASNUM 0 | |
809 # define V3_ASID_RDI 1 | |
810 | |
811 /* | |
812 * AFI values, assigned by IANA. It'd be nice to make the AFI | |
813 * handling code totally generic, but there are too many little things | |
814 * that would need to be defined for other address families for it to | |
815 * be worth the trouble. | |
816 */ | |
817 # define IANA_AFI_IPV4 1 | |
818 # define IANA_AFI_IPV6 2 | |
819 | |
820 /* | |
821 * Utilities to construct and extract values from RFC3779 extensions, | |
822 * since some of the encodings (particularly for IP address prefixes | |
823 * and ranges) are a bit tedious to work with directly. | |
824 */ | |
825 int X509v3_asid_add_inherit(ASIdentifiers *asid, int which); | |
826 int X509v3_asid_add_id_or_range(ASIdentifiers *asid, int which, | |
827 ASN1_INTEGER *min, ASN1_INTEGER *max); | |
828 int X509v3_addr_add_inherit(IPAddrBlocks *addr, | |
829 const unsigned afi, const unsigned *safi); | |
830 int X509v3_addr_add_prefix(IPAddrBlocks *addr, | |
831 const unsigned afi, const unsigned *safi, | |
832 unsigned char *a, const int prefixlen); | |
833 int X509v3_addr_add_range(IPAddrBlocks *addr, | |
834 const unsigned afi, const unsigned *safi, | |
835 unsigned char *min, unsigned char *max); | |
836 unsigned X509v3_addr_get_afi(const IPAddressFamily *f); | |
837 int X509v3_addr_get_range(IPAddressOrRange *aor, const unsigned afi, | |
838 unsigned char *min, unsigned char *max, | |
839 const int length); | |
840 | |
841 /* | |
842 * Canonical forms. | |
843 */ | |
844 int X509v3_asid_is_canonical(ASIdentifiers *asid); | |
845 int X509v3_addr_is_canonical(IPAddrBlocks *addr); | |
846 int X509v3_asid_canonize(ASIdentifiers *asid); | |
847 int X509v3_addr_canonize(IPAddrBlocks *addr); | |
848 | |
849 /* | |
850 * Tests for inheritance and containment. | |
851 */ | |
852 int X509v3_asid_inherits(ASIdentifiers *asid); | |
853 int X509v3_addr_inherits(IPAddrBlocks *addr); | |
854 int X509v3_asid_subset(ASIdentifiers *a, ASIdentifiers *b); | |
855 int X509v3_addr_subset(IPAddrBlocks *a, IPAddrBlocks *b); | |
856 | |
857 /* | |
858 * Check whether RFC 3779 extensions nest properly in chains. | |
859 */ | |
860 int X509v3_asid_validate_path(X509_STORE_CTX *); | |
861 int X509v3_addr_validate_path(X509_STORE_CTX *); | |
862 int X509v3_asid_validate_resource_set(STACK_OF(X509) *chain, | |
863 ASIdentifiers *ext, | |
864 int allow_inheritance); | |
865 int X509v3_addr_validate_resource_set(STACK_OF(X509) *chain, | |
866 IPAddrBlocks *ext, int allow_inheritance); | |
867 | |
868 #endif /* OPENSSL_NO_RFC3779 */ | |
869 | |
870 DEFINE_STACK_OF(ASN1_STRING) | |
871 | |
872 /* | |
873 * Admission Syntax | |
874 */ | |
875 typedef struct NamingAuthority_st NAMING_AUTHORITY; | |
876 typedef struct ProfessionInfo_st PROFESSION_INFO; | |
877 typedef struct Admissions_st ADMISSIONS; | |
878 typedef struct AdmissionSyntax_st ADMISSION_SYNTAX; | |
879 DECLARE_ASN1_FUNCTIONS(NAMING_AUTHORITY) | |
880 DECLARE_ASN1_FUNCTIONS(PROFESSION_INFO) | |
881 DECLARE_ASN1_FUNCTIONS(ADMISSIONS) | |
882 DECLARE_ASN1_FUNCTIONS(ADMISSION_SYNTAX) | |
883 DEFINE_STACK_OF(ADMISSIONS) | |
884 DEFINE_STACK_OF(PROFESSION_INFO) | |
885 typedef STACK_OF(PROFESSION_INFO) PROFESSION_INFOS; | |
886 | |
887 const ASN1_OBJECT *NAMING_AUTHORITY_get0_authorityId( | |
888 const NAMING_AUTHORITY *n); | |
889 const ASN1_IA5STRING *NAMING_AUTHORITY_get0_authorityURL( | |
890 const NAMING_AUTHORITY *n); | |
891 const ASN1_STRING *NAMING_AUTHORITY_get0_authorityText( | |
892 const NAMING_AUTHORITY *n); | |
893 void NAMING_AUTHORITY_set0_authorityId(NAMING_AUTHORITY *n, | |
894 ASN1_OBJECT* namingAuthorityId); | |
895 void NAMING_AUTHORITY_set0_authorityURL(NAMING_AUTHORITY *n, | |
896 ASN1_IA5STRING* namingAuthorityUrl); | |
897 void NAMING_AUTHORITY_set0_authorityText(NAMING_AUTHORITY *n, | |
898 ASN1_STRING* namingAuthorityText); | |
899 | |
900 const GENERAL_NAME *ADMISSION_SYNTAX_get0_admissionAuthority( | |
901 const ADMISSION_SYNTAX *as); | |
902 void ADMISSION_SYNTAX_set0_admissionAuthority( | |
903 ADMISSION_SYNTAX *as, GENERAL_NAME *aa); | |
904 const STACK_OF(ADMISSIONS) *ADMISSION_SYNTAX_get0_contentsOfAdmissions( | |
905 const ADMISSION_SYNTAX *as); | |
906 void ADMISSION_SYNTAX_set0_contentsOfAdmissions( | |
907 ADMISSION_SYNTAX *as, STACK_OF(ADMISSIONS) *a); | |
908 const GENERAL_NAME *ADMISSIONS_get0_admissionAuthority(const ADMISSIONS *a); | |
909 void ADMISSIONS_set0_admissionAuthority(ADMISSIONS *a, GENERAL_NAME *aa); | |
910 const NAMING_AUTHORITY *ADMISSIONS_get0_namingAuthority(const ADMISSIONS *a); | |
911 void ADMISSIONS_set0_namingAuthority(ADMISSIONS *a, NAMING_AUTHORITY *na); | |
912 const PROFESSION_INFOS *ADMISSIONS_get0_professionInfos(const ADMISSIONS *a); | |
913 void ADMISSIONS_set0_professionInfos(ADMISSIONS *a, PROFESSION_INFOS *pi); | |
914 const ASN1_OCTET_STRING *PROFESSION_INFO_get0_addProfessionInfo( | |
915 const PROFESSION_INFO *pi); | |
916 void PROFESSION_INFO_set0_addProfessionInfo( | |
917 PROFESSION_INFO *pi, ASN1_OCTET_STRING *aos); | |
918 const NAMING_AUTHORITY *PROFESSION_INFO_get0_namingAuthority( | |
919 const PROFESSION_INFO *pi); | |
920 void PROFESSION_INFO_set0_namingAuthority( | |
921 PROFESSION_INFO *pi, NAMING_AUTHORITY *na); | |
922 const STACK_OF(ASN1_STRING) *PROFESSION_INFO_get0_professionItems( | |
923 const PROFESSION_INFO *pi); | |
924 void PROFESSION_INFO_set0_professionItems( | |
925 PROFESSION_INFO *pi, STACK_OF(ASN1_STRING) *as); | |
926 const STACK_OF(ASN1_OBJECT) *PROFESSION_INFO_get0_professionOIDs( | |
927 const PROFESSION_INFO *pi); | |
928 void PROFESSION_INFO_set0_professionOIDs( | |
929 PROFESSION_INFO *pi, STACK_OF(ASN1_OBJECT) *po); | |
930 const ASN1_PRINTABLESTRING *PROFESSION_INFO_get0_registrationNumber( | |
931 const PROFESSION_INFO *pi); | |
932 void PROFESSION_INFO_set0_registrationNumber( | |
933 PROFESSION_INFO *pi, ASN1_PRINTABLESTRING *rn); | |
934 | |
935 # ifdef __cplusplus | |
936 } | |
937 # endif | |
938 #endif |