summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorjsing <>2015-02-10 05:12:23 +0000
committerjsing <>2015-02-10 05:12:23 +0000
commit420e4433e0663a16ac8ce2d0d644bc67b2ced591 (patch)
tree589ebdd9bb450a4df09d2ed962b5d2178ebf5237 /src
parent9bd525742fa9bbaf8f56cda1167eb91c447404a5 (diff)
downloadopenbsd-420e4433e0663a16ac8ce2d0d644bc67b2ced591.tar.gz
openbsd-420e4433e0663a16ac8ce2d0d644bc67b2ced591.tar.bz2
openbsd-420e4433e0663a16ac8ce2d0d644bc67b2ced591.zip
Expand the -IMPLEMENT_ASN1_ENCODE_FUNCTIONS_(const_)?fname macros so that
the code is visible and functions can be readily located. Change has been scripted and there is no change to the generated assembly. Discussed with beck@ miod@ tedu@
Diffstat (limited to 'src')
-rw-r--r--src/lib/libcrypto/asn1/tasn_typ.c30
-rw-r--r--src/lib/libcrypto/dh/dh_asn1.c16
-rw-r--r--src/lib/libcrypto/dsa/dsa_asn1.c58
-rw-r--r--src/lib/libcrypto/rsa/rsa_asn1.c30
-rw-r--r--src/lib/libssl/src/crypto/asn1/tasn_typ.c30
-rw-r--r--src/lib/libssl/src/crypto/dh/dh_asn1.c16
-rw-r--r--src/lib/libssl/src/crypto/dsa/dsa_asn1.c58
-rw-r--r--src/lib/libssl/src/crypto/rsa/rsa_asn1.c30
8 files changed, 242 insertions, 26 deletions
diff --git a/src/lib/libcrypto/asn1/tasn_typ.c b/src/lib/libcrypto/asn1/tasn_typ.c
index 6e4650c089..094b041a80 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.8 2015/02/10 04:01:26 jsing Exp $ */ 1/* $OpenBSD: tasn_typ.c,v 1.9 2015/02/10 05:12:23 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 */
@@ -600,5 +600,29 @@ ASN1_ITEM_TEMPLATE(ASN1_SET_ANY) =
600 ASN1_EX_TEMPLATE_TYPE(ASN1_TFLG_SET_OF, 0, ASN1_SET_ANY, ASN1_ANY) 600 ASN1_EX_TEMPLATE_TYPE(ASN1_TFLG_SET_OF, 0, ASN1_SET_ANY, ASN1_ANY)
601ASN1_ITEM_TEMPLATE_END(ASN1_SET_ANY) 601ASN1_ITEM_TEMPLATE_END(ASN1_SET_ANY)
602 602
603IMPLEMENT_ASN1_ENCODE_FUNCTIONS_const_fname(ASN1_SEQUENCE_ANY, ASN1_SEQUENCE_ANY, ASN1_SEQUENCE_ANY) 603
604IMPLEMENT_ASN1_ENCODE_FUNCTIONS_const_fname(ASN1_SEQUENCE_ANY, ASN1_SET_ANY, ASN1_SET_ANY) 604ASN1_SEQUENCE_ANY *
605d2i_ASN1_SEQUENCE_ANY(ASN1_SEQUENCE_ANY **a, const unsigned char **in, long len)
606{
607 return (ASN1_SEQUENCE_ANY *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
608 &ASN1_SEQUENCE_ANY_it);
609}
610
611int
612i2d_ASN1_SEQUENCE_ANY(const ASN1_SEQUENCE_ANY *a, unsigned char **out)
613{
614 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASN1_SEQUENCE_ANY_it);
615}
616
617ASN1_SEQUENCE_ANY *
618d2i_ASN1_SET_ANY(ASN1_SEQUENCE_ANY **a, const unsigned char **in, long len)
619{
620 return (ASN1_SEQUENCE_ANY *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
621 &ASN1_SET_ANY_it);
622}
623
624int
625i2d_ASN1_SET_ANY(const ASN1_SEQUENCE_ANY *a, unsigned char **out)
626{
627 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASN1_SET_ANY_it);
628}
diff --git a/src/lib/libcrypto/dh/dh_asn1.c b/src/lib/libcrypto/dh/dh_asn1.c
index ee478c7958..9d76974659 100644
--- a/src/lib/libcrypto/dh/dh_asn1.c
+++ b/src/lib/libcrypto/dh/dh_asn1.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: dh_asn1.c,v 1.6 2014/07/11 08:44:48 jsing Exp $ */ 1/* $OpenBSD: dh_asn1.c,v 1.7 2015/02/10 05:12:23 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 */
@@ -86,7 +86,19 @@ ASN1_SEQUENCE_cb(DHparams, dh_cb) = {
86 ASN1_OPT(DH, length, ZLONG), 86 ASN1_OPT(DH, length, ZLONG),
87} ASN1_SEQUENCE_END_cb(DH, DHparams) 87} ASN1_SEQUENCE_END_cb(DH, DHparams)
88 88
89IMPLEMENT_ASN1_ENCODE_FUNCTIONS_const_fname(DH, DHparams, DHparams) 89
90DH *
91d2i_DHparams(DH **a, const unsigned char **in, long len)
92{
93 return (DH *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
94 &DHparams_it);
95}
96
97int
98i2d_DHparams(const DH *a, unsigned char **out)
99{
100 return ASN1_item_i2d((ASN1_VALUE *)a, out, &DHparams_it);
101}
90 102
91DH * 103DH *
92DHparams_dup(DH *dh) 104DHparams_dup(DH *dh)
diff --git a/src/lib/libcrypto/dsa/dsa_asn1.c b/src/lib/libcrypto/dsa/dsa_asn1.c
index 16cb1fa379..c6b00923fc 100644
--- a/src/lib/libcrypto/dsa/dsa_asn1.c
+++ b/src/lib/libcrypto/dsa/dsa_asn1.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: dsa_asn1.c,v 1.14 2015/01/28 04:14:31 beck Exp $ */ 1/* $OpenBSD: dsa_asn1.c,v 1.15 2015/02/10 05:12:23 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 */
@@ -89,7 +89,19 @@ ASN1_SEQUENCE_cb(DSA_SIG, sig_cb) = {
89 ASN1_SIMPLE(DSA_SIG, s, CBIGNUM) 89 ASN1_SIMPLE(DSA_SIG, s, CBIGNUM)
90} ASN1_SEQUENCE_END_cb(DSA_SIG, DSA_SIG) 90} ASN1_SEQUENCE_END_cb(DSA_SIG, DSA_SIG)
91 91
92IMPLEMENT_ASN1_ENCODE_FUNCTIONS_const_fname(DSA_SIG, DSA_SIG, DSA_SIG) 92
93DSA_SIG *
94d2i_DSA_SIG(DSA_SIG **a, const unsigned char **in, long len)
95{
96 return (DSA_SIG *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
97 &DSA_SIG_it);
98}
99
100int
101i2d_DSA_SIG(const DSA_SIG *a, unsigned char **out)
102{
103 return ASN1_item_i2d((ASN1_VALUE *)a, out, &DSA_SIG_it);
104}
93 105
94/* Override the default free and new methods */ 106/* Override the default free and new methods */
95static int 107static int
@@ -117,7 +129,19 @@ ASN1_SEQUENCE_cb(DSAPrivateKey, dsa_cb) = {
117 ASN1_SIMPLE(DSA, priv_key, BIGNUM) 129 ASN1_SIMPLE(DSA, priv_key, BIGNUM)
118} ASN1_SEQUENCE_END_cb(DSA, DSAPrivateKey) 130} ASN1_SEQUENCE_END_cb(DSA, DSAPrivateKey)
119 131
120IMPLEMENT_ASN1_ENCODE_FUNCTIONS_const_fname(DSA, DSAPrivateKey, DSAPrivateKey) 132
133DSA *
134d2i_DSAPrivateKey(DSA **a, const unsigned char **in, long len)
135{
136 return (DSA *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
137 &DSAPrivateKey_it);
138}
139
140int
141i2d_DSAPrivateKey(const DSA *a, unsigned char **out)
142{
143 return ASN1_item_i2d((ASN1_VALUE *)a, out, &DSAPrivateKey_it);
144}
121 145
122ASN1_SEQUENCE_cb(DSAparams, dsa_cb) = { 146ASN1_SEQUENCE_cb(DSAparams, dsa_cb) = {
123 ASN1_SIMPLE(DSA, p, BIGNUM), 147 ASN1_SIMPLE(DSA, p, BIGNUM),
@@ -125,7 +149,19 @@ ASN1_SEQUENCE_cb(DSAparams, dsa_cb) = {
125 ASN1_SIMPLE(DSA, g, BIGNUM), 149 ASN1_SIMPLE(DSA, g, BIGNUM),
126} ASN1_SEQUENCE_END_cb(DSA, DSAparams) 150} ASN1_SEQUENCE_END_cb(DSA, DSAparams)
127 151
128IMPLEMENT_ASN1_ENCODE_FUNCTIONS_const_fname(DSA, DSAparams, DSAparams) 152
153DSA *
154d2i_DSAparams(DSA **a, const unsigned char **in, long len)
155{
156 return (DSA *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
157 &DSAparams_it);
158}
159
160int
161i2d_DSAparams(const DSA *a, unsigned char **out)
162{
163 return ASN1_item_i2d((ASN1_VALUE *)a, out, &DSAparams_it);
164}
129 165
130/* 166/*
131 * DSA public key is a bit trickier... its effectively a CHOICE type 167 * DSA public key is a bit trickier... its effectively a CHOICE type
@@ -146,7 +182,19 @@ ASN1_CHOICE_cb(DSAPublicKey, dsa_cb) = {
146 ASN1_EX_COMBINE(0, 0, dsa_pub_internal) 182 ASN1_EX_COMBINE(0, 0, dsa_pub_internal)
147} ASN1_CHOICE_END_cb(DSA, DSAPublicKey, write_params) 183} ASN1_CHOICE_END_cb(DSA, DSAPublicKey, write_params)
148 184
149IMPLEMENT_ASN1_ENCODE_FUNCTIONS_const_fname(DSA, DSAPublicKey, DSAPublicKey) 185
186DSA *
187d2i_DSAPublicKey(DSA **a, const unsigned char **in, long len)
188{
189 return (DSA *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
190 &DSAPublicKey_it);
191}
192
193int
194i2d_DSAPublicKey(const DSA *a, unsigned char **out)
195{
196 return ASN1_item_i2d((ASN1_VALUE *)a, out, &DSAPublicKey_it);
197}
150 198
151DSA * 199DSA *
152DSAparams_dup(DSA *dsa) 200DSAparams_dup(DSA *dsa)
diff --git a/src/lib/libcrypto/rsa/rsa_asn1.c b/src/lib/libcrypto/rsa/rsa_asn1.c
index a75b80fa10..525c9455bd 100644
--- a/src/lib/libcrypto/rsa/rsa_asn1.c
+++ b/src/lib/libcrypto/rsa/rsa_asn1.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: rsa_asn1.c,v 1.10 2015/02/09 16:04:46 jsing Exp $ */ 1/* $OpenBSD: rsa_asn1.c,v 1.11 2015/02/10 05:12:23 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 */
@@ -131,9 +131,33 @@ RSA_PSS_PARAMS_free(RSA_PSS_PARAMS *a)
131 ASN1_item_free((ASN1_VALUE *)a, &RSA_PSS_PARAMS_it); 131 ASN1_item_free((ASN1_VALUE *)a, &RSA_PSS_PARAMS_it);
132} 132}
133 133
134IMPLEMENT_ASN1_ENCODE_FUNCTIONS_const_fname(RSA, RSAPrivateKey, RSAPrivateKey)
135 134
136IMPLEMENT_ASN1_ENCODE_FUNCTIONS_const_fname(RSA, RSAPublicKey, RSAPublicKey) 135RSA *
136d2i_RSAPrivateKey(RSA **a, const unsigned char **in, long len)
137{
138 return (RSA *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
139 &RSAPrivateKey_it);
140}
141
142int
143i2d_RSAPrivateKey(const RSA *a, unsigned char **out)
144{
145 return ASN1_item_i2d((ASN1_VALUE *)a, out, &RSAPrivateKey_it);
146}
147
148
149RSA *
150d2i_RSAPublicKey(RSA **a, const unsigned char **in, long len)
151{
152 return (RSA *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
153 &RSAPublicKey_it);
154}
155
156int
157i2d_RSAPublicKey(const RSA *a, unsigned char **out)
158{
159 return ASN1_item_i2d((ASN1_VALUE *)a, out, &RSAPublicKey_it);
160}
137 161
138RSA * 162RSA *
139RSAPublicKey_dup(RSA *rsa) 163RSAPublicKey_dup(RSA *rsa)
diff --git a/src/lib/libssl/src/crypto/asn1/tasn_typ.c b/src/lib/libssl/src/crypto/asn1/tasn_typ.c
index 6e4650c089..094b041a80 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.8 2015/02/10 04:01:26 jsing Exp $ */ 1/* $OpenBSD: tasn_typ.c,v 1.9 2015/02/10 05:12:23 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 */
@@ -600,5 +600,29 @@ ASN1_ITEM_TEMPLATE(ASN1_SET_ANY) =
600 ASN1_EX_TEMPLATE_TYPE(ASN1_TFLG_SET_OF, 0, ASN1_SET_ANY, ASN1_ANY) 600 ASN1_EX_TEMPLATE_TYPE(ASN1_TFLG_SET_OF, 0, ASN1_SET_ANY, ASN1_ANY)
601ASN1_ITEM_TEMPLATE_END(ASN1_SET_ANY) 601ASN1_ITEM_TEMPLATE_END(ASN1_SET_ANY)
602 602
603IMPLEMENT_ASN1_ENCODE_FUNCTIONS_const_fname(ASN1_SEQUENCE_ANY, ASN1_SEQUENCE_ANY, ASN1_SEQUENCE_ANY) 603
604IMPLEMENT_ASN1_ENCODE_FUNCTIONS_const_fname(ASN1_SEQUENCE_ANY, ASN1_SET_ANY, ASN1_SET_ANY) 604ASN1_SEQUENCE_ANY *
605d2i_ASN1_SEQUENCE_ANY(ASN1_SEQUENCE_ANY **a, const unsigned char **in, long len)
606{
607 return (ASN1_SEQUENCE_ANY *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
608 &ASN1_SEQUENCE_ANY_it);
609}
610
611int
612i2d_ASN1_SEQUENCE_ANY(const ASN1_SEQUENCE_ANY *a, unsigned char **out)
613{
614 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASN1_SEQUENCE_ANY_it);
615}
616
617ASN1_SEQUENCE_ANY *
618d2i_ASN1_SET_ANY(ASN1_SEQUENCE_ANY **a, const unsigned char **in, long len)
619{
620 return (ASN1_SEQUENCE_ANY *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
621 &ASN1_SET_ANY_it);
622}
623
624int
625i2d_ASN1_SET_ANY(const ASN1_SEQUENCE_ANY *a, unsigned char **out)
626{
627 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASN1_SET_ANY_it);
628}
diff --git a/src/lib/libssl/src/crypto/dh/dh_asn1.c b/src/lib/libssl/src/crypto/dh/dh_asn1.c
index ee478c7958..9d76974659 100644
--- a/src/lib/libssl/src/crypto/dh/dh_asn1.c
+++ b/src/lib/libssl/src/crypto/dh/dh_asn1.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: dh_asn1.c,v 1.6 2014/07/11 08:44:48 jsing Exp $ */ 1/* $OpenBSD: dh_asn1.c,v 1.7 2015/02/10 05:12:23 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 */
@@ -86,7 +86,19 @@ ASN1_SEQUENCE_cb(DHparams, dh_cb) = {
86 ASN1_OPT(DH, length, ZLONG), 86 ASN1_OPT(DH, length, ZLONG),
87} ASN1_SEQUENCE_END_cb(DH, DHparams) 87} ASN1_SEQUENCE_END_cb(DH, DHparams)
88 88
89IMPLEMENT_ASN1_ENCODE_FUNCTIONS_const_fname(DH, DHparams, DHparams) 89
90DH *
91d2i_DHparams(DH **a, const unsigned char **in, long len)
92{
93 return (DH *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
94 &DHparams_it);
95}
96
97int
98i2d_DHparams(const DH *a, unsigned char **out)
99{
100 return ASN1_item_i2d((ASN1_VALUE *)a, out, &DHparams_it);
101}
90 102
91DH * 103DH *
92DHparams_dup(DH *dh) 104DHparams_dup(DH *dh)
diff --git a/src/lib/libssl/src/crypto/dsa/dsa_asn1.c b/src/lib/libssl/src/crypto/dsa/dsa_asn1.c
index 16cb1fa379..c6b00923fc 100644
--- a/src/lib/libssl/src/crypto/dsa/dsa_asn1.c
+++ b/src/lib/libssl/src/crypto/dsa/dsa_asn1.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: dsa_asn1.c,v 1.14 2015/01/28 04:14:31 beck Exp $ */ 1/* $OpenBSD: dsa_asn1.c,v 1.15 2015/02/10 05:12:23 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 */
@@ -89,7 +89,19 @@ ASN1_SEQUENCE_cb(DSA_SIG, sig_cb) = {
89 ASN1_SIMPLE(DSA_SIG, s, CBIGNUM) 89 ASN1_SIMPLE(DSA_SIG, s, CBIGNUM)
90} ASN1_SEQUENCE_END_cb(DSA_SIG, DSA_SIG) 90} ASN1_SEQUENCE_END_cb(DSA_SIG, DSA_SIG)
91 91
92IMPLEMENT_ASN1_ENCODE_FUNCTIONS_const_fname(DSA_SIG, DSA_SIG, DSA_SIG) 92
93DSA_SIG *
94d2i_DSA_SIG(DSA_SIG **a, const unsigned char **in, long len)
95{
96 return (DSA_SIG *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
97 &DSA_SIG_it);
98}
99
100int
101i2d_DSA_SIG(const DSA_SIG *a, unsigned char **out)
102{
103 return ASN1_item_i2d((ASN1_VALUE *)a, out, &DSA_SIG_it);
104}
93 105
94/* Override the default free and new methods */ 106/* Override the default free and new methods */
95static int 107static int
@@ -117,7 +129,19 @@ ASN1_SEQUENCE_cb(DSAPrivateKey, dsa_cb) = {
117 ASN1_SIMPLE(DSA, priv_key, BIGNUM) 129 ASN1_SIMPLE(DSA, priv_key, BIGNUM)
118} ASN1_SEQUENCE_END_cb(DSA, DSAPrivateKey) 130} ASN1_SEQUENCE_END_cb(DSA, DSAPrivateKey)
119 131
120IMPLEMENT_ASN1_ENCODE_FUNCTIONS_const_fname(DSA, DSAPrivateKey, DSAPrivateKey) 132
133DSA *
134d2i_DSAPrivateKey(DSA **a, const unsigned char **in, long len)
135{
136 return (DSA *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
137 &DSAPrivateKey_it);
138}
139
140int
141i2d_DSAPrivateKey(const DSA *a, unsigned char **out)
142{
143 return ASN1_item_i2d((ASN1_VALUE *)a, out, &DSAPrivateKey_it);
144}
121 145
122ASN1_SEQUENCE_cb(DSAparams, dsa_cb) = { 146ASN1_SEQUENCE_cb(DSAparams, dsa_cb) = {
123 ASN1_SIMPLE(DSA, p, BIGNUM), 147 ASN1_SIMPLE(DSA, p, BIGNUM),
@@ -125,7 +149,19 @@ ASN1_SEQUENCE_cb(DSAparams, dsa_cb) = {
125 ASN1_SIMPLE(DSA, g, BIGNUM), 149 ASN1_SIMPLE(DSA, g, BIGNUM),
126} ASN1_SEQUENCE_END_cb(DSA, DSAparams) 150} ASN1_SEQUENCE_END_cb(DSA, DSAparams)
127 151
128IMPLEMENT_ASN1_ENCODE_FUNCTIONS_const_fname(DSA, DSAparams, DSAparams) 152
153DSA *
154d2i_DSAparams(DSA **a, const unsigned char **in, long len)
155{
156 return (DSA *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
157 &DSAparams_it);
158}
159
160int
161i2d_DSAparams(const DSA *a, unsigned char **out)
162{
163 return ASN1_item_i2d((ASN1_VALUE *)a, out, &DSAparams_it);
164}
129 165
130/* 166/*
131 * DSA public key is a bit trickier... its effectively a CHOICE type 167 * DSA public key is a bit trickier... its effectively a CHOICE type
@@ -146,7 +182,19 @@ ASN1_CHOICE_cb(DSAPublicKey, dsa_cb) = {
146 ASN1_EX_COMBINE(0, 0, dsa_pub_internal) 182 ASN1_EX_COMBINE(0, 0, dsa_pub_internal)
147} ASN1_CHOICE_END_cb(DSA, DSAPublicKey, write_params) 183} ASN1_CHOICE_END_cb(DSA, DSAPublicKey, write_params)
148 184
149IMPLEMENT_ASN1_ENCODE_FUNCTIONS_const_fname(DSA, DSAPublicKey, DSAPublicKey) 185
186DSA *
187d2i_DSAPublicKey(DSA **a, const unsigned char **in, long len)
188{
189 return (DSA *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
190 &DSAPublicKey_it);
191}
192
193int
194i2d_DSAPublicKey(const DSA *a, unsigned char **out)
195{
196 return ASN1_item_i2d((ASN1_VALUE *)a, out, &DSAPublicKey_it);
197}
150 198
151DSA * 199DSA *
152DSAparams_dup(DSA *dsa) 200DSAparams_dup(DSA *dsa)
diff --git a/src/lib/libssl/src/crypto/rsa/rsa_asn1.c b/src/lib/libssl/src/crypto/rsa/rsa_asn1.c
index a75b80fa10..525c9455bd 100644
--- a/src/lib/libssl/src/crypto/rsa/rsa_asn1.c
+++ b/src/lib/libssl/src/crypto/rsa/rsa_asn1.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: rsa_asn1.c,v 1.10 2015/02/09 16:04:46 jsing Exp $ */ 1/* $OpenBSD: rsa_asn1.c,v 1.11 2015/02/10 05:12:23 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 */
@@ -131,9 +131,33 @@ RSA_PSS_PARAMS_free(RSA_PSS_PARAMS *a)
131 ASN1_item_free((ASN1_VALUE *)a, &RSA_PSS_PARAMS_it); 131 ASN1_item_free((ASN1_VALUE *)a, &RSA_PSS_PARAMS_it);
132} 132}
133 133
134IMPLEMENT_ASN1_ENCODE_FUNCTIONS_const_fname(RSA, RSAPrivateKey, RSAPrivateKey)
135 134
136IMPLEMENT_ASN1_ENCODE_FUNCTIONS_const_fname(RSA, RSAPublicKey, RSAPublicKey) 135RSA *
136d2i_RSAPrivateKey(RSA **a, const unsigned char **in, long len)
137{
138 return (RSA *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
139 &RSAPrivateKey_it);
140}
141
142int
143i2d_RSAPrivateKey(const RSA *a, unsigned char **out)
144{
145 return ASN1_item_i2d((ASN1_VALUE *)a, out, &RSAPrivateKey_it);
146}
147
148
149RSA *
150d2i_RSAPublicKey(RSA **a, const unsigned char **in, long len)
151{
152 return (RSA *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
153 &RSAPublicKey_it);
154}
155
156int
157i2d_RSAPublicKey(const RSA *a, unsigned char **out)
158{
159 return ASN1_item_i2d((ASN1_VALUE *)a, out, &RSAPublicKey_it);
160}
137 161
138RSA * 162RSA *
139RSAPublicKey_dup(RSA *rsa) 163RSAPublicKey_dup(RSA *rsa)