diff options
author | tb <> | 2021-12-29 23:02:00 +0000 |
---|---|---|
committer | tb <> | 2021-12-29 23:02:00 +0000 |
commit | 1070f2fba37df08640bb6c8b4a9bbe8ac77bcb8a (patch) | |
tree | a3957ac709d56d65e3240c2d6f7370d132ce4d8a | |
parent | 6e87beb01f321dacac23e43144b6ba35e1ff6ef5 (diff) | |
download | openbsd-1070f2fba37df08640bb6c8b4a9bbe8ac77bcb8a.tar.gz openbsd-1070f2fba37df08640bb6c8b4a9bbe8ac77bcb8a.tar.bz2 openbsd-1070f2fba37df08640bb6c8b4a9bbe8ac77bcb8a.zip |
More EVP_* return value checks
CID 345152
-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 |