summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorjsing <>2015-02-09 15:05:59 +0000
committerjsing <>2015-02-09 15:05:59 +0000
commit42f7780549de5b7b5e3e7943cfef87e0e41970fc (patch)
tree80e095d0af9796de5fe6127773c94c044f1f68bd /src
parentb1708fb06623ef1ece520a3f98163861f92085de (diff)
downloadopenbsd-42f7780549de5b7b5e3e7943cfef87e0e41970fc.tar.gz
openbsd-42f7780549de5b7b5e3e7943cfef87e0e41970fc.tar.bz2
openbsd-42f7780549de5b7b5e3e7943cfef87e0e41970fc.zip
Expand the IMPLEMENT_ASN1_FUNCTIONS macro so that the code is visible and
functions can be readily located. Change has been scripted and the generated assembly only differs by changes to line numbers. Discussed with beck@ miod@ tedu@
Diffstat (limited to 'src')
-rw-r--r--src/lib/libcrypto/asn1/a_time.c28
-rw-r--r--src/lib/libcrypto/asn1/nsseq.c28
-rw-r--r--src/lib/libcrypto/asn1/p5_pbe.c28
-rw-r--r--src/lib/libcrypto/asn1/p5_pbev2.c54
-rw-r--r--src/lib/libcrypto/asn1/p8_pkey.c28
-rw-r--r--src/lib/libcrypto/asn1/tasn_typ.c392
-rw-r--r--src/lib/libcrypto/asn1/x_algor.c28
-rw-r--r--src/lib/libcrypto/asn1/x_attrib.c28
-rw-r--r--src/lib/libcrypto/asn1/x_crl.c80
-rw-r--r--src/lib/libcrypto/asn1/x_exten.c28
-rw-r--r--src/lib/libcrypto/asn1/x_name.c54
-rw-r--r--src/lib/libcrypto/asn1/x_nx509.c28
-rw-r--r--src/lib/libcrypto/asn1/x_pubkey.c28
-rw-r--r--src/lib/libcrypto/asn1/x_req.c54
-rw-r--r--src/lib/libcrypto/asn1/x_sig.c28
-rw-r--r--src/lib/libcrypto/asn1/x_spki.c54
-rw-r--r--src/lib/libcrypto/asn1/x_val.c28
-rw-r--r--src/lib/libcrypto/asn1/x_x509.c54
-rw-r--r--src/lib/libcrypto/asn1/x_x509a.c54
-rw-r--r--src/lib/libssl/src/crypto/asn1/a_time.c28
-rw-r--r--src/lib/libssl/src/crypto/asn1/nsseq.c28
-rw-r--r--src/lib/libssl/src/crypto/asn1/p5_pbe.c28
-rw-r--r--src/lib/libssl/src/crypto/asn1/p5_pbev2.c54
-rw-r--r--src/lib/libssl/src/crypto/asn1/p8_pkey.c28
-rw-r--r--src/lib/libssl/src/crypto/asn1/tasn_typ.c392
-rw-r--r--src/lib/libssl/src/crypto/asn1/x_algor.c28
-rw-r--r--src/lib/libssl/src/crypto/asn1/x_attrib.c28
-rw-r--r--src/lib/libssl/src/crypto/asn1/x_crl.c80
-rw-r--r--src/lib/libssl/src/crypto/asn1/x_exten.c28
-rw-r--r--src/lib/libssl/src/crypto/asn1/x_name.c54
-rw-r--r--src/lib/libssl/src/crypto/asn1/x_nx509.c28
-rw-r--r--src/lib/libssl/src/crypto/asn1/x_pubkey.c28
-rw-r--r--src/lib/libssl/src/crypto/asn1/x_req.c54
-rw-r--r--src/lib/libssl/src/crypto/asn1/x_sig.c28
-rw-r--r--src/lib/libssl/src/crypto/asn1/x_spki.c54
-rw-r--r--src/lib/libssl/src/crypto/asn1/x_val.c28
-rw-r--r--src/lib/libssl/src/crypto/asn1/x_x509.c54
-rw-r--r--src/lib/libssl/src/crypto/asn1/x_x509a.c54
38 files changed, 2088 insertions, 120 deletions
diff --git a/src/lib/libcrypto/asn1/a_time.c b/src/lib/libcrypto/asn1/a_time.c
index c5e882a4f6..95481fc4c6 100644
--- a/src/lib/libcrypto/asn1/a_time.c
+++ b/src/lib/libcrypto/asn1/a_time.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: a_time.c,v 1.22 2015/02/07 13:19:15 doug Exp $ */ 1/* $OpenBSD: a_time.c,v 1.23 2015/02/09 15:05:59 jsing Exp $ */
2/* ==================================================================== 2/* ====================================================================
3 * Copyright (c) 1999 The OpenSSL Project. All rights reserved. 3 * Copyright (c) 1999 The OpenSSL Project. All rights reserved.
4 * 4 *
@@ -71,7 +71,31 @@
71 71
72IMPLEMENT_ASN1_MSTRING(ASN1_TIME, B_ASN1_TIME) 72IMPLEMENT_ASN1_MSTRING(ASN1_TIME, B_ASN1_TIME)
73 73
74IMPLEMENT_ASN1_FUNCTIONS(ASN1_TIME) 74
75ASN1_TIME *
76d2i_ASN1_TIME(ASN1_TIME **a, const unsigned char **in, long len)
77{
78 return (ASN1_TIME *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
79 &ASN1_TIME_it);
80}
81
82int
83i2d_ASN1_TIME(ASN1_TIME *a, unsigned char **out)
84{
85 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASN1_TIME_it);
86}
87
88ASN1_TIME *
89ASN1_TIME_new(void)
90{
91 return (ASN1_TIME *)ASN1_item_new(&ASN1_TIME_it);
92}
93
94void
95ASN1_TIME_free(ASN1_TIME *a)
96{
97 ASN1_item_free((ASN1_VALUE *)a, &ASN1_TIME_it);
98}
75 99
76ASN1_TIME * 100ASN1_TIME *
77ASN1_TIME_set(ASN1_TIME *s, time_t t) 101ASN1_TIME_set(ASN1_TIME *s, time_t t)
diff --git a/src/lib/libcrypto/asn1/nsseq.c b/src/lib/libcrypto/asn1/nsseq.c
index 97af462dc0..ceab3992fd 100644
--- a/src/lib/libcrypto/asn1/nsseq.c
+++ b/src/lib/libcrypto/asn1/nsseq.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: nsseq.c,v 1.7 2014/06/12 15:49:27 deraadt Exp $ */ 1/* $OpenBSD: nsseq.c,v 1.8 2015/02/09 15:05:59 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 */
@@ -80,4 +80,28 @@ ASN1_SEQUENCE_cb(NETSCAPE_CERT_SEQUENCE, nsseq_cb) = {
80 ASN1_EXP_SEQUENCE_OF_OPT(NETSCAPE_CERT_SEQUENCE, certs, X509, 0) 80 ASN1_EXP_SEQUENCE_OF_OPT(NETSCAPE_CERT_SEQUENCE, certs, X509, 0)
81} ASN1_SEQUENCE_END_cb(NETSCAPE_CERT_SEQUENCE, NETSCAPE_CERT_SEQUENCE) 81} ASN1_SEQUENCE_END_cb(NETSCAPE_CERT_SEQUENCE, NETSCAPE_CERT_SEQUENCE)
82 82
83IMPLEMENT_ASN1_FUNCTIONS(NETSCAPE_CERT_SEQUENCE) 83
84NETSCAPE_CERT_SEQUENCE *
85d2i_NETSCAPE_CERT_SEQUENCE(NETSCAPE_CERT_SEQUENCE **a, const unsigned char **in, long len)
86{
87 return (NETSCAPE_CERT_SEQUENCE *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
88 &NETSCAPE_CERT_SEQUENCE_it);
89}
90
91int
92i2d_NETSCAPE_CERT_SEQUENCE(NETSCAPE_CERT_SEQUENCE *a, unsigned char **out)
93{
94 return ASN1_item_i2d((ASN1_VALUE *)a, out, &NETSCAPE_CERT_SEQUENCE_it);
95}
96
97NETSCAPE_CERT_SEQUENCE *
98NETSCAPE_CERT_SEQUENCE_new(void)
99{
100 return (NETSCAPE_CERT_SEQUENCE *)ASN1_item_new(&NETSCAPE_CERT_SEQUENCE_it);
101}
102
103void
104NETSCAPE_CERT_SEQUENCE_free(NETSCAPE_CERT_SEQUENCE *a)
105{
106 ASN1_item_free((ASN1_VALUE *)a, &NETSCAPE_CERT_SEQUENCE_it);
107}
diff --git a/src/lib/libcrypto/asn1/p5_pbe.c b/src/lib/libcrypto/asn1/p5_pbe.c
index 44fbb648be..7491a5bdc7 100644
--- a/src/lib/libcrypto/asn1/p5_pbe.c
+++ b/src/lib/libcrypto/asn1/p5_pbe.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: p5_pbe.c,v 1.17 2014/10/22 13:02:03 jsing Exp $ */ 1/* $OpenBSD: p5_pbe.c,v 1.18 2015/02/09 15:05:59 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 */
@@ -71,7 +71,31 @@ ASN1_SEQUENCE(PBEPARAM) = {
71 ASN1_SIMPLE(PBEPARAM, iter, ASN1_INTEGER) 71 ASN1_SIMPLE(PBEPARAM, iter, ASN1_INTEGER)
72} ASN1_SEQUENCE_END(PBEPARAM) 72} ASN1_SEQUENCE_END(PBEPARAM)
73 73
74IMPLEMENT_ASN1_FUNCTIONS(PBEPARAM) 74
75PBEPARAM *
76d2i_PBEPARAM(PBEPARAM **a, const unsigned char **in, long len)
77{
78 return (PBEPARAM *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
79 &PBEPARAM_it);
80}
81
82int
83i2d_PBEPARAM(PBEPARAM *a, unsigned char **out)
84{
85 return ASN1_item_i2d((ASN1_VALUE *)a, out, &PBEPARAM_it);
86}
87
88PBEPARAM *
89PBEPARAM_new(void)
90{
91 return (PBEPARAM *)ASN1_item_new(&PBEPARAM_it);
92}
93
94void
95PBEPARAM_free(PBEPARAM *a)
96{
97 ASN1_item_free((ASN1_VALUE *)a, &PBEPARAM_it);
98}
75 99
76 100
77/* Set an algorithm identifier for a PKCS#5 PBE algorithm */ 101/* Set an algorithm identifier for a PKCS#5 PBE algorithm */
diff --git a/src/lib/libcrypto/asn1/p5_pbev2.c b/src/lib/libcrypto/asn1/p5_pbev2.c
index 0947965219..1189e7e26b 100644
--- a/src/lib/libcrypto/asn1/p5_pbev2.c
+++ b/src/lib/libcrypto/asn1/p5_pbev2.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: p5_pbev2.c,v 1.18 2014/10/22 13:02:03 jsing Exp $ */ 1/* $OpenBSD: p5_pbev2.c,v 1.19 2015/02/09 15:05:59 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-2004. 3 * project 1999-2004.
4 */ 4 */
@@ -71,7 +71,31 @@ ASN1_SEQUENCE(PBE2PARAM) = {
71 ASN1_SIMPLE(PBE2PARAM, encryption, X509_ALGOR) 71 ASN1_SIMPLE(PBE2PARAM, encryption, X509_ALGOR)
72} ASN1_SEQUENCE_END(PBE2PARAM) 72} ASN1_SEQUENCE_END(PBE2PARAM)
73 73
74IMPLEMENT_ASN1_FUNCTIONS(PBE2PARAM) 74
75PBE2PARAM *
76d2i_PBE2PARAM(PBE2PARAM **a, const unsigned char **in, long len)
77{
78 return (PBE2PARAM *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
79 &PBE2PARAM_it);
80}
81
82int
83i2d_PBE2PARAM(PBE2PARAM *a, unsigned char **out)
84{
85 return ASN1_item_i2d((ASN1_VALUE *)a, out, &PBE2PARAM_it);
86}
87
88PBE2PARAM *
89PBE2PARAM_new(void)
90{
91 return (PBE2PARAM *)ASN1_item_new(&PBE2PARAM_it);
92}
93
94void
95PBE2PARAM_free(PBE2PARAM *a)
96{
97 ASN1_item_free((ASN1_VALUE *)a, &PBE2PARAM_it);
98}
75 99
76ASN1_SEQUENCE(PBKDF2PARAM) = { 100ASN1_SEQUENCE(PBKDF2PARAM) = {
77 ASN1_SIMPLE(PBKDF2PARAM, salt, ASN1_ANY), 101 ASN1_SIMPLE(PBKDF2PARAM, salt, ASN1_ANY),
@@ -80,7 +104,31 @@ ASN1_SEQUENCE(PBKDF2PARAM) = {
80 ASN1_OPT(PBKDF2PARAM, prf, X509_ALGOR) 104 ASN1_OPT(PBKDF2PARAM, prf, X509_ALGOR)
81} ASN1_SEQUENCE_END(PBKDF2PARAM) 105} ASN1_SEQUENCE_END(PBKDF2PARAM)
82 106
83IMPLEMENT_ASN1_FUNCTIONS(PBKDF2PARAM) 107
108PBKDF2PARAM *
109d2i_PBKDF2PARAM(PBKDF2PARAM **a, const unsigned char **in, long len)
110{
111 return (PBKDF2PARAM *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
112 &PBKDF2PARAM_it);
113}
114
115int
116i2d_PBKDF2PARAM(PBKDF2PARAM *a, unsigned char **out)
117{
118 return ASN1_item_i2d((ASN1_VALUE *)a, out, &PBKDF2PARAM_it);
119}
120
121PBKDF2PARAM *
122PBKDF2PARAM_new(void)
123{
124 return (PBKDF2PARAM *)ASN1_item_new(&PBKDF2PARAM_it);
125}
126
127void
128PBKDF2PARAM_free(PBKDF2PARAM *a)
129{
130 ASN1_item_free((ASN1_VALUE *)a, &PBKDF2PARAM_it);
131}
84 132
85/* Return an algorithm identifier for a PKCS#5 v2.0 PBE algorithm: 133/* Return an algorithm identifier for a PKCS#5 v2.0 PBE algorithm:
86 * yes I know this is horrible! 134 * yes I know this is horrible!
diff --git a/src/lib/libcrypto/asn1/p8_pkey.c b/src/lib/libcrypto/asn1/p8_pkey.c
index 3aacecb8fb..f8688ebc17 100644
--- a/src/lib/libcrypto/asn1/p8_pkey.c
+++ b/src/lib/libcrypto/asn1/p8_pkey.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: p8_pkey.c,v 1.12 2014/07/11 08:44:47 jsing Exp $ */ 1/* $OpenBSD: p8_pkey.c,v 1.13 2015/02/09 15:05:59 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 */
@@ -82,7 +82,31 @@ ASN1_SEQUENCE_cb(PKCS8_PRIV_KEY_INFO, pkey_cb) = {
82 ASN1_IMP_SET_OF_OPT(PKCS8_PRIV_KEY_INFO, attributes, X509_ATTRIBUTE, 0) 82 ASN1_IMP_SET_OF_OPT(PKCS8_PRIV_KEY_INFO, attributes, X509_ATTRIBUTE, 0)
83} ASN1_SEQUENCE_END_cb(PKCS8_PRIV_KEY_INFO, PKCS8_PRIV_KEY_INFO) 83} ASN1_SEQUENCE_END_cb(PKCS8_PRIV_KEY_INFO, PKCS8_PRIV_KEY_INFO)
84 84
85IMPLEMENT_ASN1_FUNCTIONS(PKCS8_PRIV_KEY_INFO) 85
86PKCS8_PRIV_KEY_INFO *
87d2i_PKCS8_PRIV_KEY_INFO(PKCS8_PRIV_KEY_INFO **a, const unsigned char **in, long len)
88{
89 return (PKCS8_PRIV_KEY_INFO *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
90 &PKCS8_PRIV_KEY_INFO_it);
91}
92
93int
94i2d_PKCS8_PRIV_KEY_INFO(PKCS8_PRIV_KEY_INFO *a, unsigned char **out)
95{
96 return ASN1_item_i2d((ASN1_VALUE *)a, out, &PKCS8_PRIV_KEY_INFO_it);
97}
98
99PKCS8_PRIV_KEY_INFO *
100PKCS8_PRIV_KEY_INFO_new(void)
101{
102 return (PKCS8_PRIV_KEY_INFO *)ASN1_item_new(&PKCS8_PRIV_KEY_INFO_it);
103}
104
105void
106PKCS8_PRIV_KEY_INFO_free(PKCS8_PRIV_KEY_INFO *a)
107{
108 ASN1_item_free((ASN1_VALUE *)a, &PKCS8_PRIV_KEY_INFO_it);
109}
86 110
87int 111int
88PKCS8_pkey_set0(PKCS8_PRIV_KEY_INFO *priv, ASN1_OBJECT *aobj, int version, 112PKCS8_pkey_set0(PKCS8_PRIV_KEY_INFO *priv, ASN1_OBJECT *aobj, int version,
diff --git a/src/lib/libcrypto/asn1/tasn_typ.c b/src/lib/libcrypto/asn1/tasn_typ.c
index 04d9c84180..2f44b4229b 100644
--- a/src/lib/libcrypto/asn1/tasn_typ.c
+++ b/src/lib/libcrypto/asn1/tasn_typ.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: tasn_typ.c,v 1.6 2014/06/12 15:49:27 deraadt Exp $ */ 1/* $OpenBSD: tasn_typ.c,v 1.7 2015/02/09 15:05:59 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 2000. 3 * project 2000.
4 */ 4 */
@@ -63,51 +63,411 @@
63 63
64 64
65IMPLEMENT_ASN1_TYPE(ASN1_INTEGER) 65IMPLEMENT_ASN1_TYPE(ASN1_INTEGER)
66IMPLEMENT_ASN1_FUNCTIONS(ASN1_INTEGER) 66
67ASN1_INTEGER *
68d2i_ASN1_INTEGER(ASN1_INTEGER **a, const unsigned char **in, long len)
69{
70 return (ASN1_INTEGER *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
71 &ASN1_INTEGER_it);
72}
73
74int
75i2d_ASN1_INTEGER(ASN1_INTEGER *a, unsigned char **out)
76{
77 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASN1_INTEGER_it);
78}
79
80ASN1_INTEGER *
81ASN1_INTEGER_new(void)
82{
83 return (ASN1_INTEGER *)ASN1_item_new(&ASN1_INTEGER_it);
84}
85
86void
87ASN1_INTEGER_free(ASN1_INTEGER *a)
88{
89 ASN1_item_free((ASN1_VALUE *)a, &ASN1_INTEGER_it);
90}
67 91
68IMPLEMENT_ASN1_TYPE(ASN1_ENUMERATED) 92IMPLEMENT_ASN1_TYPE(ASN1_ENUMERATED)
69IMPLEMENT_ASN1_FUNCTIONS(ASN1_ENUMERATED) 93
94ASN1_ENUMERATED *
95d2i_ASN1_ENUMERATED(ASN1_ENUMERATED **a, const unsigned char **in, long len)
96{
97 return (ASN1_ENUMERATED *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
98 &ASN1_ENUMERATED_it);
99}
100
101int
102i2d_ASN1_ENUMERATED(ASN1_ENUMERATED *a, unsigned char **out)
103{
104 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASN1_ENUMERATED_it);
105}
106
107ASN1_ENUMERATED *
108ASN1_ENUMERATED_new(void)
109{
110 return (ASN1_ENUMERATED *)ASN1_item_new(&ASN1_ENUMERATED_it);
111}
112
113void
114ASN1_ENUMERATED_free(ASN1_ENUMERATED *a)
115{
116 ASN1_item_free((ASN1_VALUE *)a, &ASN1_ENUMERATED_it);
117}
70 118
71IMPLEMENT_ASN1_TYPE(ASN1_BIT_STRING) 119IMPLEMENT_ASN1_TYPE(ASN1_BIT_STRING)
72IMPLEMENT_ASN1_FUNCTIONS(ASN1_BIT_STRING) 120
121ASN1_BIT_STRING *
122d2i_ASN1_BIT_STRING(ASN1_BIT_STRING **a, const unsigned char **in, long len)
123{
124 return (ASN1_BIT_STRING *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
125 &ASN1_BIT_STRING_it);
126}
127
128int
129i2d_ASN1_BIT_STRING(ASN1_BIT_STRING *a, unsigned char **out)
130{
131 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASN1_BIT_STRING_it);
132}
133
134ASN1_BIT_STRING *
135ASN1_BIT_STRING_new(void)
136{
137 return (ASN1_BIT_STRING *)ASN1_item_new(&ASN1_BIT_STRING_it);
138}
139
140void
141ASN1_BIT_STRING_free(ASN1_BIT_STRING *a)
142{
143 ASN1_item_free((ASN1_VALUE *)a, &ASN1_BIT_STRING_it);
144}
73 145
74IMPLEMENT_ASN1_TYPE(ASN1_OCTET_STRING) 146IMPLEMENT_ASN1_TYPE(ASN1_OCTET_STRING)
75IMPLEMENT_ASN1_FUNCTIONS(ASN1_OCTET_STRING) 147
148ASN1_OCTET_STRING *
149d2i_ASN1_OCTET_STRING(ASN1_OCTET_STRING **a, const unsigned char **in, long len)
150{
151 return (ASN1_OCTET_STRING *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
152 &ASN1_OCTET_STRING_it);
153}
154
155int
156i2d_ASN1_OCTET_STRING(ASN1_OCTET_STRING *a, unsigned char **out)
157{
158 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASN1_OCTET_STRING_it);
159}
160
161ASN1_OCTET_STRING *
162ASN1_OCTET_STRING_new(void)
163{
164 return (ASN1_OCTET_STRING *)ASN1_item_new(&ASN1_OCTET_STRING_it);
165}
166
167void
168ASN1_OCTET_STRING_free(ASN1_OCTET_STRING *a)
169{
170 ASN1_item_free((ASN1_VALUE *)a, &ASN1_OCTET_STRING_it);
171}
76 172
77IMPLEMENT_ASN1_TYPE(ASN1_NULL) 173IMPLEMENT_ASN1_TYPE(ASN1_NULL)
78IMPLEMENT_ASN1_FUNCTIONS(ASN1_NULL) 174
175ASN1_NULL *
176d2i_ASN1_NULL(ASN1_NULL **a, const unsigned char **in, long len)
177{
178 return (ASN1_NULL *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
179 &ASN1_NULL_it);
180}
181
182int
183i2d_ASN1_NULL(ASN1_NULL *a, unsigned char **out)
184{
185 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASN1_NULL_it);
186}
187
188ASN1_NULL *
189ASN1_NULL_new(void)
190{
191 return (ASN1_NULL *)ASN1_item_new(&ASN1_NULL_it);
192}
193
194void
195ASN1_NULL_free(ASN1_NULL *a)
196{
197 ASN1_item_free((ASN1_VALUE *)a, &ASN1_NULL_it);
198}
79 199
80IMPLEMENT_ASN1_TYPE(ASN1_OBJECT) 200IMPLEMENT_ASN1_TYPE(ASN1_OBJECT)
81 201
82IMPLEMENT_ASN1_TYPE(ASN1_UTF8STRING) 202IMPLEMENT_ASN1_TYPE(ASN1_UTF8STRING)
83IMPLEMENT_ASN1_FUNCTIONS(ASN1_UTF8STRING) 203
204ASN1_UTF8STRING *
205d2i_ASN1_UTF8STRING(ASN1_UTF8STRING **a, const unsigned char **in, long len)
206{
207 return (ASN1_UTF8STRING *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
208 &ASN1_UTF8STRING_it);
209}
210
211int
212i2d_ASN1_UTF8STRING(ASN1_UTF8STRING *a, unsigned char **out)
213{
214 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASN1_UTF8STRING_it);
215}
216
217ASN1_UTF8STRING *
218ASN1_UTF8STRING_new(void)
219{
220 return (ASN1_UTF8STRING *)ASN1_item_new(&ASN1_UTF8STRING_it);
221}
222
223void
224ASN1_UTF8STRING_free(ASN1_UTF8STRING *a)
225{
226 ASN1_item_free((ASN1_VALUE *)a, &ASN1_UTF8STRING_it);
227}
84 228
85IMPLEMENT_ASN1_TYPE(ASN1_PRINTABLESTRING) 229IMPLEMENT_ASN1_TYPE(ASN1_PRINTABLESTRING)
86IMPLEMENT_ASN1_FUNCTIONS(ASN1_PRINTABLESTRING) 230
231ASN1_PRINTABLESTRING *
232d2i_ASN1_PRINTABLESTRING(ASN1_PRINTABLESTRING **a, const unsigned char **in, long len)
233{
234 return (ASN1_PRINTABLESTRING *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
235 &ASN1_PRINTABLESTRING_it);
236}
237
238int
239i2d_ASN1_PRINTABLESTRING(ASN1_PRINTABLESTRING *a, unsigned char **out)
240{
241 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASN1_PRINTABLESTRING_it);
242}
243
244ASN1_PRINTABLESTRING *
245ASN1_PRINTABLESTRING_new(void)
246{
247 return (ASN1_PRINTABLESTRING *)ASN1_item_new(&ASN1_PRINTABLESTRING_it);
248}
249
250void
251ASN1_PRINTABLESTRING_free(ASN1_PRINTABLESTRING *a)
252{
253 ASN1_item_free((ASN1_VALUE *)a, &ASN1_PRINTABLESTRING_it);
254}
87 255
88IMPLEMENT_ASN1_TYPE(ASN1_T61STRING) 256IMPLEMENT_ASN1_TYPE(ASN1_T61STRING)
89IMPLEMENT_ASN1_FUNCTIONS(ASN1_T61STRING) 257
258ASN1_T61STRING *
259d2i_ASN1_T61STRING(ASN1_T61STRING **a, const unsigned char **in, long len)
260{
261 return (ASN1_T61STRING *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
262 &ASN1_T61STRING_it);
263}
264
265int
266i2d_ASN1_T61STRING(ASN1_T61STRING *a, unsigned char **out)
267{
268 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASN1_T61STRING_it);
269}
270
271ASN1_T61STRING *
272ASN1_T61STRING_new(void)
273{
274 return (ASN1_T61STRING *)ASN1_item_new(&ASN1_T61STRING_it);
275}
276
277void
278ASN1_T61STRING_free(ASN1_T61STRING *a)
279{
280 ASN1_item_free((ASN1_VALUE *)a, &ASN1_T61STRING_it);
281}
90 282
91IMPLEMENT_ASN1_TYPE(ASN1_IA5STRING) 283IMPLEMENT_ASN1_TYPE(ASN1_IA5STRING)
92IMPLEMENT_ASN1_FUNCTIONS(ASN1_IA5STRING) 284
285ASN1_IA5STRING *
286d2i_ASN1_IA5STRING(ASN1_IA5STRING **a, const unsigned char **in, long len)
287{
288 return (ASN1_IA5STRING *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
289 &ASN1_IA5STRING_it);
290}
291
292int
293i2d_ASN1_IA5STRING(ASN1_IA5STRING *a, unsigned char **out)
294{
295 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASN1_IA5STRING_it);
296}
297
298ASN1_IA5STRING *
299ASN1_IA5STRING_new(void)
300{
301 return (ASN1_IA5STRING *)ASN1_item_new(&ASN1_IA5STRING_it);
302}
303
304void
305ASN1_IA5STRING_free(ASN1_IA5STRING *a)
306{
307 ASN1_item_free((ASN1_VALUE *)a, &ASN1_IA5STRING_it);
308}
93 309
94IMPLEMENT_ASN1_TYPE(ASN1_GENERALSTRING) 310IMPLEMENT_ASN1_TYPE(ASN1_GENERALSTRING)
95IMPLEMENT_ASN1_FUNCTIONS(ASN1_GENERALSTRING) 311
312ASN1_GENERALSTRING *
313d2i_ASN1_GENERALSTRING(ASN1_GENERALSTRING **a, const unsigned char **in, long len)
314{
315 return (ASN1_GENERALSTRING *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
316 &ASN1_GENERALSTRING_it);
317}
318
319int
320i2d_ASN1_GENERALSTRING(ASN1_GENERALSTRING *a, unsigned char **out)
321{
322 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASN1_GENERALSTRING_it);
323}
324
325ASN1_GENERALSTRING *
326ASN1_GENERALSTRING_new(void)
327{
328 return (ASN1_GENERALSTRING *)ASN1_item_new(&ASN1_GENERALSTRING_it);
329}
330
331void
332ASN1_GENERALSTRING_free(ASN1_GENERALSTRING *a)
333{
334 ASN1_item_free((ASN1_VALUE *)a, &ASN1_GENERALSTRING_it);
335}
96 336
97IMPLEMENT_ASN1_TYPE(ASN1_UTCTIME) 337IMPLEMENT_ASN1_TYPE(ASN1_UTCTIME)
98IMPLEMENT_ASN1_FUNCTIONS(ASN1_UTCTIME) 338
339ASN1_UTCTIME *
340d2i_ASN1_UTCTIME(ASN1_UTCTIME **a, const unsigned char **in, long len)
341{
342 return (ASN1_UTCTIME *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
343 &ASN1_UTCTIME_it);
344}
345
346int
347i2d_ASN1_UTCTIME(ASN1_UTCTIME *a, unsigned char **out)
348{
349 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASN1_UTCTIME_it);
350}
351
352ASN1_UTCTIME *
353ASN1_UTCTIME_new(void)
354{
355 return (ASN1_UTCTIME *)ASN1_item_new(&ASN1_UTCTIME_it);
356}
357
358void
359ASN1_UTCTIME_free(ASN1_UTCTIME *a)
360{
361 ASN1_item_free((ASN1_VALUE *)a, &ASN1_UTCTIME_it);
362}
99 363
100IMPLEMENT_ASN1_TYPE(ASN1_GENERALIZEDTIME) 364IMPLEMENT_ASN1_TYPE(ASN1_GENERALIZEDTIME)
101IMPLEMENT_ASN1_FUNCTIONS(ASN1_GENERALIZEDTIME) 365
366ASN1_GENERALIZEDTIME *
367d2i_ASN1_GENERALIZEDTIME(ASN1_GENERALIZEDTIME **a, const unsigned char **in, long len)
368{
369 return (ASN1_GENERALIZEDTIME *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
370 &ASN1_GENERALIZEDTIME_it);
371}
372
373int
374i2d_ASN1_GENERALIZEDTIME(ASN1_GENERALIZEDTIME *a, unsigned char **out)
375{
376 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASN1_GENERALIZEDTIME_it);
377}
378
379ASN1_GENERALIZEDTIME *
380ASN1_GENERALIZEDTIME_new(void)
381{
382 return (ASN1_GENERALIZEDTIME *)ASN1_item_new(&ASN1_GENERALIZEDTIME_it);
383}
384
385void
386ASN1_GENERALIZEDTIME_free(ASN1_GENERALIZEDTIME *a)
387{
388 ASN1_item_free((ASN1_VALUE *)a, &ASN1_GENERALIZEDTIME_it);
389}
102 390
103IMPLEMENT_ASN1_TYPE(ASN1_VISIBLESTRING) 391IMPLEMENT_ASN1_TYPE(ASN1_VISIBLESTRING)
104IMPLEMENT_ASN1_FUNCTIONS(ASN1_VISIBLESTRING) 392
393ASN1_VISIBLESTRING *
394d2i_ASN1_VISIBLESTRING(ASN1_VISIBLESTRING **a, const unsigned char **in, long len)
395{
396 return (ASN1_VISIBLESTRING *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
397 &ASN1_VISIBLESTRING_it);
398}
399
400int
401i2d_ASN1_VISIBLESTRING(ASN1_VISIBLESTRING *a, unsigned char **out)
402{
403 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASN1_VISIBLESTRING_it);
404}
405
406ASN1_VISIBLESTRING *
407ASN1_VISIBLESTRING_new(void)
408{
409 return (ASN1_VISIBLESTRING *)ASN1_item_new(&ASN1_VISIBLESTRING_it);
410}
411
412void
413ASN1_VISIBLESTRING_free(ASN1_VISIBLESTRING *a)
414{
415 ASN1_item_free((ASN1_VALUE *)a, &ASN1_VISIBLESTRING_it);
416}
105 417
106IMPLEMENT_ASN1_TYPE(ASN1_UNIVERSALSTRING) 418IMPLEMENT_ASN1_TYPE(ASN1_UNIVERSALSTRING)
107IMPLEMENT_ASN1_FUNCTIONS(ASN1_UNIVERSALSTRING) 419
420ASN1_UNIVERSALSTRING *
421d2i_ASN1_UNIVERSALSTRING(ASN1_UNIVERSALSTRING **a, const unsigned char **in, long len)
422{
423 return (ASN1_UNIVERSALSTRING *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
424 &ASN1_UNIVERSALSTRING_it);
425}
426
427int
428i2d_ASN1_UNIVERSALSTRING(ASN1_UNIVERSALSTRING *a, unsigned char **out)
429{
430 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASN1_UNIVERSALSTRING_it);
431}
432
433ASN1_UNIVERSALSTRING *
434ASN1_UNIVERSALSTRING_new(void)
435{
436 return (ASN1_UNIVERSALSTRING *)ASN1_item_new(&ASN1_UNIVERSALSTRING_it);
437}
438
439void
440ASN1_UNIVERSALSTRING_free(ASN1_UNIVERSALSTRING *a)
441{
442 ASN1_item_free((ASN1_VALUE *)a, &ASN1_UNIVERSALSTRING_it);
443}
108 444
109IMPLEMENT_ASN1_TYPE(ASN1_BMPSTRING) 445IMPLEMENT_ASN1_TYPE(ASN1_BMPSTRING)
110IMPLEMENT_ASN1_FUNCTIONS(ASN1_BMPSTRING) 446
447ASN1_BMPSTRING *
448d2i_ASN1_BMPSTRING(ASN1_BMPSTRING **a, const unsigned char **in, long len)
449{
450 return (ASN1_BMPSTRING *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
451 &ASN1_BMPSTRING_it);
452}
453
454int
455i2d_ASN1_BMPSTRING(ASN1_BMPSTRING *a, unsigned char **out)
456{
457 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASN1_BMPSTRING_it);
458}
459
460ASN1_BMPSTRING *
461ASN1_BMPSTRING_new(void)
462{
463 return (ASN1_BMPSTRING *)ASN1_item_new(&ASN1_BMPSTRING_it);
464}
465
466void
467ASN1_BMPSTRING_free(ASN1_BMPSTRING *a)
468{
469 ASN1_item_free((ASN1_VALUE *)a, &ASN1_BMPSTRING_it);
470}
111 471
112IMPLEMENT_ASN1_TYPE(ASN1_ANY) 472IMPLEMENT_ASN1_TYPE(ASN1_ANY)
113 473
diff --git a/src/lib/libcrypto/asn1/x_algor.c b/src/lib/libcrypto/asn1/x_algor.c
index 71aeaaade0..7d264f9fd3 100644
--- a/src/lib/libcrypto/asn1/x_algor.c
+++ b/src/lib/libcrypto/asn1/x_algor.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: x_algor.c,v 1.13 2015/01/28 04:14:31 beck Exp $ */ 1/* $OpenBSD: x_algor.c,v 1.14 2015/02/09 15:05:59 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 2000. 3 * project 2000.
4 */ 4 */
@@ -70,7 +70,31 @@ ASN1_ITEM_TEMPLATE(X509_ALGORS) =
70 ASN1_EX_TEMPLATE_TYPE(ASN1_TFLG_SEQUENCE_OF, 0, algorithms, X509_ALGOR) 70 ASN1_EX_TEMPLATE_TYPE(ASN1_TFLG_SEQUENCE_OF, 0, algorithms, X509_ALGOR)
71ASN1_ITEM_TEMPLATE_END(X509_ALGORS) 71ASN1_ITEM_TEMPLATE_END(X509_ALGORS)
72 72
73IMPLEMENT_ASN1_FUNCTIONS(X509_ALGOR) 73
74X509_ALGOR *
75d2i_X509_ALGOR(X509_ALGOR **a, const unsigned char **in, long len)
76{
77 return (X509_ALGOR *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
78 &X509_ALGOR_it);
79}
80
81int
82i2d_X509_ALGOR(X509_ALGOR *a, unsigned char **out)
83{
84 return ASN1_item_i2d((ASN1_VALUE *)a, out, &X509_ALGOR_it);
85}
86
87X509_ALGOR *
88X509_ALGOR_new(void)
89{
90 return (X509_ALGOR *)ASN1_item_new(&X509_ALGOR_it);
91}
92
93void
94X509_ALGOR_free(X509_ALGOR *a)
95{
96 ASN1_item_free((ASN1_VALUE *)a, &X509_ALGOR_it);
97}
74IMPLEMENT_ASN1_ENCODE_FUNCTIONS_fname(X509_ALGORS, X509_ALGORS, X509_ALGORS) 98IMPLEMENT_ASN1_ENCODE_FUNCTIONS_fname(X509_ALGORS, X509_ALGORS, X509_ALGORS)
75IMPLEMENT_ASN1_DUP_FUNCTION(X509_ALGOR) 99IMPLEMENT_ASN1_DUP_FUNCTION(X509_ALGOR)
76 100
diff --git a/src/lib/libcrypto/asn1/x_attrib.c b/src/lib/libcrypto/asn1/x_attrib.c
index 1efbb98bbd..aafd5dd485 100644
--- a/src/lib/libcrypto/asn1/x_attrib.c
+++ b/src/lib/libcrypto/asn1/x_attrib.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: x_attrib.c,v 1.9 2014/07/11 08:44:47 jsing Exp $ */ 1/* $OpenBSD: x_attrib.c,v 1.10 2015/02/09 15:05:59 jsing Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -93,7 +93,31 @@ ASN1_SEQUENCE(X509_ATTRIBUTE) = {
93 ASN1_EX_COMBINE(0, 0, X509_ATTRIBUTE_SET) 93 ASN1_EX_COMBINE(0, 0, X509_ATTRIBUTE_SET)
94} ASN1_SEQUENCE_END(X509_ATTRIBUTE) 94} ASN1_SEQUENCE_END(X509_ATTRIBUTE)
95 95
96IMPLEMENT_ASN1_FUNCTIONS(X509_ATTRIBUTE) 96
97X509_ATTRIBUTE *
98d2i_X509_ATTRIBUTE(X509_ATTRIBUTE **a, const unsigned char **in, long len)
99{
100 return (X509_ATTRIBUTE *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
101 &X509_ATTRIBUTE_it);
102}
103
104int
105i2d_X509_ATTRIBUTE(X509_ATTRIBUTE *a, unsigned char **out)
106{
107 return ASN1_item_i2d((ASN1_VALUE *)a, out, &X509_ATTRIBUTE_it);
108}
109
110X509_ATTRIBUTE *
111X509_ATTRIBUTE_new(void)
112{
113 return (X509_ATTRIBUTE *)ASN1_item_new(&X509_ATTRIBUTE_it);
114}
115
116void
117X509_ATTRIBUTE_free(X509_ATTRIBUTE *a)
118{
119 ASN1_item_free((ASN1_VALUE *)a, &X509_ATTRIBUTE_it);
120}
97IMPLEMENT_ASN1_DUP_FUNCTION(X509_ATTRIBUTE) 121IMPLEMENT_ASN1_DUP_FUNCTION(X509_ATTRIBUTE)
98 122
99X509_ATTRIBUTE * 123X509_ATTRIBUTE *
diff --git a/src/lib/libcrypto/asn1/x_crl.c b/src/lib/libcrypto/asn1/x_crl.c
index bdec50dc80..2539fd92c4 100644
--- a/src/lib/libcrypto/asn1/x_crl.c
+++ b/src/lib/libcrypto/asn1/x_crl.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: x_crl.c,v 1.18 2014/07/11 13:54:41 miod Exp $ */ 1/* $OpenBSD: x_crl.c,v 1.19 2015/02/09 15:05:59 jsing Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -337,9 +337,81 @@ ASN1_SEQUENCE_ref(X509_CRL, crl_cb, CRYPTO_LOCK_X509_CRL) = {
337 ASN1_SIMPLE(X509_CRL, signature, ASN1_BIT_STRING) 337 ASN1_SIMPLE(X509_CRL, signature, ASN1_BIT_STRING)
338} ASN1_SEQUENCE_END_ref(X509_CRL, X509_CRL) 338} ASN1_SEQUENCE_END_ref(X509_CRL, X509_CRL)
339 339
340IMPLEMENT_ASN1_FUNCTIONS(X509_REVOKED) 340
341IMPLEMENT_ASN1_FUNCTIONS(X509_CRL_INFO) 341X509_REVOKED *
342IMPLEMENT_ASN1_FUNCTIONS(X509_CRL) 342d2i_X509_REVOKED(X509_REVOKED **a, const unsigned char **in, long len)
343{
344 return (X509_REVOKED *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
345 &X509_REVOKED_it);
346}
347
348int
349i2d_X509_REVOKED(X509_REVOKED *a, unsigned char **out)
350{
351 return ASN1_item_i2d((ASN1_VALUE *)a, out, &X509_REVOKED_it);
352}
353
354X509_REVOKED *
355X509_REVOKED_new(void)
356{
357 return (X509_REVOKED *)ASN1_item_new(&X509_REVOKED_it);
358}
359
360void
361X509_REVOKED_free(X509_REVOKED *a)
362{
363 ASN1_item_free((ASN1_VALUE *)a, &X509_REVOKED_it);
364}
365
366X509_CRL_INFO *
367d2i_X509_CRL_INFO(X509_CRL_INFO **a, const unsigned char **in, long len)
368{
369 return (X509_CRL_INFO *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
370 &X509_CRL_INFO_it);
371}
372
373int
374i2d_X509_CRL_INFO(X509_CRL_INFO *a, unsigned char **out)
375{
376 return ASN1_item_i2d((ASN1_VALUE *)a, out, &X509_CRL_INFO_it);
377}
378
379X509_CRL_INFO *
380X509_CRL_INFO_new(void)
381{
382 return (X509_CRL_INFO *)ASN1_item_new(&X509_CRL_INFO_it);
383}
384
385void
386X509_CRL_INFO_free(X509_CRL_INFO *a)
387{
388 ASN1_item_free((ASN1_VALUE *)a, &X509_CRL_INFO_it);
389}
390
391X509_CRL *
392d2i_X509_CRL(X509_CRL **a, const unsigned char **in, long len)
393{
394 return (X509_CRL *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
395 &X509_CRL_it);
396}
397
398int
399i2d_X509_CRL(X509_CRL *a, unsigned char **out)
400{
401 return ASN1_item_i2d((ASN1_VALUE *)a, out, &X509_CRL_it);
402}
403
404X509_CRL *
405X509_CRL_new(void)
406{
407 return (X509_CRL *)ASN1_item_new(&X509_CRL_it);
408}
409
410void
411X509_CRL_free(X509_CRL *a)
412{
413 ASN1_item_free((ASN1_VALUE *)a, &X509_CRL_it);
414}
343IMPLEMENT_ASN1_DUP_FUNCTION(X509_CRL) 415IMPLEMENT_ASN1_DUP_FUNCTION(X509_CRL)
344 416
345static int 417static int
diff --git a/src/lib/libcrypto/asn1/x_exten.c b/src/lib/libcrypto/asn1/x_exten.c
index a3fa88498b..40c521ec80 100644
--- a/src/lib/libcrypto/asn1/x_exten.c
+++ b/src/lib/libcrypto/asn1/x_exten.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: x_exten.c,v 1.9 2014/06/12 15:49:27 deraadt Exp $ */ 1/* $OpenBSD: x_exten.c,v 1.10 2015/02/09 15:05:59 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 2000. 3 * project 2000.
4 */ 4 */
@@ -71,6 +71,30 @@ ASN1_ITEM_TEMPLATE(X509_EXTENSIONS) =
71 ASN1_EX_TEMPLATE_TYPE(ASN1_TFLG_SEQUENCE_OF, 0, Extension, X509_EXTENSION) 71 ASN1_EX_TEMPLATE_TYPE(ASN1_TFLG_SEQUENCE_OF, 0, Extension, X509_EXTENSION)
72ASN1_ITEM_TEMPLATE_END(X509_EXTENSIONS) 72ASN1_ITEM_TEMPLATE_END(X509_EXTENSIONS)
73 73
74IMPLEMENT_ASN1_FUNCTIONS(X509_EXTENSION) 74
75X509_EXTENSION *
76d2i_X509_EXTENSION(X509_EXTENSION **a, const unsigned char **in, long len)
77{
78 return (X509_EXTENSION *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
79 &X509_EXTENSION_it);
80}
81
82int
83i2d_X509_EXTENSION(X509_EXTENSION *a, unsigned char **out)
84{
85 return ASN1_item_i2d((ASN1_VALUE *)a, out, &X509_EXTENSION_it);
86}
87
88X509_EXTENSION *
89X509_EXTENSION_new(void)
90{
91 return (X509_EXTENSION *)ASN1_item_new(&X509_EXTENSION_it);
92}
93
94void
95X509_EXTENSION_free(X509_EXTENSION *a)
96{
97 ASN1_item_free((ASN1_VALUE *)a, &X509_EXTENSION_it);
98}
75IMPLEMENT_ASN1_ENCODE_FUNCTIONS_fname(X509_EXTENSIONS, X509_EXTENSIONS, X509_EXTENSIONS) 99IMPLEMENT_ASN1_ENCODE_FUNCTIONS_fname(X509_EXTENSIONS, X509_EXTENSIONS, X509_EXTENSIONS)
76IMPLEMENT_ASN1_DUP_FUNCTION(X509_EXTENSION) 100IMPLEMENT_ASN1_DUP_FUNCTION(X509_EXTENSION)
diff --git a/src/lib/libcrypto/asn1/x_name.c b/src/lib/libcrypto/asn1/x_name.c
index 7c77ceea3b..a7f0e14d13 100644
--- a/src/lib/libcrypto/asn1/x_name.c
+++ b/src/lib/libcrypto/asn1/x_name.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: x_name.c,v 1.20 2014/07/12 11:25:25 miod Exp $ */ 1/* $OpenBSD: x_name.c,v 1.21 2015/02/09 15:05:59 jsing Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -92,7 +92,31 @@ ASN1_SEQUENCE(X509_NAME_ENTRY) = {
92 ASN1_SIMPLE(X509_NAME_ENTRY, value, ASN1_PRINTABLE) 92 ASN1_SIMPLE(X509_NAME_ENTRY, value, ASN1_PRINTABLE)
93} ASN1_SEQUENCE_END(X509_NAME_ENTRY) 93} ASN1_SEQUENCE_END(X509_NAME_ENTRY)
94 94
95IMPLEMENT_ASN1_FUNCTIONS(X509_NAME_ENTRY) 95
96X509_NAME_ENTRY *
97d2i_X509_NAME_ENTRY(X509_NAME_ENTRY **a, const unsigned char **in, long len)
98{
99 return (X509_NAME_ENTRY *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
100 &X509_NAME_ENTRY_it);
101}
102
103int
104i2d_X509_NAME_ENTRY(X509_NAME_ENTRY *a, unsigned char **out)
105{
106 return ASN1_item_i2d((ASN1_VALUE *)a, out, &X509_NAME_ENTRY_it);
107}
108
109X509_NAME_ENTRY *
110X509_NAME_ENTRY_new(void)
111{
112 return (X509_NAME_ENTRY *)ASN1_item_new(&X509_NAME_ENTRY_it);
113}
114
115void
116X509_NAME_ENTRY_free(X509_NAME_ENTRY *a)
117{
118 ASN1_item_free((ASN1_VALUE *)a, &X509_NAME_ENTRY_it);
119}
96IMPLEMENT_ASN1_DUP_FUNCTION(X509_NAME_ENTRY) 120IMPLEMENT_ASN1_DUP_FUNCTION(X509_NAME_ENTRY)
97 121
98/* For the "Name" type we need a SEQUENCE OF { SET OF X509_NAME_ENTRY } 122/* For the "Name" type we need a SEQUENCE OF { SET OF X509_NAME_ENTRY }
@@ -125,7 +149,31 @@ const ASN1_EXTERN_FUNCS x509_name_ff = {
125 149
126IMPLEMENT_EXTERN_ASN1(X509_NAME, V_ASN1_SEQUENCE, x509_name_ff) 150IMPLEMENT_EXTERN_ASN1(X509_NAME, V_ASN1_SEQUENCE, x509_name_ff)
127 151
128IMPLEMENT_ASN1_FUNCTIONS(X509_NAME) 152
153X509_NAME *
154d2i_X509_NAME(X509_NAME **a, const unsigned char **in, long len)
155{
156 return (X509_NAME *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
157 &X509_NAME_it);
158}
159
160int
161i2d_X509_NAME(X509_NAME *a, unsigned char **out)
162{
163 return ASN1_item_i2d((ASN1_VALUE *)a, out, &X509_NAME_it);
164}
165
166X509_NAME *
167X509_NAME_new(void)
168{
169 return (X509_NAME *)ASN1_item_new(&X509_NAME_it);
170}
171
172void
173X509_NAME_free(X509_NAME *a)
174{
175 ASN1_item_free((ASN1_VALUE *)a, &X509_NAME_it);
176}
129IMPLEMENT_ASN1_DUP_FUNCTION(X509_NAME) 177IMPLEMENT_ASN1_DUP_FUNCTION(X509_NAME)
130 178
131static int 179static int
diff --git a/src/lib/libcrypto/asn1/x_nx509.c b/src/lib/libcrypto/asn1/x_nx509.c
index eebeb9206f..9738560c19 100644
--- a/src/lib/libcrypto/asn1/x_nx509.c
+++ b/src/lib/libcrypto/asn1/x_nx509.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: x_nx509.c,v 1.3 2014/06/12 15:49:27 deraadt Exp $ */ 1/* $OpenBSD: x_nx509.c,v 1.4 2015/02/09 15:05:59 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 2005. 3 * project 2005.
4 */ 4 */
@@ -68,4 +68,28 @@ ASN1_SEQUENCE(NETSCAPE_X509) = {
68 ASN1_OPT(NETSCAPE_X509, cert, X509) 68 ASN1_OPT(NETSCAPE_X509, cert, X509)
69} ASN1_SEQUENCE_END(NETSCAPE_X509) 69} ASN1_SEQUENCE_END(NETSCAPE_X509)
70 70
71IMPLEMENT_ASN1_FUNCTIONS(NETSCAPE_X509) 71
72NETSCAPE_X509 *
73d2i_NETSCAPE_X509(NETSCAPE_X509 **a, const unsigned char **in, long len)
74{
75 return (NETSCAPE_X509 *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
76 &NETSCAPE_X509_it);
77}
78
79int
80i2d_NETSCAPE_X509(NETSCAPE_X509 *a, unsigned char **out)
81{
82 return ASN1_item_i2d((ASN1_VALUE *)a, out, &NETSCAPE_X509_it);
83}
84
85NETSCAPE_X509 *
86NETSCAPE_X509_new(void)
87{
88 return (NETSCAPE_X509 *)ASN1_item_new(&NETSCAPE_X509_it);
89}
90
91void
92NETSCAPE_X509_free(NETSCAPE_X509 *a)
93{
94 ASN1_item_free((ASN1_VALUE *)a, &NETSCAPE_X509_it);
95}
diff --git a/src/lib/libcrypto/asn1/x_pubkey.c b/src/lib/libcrypto/asn1/x_pubkey.c
index 56cc63059a..0c7d01e60d 100644
--- a/src/lib/libcrypto/asn1/x_pubkey.c
+++ b/src/lib/libcrypto/asn1/x_pubkey.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: x_pubkey.c,v 1.22 2014/07/12 16:03:36 miod Exp $ */ 1/* $OpenBSD: x_pubkey.c,v 1.23 2015/02/09 15:05:59 jsing Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -89,7 +89,31 @@ ASN1_SEQUENCE_cb(X509_PUBKEY, pubkey_cb) = {
89 ASN1_SIMPLE(X509_PUBKEY, public_key, ASN1_BIT_STRING) 89 ASN1_SIMPLE(X509_PUBKEY, public_key, ASN1_BIT_STRING)
90} ASN1_SEQUENCE_END_cb(X509_PUBKEY, X509_PUBKEY) 90} ASN1_SEQUENCE_END_cb(X509_PUBKEY, X509_PUBKEY)
91 91
92IMPLEMENT_ASN1_FUNCTIONS(X509_PUBKEY) 92
93X509_PUBKEY *
94d2i_X509_PUBKEY(X509_PUBKEY **a, const unsigned char **in, long len)
95{
96 return (X509_PUBKEY *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
97 &X509_PUBKEY_it);
98}
99
100int
101i2d_X509_PUBKEY(X509_PUBKEY *a, unsigned char **out)
102{
103 return ASN1_item_i2d((ASN1_VALUE *)a, out, &X509_PUBKEY_it);
104}
105
106X509_PUBKEY *
107X509_PUBKEY_new(void)
108{
109 return (X509_PUBKEY *)ASN1_item_new(&X509_PUBKEY_it);
110}
111
112void
113X509_PUBKEY_free(X509_PUBKEY *a)
114{
115 ASN1_item_free((ASN1_VALUE *)a, &X509_PUBKEY_it);
116}
93 117
94int 118int
95X509_PUBKEY_set(X509_PUBKEY **x, EVP_PKEY *pkey) 119X509_PUBKEY_set(X509_PUBKEY **x, EVP_PKEY *pkey)
diff --git a/src/lib/libcrypto/asn1/x_req.c b/src/lib/libcrypto/asn1/x_req.c
index c876edd7f0..89b2d88d15 100644
--- a/src/lib/libcrypto/asn1/x_req.c
+++ b/src/lib/libcrypto/asn1/x_req.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: x_req.c,v 1.10 2014/07/11 08:44:47 jsing Exp $ */ 1/* $OpenBSD: x_req.c,v 1.11 2015/02/09 15:05:59 jsing Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -102,7 +102,31 @@ ASN1_SEQUENCE_enc(X509_REQ_INFO, enc, rinf_cb) = {
102 ASN1_IMP_SET_OF_OPT(X509_REQ_INFO, attributes, X509_ATTRIBUTE, 0) 102 ASN1_IMP_SET_OF_OPT(X509_REQ_INFO, attributes, X509_ATTRIBUTE, 0)
103} ASN1_SEQUENCE_END_enc(X509_REQ_INFO, X509_REQ_INFO) 103} ASN1_SEQUENCE_END_enc(X509_REQ_INFO, X509_REQ_INFO)
104 104
105IMPLEMENT_ASN1_FUNCTIONS(X509_REQ_INFO) 105
106X509_REQ_INFO *
107d2i_X509_REQ_INFO(X509_REQ_INFO **a, const unsigned char **in, long len)
108{
109 return (X509_REQ_INFO *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
110 &X509_REQ_INFO_it);
111}
112
113int
114i2d_X509_REQ_INFO(X509_REQ_INFO *a, unsigned char **out)
115{
116 return ASN1_item_i2d((ASN1_VALUE *)a, out, &X509_REQ_INFO_it);
117}
118
119X509_REQ_INFO *
120X509_REQ_INFO_new(void)
121{
122 return (X509_REQ_INFO *)ASN1_item_new(&X509_REQ_INFO_it);
123}
124
125void
126X509_REQ_INFO_free(X509_REQ_INFO *a)
127{
128 ASN1_item_free((ASN1_VALUE *)a, &X509_REQ_INFO_it);
129}
106 130
107ASN1_SEQUENCE_ref(X509_REQ, 0, CRYPTO_LOCK_X509_REQ) = { 131ASN1_SEQUENCE_ref(X509_REQ, 0, CRYPTO_LOCK_X509_REQ) = {
108 ASN1_SIMPLE(X509_REQ, req_info, X509_REQ_INFO), 132 ASN1_SIMPLE(X509_REQ, req_info, X509_REQ_INFO),
@@ -110,5 +134,29 @@ ASN1_SEQUENCE_ref(X509_REQ, 0, CRYPTO_LOCK_X509_REQ) = {
110 ASN1_SIMPLE(X509_REQ, signature, ASN1_BIT_STRING) 134 ASN1_SIMPLE(X509_REQ, signature, ASN1_BIT_STRING)
111} ASN1_SEQUENCE_END_ref(X509_REQ, X509_REQ) 135} ASN1_SEQUENCE_END_ref(X509_REQ, X509_REQ)
112 136
113IMPLEMENT_ASN1_FUNCTIONS(X509_REQ) 137
138X509_REQ *
139d2i_X509_REQ(X509_REQ **a, const unsigned char **in, long len)
140{
141 return (X509_REQ *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
142 &X509_REQ_it);
143}
144
145int
146i2d_X509_REQ(X509_REQ *a, unsigned char **out)
147{
148 return ASN1_item_i2d((ASN1_VALUE *)a, out, &X509_REQ_it);
149}
150
151X509_REQ *
152X509_REQ_new(void)
153{
154 return (X509_REQ *)ASN1_item_new(&X509_REQ_it);
155}
156
157void
158X509_REQ_free(X509_REQ *a)
159{
160 ASN1_item_free((ASN1_VALUE *)a, &X509_REQ_it);
161}
114IMPLEMENT_ASN1_DUP_FUNCTION(X509_REQ) 162IMPLEMENT_ASN1_DUP_FUNCTION(X509_REQ)
diff --git a/src/lib/libcrypto/asn1/x_sig.c b/src/lib/libcrypto/asn1/x_sig.c
index ab4546e3ca..7c4c8c9c55 100644
--- a/src/lib/libcrypto/asn1/x_sig.c
+++ b/src/lib/libcrypto/asn1/x_sig.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: x_sig.c,v 1.8 2014/07/11 08:44:47 jsing Exp $ */ 1/* $OpenBSD: x_sig.c,v 1.9 2015/02/09 15:05:59 jsing Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -66,4 +66,28 @@ ASN1_SEQUENCE(X509_SIG) = {
66 ASN1_SIMPLE(X509_SIG, digest, ASN1_OCTET_STRING) 66 ASN1_SIMPLE(X509_SIG, digest, ASN1_OCTET_STRING)
67} ASN1_SEQUENCE_END(X509_SIG) 67} ASN1_SEQUENCE_END(X509_SIG)
68 68
69IMPLEMENT_ASN1_FUNCTIONS(X509_SIG) 69
70X509_SIG *
71d2i_X509_SIG(X509_SIG **a, const unsigned char **in, long len)
72{
73 return (X509_SIG *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
74 &X509_SIG_it);
75}
76
77int
78i2d_X509_SIG(X509_SIG *a, unsigned char **out)
79{
80 return ASN1_item_i2d((ASN1_VALUE *)a, out, &X509_SIG_it);
81}
82
83X509_SIG *
84X509_SIG_new(void)
85{
86 return (X509_SIG *)ASN1_item_new(&X509_SIG_it);
87}
88
89void
90X509_SIG_free(X509_SIG *a)
91{
92 ASN1_item_free((ASN1_VALUE *)a, &X509_SIG_it);
93}
diff --git a/src/lib/libcrypto/asn1/x_spki.c b/src/lib/libcrypto/asn1/x_spki.c
index 836abb13d8..fc056ff53b 100644
--- a/src/lib/libcrypto/asn1/x_spki.c
+++ b/src/lib/libcrypto/asn1/x_spki.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: x_spki.c,v 1.8 2014/07/11 08:44:47 jsing Exp $ */ 1/* $OpenBSD: x_spki.c,v 1.9 2015/02/09 15:05:59 jsing Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -70,7 +70,31 @@ ASN1_SEQUENCE(NETSCAPE_SPKAC) = {
70 ASN1_SIMPLE(NETSCAPE_SPKAC, challenge, ASN1_IA5STRING) 70 ASN1_SIMPLE(NETSCAPE_SPKAC, challenge, ASN1_IA5STRING)
71} ASN1_SEQUENCE_END(NETSCAPE_SPKAC) 71} ASN1_SEQUENCE_END(NETSCAPE_SPKAC)
72 72
73IMPLEMENT_ASN1_FUNCTIONS(NETSCAPE_SPKAC) 73
74NETSCAPE_SPKAC *
75d2i_NETSCAPE_SPKAC(NETSCAPE_SPKAC **a, const unsigned char **in, long len)
76{
77 return (NETSCAPE_SPKAC *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
78 &NETSCAPE_SPKAC_it);
79}
80
81int
82i2d_NETSCAPE_SPKAC(NETSCAPE_SPKAC *a, unsigned char **out)
83{
84 return ASN1_item_i2d((ASN1_VALUE *)a, out, &NETSCAPE_SPKAC_it);
85}
86
87NETSCAPE_SPKAC *
88NETSCAPE_SPKAC_new(void)
89{
90 return (NETSCAPE_SPKAC *)ASN1_item_new(&NETSCAPE_SPKAC_it);
91}
92
93void
94NETSCAPE_SPKAC_free(NETSCAPE_SPKAC *a)
95{
96 ASN1_item_free((ASN1_VALUE *)a, &NETSCAPE_SPKAC_it);
97}
74 98
75ASN1_SEQUENCE(NETSCAPE_SPKI) = { 99ASN1_SEQUENCE(NETSCAPE_SPKI) = {
76 ASN1_SIMPLE(NETSCAPE_SPKI, spkac, NETSCAPE_SPKAC), 100 ASN1_SIMPLE(NETSCAPE_SPKI, spkac, NETSCAPE_SPKAC),
@@ -78,4 +102,28 @@ ASN1_SEQUENCE(NETSCAPE_SPKI) = {
78 ASN1_SIMPLE(NETSCAPE_SPKI, signature, ASN1_BIT_STRING) 102 ASN1_SIMPLE(NETSCAPE_SPKI, signature, ASN1_BIT_STRING)
79} ASN1_SEQUENCE_END(NETSCAPE_SPKI) 103} ASN1_SEQUENCE_END(NETSCAPE_SPKI)
80 104
81IMPLEMENT_ASN1_FUNCTIONS(NETSCAPE_SPKI) 105
106NETSCAPE_SPKI *
107d2i_NETSCAPE_SPKI(NETSCAPE_SPKI **a, const unsigned char **in, long len)
108{
109 return (NETSCAPE_SPKI *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
110 &NETSCAPE_SPKI_it);
111}
112
113int
114i2d_NETSCAPE_SPKI(NETSCAPE_SPKI *a, unsigned char **out)
115{
116 return ASN1_item_i2d((ASN1_VALUE *)a, out, &NETSCAPE_SPKI_it);
117}
118
119NETSCAPE_SPKI *
120NETSCAPE_SPKI_new(void)
121{
122 return (NETSCAPE_SPKI *)ASN1_item_new(&NETSCAPE_SPKI_it);
123}
124
125void
126NETSCAPE_SPKI_free(NETSCAPE_SPKI *a)
127{
128 ASN1_item_free((ASN1_VALUE *)a, &NETSCAPE_SPKI_it);
129}
diff --git a/src/lib/libcrypto/asn1/x_val.c b/src/lib/libcrypto/asn1/x_val.c
index da9d16346b..27835e94da 100644
--- a/src/lib/libcrypto/asn1/x_val.c
+++ b/src/lib/libcrypto/asn1/x_val.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: x_val.c,v 1.8 2014/07/11 08:44:47 jsing Exp $ */ 1/* $OpenBSD: x_val.c,v 1.9 2015/02/09 15:05:59 jsing Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -66,4 +66,28 @@ ASN1_SEQUENCE(X509_VAL) = {
66 ASN1_SIMPLE(X509_VAL, notAfter, ASN1_TIME) 66 ASN1_SIMPLE(X509_VAL, notAfter, ASN1_TIME)
67} ASN1_SEQUENCE_END(X509_VAL) 67} ASN1_SEQUENCE_END(X509_VAL)
68 68
69IMPLEMENT_ASN1_FUNCTIONS(X509_VAL) 69
70X509_VAL *
71d2i_X509_VAL(X509_VAL **a, const unsigned char **in, long len)
72{
73 return (X509_VAL *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
74 &X509_VAL_it);
75}
76
77int
78i2d_X509_VAL(X509_VAL *a, unsigned char **out)
79{
80 return ASN1_item_i2d((ASN1_VALUE *)a, out, &X509_VAL_it);
81}
82
83X509_VAL *
84X509_VAL_new(void)
85{
86 return (X509_VAL *)ASN1_item_new(&X509_VAL_it);
87}
88
89void
90X509_VAL_free(X509_VAL *a)
91{
92 ASN1_item_free((ASN1_VALUE *)a, &X509_VAL_it);
93}
diff --git a/src/lib/libcrypto/asn1/x_x509.c b/src/lib/libcrypto/asn1/x_x509.c
index 0236a0faa2..8fd2d7684b 100644
--- a/src/lib/libcrypto/asn1/x_x509.c
+++ b/src/lib/libcrypto/asn1/x_x509.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: x_x509.c,v 1.17 2014/07/11 08:44:47 jsing Exp $ */ 1/* $OpenBSD: x_x509.c,v 1.18 2015/02/09 15:05:59 jsing Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -78,7 +78,31 @@ ASN1_SEQUENCE_enc(X509_CINF, enc, 0) = {
78 ASN1_EXP_SEQUENCE_OF_OPT(X509_CINF, extensions, X509_EXTENSION, 3) 78 ASN1_EXP_SEQUENCE_OF_OPT(X509_CINF, extensions, X509_EXTENSION, 3)
79} ASN1_SEQUENCE_END_enc(X509_CINF, X509_CINF) 79} ASN1_SEQUENCE_END_enc(X509_CINF, X509_CINF)
80 80
81IMPLEMENT_ASN1_FUNCTIONS(X509_CINF) 81
82X509_CINF *
83d2i_X509_CINF(X509_CINF **a, const unsigned char **in, long len)
84{
85 return (X509_CINF *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
86 &X509_CINF_it);
87}
88
89int
90i2d_X509_CINF(X509_CINF *a, unsigned char **out)
91{
92 return ASN1_item_i2d((ASN1_VALUE *)a, out, &X509_CINF_it);
93}
94
95X509_CINF *
96X509_CINF_new(void)
97{
98 return (X509_CINF *)ASN1_item_new(&X509_CINF_it);
99}
100
101void
102X509_CINF_free(X509_CINF *a)
103{
104 ASN1_item_free((ASN1_VALUE *)a, &X509_CINF_it);
105}
82/* X509 top level structure needs a bit of customisation */ 106/* X509 top level structure needs a bit of customisation */
83 107
84extern void policy_cache_free(X509_POLICY_CACHE *cache); 108extern void policy_cache_free(X509_POLICY_CACHE *cache);
@@ -138,7 +162,31 @@ ASN1_SEQUENCE_ref(X509, x509_cb, CRYPTO_LOCK_X509) = {
138 ASN1_SIMPLE(X509, signature, ASN1_BIT_STRING) 162 ASN1_SIMPLE(X509, signature, ASN1_BIT_STRING)
139} ASN1_SEQUENCE_END_ref(X509, X509) 163} ASN1_SEQUENCE_END_ref(X509, X509)
140 164
141IMPLEMENT_ASN1_FUNCTIONS(X509) 165
166X509 *
167d2i_X509(X509 **a, const unsigned char **in, long len)
168{
169 return (X509 *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
170 &X509_it);
171}
172
173int
174i2d_X509(X509 *a, unsigned char **out)
175{
176 return ASN1_item_i2d((ASN1_VALUE *)a, out, &X509_it);
177}
178
179X509 *
180X509_new(void)
181{
182 return (X509 *)ASN1_item_new(&X509_it);
183}
184
185void
186X509_free(X509 *a)
187{
188 ASN1_item_free((ASN1_VALUE *)a, &X509_it);
189}
142IMPLEMENT_ASN1_DUP_FUNCTION(X509) 190IMPLEMENT_ASN1_DUP_FUNCTION(X509)
143 191
144int 192int
diff --git a/src/lib/libcrypto/asn1/x_x509a.c b/src/lib/libcrypto/asn1/x_x509a.c
index c6837069d9..8a3561e882 100644
--- a/src/lib/libcrypto/asn1/x_x509a.c
+++ b/src/lib/libcrypto/asn1/x_x509a.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: x_x509a.c,v 1.10 2014/07/11 08:44:47 jsing Exp $ */ 1/* $OpenBSD: x_x509a.c,v 1.11 2015/02/09 15:05:59 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 */
@@ -79,7 +79,31 @@ ASN1_SEQUENCE(X509_CERT_AUX) = {
79 ASN1_IMP_SEQUENCE_OF_OPT(X509_CERT_AUX, other, X509_ALGOR, 1) 79 ASN1_IMP_SEQUENCE_OF_OPT(X509_CERT_AUX, other, X509_ALGOR, 1)
80} ASN1_SEQUENCE_END(X509_CERT_AUX) 80} ASN1_SEQUENCE_END(X509_CERT_AUX)
81 81
82IMPLEMENT_ASN1_FUNCTIONS(X509_CERT_AUX) 82
83X509_CERT_AUX *
84d2i_X509_CERT_AUX(X509_CERT_AUX **a, const unsigned char **in, long len)
85{
86 return (X509_CERT_AUX *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
87 &X509_CERT_AUX_it);
88}
89
90int
91i2d_X509_CERT_AUX(X509_CERT_AUX *a, unsigned char **out)
92{
93 return ASN1_item_i2d((ASN1_VALUE *)a, out, &X509_CERT_AUX_it);
94}
95
96X509_CERT_AUX *
97X509_CERT_AUX_new(void)
98{
99 return (X509_CERT_AUX *)ASN1_item_new(&X509_CERT_AUX_it);
100}
101
102void
103X509_CERT_AUX_free(X509_CERT_AUX *a)
104{
105 ASN1_item_free((ASN1_VALUE *)a, &X509_CERT_AUX_it);
106}
83 107
84static X509_CERT_AUX * 108static X509_CERT_AUX *
85aux_get(X509 *x) 109aux_get(X509 *x)
@@ -198,4 +222,28 @@ ASN1_SEQUENCE(X509_CERT_PAIR) = {
198 ASN1_EXP_OPT(X509_CERT_PAIR, reverse, X509, 1) 222 ASN1_EXP_OPT(X509_CERT_PAIR, reverse, X509, 1)
199} ASN1_SEQUENCE_END(X509_CERT_PAIR) 223} ASN1_SEQUENCE_END(X509_CERT_PAIR)
200 224
201IMPLEMENT_ASN1_FUNCTIONS(X509_CERT_PAIR) 225
226X509_CERT_PAIR *
227d2i_X509_CERT_PAIR(X509_CERT_PAIR **a, const unsigned char **in, long len)
228{
229 return (X509_CERT_PAIR *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
230 &X509_CERT_PAIR_it);
231}
232
233int
234i2d_X509_CERT_PAIR(X509_CERT_PAIR *a, unsigned char **out)
235{
236 return ASN1_item_i2d((ASN1_VALUE *)a, out, &X509_CERT_PAIR_it);
237}
238
239X509_CERT_PAIR *
240X509_CERT_PAIR_new(void)
241{
242 return (X509_CERT_PAIR *)ASN1_item_new(&X509_CERT_PAIR_it);
243}
244
245void
246X509_CERT_PAIR_free(X509_CERT_PAIR *a)
247{
248 ASN1_item_free((ASN1_VALUE *)a, &X509_CERT_PAIR_it);
249}
diff --git a/src/lib/libssl/src/crypto/asn1/a_time.c b/src/lib/libssl/src/crypto/asn1/a_time.c
index c5e882a4f6..95481fc4c6 100644
--- a/src/lib/libssl/src/crypto/asn1/a_time.c
+++ b/src/lib/libssl/src/crypto/asn1/a_time.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: a_time.c,v 1.22 2015/02/07 13:19:15 doug Exp $ */ 1/* $OpenBSD: a_time.c,v 1.23 2015/02/09 15:05:59 jsing Exp $ */
2/* ==================================================================== 2/* ====================================================================
3 * Copyright (c) 1999 The OpenSSL Project. All rights reserved. 3 * Copyright (c) 1999 The OpenSSL Project. All rights reserved.
4 * 4 *
@@ -71,7 +71,31 @@
71 71
72IMPLEMENT_ASN1_MSTRING(ASN1_TIME, B_ASN1_TIME) 72IMPLEMENT_ASN1_MSTRING(ASN1_TIME, B_ASN1_TIME)
73 73
74IMPLEMENT_ASN1_FUNCTIONS(ASN1_TIME) 74
75ASN1_TIME *
76d2i_ASN1_TIME(ASN1_TIME **a, const unsigned char **in, long len)
77{
78 return (ASN1_TIME *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
79 &ASN1_TIME_it);
80}
81
82int
83i2d_ASN1_TIME(ASN1_TIME *a, unsigned char **out)
84{
85 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASN1_TIME_it);
86}
87
88ASN1_TIME *
89ASN1_TIME_new(void)
90{
91 return (ASN1_TIME *)ASN1_item_new(&ASN1_TIME_it);
92}
93
94void
95ASN1_TIME_free(ASN1_TIME *a)
96{
97 ASN1_item_free((ASN1_VALUE *)a, &ASN1_TIME_it);
98}
75 99
76ASN1_TIME * 100ASN1_TIME *
77ASN1_TIME_set(ASN1_TIME *s, time_t t) 101ASN1_TIME_set(ASN1_TIME *s, time_t t)
diff --git a/src/lib/libssl/src/crypto/asn1/nsseq.c b/src/lib/libssl/src/crypto/asn1/nsseq.c
index 97af462dc0..ceab3992fd 100644
--- a/src/lib/libssl/src/crypto/asn1/nsseq.c
+++ b/src/lib/libssl/src/crypto/asn1/nsseq.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: nsseq.c,v 1.7 2014/06/12 15:49:27 deraadt Exp $ */ 1/* $OpenBSD: nsseq.c,v 1.8 2015/02/09 15:05:59 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 */
@@ -80,4 +80,28 @@ ASN1_SEQUENCE_cb(NETSCAPE_CERT_SEQUENCE, nsseq_cb) = {
80 ASN1_EXP_SEQUENCE_OF_OPT(NETSCAPE_CERT_SEQUENCE, certs, X509, 0) 80 ASN1_EXP_SEQUENCE_OF_OPT(NETSCAPE_CERT_SEQUENCE, certs, X509, 0)
81} ASN1_SEQUENCE_END_cb(NETSCAPE_CERT_SEQUENCE, NETSCAPE_CERT_SEQUENCE) 81} ASN1_SEQUENCE_END_cb(NETSCAPE_CERT_SEQUENCE, NETSCAPE_CERT_SEQUENCE)
82 82
83IMPLEMENT_ASN1_FUNCTIONS(NETSCAPE_CERT_SEQUENCE) 83
84NETSCAPE_CERT_SEQUENCE *
85d2i_NETSCAPE_CERT_SEQUENCE(NETSCAPE_CERT_SEQUENCE **a, const unsigned char **in, long len)
86{
87 return (NETSCAPE_CERT_SEQUENCE *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
88 &NETSCAPE_CERT_SEQUENCE_it);
89}
90
91int
92i2d_NETSCAPE_CERT_SEQUENCE(NETSCAPE_CERT_SEQUENCE *a, unsigned char **out)
93{
94 return ASN1_item_i2d((ASN1_VALUE *)a, out, &NETSCAPE_CERT_SEQUENCE_it);
95}
96
97NETSCAPE_CERT_SEQUENCE *
98NETSCAPE_CERT_SEQUENCE_new(void)
99{
100 return (NETSCAPE_CERT_SEQUENCE *)ASN1_item_new(&NETSCAPE_CERT_SEQUENCE_it);
101}
102
103void
104NETSCAPE_CERT_SEQUENCE_free(NETSCAPE_CERT_SEQUENCE *a)
105{
106 ASN1_item_free((ASN1_VALUE *)a, &NETSCAPE_CERT_SEQUENCE_it);
107}
diff --git a/src/lib/libssl/src/crypto/asn1/p5_pbe.c b/src/lib/libssl/src/crypto/asn1/p5_pbe.c
index 44fbb648be..7491a5bdc7 100644
--- a/src/lib/libssl/src/crypto/asn1/p5_pbe.c
+++ b/src/lib/libssl/src/crypto/asn1/p5_pbe.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: p5_pbe.c,v 1.17 2014/10/22 13:02:03 jsing Exp $ */ 1/* $OpenBSD: p5_pbe.c,v 1.18 2015/02/09 15:05:59 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 */
@@ -71,7 +71,31 @@ ASN1_SEQUENCE(PBEPARAM) = {
71 ASN1_SIMPLE(PBEPARAM, iter, ASN1_INTEGER) 71 ASN1_SIMPLE(PBEPARAM, iter, ASN1_INTEGER)
72} ASN1_SEQUENCE_END(PBEPARAM) 72} ASN1_SEQUENCE_END(PBEPARAM)
73 73
74IMPLEMENT_ASN1_FUNCTIONS(PBEPARAM) 74
75PBEPARAM *
76d2i_PBEPARAM(PBEPARAM **a, const unsigned char **in, long len)
77{
78 return (PBEPARAM *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
79 &PBEPARAM_it);
80}
81
82int
83i2d_PBEPARAM(PBEPARAM *a, unsigned char **out)
84{
85 return ASN1_item_i2d((ASN1_VALUE *)a, out, &PBEPARAM_it);
86}
87
88PBEPARAM *
89PBEPARAM_new(void)
90{
91 return (PBEPARAM *)ASN1_item_new(&PBEPARAM_it);
92}
93
94void
95PBEPARAM_free(PBEPARAM *a)
96{
97 ASN1_item_free((ASN1_VALUE *)a, &PBEPARAM_it);
98}
75 99
76 100
77/* Set an algorithm identifier for a PKCS#5 PBE algorithm */ 101/* Set an algorithm identifier for a PKCS#5 PBE algorithm */
diff --git a/src/lib/libssl/src/crypto/asn1/p5_pbev2.c b/src/lib/libssl/src/crypto/asn1/p5_pbev2.c
index 0947965219..1189e7e26b 100644
--- a/src/lib/libssl/src/crypto/asn1/p5_pbev2.c
+++ b/src/lib/libssl/src/crypto/asn1/p5_pbev2.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: p5_pbev2.c,v 1.18 2014/10/22 13:02:03 jsing Exp $ */ 1/* $OpenBSD: p5_pbev2.c,v 1.19 2015/02/09 15:05:59 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-2004. 3 * project 1999-2004.
4 */ 4 */
@@ -71,7 +71,31 @@ ASN1_SEQUENCE(PBE2PARAM) = {
71 ASN1_SIMPLE(PBE2PARAM, encryption, X509_ALGOR) 71 ASN1_SIMPLE(PBE2PARAM, encryption, X509_ALGOR)
72} ASN1_SEQUENCE_END(PBE2PARAM) 72} ASN1_SEQUENCE_END(PBE2PARAM)
73 73
74IMPLEMENT_ASN1_FUNCTIONS(PBE2PARAM) 74
75PBE2PARAM *
76d2i_PBE2PARAM(PBE2PARAM **a, const unsigned char **in, long len)
77{
78 return (PBE2PARAM *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
79 &PBE2PARAM_it);
80}
81
82int
83i2d_PBE2PARAM(PBE2PARAM *a, unsigned char **out)
84{
85 return ASN1_item_i2d((ASN1_VALUE *)a, out, &PBE2PARAM_it);
86}
87
88PBE2PARAM *
89PBE2PARAM_new(void)
90{
91 return (PBE2PARAM *)ASN1_item_new(&PBE2PARAM_it);
92}
93
94void
95PBE2PARAM_free(PBE2PARAM *a)
96{
97 ASN1_item_free((ASN1_VALUE *)a, &PBE2PARAM_it);
98}
75 99
76ASN1_SEQUENCE(PBKDF2PARAM) = { 100ASN1_SEQUENCE(PBKDF2PARAM) = {
77 ASN1_SIMPLE(PBKDF2PARAM, salt, ASN1_ANY), 101 ASN1_SIMPLE(PBKDF2PARAM, salt, ASN1_ANY),
@@ -80,7 +104,31 @@ ASN1_SEQUENCE(PBKDF2PARAM) = {
80 ASN1_OPT(PBKDF2PARAM, prf, X509_ALGOR) 104 ASN1_OPT(PBKDF2PARAM, prf, X509_ALGOR)
81} ASN1_SEQUENCE_END(PBKDF2PARAM) 105} ASN1_SEQUENCE_END(PBKDF2PARAM)
82 106
83IMPLEMENT_ASN1_FUNCTIONS(PBKDF2PARAM) 107
108PBKDF2PARAM *
109d2i_PBKDF2PARAM(PBKDF2PARAM **a, const unsigned char **in, long len)
110{
111 return (PBKDF2PARAM *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
112 &PBKDF2PARAM_it);
113}
114
115int
116i2d_PBKDF2PARAM(PBKDF2PARAM *a, unsigned char **out)
117{
118 return ASN1_item_i2d((ASN1_VALUE *)a, out, &PBKDF2PARAM_it);
119}
120
121PBKDF2PARAM *
122PBKDF2PARAM_new(void)
123{
124 return (PBKDF2PARAM *)ASN1_item_new(&PBKDF2PARAM_it);
125}
126
127void
128PBKDF2PARAM_free(PBKDF2PARAM *a)
129{
130 ASN1_item_free((ASN1_VALUE *)a, &PBKDF2PARAM_it);
131}
84 132
85/* Return an algorithm identifier for a PKCS#5 v2.0 PBE algorithm: 133/* Return an algorithm identifier for a PKCS#5 v2.0 PBE algorithm:
86 * yes I know this is horrible! 134 * yes I know this is horrible!
diff --git a/src/lib/libssl/src/crypto/asn1/p8_pkey.c b/src/lib/libssl/src/crypto/asn1/p8_pkey.c
index 3aacecb8fb..f8688ebc17 100644
--- a/src/lib/libssl/src/crypto/asn1/p8_pkey.c
+++ b/src/lib/libssl/src/crypto/asn1/p8_pkey.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: p8_pkey.c,v 1.12 2014/07/11 08:44:47 jsing Exp $ */ 1/* $OpenBSD: p8_pkey.c,v 1.13 2015/02/09 15:05:59 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 */
@@ -82,7 +82,31 @@ ASN1_SEQUENCE_cb(PKCS8_PRIV_KEY_INFO, pkey_cb) = {
82 ASN1_IMP_SET_OF_OPT(PKCS8_PRIV_KEY_INFO, attributes, X509_ATTRIBUTE, 0) 82 ASN1_IMP_SET_OF_OPT(PKCS8_PRIV_KEY_INFO, attributes, X509_ATTRIBUTE, 0)
83} ASN1_SEQUENCE_END_cb(PKCS8_PRIV_KEY_INFO, PKCS8_PRIV_KEY_INFO) 83} ASN1_SEQUENCE_END_cb(PKCS8_PRIV_KEY_INFO, PKCS8_PRIV_KEY_INFO)
84 84
85IMPLEMENT_ASN1_FUNCTIONS(PKCS8_PRIV_KEY_INFO) 85
86PKCS8_PRIV_KEY_INFO *
87d2i_PKCS8_PRIV_KEY_INFO(PKCS8_PRIV_KEY_INFO **a, const unsigned char **in, long len)
88{
89 return (PKCS8_PRIV_KEY_INFO *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
90 &PKCS8_PRIV_KEY_INFO_it);
91}
92
93int
94i2d_PKCS8_PRIV_KEY_INFO(PKCS8_PRIV_KEY_INFO *a, unsigned char **out)
95{
96 return ASN1_item_i2d((ASN1_VALUE *)a, out, &PKCS8_PRIV_KEY_INFO_it);
97}
98
99PKCS8_PRIV_KEY_INFO *
100PKCS8_PRIV_KEY_INFO_new(void)
101{
102 return (PKCS8_PRIV_KEY_INFO *)ASN1_item_new(&PKCS8_PRIV_KEY_INFO_it);
103}
104
105void
106PKCS8_PRIV_KEY_INFO_free(PKCS8_PRIV_KEY_INFO *a)
107{
108 ASN1_item_free((ASN1_VALUE *)a, &PKCS8_PRIV_KEY_INFO_it);
109}
86 110
87int 111int
88PKCS8_pkey_set0(PKCS8_PRIV_KEY_INFO *priv, ASN1_OBJECT *aobj, int version, 112PKCS8_pkey_set0(PKCS8_PRIV_KEY_INFO *priv, ASN1_OBJECT *aobj, int version,
diff --git a/src/lib/libssl/src/crypto/asn1/tasn_typ.c b/src/lib/libssl/src/crypto/asn1/tasn_typ.c
index 04d9c84180..2f44b4229b 100644
--- a/src/lib/libssl/src/crypto/asn1/tasn_typ.c
+++ b/src/lib/libssl/src/crypto/asn1/tasn_typ.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: tasn_typ.c,v 1.6 2014/06/12 15:49:27 deraadt Exp $ */ 1/* $OpenBSD: tasn_typ.c,v 1.7 2015/02/09 15:05:59 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 2000. 3 * project 2000.
4 */ 4 */
@@ -63,51 +63,411 @@
63 63
64 64
65IMPLEMENT_ASN1_TYPE(ASN1_INTEGER) 65IMPLEMENT_ASN1_TYPE(ASN1_INTEGER)
66IMPLEMENT_ASN1_FUNCTIONS(ASN1_INTEGER) 66
67ASN1_INTEGER *
68d2i_ASN1_INTEGER(ASN1_INTEGER **a, const unsigned char **in, long len)
69{
70 return (ASN1_INTEGER *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
71 &ASN1_INTEGER_it);
72}
73
74int
75i2d_ASN1_INTEGER(ASN1_INTEGER *a, unsigned char **out)
76{
77 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASN1_INTEGER_it);
78}
79
80ASN1_INTEGER *
81ASN1_INTEGER_new(void)
82{
83 return (ASN1_INTEGER *)ASN1_item_new(&ASN1_INTEGER_it);
84}
85
86void
87ASN1_INTEGER_free(ASN1_INTEGER *a)
88{
89 ASN1_item_free((ASN1_VALUE *)a, &ASN1_INTEGER_it);
90}
67 91
68IMPLEMENT_ASN1_TYPE(ASN1_ENUMERATED) 92IMPLEMENT_ASN1_TYPE(ASN1_ENUMERATED)
69IMPLEMENT_ASN1_FUNCTIONS(ASN1_ENUMERATED) 93
94ASN1_ENUMERATED *
95d2i_ASN1_ENUMERATED(ASN1_ENUMERATED **a, const unsigned char **in, long len)
96{
97 return (ASN1_ENUMERATED *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
98 &ASN1_ENUMERATED_it);
99}
100
101int
102i2d_ASN1_ENUMERATED(ASN1_ENUMERATED *a, unsigned char **out)
103{
104 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASN1_ENUMERATED_it);
105}
106
107ASN1_ENUMERATED *
108ASN1_ENUMERATED_new(void)
109{
110 return (ASN1_ENUMERATED *)ASN1_item_new(&ASN1_ENUMERATED_it);
111}
112
113void
114ASN1_ENUMERATED_free(ASN1_ENUMERATED *a)
115{
116 ASN1_item_free((ASN1_VALUE *)a, &ASN1_ENUMERATED_it);
117}
70 118
71IMPLEMENT_ASN1_TYPE(ASN1_BIT_STRING) 119IMPLEMENT_ASN1_TYPE(ASN1_BIT_STRING)
72IMPLEMENT_ASN1_FUNCTIONS(ASN1_BIT_STRING) 120
121ASN1_BIT_STRING *
122d2i_ASN1_BIT_STRING(ASN1_BIT_STRING **a, const unsigned char **in, long len)
123{
124 return (ASN1_BIT_STRING *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
125 &ASN1_BIT_STRING_it);
126}
127
128int
129i2d_ASN1_BIT_STRING(ASN1_BIT_STRING *a, unsigned char **out)
130{
131 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASN1_BIT_STRING_it);
132}
133
134ASN1_BIT_STRING *
135ASN1_BIT_STRING_new(void)
136{
137 return (ASN1_BIT_STRING *)ASN1_item_new(&ASN1_BIT_STRING_it);
138}
139
140void
141ASN1_BIT_STRING_free(ASN1_BIT_STRING *a)
142{
143 ASN1_item_free((ASN1_VALUE *)a, &ASN1_BIT_STRING_it);
144}
73 145
74IMPLEMENT_ASN1_TYPE(ASN1_OCTET_STRING) 146IMPLEMENT_ASN1_TYPE(ASN1_OCTET_STRING)
75IMPLEMENT_ASN1_FUNCTIONS(ASN1_OCTET_STRING) 147
148ASN1_OCTET_STRING *
149d2i_ASN1_OCTET_STRING(ASN1_OCTET_STRING **a, const unsigned char **in, long len)
150{
151 return (ASN1_OCTET_STRING *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
152 &ASN1_OCTET_STRING_it);
153}
154
155int
156i2d_ASN1_OCTET_STRING(ASN1_OCTET_STRING *a, unsigned char **out)
157{
158 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASN1_OCTET_STRING_it);
159}
160
161ASN1_OCTET_STRING *
162ASN1_OCTET_STRING_new(void)
163{
164 return (ASN1_OCTET_STRING *)ASN1_item_new(&ASN1_OCTET_STRING_it);
165}
166
167void
168ASN1_OCTET_STRING_free(ASN1_OCTET_STRING *a)
169{
170 ASN1_item_free((ASN1_VALUE *)a, &ASN1_OCTET_STRING_it);
171}
76 172
77IMPLEMENT_ASN1_TYPE(ASN1_NULL) 173IMPLEMENT_ASN1_TYPE(ASN1_NULL)
78IMPLEMENT_ASN1_FUNCTIONS(ASN1_NULL) 174
175ASN1_NULL *
176d2i_ASN1_NULL(ASN1_NULL **a, const unsigned char **in, long len)
177{
178 return (ASN1_NULL *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
179 &ASN1_NULL_it);
180}
181
182int
183i2d_ASN1_NULL(ASN1_NULL *a, unsigned char **out)
184{
185 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASN1_NULL_it);
186}
187
188ASN1_NULL *
189ASN1_NULL_new(void)
190{
191 return (ASN1_NULL *)ASN1_item_new(&ASN1_NULL_it);
192}
193
194void
195ASN1_NULL_free(ASN1_NULL *a)
196{
197 ASN1_item_free((ASN1_VALUE *)a, &ASN1_NULL_it);
198}
79 199
80IMPLEMENT_ASN1_TYPE(ASN1_OBJECT) 200IMPLEMENT_ASN1_TYPE(ASN1_OBJECT)
81 201
82IMPLEMENT_ASN1_TYPE(ASN1_UTF8STRING) 202IMPLEMENT_ASN1_TYPE(ASN1_UTF8STRING)
83IMPLEMENT_ASN1_FUNCTIONS(ASN1_UTF8STRING) 203
204ASN1_UTF8STRING *
205d2i_ASN1_UTF8STRING(ASN1_UTF8STRING **a, const unsigned char **in, long len)
206{
207 return (ASN1_UTF8STRING *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
208 &ASN1_UTF8STRING_it);
209}
210
211int
212i2d_ASN1_UTF8STRING(ASN1_UTF8STRING *a, unsigned char **out)
213{
214 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASN1_UTF8STRING_it);
215}
216
217ASN1_UTF8STRING *
218ASN1_UTF8STRING_new(void)
219{
220 return (ASN1_UTF8STRING *)ASN1_item_new(&ASN1_UTF8STRING_it);
221}
222
223void
224ASN1_UTF8STRING_free(ASN1_UTF8STRING *a)
225{
226 ASN1_item_free((ASN1_VALUE *)a, &ASN1_UTF8STRING_it);
227}
84 228
85IMPLEMENT_ASN1_TYPE(ASN1_PRINTABLESTRING) 229IMPLEMENT_ASN1_TYPE(ASN1_PRINTABLESTRING)
86IMPLEMENT_ASN1_FUNCTIONS(ASN1_PRINTABLESTRING) 230
231ASN1_PRINTABLESTRING *
232d2i_ASN1_PRINTABLESTRING(ASN1_PRINTABLESTRING **a, const unsigned char **in, long len)
233{
234 return (ASN1_PRINTABLESTRING *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
235 &ASN1_PRINTABLESTRING_it);
236}
237
238int
239i2d_ASN1_PRINTABLESTRING(ASN1_PRINTABLESTRING *a, unsigned char **out)
240{
241 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASN1_PRINTABLESTRING_it);
242}
243
244ASN1_PRINTABLESTRING *
245ASN1_PRINTABLESTRING_new(void)
246{
247 return (ASN1_PRINTABLESTRING *)ASN1_item_new(&ASN1_PRINTABLESTRING_it);
248}
249
250void
251ASN1_PRINTABLESTRING_free(ASN1_PRINTABLESTRING *a)
252{
253 ASN1_item_free((ASN1_VALUE *)a, &ASN1_PRINTABLESTRING_it);
254}
87 255
88IMPLEMENT_ASN1_TYPE(ASN1_T61STRING) 256IMPLEMENT_ASN1_TYPE(ASN1_T61STRING)
89IMPLEMENT_ASN1_FUNCTIONS(ASN1_T61STRING) 257
258ASN1_T61STRING *
259d2i_ASN1_T61STRING(ASN1_T61STRING **a, const unsigned char **in, long len)
260{
261 return (ASN1_T61STRING *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
262 &ASN1_T61STRING_it);
263}
264
265int
266i2d_ASN1_T61STRING(ASN1_T61STRING *a, unsigned char **out)
267{
268 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASN1_T61STRING_it);
269}
270
271ASN1_T61STRING *
272ASN1_T61STRING_new(void)
273{
274 return (ASN1_T61STRING *)ASN1_item_new(&ASN1_T61STRING_it);
275}
276
277void
278ASN1_T61STRING_free(ASN1_T61STRING *a)
279{
280 ASN1_item_free((ASN1_VALUE *)a, &ASN1_T61STRING_it);
281}
90 282
91IMPLEMENT_ASN1_TYPE(ASN1_IA5STRING) 283IMPLEMENT_ASN1_TYPE(ASN1_IA5STRING)
92IMPLEMENT_ASN1_FUNCTIONS(ASN1_IA5STRING) 284
285ASN1_IA5STRING *
286d2i_ASN1_IA5STRING(ASN1_IA5STRING **a, const unsigned char **in, long len)
287{
288 return (ASN1_IA5STRING *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
289 &ASN1_IA5STRING_it);
290}
291
292int
293i2d_ASN1_IA5STRING(ASN1_IA5STRING *a, unsigned char **out)
294{
295 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASN1_IA5STRING_it);
296}
297
298ASN1_IA5STRING *
299ASN1_IA5STRING_new(void)
300{
301 return (ASN1_IA5STRING *)ASN1_item_new(&ASN1_IA5STRING_it);
302}
303
304void
305ASN1_IA5STRING_free(ASN1_IA5STRING *a)
306{
307 ASN1_item_free((ASN1_VALUE *)a, &ASN1_IA5STRING_it);
308}
93 309
94IMPLEMENT_ASN1_TYPE(ASN1_GENERALSTRING) 310IMPLEMENT_ASN1_TYPE(ASN1_GENERALSTRING)
95IMPLEMENT_ASN1_FUNCTIONS(ASN1_GENERALSTRING) 311
312ASN1_GENERALSTRING *
313d2i_ASN1_GENERALSTRING(ASN1_GENERALSTRING **a, const unsigned char **in, long len)
314{
315 return (ASN1_GENERALSTRING *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
316 &ASN1_GENERALSTRING_it);
317}
318
319int
320i2d_ASN1_GENERALSTRING(ASN1_GENERALSTRING *a, unsigned char **out)
321{
322 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASN1_GENERALSTRING_it);
323}
324
325ASN1_GENERALSTRING *
326ASN1_GENERALSTRING_new(void)
327{
328 return (ASN1_GENERALSTRING *)ASN1_item_new(&ASN1_GENERALSTRING_it);
329}
330
331void
332ASN1_GENERALSTRING_free(ASN1_GENERALSTRING *a)
333{
334 ASN1_item_free((ASN1_VALUE *)a, &ASN1_GENERALSTRING_it);
335}
96 336
97IMPLEMENT_ASN1_TYPE(ASN1_UTCTIME) 337IMPLEMENT_ASN1_TYPE(ASN1_UTCTIME)
98IMPLEMENT_ASN1_FUNCTIONS(ASN1_UTCTIME) 338
339ASN1_UTCTIME *
340d2i_ASN1_UTCTIME(ASN1_UTCTIME **a, const unsigned char **in, long len)
341{
342 return (ASN1_UTCTIME *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
343 &ASN1_UTCTIME_it);
344}
345
346int
347i2d_ASN1_UTCTIME(ASN1_UTCTIME *a, unsigned char **out)
348{
349 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASN1_UTCTIME_it);
350}
351
352ASN1_UTCTIME *
353ASN1_UTCTIME_new(void)
354{
355 return (ASN1_UTCTIME *)ASN1_item_new(&ASN1_UTCTIME_it);
356}
357
358void
359ASN1_UTCTIME_free(ASN1_UTCTIME *a)
360{
361 ASN1_item_free((ASN1_VALUE *)a, &ASN1_UTCTIME_it);
362}
99 363
100IMPLEMENT_ASN1_TYPE(ASN1_GENERALIZEDTIME) 364IMPLEMENT_ASN1_TYPE(ASN1_GENERALIZEDTIME)
101IMPLEMENT_ASN1_FUNCTIONS(ASN1_GENERALIZEDTIME) 365
366ASN1_GENERALIZEDTIME *
367d2i_ASN1_GENERALIZEDTIME(ASN1_GENERALIZEDTIME **a, const unsigned char **in, long len)
368{
369 return (ASN1_GENERALIZEDTIME *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
370 &ASN1_GENERALIZEDTIME_it);
371}
372
373int
374i2d_ASN1_GENERALIZEDTIME(ASN1_GENERALIZEDTIME *a, unsigned char **out)
375{
376 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASN1_GENERALIZEDTIME_it);
377}
378
379ASN1_GENERALIZEDTIME *
380ASN1_GENERALIZEDTIME_new(void)
381{
382 return (ASN1_GENERALIZEDTIME *)ASN1_item_new(&ASN1_GENERALIZEDTIME_it);
383}
384
385void
386ASN1_GENERALIZEDTIME_free(ASN1_GENERALIZEDTIME *a)
387{
388 ASN1_item_free((ASN1_VALUE *)a, &ASN1_GENERALIZEDTIME_it);
389}
102 390
103IMPLEMENT_ASN1_TYPE(ASN1_VISIBLESTRING) 391IMPLEMENT_ASN1_TYPE(ASN1_VISIBLESTRING)
104IMPLEMENT_ASN1_FUNCTIONS(ASN1_VISIBLESTRING) 392
393ASN1_VISIBLESTRING *
394d2i_ASN1_VISIBLESTRING(ASN1_VISIBLESTRING **a, const unsigned char **in, long len)
395{
396 return (ASN1_VISIBLESTRING *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
397 &ASN1_VISIBLESTRING_it);
398}
399
400int
401i2d_ASN1_VISIBLESTRING(ASN1_VISIBLESTRING *a, unsigned char **out)
402{
403 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASN1_VISIBLESTRING_it);
404}
405
406ASN1_VISIBLESTRING *
407ASN1_VISIBLESTRING_new(void)
408{
409 return (ASN1_VISIBLESTRING *)ASN1_item_new(&ASN1_VISIBLESTRING_it);
410}
411
412void
413ASN1_VISIBLESTRING_free(ASN1_VISIBLESTRING *a)
414{
415 ASN1_item_free((ASN1_VALUE *)a, &ASN1_VISIBLESTRING_it);
416}
105 417
106IMPLEMENT_ASN1_TYPE(ASN1_UNIVERSALSTRING) 418IMPLEMENT_ASN1_TYPE(ASN1_UNIVERSALSTRING)
107IMPLEMENT_ASN1_FUNCTIONS(ASN1_UNIVERSALSTRING) 419
420ASN1_UNIVERSALSTRING *
421d2i_ASN1_UNIVERSALSTRING(ASN1_UNIVERSALSTRING **a, const unsigned char **in, long len)
422{
423 return (ASN1_UNIVERSALSTRING *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
424 &ASN1_UNIVERSALSTRING_it);
425}
426
427int
428i2d_ASN1_UNIVERSALSTRING(ASN1_UNIVERSALSTRING *a, unsigned char **out)
429{
430 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASN1_UNIVERSALSTRING_it);
431}
432
433ASN1_UNIVERSALSTRING *
434ASN1_UNIVERSALSTRING_new(void)
435{
436 return (ASN1_UNIVERSALSTRING *)ASN1_item_new(&ASN1_UNIVERSALSTRING_it);
437}
438
439void
440ASN1_UNIVERSALSTRING_free(ASN1_UNIVERSALSTRING *a)
441{
442 ASN1_item_free((ASN1_VALUE *)a, &ASN1_UNIVERSALSTRING_it);
443}
108 444
109IMPLEMENT_ASN1_TYPE(ASN1_BMPSTRING) 445IMPLEMENT_ASN1_TYPE(ASN1_BMPSTRING)
110IMPLEMENT_ASN1_FUNCTIONS(ASN1_BMPSTRING) 446
447ASN1_BMPSTRING *
448d2i_ASN1_BMPSTRING(ASN1_BMPSTRING **a, const unsigned char **in, long len)
449{
450 return (ASN1_BMPSTRING *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
451 &ASN1_BMPSTRING_it);
452}
453
454int
455i2d_ASN1_BMPSTRING(ASN1_BMPSTRING *a, unsigned char **out)
456{
457 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASN1_BMPSTRING_it);
458}
459
460ASN1_BMPSTRING *
461ASN1_BMPSTRING_new(void)
462{
463 return (ASN1_BMPSTRING *)ASN1_item_new(&ASN1_BMPSTRING_it);
464}
465
466void
467ASN1_BMPSTRING_free(ASN1_BMPSTRING *a)
468{
469 ASN1_item_free((ASN1_VALUE *)a, &ASN1_BMPSTRING_it);
470}
111 471
112IMPLEMENT_ASN1_TYPE(ASN1_ANY) 472IMPLEMENT_ASN1_TYPE(ASN1_ANY)
113 473
diff --git a/src/lib/libssl/src/crypto/asn1/x_algor.c b/src/lib/libssl/src/crypto/asn1/x_algor.c
index 71aeaaade0..7d264f9fd3 100644
--- a/src/lib/libssl/src/crypto/asn1/x_algor.c
+++ b/src/lib/libssl/src/crypto/asn1/x_algor.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: x_algor.c,v 1.13 2015/01/28 04:14:31 beck Exp $ */ 1/* $OpenBSD: x_algor.c,v 1.14 2015/02/09 15:05:59 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 2000. 3 * project 2000.
4 */ 4 */
@@ -70,7 +70,31 @@ ASN1_ITEM_TEMPLATE(X509_ALGORS) =
70 ASN1_EX_TEMPLATE_TYPE(ASN1_TFLG_SEQUENCE_OF, 0, algorithms, X509_ALGOR) 70 ASN1_EX_TEMPLATE_TYPE(ASN1_TFLG_SEQUENCE_OF, 0, algorithms, X509_ALGOR)
71ASN1_ITEM_TEMPLATE_END(X509_ALGORS) 71ASN1_ITEM_TEMPLATE_END(X509_ALGORS)
72 72
73IMPLEMENT_ASN1_FUNCTIONS(X509_ALGOR) 73
74X509_ALGOR *
75d2i_X509_ALGOR(X509_ALGOR **a, const unsigned char **in, long len)
76{
77 return (X509_ALGOR *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
78 &X509_ALGOR_it);
79}
80
81int
82i2d_X509_ALGOR(X509_ALGOR *a, unsigned char **out)
83{
84 return ASN1_item_i2d((ASN1_VALUE *)a, out, &X509_ALGOR_it);
85}
86
87X509_ALGOR *
88X509_ALGOR_new(void)
89{
90 return (X509_ALGOR *)ASN1_item_new(&X509_ALGOR_it);
91}
92
93void
94X509_ALGOR_free(X509_ALGOR *a)
95{
96 ASN1_item_free((ASN1_VALUE *)a, &X509_ALGOR_it);
97}
74IMPLEMENT_ASN1_ENCODE_FUNCTIONS_fname(X509_ALGORS, X509_ALGORS, X509_ALGORS) 98IMPLEMENT_ASN1_ENCODE_FUNCTIONS_fname(X509_ALGORS, X509_ALGORS, X509_ALGORS)
75IMPLEMENT_ASN1_DUP_FUNCTION(X509_ALGOR) 99IMPLEMENT_ASN1_DUP_FUNCTION(X509_ALGOR)
76 100
diff --git a/src/lib/libssl/src/crypto/asn1/x_attrib.c b/src/lib/libssl/src/crypto/asn1/x_attrib.c
index 1efbb98bbd..aafd5dd485 100644
--- a/src/lib/libssl/src/crypto/asn1/x_attrib.c
+++ b/src/lib/libssl/src/crypto/asn1/x_attrib.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: x_attrib.c,v 1.9 2014/07/11 08:44:47 jsing Exp $ */ 1/* $OpenBSD: x_attrib.c,v 1.10 2015/02/09 15:05:59 jsing Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -93,7 +93,31 @@ ASN1_SEQUENCE(X509_ATTRIBUTE) = {
93 ASN1_EX_COMBINE(0, 0, X509_ATTRIBUTE_SET) 93 ASN1_EX_COMBINE(0, 0, X509_ATTRIBUTE_SET)
94} ASN1_SEQUENCE_END(X509_ATTRIBUTE) 94} ASN1_SEQUENCE_END(X509_ATTRIBUTE)
95 95
96IMPLEMENT_ASN1_FUNCTIONS(X509_ATTRIBUTE) 96
97X509_ATTRIBUTE *
98d2i_X509_ATTRIBUTE(X509_ATTRIBUTE **a, const unsigned char **in, long len)
99{
100 return (X509_ATTRIBUTE *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
101 &X509_ATTRIBUTE_it);
102}
103
104int
105i2d_X509_ATTRIBUTE(X509_ATTRIBUTE *a, unsigned char **out)
106{
107 return ASN1_item_i2d((ASN1_VALUE *)a, out, &X509_ATTRIBUTE_it);
108}
109
110X509_ATTRIBUTE *
111X509_ATTRIBUTE_new(void)
112{
113 return (X509_ATTRIBUTE *)ASN1_item_new(&X509_ATTRIBUTE_it);
114}
115
116void
117X509_ATTRIBUTE_free(X509_ATTRIBUTE *a)
118{
119 ASN1_item_free((ASN1_VALUE *)a, &X509_ATTRIBUTE_it);
120}
97IMPLEMENT_ASN1_DUP_FUNCTION(X509_ATTRIBUTE) 121IMPLEMENT_ASN1_DUP_FUNCTION(X509_ATTRIBUTE)
98 122
99X509_ATTRIBUTE * 123X509_ATTRIBUTE *
diff --git a/src/lib/libssl/src/crypto/asn1/x_crl.c b/src/lib/libssl/src/crypto/asn1/x_crl.c
index bdec50dc80..2539fd92c4 100644
--- a/src/lib/libssl/src/crypto/asn1/x_crl.c
+++ b/src/lib/libssl/src/crypto/asn1/x_crl.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: x_crl.c,v 1.18 2014/07/11 13:54:41 miod Exp $ */ 1/* $OpenBSD: x_crl.c,v 1.19 2015/02/09 15:05:59 jsing Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -337,9 +337,81 @@ ASN1_SEQUENCE_ref(X509_CRL, crl_cb, CRYPTO_LOCK_X509_CRL) = {
337 ASN1_SIMPLE(X509_CRL, signature, ASN1_BIT_STRING) 337 ASN1_SIMPLE(X509_CRL, signature, ASN1_BIT_STRING)
338} ASN1_SEQUENCE_END_ref(X509_CRL, X509_CRL) 338} ASN1_SEQUENCE_END_ref(X509_CRL, X509_CRL)
339 339
340IMPLEMENT_ASN1_FUNCTIONS(X509_REVOKED) 340
341IMPLEMENT_ASN1_FUNCTIONS(X509_CRL_INFO) 341X509_REVOKED *
342IMPLEMENT_ASN1_FUNCTIONS(X509_CRL) 342d2i_X509_REVOKED(X509_REVOKED **a, const unsigned char **in, long len)
343{
344 return (X509_REVOKED *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
345 &X509_REVOKED_it);
346}
347
348int
349i2d_X509_REVOKED(X509_REVOKED *a, unsigned char **out)
350{
351 return ASN1_item_i2d((ASN1_VALUE *)a, out, &X509_REVOKED_it);
352}
353
354X509_REVOKED *
355X509_REVOKED_new(void)
356{
357 return (X509_REVOKED *)ASN1_item_new(&X509_REVOKED_it);
358}
359
360void
361X509_REVOKED_free(X509_REVOKED *a)
362{
363 ASN1_item_free((ASN1_VALUE *)a, &X509_REVOKED_it);
364}
365
366X509_CRL_INFO *
367d2i_X509_CRL_INFO(X509_CRL_INFO **a, const unsigned char **in, long len)
368{
369 return (X509_CRL_INFO *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
370 &X509_CRL_INFO_it);
371}
372
373int
374i2d_X509_CRL_INFO(X509_CRL_INFO *a, unsigned char **out)
375{
376 return ASN1_item_i2d((ASN1_VALUE *)a, out, &X509_CRL_INFO_it);
377}
378
379X509_CRL_INFO *
380X509_CRL_INFO_new(void)
381{
382 return (X509_CRL_INFO *)ASN1_item_new(&X509_CRL_INFO_it);
383}
384
385void
386X509_CRL_INFO_free(X509_CRL_INFO *a)
387{
388 ASN1_item_free((ASN1_VALUE *)a, &X509_CRL_INFO_it);
389}
390
391X509_CRL *
392d2i_X509_CRL(X509_CRL **a, const unsigned char **in, long len)
393{
394 return (X509_CRL *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
395 &X509_CRL_it);
396}
397
398int
399i2d_X509_CRL(X509_CRL *a, unsigned char **out)
400{
401 return ASN1_item_i2d((ASN1_VALUE *)a, out, &X509_CRL_it);
402}
403
404X509_CRL *
405X509_CRL_new(void)
406{
407 return (X509_CRL *)ASN1_item_new(&X509_CRL_it);
408}
409
410void
411X509_CRL_free(X509_CRL *a)
412{
413 ASN1_item_free((ASN1_VALUE *)a, &X509_CRL_it);
414}
343IMPLEMENT_ASN1_DUP_FUNCTION(X509_CRL) 415IMPLEMENT_ASN1_DUP_FUNCTION(X509_CRL)
344 416
345static int 417static int
diff --git a/src/lib/libssl/src/crypto/asn1/x_exten.c b/src/lib/libssl/src/crypto/asn1/x_exten.c
index a3fa88498b..40c521ec80 100644
--- a/src/lib/libssl/src/crypto/asn1/x_exten.c
+++ b/src/lib/libssl/src/crypto/asn1/x_exten.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: x_exten.c,v 1.9 2014/06/12 15:49:27 deraadt Exp $ */ 1/* $OpenBSD: x_exten.c,v 1.10 2015/02/09 15:05:59 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 2000. 3 * project 2000.
4 */ 4 */
@@ -71,6 +71,30 @@ ASN1_ITEM_TEMPLATE(X509_EXTENSIONS) =
71 ASN1_EX_TEMPLATE_TYPE(ASN1_TFLG_SEQUENCE_OF, 0, Extension, X509_EXTENSION) 71 ASN1_EX_TEMPLATE_TYPE(ASN1_TFLG_SEQUENCE_OF, 0, Extension, X509_EXTENSION)
72ASN1_ITEM_TEMPLATE_END(X509_EXTENSIONS) 72ASN1_ITEM_TEMPLATE_END(X509_EXTENSIONS)
73 73
74IMPLEMENT_ASN1_FUNCTIONS(X509_EXTENSION) 74
75X509_EXTENSION *
76d2i_X509_EXTENSION(X509_EXTENSION **a, const unsigned char **in, long len)
77{
78 return (X509_EXTENSION *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
79 &X509_EXTENSION_it);
80}
81
82int
83i2d_X509_EXTENSION(X509_EXTENSION *a, unsigned char **out)
84{
85 return ASN1_item_i2d((ASN1_VALUE *)a, out, &X509_EXTENSION_it);
86}
87
88X509_EXTENSION *
89X509_EXTENSION_new(void)
90{
91 return (X509_EXTENSION *)ASN1_item_new(&X509_EXTENSION_it);
92}
93
94void
95X509_EXTENSION_free(X509_EXTENSION *a)
96{
97 ASN1_item_free((ASN1_VALUE *)a, &X509_EXTENSION_it);
98}
75IMPLEMENT_ASN1_ENCODE_FUNCTIONS_fname(X509_EXTENSIONS, X509_EXTENSIONS, X509_EXTENSIONS) 99IMPLEMENT_ASN1_ENCODE_FUNCTIONS_fname(X509_EXTENSIONS, X509_EXTENSIONS, X509_EXTENSIONS)
76IMPLEMENT_ASN1_DUP_FUNCTION(X509_EXTENSION) 100IMPLEMENT_ASN1_DUP_FUNCTION(X509_EXTENSION)
diff --git a/src/lib/libssl/src/crypto/asn1/x_name.c b/src/lib/libssl/src/crypto/asn1/x_name.c
index 7c77ceea3b..a7f0e14d13 100644
--- a/src/lib/libssl/src/crypto/asn1/x_name.c
+++ b/src/lib/libssl/src/crypto/asn1/x_name.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: x_name.c,v 1.20 2014/07/12 11:25:25 miod Exp $ */ 1/* $OpenBSD: x_name.c,v 1.21 2015/02/09 15:05:59 jsing Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -92,7 +92,31 @@ ASN1_SEQUENCE(X509_NAME_ENTRY) = {
92 ASN1_SIMPLE(X509_NAME_ENTRY, value, ASN1_PRINTABLE) 92 ASN1_SIMPLE(X509_NAME_ENTRY, value, ASN1_PRINTABLE)
93} ASN1_SEQUENCE_END(X509_NAME_ENTRY) 93} ASN1_SEQUENCE_END(X509_NAME_ENTRY)
94 94
95IMPLEMENT_ASN1_FUNCTIONS(X509_NAME_ENTRY) 95
96X509_NAME_ENTRY *
97d2i_X509_NAME_ENTRY(X509_NAME_ENTRY **a, const unsigned char **in, long len)
98{
99 return (X509_NAME_ENTRY *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
100 &X509_NAME_ENTRY_it);
101}
102
103int
104i2d_X509_NAME_ENTRY(X509_NAME_ENTRY *a, unsigned char **out)
105{
106 return ASN1_item_i2d((ASN1_VALUE *)a, out, &X509_NAME_ENTRY_it);
107}
108
109X509_NAME_ENTRY *
110X509_NAME_ENTRY_new(void)
111{
112 return (X509_NAME_ENTRY *)ASN1_item_new(&X509_NAME_ENTRY_it);
113}
114
115void
116X509_NAME_ENTRY_free(X509_NAME_ENTRY *a)
117{
118 ASN1_item_free((ASN1_VALUE *)a, &X509_NAME_ENTRY_it);
119}
96IMPLEMENT_ASN1_DUP_FUNCTION(X509_NAME_ENTRY) 120IMPLEMENT_ASN1_DUP_FUNCTION(X509_NAME_ENTRY)
97 121
98/* For the "Name" type we need a SEQUENCE OF { SET OF X509_NAME_ENTRY } 122/* For the "Name" type we need a SEQUENCE OF { SET OF X509_NAME_ENTRY }
@@ -125,7 +149,31 @@ const ASN1_EXTERN_FUNCS x509_name_ff = {
125 149
126IMPLEMENT_EXTERN_ASN1(X509_NAME, V_ASN1_SEQUENCE, x509_name_ff) 150IMPLEMENT_EXTERN_ASN1(X509_NAME, V_ASN1_SEQUENCE, x509_name_ff)
127 151
128IMPLEMENT_ASN1_FUNCTIONS(X509_NAME) 152
153X509_NAME *
154d2i_X509_NAME(X509_NAME **a, const unsigned char **in, long len)
155{
156 return (X509_NAME *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
157 &X509_NAME_it);
158}
159
160int
161i2d_X509_NAME(X509_NAME *a, unsigned char **out)
162{
163 return ASN1_item_i2d((ASN1_VALUE *)a, out, &X509_NAME_it);
164}
165
166X509_NAME *
167X509_NAME_new(void)
168{
169 return (X509_NAME *)ASN1_item_new(&X509_NAME_it);
170}
171
172void
173X509_NAME_free(X509_NAME *a)
174{
175 ASN1_item_free((ASN1_VALUE *)a, &X509_NAME_it);
176}
129IMPLEMENT_ASN1_DUP_FUNCTION(X509_NAME) 177IMPLEMENT_ASN1_DUP_FUNCTION(X509_NAME)
130 178
131static int 179static int
diff --git a/src/lib/libssl/src/crypto/asn1/x_nx509.c b/src/lib/libssl/src/crypto/asn1/x_nx509.c
index eebeb9206f..9738560c19 100644
--- a/src/lib/libssl/src/crypto/asn1/x_nx509.c
+++ b/src/lib/libssl/src/crypto/asn1/x_nx509.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: x_nx509.c,v 1.3 2014/06/12 15:49:27 deraadt Exp $ */ 1/* $OpenBSD: x_nx509.c,v 1.4 2015/02/09 15:05:59 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 2005. 3 * project 2005.
4 */ 4 */
@@ -68,4 +68,28 @@ ASN1_SEQUENCE(NETSCAPE_X509) = {
68 ASN1_OPT(NETSCAPE_X509, cert, X509) 68 ASN1_OPT(NETSCAPE_X509, cert, X509)
69} ASN1_SEQUENCE_END(NETSCAPE_X509) 69} ASN1_SEQUENCE_END(NETSCAPE_X509)
70 70
71IMPLEMENT_ASN1_FUNCTIONS(NETSCAPE_X509) 71
72NETSCAPE_X509 *
73d2i_NETSCAPE_X509(NETSCAPE_X509 **a, const unsigned char **in, long len)
74{
75 return (NETSCAPE_X509 *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
76 &NETSCAPE_X509_it);
77}
78
79int
80i2d_NETSCAPE_X509(NETSCAPE_X509 *a, unsigned char **out)
81{
82 return ASN1_item_i2d((ASN1_VALUE *)a, out, &NETSCAPE_X509_it);
83}
84
85NETSCAPE_X509 *
86NETSCAPE_X509_new(void)
87{
88 return (NETSCAPE_X509 *)ASN1_item_new(&NETSCAPE_X509_it);
89}
90
91void
92NETSCAPE_X509_free(NETSCAPE_X509 *a)
93{
94 ASN1_item_free((ASN1_VALUE *)a, &NETSCAPE_X509_it);
95}
diff --git a/src/lib/libssl/src/crypto/asn1/x_pubkey.c b/src/lib/libssl/src/crypto/asn1/x_pubkey.c
index 56cc63059a..0c7d01e60d 100644
--- a/src/lib/libssl/src/crypto/asn1/x_pubkey.c
+++ b/src/lib/libssl/src/crypto/asn1/x_pubkey.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: x_pubkey.c,v 1.22 2014/07/12 16:03:36 miod Exp $ */ 1/* $OpenBSD: x_pubkey.c,v 1.23 2015/02/09 15:05:59 jsing Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -89,7 +89,31 @@ ASN1_SEQUENCE_cb(X509_PUBKEY, pubkey_cb) = {
89 ASN1_SIMPLE(X509_PUBKEY, public_key, ASN1_BIT_STRING) 89 ASN1_SIMPLE(X509_PUBKEY, public_key, ASN1_BIT_STRING)
90} ASN1_SEQUENCE_END_cb(X509_PUBKEY, X509_PUBKEY) 90} ASN1_SEQUENCE_END_cb(X509_PUBKEY, X509_PUBKEY)
91 91
92IMPLEMENT_ASN1_FUNCTIONS(X509_PUBKEY) 92
93X509_PUBKEY *
94d2i_X509_PUBKEY(X509_PUBKEY **a, const unsigned char **in, long len)
95{
96 return (X509_PUBKEY *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
97 &X509_PUBKEY_it);
98}
99
100int
101i2d_X509_PUBKEY(X509_PUBKEY *a, unsigned char **out)
102{
103 return ASN1_item_i2d((ASN1_VALUE *)a, out, &X509_PUBKEY_it);
104}
105
106X509_PUBKEY *
107X509_PUBKEY_new(void)
108{
109 return (X509_PUBKEY *)ASN1_item_new(&X509_PUBKEY_it);
110}
111
112void
113X509_PUBKEY_free(X509_PUBKEY *a)
114{
115 ASN1_item_free((ASN1_VALUE *)a, &X509_PUBKEY_it);
116}
93 117
94int 118int
95X509_PUBKEY_set(X509_PUBKEY **x, EVP_PKEY *pkey) 119X509_PUBKEY_set(X509_PUBKEY **x, EVP_PKEY *pkey)
diff --git a/src/lib/libssl/src/crypto/asn1/x_req.c b/src/lib/libssl/src/crypto/asn1/x_req.c
index c876edd7f0..89b2d88d15 100644
--- a/src/lib/libssl/src/crypto/asn1/x_req.c
+++ b/src/lib/libssl/src/crypto/asn1/x_req.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: x_req.c,v 1.10 2014/07/11 08:44:47 jsing Exp $ */ 1/* $OpenBSD: x_req.c,v 1.11 2015/02/09 15:05:59 jsing Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -102,7 +102,31 @@ ASN1_SEQUENCE_enc(X509_REQ_INFO, enc, rinf_cb) = {
102 ASN1_IMP_SET_OF_OPT(X509_REQ_INFO, attributes, X509_ATTRIBUTE, 0) 102 ASN1_IMP_SET_OF_OPT(X509_REQ_INFO, attributes, X509_ATTRIBUTE, 0)
103} ASN1_SEQUENCE_END_enc(X509_REQ_INFO, X509_REQ_INFO) 103} ASN1_SEQUENCE_END_enc(X509_REQ_INFO, X509_REQ_INFO)
104 104
105IMPLEMENT_ASN1_FUNCTIONS(X509_REQ_INFO) 105
106X509_REQ_INFO *
107d2i_X509_REQ_INFO(X509_REQ_INFO **a, const unsigned char **in, long len)
108{
109 return (X509_REQ_INFO *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
110 &X509_REQ_INFO_it);
111}
112
113int
114i2d_X509_REQ_INFO(X509_REQ_INFO *a, unsigned char **out)
115{
116 return ASN1_item_i2d((ASN1_VALUE *)a, out, &X509_REQ_INFO_it);
117}
118
119X509_REQ_INFO *
120X509_REQ_INFO_new(void)
121{
122 return (X509_REQ_INFO *)ASN1_item_new(&X509_REQ_INFO_it);
123}
124
125void
126X509_REQ_INFO_free(X509_REQ_INFO *a)
127{
128 ASN1_item_free((ASN1_VALUE *)a, &X509_REQ_INFO_it);
129}
106 130
107ASN1_SEQUENCE_ref(X509_REQ, 0, CRYPTO_LOCK_X509_REQ) = { 131ASN1_SEQUENCE_ref(X509_REQ, 0, CRYPTO_LOCK_X509_REQ) = {
108 ASN1_SIMPLE(X509_REQ, req_info, X509_REQ_INFO), 132 ASN1_SIMPLE(X509_REQ, req_info, X509_REQ_INFO),
@@ -110,5 +134,29 @@ ASN1_SEQUENCE_ref(X509_REQ, 0, CRYPTO_LOCK_X509_REQ) = {
110 ASN1_SIMPLE(X509_REQ, signature, ASN1_BIT_STRING) 134 ASN1_SIMPLE(X509_REQ, signature, ASN1_BIT_STRING)
111} ASN1_SEQUENCE_END_ref(X509_REQ, X509_REQ) 135} ASN1_SEQUENCE_END_ref(X509_REQ, X509_REQ)
112 136
113IMPLEMENT_ASN1_FUNCTIONS(X509_REQ) 137
138X509_REQ *
139d2i_X509_REQ(X509_REQ **a, const unsigned char **in, long len)
140{
141 return (X509_REQ *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
142 &X509_REQ_it);
143}
144
145int
146i2d_X509_REQ(X509_REQ *a, unsigned char **out)
147{
148 return ASN1_item_i2d((ASN1_VALUE *)a, out, &X509_REQ_it);
149}
150
151X509_REQ *
152X509_REQ_new(void)
153{
154 return (X509_REQ *)ASN1_item_new(&X509_REQ_it);
155}
156
157void
158X509_REQ_free(X509_REQ *a)
159{
160 ASN1_item_free((ASN1_VALUE *)a, &X509_REQ_it);
161}
114IMPLEMENT_ASN1_DUP_FUNCTION(X509_REQ) 162IMPLEMENT_ASN1_DUP_FUNCTION(X509_REQ)
diff --git a/src/lib/libssl/src/crypto/asn1/x_sig.c b/src/lib/libssl/src/crypto/asn1/x_sig.c
index ab4546e3ca..7c4c8c9c55 100644
--- a/src/lib/libssl/src/crypto/asn1/x_sig.c
+++ b/src/lib/libssl/src/crypto/asn1/x_sig.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: x_sig.c,v 1.8 2014/07/11 08:44:47 jsing Exp $ */ 1/* $OpenBSD: x_sig.c,v 1.9 2015/02/09 15:05:59 jsing Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -66,4 +66,28 @@ ASN1_SEQUENCE(X509_SIG) = {
66 ASN1_SIMPLE(X509_SIG, digest, ASN1_OCTET_STRING) 66 ASN1_SIMPLE(X509_SIG, digest, ASN1_OCTET_STRING)
67} ASN1_SEQUENCE_END(X509_SIG) 67} ASN1_SEQUENCE_END(X509_SIG)
68 68
69IMPLEMENT_ASN1_FUNCTIONS(X509_SIG) 69
70X509_SIG *
71d2i_X509_SIG(X509_SIG **a, const unsigned char **in, long len)
72{
73 return (X509_SIG *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
74 &X509_SIG_it);
75}
76
77int
78i2d_X509_SIG(X509_SIG *a, unsigned char **out)
79{
80 return ASN1_item_i2d((ASN1_VALUE *)a, out, &X509_SIG_it);
81}
82
83X509_SIG *
84X509_SIG_new(void)
85{
86 return (X509_SIG *)ASN1_item_new(&X509_SIG_it);
87}
88
89void
90X509_SIG_free(X509_SIG *a)
91{
92 ASN1_item_free((ASN1_VALUE *)a, &X509_SIG_it);
93}
diff --git a/src/lib/libssl/src/crypto/asn1/x_spki.c b/src/lib/libssl/src/crypto/asn1/x_spki.c
index 836abb13d8..fc056ff53b 100644
--- a/src/lib/libssl/src/crypto/asn1/x_spki.c
+++ b/src/lib/libssl/src/crypto/asn1/x_spki.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: x_spki.c,v 1.8 2014/07/11 08:44:47 jsing Exp $ */ 1/* $OpenBSD: x_spki.c,v 1.9 2015/02/09 15:05:59 jsing Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -70,7 +70,31 @@ ASN1_SEQUENCE(NETSCAPE_SPKAC) = {
70 ASN1_SIMPLE(NETSCAPE_SPKAC, challenge, ASN1_IA5STRING) 70 ASN1_SIMPLE(NETSCAPE_SPKAC, challenge, ASN1_IA5STRING)
71} ASN1_SEQUENCE_END(NETSCAPE_SPKAC) 71} ASN1_SEQUENCE_END(NETSCAPE_SPKAC)
72 72
73IMPLEMENT_ASN1_FUNCTIONS(NETSCAPE_SPKAC) 73
74NETSCAPE_SPKAC *
75d2i_NETSCAPE_SPKAC(NETSCAPE_SPKAC **a, const unsigned char **in, long len)
76{
77 return (NETSCAPE_SPKAC *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
78 &NETSCAPE_SPKAC_it);
79}
80
81int
82i2d_NETSCAPE_SPKAC(NETSCAPE_SPKAC *a, unsigned char **out)
83{
84 return ASN1_item_i2d((ASN1_VALUE *)a, out, &NETSCAPE_SPKAC_it);
85}
86
87NETSCAPE_SPKAC *
88NETSCAPE_SPKAC_new(void)
89{
90 return (NETSCAPE_SPKAC *)ASN1_item_new(&NETSCAPE_SPKAC_it);
91}
92
93void
94NETSCAPE_SPKAC_free(NETSCAPE_SPKAC *a)
95{
96 ASN1_item_free((ASN1_VALUE *)a, &NETSCAPE_SPKAC_it);
97}
74 98
75ASN1_SEQUENCE(NETSCAPE_SPKI) = { 99ASN1_SEQUENCE(NETSCAPE_SPKI) = {
76 ASN1_SIMPLE(NETSCAPE_SPKI, spkac, NETSCAPE_SPKAC), 100 ASN1_SIMPLE(NETSCAPE_SPKI, spkac, NETSCAPE_SPKAC),
@@ -78,4 +102,28 @@ ASN1_SEQUENCE(NETSCAPE_SPKI) = {
78 ASN1_SIMPLE(NETSCAPE_SPKI, signature, ASN1_BIT_STRING) 102 ASN1_SIMPLE(NETSCAPE_SPKI, signature, ASN1_BIT_STRING)
79} ASN1_SEQUENCE_END(NETSCAPE_SPKI) 103} ASN1_SEQUENCE_END(NETSCAPE_SPKI)
80 104
81IMPLEMENT_ASN1_FUNCTIONS(NETSCAPE_SPKI) 105
106NETSCAPE_SPKI *
107d2i_NETSCAPE_SPKI(NETSCAPE_SPKI **a, const unsigned char **in, long len)
108{
109 return (NETSCAPE_SPKI *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
110 &NETSCAPE_SPKI_it);
111}
112
113int
114i2d_NETSCAPE_SPKI(NETSCAPE_SPKI *a, unsigned char **out)
115{
116 return ASN1_item_i2d((ASN1_VALUE *)a, out, &NETSCAPE_SPKI_it);
117}
118
119NETSCAPE_SPKI *
120NETSCAPE_SPKI_new(void)
121{
122 return (NETSCAPE_SPKI *)ASN1_item_new(&NETSCAPE_SPKI_it);
123}
124
125void
126NETSCAPE_SPKI_free(NETSCAPE_SPKI *a)
127{
128 ASN1_item_free((ASN1_VALUE *)a, &NETSCAPE_SPKI_it);
129}
diff --git a/src/lib/libssl/src/crypto/asn1/x_val.c b/src/lib/libssl/src/crypto/asn1/x_val.c
index da9d16346b..27835e94da 100644
--- a/src/lib/libssl/src/crypto/asn1/x_val.c
+++ b/src/lib/libssl/src/crypto/asn1/x_val.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: x_val.c,v 1.8 2014/07/11 08:44:47 jsing Exp $ */ 1/* $OpenBSD: x_val.c,v 1.9 2015/02/09 15:05:59 jsing Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -66,4 +66,28 @@ ASN1_SEQUENCE(X509_VAL) = {
66 ASN1_SIMPLE(X509_VAL, notAfter, ASN1_TIME) 66 ASN1_SIMPLE(X509_VAL, notAfter, ASN1_TIME)
67} ASN1_SEQUENCE_END(X509_VAL) 67} ASN1_SEQUENCE_END(X509_VAL)
68 68
69IMPLEMENT_ASN1_FUNCTIONS(X509_VAL) 69
70X509_VAL *
71d2i_X509_VAL(X509_VAL **a, const unsigned char **in, long len)
72{
73 return (X509_VAL *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
74 &X509_VAL_it);
75}
76
77int
78i2d_X509_VAL(X509_VAL *a, unsigned char **out)
79{
80 return ASN1_item_i2d((ASN1_VALUE *)a, out, &X509_VAL_it);
81}
82
83X509_VAL *
84X509_VAL_new(void)
85{
86 return (X509_VAL *)ASN1_item_new(&X509_VAL_it);
87}
88
89void
90X509_VAL_free(X509_VAL *a)
91{
92 ASN1_item_free((ASN1_VALUE *)a, &X509_VAL_it);
93}
diff --git a/src/lib/libssl/src/crypto/asn1/x_x509.c b/src/lib/libssl/src/crypto/asn1/x_x509.c
index 0236a0faa2..8fd2d7684b 100644
--- a/src/lib/libssl/src/crypto/asn1/x_x509.c
+++ b/src/lib/libssl/src/crypto/asn1/x_x509.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: x_x509.c,v 1.17 2014/07/11 08:44:47 jsing Exp $ */ 1/* $OpenBSD: x_x509.c,v 1.18 2015/02/09 15:05:59 jsing Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -78,7 +78,31 @@ ASN1_SEQUENCE_enc(X509_CINF, enc, 0) = {
78 ASN1_EXP_SEQUENCE_OF_OPT(X509_CINF, extensions, X509_EXTENSION, 3) 78 ASN1_EXP_SEQUENCE_OF_OPT(X509_CINF, extensions, X509_EXTENSION, 3)
79} ASN1_SEQUENCE_END_enc(X509_CINF, X509_CINF) 79} ASN1_SEQUENCE_END_enc(X509_CINF, X509_CINF)
80 80
81IMPLEMENT_ASN1_FUNCTIONS(X509_CINF) 81
82X509_CINF *
83d2i_X509_CINF(X509_CINF **a, const unsigned char **in, long len)
84{
85 return (X509_CINF *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
86 &X509_CINF_it);
87}
88
89int
90i2d_X509_CINF(X509_CINF *a, unsigned char **out)
91{
92 return ASN1_item_i2d((ASN1_VALUE *)a, out, &X509_CINF_it);
93}
94
95X509_CINF *
96X509_CINF_new(void)
97{
98 return (X509_CINF *)ASN1_item_new(&X509_CINF_it);
99}
100
101void
102X509_CINF_free(X509_CINF *a)
103{
104 ASN1_item_free((ASN1_VALUE *)a, &X509_CINF_it);
105}
82/* X509 top level structure needs a bit of customisation */ 106/* X509 top level structure needs a bit of customisation */
83 107
84extern void policy_cache_free(X509_POLICY_CACHE *cache); 108extern void policy_cache_free(X509_POLICY_CACHE *cache);
@@ -138,7 +162,31 @@ ASN1_SEQUENCE_ref(X509, x509_cb, CRYPTO_LOCK_X509) = {
138 ASN1_SIMPLE(X509, signature, ASN1_BIT_STRING) 162 ASN1_SIMPLE(X509, signature, ASN1_BIT_STRING)
139} ASN1_SEQUENCE_END_ref(X509, X509) 163} ASN1_SEQUENCE_END_ref(X509, X509)
140 164
141IMPLEMENT_ASN1_FUNCTIONS(X509) 165
166X509 *
167d2i_X509(X509 **a, const unsigned char **in, long len)
168{
169 return (X509 *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
170 &X509_it);
171}
172
173int
174i2d_X509(X509 *a, unsigned char **out)
175{
176 return ASN1_item_i2d((ASN1_VALUE *)a, out, &X509_it);
177}
178
179X509 *
180X509_new(void)
181{
182 return (X509 *)ASN1_item_new(&X509_it);
183}
184
185void
186X509_free(X509 *a)
187{
188 ASN1_item_free((ASN1_VALUE *)a, &X509_it);
189}
142IMPLEMENT_ASN1_DUP_FUNCTION(X509) 190IMPLEMENT_ASN1_DUP_FUNCTION(X509)
143 191
144int 192int
diff --git a/src/lib/libssl/src/crypto/asn1/x_x509a.c b/src/lib/libssl/src/crypto/asn1/x_x509a.c
index c6837069d9..8a3561e882 100644
--- a/src/lib/libssl/src/crypto/asn1/x_x509a.c
+++ b/src/lib/libssl/src/crypto/asn1/x_x509a.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: x_x509a.c,v 1.10 2014/07/11 08:44:47 jsing Exp $ */ 1/* $OpenBSD: x_x509a.c,v 1.11 2015/02/09 15:05:59 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 */
@@ -79,7 +79,31 @@ ASN1_SEQUENCE(X509_CERT_AUX) = {
79 ASN1_IMP_SEQUENCE_OF_OPT(X509_CERT_AUX, other, X509_ALGOR, 1) 79 ASN1_IMP_SEQUENCE_OF_OPT(X509_CERT_AUX, other, X509_ALGOR, 1)
80} ASN1_SEQUENCE_END(X509_CERT_AUX) 80} ASN1_SEQUENCE_END(X509_CERT_AUX)
81 81
82IMPLEMENT_ASN1_FUNCTIONS(X509_CERT_AUX) 82
83X509_CERT_AUX *
84d2i_X509_CERT_AUX(X509_CERT_AUX **a, const unsigned char **in, long len)
85{
86 return (X509_CERT_AUX *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
87 &X509_CERT_AUX_it);
88}
89
90int
91i2d_X509_CERT_AUX(X509_CERT_AUX *a, unsigned char **out)
92{
93 return ASN1_item_i2d((ASN1_VALUE *)a, out, &X509_CERT_AUX_it);
94}
95
96X509_CERT_AUX *
97X509_CERT_AUX_new(void)
98{
99 return (X509_CERT_AUX *)ASN1_item_new(&X509_CERT_AUX_it);
100}
101
102void
103X509_CERT_AUX_free(X509_CERT_AUX *a)
104{
105 ASN1_item_free((ASN1_VALUE *)a, &X509_CERT_AUX_it);
106}
83 107
84static X509_CERT_AUX * 108static X509_CERT_AUX *
85aux_get(X509 *x) 109aux_get(X509 *x)
@@ -198,4 +222,28 @@ ASN1_SEQUENCE(X509_CERT_PAIR) = {
198 ASN1_EXP_OPT(X509_CERT_PAIR, reverse, X509, 1) 222 ASN1_EXP_OPT(X509_CERT_PAIR, reverse, X509, 1)
199} ASN1_SEQUENCE_END(X509_CERT_PAIR) 223} ASN1_SEQUENCE_END(X509_CERT_PAIR)
200 224
201IMPLEMENT_ASN1_FUNCTIONS(X509_CERT_PAIR) 225
226X509_CERT_PAIR *
227d2i_X509_CERT_PAIR(X509_CERT_PAIR **a, const unsigned char **in, long len)
228{
229 return (X509_CERT_PAIR *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
230 &X509_CERT_PAIR_it);
231}
232
233int
234i2d_X509_CERT_PAIR(X509_CERT_PAIR *a, unsigned char **out)
235{
236 return ASN1_item_i2d((ASN1_VALUE *)a, out, &X509_CERT_PAIR_it);
237}
238
239X509_CERT_PAIR *
240X509_CERT_PAIR_new(void)
241{
242 return (X509_CERT_PAIR *)ASN1_item_new(&X509_CERT_PAIR_it);
243}
244
245void
246X509_CERT_PAIR_free(X509_CERT_PAIR *a)
247{
248 ASN1_item_free((ASN1_VALUE *)a, &X509_CERT_PAIR_it);
249}