summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/x509/x509_alt.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/x509/x509_alt.c')
-rw-r--r--src/lib/libcrypto/x509/x509_alt.c118
1 files changed, 68 insertions, 50 deletions
diff --git a/src/lib/libcrypto/x509/x509_alt.c b/src/lib/libcrypto/x509/x509_alt.c
index 59fa39fa6b..8981e4c4fb 100644
--- a/src/lib/libcrypto/x509/x509_alt.c
+++ b/src/lib/libcrypto/x509/x509_alt.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: x509_alt.c,v 1.16 2023/08/30 00:49:32 tb Exp $ */ 1/* $OpenBSD: x509_alt.c,v 1.17 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. 3 * project.
4 */ 4 */
@@ -74,57 +74,75 @@ static int copy_issuer(X509V3_CTX *ctx, GENERAL_NAMES *gens);
74static int do_othername(GENERAL_NAME *gen, const char *value, X509V3_CTX *ctx); 74static int do_othername(GENERAL_NAME *gen, const char *value, X509V3_CTX *ctx);
75static int do_dirname(GENERAL_NAME *gen, const char *value, X509V3_CTX *ctx); 75static int do_dirname(GENERAL_NAME *gen, const char *value, X509V3_CTX *ctx);
76 76
77const X509V3_EXT_METHOD v3_alt[] = { 77static const X509V3_EXT_METHOD x509v3_ext_subject_alt_name = {
78 { 78 .ext_nid = NID_subject_alt_name,
79 .ext_nid = NID_subject_alt_name, 79 .ext_flags = 0,
80 .ext_flags = 0, 80 .it = &GENERAL_NAMES_it,
81 .it = &GENERAL_NAMES_it, 81 .ext_new = NULL,
82 .ext_new = NULL, 82 .ext_free = NULL,
83 .ext_free = NULL, 83 .d2i = NULL,
84 .d2i = NULL, 84 .i2d = NULL,
85 .i2d = NULL, 85 .i2s = NULL,
86 .i2s = NULL, 86 .s2i = NULL,
87 .s2i = NULL, 87 .i2v = (X509V3_EXT_I2V)i2v_GENERAL_NAMES,
88 .i2v = (X509V3_EXT_I2V)i2v_GENERAL_NAMES, 88 .v2i = (X509V3_EXT_V2I)v2i_subject_alt,
89 .v2i = (X509V3_EXT_V2I)v2i_subject_alt, 89 .i2r = NULL,
90 .i2r = NULL, 90 .r2i = NULL,
91 .r2i = NULL, 91 .usr_data = NULL,
92 .usr_data = NULL,
93 },
94 {
95 .ext_nid = NID_issuer_alt_name,
96 .ext_flags = 0,
97 .it = &GENERAL_NAMES_it,
98 .ext_new = NULL,
99 .ext_free = NULL,
100 .d2i = NULL,
101 .i2d = NULL,
102 .i2s = NULL,
103 .s2i = NULL,
104 .i2v = (X509V3_EXT_I2V)i2v_GENERAL_NAMES,
105 .v2i = (X509V3_EXT_V2I)v2i_issuer_alt,
106 .i2r = NULL,
107 .r2i = NULL,
108 .usr_data = NULL,
109 },
110 {
111 .ext_nid = NID_certificate_issuer,
112 .ext_flags = 0,
113 .it = &GENERAL_NAMES_it,
114 .ext_new = NULL,
115 .ext_free = NULL,
116 .d2i = NULL,
117 .i2d = NULL,
118 .i2s = NULL,
119 .s2i = NULL,
120 .i2v = (X509V3_EXT_I2V)i2v_GENERAL_NAMES,
121 .v2i = NULL,
122 .i2r = NULL,
123 .r2i = NULL,
124 .usr_data = NULL,
125 },
126}; 92};
127 93
94const X509V3_EXT_METHOD *
95x509v3_ext_method_subject_alt_name(void)
96{
97 return &x509v3_ext_subject_alt_name;
98}
99
100static const X509V3_EXT_METHOD x509v3_ext_issuer_alt_name = {
101 .ext_nid = NID_issuer_alt_name,
102 .ext_flags = 0,
103 .it = &GENERAL_NAMES_it,
104 .ext_new = NULL,
105 .ext_free = NULL,
106 .d2i = NULL,
107 .i2d = NULL,
108 .i2s = NULL,
109 .s2i = NULL,
110 .i2v = (X509V3_EXT_I2V)i2v_GENERAL_NAMES,
111 .v2i = (X509V3_EXT_V2I)v2i_issuer_alt,
112 .i2r = NULL,
113 .r2i = NULL,
114 .usr_data = NULL,
115};
116
117const X509V3_EXT_METHOD *
118x509v3_ext_method_issuer_alt_name(void)
119{
120 return &x509v3_ext_issuer_alt_name;
121}
122
123static const X509V3_EXT_METHOD x509v3_ext_certificate_issuer = {
124 .ext_nid = NID_certificate_issuer,
125 .ext_flags = 0,
126 .it = &GENERAL_NAMES_it,
127 .ext_new = NULL,
128 .ext_free = NULL,
129 .d2i = NULL,
130 .i2d = NULL,
131 .i2s = NULL,
132 .s2i = NULL,
133 .i2v = (X509V3_EXT_I2V)i2v_GENERAL_NAMES,
134 .v2i = NULL,
135 .i2r = NULL,
136 .r2i = NULL,
137 .usr_data = NULL,
138};
139
140const X509V3_EXT_METHOD *
141x509v3_ext_method_certificate_issuer(void)
142{
143 return &x509v3_ext_certificate_issuer;
144}
145
128STACK_OF(CONF_VALUE) * 146STACK_OF(CONF_VALUE) *
129i2v_GENERAL_NAMES(X509V3_EXT_METHOD *method, GENERAL_NAMES *gens, 147i2v_GENERAL_NAMES(X509V3_EXT_METHOD *method, GENERAL_NAMES *gens,
130 STACK_OF(CONF_VALUE) *ret) 148 STACK_OF(CONF_VALUE) *ret)