diff options
author | jsing <> | 2015-02-10 05:12:23 +0000 |
---|---|---|
committer | jsing <> | 2015-02-10 05:12:23 +0000 |
commit | 420e4433e0663a16ac8ce2d0d644bc67b2ced591 (patch) | |
tree | 589ebdd9bb450a4df09d2ed962b5d2178ebf5237 /src | |
parent | 9bd525742fa9bbaf8f56cda1167eb91c447404a5 (diff) | |
download | openbsd-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.c | 30 | ||||
-rw-r--r-- | src/lib/libcrypto/dh/dh_asn1.c | 16 | ||||
-rw-r--r-- | src/lib/libcrypto/dsa/dsa_asn1.c | 58 | ||||
-rw-r--r-- | src/lib/libcrypto/rsa/rsa_asn1.c | 30 | ||||
-rw-r--r-- | src/lib/libssl/src/crypto/asn1/tasn_typ.c | 30 | ||||
-rw-r--r-- | src/lib/libssl/src/crypto/dh/dh_asn1.c | 16 | ||||
-rw-r--r-- | src/lib/libssl/src/crypto/dsa/dsa_asn1.c | 58 | ||||
-rw-r--r-- | src/lib/libssl/src/crypto/rsa/rsa_asn1.c | 30 |
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) |
601 | ASN1_ITEM_TEMPLATE_END(ASN1_SET_ANY) | 601 | ASN1_ITEM_TEMPLATE_END(ASN1_SET_ANY) |
602 | 602 | ||
603 | IMPLEMENT_ASN1_ENCODE_FUNCTIONS_const_fname(ASN1_SEQUENCE_ANY, ASN1_SEQUENCE_ANY, ASN1_SEQUENCE_ANY) | 603 | |
604 | IMPLEMENT_ASN1_ENCODE_FUNCTIONS_const_fname(ASN1_SEQUENCE_ANY, ASN1_SET_ANY, ASN1_SET_ANY) | 604 | ASN1_SEQUENCE_ANY * |
605 | d2i_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 | |||
611 | int | ||
612 | i2d_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 | |||
617 | ASN1_SEQUENCE_ANY * | ||
618 | d2i_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 | |||
624 | int | ||
625 | i2d_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 | ||
89 | IMPLEMENT_ASN1_ENCODE_FUNCTIONS_const_fname(DH, DHparams, DHparams) | 89 | |
90 | DH * | ||
91 | d2i_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 | |||
97 | int | ||
98 | i2d_DHparams(const DH *a, unsigned char **out) | ||
99 | { | ||
100 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &DHparams_it); | ||
101 | } | ||
90 | 102 | ||
91 | DH * | 103 | DH * |
92 | DHparams_dup(DH *dh) | 104 | DHparams_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 | ||
92 | IMPLEMENT_ASN1_ENCODE_FUNCTIONS_const_fname(DSA_SIG, DSA_SIG, DSA_SIG) | 92 | |
93 | DSA_SIG * | ||
94 | d2i_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 | |||
100 | int | ||
101 | i2d_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 */ |
95 | static int | 107 | static 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 | ||
120 | IMPLEMENT_ASN1_ENCODE_FUNCTIONS_const_fname(DSA, DSAPrivateKey, DSAPrivateKey) | 132 | |
133 | DSA * | ||
134 | d2i_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 | |||
140 | int | ||
141 | i2d_DSAPrivateKey(const DSA *a, unsigned char **out) | ||
142 | { | ||
143 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &DSAPrivateKey_it); | ||
144 | } | ||
121 | 145 | ||
122 | ASN1_SEQUENCE_cb(DSAparams, dsa_cb) = { | 146 | ASN1_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 | ||
128 | IMPLEMENT_ASN1_ENCODE_FUNCTIONS_const_fname(DSA, DSAparams, DSAparams) | 152 | |
153 | DSA * | ||
154 | d2i_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 | |||
160 | int | ||
161 | i2d_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 | ||
149 | IMPLEMENT_ASN1_ENCODE_FUNCTIONS_const_fname(DSA, DSAPublicKey, DSAPublicKey) | 185 | |
186 | DSA * | ||
187 | d2i_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 | |||
193 | int | ||
194 | i2d_DSAPublicKey(const DSA *a, unsigned char **out) | ||
195 | { | ||
196 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &DSAPublicKey_it); | ||
197 | } | ||
150 | 198 | ||
151 | DSA * | 199 | DSA * |
152 | DSAparams_dup(DSA *dsa) | 200 | DSAparams_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 | ||
134 | IMPLEMENT_ASN1_ENCODE_FUNCTIONS_const_fname(RSA, RSAPrivateKey, RSAPrivateKey) | ||
135 | 134 | ||
136 | IMPLEMENT_ASN1_ENCODE_FUNCTIONS_const_fname(RSA, RSAPublicKey, RSAPublicKey) | 135 | RSA * |
136 | d2i_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 | |||
142 | int | ||
143 | i2d_RSAPrivateKey(const RSA *a, unsigned char **out) | ||
144 | { | ||
145 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &RSAPrivateKey_it); | ||
146 | } | ||
147 | |||
148 | |||
149 | RSA * | ||
150 | d2i_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 | |||
156 | int | ||
157 | i2d_RSAPublicKey(const RSA *a, unsigned char **out) | ||
158 | { | ||
159 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &RSAPublicKey_it); | ||
160 | } | ||
137 | 161 | ||
138 | RSA * | 162 | RSA * |
139 | RSAPublicKey_dup(RSA *rsa) | 163 | RSAPublicKey_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) |
601 | ASN1_ITEM_TEMPLATE_END(ASN1_SET_ANY) | 601 | ASN1_ITEM_TEMPLATE_END(ASN1_SET_ANY) |
602 | 602 | ||
603 | IMPLEMENT_ASN1_ENCODE_FUNCTIONS_const_fname(ASN1_SEQUENCE_ANY, ASN1_SEQUENCE_ANY, ASN1_SEQUENCE_ANY) | 603 | |
604 | IMPLEMENT_ASN1_ENCODE_FUNCTIONS_const_fname(ASN1_SEQUENCE_ANY, ASN1_SET_ANY, ASN1_SET_ANY) | 604 | ASN1_SEQUENCE_ANY * |
605 | d2i_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 | |||
611 | int | ||
612 | i2d_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 | |||
617 | ASN1_SEQUENCE_ANY * | ||
618 | d2i_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 | |||
624 | int | ||
625 | i2d_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 | ||
89 | IMPLEMENT_ASN1_ENCODE_FUNCTIONS_const_fname(DH, DHparams, DHparams) | 89 | |
90 | DH * | ||
91 | d2i_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 | |||
97 | int | ||
98 | i2d_DHparams(const DH *a, unsigned char **out) | ||
99 | { | ||
100 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &DHparams_it); | ||
101 | } | ||
90 | 102 | ||
91 | DH * | 103 | DH * |
92 | DHparams_dup(DH *dh) | 104 | DHparams_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 | ||
92 | IMPLEMENT_ASN1_ENCODE_FUNCTIONS_const_fname(DSA_SIG, DSA_SIG, DSA_SIG) | 92 | |
93 | DSA_SIG * | ||
94 | d2i_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 | |||
100 | int | ||
101 | i2d_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 */ |
95 | static int | 107 | static 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 | ||
120 | IMPLEMENT_ASN1_ENCODE_FUNCTIONS_const_fname(DSA, DSAPrivateKey, DSAPrivateKey) | 132 | |
133 | DSA * | ||
134 | d2i_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 | |||
140 | int | ||
141 | i2d_DSAPrivateKey(const DSA *a, unsigned char **out) | ||
142 | { | ||
143 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &DSAPrivateKey_it); | ||
144 | } | ||
121 | 145 | ||
122 | ASN1_SEQUENCE_cb(DSAparams, dsa_cb) = { | 146 | ASN1_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 | ||
128 | IMPLEMENT_ASN1_ENCODE_FUNCTIONS_const_fname(DSA, DSAparams, DSAparams) | 152 | |
153 | DSA * | ||
154 | d2i_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 | |||
160 | int | ||
161 | i2d_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 | ||
149 | IMPLEMENT_ASN1_ENCODE_FUNCTIONS_const_fname(DSA, DSAPublicKey, DSAPublicKey) | 185 | |
186 | DSA * | ||
187 | d2i_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 | |||
193 | int | ||
194 | i2d_DSAPublicKey(const DSA *a, unsigned char **out) | ||
195 | { | ||
196 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &DSAPublicKey_it); | ||
197 | } | ||
150 | 198 | ||
151 | DSA * | 199 | DSA * |
152 | DSAparams_dup(DSA *dsa) | 200 | DSAparams_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 | ||
134 | IMPLEMENT_ASN1_ENCODE_FUNCTIONS_const_fname(RSA, RSAPrivateKey, RSAPrivateKey) | ||
135 | 134 | ||
136 | IMPLEMENT_ASN1_ENCODE_FUNCTIONS_const_fname(RSA, RSAPublicKey, RSAPublicKey) | 135 | RSA * |
136 | d2i_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 | |||
142 | int | ||
143 | i2d_RSAPrivateKey(const RSA *a, unsigned char **out) | ||
144 | { | ||
145 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &RSAPrivateKey_it); | ||
146 | } | ||
147 | |||
148 | |||
149 | RSA * | ||
150 | d2i_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 | |||
156 | int | ||
157 | i2d_RSAPublicKey(const RSA *a, unsigned char **out) | ||
158 | { | ||
159 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &RSAPublicKey_it); | ||
160 | } | ||
137 | 161 | ||
138 | RSA * | 162 | RSA * |
139 | RSAPublicKey_dup(RSA *rsa) | 163 | RSAPublicKey_dup(RSA *rsa) |