diff options
Diffstat (limited to '')
| -rw-r--r-- | src/regress/lib/libcrypto/sha512/sha512test.c | 82 | 
1 files changed, 60 insertions, 22 deletions
| diff --git a/src/regress/lib/libcrypto/sha512/sha512test.c b/src/regress/lib/libcrypto/sha512/sha512test.c index f8e37a20fa..0d5121036b 100644 --- a/src/regress/lib/libcrypto/sha512/sha512test.c +++ b/src/regress/lib/libcrypto/sha512/sha512test.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: sha512test.c,v 1.6 2021/11/18 21:37:57 tb Exp $ */ | 1 | /* $OpenBSD: sha512test.c,v 1.7 2021/12/29 23:02:00 tb Exp $ */ | 
| 2 | /* ==================================================================== | 2 | /* ==================================================================== | 
| 3 | * Copyright (c) 2004 The OpenSSL Project. All rights reserved. | 3 | * Copyright (c) 2004 The OpenSSL Project. All rights reserved. | 
| 4 | * ==================================================================== | 4 | * ==================================================================== | 
| @@ -81,10 +81,11 @@ unsigned char app_d3[SHA384_DIGEST_LENGTH] = { | |||
| 81 | }; | 81 | }; | 
| 82 | 82 | ||
| 83 | int | 83 | int | 
| 84 | main(int argc, char **argv) { | 84 | main(int argc, char **argv) | 
| 85 | { | ||
| 85 | unsigned char md[SHA512_DIGEST_LENGTH]; | 86 | unsigned char md[SHA512_DIGEST_LENGTH]; | 
| 86 | int i; | 87 | int i; | 
| 87 | EVP_MD_CTX *evp; | 88 | EVP_MD_CTX *evp = NULL; | 
| 88 | 89 | ||
| 89 | #ifdef OPENSSL_IA32_SSE2 | 90 | #ifdef OPENSSL_IA32_SSE2 | 
| 90 | /* Alternative to this is to call OpenSSL_add_all_algorithms... | 91 | /* Alternative to this is to call OpenSSL_add_all_algorithms... | 
| @@ -99,11 +100,12 @@ main(int argc, char **argv) { | |||
| 99 | 100 | ||
| 100 | fprintf(stdout, "Testing SHA-512 "); | 101 | fprintf(stdout, "Testing SHA-512 "); | 
| 101 | 102 | ||
| 102 | EVP_Digest("abc", 3, md, NULL, EVP_sha512(), NULL); | 103 | if (!EVP_Digest("abc", 3, md, NULL, EVP_sha512(), NULL)) | 
| 104 | goto err; | ||
| 103 | if (memcmp(md, app_c1, sizeof(app_c1))) { | 105 | if (memcmp(md, app_c1, sizeof(app_c1))) { | 
| 104 | fflush(stdout); | 106 | fflush(stdout); | 
| 105 | fprintf(stderr, "\nTEST 1 of 3 failed.\n"); | 107 | fprintf(stderr, "\nTEST 1 of 3 failed.\n"); | 
| 106 | return 1; | 108 | goto err; | 
| 107 | } | 109 | } | 
| 108 | fprintf(stdout, "."); | 110 | fprintf(stdout, "."); | 
| 109 | fflush(stdout); | 111 | fflush(stdout); | 
| @@ -117,7 +119,7 @@ main(int argc, char **argv) { | |||
| 117 | if (memcmp(md, app_c2, sizeof(app_c2))) { | 119 | if (memcmp(md, app_c2, sizeof(app_c2))) { | 
| 118 | fflush(stdout); | 120 | fflush(stdout); | 
| 119 | fprintf(stderr, "\nTEST 2 of 3 failed.\n"); | 121 | fprintf(stderr, "\nTEST 2 of 3 failed.\n"); | 
| 120 | return 1; | 122 | goto err; | 
| 121 | } | 123 | } | 
| 122 | fprintf(stdout, "."); | 124 | fprintf(stdout, "."); | 
| 123 | fflush(stdout); | 125 | fflush(stdout); | 
| @@ -125,11 +127,16 @@ main(int argc, char **argv) { | |||
| 125 | if ((evp = EVP_MD_CTX_new()) == NULL) { | 127 | if ((evp = EVP_MD_CTX_new()) == NULL) { | 
| 126 | fflush(stdout); | 128 | fflush(stdout); | 
| 127 | fprintf(stderr, "\nEVP_MD_CTX_new() failed.\n"); | 129 | fprintf(stderr, "\nEVP_MD_CTX_new() failed.\n"); | 
| 128 | return 1; | 130 | goto err; | 
| 131 | } | ||
| 132 | if (!EVP_DigestInit_ex(evp, EVP_sha512(), NULL)) { | ||
| 133 | fflush(stdout); | ||
| 134 | fprintf(stderr, "\nEVP_DigestInit_ex failed.\n"); | ||
| 135 | goto err; | ||
| 129 | } | 136 | } | 
| 130 | EVP_DigestInit_ex(evp, EVP_sha512(), NULL); | 137 | |
| 131 | for (i = 0; i < 1000000; i += 288) | 138 | for (i = 0; i < 1000000; i += 288) { | 
| 132 | EVP_DigestUpdate(evp, | 139 | if (!EVP_DigestUpdate(evp, | 
| 133 | "aaaaaaaa""aaaaaaaa""aaaaaaaa""aaaaaaaa" | 140 | "aaaaaaaa""aaaaaaaa""aaaaaaaa""aaaaaaaa" | 
| 134 | "aaaaaaaa""aaaaaaaa""aaaaaaaa""aaaaaaaa" | 141 | "aaaaaaaa""aaaaaaaa""aaaaaaaa""aaaaaaaa" | 
| 135 | "aaaaaaaa""aaaaaaaa""aaaaaaaa""aaaaaaaa" | 142 | "aaaaaaaa""aaaaaaaa""aaaaaaaa""aaaaaaaa" | 
| @@ -139,14 +146,27 @@ main(int argc, char **argv) { | |||
| 139 | "aaaaaaaa""aaaaaaaa""aaaaaaaa""aaaaaaaa" | 146 | "aaaaaaaa""aaaaaaaa""aaaaaaaa""aaaaaaaa" | 
| 140 | "aaaaaaaa""aaaaaaaa""aaaaaaaa""aaaaaaaa" | 147 | "aaaaaaaa""aaaaaaaa""aaaaaaaa""aaaaaaaa" | 
| 141 | "aaaaaaaa""aaaaaaaa""aaaaaaaa""aaaaaaaa", | 148 | "aaaaaaaa""aaaaaaaa""aaaaaaaa""aaaaaaaa", | 
| 142 | (1000000 - i) < 288 ? 1000000 - i : 288); | 149 | (1000000 - i) < 288 ? 1000000 - i : 288)) { | 
| 143 | EVP_DigestFinal_ex(evp, md, NULL); | 150 | fflush(stdout); | 
| 144 | EVP_MD_CTX_reset(evp); | 151 | fprintf(stderr, "\nEVP_DigestUpdate failed.\n"); | 
| 152 | goto err; | ||
| 153 | } | ||
| 154 | } | ||
| 155 | if (!EVP_DigestFinal_ex(evp, md, NULL)) { | ||
| 156 | fflush(stdout); | ||
| 157 | fprintf(stderr, "\nEVP_DigestFinal failed.\n"); | ||
| 158 | goto err; | ||
| 159 | } | ||
| 160 | if (!EVP_MD_CTX_reset(evp)) { | ||
| 161 | fflush(stdout); | ||
| 162 | fprintf(stderr, "\nEVP_MD_CTX_reset failed.\n"); | ||
| 163 | goto err; | ||
| 164 | } | ||
| 145 | 165 | ||
| 146 | if (memcmp(md, app_c3, sizeof(app_c3))) { | 166 | if (memcmp(md, app_c3, sizeof(app_c3))) { | 
| 147 | fflush(stdout); | 167 | fflush(stdout); | 
| 148 | fprintf(stderr, "\nTEST 3 of 3 failed.\n"); | 168 | fprintf(stderr, "\nTEST 3 of 3 failed.\n"); | 
| 149 | return 1; | 169 | goto err; | 
| 150 | } | 170 | } | 
| 151 | fprintf(stdout, "."); | 171 | fprintf(stdout, "."); | 
| 152 | fflush(stdout); | 172 | fflush(stdout); | 
| @@ -160,7 +180,7 @@ main(int argc, char **argv) { | |||
| 160 | if (memcmp(md, app_d1, sizeof(app_d1))) { | 180 | if (memcmp(md, app_d1, sizeof(app_d1))) { | 
| 161 | fflush(stdout); | 181 | fflush(stdout); | 
| 162 | fprintf(stderr, "\nTEST 1 of 3 failed.\n"); | 182 | fprintf(stderr, "\nTEST 1 of 3 failed.\n"); | 
| 163 | return 1; | 183 | goto err; | 
| 164 | } | 184 | } | 
| 165 | fprintf(stdout, "."); | 185 | fprintf(stdout, "."); | 
| 166 | fflush(stdout); | 186 | fflush(stdout); | 
| @@ -174,24 +194,38 @@ main(int argc, char **argv) { | |||
| 174 | if (memcmp(md, app_d2, sizeof(app_d2))) { | 194 | if (memcmp(md, app_d2, sizeof(app_d2))) { | 
| 175 | fflush(stdout); | 195 | fflush(stdout); | 
| 176 | fprintf(stderr, "\nTEST 2 of 3 failed.\n"); | 196 | fprintf(stderr, "\nTEST 2 of 3 failed.\n"); | 
| 177 | return 1; | 197 | goto err; | 
| 178 | } | 198 | } | 
| 179 | fprintf(stdout, "."); | 199 | fprintf(stdout, "."); | 
| 180 | fflush(stdout); | 200 | fflush(stdout); | 
| 181 | 201 | ||
| 182 | EVP_DigestInit_ex(evp, EVP_sha384(), NULL); | 202 | if (!EVP_DigestInit_ex(evp, EVP_sha384(), NULL)) { | 
| 183 | for (i = 0; i < 1000000; i += 64) | 203 | fflush(stdout); | 
| 184 | EVP_DigestUpdate(evp, | 204 | fprintf(stderr, "\nEVP_DigestInit_ex failed.\n"); | 
| 205 | goto err; | ||
| 206 | } | ||
| 207 | for (i = 0; i < 1000000; i += 64) { | ||
| 208 | if (!EVP_DigestUpdate(evp, | ||
| 185 | "aaaaaaaa""aaaaaaaa""aaaaaaaa""aaaaaaaa" | 209 | "aaaaaaaa""aaaaaaaa""aaaaaaaa""aaaaaaaa" | 
| 186 | "aaaaaaaa""aaaaaaaa""aaaaaaaa""aaaaaaaa", | 210 | "aaaaaaaa""aaaaaaaa""aaaaaaaa""aaaaaaaa", | 
| 187 | (1000000 - i) < 64 ? 1000000 - i : 64); | 211 | (1000000 - i) < 64 ? 1000000 - i : 64)) { | 
| 188 | EVP_DigestFinal_ex(evp, md, NULL); | 212 | fflush(stdout); | 
| 213 | fprintf(stderr, "\nEVP_DigestUpdate failed.\n"); | ||
| 214 | goto err; | ||
| 215 | } | ||
| 216 | } | ||
| 217 | if (!EVP_DigestFinal_ex(evp, md, NULL)) { | ||
| 218 | fflush(stdout); | ||
| 219 | fprintf(stderr, "\nEVP_DigestFinal_ex failed.\n"); | ||
| 220 | goto err; | ||
| 221 | } | ||
| 189 | EVP_MD_CTX_free(evp); | 222 | EVP_MD_CTX_free(evp); | 
| 223 | evp = NULL; | ||
| 190 | 224 | ||
| 191 | if (memcmp(md, app_d3, sizeof(app_d3))) { | 225 | if (memcmp(md, app_d3, sizeof(app_d3))) { | 
| 192 | fflush(stdout); | 226 | fflush(stdout); | 
| 193 | fprintf(stderr, "\nTEST 3 of 3 failed.\n"); | 227 | fprintf(stderr, "\nTEST 3 of 3 failed.\n"); | 
| 194 | return 1; | 228 | goto err; | 
| 195 | } | 229 | } | 
| 196 | fprintf(stdout, "."); | 230 | fprintf(stdout, "."); | 
| 197 | fflush(stdout); | 231 | fflush(stdout); | 
| @@ -200,5 +234,9 @@ main(int argc, char **argv) { | |||
| 200 | fflush(stdout); | 234 | fflush(stdout); | 
| 201 | 235 | ||
| 202 | return 0; | 236 | return 0; | 
| 237 | |||
| 238 | err: | ||
| 239 | EVP_MD_CTX_free(evp); | ||
| 240 | return 1; | ||
| 203 | } | 241 | } | 
| 204 | #endif | 242 | #endif | 
