x509v3.h
Go to the documentation of this file.
1 /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
2  * project 1999. */
3 /* ====================================================================
4  * Copyright (c) 1999-2004 The OpenSSL Project. All rights reserved.
5  *
6  * Redistribution and use in source and binary forms, with or without
7  * modification, are permitted provided that the following conditions
8  * are met:
9  *
10  * 1. Redistributions of source code must retain the above copyright
11  * notice, this list of conditions and the following disclaimer.
12  *
13  * 2. Redistributions in binary form must reproduce the above copyright
14  * notice, this list of conditions and the following disclaimer in
15  * the documentation and/or other materials provided with the
16  * distribution.
17  *
18  * 3. All advertising materials mentioning features or use of this
19  * software must display the following acknowledgment:
20  * "This product includes software developed by the OpenSSL Project
21  * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
22  *
23  * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
24  * endorse or promote products derived from this software without
25  * prior written permission. For written permission, please contact
26  * licensing@OpenSSL.org.
27  *
28  * 5. Products derived from this software may not be called "OpenSSL"
29  * nor may "OpenSSL" appear in their names without prior written
30  * permission of the OpenSSL Project.
31  *
32  * 6. Redistributions of any form whatsoever must retain the following
33  * acknowledgment:
34  * "This product includes software developed by the OpenSSL Project
35  * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
36  *
37  * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
38  * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
39  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
40  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
41  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
42  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
43  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
44  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
45  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
46  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
47  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
48  * OF THE POSSIBILITY OF SUCH DAMAGE.
49  * ====================================================================
50  *
51  * This product includes cryptographic software written by Eric Young
52  * (eay@cryptsoft.com). This product includes software written by Tim
53  * Hudson (tjh@cryptsoft.com). */
54 
55 #ifndef HEADER_X509V3_H
56 #define HEADER_X509V3_H
57 
58 #include <openssl/bio.h>
59 #include <openssl/conf.h>
60 #include <openssl/lhash.h>
61 #include <openssl/x509.h>
62 
63 #if defined(__cplusplus)
64 extern "C" {
65 #endif
66 
67 
68 // Legacy X.509 library.
69 //
70 // This header is part of OpenSSL's X.509 implementation. It is retained for
71 // compatibility but otherwise underdocumented and not actively maintained. In
72 // the future, a replacement library will be available. Meanwhile, minimize
73 // dependencies on this header where possible.
74 
75 
76 // Forward reference
77 struct v3_ext_method;
78 struct v3_ext_ctx;
79 
80 // Useful typedefs
81 
82 typedef void *(*X509V3_EXT_NEW)(void);
83 typedef void (*X509V3_EXT_FREE)(void *);
84 typedef void *(*X509V3_EXT_D2I)(void *, const unsigned char **, long);
85 typedef int (*X509V3_EXT_I2D)(void *, unsigned char **);
86 typedef STACK_OF(CONF_VALUE) *(*X509V3_EXT_I2V)(
87  const struct v3_ext_method *method, void *ext,
88  STACK_OF(CONF_VALUE) *extlist);
89 typedef void *(*X509V3_EXT_V2I)(const struct v3_ext_method *method,
90  struct v3_ext_ctx *ctx,
92 typedef char *(*X509V3_EXT_I2S)(const struct v3_ext_method *method, void *ext);
93 typedef void *(*X509V3_EXT_S2I)(const struct v3_ext_method *method,
94  struct v3_ext_ctx *ctx, const char *str);
95 typedef int (*X509V3_EXT_I2R)(const struct v3_ext_method *method, void *ext,
96  BIO *out, int indent);
97 typedef void *(*X509V3_EXT_R2I)(const struct v3_ext_method *method,
98  struct v3_ext_ctx *ctx, const char *str);
99 
100 // V3 extension structure
101 
103  int ext_nid;
105  // If this is set the following four fields are ignored
107  // Old style ASN1 calls
112 
113  // The following pair is used for string extensions
116 
117  // The following pair is used for multi-valued extensions
118  X509V3_EXT_I2V i2v;
120 
121  // The following are used for raw extensions
124 
125  void *usr_data; // Any extension specific data
126 };
127 
128 typedef struct X509V3_CONF_METHOD_st {
129  char *(*get_string)(void *db, const char *section, const char *value);
130  STACK_OF(CONF_VALUE) *(*get_section)(void *db, const char *section);
131  void (*free_string)(void *db, char *string);
132  void (*free_section)(void *db, STACK_OF(CONF_VALUE) *section);
134 
135 // Context specific info
136 struct v3_ext_ctx {
137 #define CTX_TEST 0x1
138  int flags;
144  void *db;
145  // Maybe more here
146 };
147 
149 
151 
152 // ext_flags values
153 #define X509V3_EXT_DYNAMIC 0x1
154 #define X509V3_EXT_CTX_DEP 0x2
155 #define X509V3_EXT_MULTILINE 0x4
156 
158  int ca;
160 };
161 
162 
163 typedef struct otherName_st {
166 } OTHERNAME;
167 
168 typedef struct EDIPartyName_st {
171 } EDIPARTYNAME;
172 
173 typedef struct GENERAL_NAME_st {
174 #define GEN_OTHERNAME 0
175 #define GEN_EMAIL 1
176 #define GEN_DNS 2
177 #define GEN_X400 3
178 #define GEN_DIRNAME 4
179 #define GEN_EDIPARTY 5
180 #define GEN_URI 6
181 #define GEN_IPADD 7
182 #define GEN_RID 8
183 
184  int type;
185  union {
186  char *ptr;
187  OTHERNAME *otherName; // otherName
196 
197  // Old names
198  ASN1_OCTET_STRING *ip; // iPAddress
199  X509_NAME *dirn; // dirn
200  ASN1_IA5STRING *ia5; // rfc822Name, dNSName, uniformResourceIdentifier
201  ASN1_OBJECT *rid; // registeredID
202  } d;
203 } GENERAL_NAME;
204 
206 
207 typedef STACK_OF(GENERAL_NAME) GENERAL_NAMES;
208 
209 DEFINE_STACK_OF(GENERAL_NAMES)
210 
215 
217 
218 typedef STACK_OF(ACCESS_DESCRIPTION) AUTHORITY_INFO_ACCESS;
219 
220 typedef STACK_OF(ASN1_OBJECT) EXTENDED_KEY_USAGE;
221 
222 typedef struct DIST_POINT_NAME_st {
223  int type;
224  union {
225  GENERAL_NAMES *fullname;
226  STACK_OF(X509_NAME_ENTRY) *relativename;
227  } name;
228  // If relativename then this contains the full distribution point name
231 // All existing reasons
232 #define CRLDP_ALL_REASONS 0x807f
233 
234 #define CRL_REASON_NONE (-1)
235 #define CRL_REASON_UNSPECIFIED 0
236 #define CRL_REASON_KEY_COMPROMISE 1
237 #define CRL_REASON_CA_COMPROMISE 2
238 #define CRL_REASON_AFFILIATION_CHANGED 3
239 #define CRL_REASON_SUPERSEDED 4
240 #define CRL_REASON_CESSATION_OF_OPERATION 5
241 #define CRL_REASON_CERTIFICATE_HOLD 6
242 #define CRL_REASON_REMOVE_FROM_CRL 8
243 #define CRL_REASON_PRIVILEGE_WITHDRAWN 9
244 #define CRL_REASON_AA_COMPROMISE 10
245 
249  GENERAL_NAMES *CRLissuer;
251 };
252 
253 typedef STACK_OF(DIST_POINT) CRL_DIST_POINTS;
254 
256 
259  GENERAL_NAMES *issuer;
261 };
262 
263 typedef struct NOTICEREF_st {
265  STACK_OF(ASN1_INTEGER) *noticenos;
266 } NOTICEREF;
267 
268 typedef struct USERNOTICE_st {
271 } USERNOTICE;
272 
273 typedef struct POLICYQUALINFO_st {
275  union {
279  } d;
281 
283 
286  STACK_OF(POLICYQUALINFO) *qualifiers;
287 } POLICYINFO;
288 
289 typedef STACK_OF(POLICYINFO) CERTIFICATEPOLICIES;
290 
292 
297 
299 
300 typedef STACK_OF(POLICY_MAPPING) POLICY_MAPPINGS;
301 
302 typedef struct GENERAL_SUBTREE_st {
307 
309 
311  STACK_OF(GENERAL_SUBTREE) *permittedSubtrees;
312  STACK_OF(GENERAL_SUBTREE) *excludedSubtrees;
313 };
314 
315 typedef struct POLICY_CONSTRAINTS_st {
319 
320 // Proxy certificate structures, see RFC 3820
321 typedef struct PROXY_POLICY_st {
324 } PROXY_POLICY;
325 
330 
333 
336  int onlyuser;
337  int onlyCA;
340  int onlyattr;
341 };
342 
343 // Values in idp_flags field
344 // IDP present
345 #define IDP_PRESENT 0x1
346 // IDP values inconsistent
347 #define IDP_INVALID 0x2
348 // onlyuser true
349 #define IDP_ONLYUSER 0x4
350 // onlyCA true
351 #define IDP_ONLYCA 0x8
352 // onlyattr true
353 #define IDP_ONLYATTR 0x10
354 // indirectCRL true
355 #define IDP_INDIRECT 0x20
356 // onlysomereasons present
357 #define IDP_REASONS 0x40
358 
359 #define X509V3_conf_err(val) \
360  ERR_add_error_data(6, "section:", (val)->section, ",name:", (val)->name, \
361  ",value:", (val)->value);
362 
363 #define X509V3_set_ctx_test(ctx) \
364  X509V3_set_ctx(ctx, NULL, NULL, NULL, NULL, CTX_TEST)
365 #define X509V3_set_ctx_nodb(ctx) (ctx)->db = NULL;
366 
367 #define EXT_BITSTRING(nid, table) \
368  { \
369  nid, 0, ASN1_ITEM_ref(ASN1_BIT_STRING), 0, 0, 0, 0, 0, 0, \
370  (X509V3_EXT_I2V)i2v_ASN1_BIT_STRING, \
371  (X509V3_EXT_V2I)v2i_ASN1_BIT_STRING, NULL, NULL, (void *)(table) \
372  }
373 
374 #define EXT_IA5STRING(nid) \
375  { \
376  nid, 0, ASN1_ITEM_ref(ASN1_IA5STRING), 0, 0, 0, 0, \
377  (X509V3_EXT_I2S)i2s_ASN1_IA5STRING, \
378  (X509V3_EXT_S2I)s2i_ASN1_IA5STRING, 0, 0, 0, 0, NULL \
379  }
380 
381 #define EXT_END \
382  { -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
383 
384 
385 // X509_PURPOSE stuff
386 
387 #define EXFLAG_BCONS 0x1
388 #define EXFLAG_KUSAGE 0x2
389 #define EXFLAG_XKUSAGE 0x4
390 #define EXFLAG_NSCERT 0x8
391 
392 #define EXFLAG_CA 0x10
393 // Really self issued not necessarily self signed
394 #define EXFLAG_SI 0x20
395 #define EXFLAG_V1 0x40
396 #define EXFLAG_INVALID 0x80
397 #define EXFLAG_SET 0x100
398 #define EXFLAG_CRITICAL 0x200
399 #define EXFLAG_PROXY 0x400
400 
401 #define EXFLAG_INVALID_POLICY 0x800
402 #define EXFLAG_FRESHEST 0x1000
403 // Self signed
404 #define EXFLAG_SS 0x2000
405 
406 #define KU_DIGITAL_SIGNATURE 0x0080
407 #define KU_NON_REPUDIATION 0x0040
408 #define KU_KEY_ENCIPHERMENT 0x0020
409 #define KU_DATA_ENCIPHERMENT 0x0010
410 #define KU_KEY_AGREEMENT 0x0008
411 #define KU_KEY_CERT_SIGN 0x0004
412 #define KU_CRL_SIGN 0x0002
413 #define KU_ENCIPHER_ONLY 0x0001
414 #define KU_DECIPHER_ONLY 0x8000
415 
416 #define NS_SSL_CLIENT 0x80
417 #define NS_SSL_SERVER 0x40
418 #define NS_SMIME 0x20
419 #define NS_OBJSIGN 0x10
420 #define NS_SSL_CA 0x04
421 #define NS_SMIME_CA 0x02
422 #define NS_OBJSIGN_CA 0x01
423 #define NS_ANY_CA (NS_SSL_CA | NS_SMIME_CA | NS_OBJSIGN_CA)
424 
425 #define XKU_SSL_SERVER 0x1
426 #define XKU_SSL_CLIENT 0x2
427 #define XKU_SMIME 0x4
428 #define XKU_CODE_SIGN 0x8
429 #define XKU_SGC 0x10
430 #define XKU_OCSP_SIGN 0x20
431 #define XKU_TIMESTAMP 0x40
432 #define XKU_DVCS 0x80
433 #define XKU_ANYEKU 0x100
434 
435 #define X509_PURPOSE_DYNAMIC 0x1
436 #define X509_PURPOSE_DYNAMIC_NAME 0x2
437 
438 typedef struct x509_purpose_st {
439  int purpose;
440  int trust; // Default trust ID
441  int flags;
442  int (*check_purpose)(const struct x509_purpose_st *, const X509 *, int);
443  char *name;
444  char *sname;
445  void *usr_data;
446 } X509_PURPOSE;
447 
448 #define X509_PURPOSE_SSL_CLIENT 1
449 #define X509_PURPOSE_SSL_SERVER 2
450 #define X509_PURPOSE_NS_SSL_SERVER 3
451 #define X509_PURPOSE_SMIME_SIGN 4
452 #define X509_PURPOSE_SMIME_ENCRYPT 5
453 #define X509_PURPOSE_CRL_SIGN 6
454 #define X509_PURPOSE_ANY 7
455 #define X509_PURPOSE_OCSP_HELPER 8
456 #define X509_PURPOSE_TIMESTAMP_SIGN 9
457 
458 #define X509_PURPOSE_MIN 1
459 #define X509_PURPOSE_MAX 9
460 
462 
464 
466 
469 
470 // GENERAL_NAME_cmp returns zero if |a| and |b| are equal and a non-zero
471 // value otherwise. Note this function does not provide a comparison suitable
472 // for sorting.
474  const GENERAL_NAME *b);
475 
476 
477 
479  X509V3_CTX *ctx,
480  STACK_OF(CONF_VALUE) *nval);
483  STACK_OF(CONF_VALUE) *extlist);
484 
485 // i2v_GENERAL_NAME serializes |gen| as a |CONF_VALUE|. If |ret| is non-NULL, it
486 // appends the value to |ret| and returns |ret| on success or NULL on error. If
487 // it returns NULL, the caller is still responsible for freeing |ret|. If |ret|
488 // is NULL, it returns a newly-allocated |STACK_OF(CONF_VALUE)| containing the
489 // result. |method| is ignored.
490 //
491 // Do not use this function. This is an internal implementation detail of the
492 // human-readable print functions. If extracting a SAN list from a certificate,
493 // look at |gen| directly.
497 
498 DECLARE_ASN1_FUNCTIONS(GENERAL_NAMES)
499 
500 // i2v_GENERAL_NAMES serializes |gen| as a list of |CONF_VALUE|s. If |ret| is
501 // non-NULL, it appends the values to |ret| and returns |ret| on success or NULL
502 // on error. If it returns NULL, the caller is still responsible for freeing
503 // |ret|. If |ret| is NULL, it returns a newly-allocated |STACK_OF(CONF_VALUE)|
504 // containing the results. |method| is ignored.
505 //
506 // Do not use this function. This is an internal implementation detail of the
507 // human-readable print functions. If extracting a SAN list from a certificate,
508 // look at |gen| directly.
510  X509V3_EXT_METHOD *method, GENERAL_NAMES *gen,
511  STACK_OF(CONF_VALUE) *extlist);
513  X509V3_CTX *ctx,
514  STACK_OF(CONF_VALUE) *nval);
515 
520  void *value);
521 OPENSSL_EXPORT void *GENERAL_NAME_get0_value(const GENERAL_NAME *a, int *ptype);
523  ASN1_OBJECT *oid,
524  ASN1_TYPE *value);
526  ASN1_OBJECT **poid,
527  ASN1_TYPE **pvalue);
528 
530  const ASN1_OCTET_STRING *ia5);
532  X509V3_EXT_METHOD *method, X509V3_CTX *ctx, const char *str);
533 
534 DECLARE_ASN1_FUNCTIONS(EXTENDED_KEY_USAGE)
536 
537 DECLARE_ASN1_FUNCTIONS(CERTIFICATEPOLICIES)
542 
543 DECLARE_ASN1_FUNCTIONS(CRL_DIST_POINTS)
547 
549  X509_NAME *iname);
550 
552 
554 DECLARE_ASN1_FUNCTIONS(AUTHORITY_INFO_ACCESS)
555 
558 DECLARE_ASN1_ITEM(POLICY_MAPPINGS)
559 
562 
565 
568 
570  const X509V3_EXT_METHOD *method,
571  X509V3_CTX *ctx, int gen_type,
572  const char *value, int is_nc);
573 
575  X509V3_CTX *ctx, CONF_VALUE *cnf);
578  CONF_VALUE *cnf, int is_nc);
580 
581 // X509V3_EXT_conf_nid contains the only exposed instance of an LHASH in our
582 // public headers. The |conf| pointer must be NULL but cryptography.io wraps
583 // this function so we cannot, yet, replace the type with a dummy struct.
585  X509V3_CTX *ctx, int ext_nid,
586  const char *value);
587 
589  int ext_nid,
590  const char *value);
592  const char *name,
593  const char *value);
595  const char *section,
596  STACK_OF(X509_EXTENSION) **sk);
598  const char *section, X509 *cert);
600  const char *section, X509_REQ *req);
602  const char *section, X509_CRL *crl);
603 
604 OPENSSL_EXPORT int X509V3_add_value_bool_nf(const char *name, int asn1_bool,
605  STACK_OF(CONF_VALUE) **extlist);
607  int *asn1_bool);
609  ASN1_INTEGER **aint);
611 
613  const char *section);
615  const char *section);
619 OPENSSL_EXPORT void X509V3_set_ctx(X509V3_CTX *ctx, X509 *issuer, X509 *subject,
620  X509_REQ *req, X509_CRL *crl, int flags);
621 
622 // X509V3_add_value appends a |CONF_VALUE| containing |name| and |value| to
623 // |*extlist|. It returns one on success and zero on error. If |*extlist| is
624 // NULL, it sets |*extlist| to a newly-allocated |STACK_OF(CONF_VALUE)|
625 // containing the result. Either |name| or |value| may be NULL to omit the
626 // field.
627 //
628 // On failure, if |*extlist| was NULL, |*extlist| will remain NULL when the
629 // function returns.
630 OPENSSL_EXPORT int X509V3_add_value(const char *name, const char *value,
631  STACK_OF(CONF_VALUE) **extlist);
632 
633 // X509V3_add_value_uchar behaves like |X509V3_add_value| but takes an
634 // |unsigned char| pointer.
636  const unsigned char *value,
637  STACK_OF(CONF_VALUE) **extlist);
638 
639 // X509V3_add_value_bool behaves like |X509V3_add_value| but stores the value
640 // "TRUE" if |asn1_bool| is non-zero and "FALSE" otherwise.
641 OPENSSL_EXPORT int X509V3_add_value_bool(const char *name, int asn1_bool,
642  STACK_OF(CONF_VALUE) **extlist);
643 
644 // X509V3_add_value_bool behaves like |X509V3_add_value| but stores a string
645 // representation of |aint|. Note this string representation may be decimal or
646 // hexadecimal, depending on the size of |aint|.
648  const ASN1_INTEGER *aint,
649  STACK_OF(CONF_VALUE) **extlist);
650 
652  const ASN1_INTEGER *aint);
654  const char *value);
656  const ASN1_ENUMERATED *aint);
658  const ASN1_ENUMERATED *aint);
661 OPENSSL_EXPORT int X509V3_EXT_add_alias(int nid_to, int nid_from);
663 
665  const X509_EXTENSION *ext);
669 
670 // X509V3_EXT_d2i decodes |ext| and returns a pointer to a newly-allocated
671 // structure, with type dependent on the type of the extension. It returns NULL
672 // if |ext| is an unsupported extension or if there was a syntax error in the
673 // extension. The caller should cast the return value to the expected type and
674 // free the structure when done.
675 //
676 // WARNING: Casting the return value to the wrong type is a potentially
677 // exploitable memory error, so callers must not use this function before
678 // checking |ext| is of a known type.
680 
681 // X509V3_get_d2i finds and decodes the extension in |extensions| of type |nid|.
682 // If found, it decodes it and returns a newly-allocated structure, with type
683 // dependent on |nid|. If the extension is not found or on error, it returns
684 // NULL. The caller may distinguish these cases using the |out_critical| value.
685 //
686 // If |out_critical| is not NULL, this function sets |*out_critical| to one if
687 // the extension is found and critical, zero if it is found and not critical, -1
688 // if it is not found, and -2 if there is an invalid duplicate extension. Note
689 // this function may set |*out_critical| to one or zero and still return NULL if
690 // the extension is found but has a syntax error.
691 //
692 // If |out_idx| is not NULL, this function looks for the first occurrence of the
693 // extension after |*out_idx|. It then sets |*out_idx| to the index of the
694 // extension, or -1 if not found. If |out_idx| is non-NULL, duplicate extensions
695 // are not treated as an error. Callers, however, should not rely on this
696 // behavior as it may be removed in the future. Duplicate extensions are
697 // forbidden in RFC 5280.
698 //
699 // WARNING: This function is difficult to use correctly. Callers should pass a
700 // non-NULL |out_critical| and check both the return value and |*out_critical|
701 // to handle errors. If the return value is NULL and |*out_critical| is not -1,
702 // there was an error. Otherwise, the function succeeded and but may return NULL
703 // for a missing extension. Callers should pass NULL to |out_idx| so that
704 // duplicate extensions are handled correctly.
705 //
706 // Additionally, casting the return value to the wrong type is a potentially
707 // exploitable memory error, so callers must ensure the cast and |nid| match.
709  int nid, int *out_critical, int *out_idx);
710 
711 // X509V3_EXT_free casts |ext_data| into the type that corresponds to |nid| and
712 // releases memory associated with it. It returns one on success and zero if
713 // |nid| is not a known extension.
714 //
715 // WARNING: Casting |ext_data| to the wrong type is a potentially exploitable
716 // memory error, so callers must ensure |ext_data|'s type matches |nid|.
717 //
718 // TODO(davidben): OpenSSL upstream no longer exposes this function. Remove it?
719 OPENSSL_EXPORT int X509V3_EXT_free(int nid, void *ext_data);
720 
721 // X509V3_EXT_i2d casts |ext_struc| into the type that corresponds to
722 // |ext_nid|, serializes it, and returns a newly-allocated |X509_EXTENSION|
723 // object containing the serialization, or NULL on error. The |X509_EXTENSION|
724 // has OID |ext_nid| and is critical if |crit| is one.
725 //
726 // WARNING: Casting |ext_struc| to the wrong type is a potentially exploitable
727 // memory error, so callers must ensure |ext_struct|'s type matches |ext_nid|.
728 OPENSSL_EXPORT X509_EXTENSION *X509V3_EXT_i2d(int ext_nid, int crit,
729  void *ext_struc);
730 
731 // The following constants control the behavior of |X509V3_add1_i2d| and related
732 // functions.
733 
734 // X509V3_ADD_OP_MASK can be ANDed with the flags to determine how duplicate
735 // extensions are processed.
736 #define X509V3_ADD_OP_MASK 0xfL
737 
738 // X509V3_ADD_DEFAULT causes the function to fail if the extension was already
739 // present.
740 #define X509V3_ADD_DEFAULT 0L
741 
742 // X509V3_ADD_APPEND causes the function to unconditionally appended the new
743 // extension to to the extensions list, even if there is a duplicate.
744 #define X509V3_ADD_APPEND 1L
745 
746 // X509V3_ADD_REPLACE causes the function to replace the existing extension, or
747 // append if it is not present.
748 #define X509V3_ADD_REPLACE 2L
749 
750 // X509V3_ADD_REPLACE causes the function to replace the existing extension and
751 // fail if it is not present.
752 #define X509V3_ADD_REPLACE_EXISTING 3L
753 
754 // X509V3_ADD_KEEP_EXISTING causes the function to succeed without replacing the
755 // extension if already present.
756 #define X509V3_ADD_KEEP_EXISTING 4L
757 
758 // X509V3_ADD_DELETE causes the function to remove the matching extension. No
759 // new extension is added. If there is no matching extension, the function
760 // fails. The |value| parameter is ignored in this mode.
761 #define X509V3_ADD_DELETE 5L
762 
763 // X509V3_ADD_SILENT may be ORed into one of the values above to indicate the
764 // function should not add to the error queue on duplicate or missing extension.
765 // The function will continue to return zero in those cases, and it will
766 // continue to return -1 and add to the error queue on other errors.
767 #define X509V3_ADD_SILENT 0x10
768 
769 // X509V3_add1_i2d casts |value| to the type that corresponds to |nid|,
770 // serializes it, and appends it to the extension list in |*x|. If |*x| is NULL,
771 // it will set |*x| to a newly-allocated |STACK_OF(X509_EXTENSION)| as needed.
772 // The |crit| parameter determines whether the new extension is critical.
773 // |flags| may be some combination of the |X509V3_ADD_*| constants to control
774 // the function's behavior on duplicate extension.
775 //
776 // This function returns one on success, zero if the operation failed due to a
777 // missing or duplicate extension, and -1 on other errors.
778 //
779 // WARNING: Casting |value| to the wrong type is a potentially exploitable
780 // memory error, so callers must ensure |value|'s type matches |nid|.
782  void *value, int crit, unsigned long flags);
783 
784 #define X509V3_EXT_UNKNOWN_MASK (0xfL << 16)
785 
786 // X509V3_EXT_DEFAULT causes unknown extensions or syntax errors to return
787 // failure.
788 #define X509V3_EXT_DEFAULT 0
789 // X509V3_EXT_ERROR_UNKNOWN causes unknown extensions or syntax errors to print
790 // as "<Not Supported>" or "<Parse Error>", respectively.
791 #define X509V3_EXT_ERROR_UNKNOWN (1L << 16)
792 // X509V3_EXT_PARSE_UNKNOWN is deprecated and behaves like
793 // |X509V3_EXT_DUMP_UNKNOWN|.
794 #define X509V3_EXT_PARSE_UNKNOWN (2L << 16)
795 // X509V3_EXT_DUMP_UNKNOWN causes unknown extensions to be displayed as a
796 // hexdump.
797 #define X509V3_EXT_DUMP_UNKNOWN (3L << 16)
798 
800  int indent, int ml);
802  unsigned long flag, int indent);
804  int indent);
805 
806 // X509V3_extensions_print prints |title|, followed by a human-readable
807 // representation of |exts| to |out|. It returns one on success and zero on
808 // error. The output is indented by |indent| spaces. |flag| is one of the
809 // |X509V3_EXT_*| constants and controls printing of unknown extensions and
810 // syntax errors.
811 OPENSSL_EXPORT int X509V3_extensions_print(BIO *out, const char *title,
812  const STACK_OF(X509_EXTENSION) *exts,
813  unsigned long flag, int indent);
814 
816 OPENSSL_EXPORT int X509_check_purpose(X509 *x, int id, int ca);
819 OPENSSL_EXPORT int X509_check_issued(X509 *issuer, X509 *subject);
821 
825 
826 // X509_get0_subject_key_id returns |x509|'s subject key identifier, if present.
827 // (See RFC 5280, section 4.2.1.2.) It returns NULL if the extension is not
828 // present or if some extension in |x509| was invalid.
829 //
830 // Note that decoding an |X509| object will not check for invalid extensions. To
831 // detect the error case, call |X509_get_extensions_flags| and check the
832 // |EXFLAG_INVALID| bit.
834 
835 // X509_get0_authority_key_id returns keyIdentifier of |x509|'s authority key
836 // identifier, if the extension and field are present. (See RFC 5280,
837 // section 4.2.1.1.) It returns NULL if the extension is not present, if it is
838 // present but lacks a keyIdentifier field, or if some extension in |x509| was
839 // invalid.
840 //
841 // Note that decoding an |X509| object will not check for invalid extensions. To
842 // detect the error case, call |X509_get_extensions_flags| and check the
843 // |EXFLAG_INVALID| bit.
845 
846 // X509_get0_authority_issuer returns the authorityCertIssuer of |x509|'s
847 // authority key identifier, if the extension and field are present. (See
848 // RFC 5280, section 4.2.1.1.) It returns NULL if the extension is not present,
849 // if it is present but lacks a authorityCertIssuer field, or if some extension
850 // in |x509| was invalid.
851 //
852 // Note that decoding an |X509| object will not check for invalid extensions. To
853 // detect the error case, call |X509_get_extensions_flags| and check the
854 // |EXFLAG_INVALID| bit.
855 OPENSSL_EXPORT const GENERAL_NAMES *X509_get0_authority_issuer(X509 *x509);
856 
857 // X509_get0_authority_serial returns the authorityCertSerialNumber of |x509|'s
858 // authority key identifier, if the extension and field are present. (See
859 // RFC 5280, section 4.2.1.1.) It returns NULL if the extension is not present,
860 // if it is present but lacks a authorityCertSerialNumber field, or if some
861 // extension in |x509| was invalid.
862 //
863 // Note that decoding an |X509| object will not check for invalid extensions. To
864 // detect the error case, call |X509_get_extensions_flags| and check the
865 // |EXFLAG_INVALID| bit.
867 
872 OPENSSL_EXPORT int X509_PURPOSE_add(int id, int trust, int flags,
873  int (*ck)(const X509_PURPOSE *,
874  const X509 *, int),
875  char *name, char *sname, void *arg);
881 
886 // Flags for X509_check_* functions
887 
888 // Deprecated: this flag does nothing
889 #define X509_CHECK_FLAG_ALWAYS_CHECK_SUBJECT 0
890 // Disable wildcard matching for dnsName fields and common name.
891 #define X509_CHECK_FLAG_NO_WILDCARDS 0x2
892 // Wildcards must not match a partial label.
893 #define X509_CHECK_FLAG_NO_PARTIAL_WILDCARDS 0x4
894 // Allow (non-partial) wildcards to match multiple labels.
895 #define X509_CHECK_FLAG_MULTI_LABEL_WILDCARDS 0x8
896 // Constraint verifier subdomain patterns to match a single labels.
897 #define X509_CHECK_FLAG_SINGLE_LABEL_SUBDOMAINS 0x10
898 // Skip the subject common name fallback if subjectAltNames is missing.
899 #define X509_CHECK_FLAG_NEVER_CHECK_SUBJECT 0x20
900 //
901 // Match reference identifiers starting with "." to any sub-domain.
902 // This is a non-public flag, turned on implicitly when the subject
903 // reference identity is a DNS name.
904 #define _X509_CHECK_FLAG_DOT_SUBDOMAINS 0x8000
905 
906 OPENSSL_EXPORT int X509_check_host(X509 *x, const char *chk, size_t chklen,
907  unsigned int flags, char **peername);
908 OPENSSL_EXPORT int X509_check_email(X509 *x, const char *chk, size_t chklen,
909  unsigned int flags);
910 OPENSSL_EXPORT int X509_check_ip(X509 *x, const unsigned char *chk,
911  size_t chklen, unsigned int flags);
912 OPENSSL_EXPORT int X509_check_ip_asc(X509 *x, const char *ipasc,
913  unsigned int flags);
914 
918  STACK_OF(CONF_VALUE) *dn_sk,
919  unsigned long chtype);
920 
922  int indent);
924 
925 // BEGIN ERROR CODES
926 // The following lines are auto generated by the script mkerr.pl. Any changes
927 // made after this point may be overwritten when the script is next run.
928 
929 
930 #if defined(__cplusplus)
931 } // extern C
932 
933 extern "C++" {
934 
936 
940 // TODO(davidben): Move this to conf.h and rename to CONF_VALUE_free.
948 
950 
951 } // extern C++
952 #endif
953 
954 #define X509V3_R_BAD_IP_ADDRESS 100
955 #define X509V3_R_BAD_OBJECT 101
956 #define X509V3_R_BN_DEC2BN_ERROR 102
957 #define X509V3_R_BN_TO_ASN1_INTEGER_ERROR 103
958 #define X509V3_R_CANNOT_FIND_FREE_FUNCTION 104
959 #define X509V3_R_DIRNAME_ERROR 105
960 #define X509V3_R_DISTPOINT_ALREADY_SET 106
961 #define X509V3_R_DUPLICATE_ZONE_ID 107
962 #define X509V3_R_ERROR_CONVERTING_ZONE 108
963 #define X509V3_R_ERROR_CREATING_EXTENSION 109
964 #define X509V3_R_ERROR_IN_EXTENSION 110
965 #define X509V3_R_EXPECTED_A_SECTION_NAME 111
966 #define X509V3_R_EXTENSION_EXISTS 112
967 #define X509V3_R_EXTENSION_NAME_ERROR 113
968 #define X509V3_R_EXTENSION_NOT_FOUND 114
969 #define X509V3_R_EXTENSION_SETTING_NOT_SUPPORTED 115
970 #define X509V3_R_EXTENSION_VALUE_ERROR 116
971 #define X509V3_R_ILLEGAL_EMPTY_EXTENSION 117
972 #define X509V3_R_ILLEGAL_HEX_DIGIT 118
973 #define X509V3_R_INCORRECT_POLICY_SYNTAX_TAG 119
974 #define X509V3_R_INVALID_BOOLEAN_STRING 120
975 #define X509V3_R_INVALID_EXTENSION_STRING 121
976 #define X509V3_R_INVALID_MULTIPLE_RDNS 122
977 #define X509V3_R_INVALID_NAME 123
978 #define X509V3_R_INVALID_NULL_ARGUMENT 124
979 #define X509V3_R_INVALID_NULL_NAME 125
980 #define X509V3_R_INVALID_NULL_VALUE 126
981 #define X509V3_R_INVALID_NUMBER 127
982 #define X509V3_R_INVALID_NUMBERS 128
983 #define X509V3_R_INVALID_OBJECT_IDENTIFIER 129
984 #define X509V3_R_INVALID_OPTION 130
985 #define X509V3_R_INVALID_POLICY_IDENTIFIER 131
986 #define X509V3_R_INVALID_PROXY_POLICY_SETTING 132
987 #define X509V3_R_INVALID_PURPOSE 133
988 #define X509V3_R_INVALID_SECTION 134
989 #define X509V3_R_INVALID_SYNTAX 135
990 #define X509V3_R_ISSUER_DECODE_ERROR 136
991 #define X509V3_R_MISSING_VALUE 137
992 #define X509V3_R_NEED_ORGANIZATION_AND_NUMBERS 138
993 #define X509V3_R_NO_CONFIG_DATABASE 139
994 #define X509V3_R_NO_ISSUER_CERTIFICATE 140
995 #define X509V3_R_NO_ISSUER_DETAILS 141
996 #define X509V3_R_NO_POLICY_IDENTIFIER 142
997 #define X509V3_R_NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED 143
998 #define X509V3_R_NO_PUBLIC_KEY 144
999 #define X509V3_R_NO_SUBJECT_DETAILS 145
1000 #define X509V3_R_ODD_NUMBER_OF_DIGITS 146
1001 #define X509V3_R_OPERATION_NOT_DEFINED 147
1002 #define X509V3_R_OTHERNAME_ERROR 148
1003 #define X509V3_R_POLICY_LANGUAGE_ALREADY_DEFINED 149
1004 #define X509V3_R_POLICY_PATH_LENGTH 150
1005 #define X509V3_R_POLICY_PATH_LENGTH_ALREADY_DEFINED 151
1006 #define X509V3_R_POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY 152
1007 #define X509V3_R_SECTION_NOT_FOUND 153
1008 #define X509V3_R_UNABLE_TO_GET_ISSUER_DETAILS 154
1009 #define X509V3_R_UNABLE_TO_GET_ISSUER_KEYID 155
1010 #define X509V3_R_UNKNOWN_BIT_STRING_ARGUMENT 156
1011 #define X509V3_R_UNKNOWN_EXTENSION 157
1012 #define X509V3_R_UNKNOWN_EXTENSION_NAME 158
1013 #define X509V3_R_UNKNOWN_OPTION 159
1014 #define X509V3_R_UNSUPPORTED_OPTION 160
1015 #define X509V3_R_UNSUPPORTED_TYPE 161
1016 #define X509V3_R_USER_TOO_LONG 162
1017 #define X509V3_R_INVALID_VALUE 163
1018 #define X509V3_R_TRAILING_DATA_IN_EXTENSION 164
1019 
1020 #endif
v3_ext_method::s2i
X509V3_EXT_S2I s2i
Definition: x509v3.h:115
GENERAL_NAME_set0_othername
OPENSSL_EXPORT int GENERAL_NAME_set0_othername(GENERAL_NAME *gen, ASN1_OBJECT *oid, ASN1_TYPE *value)
PROXY_POLICY_st::policy
ASN1_OCTET_STRING * policy
Definition: x509v3.h:323
xds_interop_client.str
str
Definition: xds_interop_client.py:487
X509V3_EXT_print
OPENSSL_EXPORT int X509V3_EXT_print(BIO *out, X509_EXTENSION *ext, unsigned long flag, int indent)
Definition: v3_prn.c:105
a2i_IPADDRESS_NC
OPENSSL_EXPORT ASN1_OCTET_STRING * a2i_IPADDRESS_NC(const char *ipasc)
Definition: v3_utl.c:1191
BASIC_CONSTRAINTS_st
Definition: x509v3.h:157
flag
uint32_t flag
Definition: ssl_versions.cc:162
X509V3_NAME_from_section
OPENSSL_EXPORT int X509V3_NAME_from_section(X509_NAME *nm, STACK_OF(CONF_VALUE) *dn_sk, unsigned long chtype)
Definition: v3_utl.c:1402
DIST_POINT_NAME_st::dpname
X509_NAME * dpname
Definition: x509v3.h:229
GENERAL_NAME_st::type
int type
Definition: x509v3.h:184
x509_purpose_st::purpose
int purpose
Definition: x509v3.h:439
x509_purpose_st::sname
char * sname
Definition: x509v3.h:444
X509_check_host
OPENSSL_EXPORT int X509_check_host(X509 *x, const char *chk, size_t chklen, unsigned int flags, char **peername)
Definition: v3_utl.c:1125
gen_build_yaml.out
dictionary out
Definition: src/benchmark/gen_build_yaml.py:24
PROXY_CERT_INFO_EXTENSION_st::pcPathLengthConstraint
ASN1_INTEGER * pcPathLengthConstraint
Definition: x509v3.h:327
GENERAL_NAME_dup
OPENSSL_EXPORT GENERAL_NAME * GENERAL_NAME_dup(GENERAL_NAME *a)
BASIC_CONSTRAINTS_st::pathlen
ASN1_INTEGER * pathlen
Definition: x509v3.h:159
GENERAL_NAME_st
Definition: x509v3.h:173
v3_ext_method::i2r
X509V3_EXT_I2R i2r
Definition: x509v3.h:122
POLICYINFO_st
Definition: x509v3.h:284
i2v_ASN1_BIT_STRING
#define i2v_ASN1_BIT_STRING
Definition: boringssl_prefix_symbols.h:3310
ctx
Definition: benchmark-async.c:30
GENERAL_NAME_get0_otherName
OPENSSL_EXPORT int GENERAL_NAME_get0_otherName(const GENERAL_NAME *gen, ASN1_OBJECT **poid, ASN1_TYPE **pvalue)
v3_ext_ctx
Definition: x509v3.h:136
GENERAL_NAME_st::ptr
char * ptr
Definition: x509v3.h:186
X509_PURPOSE
struct x509_purpose_st X509_PURPOSE
DECLARE_ASN1_FUNCTIONS
#define DECLARE_ASN1_FUNCTIONS(type)
Definition: asn1.h:1776
X509V3_EXT_nconf_nid
OPENSSL_EXPORT X509_EXTENSION * X509V3_EXT_nconf_nid(CONF *conf, X509V3_CTX *ctx, int ext_nid, const char *value)
Definition: v3_conf.c:108
v3_ext_method::ext_new
X509V3_EXT_NEW ext_new
Definition: x509v3.h:108
bio_st
Definition: bio.h:822
X509V3_EXT_conf_nid
OPENSSL_EXPORT X509_EXTENSION * X509V3_EXT_conf_nid(LHASH_OF(CONF_VALUE) *conf, X509V3_CTX *ctx, int ext_nid, const char *value)
Definition: x509_decrepit.c:22
X509V3_EXT_I2R
int(* X509V3_EXT_I2R)(const struct v3_ext_method *method, void *ext, BIO *out, int indent)
Definition: x509v3.h:95
X509_get1_email
#define X509_get1_email
Definition: boringssl_prefix_symbols.h:2645
ACCESS_DESCRIPTION_st
Definition: x509v3.h:211
EDIPartyName_st
Definition: x509v3.h:168
GENERAL_NAME_st::directoryName
X509_NAME * directoryName
Definition: x509v3.h:191
POLICY_CONSTRAINTS
struct POLICY_CONSTRAINTS_st POLICY_CONSTRAINTS
DIST_POINT_st::CRLissuer
GENERAL_NAMES * CRLissuer
Definition: x509v3.h:249
LHASH_OF
#define LHASH_OF(type)
Definition: lhash.h:73
USERNOTICE
struct USERNOTICE_st USERNOTICE
X509_PURPOSE_cleanup
OPENSSL_EXPORT void X509_PURPOSE_cleanup(void)
Definition: v3_purp.c:301
v3_ext_method::i2v
X509V3_EXT_I2V i2v
Definition: x509v3.h:118
GENERAL_NAME_st::uniformResourceIdentifier
ASN1_IA5STRING * uniformResourceIdentifier
Definition: x509v3.h:193
GENERAL_NAME_st::x400Address
ASN1_STRING * x400Address
Definition: x509v3.h:190
GENERAL_NAME_st::ia5
ASN1_IA5STRING * ia5
Definition: x509v3.h:200
v3_ext_ctx::flags
int flags
Definition: x509v3.h:138
X509V3_EXT_R2I
void *(* X509V3_EXT_R2I)(const struct v3_ext_method *method, struct v3_ext_ctx *ctx, const char *str)
Definition: x509v3.h:97
ext
void * ext
Definition: x509v3.h:87
bio.h
EDIPARTYNAME
struct EDIPartyName_st EDIPARTYNAME
ISSUING_DIST_POINT_st::indirectCRL
int indirectCRL
Definition: x509v3.h:339
X509V3_CONF_METHOD_st::free_string
void(* free_string)(void *db, char *string)
Definition: x509v3.h:131
X509_POLICY_NODE_st
Definition: third_party/boringssl-with-bazel/src/crypto/x509v3/internal.h:205
i2s_ASN1_ENUMERATED_TABLE
OPENSSL_EXPORT char * i2s_ASN1_ENUMERATED_TABLE(X509V3_EXT_METHOD *meth, const ASN1_ENUMERATED *aint)
Definition: v3_enum.c:95
testing::internal::string
::std::string string
Definition: bloaty/third_party/protobuf/third_party/googletest/googletest/include/gtest/internal/gtest-port.h:881
POLICY_MAPPING_st
Definition: x509v3.h:293
PROXY_POLICY
struct PROXY_POLICY_st PROXY_POLICY
POLICY_MAPPING_free
#define POLICY_MAPPING_free
Definition: boringssl_prefix_symbols.h:2048
X509V3_get_section
#define X509V3_get_section
Definition: boringssl_prefix_symbols.h:2241
X509_get1_ocsp
#define X509_get1_ocsp
Definition: boringssl_prefix_symbols.h:2646
v3_ext_method::v2i
X509V3_EXT_V2I v2i
Definition: x509v3.h:119
X509_PURPOSE_get0_sname
OPENSSL_EXPORT char * X509_PURPOSE_get0_sname(const X509_PURPOSE *xp)
Definition: v3_purp.c:320
POLICYQUALINFO_st::cpsuri
ASN1_IA5STRING * cpsuri
Definition: x509v3.h:276
GENERAL_NAME_st::registeredID
ASN1_OBJECT * registeredID
Definition: x509v3.h:195
DIST_POINT_NAME_st
Definition: x509v3.h:222
POLICY_CONSTRAINTS_st
Definition: x509v3.h:315
ACCESS_DESCRIPTION
struct ACCESS_DESCRIPTION_st ACCESS_DESCRIPTION
POLICY_CONSTRAINTS_st::inhibitPolicyMapping
ASN1_INTEGER * inhibitPolicyMapping
Definition: x509v3.h:317
v3_ext_method::i2d
X509V3_EXT_I2D i2d
Definition: x509v3.h:111
GENERAL_NAME_st::otherName
OTHERNAME * otherName
Definition: x509v3.h:187
v3_ext_method::i2s
X509V3_EXT_I2S i2s
Definition: x509v3.h:114
ctx
static struct test_ctx ctx
Definition: test-ipc-send-recv.c:65
setup.name
name
Definition: setup.py:542
X509_PURPOSE_get_by_sname
OPENSSL_EXPORT int X509_PURPOSE_get_by_sname(char *sname)
Definition: v3_purp.c:185
a
int a
Definition: abseil-cpp/absl/container/internal/hash_policy_traits_test.cc:88
xds_manager.p
p
Definition: xds_manager.py:60
python_utils.upload_rbe_results.indent
indent
Definition: upload_rbe_results.py:183
v3_ext_method::usr_data
void * usr_data
Definition: x509v3.h:125
X509V3_EXT_d2i
OPENSSL_EXPORT void * X509V3_EXT_d2i(const X509_EXTENSION *ext)
Definition: v3_lib.c:208
v3_ext_ctx::crl
X509_CRL * crl
Definition: x509v3.h:142
X509_get_extension_flags
OPENSSL_EXPORT uint32_t X509_get_extension_flags(X509 *x)
Definition: v3_purp.c:862
X509V3_CONF_METHOD_st::STACK_OF
STACK_OF(CONF_VALUE) *(*get_section)(void *db
X509V3_EXT_get_nid
const OPENSSL_EXPORT X509V3_EXT_METHOD * X509V3_EXT_get_nid(int nid)
Definition: v3_lib.c:104
X509_POLICY_NODE_print
OPENSSL_EXPORT void X509_POLICY_NODE_print(BIO *out, X509_POLICY_NODE *node, int indent)
X509V3_EXT_REQ_add_nconf
OPENSSL_EXPORT int X509V3_EXT_REQ_add_nconf(CONF *conf, X509V3_CTX *ctx, const char *section, X509_REQ *req)
Definition: v3_conf.c:377
v3_ext_method::ext_flags
int ext_flags
Definition: x509v3.h:104
X509V3_EXT_add_nconf_sk
OPENSSL_EXPORT int X509V3_EXT_add_nconf_sk(CONF *conf, X509V3_CTX *ctx, const char *section, STACK_OF(X509_EXTENSION) **sk)
Definition: v3_conf.c:331
X509_extension_st
Definition: third_party/boringssl-with-bazel/src/crypto/x509/internal.h:117
ACCESS_DESCRIPTION_free
#define ACCESS_DESCRIPTION_free
Definition: boringssl_prefix_symbols.h:591
X509V3_add_value_bool
OPENSSL_EXPORT int X509V3_add_value_bool(const char *name, int asn1_bool, STACK_OF(CONF_VALUE) **extlist)
Definition: v3_utl.c:169
X509V3_EXT_add
OPENSSL_EXPORT int X509V3_EXT_add(X509V3_EXT_METHOD *ext)
Definition: v3_lib.c:82
a2i_GENERAL_NAME
OPENSSL_EXPORT GENERAL_NAME * a2i_GENERAL_NAME(GENERAL_NAME *out, const X509V3_EXT_METHOD *method, X509V3_CTX *ctx, int gen_type, const char *value, int is_nc)
Definition: v3_alt.c:457
GENERAL_NAME_st::dNSName
ASN1_IA5STRING * dNSName
Definition: x509v3.h:189
ex
OPENSSL_EXPORT X509_EXTENSION * ex
Definition: x509.h:1418
X509V3_EXT_CRL_add_nconf
OPENSSL_EXPORT int X509V3_EXT_CRL_add_nconf(CONF *conf, X509V3_CTX *ctx, const char *section, X509_CRL *crl)
Definition: v3_conf.c:366
DIST_POINT_st
Definition: x509v3.h:246
X509V3_EXT_nconf
OPENSSL_EXPORT X509_EXTENSION * X509V3_EXT_nconf(CONF *conf, X509V3_CTX *ctx, const char *name, const char *value)
Definition: v3_conf.c:89
X509V3_EXT_S2I
void *(* X509V3_EXT_S2I)(const struct v3_ext_method *method, struct v3_ext_ctx *ctx, const char *str)
Definition: x509v3.h:93
DIST_POINT_NAME_st::name
union DIST_POINT_NAME_st::@371 name
v2i_GENERAL_NAME_ex
OPENSSL_EXPORT GENERAL_NAME * v2i_GENERAL_NAME_ex(GENERAL_NAME *out, const X509V3_EXT_METHOD *method, X509V3_CTX *ctx, CONF_VALUE *cnf, int is_nc)
Definition: v3_alt.c:548
gen_build_yaml.struct
def struct(**kwargs)
Definition: test/core/end2end/gen_build_yaml.py:30
X509V3_extensions_print
OPENSSL_EXPORT int X509V3_extensions_print(BIO *out, const char *title, const STACK_OF(X509_EXTENSION) *exts, unsigned long flag, int indent)
Definition: v3_prn.c:158
X509V3_EXT_NEW
void *(* X509V3_EXT_NEW)(void)
Definition: x509v3.h:82
asn1_object_st
Definition: third_party/boringssl-with-bazel/src/crypto/asn1/internal.h:102
ISSUING_DIST_POINT_st::onlysomereasons
ASN1_BIT_STRING * onlysomereasons
Definition: x509v3.h:338
GENERAL_SUBTREE_st::minimum
ASN1_INTEGER * minimum
Definition: x509v3.h:304
X509V3_add1_i2d
OPENSSL_EXPORT int X509V3_add1_i2d(STACK_OF(X509_EXTENSION) **x, int nid, void *value, int crit, unsigned long flags)
Definition: v3_lib.c:297
DIST_POINT_set_dpname
OPENSSL_EXPORT int DIST_POINT_set_dpname(DIST_POINT_NAME *dpn, X509_NAME *iname)
Definition: v3_crld.c:537
X509V3_CONF_METHOD
struct X509V3_CONF_METHOD_st X509V3_CONF_METHOD
X509_PURPOSE_get_by_id
OPENSSL_EXPORT int X509_PURPOSE_get_by_id(int id)
Definition: v3_purp.c:197
POLICYQUALINFO
struct POLICYQUALINFO_st POLICYQUALINFO
X509_check_email
OPENSSL_EXPORT int X509_check_email(X509 *x, const char *chk, size_t chklen, unsigned int flags)
Definition: v3_utl.c:1135
X509V3_EXT_val_prn
OPENSSL_EXPORT void X509V3_EXT_val_prn(BIO *out, STACK_OF(CONF_VALUE) *val, int indent, int ml)
Definition: v3_prn.c:74
X509_check_issued
OPENSSL_EXPORT int X509_check_issued(X509 *issuer, X509 *subject)
Definition: v3_purp.c:799
EDIPartyName_st::partyName
ASN1_STRING * partyName
Definition: x509v3.h:170
otherName_st::value
ASN1_TYPE * value
Definition: x509v3.h:165
X509_check_ip_asc
OPENSSL_EXPORT int X509_check_ip_asc(X509 *x, const char *ipasc, unsigned int flags)
Definition: v3_utl.c:1153
X509V3_get_d2i
OPENSSL_EXPORT void * X509V3_get_d2i(const STACK_OF(X509_EXTENSION) *extensions, int nid, int *out_critical, int *out_idx)
Definition: v3_lib.c:239
uint32_t
unsigned int uint32_t
Definition: stdint-msvc2008.h:80
NAME_CONSTRAINTS_free
#define NAME_CONSTRAINTS_free
Definition: boringssl_prefix_symbols.h:1819
i2v_GENERAL_NAME
#define i2v_GENERAL_NAME
Definition: boringssl_prefix_symbols.h:3311
v3_ext_ctx::subject_cert
X509 * subject_cert
Definition: x509v3.h:140
i2a_ACCESS_DESCRIPTION
OPENSSL_EXPORT int i2a_ACCESS_DESCRIPTION(BIO *bp, const ACCESS_DESCRIPTION *a)
GENERAL_NAME_st::iPAddress
ASN1_OCTET_STRING * iPAddress
Definition: x509v3.h:194
GENERAL_NAME_st::dirn
X509_NAME * dirn
Definition: x509v3.h:199
x509_purpose_st::check_purpose
int(* check_purpose)(const struct x509_purpose_st *, const X509 *, int)
Definition: x509v3.h:442
DIST_POINT_free
#define DIST_POINT_free
Definition: boringssl_prefix_symbols.h:1254
X509V3_set_nconf
OPENSSL_EXPORT void X509V3_set_nconf(X509V3_CTX *ctx, CONF *conf)
Definition: v3_conf.c:454
X509_email_free
OPENSSL_EXPORT void X509_email_free(STACK_OF(OPENSSL_STRING) *sk)
Definition: v3_utl.c:702
NOTICEREF_st::STACK_OF
STACK_OF(ASN1_INTEGER) *noticenos
v2i_ASN1_BIT_STRING
OPENSSL_EXPORT ASN1_BIT_STRING * v2i_ASN1_BIT_STRING(X509V3_EXT_METHOD *method, X509V3_CTX *ctx, STACK_OF(CONF_VALUE) *nval)
Definition: v3_bitst.c:111
xds_interop_client.int
int
Definition: xds_interop_client.py:113
oid
uint8_t oid[9]
Definition: digest_extra.c:124
POLICY_CONSTRAINTS_st::requireExplicitPolicy
ASN1_INTEGER * requireExplicitPolicy
Definition: x509v3.h:316
NOTICEREF_st::organization
ASN1_STRING * organization
Definition: x509v3.h:264
conf_st
Definition: conf.c:76
AUTHORITY_KEYID_free
#define AUTHORITY_KEYID_free
Definition: boringssl_prefix_symbols.h:768
X509_PURPOSE_get0_name
OPENSSL_EXPORT char * X509_PURPOSE_get0_name(const X509_PURPOSE *xp)
Definition: v3_purp.c:315
PROXY_CERT_INFO_EXTENSION_st::proxyPolicy
PROXY_POLICY * proxyPolicy
Definition: x509v3.h:328
BASIC_CONSTRAINTS_st::ca
int ca
Definition: x509v3.h:158
i2s_ASN1_INTEGER
OPENSSL_EXPORT char * i2s_ASN1_INTEGER(X509V3_EXT_METHOD *meth, const ASN1_INTEGER *aint)
Definition: v3_utl.c:237
req
static uv_connect_t req
Definition: test-connection-fail.c:30
X509V3_add_value_uchar
OPENSSL_EXPORT int X509V3_add_value_uchar(const char *name, const unsigned char *value, STACK_OF(CONF_VALUE) **extlist)
Definition: v3_utl.c:141
X509V3_EXT_D2I
void *(* X509V3_EXT_D2I)(void *, const unsigned char **, long)
Definition: x509v3.h:84
X509_get_key_usage
OPENSSL_EXPORT uint32_t X509_get_key_usage(X509 *x)
Definition: v3_purp.c:870
v3_ext_method::d2i
X509V3_EXT_D2I d2i
Definition: x509v3.h:110
X509V3_string_free
OPENSSL_EXPORT void X509V3_string_free(X509V3_CTX *ctx, char *str)
Definition: v3_conf.c:416
GENERAL_NAME_set0_value
OPENSSL_EXPORT void GENERAL_NAME_set0_value(GENERAL_NAME *a, int type, void *value)
X509_check_purpose
OPENSSL_EXPORT int X509_check_purpose(X509 *x, int id, int ca)
Definition: v3_purp.c:142
POLICYQUALINFO_st::usernotice
USERNOTICE * usernotice
Definition: x509v3.h:277
X509V3_EXT_I2S
char *(* X509V3_EXT_I2S)(const struct v3_ext_method *method, void *ext)
Definition: x509v3.h:92
v2i_GENERAL_NAMES
OPENSSL_EXPORT GENERAL_NAMES * v2i_GENERAL_NAMES(const X509V3_EXT_METHOD *method, X509V3_CTX *ctx, STACK_OF(CONF_VALUE) *nval)
Definition: v3_alt.c:428
a2i_IPADDRESS
OPENSSL_EXPORT ASN1_OCTET_STRING * a2i_IPADDRESS(const char *ipasc)
Definition: v3_utl.c:1171
ISSUING_DIST_POINT_st::onlyCA
int onlyCA
Definition: x509v3.h:337
X509_supported_extension
OPENSSL_EXPORT int X509_supported_extension(X509_EXTENSION *ex)
Definition: v3_purp.c:337
AUTHORITY_KEYID_st
Definition: x509v3.h:257
OPENSSL_STRING
char * OPENSSL_STRING
Definition: stack.h:425
GENERAL_NAME_st::rid
ASN1_OBJECT * rid
Definition: x509v3.h:201
PROXY_POLICY_st
Definition: x509v3.h:321
X509_get0_authority_key_id
const OPENSSL_EXPORT ASN1_OCTET_STRING * X509_get0_authority_key_id(X509 *x509)
Definition: v3_purp.c:898
x509_purpose_st
Definition: x509v3.h:438
X509_check_ca
OPENSSL_EXPORT int X509_check_ca(X509 *x)
Definition: v3_purp.c:618
GENERAL_SUBTREE
struct GENERAL_SUBTREE_st GENERAL_SUBTREE
x509_purpose_st::name
char * name
Definition: x509v3.h:443
X509_crl_st
Definition: third_party/boringssl-with-bazel/src/crypto/x509/internal.h:195
X509V3_EXT_I2D
int(* X509V3_EXT_I2D)(void *, unsigned char **)
Definition: x509v3.h:85
BSSL_NAMESPACE_END
#define BSSL_NAMESPACE_END
Definition: base.h:480
GENERAL_NAME_st::rfc822Name
ASN1_IA5STRING * rfc822Name
Definition: x509v3.h:188
bits
OPENSSL_EXPORT ASN1_BIT_STRING * bits
Definition: x509v3.h:482
i2v_GENERAL_NAMES
#define i2v_GENERAL_NAMES
Definition: boringssl_prefix_symbols.h:3312
X509V3_set_ctx
OPENSSL_EXPORT void X509V3_set_ctx(X509V3_CTX *ctx, X509 *issuer, X509 *subject, X509_REQ *req, X509_CRL *crl, int flags)
Definition: v3_conf.c:460
X509V3_EXT_free
OPENSSL_EXPORT int X509V3_EXT_free(int nid, void *ext_data)
Definition: v3_lib.c:135
X509_get_extended_key_usage
OPENSSL_EXPORT uint32_t X509_get_extended_key_usage(X509 *x)
Definition: v3_purp.c:880
X509V3_add_value_int
OPENSSL_EXPORT int X509V3_add_value_int(const char *name, const ASN1_INTEGER *aint, STACK_OF(CONF_VALUE) **extlist)
Definition: v3_utl.c:298
otherName_st
Definition: x509v3.h:163
X509_req_st
Definition: third_party/boringssl-with-bazel/src/crypto/x509/internal.h:175
DECLARE_ASN1_ALLOC_FUNCTIONS
#define DECLARE_ASN1_ALLOC_FUNCTIONS(type)
Definition: asn1.h:1778
arg
Definition: cmdline.cc:40
lhash.h
X509V3_EXT_get
const OPENSSL_EXPORT X509V3_EXT_METHOD * X509V3_EXT_get(const X509_EXTENSION *ext)
Definition: v3_lib.c:127
X509V3_get_value_int
OPENSSL_EXPORT int X509V3_get_value_int(const CONF_VALUE *value, ASN1_INTEGER **aint)
Definition: v3_utl.c:334
X509V3_EXT_add_alias
OPENSSL_EXPORT int X509V3_EXT_add_alias(int nid_to, int nid_from)
Definition: v3_lib.c:163
POLICY_MAPPING_st::subjectDomainPolicy
ASN1_OBJECT * subjectDomainPolicy
Definition: x509v3.h:295
ISSUING_DIST_POINT_st
Definition: x509v3.h:334
X509V3_section_free
OPENSSL_EXPORT void X509V3_section_free(X509V3_CTX *ctx, STACK_OF(CONF_VALUE) *section)
Definition: v3_conf.c:424
STACK_OF
void STACK_OF(CONF_VALUE) *extlist)
Definition: x509v3.h:88
GENERAL_NAME_get0_value
OPENSSL_EXPORT void * GENERAL_NAME_get0_value(const GENERAL_NAME *a, int *ptype)
v3_ext_ctx::issuer_cert
X509 * issuer_cert
Definition: x509v3.h:139
X509_check_ip
OPENSSL_EXPORT int X509_check_ip(X509 *x, const unsigned char *chk, size_t chklen, unsigned int flags)
Definition: v3_utl.c:1145
x
int x
Definition: bloaty/third_party/googletest/googlemock/test/gmock-matchers_test.cc:3610
POLICYQUALINFO_st::other
ASN1_TYPE * other
Definition: x509v3.h:278
X509V3_add_standard_extensions
OPENSSL_EXPORT int X509V3_add_standard_extensions(void)
Definition: v3_lib.c:201
conf.extensions
list extensions
Definition: doc/python/sphinx/conf.py:54
POLICYINFO_free
#define POLICYINFO_free
Definition: boringssl_prefix_symbols.h:2038
DIST_POINT_st::distpoint
DIST_POINT_NAME * distpoint
Definition: x509v3.h:247
gen
OPENSSL_EXPORT GENERAL_NAME * gen
Definition: x509v3.h:495
conf.h
X509V3_EXT_FREE
void(* X509V3_EXT_FREE)(void *)
Definition: x509v3.h:83
GENERAL_SUBTREE_st::base
GENERAL_NAME * base
Definition: x509v3.h:303
s2i_ASN1_INTEGER
OPENSSL_EXPORT ASN1_INTEGER * s2i_ASN1_INTEGER(X509V3_EXT_METHOD *meth, const char *value)
Definition: v3_utl.c:250
b
uint64_t b
Definition: abseil-cpp/absl/container/internal/layout_test.cc:53
NAME_CONSTRAINTS_check
OPENSSL_EXPORT int NAME_CONSTRAINTS_check(X509 *x, NAME_CONSTRAINTS *nc)
ASN1_ITEM_EXP
const typedef ASN1_ITEM ASN1_ITEM_EXP
Definition: asn1.h:309
DEFINE_STACK_OF
#define DEFINE_STACK_OF(type)
Definition: stack.h:409
PROXY_CERT_INFO_EXTENSION_st
Definition: x509v3.h:326
X509_PURPOSE_set
OPENSSL_EXPORT int X509_PURPOSE_set(int *p, int purpose)
Definition: v3_purp.c:159
DIST_POINT_NAME_st::type
int type
Definition: x509v3.h:223
X509V3_EXT_i2d
OPENSSL_EXPORT X509_EXTENSION * X509V3_EXT_i2d(int ext_nid, int crit, void *ext_struc)
Definition: v3_conf.c:223
GENERAL_SUBTREE_free
#define GENERAL_SUBTREE_free
Definition: boringssl_prefix_symbols.h:1777
X509V3_CONF_METHOD_st
Definition: x509v3.h:128
NAME_CONSTRAINTS_st
Definition: x509v3.h:310
DIST_POINT_st::dp_reasons
int dp_reasons
Definition: x509v3.h:250
v3_ext_ctx::subject_req
X509_REQ * subject_req
Definition: x509v3.h:141
X509_check_akid
OPENSSL_EXPORT int X509_check_akid(X509 *issuer, AUTHORITY_KEYID *akid)
Definition: v3_purp.c:823
setup.idx
idx
Definition: third_party/bloaty/third_party/capstone/bindings/python/setup.py:197
POLICYQUALINFO_st
Definition: x509v3.h:273
section
Definition: loader.h:337
X509_name_entry_st
Definition: third_party/boringssl-with-bazel/src/crypto/x509/internal.h:88
NOTICEREF_st
Definition: x509v3.h:263
AUTHORITY_KEYID_st::issuer
GENERAL_NAMES * issuer
Definition: x509v3.h:259
GENERAL_SUBTREE_st
Definition: x509v3.h:302
nid
int nid
Definition: cipher_extra.c:71
X509V3_EXT_print_fp
OPENSSL_EXPORT int X509V3_EXT_print_fp(FILE *out, X509_EXTENSION *ext, int flag, int indent)
Definition: v3_prn.c:221
v3_ext_method::it
ASN1_ITEM_EXP * it
Definition: x509v3.h:106
GENERAL_NAME_st::ip
ASN1_OCTET_STRING * ip
Definition: x509v3.h:198
value
const char * value
Definition: hpack_parser_table.cc:165
GENERAL_NAME_free
#define GENERAL_NAME_free
Definition: boringssl_prefix_symbols.h:1769
DIST_POINT_st::reasons
ASN1_BIT_STRING * reasons
Definition: x509v3.h:248
X509V3_parse_list
#define X509V3_parse_list
Definition: boringssl_prefix_symbols.h:2245
GENERAL_NAME_print
OPENSSL_EXPORT int GENERAL_NAME_print(BIO *out, GENERAL_NAME *gen)
Definition: v3_alt.c:204
X509_get0_authority_issuer
const OPENSSL_EXPORT GENERAL_NAMES * X509_get0_authority_issuer(X509 *x509)
Definition: v3_purp.c:906
s2i_ASN1_OCTET_STRING
OPENSSL_EXPORT ASN1_OCTET_STRING * s2i_ASN1_OCTET_STRING(X509V3_EXT_METHOD *method, X509V3_CTX *ctx, const char *str)
Definition: v3_skey.c:86
PROXY_CERT_INFO_EXTENSION
struct PROXY_CERT_INFO_EXTENSION_st PROXY_CERT_INFO_EXTENSION
X509_get0_subject_key_id
const OPENSSL_EXPORT ASN1_OCTET_STRING * X509_get0_subject_key_id(X509 *x509)
Definition: v3_purp.c:890
BSSL_NAMESPACE_BEGIN
Definition: trust_token_test.cc:45
benchmark.FILE
FILE
Definition: benchmark.py:21
OTHERNAME
struct otherName_st OTHERNAME
x509_st
Definition: third_party/boringssl-with-bazel/src/crypto/x509/internal.h:139
GENERAL_NAME_st::d
union GENERAL_NAME_st::@370 d
x509_purpose_st::flags
int flags
Definition: x509v3.h:441
absl::flags_internal
Definition: abseil-cpp/absl/flags/commandlineflag.h:40
otherName_st::type_id
ASN1_OBJECT * type_id
Definition: x509v3.h:164
POLICYINFO
struct POLICYINFO_st POLICYINFO
AUTHORITY_KEYID_st::serial
ASN1_INTEGER * serial
Definition: x509v3.h:260
X509_PURPOSE_get_count
OPENSSL_EXPORT int X509_PURPOSE_get_count(void)
Definition: v3_purp.c:169
X509_get0_authority_serial
const OPENSSL_EXPORT ASN1_INTEGER * X509_get0_authority_serial(X509 *x509)
Definition: v3_purp.c:914
v3_ext_ctx::db
void * db
Definition: x509v3.h:144
ret
UniquePtr< SSL_SESSION > ret
Definition: ssl_x509.cc:1029
NOTICEREF
struct NOTICEREF_st NOTICEREF
DIST_POINT_NAME_st::fullname
GENERAL_NAMES * fullname
Definition: x509v3.h:225
GENERAL_NAME_cmp
OPENSSL_EXPORT int GENERAL_NAME_cmp(const GENERAL_NAME *a, const GENERAL_NAME *b)
GENERAL_NAME
struct GENERAL_NAME_st GENERAL_NAME
BASIC_CONSTRAINTS_free
#define BASIC_CONSTRAINTS_free
Definition: boringssl_prefix_symbols.h:771
X509V3_CONF_METHOD_st::section
const char * section
Definition: x509v3.h:130
values
std::array< int64_t, Size > values
Definition: abseil-cpp/absl/container/btree_benchmark.cc:608
X509_REQ_get1_email
#define X509_REQ_get1_email
Definition: boringssl_prefix_symbols.h:2442
AUTHORITY_KEYID_st::keyid
ASN1_OCTET_STRING * keyid
Definition: x509v3.h:258
regen-readme.line
line
Definition: regen-readme.py:30
X509V3_get_string
OPENSSL_EXPORT char * X509V3_get_string(X509V3_CTX *ctx, const char *name, const char *section)
Definition: v3_conf.c:394
OPENSSL_EXPORT
#define OPENSSL_EXPORT
Definition: base.h:222
X509V3_conf_free
OPENSSL_EXPORT void X509V3_conf_free(CONF_VALUE *val)
Definition: v3_utl.c:156
BORINGSSL_MAKE_DELETER
#define BORINGSSL_MAKE_DELETER(type, deleter)
Definition: base.h:506
i2s_ASN1_OCTET_STRING
OPENSSL_EXPORT char * i2s_ASN1_OCTET_STRING(X509V3_EXT_METHOD *method, const ASN1_OCTET_STRING *ia5)
Definition: v3_skey.c:81
X509V3_EXT_cleanup
OPENSSL_EXPORT void X509V3_EXT_cleanup(void)
Definition: v3_lib.c:184
DECLARE_ASN1_ITEM
#define DECLARE_ASN1_ITEM(name)
Definition: asn1.h:299
USERNOTICE_st::noticeref
NOTICEREF * noticeref
Definition: x509v3.h:269
X509_PURPOSE_add
OPENSSL_EXPORT int X509_PURPOSE_add(int id, int trust, int flags, int(*ck)(const X509_PURPOSE *, const X509 *, int), char *name, char *sname, void *arg)
Definition: v3_purp.c:214
v3_ext_method::r2i
X509V3_EXT_R2I r2i
Definition: x509v3.h:123
ACCESS_DESCRIPTION_st::location
GENERAL_NAME * location
Definition: x509v3.h:213
X509_PURPOSE_get_id
OPENSSL_EXPORT int X509_PURPOSE_get_id(const X509_PURPOSE *)
Definition: v3_purp.c:310
X509_PURPOSE_get_trust
OPENSSL_EXPORT int X509_PURPOSE_get_trust(const X509_PURPOSE *xp)
Definition: v3_purp.c:325
v3_ext_ctx::db_meth
const X509V3_CONF_METHOD * db_meth
Definition: x509v3.h:143
EDIPartyName_st::nameAssigner
ASN1_STRING * nameAssigner
Definition: x509v3.h:169
GENERAL_NAME_st::ediPartyName
EDIPARTYNAME * ediPartyName
Definition: x509v3.h:192
ISSUING_DIST_POINT_st::onlyattr
int onlyattr
Definition: x509v3.h:340
POLICY_MAPPING_st::issuerDomainPolicy
ASN1_OBJECT * issuerDomainPolicy
Definition: x509v3.h:294
X509V3_add_value_bool_nf
OPENSSL_EXPORT int X509V3_add_value_bool_nf(const char *name, int asn1_bool, STACK_OF(CONF_VALUE) **extlist)
Definition: v3_utl.c:177
v3_ext_method
Definition: x509v3.h:102
POLICY_MAPPING
struct POLICY_MAPPING_st POLICY_MAPPING
X509V3_EXT_V2I
void *(* X509V3_EXT_V2I)(const struct v3_ext_method *method, struct v3_ext_ctx *ctx, STACK_OF(CONF_VALUE) *values)
Definition: x509v3.h:89
POLICYQUALINFO_st::d
union POLICYQUALINFO_st::@372 d
asyncio_get_stats.type
type
Definition: asyncio_get_stats.py:37
asn1_type_st
Definition: asn1.h:1481
ISSUING_DIST_POINT_st::distpoint
DIST_POINT_NAME * distpoint
Definition: x509v3.h:335
DIST_POINT_NAME
struct DIST_POINT_NAME_st DIST_POINT_NAME
i2s_ASN1_ENUMERATED
OPENSSL_EXPORT char * i2s_ASN1_ENUMERATED(X509V3_EXT_METHOD *meth, const ASN1_ENUMERATED *aint)
Definition: v3_utl.c:224
POLICYQUALINFO_st::pqualid
ASN1_OBJECT * pqualid
Definition: x509v3.h:274
X509V3_EXT_add_nconf
OPENSSL_EXPORT int X509V3_EXT_add_nconf(CONF *conf, X509V3_CTX *ctx, const char *section, X509 *cert)
Definition: v3_conf.c:355
method
NSString * method
Definition: ProtoMethod.h:28
GENERAL_SUBTREE_st::maximum
ASN1_INTEGER * maximum
Definition: x509v3.h:305
POLICYINFO_st::policyid
ASN1_OBJECT * policyid
Definition: x509v3.h:285
x509_purpose_st::trust
int trust
Definition: x509v3.h:440
ACCESS_DESCRIPTION_st::method
ASN1_OBJECT * method
Definition: x509v3.h:212
X509V3_get_value_bool
OPENSSL_EXPORT int X509V3_get_value_bool(const CONF_VALUE *value, int *asn1_bool)
Definition: v3_utl.c:312
X509V3_CONF_METHOD_st::free_section
void(* free_section)(void *db, STACK_OF(CONF_VALUE) *section)
Definition: x509v3.h:132
conf
Definition: doc/python/sphinx/conf.py:1
X509V3_EXT_add_list
OPENSSL_EXPORT int X509V3_EXT_add_list(X509V3_EXT_METHOD *extlist)
Definition: v3_lib.c:155
X509_name_st
Definition: third_party/boringssl-with-bazel/src/crypto/x509/internal.h:95
ISSUING_DIST_POINT_st::onlyuser
int onlyuser
Definition: x509v3.h:336
OTHERNAME_cmp
OPENSSL_EXPORT int OTHERNAME_cmp(OTHERNAME *a, OTHERNAME *b)
asn1_string_st
Definition: asn1.h:543
X509_PURPOSE_get0
OPENSSL_EXPORT X509_PURPOSE * X509_PURPOSE_get0(int idx)
Definition: v3_purp.c:176
v3_ext_method::ext_free
X509V3_EXT_FREE ext_free
Definition: x509v3.h:109
USERNOTICE_st
Definition: x509v3.h:268
PROXY_POLICY_st::policyLanguage
ASN1_OBJECT * policyLanguage
Definition: x509v3.h:322
x509_purpose_st::usr_data
void * usr_data
Definition: x509v3.h:445
conf_value_st
Definition: conf.h:82
v3_ext_method::ext_nid
int ext_nid
Definition: x509v3.h:103
USERNOTICE_st::exptext
ASN1_STRING * exptext
Definition: x509v3.h:270
X509V3_add_value
OPENSSL_EXPORT int X509V3_add_value(const char *name, const char *value, STACK_OF(CONF_VALUE) **extlist)
Definition: v3_utl.c:134
x509.h
google::protobuf.internal.decoder.long
long
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/decoder.py:89
v2i_GENERAL_NAME
OPENSSL_EXPORT GENERAL_NAME * v2i_GENERAL_NAME(const X509V3_EXT_METHOD *method, X509V3_CTX *ctx, CONF_VALUE *cnf)
Definition: v3_alt.c:451


grpc
Author(s):
autogenerated on Thu Mar 13 2025 03:01:54