diff options
| author | tb <> | 2023-04-25 15:48:48 +0000 |
|---|---|---|
| committer | tb <> | 2023-04-25 15:48:48 +0000 |
| commit | aa06ff6ff84baafcac76b48d7a0dcd4f9d00d7d2 (patch) | |
| tree | 8fc6489b768abe5eb7eafc75ed8631756451a226 /src | |
| parent | 9670fcb7ce8b0f516e7924baa6167b992630dc77 (diff) | |
| download | openbsd-aa06ff6ff84baafcac76b48d7a0dcd4f9d00d7d2.tar.gz openbsd-aa06ff6ff84baafcac76b48d7a0dcd4f9d00d7d2.tar.bz2 openbsd-aa06ff6ff84baafcac76b48d7a0dcd4f9d00d7d2.zip | |
Wire up truncated SHA-2, SHA-3 and related things
from jsing
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/libcrypto/dsa/dsa_pmeth.c | 7 | ||||
| -rw-r--r-- | src/lib/libcrypto/ec/ec_pmeth.c | 9 | ||||
| -rw-r--r-- | src/lib/libcrypto/evp/c_all.c | 10 | ||||
| -rw-r--r-- | src/lib/libcrypto/hmac/hmac.h | 4 | ||||
| -rw-r--r-- | src/lib/libcrypto/rsa/rsa_pmeth.c | 9 |
5 files changed, 32 insertions, 7 deletions
diff --git a/src/lib/libcrypto/dsa/dsa_pmeth.c b/src/lib/libcrypto/dsa/dsa_pmeth.c index 66f4ddbe38..9b03a2fc3a 100644 --- a/src/lib/libcrypto/dsa/dsa_pmeth.c +++ b/src/lib/libcrypto/dsa/dsa_pmeth.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: dsa_pmeth.c,v 1.16 2022/11/26 16:08:52 tb Exp $ */ | 1 | /* $OpenBSD: dsa_pmeth.c,v 1.17 2023/04/25 15:48:48 tb 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 2006. | 3 | * project 2006. |
| 4 | */ | 4 | */ |
| @@ -203,6 +203,7 @@ pkey_dsa_ctrl(EVP_PKEY_CTX *ctx, int type, int p1, void *p2) | |||
| 203 | return 1; | 203 | return 1; |
| 204 | 204 | ||
| 205 | case EVP_PKEY_CTRL_MD: | 205 | case EVP_PKEY_CTRL_MD: |
| 206 | /* ANSI X9.57 and NIST CSOR. */ | ||
| 206 | switch (EVP_MD_type((const EVP_MD *)p2)) { | 207 | switch (EVP_MD_type((const EVP_MD *)p2)) { |
| 207 | case NID_sha1: | 208 | case NID_sha1: |
| 208 | case NID_dsa: | 209 | case NID_dsa: |
| @@ -211,6 +212,10 @@ pkey_dsa_ctrl(EVP_PKEY_CTX *ctx, int type, int p1, void *p2) | |||
| 211 | case NID_sha256: | 212 | case NID_sha256: |
| 212 | case NID_sha384: | 213 | case NID_sha384: |
| 213 | case NID_sha512: | 214 | case NID_sha512: |
| 215 | case NID_sha3_224: | ||
| 216 | case NID_sha3_256: | ||
| 217 | case NID_sha3_384: | ||
| 218 | case NID_sha3_512: | ||
| 214 | break; | 219 | break; |
| 215 | default: | 220 | default: |
| 216 | DSAerror(DSA_R_INVALID_DIGEST_TYPE); | 221 | DSAerror(DSA_R_INVALID_DIGEST_TYPE); |
diff --git a/src/lib/libcrypto/ec/ec_pmeth.c b/src/lib/libcrypto/ec/ec_pmeth.c index 9582224037..d1bb52d9ed 100644 --- a/src/lib/libcrypto/ec/ec_pmeth.c +++ b/src/lib/libcrypto/ec/ec_pmeth.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: ec_pmeth.c,v 1.16 2022/11/26 16:08:52 tb Exp $ */ | 1 | /* $OpenBSD: ec_pmeth.c,v 1.17 2023/04/25 15:48:48 tb 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 2006. | 3 | * project 2006. |
| 4 | */ | 4 | */ |
| @@ -381,12 +381,17 @@ pkey_ec_ctrl(EVP_PKEY_CTX *ctx, int type, int p1, void *p2) | |||
| 381 | return dctx->kdf_ukmlen; | 381 | return dctx->kdf_ukmlen; |
| 382 | 382 | ||
| 383 | case EVP_PKEY_CTRL_MD: | 383 | case EVP_PKEY_CTRL_MD: |
| 384 | /* RFC 3279, RFC 5758 and NIST CSOR. */ | ||
| 384 | if (EVP_MD_type((const EVP_MD *) p2) != NID_sha1 && | 385 | if (EVP_MD_type((const EVP_MD *) p2) != NID_sha1 && |
| 385 | EVP_MD_type((const EVP_MD *) p2) != NID_ecdsa_with_SHA1 && | 386 | EVP_MD_type((const EVP_MD *) p2) != NID_ecdsa_with_SHA1 && |
| 386 | EVP_MD_type((const EVP_MD *) p2) != NID_sha224 && | 387 | EVP_MD_type((const EVP_MD *) p2) != NID_sha224 && |
| 387 | EVP_MD_type((const EVP_MD *) p2) != NID_sha256 && | 388 | EVP_MD_type((const EVP_MD *) p2) != NID_sha256 && |
| 388 | EVP_MD_type((const EVP_MD *) p2) != NID_sha384 && | 389 | EVP_MD_type((const EVP_MD *) p2) != NID_sha384 && |
| 389 | EVP_MD_type((const EVP_MD *) p2) != NID_sha512) { | 390 | EVP_MD_type((const EVP_MD *) p2) != NID_sha512 && |
| 391 | EVP_MD_type((const EVP_MD *) p2) != NID_sha3_224 && | ||
| 392 | EVP_MD_type((const EVP_MD *) p2) != NID_sha3_256 && | ||
| 393 | EVP_MD_type((const EVP_MD *) p2) != NID_sha3_384 && | ||
| 394 | EVP_MD_type((const EVP_MD *) p2) != NID_sha3_512) { | ||
| 390 | ECerror(EC_R_INVALID_DIGEST_TYPE); | 395 | ECerror(EC_R_INVALID_DIGEST_TYPE); |
| 391 | return 0; | 396 | return 0; |
| 392 | } | 397 | } |
diff --git a/src/lib/libcrypto/evp/c_all.c b/src/lib/libcrypto/evp/c_all.c index 8fc1aa6a17..936d7e810f 100644 --- a/src/lib/libcrypto/evp/c_all.c +++ b/src/lib/libcrypto/evp/c_all.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: c_all.c,v 1.28 2022/10/21 13:39:35 tb Exp $ */ | 1 | /* $OpenBSD: c_all.c,v 1.29 2023/04/25 15:48:48 tb 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 | * |
| @@ -290,6 +290,14 @@ OpenSSL_add_all_digests_internal(void) | |||
| 290 | #ifndef OPENSSL_NO_SHA512 | 290 | #ifndef OPENSSL_NO_SHA512 |
| 291 | EVP_add_digest(EVP_sha384()); | 291 | EVP_add_digest(EVP_sha384()); |
| 292 | EVP_add_digest(EVP_sha512()); | 292 | EVP_add_digest(EVP_sha512()); |
| 293 | EVP_add_digest(EVP_sha512_224()); | ||
| 294 | EVP_add_digest(EVP_sha512_256()); | ||
| 295 | #endif | ||
| 296 | #ifndef OPENSSL_NO_SHA3 | ||
| 297 | EVP_add_digest(EVP_sha3_224()); | ||
| 298 | EVP_add_digest(EVP_sha3_256()); | ||
| 299 | EVP_add_digest(EVP_sha3_384()); | ||
| 300 | EVP_add_digest(EVP_sha3_512()); | ||
| 293 | #endif | 301 | #endif |
| 294 | #ifndef OPENSSL_NO_SM3 | 302 | #ifndef OPENSSL_NO_SM3 |
| 295 | EVP_add_digest(EVP_sm3()); | 303 | EVP_add_digest(EVP_sm3()); |
diff --git a/src/lib/libcrypto/hmac/hmac.h b/src/lib/libcrypto/hmac/hmac.h index ff01ae26b0..1ce365294c 100644 --- a/src/lib/libcrypto/hmac/hmac.h +++ b/src/lib/libcrypto/hmac/hmac.h | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: hmac.h,v 1.16 2022/01/14 08:06:03 tb Exp $ */ | 1 | /* $OpenBSD: hmac.h,v 1.17 2023/04/25 15:48:48 tb 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,7 +66,7 @@ | |||
| 66 | 66 | ||
| 67 | #include <openssl/evp.h> | 67 | #include <openssl/evp.h> |
| 68 | 68 | ||
| 69 | #define HMAC_MAX_MD_CBLOCK 128 /* largest known is SHA512 */ | 69 | #define HMAC_MAX_MD_CBLOCK 144 /* largest known is SHA3-224 */ |
| 70 | 70 | ||
| 71 | #ifdef __cplusplus | 71 | #ifdef __cplusplus |
| 72 | extern "C" { | 72 | extern "C" { |
diff --git a/src/lib/libcrypto/rsa/rsa_pmeth.c b/src/lib/libcrypto/rsa/rsa_pmeth.c index 688c0d64db..8e06365566 100644 --- a/src/lib/libcrypto/rsa/rsa_pmeth.c +++ b/src/lib/libcrypto/rsa/rsa_pmeth.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: rsa_pmeth.c,v 1.36 2023/04/15 18:48:52 tb Exp $ */ | 1 | /* $OpenBSD: rsa_pmeth.c,v 1.37 2023/04/25 15:48:48 tb 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 2006. | 3 | * project 2006. |
| 4 | */ | 4 | */ |
| @@ -371,12 +371,19 @@ check_padding_md(const EVP_MD *md, int padding) | |||
| 371 | } | 371 | } |
| 372 | 372 | ||
| 373 | /* List of all supported RSA digests. */ | 373 | /* List of all supported RSA digests. */ |
| 374 | /* RFC 8017 and NIST CSOR. */ | ||
| 374 | switch(EVP_MD_type(md)) { | 375 | switch(EVP_MD_type(md)) { |
| 375 | case NID_sha1: | 376 | case NID_sha1: |
| 376 | case NID_sha224: | 377 | case NID_sha224: |
| 377 | case NID_sha256: | 378 | case NID_sha256: |
| 378 | case NID_sha384: | 379 | case NID_sha384: |
| 379 | case NID_sha512: | 380 | case NID_sha512: |
| 381 | case NID_sha512_224: | ||
| 382 | case NID_sha512_256: | ||
| 383 | case NID_sha3_224: | ||
| 384 | case NID_sha3_256: | ||
| 385 | case NID_sha3_384: | ||
| 386 | case NID_sha3_512: | ||
| 380 | case NID_md5: | 387 | case NID_md5: |
| 381 | case NID_md5_sha1: | 388 | case NID_md5_sha1: |
| 382 | case NID_md4: | 389 | case NID_md4: |
