summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjsing <>2014-06-10 14:14:07 +0000
committerjsing <>2014-06-10 14:14:07 +0000
commiteab708047a937230584142a2714d5293b2c20176 (patch)
treee21d427847fe0052e8aaa1f761714867b6e0e12d
parent4067b1a94cae473804f9b1319a455ac636387cbd (diff)
downloadopenbsd-eab708047a937230584142a2714d5293b2c20176.tar.gz
openbsd-eab708047a937230584142a2714d5293b2c20176.tar.bz2
openbsd-eab708047a937230584142a2714d5293b2c20176.zip
Use C99 initialisers for EVP_MD structs, for clarity, grepability and to
protect from future field reordering/removal. No difference in generated assembly.
-rw-r--r--src/lib/libcrypto/evp/m_dss.c30
-rw-r--r--src/lib/libcrypto/evp/m_dss1.c30
-rw-r--r--src/lib/libcrypto/evp/m_ecdsa.c30
-rw-r--r--src/lib/libcrypto/evp/m_md4.c30
-rw-r--r--src/lib/libcrypto/evp/m_md5.c30
-rw-r--r--src/lib/libcrypto/evp/m_mdc2.c30
-rw-r--r--src/lib/libcrypto/evp/m_null.c28
-rw-r--r--src/lib/libcrypto/evp/m_ripemd.c30
-rw-r--r--src/lib/libcrypto/evp/m_sha.c30
-rw-r--r--src/lib/libcrypto/evp/m_sha1.c150
-rw-r--r--src/lib/libcrypto/evp/m_wp.c28
-rw-r--r--src/lib/libssl/src/crypto/evp/m_dss.c30
-rw-r--r--src/lib/libssl/src/crypto/evp/m_dss1.c30
-rw-r--r--src/lib/libssl/src/crypto/evp/m_ecdsa.c30
-rw-r--r--src/lib/libssl/src/crypto/evp/m_md4.c30
-rw-r--r--src/lib/libssl/src/crypto/evp/m_md5.c30
-rw-r--r--src/lib/libssl/src/crypto/evp/m_mdc2.c30
-rw-r--r--src/lib/libssl/src/crypto/evp/m_null.c28
-rw-r--r--src/lib/libssl/src/crypto/evp/m_ripemd.c30
-rw-r--r--src/lib/libssl/src/crypto/evp/m_sha.c30
-rw-r--r--src/lib/libssl/src/crypto/evp/m_sha1.c150
-rw-r--r--src/lib/libssl/src/crypto/evp/m_wp.c28
22 files changed, 532 insertions, 360 deletions
diff --git a/src/lib/libcrypto/evp/m_dss.c b/src/lib/libcrypto/evp/m_dss.c
index 9066b7b88f..29ac76c401 100644
--- a/src/lib/libcrypto/evp/m_dss.c
+++ b/src/lib/libcrypto/evp/m_dss.c
@@ -86,18 +86,24 @@ final(EVP_MD_CTX *ctx, unsigned char *md)
86} 86}
87 87
88static const EVP_MD dsa_md = { 88static const EVP_MD dsa_md = {
89 NID_dsaWithSHA, 89 .type = NID_dsaWithSHA,
90 NID_dsaWithSHA, 90 .pkey_type = NID_dsaWithSHA,
91 SHA_DIGEST_LENGTH, 91 .md_size = SHA_DIGEST_LENGTH,
92 EVP_MD_FLAG_PKEY_DIGEST, 92 .flags = EVP_MD_FLAG_PKEY_DIGEST,
93 init, 93 .init = init,
94 update, 94 .update = update,
95 final, 95 .final = final,
96 NULL, 96 .copy = NULL,
97 NULL, 97 .cleanup = NULL,
98 EVP_PKEY_DSA_method, 98#ifndef OPENSSL_NO_DSA
99 SHA_CBLOCK, 99 .sign = (evp_sign_method *)DSA_sign,
100 sizeof(EVP_MD *) + sizeof(SHA_CTX), 100 .verify = (evp_verify_method *)DSA_verify,
101 .required_pkey_type = {
102 EVP_PKEY_DSA, EVP_PKEY_DSA2, EVP_PKEY_DSA3, EVP_PKEY_DSA4, 0,
103 },
104#endif
105 .block_size = SHA_CBLOCK,
106 .ctx_size = sizeof(EVP_MD *) + sizeof(SHA_CTX),
101}; 107};
102 108
103const EVP_MD * 109const EVP_MD *
diff --git a/src/lib/libcrypto/evp/m_dss1.c b/src/lib/libcrypto/evp/m_dss1.c
index ec79cd7c8c..1583769142 100644
--- a/src/lib/libcrypto/evp/m_dss1.c
+++ b/src/lib/libcrypto/evp/m_dss1.c
@@ -87,18 +87,24 @@ final(EVP_MD_CTX *ctx, unsigned char *md)
87} 87}
88 88
89static const EVP_MD dss1_md = { 89static const EVP_MD dss1_md = {
90 NID_dsa, 90 .type = NID_dsa,
91 NID_dsaWithSHA1, 91 .pkey_type = NID_dsaWithSHA1,
92 SHA_DIGEST_LENGTH, 92 .md_size = SHA_DIGEST_LENGTH,
93 EVP_MD_FLAG_PKEY_DIGEST, 93 .flags = EVP_MD_FLAG_PKEY_DIGEST,
94 init, 94 .init = init,
95 update, 95 .update = update,
96 final, 96 .final = final,
97 NULL, 97 .copy = NULL,
98 NULL, 98 .cleanup = NULL,
99 EVP_PKEY_DSA_method, 99#ifndef OPENSSL_NO_DSA
100 SHA_CBLOCK, 100 .sign = (evp_sign_method *)DSA_sign,
101 sizeof(EVP_MD *) + sizeof(SHA_CTX), 101 .verify = (evp_verify_method *)DSA_verify,
102 .required_pkey_type = {
103 EVP_PKEY_DSA, EVP_PKEY_DSA2, EVP_PKEY_DSA3, EVP_PKEY_DSA4, 0,
104 },
105#endif
106 .block_size = SHA_CBLOCK,
107 .ctx_size = sizeof(EVP_MD *) + sizeof(SHA_CTX),
102}; 108};
103 109
104const EVP_MD * 110const EVP_MD *
diff --git a/src/lib/libcrypto/evp/m_ecdsa.c b/src/lib/libcrypto/evp/m_ecdsa.c
index a2dc889b86..47ffec1752 100644
--- a/src/lib/libcrypto/evp/m_ecdsa.c
+++ b/src/lib/libcrypto/evp/m_ecdsa.c
@@ -136,18 +136,24 @@ final(EVP_MD_CTX *ctx, unsigned char *md)
136} 136}
137 137
138static const EVP_MD ecdsa_md = { 138static const EVP_MD ecdsa_md = {
139 NID_ecdsa_with_SHA1, 139 .type = NID_ecdsa_with_SHA1,
140 NID_ecdsa_with_SHA1, 140 .pkey_type = NID_ecdsa_with_SHA1,
141 SHA_DIGEST_LENGTH, 141 .md_size = SHA_DIGEST_LENGTH,
142 EVP_MD_FLAG_PKEY_DIGEST, 142 .flags = EVP_MD_FLAG_PKEY_DIGEST,
143 init, 143 .init = init,
144 update, 144 .update = update,
145 final, 145 .final = final,
146 NULL, 146 .copy = NULL,
147 NULL, 147 .cleanup = NULL,
148 EVP_PKEY_ECDSA_method, 148#ifndef OPENSSL_NO_ECDSA
149 SHA_CBLOCK, 149 .sign = (evp_sign_method *)ECDSA_sign,
150 sizeof(EVP_MD *) + sizeof(SHA_CTX), 150 .verify = (evp_verify_method *)ECDSA_verify,
151 .required_pkey_type = {
152 EVP_PKEY_EC, 0, 0, 0,
153 },
154#endif
155 .block_size = SHA_CBLOCK,
156 .ctx_size = sizeof(EVP_MD *) + sizeof(SHA_CTX),
151}; 157};
152 158
153const EVP_MD * 159const EVP_MD *
diff --git a/src/lib/libcrypto/evp/m_md4.c b/src/lib/libcrypto/evp/m_md4.c
index 9d7dda26f3..6f9acd9075 100644
--- a/src/lib/libcrypto/evp/m_md4.c
+++ b/src/lib/libcrypto/evp/m_md4.c
@@ -90,18 +90,24 @@ final(EVP_MD_CTX *ctx, unsigned char *md)
90} 90}
91 91
92static const EVP_MD md4_md = { 92static const EVP_MD md4_md = {
93 NID_md4, 93 .type = NID_md4,
94 NID_md4WithRSAEncryption, 94 .pkey_type = NID_md4WithRSAEncryption,
95 MD4_DIGEST_LENGTH, 95 .md_size = MD4_DIGEST_LENGTH,
96 0, 96 .flags = 0,
97 init, 97 .init = init,
98 update, 98 .update = update,
99 final, 99 .final = final,
100 NULL, 100 .copy = NULL,
101 NULL, 101 .cleanup = NULL,
102 EVP_PKEY_RSA_method, 102#ifndef OPENSSL_NO_RSA
103 MD4_CBLOCK, 103 .sign = (evp_sign_method *)RSA_sign,
104 sizeof(EVP_MD *) + sizeof(MD4_CTX), 104 .verify = (evp_verify_method *)RSA_verify,
105 .required_pkey_type = {
106 EVP_PKEY_RSA, EVP_PKEY_RSA2, 0, 0,
107 },
108#endif
109 .block_size = MD4_CBLOCK,
110 .ctx_size = sizeof(EVP_MD *) + sizeof(MD4_CTX),
105}; 111};
106 112
107const EVP_MD * 113const EVP_MD *
diff --git a/src/lib/libcrypto/evp/m_md5.c b/src/lib/libcrypto/evp/m_md5.c
index 03c78df9e8..d1c4bc1742 100644
--- a/src/lib/libcrypto/evp/m_md5.c
+++ b/src/lib/libcrypto/evp/m_md5.c
@@ -89,18 +89,24 @@ final(EVP_MD_CTX *ctx, unsigned char *md)
89} 89}
90 90
91static const EVP_MD md5_md = { 91static const EVP_MD md5_md = {
92 NID_md5, 92 .type = NID_md5,
93 NID_md5WithRSAEncryption, 93 .pkey_type = NID_md5WithRSAEncryption,
94 MD5_DIGEST_LENGTH, 94 .md_size = MD5_DIGEST_LENGTH,
95 0, 95 .flags = 0,
96 init, 96 .init = init,
97 update, 97 .update = update,
98 final, 98 .final = final,
99 NULL, 99 .copy = NULL,
100 NULL, 100 .cleanup = NULL,
101 EVP_PKEY_RSA_method, 101#ifndef OPENSSL_NO_RSA
102 MD5_CBLOCK, 102 .sign = (evp_sign_method *)RSA_sign,
103 sizeof(EVP_MD *) + sizeof(MD5_CTX), 103 .verify = (evp_verify_method *)RSA_verify,
104 .required_pkey_type = {
105 EVP_PKEY_RSA, EVP_PKEY_RSA2, 0, 0,
106 },
107#endif
108 .block_size = MD5_CBLOCK,
109 .ctx_size = sizeof(EVP_MD *) + sizeof(MD5_CTX),
104}; 110};
105 111
106const EVP_MD * 112const EVP_MD *
diff --git a/src/lib/libcrypto/evp/m_mdc2.c b/src/lib/libcrypto/evp/m_mdc2.c
index 7983ed6acb..7bd6632f46 100644
--- a/src/lib/libcrypto/evp/m_mdc2.c
+++ b/src/lib/libcrypto/evp/m_mdc2.c
@@ -90,18 +90,24 @@ final(EVP_MD_CTX *ctx, unsigned char *md)
90} 90}
91 91
92static const EVP_MD mdc2_md = { 92static const EVP_MD mdc2_md = {
93 NID_mdc2, 93 .type = NID_mdc2,
94 NID_mdc2WithRSA, 94 .pkey_type = NID_mdc2WithRSA,
95 MDC2_DIGEST_LENGTH, 95 .md_size = MDC2_DIGEST_LENGTH,
96 0, 96 .flags = 0,
97 init, 97 .init = init,
98 update, 98 .update = update,
99 final, 99 .final = final,
100 NULL, 100 .copy = NULL,
101 NULL, 101 .cleanup = NULL,
102 EVP_PKEY_RSA_ASN1_OCTET_STRING_method, 102#ifndef OPENSSL_NO_RSA
103 MDC2_BLOCK, 103 .sign = (evp_sign_method *)RSA_sign_ASN1_OCTET_STRING,
104 sizeof(EVP_MD *) + sizeof(MDC2_CTX), 104 .verify = (evp_verify_method *)RSA_verify_ASN1_OCTET_STRING,
105 .required_pkey_type = {
106 EVP_PKEY_RSA, EVP_PKEY_RSA2, 0, 0,
107 },
108#endif
109 .block_size = MDC2_BLOCK,
110 .ctx_size = sizeof(EVP_MD *) + sizeof(MDC2_CTX),
105}; 111};
106 112
107const EVP_MD * 113const EVP_MD *
diff --git a/src/lib/libcrypto/evp/m_null.c b/src/lib/libcrypto/evp/m_null.c
index ad658e7045..ecd0c2f2d6 100644
--- a/src/lib/libcrypto/evp/m_null.c
+++ b/src/lib/libcrypto/evp/m_null.c
@@ -81,18 +81,22 @@ final(EVP_MD_CTX *ctx, unsigned char *md)
81} 81}
82 82
83static const EVP_MD null_md = { 83static const EVP_MD null_md = {
84 NID_undef, 84 .type = NID_undef,
85 NID_undef, 85 .pkey_type = NID_undef,
86 0, 86 .md_size = 0,
87 0, 87 .flags = 0,
88 init, 88 .init = init,
89 update, 89 .update = update,
90 final, 90 .final = final,
91 NULL, 91 .copy = NULL,
92 NULL, 92 .cleanup = NULL,
93 EVP_PKEY_NULL_method, 93 .sign = NULL,
94 0, 94 .verify = NULL,
95 sizeof(EVP_MD *), 95 .required_pkey_type = {
96 0, 0, 0, 0,
97 },
98 .block_size = 0,
99 .ctx_size = sizeof(EVP_MD *),
96}; 100};
97 101
98const EVP_MD * 102const EVP_MD *
diff --git a/src/lib/libcrypto/evp/m_ripemd.c b/src/lib/libcrypto/evp/m_ripemd.c
index 5c48e3a8d6..09568c8615 100644
--- a/src/lib/libcrypto/evp/m_ripemd.c
+++ b/src/lib/libcrypto/evp/m_ripemd.c
@@ -89,18 +89,24 @@ final(EVP_MD_CTX *ctx, unsigned char *md)
89} 89}
90 90
91static const EVP_MD ripemd160_md = { 91static const EVP_MD ripemd160_md = {
92 NID_ripemd160, 92 .type = NID_ripemd160,
93 NID_ripemd160WithRSA, 93 .pkey_type = NID_ripemd160WithRSA,
94 RIPEMD160_DIGEST_LENGTH, 94 .md_size = RIPEMD160_DIGEST_LENGTH,
95 0, 95 .flags = 0,
96 init, 96 .init = init,
97 update, 97 .update = update,
98 final, 98 .final = final,
99 NULL, 99 .copy = NULL,
100 NULL, 100 .cleanup = NULL,
101 EVP_PKEY_RSA_method, 101#ifndef OPENSSL_NO_RSA
102 RIPEMD160_CBLOCK, 102 .sign = (evp_sign_method *)RSA_sign,
103 sizeof(EVP_MD *) + sizeof(RIPEMD160_CTX), 103 .verify = (evp_verify_method *)RSA_verify,
104 .required_pkey_type = {
105 EVP_PKEY_RSA, EVP_PKEY_RSA2, 0, 0,
106 },
107#endif
108 .block_size = RIPEMD160_CBLOCK,
109 .ctx_size = sizeof(EVP_MD *) + sizeof(RIPEMD160_CTX),
104}; 110};
105 111
106const EVP_MD * 112const EVP_MD *
diff --git a/src/lib/libcrypto/evp/m_sha.c b/src/lib/libcrypto/evp/m_sha.c
index 1b82e61c26..238f677a97 100644
--- a/src/lib/libcrypto/evp/m_sha.c
+++ b/src/lib/libcrypto/evp/m_sha.c
@@ -88,18 +88,24 @@ final(EVP_MD_CTX *ctx, unsigned char *md)
88} 88}
89 89
90static const EVP_MD sha_md = { 90static const EVP_MD sha_md = {
91 NID_sha, 91 .type = NID_sha,
92 NID_shaWithRSAEncryption, 92 .pkey_type = NID_shaWithRSAEncryption,
93 SHA_DIGEST_LENGTH, 93 .md_size = SHA_DIGEST_LENGTH,
94 0, 94 .flags = 0,
95 init, 95 .init = init,
96 update, 96 .update = update,
97 final, 97 .final = final,
98 NULL, 98 .copy = NULL,
99 NULL, 99 .cleanup = NULL,
100 EVP_PKEY_RSA_method, 100#ifndef OPENSSL_NO_RSA
101 SHA_CBLOCK, 101 .sign = (evp_sign_method *)RSA_sign,
102 sizeof(EVP_MD *) + sizeof(SHA_CTX), 102 .verify = (evp_verify_method *)RSA_verify,
103 .required_pkey_type = {
104 EVP_PKEY_RSA, EVP_PKEY_RSA2, 0, 0,
105 },
106#endif
107 .block_size = SHA_CBLOCK,
108 .ctx_size = sizeof(EVP_MD *) + sizeof(SHA_CTX),
103}; 109};
104 110
105const EVP_MD * 111const EVP_MD *
diff --git a/src/lib/libcrypto/evp/m_sha1.c b/src/lib/libcrypto/evp/m_sha1.c
index e4af84acd2..9a10e703cc 100644
--- a/src/lib/libcrypto/evp/m_sha1.c
+++ b/src/lib/libcrypto/evp/m_sha1.c
@@ -88,18 +88,24 @@ final(EVP_MD_CTX *ctx, unsigned char *md)
88} 88}
89 89
90static const EVP_MD sha1_md = { 90static const EVP_MD sha1_md = {
91 NID_sha1, 91 .type = NID_sha1,
92 NID_sha1WithRSAEncryption, 92 .pkey_type = NID_sha1WithRSAEncryption,
93 SHA_DIGEST_LENGTH, 93 .md_size = SHA_DIGEST_LENGTH,
94 EVP_MD_FLAG_PKEY_METHOD_SIGNATURE|EVP_MD_FLAG_DIGALGID_ABSENT, 94 .flags = EVP_MD_FLAG_PKEY_METHOD_SIGNATURE|EVP_MD_FLAG_DIGALGID_ABSENT,
95 init, 95 .init = init,
96 update, 96 .update = update,
97 final, 97 .final = final,
98 NULL, 98 .copy = NULL,
99 NULL, 99 .cleanup = NULL,
100 EVP_PKEY_RSA_method, 100#ifndef OPENSSL_NO_RSA
101 SHA_CBLOCK, 101 .sign = (evp_sign_method *)RSA_sign,
102 sizeof(EVP_MD *) + sizeof(SHA_CTX), 102 .verify = (evp_verify_method *)RSA_verify,
103 .required_pkey_type = {
104 EVP_PKEY_RSA, EVP_PKEY_RSA2, 0, 0,
105 },
106#endif
107 .block_size = SHA_CBLOCK,
108 .ctx_size = sizeof(EVP_MD *) + sizeof(SHA_CTX),
103}; 109};
104 110
105const EVP_MD * 111const EVP_MD *
@@ -139,18 +145,24 @@ final256(EVP_MD_CTX *ctx, unsigned char *md)
139} 145}
140 146
141static const EVP_MD sha224_md = { 147static const EVP_MD sha224_md = {
142 NID_sha224, 148 .type = NID_sha224,
143 NID_sha224WithRSAEncryption, 149 .pkey_type = NID_sha224WithRSAEncryption,
144 SHA224_DIGEST_LENGTH, 150 .md_size = SHA224_DIGEST_LENGTH,
145 EVP_MD_FLAG_PKEY_METHOD_SIGNATURE|EVP_MD_FLAG_DIGALGID_ABSENT, 151 .flags = EVP_MD_FLAG_PKEY_METHOD_SIGNATURE|EVP_MD_FLAG_DIGALGID_ABSENT,
146 init224, 152 .init = init224,
147 update256, 153 .update = update256,
148 final256, 154 .final = final256,
149 NULL, 155 .copy = NULL,
150 NULL, 156 .cleanup = NULL,
151 EVP_PKEY_RSA_method, 157#ifndef OPENSSL_NO_RSA
152 SHA256_CBLOCK, 158 .sign = (evp_sign_method *)RSA_sign,
153 sizeof(EVP_MD *) + sizeof(SHA256_CTX), 159 .verify = (evp_verify_method *)RSA_verify,
160 .required_pkey_type = {
161 EVP_PKEY_RSA, EVP_PKEY_RSA2, 0, 0,
162 },
163#endif
164 .block_size = SHA256_CBLOCK,
165 .ctx_size = sizeof(EVP_MD *) + sizeof(SHA256_CTX),
154}; 166};
155 167
156const EVP_MD * 168const EVP_MD *
@@ -160,18 +172,24 @@ EVP_sha224(void)
160} 172}
161 173
162static const EVP_MD sha256_md = { 174static const EVP_MD sha256_md = {
163 NID_sha256, 175 .type = NID_sha256,
164 NID_sha256WithRSAEncryption, 176 .pkey_type = NID_sha256WithRSAEncryption,
165 SHA256_DIGEST_LENGTH, 177 .md_size = SHA256_DIGEST_LENGTH,
166 EVP_MD_FLAG_PKEY_METHOD_SIGNATURE|EVP_MD_FLAG_DIGALGID_ABSENT, 178 .flags = EVP_MD_FLAG_PKEY_METHOD_SIGNATURE|EVP_MD_FLAG_DIGALGID_ABSENT,
167 init256, 179 .init = init256,
168 update256, 180 .update = update256,
169 final256, 181 .final = final256,
170 NULL, 182 .copy = NULL,
171 NULL, 183 .cleanup = NULL,
172 EVP_PKEY_RSA_method, 184#ifndef OPENSSL_NO_RSA
173 SHA256_CBLOCK, 185 .sign = (evp_sign_method *)RSA_sign,
174 sizeof(EVP_MD *) + sizeof(SHA256_CTX), 186 .verify = (evp_verify_method *)RSA_verify,
187 .required_pkey_type = {
188 EVP_PKEY_RSA, EVP_PKEY_RSA2, 0, 0,
189 },
190#endif
191 .block_size = SHA256_CBLOCK,
192 .ctx_size = sizeof(EVP_MD *) + sizeof(SHA256_CTX),
175}; 193};
176 194
177const EVP_MD * 195const EVP_MD *
@@ -207,18 +225,24 @@ final512(EVP_MD_CTX *ctx, unsigned char *md)
207} 225}
208 226
209static const EVP_MD sha384_md = { 227static const EVP_MD sha384_md = {
210 NID_sha384, 228 .type = NID_sha384,
211 NID_sha384WithRSAEncryption, 229 .pkey_type = NID_sha384WithRSAEncryption,
212 SHA384_DIGEST_LENGTH, 230 .md_size = SHA384_DIGEST_LENGTH,
213 EVP_MD_FLAG_PKEY_METHOD_SIGNATURE|EVP_MD_FLAG_DIGALGID_ABSENT, 231 .flags = EVP_MD_FLAG_PKEY_METHOD_SIGNATURE|EVP_MD_FLAG_DIGALGID_ABSENT,
214 init384, 232 .init = init384,
215 update512, 233 .update = update512,
216 final512, 234 .final = final512,
217 NULL, 235 .copy = NULL,
218 NULL, 236 .cleanup = NULL,
219 EVP_PKEY_RSA_method, 237#ifndef OPENSSL_NO_RSA
220 SHA512_CBLOCK, 238 .sign = (evp_sign_method *)RSA_sign,
221 sizeof(EVP_MD *) + sizeof(SHA512_CTX), 239 .verify = (evp_verify_method *)RSA_verify,
240 .required_pkey_type = {
241 EVP_PKEY_RSA, EVP_PKEY_RSA2, 0, 0,
242 },
243#endif
244 .block_size = SHA512_CBLOCK,
245 .ctx_size = sizeof(EVP_MD *) + sizeof(SHA512_CTX),
222}; 246};
223 247
224const EVP_MD * 248const EVP_MD *
@@ -228,18 +252,24 @@ EVP_sha384(void)
228} 252}
229 253
230static const EVP_MD sha512_md = { 254static const EVP_MD sha512_md = {
231 NID_sha512, 255 .type = NID_sha512,
232 NID_sha512WithRSAEncryption, 256 .pkey_type = NID_sha512WithRSAEncryption,
233 SHA512_DIGEST_LENGTH, 257 .md_size = SHA512_DIGEST_LENGTH,
234 EVP_MD_FLAG_PKEY_METHOD_SIGNATURE|EVP_MD_FLAG_DIGALGID_ABSENT, 258 .flags = EVP_MD_FLAG_PKEY_METHOD_SIGNATURE|EVP_MD_FLAG_DIGALGID_ABSENT,
235 init512, 259 .init = init512,
236 update512, 260 .update = update512,
237 final512, 261 .final = final512,
238 NULL, 262 .copy = NULL,
239 NULL, 263 .cleanup = NULL,
240 EVP_PKEY_RSA_method, 264#ifndef OPENSSL_NO_RSA
241 SHA512_CBLOCK, 265 .sign = (evp_sign_method *)RSA_sign,
242 sizeof(EVP_MD *) + sizeof(SHA512_CTX), 266 .verify = (evp_verify_method *)RSA_verify,
267 .required_pkey_type = {
268 EVP_PKEY_RSA, EVP_PKEY_RSA2, 0, 0,
269 },
270#endif
271 .block_size = SHA512_CBLOCK,
272 .ctx_size = sizeof(EVP_MD *) + sizeof(SHA512_CTX),
243}; 273};
244 274
245const EVP_MD * 275const EVP_MD *
diff --git a/src/lib/libcrypto/evp/m_wp.c b/src/lib/libcrypto/evp/m_wp.c
index ca53be6abb..27a0e8ab65 100644
--- a/src/lib/libcrypto/evp/m_wp.c
+++ b/src/lib/libcrypto/evp/m_wp.c
@@ -30,18 +30,22 @@ final(EVP_MD_CTX *ctx, unsigned char *md)
30} 30}
31 31
32static const EVP_MD whirlpool_md = { 32static const EVP_MD whirlpool_md = {
33 NID_whirlpool, 33 .type = NID_whirlpool,
34 0, 34 .pkey_type = 0,
35 WHIRLPOOL_DIGEST_LENGTH, 35 .md_size = WHIRLPOOL_DIGEST_LENGTH,
36 0, 36 .flags = 0,
37 init, 37 .init = init,
38 update, 38 .update = update,
39 final, 39 .final = final,
40 NULL, 40 .copy = NULL,
41 NULL, 41 .cleanup = NULL,
42 EVP_PKEY_NULL_method, 42 .sign = NULL,
43 WHIRLPOOL_BBLOCK/8, 43 .verify = NULL,
44 sizeof(EVP_MD *) + sizeof(WHIRLPOOL_CTX), 44 .required_pkey_type = {
45 0, 0, 0, 0,
46 },
47 .block_size = WHIRLPOOL_BBLOCK / 8,
48 .ctx_size = sizeof(EVP_MD *) + sizeof(WHIRLPOOL_CTX),
45}; 49};
46 50
47const EVP_MD * 51const EVP_MD *
diff --git a/src/lib/libssl/src/crypto/evp/m_dss.c b/src/lib/libssl/src/crypto/evp/m_dss.c
index 9066b7b88f..29ac76c401 100644
--- a/src/lib/libssl/src/crypto/evp/m_dss.c
+++ b/src/lib/libssl/src/crypto/evp/m_dss.c
@@ -86,18 +86,24 @@ final(EVP_MD_CTX *ctx, unsigned char *md)
86} 86}
87 87
88static const EVP_MD dsa_md = { 88static const EVP_MD dsa_md = {
89 NID_dsaWithSHA, 89 .type = NID_dsaWithSHA,
90 NID_dsaWithSHA, 90 .pkey_type = NID_dsaWithSHA,
91 SHA_DIGEST_LENGTH, 91 .md_size = SHA_DIGEST_LENGTH,
92 EVP_MD_FLAG_PKEY_DIGEST, 92 .flags = EVP_MD_FLAG_PKEY_DIGEST,
93 init, 93 .init = init,
94 update, 94 .update = update,
95 final, 95 .final = final,
96 NULL, 96 .copy = NULL,
97 NULL, 97 .cleanup = NULL,
98 EVP_PKEY_DSA_method, 98#ifndef OPENSSL_NO_DSA
99 SHA_CBLOCK, 99 .sign = (evp_sign_method *)DSA_sign,
100 sizeof(EVP_MD *) + sizeof(SHA_CTX), 100 .verify = (evp_verify_method *)DSA_verify,
101 .required_pkey_type = {
102 EVP_PKEY_DSA, EVP_PKEY_DSA2, EVP_PKEY_DSA3, EVP_PKEY_DSA4, 0,
103 },
104#endif
105 .block_size = SHA_CBLOCK,
106 .ctx_size = sizeof(EVP_MD *) + sizeof(SHA_CTX),
101}; 107};
102 108
103const EVP_MD * 109const EVP_MD *
diff --git a/src/lib/libssl/src/crypto/evp/m_dss1.c b/src/lib/libssl/src/crypto/evp/m_dss1.c
index ec79cd7c8c..1583769142 100644
--- a/src/lib/libssl/src/crypto/evp/m_dss1.c
+++ b/src/lib/libssl/src/crypto/evp/m_dss1.c
@@ -87,18 +87,24 @@ final(EVP_MD_CTX *ctx, unsigned char *md)
87} 87}
88 88
89static const EVP_MD dss1_md = { 89static const EVP_MD dss1_md = {
90 NID_dsa, 90 .type = NID_dsa,
91 NID_dsaWithSHA1, 91 .pkey_type = NID_dsaWithSHA1,
92 SHA_DIGEST_LENGTH, 92 .md_size = SHA_DIGEST_LENGTH,
93 EVP_MD_FLAG_PKEY_DIGEST, 93 .flags = EVP_MD_FLAG_PKEY_DIGEST,
94 init, 94 .init = init,
95 update, 95 .update = update,
96 final, 96 .final = final,
97 NULL, 97 .copy = NULL,
98 NULL, 98 .cleanup = NULL,
99 EVP_PKEY_DSA_method, 99#ifndef OPENSSL_NO_DSA
100 SHA_CBLOCK, 100 .sign = (evp_sign_method *)DSA_sign,
101 sizeof(EVP_MD *) + sizeof(SHA_CTX), 101 .verify = (evp_verify_method *)DSA_verify,
102 .required_pkey_type = {
103 EVP_PKEY_DSA, EVP_PKEY_DSA2, EVP_PKEY_DSA3, EVP_PKEY_DSA4, 0,
104 },
105#endif
106 .block_size = SHA_CBLOCK,
107 .ctx_size = sizeof(EVP_MD *) + sizeof(SHA_CTX),
102}; 108};
103 109
104const EVP_MD * 110const EVP_MD *
diff --git a/src/lib/libssl/src/crypto/evp/m_ecdsa.c b/src/lib/libssl/src/crypto/evp/m_ecdsa.c
index a2dc889b86..47ffec1752 100644
--- a/src/lib/libssl/src/crypto/evp/m_ecdsa.c
+++ b/src/lib/libssl/src/crypto/evp/m_ecdsa.c
@@ -136,18 +136,24 @@ final(EVP_MD_CTX *ctx, unsigned char *md)
136} 136}
137 137
138static const EVP_MD ecdsa_md = { 138static const EVP_MD ecdsa_md = {
139 NID_ecdsa_with_SHA1, 139 .type = NID_ecdsa_with_SHA1,
140 NID_ecdsa_with_SHA1, 140 .pkey_type = NID_ecdsa_with_SHA1,
141 SHA_DIGEST_LENGTH, 141 .md_size = SHA_DIGEST_LENGTH,
142 EVP_MD_FLAG_PKEY_DIGEST, 142 .flags = EVP_MD_FLAG_PKEY_DIGEST,
143 init, 143 .init = init,
144 update, 144 .update = update,
145 final, 145 .final = final,
146 NULL, 146 .copy = NULL,
147 NULL, 147 .cleanup = NULL,
148 EVP_PKEY_ECDSA_method, 148#ifndef OPENSSL_NO_ECDSA
149 SHA_CBLOCK, 149 .sign = (evp_sign_method *)ECDSA_sign,
150 sizeof(EVP_MD *) + sizeof(SHA_CTX), 150 .verify = (evp_verify_method *)ECDSA_verify,
151 .required_pkey_type = {
152 EVP_PKEY_EC, 0, 0, 0,
153 },
154#endif
155 .block_size = SHA_CBLOCK,
156 .ctx_size = sizeof(EVP_MD *) + sizeof(SHA_CTX),
151}; 157};
152 158
153const EVP_MD * 159const EVP_MD *
diff --git a/src/lib/libssl/src/crypto/evp/m_md4.c b/src/lib/libssl/src/crypto/evp/m_md4.c
index 9d7dda26f3..6f9acd9075 100644
--- a/src/lib/libssl/src/crypto/evp/m_md4.c
+++ b/src/lib/libssl/src/crypto/evp/m_md4.c
@@ -90,18 +90,24 @@ final(EVP_MD_CTX *ctx, unsigned char *md)
90} 90}
91 91
92static const EVP_MD md4_md = { 92static const EVP_MD md4_md = {
93 NID_md4, 93 .type = NID_md4,
94 NID_md4WithRSAEncryption, 94 .pkey_type = NID_md4WithRSAEncryption,
95 MD4_DIGEST_LENGTH, 95 .md_size = MD4_DIGEST_LENGTH,
96 0, 96 .flags = 0,
97 init, 97 .init = init,
98 update, 98 .update = update,
99 final, 99 .final = final,
100 NULL, 100 .copy = NULL,
101 NULL, 101 .cleanup = NULL,
102 EVP_PKEY_RSA_method, 102#ifndef OPENSSL_NO_RSA
103 MD4_CBLOCK, 103 .sign = (evp_sign_method *)RSA_sign,
104 sizeof(EVP_MD *) + sizeof(MD4_CTX), 104 .verify = (evp_verify_method *)RSA_verify,
105 .required_pkey_type = {
106 EVP_PKEY_RSA, EVP_PKEY_RSA2, 0, 0,
107 },
108#endif
109 .block_size = MD4_CBLOCK,
110 .ctx_size = sizeof(EVP_MD *) + sizeof(MD4_CTX),
105}; 111};
106 112
107const EVP_MD * 113const EVP_MD *
diff --git a/src/lib/libssl/src/crypto/evp/m_md5.c b/src/lib/libssl/src/crypto/evp/m_md5.c
index 03c78df9e8..d1c4bc1742 100644
--- a/src/lib/libssl/src/crypto/evp/m_md5.c
+++ b/src/lib/libssl/src/crypto/evp/m_md5.c
@@ -89,18 +89,24 @@ final(EVP_MD_CTX *ctx, unsigned char *md)
89} 89}
90 90
91static const EVP_MD md5_md = { 91static const EVP_MD md5_md = {
92 NID_md5, 92 .type = NID_md5,
93 NID_md5WithRSAEncryption, 93 .pkey_type = NID_md5WithRSAEncryption,
94 MD5_DIGEST_LENGTH, 94 .md_size = MD5_DIGEST_LENGTH,
95 0, 95 .flags = 0,
96 init, 96 .init = init,
97 update, 97 .update = update,
98 final, 98 .final = final,
99 NULL, 99 .copy = NULL,
100 NULL, 100 .cleanup = NULL,
101 EVP_PKEY_RSA_method, 101#ifndef OPENSSL_NO_RSA
102 MD5_CBLOCK, 102 .sign = (evp_sign_method *)RSA_sign,
103 sizeof(EVP_MD *) + sizeof(MD5_CTX), 103 .verify = (evp_verify_method *)RSA_verify,
104 .required_pkey_type = {
105 EVP_PKEY_RSA, EVP_PKEY_RSA2, 0, 0,
106 },
107#endif
108 .block_size = MD5_CBLOCK,
109 .ctx_size = sizeof(EVP_MD *) + sizeof(MD5_CTX),
104}; 110};
105 111
106const EVP_MD * 112const EVP_MD *
diff --git a/src/lib/libssl/src/crypto/evp/m_mdc2.c b/src/lib/libssl/src/crypto/evp/m_mdc2.c
index 7983ed6acb..7bd6632f46 100644
--- a/src/lib/libssl/src/crypto/evp/m_mdc2.c
+++ b/src/lib/libssl/src/crypto/evp/m_mdc2.c
@@ -90,18 +90,24 @@ final(EVP_MD_CTX *ctx, unsigned char *md)
90} 90}
91 91
92static const EVP_MD mdc2_md = { 92static const EVP_MD mdc2_md = {
93 NID_mdc2, 93 .type = NID_mdc2,
94 NID_mdc2WithRSA, 94 .pkey_type = NID_mdc2WithRSA,
95 MDC2_DIGEST_LENGTH, 95 .md_size = MDC2_DIGEST_LENGTH,
96 0, 96 .flags = 0,
97 init, 97 .init = init,
98 update, 98 .update = update,
99 final, 99 .final = final,
100 NULL, 100 .copy = NULL,
101 NULL, 101 .cleanup = NULL,
102 EVP_PKEY_RSA_ASN1_OCTET_STRING_method, 102#ifndef OPENSSL_NO_RSA
103 MDC2_BLOCK, 103 .sign = (evp_sign_method *)RSA_sign_ASN1_OCTET_STRING,
104 sizeof(EVP_MD *) + sizeof(MDC2_CTX), 104 .verify = (evp_verify_method *)RSA_verify_ASN1_OCTET_STRING,
105 .required_pkey_type = {
106 EVP_PKEY_RSA, EVP_PKEY_RSA2, 0, 0,
107 },
108#endif
109 .block_size = MDC2_BLOCK,
110 .ctx_size = sizeof(EVP_MD *) + sizeof(MDC2_CTX),
105}; 111};
106 112
107const EVP_MD * 113const EVP_MD *
diff --git a/src/lib/libssl/src/crypto/evp/m_null.c b/src/lib/libssl/src/crypto/evp/m_null.c
index ad658e7045..ecd0c2f2d6 100644
--- a/src/lib/libssl/src/crypto/evp/m_null.c
+++ b/src/lib/libssl/src/crypto/evp/m_null.c
@@ -81,18 +81,22 @@ final(EVP_MD_CTX *ctx, unsigned char *md)
81} 81}
82 82
83static const EVP_MD null_md = { 83static const EVP_MD null_md = {
84 NID_undef, 84 .type = NID_undef,
85 NID_undef, 85 .pkey_type = NID_undef,
86 0, 86 .md_size = 0,
87 0, 87 .flags = 0,
88 init, 88 .init = init,
89 update, 89 .update = update,
90 final, 90 .final = final,
91 NULL, 91 .copy = NULL,
92 NULL, 92 .cleanup = NULL,
93 EVP_PKEY_NULL_method, 93 .sign = NULL,
94 0, 94 .verify = NULL,
95 sizeof(EVP_MD *), 95 .required_pkey_type = {
96 0, 0, 0, 0,
97 },
98 .block_size = 0,
99 .ctx_size = sizeof(EVP_MD *),
96}; 100};
97 101
98const EVP_MD * 102const EVP_MD *
diff --git a/src/lib/libssl/src/crypto/evp/m_ripemd.c b/src/lib/libssl/src/crypto/evp/m_ripemd.c
index 5c48e3a8d6..09568c8615 100644
--- a/src/lib/libssl/src/crypto/evp/m_ripemd.c
+++ b/src/lib/libssl/src/crypto/evp/m_ripemd.c
@@ -89,18 +89,24 @@ final(EVP_MD_CTX *ctx, unsigned char *md)
89} 89}
90 90
91static const EVP_MD ripemd160_md = { 91static const EVP_MD ripemd160_md = {
92 NID_ripemd160, 92 .type = NID_ripemd160,
93 NID_ripemd160WithRSA, 93 .pkey_type = NID_ripemd160WithRSA,
94 RIPEMD160_DIGEST_LENGTH, 94 .md_size = RIPEMD160_DIGEST_LENGTH,
95 0, 95 .flags = 0,
96 init, 96 .init = init,
97 update, 97 .update = update,
98 final, 98 .final = final,
99 NULL, 99 .copy = NULL,
100 NULL, 100 .cleanup = NULL,
101 EVP_PKEY_RSA_method, 101#ifndef OPENSSL_NO_RSA
102 RIPEMD160_CBLOCK, 102 .sign = (evp_sign_method *)RSA_sign,
103 sizeof(EVP_MD *) + sizeof(RIPEMD160_CTX), 103 .verify = (evp_verify_method *)RSA_verify,
104 .required_pkey_type = {
105 EVP_PKEY_RSA, EVP_PKEY_RSA2, 0, 0,
106 },
107#endif
108 .block_size = RIPEMD160_CBLOCK,
109 .ctx_size = sizeof(EVP_MD *) + sizeof(RIPEMD160_CTX),
104}; 110};
105 111
106const EVP_MD * 112const EVP_MD *
diff --git a/src/lib/libssl/src/crypto/evp/m_sha.c b/src/lib/libssl/src/crypto/evp/m_sha.c
index 1b82e61c26..238f677a97 100644
--- a/src/lib/libssl/src/crypto/evp/m_sha.c
+++ b/src/lib/libssl/src/crypto/evp/m_sha.c
@@ -88,18 +88,24 @@ final(EVP_MD_CTX *ctx, unsigned char *md)
88} 88}
89 89
90static const EVP_MD sha_md = { 90static const EVP_MD sha_md = {
91 NID_sha, 91 .type = NID_sha,
92 NID_shaWithRSAEncryption, 92 .pkey_type = NID_shaWithRSAEncryption,
93 SHA_DIGEST_LENGTH, 93 .md_size = SHA_DIGEST_LENGTH,
94 0, 94 .flags = 0,
95 init, 95 .init = init,
96 update, 96 .update = update,
97 final, 97 .final = final,
98 NULL, 98 .copy = NULL,
99 NULL, 99 .cleanup = NULL,
100 EVP_PKEY_RSA_method, 100#ifndef OPENSSL_NO_RSA
101 SHA_CBLOCK, 101 .sign = (evp_sign_method *)RSA_sign,
102 sizeof(EVP_MD *) + sizeof(SHA_CTX), 102 .verify = (evp_verify_method *)RSA_verify,
103 .required_pkey_type = {
104 EVP_PKEY_RSA, EVP_PKEY_RSA2, 0, 0,
105 },
106#endif
107 .block_size = SHA_CBLOCK,
108 .ctx_size = sizeof(EVP_MD *) + sizeof(SHA_CTX),
103}; 109};
104 110
105const EVP_MD * 111const EVP_MD *
diff --git a/src/lib/libssl/src/crypto/evp/m_sha1.c b/src/lib/libssl/src/crypto/evp/m_sha1.c
index e4af84acd2..9a10e703cc 100644
--- a/src/lib/libssl/src/crypto/evp/m_sha1.c
+++ b/src/lib/libssl/src/crypto/evp/m_sha1.c
@@ -88,18 +88,24 @@ final(EVP_MD_CTX *ctx, unsigned char *md)
88} 88}
89 89
90static const EVP_MD sha1_md = { 90static const EVP_MD sha1_md = {
91 NID_sha1, 91 .type = NID_sha1,
92 NID_sha1WithRSAEncryption, 92 .pkey_type = NID_sha1WithRSAEncryption,
93 SHA_DIGEST_LENGTH, 93 .md_size = SHA_DIGEST_LENGTH,
94 EVP_MD_FLAG_PKEY_METHOD_SIGNATURE|EVP_MD_FLAG_DIGALGID_ABSENT, 94 .flags = EVP_MD_FLAG_PKEY_METHOD_SIGNATURE|EVP_MD_FLAG_DIGALGID_ABSENT,
95 init, 95 .init = init,
96 update, 96 .update = update,
97 final, 97 .final = final,
98 NULL, 98 .copy = NULL,
99 NULL, 99 .cleanup = NULL,
100 EVP_PKEY_RSA_method, 100#ifndef OPENSSL_NO_RSA
101 SHA_CBLOCK, 101 .sign = (evp_sign_method *)RSA_sign,
102 sizeof(EVP_MD *) + sizeof(SHA_CTX), 102 .verify = (evp_verify_method *)RSA_verify,
103 .required_pkey_type = {
104 EVP_PKEY_RSA, EVP_PKEY_RSA2, 0, 0,
105 },
106#endif
107 .block_size = SHA_CBLOCK,
108 .ctx_size = sizeof(EVP_MD *) + sizeof(SHA_CTX),
103}; 109};
104 110
105const EVP_MD * 111const EVP_MD *
@@ -139,18 +145,24 @@ final256(EVP_MD_CTX *ctx, unsigned char *md)
139} 145}
140 146
141static const EVP_MD sha224_md = { 147static const EVP_MD sha224_md = {
142 NID_sha224, 148 .type = NID_sha224,
143 NID_sha224WithRSAEncryption, 149 .pkey_type = NID_sha224WithRSAEncryption,
144 SHA224_DIGEST_LENGTH, 150 .md_size = SHA224_DIGEST_LENGTH,
145 EVP_MD_FLAG_PKEY_METHOD_SIGNATURE|EVP_MD_FLAG_DIGALGID_ABSENT, 151 .flags = EVP_MD_FLAG_PKEY_METHOD_SIGNATURE|EVP_MD_FLAG_DIGALGID_ABSENT,
146 init224, 152 .init = init224,
147 update256, 153 .update = update256,
148 final256, 154 .final = final256,
149 NULL, 155 .copy = NULL,
150 NULL, 156 .cleanup = NULL,
151 EVP_PKEY_RSA_method, 157#ifndef OPENSSL_NO_RSA
152 SHA256_CBLOCK, 158 .sign = (evp_sign_method *)RSA_sign,
153 sizeof(EVP_MD *) + sizeof(SHA256_CTX), 159 .verify = (evp_verify_method *)RSA_verify,
160 .required_pkey_type = {
161 EVP_PKEY_RSA, EVP_PKEY_RSA2, 0, 0,
162 },
163#endif
164 .block_size = SHA256_CBLOCK,
165 .ctx_size = sizeof(EVP_MD *) + sizeof(SHA256_CTX),
154}; 166};
155 167
156const EVP_MD * 168const EVP_MD *
@@ -160,18 +172,24 @@ EVP_sha224(void)
160} 172}
161 173
162static const EVP_MD sha256_md = { 174static const EVP_MD sha256_md = {
163 NID_sha256, 175 .type = NID_sha256,
164 NID_sha256WithRSAEncryption, 176 .pkey_type = NID_sha256WithRSAEncryption,
165 SHA256_DIGEST_LENGTH, 177 .md_size = SHA256_DIGEST_LENGTH,
166 EVP_MD_FLAG_PKEY_METHOD_SIGNATURE|EVP_MD_FLAG_DIGALGID_ABSENT, 178 .flags = EVP_MD_FLAG_PKEY_METHOD_SIGNATURE|EVP_MD_FLAG_DIGALGID_ABSENT,
167 init256, 179 .init = init256,
168 update256, 180 .update = update256,
169 final256, 181 .final = final256,
170 NULL, 182 .copy = NULL,
171 NULL, 183 .cleanup = NULL,
172 EVP_PKEY_RSA_method, 184#ifndef OPENSSL_NO_RSA
173 SHA256_CBLOCK, 185 .sign = (evp_sign_method *)RSA_sign,
174 sizeof(EVP_MD *) + sizeof(SHA256_CTX), 186 .verify = (evp_verify_method *)RSA_verify,
187 .required_pkey_type = {
188 EVP_PKEY_RSA, EVP_PKEY_RSA2, 0, 0,
189 },
190#endif
191 .block_size = SHA256_CBLOCK,
192 .ctx_size = sizeof(EVP_MD *) + sizeof(SHA256_CTX),
175}; 193};
176 194
177const EVP_MD * 195const EVP_MD *
@@ -207,18 +225,24 @@ final512(EVP_MD_CTX *ctx, unsigned char *md)
207} 225}
208 226
209static const EVP_MD sha384_md = { 227static const EVP_MD sha384_md = {
210 NID_sha384, 228 .type = NID_sha384,
211 NID_sha384WithRSAEncryption, 229 .pkey_type = NID_sha384WithRSAEncryption,
212 SHA384_DIGEST_LENGTH, 230 .md_size = SHA384_DIGEST_LENGTH,
213 EVP_MD_FLAG_PKEY_METHOD_SIGNATURE|EVP_MD_FLAG_DIGALGID_ABSENT, 231 .flags = EVP_MD_FLAG_PKEY_METHOD_SIGNATURE|EVP_MD_FLAG_DIGALGID_ABSENT,
214 init384, 232 .init = init384,
215 update512, 233 .update = update512,
216 final512, 234 .final = final512,
217 NULL, 235 .copy = NULL,
218 NULL, 236 .cleanup = NULL,
219 EVP_PKEY_RSA_method, 237#ifndef OPENSSL_NO_RSA
220 SHA512_CBLOCK, 238 .sign = (evp_sign_method *)RSA_sign,
221 sizeof(EVP_MD *) + sizeof(SHA512_CTX), 239 .verify = (evp_verify_method *)RSA_verify,
240 .required_pkey_type = {
241 EVP_PKEY_RSA, EVP_PKEY_RSA2, 0, 0,
242 },
243#endif
244 .block_size = SHA512_CBLOCK,
245 .ctx_size = sizeof(EVP_MD *) + sizeof(SHA512_CTX),
222}; 246};
223 247
224const EVP_MD * 248const EVP_MD *
@@ -228,18 +252,24 @@ EVP_sha384(void)
228} 252}
229 253
230static const EVP_MD sha512_md = { 254static const EVP_MD sha512_md = {
231 NID_sha512, 255 .type = NID_sha512,
232 NID_sha512WithRSAEncryption, 256 .pkey_type = NID_sha512WithRSAEncryption,
233 SHA512_DIGEST_LENGTH, 257 .md_size = SHA512_DIGEST_LENGTH,
234 EVP_MD_FLAG_PKEY_METHOD_SIGNATURE|EVP_MD_FLAG_DIGALGID_ABSENT, 258 .flags = EVP_MD_FLAG_PKEY_METHOD_SIGNATURE|EVP_MD_FLAG_DIGALGID_ABSENT,
235 init512, 259 .init = init512,
236 update512, 260 .update = update512,
237 final512, 261 .final = final512,
238 NULL, 262 .copy = NULL,
239 NULL, 263 .cleanup = NULL,
240 EVP_PKEY_RSA_method, 264#ifndef OPENSSL_NO_RSA
241 SHA512_CBLOCK, 265 .sign = (evp_sign_method *)RSA_sign,
242 sizeof(EVP_MD *) + sizeof(SHA512_CTX), 266 .verify = (evp_verify_method *)RSA_verify,
267 .required_pkey_type = {
268 EVP_PKEY_RSA, EVP_PKEY_RSA2, 0, 0,
269 },
270#endif
271 .block_size = SHA512_CBLOCK,
272 .ctx_size = sizeof(EVP_MD *) + sizeof(SHA512_CTX),
243}; 273};
244 274
245const EVP_MD * 275const EVP_MD *
diff --git a/src/lib/libssl/src/crypto/evp/m_wp.c b/src/lib/libssl/src/crypto/evp/m_wp.c
index ca53be6abb..27a0e8ab65 100644
--- a/src/lib/libssl/src/crypto/evp/m_wp.c
+++ b/src/lib/libssl/src/crypto/evp/m_wp.c
@@ -30,18 +30,22 @@ final(EVP_MD_CTX *ctx, unsigned char *md)
30} 30}
31 31
32static const EVP_MD whirlpool_md = { 32static const EVP_MD whirlpool_md = {
33 NID_whirlpool, 33 .type = NID_whirlpool,
34 0, 34 .pkey_type = 0,
35 WHIRLPOOL_DIGEST_LENGTH, 35 .md_size = WHIRLPOOL_DIGEST_LENGTH,
36 0, 36 .flags = 0,
37 init, 37 .init = init,
38 update, 38 .update = update,
39 final, 39 .final = final,
40 NULL, 40 .copy = NULL,
41 NULL, 41 .cleanup = NULL,
42 EVP_PKEY_NULL_method, 42 .sign = NULL,
43 WHIRLPOOL_BBLOCK/8, 43 .verify = NULL,
44 sizeof(EVP_MD *) + sizeof(WHIRLPOOL_CTX), 44 .required_pkey_type = {
45 0, 0, 0, 0,
46 },
47 .block_size = WHIRLPOOL_BBLOCK / 8,
48 .ctx_size = sizeof(EVP_MD *) + sizeof(WHIRLPOOL_CTX),
45}; 49};
46 50
47const EVP_MD * 51const EVP_MD *