summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/x509
diff options
context:
space:
mode:
authortb <>2024-08-31 10:03:03 +0000
committertb <>2024-08-31 10:03:03 +0000
commitd4f7c9504448480d32c75f0a1361436d34de97dc (patch)
tree48fd0ca4b4fcbb6d37b8cd4ce025c65e8f71ffde /src/lib/libcrypto/x509
parentd58c480554b7e690b2dab126d2f8f622324e3a42 (diff)
downloadopenbsd-d4f7c9504448480d32c75f0a1361436d34de97dc.tar.gz
openbsd-d4f7c9504448480d32c75f0a1361436d34de97dc.tar.bz2
openbsd-d4f7c9504448480d32c75f0a1361436d34de97dc.zip
Make some more x509 conf stuff internal
This internalizes a particularly scary layer of conf used for X.509 extensions. Again unused public API... ok beck jsing
Diffstat (limited to 'src/lib/libcrypto/x509')
-rw-r--r--src/lib/libcrypto/x509/x509_akey.c4
-rw-r--r--src/lib/libcrypto/x509/x509_bcons.c4
-rw-r--r--src/lib/libcrypto/x509/x509_bitst.c4
-rw-r--r--src/lib/libcrypto/x509/x509_conf.c6
-rw-r--r--src/lib/libcrypto/x509/x509_extku.c4
-rw-r--r--src/lib/libcrypto/x509/x509_local.h19
-rw-r--r--src/lib/libcrypto/x509/x509_pcons.c4
-rw-r--r--src/lib/libcrypto/x509/x509_pmaps.c4
-rw-r--r--src/lib/libcrypto/x509/x509_utl.c18
-rw-r--r--src/lib/libcrypto/x509/x509v3.h20
10 files changed, 39 insertions, 48 deletions
diff --git a/src/lib/libcrypto/x509/x509_akey.c b/src/lib/libcrypto/x509/x509_akey.c
index b052d95984..926508c4cd 100644
--- a/src/lib/libcrypto/x509/x509_akey.c
+++ b/src/lib/libcrypto/x509/x509_akey.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: x509_akey.c,v 1.2 2024/07/13 15:08:58 tb Exp $ */ 1/* $OpenBSD: x509_akey.c,v 1.3 2024/08/31 10:03:03 tb Exp $ */
2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL 2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
3 * project 1999. 3 * project 1999.
4 */ 4 */
@@ -65,6 +65,8 @@
65#include <openssl/err.h> 65#include <openssl/err.h>
66#include <openssl/x509v3.h> 66#include <openssl/x509v3.h>
67 67
68#include "x509_local.h"
69
68static STACK_OF(CONF_VALUE) *i2v_AUTHORITY_KEYID(X509V3_EXT_METHOD *method, 70static STACK_OF(CONF_VALUE) *i2v_AUTHORITY_KEYID(X509V3_EXT_METHOD *method,
69 AUTHORITY_KEYID *akeyid, STACK_OF(CONF_VALUE) *extlist); 71 AUTHORITY_KEYID *akeyid, STACK_OF(CONF_VALUE) *extlist);
70static AUTHORITY_KEYID *v2i_AUTHORITY_KEYID(X509V3_EXT_METHOD *method, 72static AUTHORITY_KEYID *v2i_AUTHORITY_KEYID(X509V3_EXT_METHOD *method,
diff --git a/src/lib/libcrypto/x509/x509_bcons.c b/src/lib/libcrypto/x509/x509_bcons.c
index e44ff4d1cb..99cb5afe9a 100644
--- a/src/lib/libcrypto/x509/x509_bcons.c
+++ b/src/lib/libcrypto/x509/x509_bcons.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: x509_bcons.c,v 1.5 2024/07/13 15:08:58 tb Exp $ */ 1/* $OpenBSD: x509_bcons.c,v 1.6 2024/08/31 10:03:03 tb Exp $ */
2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL 2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
3 * project 1999. 3 * project 1999.
4 */ 4 */
@@ -65,6 +65,8 @@
65#include <openssl/err.h> 65#include <openssl/err.h>
66#include <openssl/x509v3.h> 66#include <openssl/x509v3.h>
67 67
68#include "x509_local.h"
69
68static STACK_OF(CONF_VALUE) *i2v_BASIC_CONSTRAINTS(X509V3_EXT_METHOD *method, 70static STACK_OF(CONF_VALUE) *i2v_BASIC_CONSTRAINTS(X509V3_EXT_METHOD *method,
69 BASIC_CONSTRAINTS *bcons, STACK_OF(CONF_VALUE) *extlist); 71 BASIC_CONSTRAINTS *bcons, STACK_OF(CONF_VALUE) *extlist);
70static BASIC_CONSTRAINTS *v2i_BASIC_CONSTRAINTS(X509V3_EXT_METHOD *method, 72static BASIC_CONSTRAINTS *v2i_BASIC_CONSTRAINTS(X509V3_EXT_METHOD *method,
diff --git a/src/lib/libcrypto/x509/x509_bitst.c b/src/lib/libcrypto/x509/x509_bitst.c
index 0328310f08..479874ddb5 100644
--- a/src/lib/libcrypto/x509/x509_bitst.c
+++ b/src/lib/libcrypto/x509/x509_bitst.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: x509_bitst.c,v 1.6 2024/07/13 15:08:58 tb Exp $ */ 1/* $OpenBSD: x509_bitst.c,v 1.7 2024/08/31 10:03:03 tb Exp $ */
2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL 2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
3 * project 1999. 3 * project 1999.
4 */ 4 */
@@ -63,6 +63,8 @@
63#include <openssl/err.h> 63#include <openssl/err.h>
64#include <openssl/x509v3.h> 64#include <openssl/x509v3.h>
65 65
66#include "x509_local.h"
67
66static BIT_STRING_BITNAME ns_cert_type_table[] = { 68static BIT_STRING_BITNAME ns_cert_type_table[] = {
67 {0, "SSL Client", "client"}, 69 {0, "SSL Client", "client"},
68 {1, "SSL Server", "server"}, 70 {1, "SSL Server", "server"},
diff --git a/src/lib/libcrypto/x509/x509_conf.c b/src/lib/libcrypto/x509/x509_conf.c
index ab78649453..c8917f7ef7 100644
--- a/src/lib/libcrypto/x509/x509_conf.c
+++ b/src/lib/libcrypto/x509/x509_conf.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: x509_conf.c,v 1.25 2024/08/31 09:59:12 tb Exp $ */ 1/* $OpenBSD: x509_conf.c,v 1.26 2024/08/31 10:03:03 tb Exp $ */
2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL 2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
3 * project 1999. 3 * project 1999.
4 */ 4 */
@@ -411,7 +411,6 @@ X509V3_get_string(X509V3_CTX *ctx, const char *name, const char *section)
411 X509V3error(ERR_R_DISABLED); 411 X509V3error(ERR_R_DISABLED);
412 return NULL; 412 return NULL;
413} 413}
414LCRYPTO_ALIAS(X509V3_get_string);
415 414
416STACK_OF(CONF_VALUE) * 415STACK_OF(CONF_VALUE) *
417X509V3_get_section(X509V3_CTX *ctx, const char *section) 416X509V3_get_section(X509V3_CTX *ctx, const char *section)
@@ -422,7 +421,6 @@ X509V3_get_section(X509V3_CTX *ctx, const char *section)
422 } 421 }
423 return NCONF_get_section(ctx->db, section); 422 return NCONF_get_section(ctx->db, section);
424} 423}
425LCRYPTO_ALIAS(X509V3_get_section);
426 424
427/* XXX - remove in next bump. */ 425/* XXX - remove in next bump. */
428void 426void
@@ -430,14 +428,12 @@ X509V3_string_free(X509V3_CTX *ctx, char *str)
430{ 428{
431 return; 429 return;
432} 430}
433LCRYPTO_ALIAS(X509V3_string_free);
434 431
435void 432void
436X509V3_section_free(X509V3_CTX *ctx, STACK_OF(CONF_VALUE) *section) 433X509V3_section_free(X509V3_CTX *ctx, STACK_OF(CONF_VALUE) *section)
437{ 434{
438 return; 435 return;
439} 436}
440LCRYPTO_ALIAS(X509V3_section_free);
441 437
442void 438void
443X509V3_set_nconf(X509V3_CTX *ctx, CONF *conf) 439X509V3_set_nconf(X509V3_CTX *ctx, CONF *conf)
diff --git a/src/lib/libcrypto/x509/x509_extku.c b/src/lib/libcrypto/x509/x509_extku.c
index 6a69adabc6..da5036a09a 100644
--- a/src/lib/libcrypto/x509/x509_extku.c
+++ b/src/lib/libcrypto/x509/x509_extku.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: x509_extku.c,v 1.5 2024/07/13 15:08:58 tb Exp $ */ 1/* $OpenBSD: x509_extku.c,v 1.6 2024/08/31 10:03:03 tb Exp $ */
2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL 2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
3 * project 1999. 3 * project 1999.
4 */ 4 */
@@ -63,6 +63,8 @@
63#include <openssl/err.h> 63#include <openssl/err.h>
64#include <openssl/x509v3.h> 64#include <openssl/x509v3.h>
65 65
66#include "x509_local.h"
67
66static void *v2i_EXTENDED_KEY_USAGE(const X509V3_EXT_METHOD *method, 68static void *v2i_EXTENDED_KEY_USAGE(const X509V3_EXT_METHOD *method,
67 X509V3_CTX *ctx, STACK_OF(CONF_VALUE) *nval); 69 X509V3_CTX *ctx, STACK_OF(CONF_VALUE) *nval);
68static STACK_OF(CONF_VALUE) *i2v_EXTENDED_KEY_USAGE( 70static STACK_OF(CONF_VALUE) *i2v_EXTENDED_KEY_USAGE(
diff --git a/src/lib/libcrypto/x509/x509_local.h b/src/lib/libcrypto/x509/x509_local.h
index 81a237d860..d232a54a21 100644
--- a/src/lib/libcrypto/x509/x509_local.h
+++ b/src/lib/libcrypto/x509/x509_local.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: x509_local.h,v 1.26 2024/07/13 15:08:58 tb Exp $ */ 1/* $OpenBSD: x509_local.h,v 1.27 2024/08/31 10:03:03 tb Exp $ */
2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL 2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
3 * project 2013. 3 * project 2013.
4 */ 4 */
@@ -418,6 +418,23 @@ X509_ALGOR *PKCS5_pbkdf2_set(int iter, unsigned char *salt, int saltlen,
418int X509_PURPOSE_get_by_id(int id); 418int X509_PURPOSE_get_by_id(int id);
419int X509_PURPOSE_get_trust(const X509_PURPOSE *xp); 419int X509_PURPOSE_get_trust(const X509_PURPOSE *xp);
420 420
421int X509V3_add_value(const char *name, const char *value,
422 STACK_OF(CONF_VALUE) **extlist);
423int X509V3_add_value_uchar(const char *name, const unsigned char *value,
424 STACK_OF(CONF_VALUE) **extlist);
425int X509V3_add_value_bool(const char *name, int asn1_bool,
426 STACK_OF(CONF_VALUE) **extlist);
427int X509V3_add_value_int(const char *name, const ASN1_INTEGER *aint,
428 STACK_OF(CONF_VALUE) **extlist);
429
430int X509V3_get_value_bool(const CONF_VALUE *value, int *asn1_bool);
431int X509V3_get_value_int(const CONF_VALUE *value, ASN1_INTEGER **aint);
432
433char *X509V3_get_string(X509V3_CTX *ctx, const char *name, const char *section);
434STACK_OF(CONF_VALUE) *X509V3_get_section(X509V3_CTX *ctx, const char *section);
435void X509V3_string_free(X509V3_CTX *ctx, char *str);
436void X509V3_section_free(X509V3_CTX *ctx, STACK_OF(CONF_VALUE) *section);
437
421const X509V3_EXT_METHOD *x509v3_ext_method_authority_key_identifier(void); 438const X509V3_EXT_METHOD *x509v3_ext_method_authority_key_identifier(void);
422const X509V3_EXT_METHOD *x509v3_ext_method_basic_constraints(void); 439const X509V3_EXT_METHOD *x509v3_ext_method_basic_constraints(void);
423const X509V3_EXT_METHOD *x509v3_ext_method_certificate_issuer(void); 440const X509V3_EXT_METHOD *x509v3_ext_method_certificate_issuer(void);
diff --git a/src/lib/libcrypto/x509/x509_pcons.c b/src/lib/libcrypto/x509/x509_pcons.c
index d6ee9d7e2c..66dc57abf6 100644
--- a/src/lib/libcrypto/x509/x509_pcons.c
+++ b/src/lib/libcrypto/x509/x509_pcons.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: x509_pcons.c,v 1.5 2024/07/13 15:08:58 tb Exp $ */ 1/* $OpenBSD: x509_pcons.c,v 1.6 2024/08/31 10:03:03 tb Exp $ */
2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL 2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
3 * project. 3 * project.
4 */ 4 */
@@ -65,6 +65,8 @@
65#include <openssl/err.h> 65#include <openssl/err.h>
66#include <openssl/x509v3.h> 66#include <openssl/x509v3.h>
67 67
68#include "x509_local.h"
69
68static STACK_OF(CONF_VALUE) * 70static STACK_OF(CONF_VALUE) *
69i2v_POLICY_CONSTRAINTS(const X509V3_EXT_METHOD *method, void *bcons, 71i2v_POLICY_CONSTRAINTS(const X509V3_EXT_METHOD *method, void *bcons,
70 STACK_OF(CONF_VALUE) *extlist); 72 STACK_OF(CONF_VALUE) *extlist);
diff --git a/src/lib/libcrypto/x509/x509_pmaps.c b/src/lib/libcrypto/x509/x509_pmaps.c
index 7a91917f65..5039f65f2e 100644
--- a/src/lib/libcrypto/x509/x509_pmaps.c
+++ b/src/lib/libcrypto/x509/x509_pmaps.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: x509_pmaps.c,v 1.5 2024/07/13 15:08:58 tb Exp $ */ 1/* $OpenBSD: x509_pmaps.c,v 1.6 2024/08/31 10:03:03 tb Exp $ */
2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL 2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
3 * project. 3 * project.
4 */ 4 */
@@ -64,6 +64,8 @@
64#include <openssl/err.h> 64#include <openssl/err.h>
65#include <openssl/x509v3.h> 65#include <openssl/x509v3.h>
66 66
67#include "x509_local.h"
68
67static void *v2i_POLICY_MAPPINGS(const X509V3_EXT_METHOD *method, 69static void *v2i_POLICY_MAPPINGS(const X509V3_EXT_METHOD *method,
68 X509V3_CTX *ctx, STACK_OF(CONF_VALUE) *nval); 70 X509V3_CTX *ctx, STACK_OF(CONF_VALUE) *nval);
69static STACK_OF(CONF_VALUE) *i2v_POLICY_MAPPINGS( 71static STACK_OF(CONF_VALUE) *i2v_POLICY_MAPPINGS(
diff --git a/src/lib/libcrypto/x509/x509_utl.c b/src/lib/libcrypto/x509/x509_utl.c
index e0e5a67386..6f5add482f 100644
--- a/src/lib/libcrypto/x509/x509_utl.c
+++ b/src/lib/libcrypto/x509/x509_utl.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: x509_utl.c,v 1.20 2024/08/31 09:26:18 tb Exp $ */ 1/* $OpenBSD: x509_utl.c,v 1.21 2024/08/31 10:03:03 tb Exp $ */
2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL 2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
3 * project. 3 * project.
4 */ 4 */
@@ -122,7 +122,6 @@ X509V3_add_value(const char *name, const char *value,
122 } 122 }
123 return 0; 123 return 0;
124} 124}
125LCRYPTO_ALIAS(X509V3_add_value);
126 125
127int 126int
128X509V3_add_value_uchar(const char *name, const unsigned char *value, 127X509V3_add_value_uchar(const char *name, const unsigned char *value,
@@ -130,7 +129,6 @@ X509V3_add_value_uchar(const char *name, const unsigned char *value,
130{ 129{
131 return X509V3_add_value(name, (const char *)value, extlist); 130 return X509V3_add_value(name, (const char *)value, extlist);
132} 131}
133LCRYPTO_ALIAS(X509V3_add_value_uchar);
134 132
135/* Free function for STACK_OF(CONF_VALUE) */ 133/* Free function for STACK_OF(CONF_VALUE) */
136 134
@@ -154,17 +152,6 @@ X509V3_add_value_bool(const char *name, int asn1_bool,
154 return X509V3_add_value(name, "TRUE", extlist); 152 return X509V3_add_value(name, "TRUE", extlist);
155 return X509V3_add_value(name, "FALSE", extlist); 153 return X509V3_add_value(name, "FALSE", extlist);
156} 154}
157LCRYPTO_ALIAS(X509V3_add_value_bool);
158
159int
160X509V3_add_value_bool_nf(const char *name, int asn1_bool,
161 STACK_OF(CONF_VALUE) **extlist)
162{
163 if (asn1_bool)
164 return X509V3_add_value(name, "TRUE", extlist);
165 return 1;
166}
167LCRYPTO_ALIAS(X509V3_add_value_bool_nf);
168 155
169static char * 156static char *
170bn_to_string(const BIGNUM *bn) 157bn_to_string(const BIGNUM *bn)
@@ -307,7 +294,6 @@ X509V3_add_value_int(const char *name, const ASN1_INTEGER *aint,
307 free(strtmp); 294 free(strtmp);
308 return ret; 295 return ret;
309} 296}
310LCRYPTO_ALIAS(X509V3_add_value_int);
311 297
312int 298int
313X509V3_get_value_bool(const CONF_VALUE *value, int *asn1_bool) 299X509V3_get_value_bool(const CONF_VALUE *value, int *asn1_bool)
@@ -333,7 +319,6 @@ X509V3_get_value_bool(const CONF_VALUE *value, int *asn1_bool)
333 X509V3_conf_err(value); 319 X509V3_conf_err(value);
334 return 0; 320 return 0;
335} 321}
336LCRYPTO_ALIAS(X509V3_get_value_bool);
337 322
338int 323int
339X509V3_get_value_int(const CONF_VALUE *value, ASN1_INTEGER **aint) 324X509V3_get_value_int(const CONF_VALUE *value, ASN1_INTEGER **aint)
@@ -347,7 +332,6 @@ X509V3_get_value_int(const CONF_VALUE *value, ASN1_INTEGER **aint)
347 *aint = itmp; 332 *aint = itmp;
348 return 1; 333 return 1;
349} 334}
350LCRYPTO_ALIAS(X509V3_get_value_int);
351 335
352#define HDR_NAME 1 336#define HDR_NAME 1
353#define HDR_VALUE 2 337#define HDR_VALUE 2
diff --git a/src/lib/libcrypto/x509/x509v3.h b/src/lib/libcrypto/x509/x509v3.h
index 6a18c1f153..3c55987d47 100644
--- a/src/lib/libcrypto/x509/x509v3.h
+++ b/src/lib/libcrypto/x509/x509v3.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: x509v3.h,v 1.32 2024/08/31 09:59:12 tb Exp $ */ 1/* $OpenBSD: x509v3.h,v 1.33 2024/08/31 10:03:03 tb Exp $ */
2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL 2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
3 * project 1999. 3 * project 1999.
4 */ 4 */
@@ -648,29 +648,12 @@ X509_EXTENSION *X509V3_EXT_conf_nid(LHASH_OF(CONF_VALUE) *conf, X509V3_CTX *ctx,
648X509_EXTENSION *X509V3_EXT_conf(LHASH_OF(CONF_VALUE) *conf, X509V3_CTX *ctx, 648X509_EXTENSION *X509V3_EXT_conf(LHASH_OF(CONF_VALUE) *conf, X509V3_CTX *ctx,
649 const char *name, const char *value); 649 const char *name, const char *value);
650 650
651int X509V3_add_value_bool_nf(const char *name, int asn1_bool,
652 STACK_OF(CONF_VALUE) **extlist);
653int X509V3_get_value_bool(const CONF_VALUE *value, int *asn1_bool);
654int X509V3_get_value_int(const CONF_VALUE *value, ASN1_INTEGER **aint);
655void X509V3_set_nconf(X509V3_CTX *ctx, CONF *conf); 651void X509V3_set_nconf(X509V3_CTX *ctx, CONF *conf);
656#endif 652#endif
657 653
658char *X509V3_get_string(X509V3_CTX *ctx, const char *name,
659 const char *section);
660STACK_OF(CONF_VALUE) *X509V3_get_section(X509V3_CTX *ctx, const char *section);
661void X509V3_string_free(X509V3_CTX *ctx, char *str);
662void X509V3_section_free( X509V3_CTX *ctx, STACK_OF(CONF_VALUE) *section);
663void X509V3_set_ctx(X509V3_CTX *ctx, X509 *issuer, X509 *subject, 654void X509V3_set_ctx(X509V3_CTX *ctx, X509 *issuer, X509 *subject,
664 X509_REQ *req, X509_CRL *crl, int flags); 655 X509_REQ *req, X509_CRL *crl, int flags);
665 656
666int X509V3_add_value(const char *name, const char *value,
667 STACK_OF(CONF_VALUE) **extlist);
668int X509V3_add_value_uchar(const char *name, const unsigned char *value,
669 STACK_OF(CONF_VALUE) **extlist);
670int X509V3_add_value_bool(const char *name, int asn1_bool,
671 STACK_OF(CONF_VALUE) **extlist);
672int X509V3_add_value_int(const char *name, const ASN1_INTEGER *aint,
673 STACK_OF(CONF_VALUE) **extlist);
674char *i2s_ASN1_INTEGER(X509V3_EXT_METHOD *meth, const ASN1_INTEGER *aint); 657char *i2s_ASN1_INTEGER(X509V3_EXT_METHOD *meth, const ASN1_INTEGER *aint);
675ASN1_INTEGER *s2i_ASN1_INTEGER(X509V3_EXT_METHOD *meth, const char *value); 658ASN1_INTEGER *s2i_ASN1_INTEGER(X509V3_EXT_METHOD *meth, const char *value);
676char *i2s_ASN1_ENUMERATED(X509V3_EXT_METHOD *meth, const ASN1_ENUMERATED *aint); 659char *i2s_ASN1_ENUMERATED(X509V3_EXT_METHOD *meth, const ASN1_ENUMERATED *aint);
@@ -685,7 +668,6 @@ void *X509V3_EXT_d2i(X509_EXTENSION *ext);
685void *X509V3_get_d2i(const STACK_OF(X509_EXTENSION) *x, int nid, int *crit, 668void *X509V3_get_d2i(const STACK_OF(X509_EXTENSION) *x, int nid, int *crit,
686 int *idx); 669 int *idx);
687 670
688
689X509_EXTENSION *X509V3_EXT_i2d(int ext_nid, int crit, void *ext_struc); 671X509_EXTENSION *X509V3_EXT_i2d(int ext_nid, int crit, void *ext_struc);
690int X509V3_add1_i2d(STACK_OF(X509_EXTENSION) **x, int nid, void *value, int crit, unsigned long flags); 672int X509V3_add1_i2d(STACK_OF(X509_EXTENSION) **x, int nid, void *value, int crit, unsigned long flags);
691 673