summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/x509/x509_int.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_int.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_int.c')
-rw-r--r--src/lib/libcrypto/x509/x509_int.c46
1 files changed, 36 insertions, 10 deletions
diff --git a/src/lib/libcrypto/x509/x509_int.c b/src/lib/libcrypto/x509/x509_int.c
index 35c8853c13..2236bfe4c4 100644
--- a/src/lib/libcrypto/x509/x509_int.c
+++ b/src/lib/libcrypto/x509/x509_int.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: x509_int.c,v 1.1 2020/06/04 15:19:31 jsing Exp $ */ 1/* $OpenBSD: x509_int.c,v 1.2 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 */
@@ -60,7 +60,7 @@
60 60
61#include <openssl/x509v3.h> 61#include <openssl/x509v3.h>
62 62
63const X509V3_EXT_METHOD v3_crl_num = { 63static const X509V3_EXT_METHOD x509v3_ext_crl_number = {
64 .ext_nid = NID_crl_number, 64 .ext_nid = NID_crl_number,
65 .ext_flags = 0, 65 .ext_flags = 0,
66 .it = &ASN1_INTEGER_it, 66 .it = &ASN1_INTEGER_it,
@@ -77,7 +77,13 @@ const X509V3_EXT_METHOD v3_crl_num = {
77 .usr_data = NULL, 77 .usr_data = NULL,
78}; 78};
79 79
80const X509V3_EXT_METHOD v3_delta_crl = { 80const X509V3_EXT_METHOD *
81x509v3_ext_method_crl_number(void)
82{
83 return &x509v3_ext_crl_number;
84}
85
86static const X509V3_EXT_METHOD x509v3_ext_delta_crl = {
81 .ext_nid = NID_delta_crl, 87 .ext_nid = NID_delta_crl,
82 .ext_flags = 0, 88 .ext_flags = 0,
83 .it = &ASN1_INTEGER_it, 89 .it = &ASN1_INTEGER_it,
@@ -94,17 +100,37 @@ const X509V3_EXT_METHOD v3_delta_crl = {
94 .usr_data = NULL, 100 .usr_data = NULL,
95}; 101};
96 102
103const X509V3_EXT_METHOD *
104x509v3_ext_method_delta_crl(void)
105{
106 return &x509v3_ext_delta_crl;
107}
108
97static void * 109static void *
98s2i_asn1_int(X509V3_EXT_METHOD *meth, X509V3_CTX *ctx, char *value) 110s2i_asn1_int(X509V3_EXT_METHOD *meth, X509V3_CTX *ctx, char *value)
99{ 111{
100 return s2i_ASN1_INTEGER(meth, value); 112 return s2i_ASN1_INTEGER(meth, value);
101} 113}
102 114
103const X509V3_EXT_METHOD v3_inhibit_anyp = { 115static const X509V3_EXT_METHOD x509v3_ext_inhibit_any_policy = {
104 NID_inhibit_any_policy, 0, &ASN1_INTEGER_it, 116 .ext_nid = NID_inhibit_any_policy,
105 0, 0, 0, 0, 117 .ext_flags = 0,
106 (X509V3_EXT_I2S)i2s_ASN1_INTEGER, 118 .it = &ASN1_INTEGER_it,
107 (X509V3_EXT_S2I)s2i_asn1_int, 119 .ext_new = NULL,
108 0, 0, 0, 0, 120 .ext_free = NULL,
109 NULL 121 .d2i = NULL,
122 .i2d = NULL,
123 .i2s = (X509V3_EXT_I2S)i2s_ASN1_INTEGER,
124 .s2i = (X509V3_EXT_S2I)s2i_asn1_int,
125 .i2v = NULL,
126 .v2i = NULL,
127 .i2r = NULL,
128 .r2i = NULL,
129 .usr_data = NULL,
110}; 130};
131
132const X509V3_EXT_METHOD *
133x509v3_ext_method_inhibit_any_policy(void)
134{
135 return &x509v3_ext_inhibit_any_policy;
136}