1From ba368822d0a197cb84c46c911d40d0c52cf9c391 Mon Sep 17 00:00:00 2001 2From: Hal Murray <hmurray@megapathdsl.net> 3Date: Sun, 2 May 2021 22:24:26 -0700 4Subject: [PATCH] Update to OpenSSL 3.0.0-alpha15 5 6Upstream-Status: Backport [https://gitlab.com/NTPsec/ntpsec/-/commit/ba368822d0a197cb84c46c911d40d0c52cf9c391] 7Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com> 8Signed-off-by: Alex Kiernan <alexk@zuma.ai> 9--- 10 attic/cmac-timing.c | 37 ++++++++++++++----------------------- 11 1 file changed, 14 insertions(+), 23 deletions(-) 12 13diff --git a/attic/cmac-timing.c b/attic/cmac-timing.c 14index c2088db63a4c..464daa76b9e6 100644 15--- a/attic/cmac-timing.c 16+++ b/attic/cmac-timing.c 17@@ -225,28 +225,14 @@ static void DoPKEY( 18 #if OPENSSL_VERSION_NUMBER > 0x20000000L 19 static size_t One_EVP_MAC( 20 EVP_MAC_CTX *ctx, /* context */ 21- char *cipher, 22 uint8_t *key, /* key pointer */ 23 int keylength, /* key length */ 24 uint8_t *pkt, /* packet pointer */ 25 int pktlength /* packet length */ 26 ) { 27- OSSL_PARAM params[3]; 28 size_t len = EVP_MAX_MD_SIZE; 29 30- params[0] = 31- OSSL_PARAM_construct_utf8_string("cipher", cipher, 0); 32- params[1] = 33- OSSL_PARAM_construct_octet_string("key", key, keylength); 34- params[2] = OSSL_PARAM_construct_end(); 35- if (0 == EVP_MAC_CTX_set_params(ctx, params)) { 36- unsigned long err = ERR_get_error(); 37- char * str = ERR_error_string(err, NULL); 38- printf("## Oops, EVP_MAC_CTX_set_params() failed: %s.\n", str); 39- return 0; 40- } 41- 42- if (0 == EVP_MAC_init(ctx)) { 43+ if (0 == EVP_MAC_init(ctx, key, keylength, NULL)) { 44 unsigned long err = ERR_get_error(); 45 char * str = ERR_error_string(err, NULL); 46 printf("## Oops, EVP_MAC_init() failed: %s.\n", str); 47@@ -255,13 +241,13 @@ static size_t One_EVP_MAC( 48 if (0 == EVP_MAC_update(ctx, pkt, pktlength)) { 49 unsigned long err = ERR_get_error(); 50 char * str = ERR_error_string(err, NULL); 51- printf("## Oops, EVP_MAC_init() failed: %s.\n", str); 52+ printf("## Oops, EVP_MAC_update() failed: %s.\n", str); 53 return 0; 54 } 55 if (0 == EVP_MAC_final(ctx, answer, &len, sizeof(answer))) { 56 unsigned long err = ERR_get_error(); 57 char * str = ERR_error_string(err, NULL); 58- printf("## Oops, EVP_MAC_init() failed: %s.\n", str); 59+ printf("## Oops, EVP_MAC_final() failed: %s.\n", str); 60 return 0; 61 } 62 return len; 63@@ -290,7 +276,7 @@ static void Do_EVP_MAC( 64 65 clock_gettime(CLOCK_MONOTONIC, &start); 66 for (int i = 0; i < SAMPLESIZE; i++) { 67- digestlength = One_EVP_MAC(evp, cbc, key, keylength, pkt, pktlength); 68+ digestlength = One_EVP_MAC(evp, key, keylength, pkt, pktlength); 69 if (0 == digestlength) break; 70 } 71 clock_gettime(CLOCK_MONOTONIC, &stop); 72@@ -305,26 +291,31 @@ static size_t One_EVP_MAC2( 73 uint8_t *pkt, /* packet pointer */ 74 int pktlength /* packet length */ 75 ) { 76+ EVP_MAC_CTX *dup; 77 size_t len = EVP_MAX_MD_SIZE; 78 79- if (0 == EVP_MAC_init(ctx)) { 80+ // dup = ctx; 81+ dup = EVP_MAC_CTX_dup(ctx); 82+ 83+ if (0 == EVP_MAC_init(dup, NULL, 0, NULL)) { 84 unsigned long err = ERR_get_error(); 85 char * str = ERR_error_string(err, NULL); 86 printf("## Oops, EVP_MAC_init() failed: %s.\n", str); 87 return 0; 88 } 89- if (0 == EVP_MAC_update(ctx, pkt, pktlength)) { 90+ if (0 == EVP_MAC_update(dup, pkt, pktlength)) { 91 unsigned long err = ERR_get_error(); 92 char * str = ERR_error_string(err, NULL); 93- printf("## Oops, EVP_MAC_init() failed: %s.\n", str); 94+ printf("## Oops, EVP_MAC_update() failed: %s.\n", str); 95 return 0; 96 } 97- if (0 == EVP_MAC_final(ctx, answer, &len, sizeof(answer))) { 98+ if (0 == EVP_MAC_final(dup, answer, &len, sizeof(answer))) { 99 unsigned long err = ERR_get_error(); 100 char * str = ERR_error_string(err, NULL); 101- printf("## Oops, EVP_MAC_init() failed: %s.\n", str); 102+ printf("## Oops, EVP_MAC_final() failed: %s.\n", str); 103 return 0; 104 } 105+ EVP_MAC_CTX_free(dup); 106 return len; 107 } 108 109-- 1102.33.0 111 112