summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/x509/x509_bitst.c
diff options
context:
space:
mode:
authortb <>2024-07-13 15:08:58 +0000
committertb <>2024-07-13 15:08:58 +0000
commitde05eb4f597b95fed408db9aa9e9474eb6daf5e6 (patch)
tree9bceb8f53165bf9b9a2232987ecac3565db027df /src/lib/libcrypto/x509/x509_bitst.c
parentd694a3319273a6e59cc84d958713e0342bfc206d (diff)
downloadopenbsd-de05eb4f597b95fed408db9aa9e9474eb6daf5e6.tar.gz
openbsd-de05eb4f597b95fed408db9aa9e9474eb6daf5e6.tar.bz2
openbsd-de05eb4f597b95fed408db9aa9e9474eb6daf5e6.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_bitst.c')
-rw-r--r--src/lib/libcrypto/x509/x509_bitst.c26
1 files changed, 22 insertions, 4 deletions
diff --git a/src/lib/libcrypto/x509/x509_bitst.c b/src/lib/libcrypto/x509/x509_bitst.c
index 4c36d31b03..0328310f08 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.5 2024/06/18 08:29:40 tb Exp $ */ 1/* $OpenBSD: x509_bitst.c,v 1.6 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 */
@@ -102,7 +102,7 @@ static BIT_STRING_BITNAME crl_reasons[] = {
102 {-1, NULL, NULL} 102 {-1, NULL, NULL}
103}; 103};
104 104
105const X509V3_EXT_METHOD v3_nscert = { 105static const X509V3_EXT_METHOD x509v3_ext_netscape_cert_type = {
106 .ext_nid = NID_netscape_cert_type, 106 .ext_nid = NID_netscape_cert_type,
107 .ext_flags = 0, 107 .ext_flags = 0,
108 .it = &ASN1_BIT_STRING_it, 108 .it = &ASN1_BIT_STRING_it,
@@ -119,7 +119,13 @@ const X509V3_EXT_METHOD v3_nscert = {
119 .usr_data = ns_cert_type_table, 119 .usr_data = ns_cert_type_table,
120}; 120};
121 121
122const X509V3_EXT_METHOD v3_key_usage = { 122const X509V3_EXT_METHOD *
123x509v3_ext_method_netscape_cert_type(void)
124{
125 return &x509v3_ext_netscape_cert_type;
126}
127
128static const X509V3_EXT_METHOD x509v3_ext_key_usage = {
123 .ext_nid = NID_key_usage, 129 .ext_nid = NID_key_usage,
124 .ext_flags = 0, 130 .ext_flags = 0,
125 .it = &ASN1_BIT_STRING_it, 131 .it = &ASN1_BIT_STRING_it,
@@ -136,7 +142,13 @@ const X509V3_EXT_METHOD v3_key_usage = {
136 .usr_data = key_usage_type_table, 142 .usr_data = key_usage_type_table,
137}; 143};
138 144
139const X509V3_EXT_METHOD v3_crl_reason = { 145const X509V3_EXT_METHOD *
146x509v3_ext_method_key_usage(void)
147{
148 return &x509v3_ext_key_usage;
149}
150
151static const X509V3_EXT_METHOD x509v3_ext_crl_reason = {
140 .ext_nid = NID_crl_reason, 152 .ext_nid = NID_crl_reason,
141 .ext_flags = 0, 153 .ext_flags = 0,
142 .it = &ASN1_ENUMERATED_it, 154 .it = &ASN1_ENUMERATED_it,
@@ -153,6 +165,12 @@ const X509V3_EXT_METHOD v3_crl_reason = {
153 .usr_data = crl_reasons, 165 .usr_data = crl_reasons,
154}; 166};
155 167
168const X509V3_EXT_METHOD *
169x509v3_ext_method_crl_reason(void)
170{
171 return &x509v3_ext_crl_reason;
172}
173
156STACK_OF(CONF_VALUE) * 174STACK_OF(CONF_VALUE) *
157i2v_ASN1_BIT_STRING(X509V3_EXT_METHOD *method, ASN1_BIT_STRING *bits, 175i2v_ASN1_BIT_STRING(X509V3_EXT_METHOD *method, ASN1_BIT_STRING *bits,
158 STACK_OF(CONF_VALUE) *ret) 176 STACK_OF(CONF_VALUE) *ret)