summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/x509/x509_extku.c
diff options
context:
space:
mode:
authortb <>2024-07-13 15:08:58 +0000
committertb <>2024-07-13 15:08:58 +0000
commit3a6927c782869fec9a91b17f3757e56538e5d418 (patch)
tree9bceb8f53165bf9b9a2232987ecac3565db027df /src/lib/libcrypto/x509/x509_extku.c
parent57d2f282cacabe0c53399ec9c933b34696835dd2 (diff)
downloadopenbsd-3a6927c782869fec9a91b17f3757e56538e5d418.tar.gz
openbsd-3a6927c782869fec9a91b17f3757e56538e5d418.tar.bz2
openbsd-3a6927c782869fec9a91b17f3757e56538e5d418.zip
Unify X.509v3 extension methods
Use C99 initializers for all structs (some were forgotten). Make all the structs static, call them x509v3_ext_* matching NID_*. Add accessors called x509v3_ext_method_* and use these to implement X509V3_EXT_get_nid(). This adds consistency and avoids a few contortions like grouping a few extensions in arrays to save a couple externs. ok beck jsing
Diffstat (limited to 'src/lib/libcrypto/x509/x509_extku.c')
-rw-r--r--src/lib/libcrypto/x509/x509_extku.c18
1 files changed, 15 insertions, 3 deletions
diff --git a/src/lib/libcrypto/x509/x509_extku.c b/src/lib/libcrypto/x509/x509_extku.c
index f0f8d44aa6..6a69adabc6 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.4 2024/07/08 14:47:44 beck Exp $ */ 1/* $OpenBSD: x509_extku.c,v 1.5 2024/07/13 15:08:58 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 */
@@ -68,7 +68,7 @@ static void *v2i_EXTENDED_KEY_USAGE(const X509V3_EXT_METHOD *method,
68static STACK_OF(CONF_VALUE) *i2v_EXTENDED_KEY_USAGE( 68static STACK_OF(CONF_VALUE) *i2v_EXTENDED_KEY_USAGE(
69 const X509V3_EXT_METHOD *method, void *eku, STACK_OF(CONF_VALUE) *extlist); 69 const X509V3_EXT_METHOD *method, void *eku, STACK_OF(CONF_VALUE) *extlist);
70 70
71const X509V3_EXT_METHOD v3_ext_ku = { 71static const X509V3_EXT_METHOD x509v3_ext_ext_key_usage = {
72 .ext_nid = NID_ext_key_usage, 72 .ext_nid = NID_ext_key_usage,
73 .ext_flags = 0, 73 .ext_flags = 0,
74 .it = &EXTENDED_KEY_USAGE_it, 74 .it = &EXTENDED_KEY_USAGE_it,
@@ -85,8 +85,14 @@ const X509V3_EXT_METHOD v3_ext_ku = {
85 .usr_data = NULL, 85 .usr_data = NULL,
86}; 86};
87 87
88const X509V3_EXT_METHOD *
89x509v3_ext_method_ext_key_usage(void)
90{
91 return &x509v3_ext_ext_key_usage;
92}
93
88/* NB OCSP acceptable responses also is a SEQUENCE OF OBJECT */ 94/* NB OCSP acceptable responses also is a SEQUENCE OF OBJECT */
89const X509V3_EXT_METHOD v3_ocsp_accresp = { 95static const X509V3_EXT_METHOD x509v3_ext_id_pkix_OCSP_acceptableResponses = {
90 .ext_nid = NID_id_pkix_OCSP_acceptableResponses, 96 .ext_nid = NID_id_pkix_OCSP_acceptableResponses,
91 .ext_flags = 0, 97 .ext_flags = 0,
92 .it = &EXTENDED_KEY_USAGE_it, 98 .it = &EXTENDED_KEY_USAGE_it,
@@ -103,6 +109,12 @@ const X509V3_EXT_METHOD v3_ocsp_accresp = {
103 .usr_data = NULL, 109 .usr_data = NULL,
104}; 110};
105 111
112const X509V3_EXT_METHOD *
113x509v3_ext_method_id_pkix_OCSP_acceptableResponses(void)
114{
115 return &x509v3_ext_id_pkix_OCSP_acceptableResponses;
116}
117
106static const ASN1_TEMPLATE EXTENDED_KEY_USAGE_item_tt = { 118static const ASN1_TEMPLATE EXTENDED_KEY_USAGE_item_tt = {
107 .flags = ASN1_TFLG_SEQUENCE_OF, 119 .flags = ASN1_TFLG_SEQUENCE_OF,
108 .tag = 0, 120 .tag = 0,