diff options
Diffstat (limited to 'src/lib/libcrypto/x509v3/v3_genn.c')
-rw-r--r-- | src/lib/libcrypto/x509v3/v3_genn.c | 106 |
1 files changed, 101 insertions, 5 deletions
diff --git a/src/lib/libcrypto/x509v3/v3_genn.c b/src/lib/libcrypto/x509v3/v3_genn.c index 716f4a7b99..25d7f447d2 100644 --- a/src/lib/libcrypto/x509v3/v3_genn.c +++ b/src/lib/libcrypto/x509v3/v3_genn.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: v3_genn.c,v 1.9 2014/07/11 08:44:49 jsing Exp $ */ | 1 | /* $OpenBSD: v3_genn.c,v 1.10 2015/02/09 16:03:11 jsing 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 | */ |
@@ -69,14 +69,62 @@ ASN1_SEQUENCE(OTHERNAME) = { | |||
69 | ASN1_EXP(OTHERNAME, value, ASN1_ANY, 0) | 69 | ASN1_EXP(OTHERNAME, value, ASN1_ANY, 0) |
70 | } ASN1_SEQUENCE_END(OTHERNAME) | 70 | } ASN1_SEQUENCE_END(OTHERNAME) |
71 | 71 | ||
72 | IMPLEMENT_ASN1_FUNCTIONS(OTHERNAME) | 72 | |
73 | OTHERNAME * | ||
74 | d2i_OTHERNAME(OTHERNAME **a, const unsigned char **in, long len) | ||
75 | { | ||
76 | return (OTHERNAME *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, | ||
77 | &OTHERNAME_it); | ||
78 | } | ||
79 | |||
80 | int | ||
81 | i2d_OTHERNAME(OTHERNAME *a, unsigned char **out) | ||
82 | { | ||
83 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &OTHERNAME_it); | ||
84 | } | ||
85 | |||
86 | OTHERNAME * | ||
87 | OTHERNAME_new(void) | ||
88 | { | ||
89 | return (OTHERNAME *)ASN1_item_new(&OTHERNAME_it); | ||
90 | } | ||
91 | |||
92 | void | ||
93 | OTHERNAME_free(OTHERNAME *a) | ||
94 | { | ||
95 | ASN1_item_free((ASN1_VALUE *)a, &OTHERNAME_it); | ||
96 | } | ||
73 | 97 | ||
74 | ASN1_SEQUENCE(EDIPARTYNAME) = { | 98 | ASN1_SEQUENCE(EDIPARTYNAME) = { |
75 | ASN1_IMP_OPT(EDIPARTYNAME, nameAssigner, DIRECTORYSTRING, 0), | 99 | ASN1_IMP_OPT(EDIPARTYNAME, nameAssigner, DIRECTORYSTRING, 0), |
76 | ASN1_IMP_OPT(EDIPARTYNAME, partyName, DIRECTORYSTRING, 1) | 100 | ASN1_IMP_OPT(EDIPARTYNAME, partyName, DIRECTORYSTRING, 1) |
77 | } ASN1_SEQUENCE_END(EDIPARTYNAME) | 101 | } ASN1_SEQUENCE_END(EDIPARTYNAME) |
78 | 102 | ||
79 | IMPLEMENT_ASN1_FUNCTIONS(EDIPARTYNAME) | 103 | |
104 | EDIPARTYNAME * | ||
105 | d2i_EDIPARTYNAME(EDIPARTYNAME **a, const unsigned char **in, long len) | ||
106 | { | ||
107 | return (EDIPARTYNAME *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, | ||
108 | &EDIPARTYNAME_it); | ||
109 | } | ||
110 | |||
111 | int | ||
112 | i2d_EDIPARTYNAME(EDIPARTYNAME *a, unsigned char **out) | ||
113 | { | ||
114 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &EDIPARTYNAME_it); | ||
115 | } | ||
116 | |||
117 | EDIPARTYNAME * | ||
118 | EDIPARTYNAME_new(void) | ||
119 | { | ||
120 | return (EDIPARTYNAME *)ASN1_item_new(&EDIPARTYNAME_it); | ||
121 | } | ||
122 | |||
123 | void | ||
124 | EDIPARTYNAME_free(EDIPARTYNAME *a) | ||
125 | { | ||
126 | ASN1_item_free((ASN1_VALUE *)a, &EDIPARTYNAME_it); | ||
127 | } | ||
80 | 128 | ||
81 | ASN1_CHOICE(GENERAL_NAME) = { | 129 | ASN1_CHOICE(GENERAL_NAME) = { |
82 | ASN1_IMP(GENERAL_NAME, d.otherName, OTHERNAME, GEN_OTHERNAME), | 130 | ASN1_IMP(GENERAL_NAME, d.otherName, OTHERNAME, GEN_OTHERNAME), |
@@ -92,13 +140,61 @@ ASN1_CHOICE(GENERAL_NAME) = { | |||
92 | ASN1_IMP(GENERAL_NAME, d.registeredID, ASN1_OBJECT, GEN_RID) | 140 | ASN1_IMP(GENERAL_NAME, d.registeredID, ASN1_OBJECT, GEN_RID) |
93 | } ASN1_CHOICE_END(GENERAL_NAME) | 141 | } ASN1_CHOICE_END(GENERAL_NAME) |
94 | 142 | ||
95 | IMPLEMENT_ASN1_FUNCTIONS(GENERAL_NAME) | 143 | |
144 | GENERAL_NAME * | ||
145 | d2i_GENERAL_NAME(GENERAL_NAME **a, const unsigned char **in, long len) | ||
146 | { | ||
147 | return (GENERAL_NAME *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, | ||
148 | &GENERAL_NAME_it); | ||
149 | } | ||
150 | |||
151 | int | ||
152 | i2d_GENERAL_NAME(GENERAL_NAME *a, unsigned char **out) | ||
153 | { | ||
154 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &GENERAL_NAME_it); | ||
155 | } | ||
156 | |||
157 | GENERAL_NAME * | ||
158 | GENERAL_NAME_new(void) | ||
159 | { | ||
160 | return (GENERAL_NAME *)ASN1_item_new(&GENERAL_NAME_it); | ||
161 | } | ||
162 | |||
163 | void | ||
164 | GENERAL_NAME_free(GENERAL_NAME *a) | ||
165 | { | ||
166 | ASN1_item_free((ASN1_VALUE *)a, &GENERAL_NAME_it); | ||
167 | } | ||
96 | 168 | ||
97 | ASN1_ITEM_TEMPLATE(GENERAL_NAMES) = | 169 | ASN1_ITEM_TEMPLATE(GENERAL_NAMES) = |
98 | ASN1_EX_TEMPLATE_TYPE(ASN1_TFLG_SEQUENCE_OF, 0, GeneralNames, GENERAL_NAME) | 170 | ASN1_EX_TEMPLATE_TYPE(ASN1_TFLG_SEQUENCE_OF, 0, GeneralNames, GENERAL_NAME) |
99 | ASN1_ITEM_TEMPLATE_END(GENERAL_NAMES) | 171 | ASN1_ITEM_TEMPLATE_END(GENERAL_NAMES) |
100 | 172 | ||
101 | IMPLEMENT_ASN1_FUNCTIONS(GENERAL_NAMES) | 173 | |
174 | GENERAL_NAMES * | ||
175 | d2i_GENERAL_NAMES(GENERAL_NAMES **a, const unsigned char **in, long len) | ||
176 | { | ||
177 | return (GENERAL_NAMES *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, | ||
178 | &GENERAL_NAMES_it); | ||
179 | } | ||
180 | |||
181 | int | ||
182 | i2d_GENERAL_NAMES(GENERAL_NAMES *a, unsigned char **out) | ||
183 | { | ||
184 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &GENERAL_NAMES_it); | ||
185 | } | ||
186 | |||
187 | GENERAL_NAMES * | ||
188 | GENERAL_NAMES_new(void) | ||
189 | { | ||
190 | return (GENERAL_NAMES *)ASN1_item_new(&GENERAL_NAMES_it); | ||
191 | } | ||
192 | |||
193 | void | ||
194 | GENERAL_NAMES_free(GENERAL_NAMES *a) | ||
195 | { | ||
196 | ASN1_item_free((ASN1_VALUE *)a, &GENERAL_NAMES_it); | ||
197 | } | ||
102 | 198 | ||
103 | GENERAL_NAME * | 199 | GENERAL_NAME * |
104 | GENERAL_NAME_dup(GENERAL_NAME *a) | 200 | GENERAL_NAME_dup(GENERAL_NAME *a) |