summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorDr. Stephen Henson <steve@openssl.org>2016-06-18 15:46:13 +0100
committerDr. Stephen Henson <steve@openssl.org>2016-07-15 14:09:05 +0100
commitd166ed8c11e10e9fdaeac182effb9dd318843924 (patch)
treefd47ffb1f5d42b121b04d14c1a8f6bdc659637f6 /test
parent1fc431ba57d12189a9bdacd3999ea2a7b91458d8 (diff)
check return values for EVP_Digest*() APIs
Reviewed-by: Richard Levitte <levitte@openssl.org>
Diffstat (limited to 'test')
-rw-r--r--test/md2test.c7
-rw-r--r--test/md4test.c6
-rw-r--r--test/md5test.c6
-rw-r--r--test/mdc2test.c29
-rw-r--r--test/rmdtest.c7
-rw-r--r--test/sha1test.c30
-rw-r--r--test/sha256t.c70
-rw-r--r--test/sha512t.c75
8 files changed, 151 insertions, 79 deletions
diff --git a/test/md2test.c b/test/md2test.c
index 5d94e5f88a..cb667cbc6b 100644
--- a/test/md2test.c
+++ b/test/md2test.c
@@ -60,8 +60,11 @@ int main(int argc, char *argv[])
R = ret;
i = 1;
while (*P != NULL) {
- EVP_Digest((unsigned char *)*P, strlen(*P), md, NULL, EVP_md2(),
- NULL);
+ if (!EVP_Digest((unsigned char *)*P, strlen(*P), md, NULL, EVP_md2(),
+ NULL)) {
+ printf("EVP Digest error.\n");
+ EXIT(1);
+ }
p = pt(md);
if (strcmp(p, *R) != 0) {
printf("error calculating MD2 on '%s'\n", *P);
diff --git a/test/md4test.c b/test/md4test.c
index 9c2e7fde0c..448f9b76ef 100644
--- a/test/md4test.c
+++ b/test/md4test.c
@@ -56,7 +56,11 @@ int main(int argc, char *argv[])
R = ret;
i = 1;
while (*P != NULL) {
- EVP_Digest(&(P[0][0]), strlen((char *)*P), md, NULL, EVP_md4(), NULL);
+ if (!EVP_Digest(&(P[0][0]), strlen((char *)*P), md, NULL, EVP_md4(),
+ NULL)) {
+ printf("EVP Digest error.\n");
+ EXIT(1);
+ }
p = pt(md);
if (strcmp(p, (char *)*R) != 0) {
printf("error calculating MD4 on '%s'\n", *P);
diff --git a/test/md5test.c b/test/md5test.c
index f39b907dcf..ec6c692407 100644
--- a/test/md5test.c
+++ b/test/md5test.c
@@ -56,7 +56,11 @@ int main(int argc, char *argv[])
R = ret;
i = 1;
while (*P != NULL) {
- EVP_Digest(&(P[0][0]), strlen((char *)*P), md, NULL, EVP_md5(), NULL);
+ if (!EVP_Digest(&(P[0][0]), strlen((char *)*P), md, NULL, EVP_md5(),
+ NULL)) {
+ printf("EVP Digest error.\n");
+ EXIT(1);
+ }
p = pt(md);
if (strcmp(p, (char *)*R) != 0) {
printf("error calculating MD5 on '%s'\n", *P);
diff --git a/test/mdc2test.c b/test/mdc2test.c
index dc8dd58d78..d56bdcd878 100644
--- a/test/mdc2test.c
+++ b/test/mdc2test.c
@@ -43,7 +43,7 @@ static unsigned char pad2[16] = {
int main(int argc, char *argv[])
{
- int ret = 0;
+ int ret = 1;
unsigned char md[MDC2_DIGEST_LENGTH];
int i;
EVP_MD_CTX *c;
@@ -54,9 +54,11 @@ int main(int argc, char *argv[])
# endif
c = EVP_MD_CTX_new();
- EVP_DigestInit_ex(c, EVP_mdc2(), NULL);
- EVP_DigestUpdate(c, (unsigned char *)text, strlen(text));
- EVP_DigestFinal_ex(c, &(md[0]), NULL);
+ if (c == NULL
+ || !EVP_DigestInit_ex(c, EVP_mdc2(), NULL)
+ || !EVP_DigestUpdate(c, (unsigned char *)text, strlen(text))
+ || !EVP_DigestFinal_ex(c, &(md[0]), NULL))
+ goto err;
if (memcmp(md, pad1, MDC2_DIGEST_LENGTH) != 0) {
for (i = 0; i < MDC2_DIGEST_LENGTH; i++)
@@ -65,15 +67,18 @@ int main(int argc, char *argv[])
for (i = 0; i < MDC2_DIGEST_LENGTH; i++)
printf("%02X", pad1[i]);
printf(" <- correct\n");
- ret = 1;
- } else
+ goto err;
+ } else {
printf("pad1 - ok\n");
+ }
- EVP_DigestInit_ex(c, EVP_mdc2(), NULL);
+ if (!EVP_DigestInit_ex(c, EVP_mdc2(), NULL))
+ goto err;
/* FIXME: use a ctl function? */
((MDC2_CTX *)EVP_MD_CTX_md_data(c))->pad_type = 2;
- EVP_DigestUpdate(c, (unsigned char *)text, strlen(text));
- EVP_DigestFinal_ex(c, &(md[0]), NULL);
+ if (!EVP_DigestUpdate(c, (unsigned char *)text, strlen(text))
+ || !EVP_DigestFinal_ex(c, &(md[0]), NULL))
+ goto err;
if (memcmp(md, pad2, MDC2_DIGEST_LENGTH) != 0) {
for (i = 0; i < MDC2_DIGEST_LENGTH; i++)
@@ -82,10 +87,12 @@ int main(int argc, char *argv[])
for (i = 0; i < MDC2_DIGEST_LENGTH; i++)
printf("%02X", pad2[i]);
printf(" <- correct\n");
- ret = 1;
- } else
+ } else {
printf("pad2 - ok\n");
+ ret = 0;
+ }
+ err:
EVP_MD_CTX_free(c);
EXIT(ret);
}
diff --git a/test/rmdtest.c b/test/rmdtest.c
index 7f1e72e78d..b6deaaa1f5 100644
--- a/test/rmdtest.c
+++ b/test/rmdtest.c
@@ -63,8 +63,11 @@ int main(int argc, char *argv[])
# ifdef CHARSET_EBCDIC
ebcdic2ascii(test[i], test[i], strlen(test[i]));
# endif
- EVP_Digest(test[i], strlen(test[i]), md, NULL, EVP_ripemd160(),
- NULL);
+ if (!EVP_Digest(test[i], strlen(test[i]), md, NULL, EVP_ripemd160(),
+ NULL)) {
+ printf("EVP Digest error.\n");
+ EXIT(1);
+ }
p = pt(md);
if (strcmp(p, (char *)*R) != 0) {
printf("error calculating RIPEMD160 on '%s'\n", test[i]);
diff --git a/test/sha1test.c b/test/sha1test.c
index 9ff959ec9c..80ab122784 100644
--- a/test/sha1test.c
+++ b/test/sha1test.c
@@ -48,7 +48,12 @@ int main(int argc, char *argv[])
# ifdef CHARSET_EBCDIC
ebcdic2ascii(test[i], test[i], strlen(test[i]));
# endif
- EVP_Digest(test[i], strlen(test[i]), md, NULL, EVP_sha1(), NULL);
+ if (!EVP_Digest(test[i], strlen(test[i]), md, NULL, EVP_sha1(),
+ NULL)) {
+ printf("EVP_Digest() error\n");
+ err++;
+ goto err;
+ }
p = pt(md);
if (strcmp(p, (char *)*R) != 0) {
printf("error calculating SHA1 on '%s'\n", test[i]);
@@ -63,10 +68,23 @@ int main(int argc, char *argv[])
#ifdef CHARSET_EBCDIC
ebcdic2ascii(buf, buf, 1000);
#endif /* CHARSET_EBCDIC */
- EVP_DigestInit_ex(c, EVP_sha1(), NULL);
- for (i = 0; i < 1000; i++)
- EVP_DigestUpdate(c, buf, 1000);
- EVP_DigestFinal_ex(c, md, NULL);
+ if (!EVP_DigestInit_ex(c, EVP_sha1(), NULL)) {
+ printf("EVP_DigestInit_ex() error\n");
+ err++;
+ goto err;
+ }
+ for (i = 0; i < 1000; i++) {
+ if (!EVP_DigestUpdate(c, buf, 1000)) {
+ printf("EVP_DigestUpdate() error\n");
+ err++;
+ goto err;
+ }
+ }
+ if (!EVP_DigestFinal_ex(c, md, NULL)) {
+ printf("EVP_DigestFinal() error\n");
+ err++;
+ goto err;
+ }
p = pt(md);
r = bigret;
@@ -76,7 +94,7 @@ int main(int argc, char *argv[])
err++;
} else
printf("test 3 ok\n");
-
+ err:
EVP_MD_CTX_free(c);
EXIT(err);
return (0);
diff --git a/test/sha256t.c b/test/sha256t.c
index 315d10fae9..90262d9624 100644
--- a/test/sha256t.c
+++ b/test/sha256t.c
@@ -64,7 +64,8 @@ int main(int argc, char **argv)
fprintf(stdout, "Testing SHA-256 ");
- EVP_Digest("abc", 3, md, NULL, EVP_sha256(), NULL);
+ if (!EVP_Digest("abc", 3, md, NULL, EVP_sha256(), NULL))
+ goto err;
if (memcmp(md, app_b1, sizeof(app_b1))) {
fflush(stdout);
fprintf(stderr, "\nTEST 1 of 3 failed.\n");
@@ -73,9 +74,10 @@ int main(int argc, char **argv)
fprintf(stdout, ".");
fflush(stdout);
- EVP_Digest("abcdbcde" "cdefdefg" "efghfghi" "ghijhijk"
- "ijkljklm" "klmnlmno" "mnopnopq", 56, md, NULL, EVP_sha256(),
- NULL);
+ if (!EVP_Digest("abcdbcde" "cdefdefg" "efghfghi" "ghijhijk"
+ "ijkljklm" "klmnlmno" "mnopnopq", 56, md,
+ NULL, EVP_sha256(), NULL))
+ goto err;
if (memcmp(md, app_b2, sizeof(app_b2))) {
fflush(stdout);
fprintf(stderr, "\nTEST 2 of 3 failed.\n");
@@ -90,19 +92,23 @@ int main(int argc, char **argv)
fprintf(stderr, "\nTEST 3 of 3 failed. (malloc failure)\n");
return 1;
}
- EVP_DigestInit_ex(evp, EVP_sha256(), NULL);
- for (i = 0; i < 1000000; i += 288)
- EVP_DigestUpdate(evp, "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa"
- "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa"
- "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa"
- "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa"
- "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa"
- "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa"
- "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa"
- "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa"
- "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa",
- (1000000 - i) < 288 ? 1000000 - i : 288);
- EVP_DigestFinal_ex(evp, md, NULL);
+ if (!EVP_DigestInit_ex(evp, EVP_sha256(), NULL))
+ goto err;
+ for (i = 0; i < 1000000; i += 288) {
+ if (!EVP_DigestUpdate(evp, "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa"
+ "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa"
+ "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa"
+ "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa"
+ "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa"
+ "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa"
+ "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa"
+ "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa"
+ "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa",
+ (1000000 - i) < 288 ? 1000000 - i : 288))
+ goto err;
+ }
+ if (!EVP_DigestFinal_ex(evp, md, NULL))
+ goto err;
if (memcmp(md, app_b3, sizeof(app_b3))) {
fflush(stdout);
@@ -117,7 +123,8 @@ int main(int argc, char **argv)
fprintf(stdout, "Testing SHA-224 ");
- EVP_Digest("abc", 3, md, NULL, EVP_sha224(), NULL);
+ if (!EVP_Digest("abc", 3, md, NULL, EVP_sha224(), NULL))
+ goto err;
if (memcmp(md, addenum_1, sizeof(addenum_1))) {
fflush(stdout);
fprintf(stderr, "\nTEST 1 of 3 failed.\n");
@@ -126,9 +133,10 @@ int main(int argc, char **argv)
fprintf(stdout, ".");
fflush(stdout);
- EVP_Digest("abcdbcde" "cdefdefg" "efghfghi" "ghijhijk"
- "ijkljklm" "klmnlmno" "mnopnopq", 56, md, NULL, EVP_sha224(),
- NULL);
+ if (!EVP_Digest("abcdbcde" "cdefdefg" "efghfghi" "ghijhijk"
+ "ijkljklm" "klmnlmno" "mnopnopq", 56, md,
+ NULL, EVP_sha224(), NULL))
+ goto err;
if (memcmp(md, addenum_2, sizeof(addenum_2))) {
fflush(stdout);
fprintf(stderr, "\nTEST 2 of 3 failed.\n");
@@ -138,12 +146,16 @@ int main(int argc, char **argv)
fflush(stdout);
EVP_MD_CTX_reset(evp);
- EVP_DigestInit_ex(evp, EVP_sha224(), NULL);
- for (i = 0; i < 1000000; i += 64)
- EVP_DigestUpdate(evp, "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa"
- "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa",
- (1000000 - i) < 64 ? 1000000 - i : 64);
- EVP_DigestFinal_ex(evp, md, NULL);
+ if (!EVP_DigestInit_ex(evp, EVP_sha224(), NULL))
+ goto err;
+ for (i = 0; i < 1000000; i += 64) {
+ if (!EVP_DigestUpdate(evp, "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa"
+ "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa",
+ (1000000 - i) < 64 ? 1000000 - i : 64))
+ goto err;
+ }
+ if (!EVP_DigestFinal_ex(evp, md, NULL))
+ goto err;
EVP_MD_CTX_free(evp);
if (memcmp(md, addenum_3, sizeof(addenum_3))) {
@@ -158,4 +170,8 @@ int main(int argc, char **argv)
fflush(stdout);
return 0;
+
+ err:
+ fprintf(stderr, "Fatal EVP error!\n");
+ return 1;
}
diff --git a/test/sha512t.c b/test/sha512t.c
index b11fcaa051..18cdf39736 100644
--- a/test/sha512t.c
+++ b/test/sha512t.c
@@ -83,7 +83,8 @@ int main(int argc, char **argv)
fprintf(stdout, "Testing SHA-512 ");
- EVP_Digest("abc", 3, md, NULL, EVP_sha512(), NULL);
+ if (!EVP_Digest("abc", 3, md, NULL, EVP_sha512(), NULL))
+ goto err;
if (memcmp(md, app_c1, sizeof(app_c1))) {
fflush(stdout);
fprintf(stderr, "\nTEST 1 of 3 failed.\n");
@@ -92,10 +93,11 @@ int main(int argc, char **argv)
fprintf(stdout, ".");
fflush(stdout);
- EVP_Digest("abcdefgh" "bcdefghi" "cdefghij" "defghijk"
- "efghijkl" "fghijklm" "ghijklmn" "hijklmno"
- "ijklmnop" "jklmnopq" "klmnopqr" "lmnopqrs"
- "mnopqrst" "nopqrstu", 112, md, NULL, EVP_sha512(), NULL);
+ if (!EVP_Digest("abcdefgh" "bcdefghi" "cdefghij" "defghijk"
+ "efghijkl" "fghijklm" "ghijklmn" "hijklmno"
+ "ijklmnop" "jklmnopq" "klmnopqr" "lmnopqrs"
+ "mnopqrst" "nopqrstu", 112, md, NULL, EVP_sha512(), NULL))
+ goto err;
if (memcmp(md, app_c2, sizeof(app_c2))) {
fflush(stdout);
fprintf(stderr, "\nTEST 2 of 3 failed.\n");
@@ -110,19 +112,23 @@ int main(int argc, char **argv)
fprintf(stderr, "\nTEST 3 of 3 failed. (malloc failure)\n");
return 1;
}
- EVP_DigestInit_ex(evp, EVP_sha512(), NULL);
- for (i = 0; i < 1000000; i += 288)
- EVP_DigestUpdate(evp, "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa"
- "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa"
- "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa"
- "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa"
- "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa"
- "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa"
- "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa"
- "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa"
- "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa",
- (1000000 - i) < 288 ? 1000000 - i : 288);
- EVP_DigestFinal_ex(evp, md, NULL);
+ if (!EVP_DigestInit_ex(evp, EVP_sha512(), NULL))
+ goto err;
+ for (i = 0; i < 1000000; i += 288) {
+ if (!EVP_DigestUpdate(evp, "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa"
+ "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa"
+ "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa"
+ "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa"
+ "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa"
+ "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa"
+ "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa"
+ "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa"
+ "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa",
+ (1000000 - i) < 288 ? 1000000 - i : 288))
+ goto err;
+ }
+ if (!EVP_DigestFinal_ex(evp, md, NULL))
+ goto err;
EVP_MD_CTX_reset(evp);
if (memcmp(md, app_c3, sizeof(app_c3))) {
@@ -138,7 +144,8 @@ int main(int argc, char **argv)
fprintf(stdout, "Testing SHA-384 ");
- EVP_Digest("abc", 3, md, NULL, EVP_sha384(), NULL);
+ if (!EVP_Digest("abc", 3, md, NULL, EVP_sha384(), NULL))
+ goto err;
if (memcmp(md, app_d1, sizeof(app_d1))) {
fflush(stdout);
fprintf(stderr, "\nTEST 1 of 3 failed.\n");
@@ -147,10 +154,11 @@ int main(int argc, char **argv)
fprintf(stdout, ".");
fflush(stdout);
- EVP_Digest("abcdefgh" "bcdefghi" "cdefghij" "defghijk"
- "efghijkl" "fghijklm" "ghijklmn" "hijklmno"
- "ijklmnop" "jklmnopq" "klmnopqr" "lmnopqrs"
- "mnopqrst" "nopqrstu", 112, md, NULL, EVP_sha384(), NULL);
+ if (!EVP_Digest("abcdefgh" "bcdefghi" "cdefghij" "defghijk"
+ "efghijkl" "fghijklm" "ghijklmn" "hijklmno"
+ "ijklmnop" "jklmnopq" "klmnopqr" "lmnopqrs"
+ "mnopqrst" "nopqrstu", 112, md, NULL, EVP_sha384(), NULL))
+ goto err;
if (memcmp(md, app_d2, sizeof(app_d2))) {
fflush(stdout);
fprintf(stderr, "\nTEST 2 of 3 failed.\n");
@@ -159,12 +167,16 @@ int main(int argc, char **argv)
fprintf(stdout, ".");
fflush(stdout);
- EVP_DigestInit_ex(evp, EVP_sha384(), NULL);
- for (i = 0; i < 1000000; i += 64)
- EVP_DigestUpdate(evp, "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa"
- "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa",
- (1000000 - i) < 64 ? 1000000 - i : 64);
- EVP_DigestFinal_ex(evp, md, NULL);
+ if (!EVP_DigestInit_ex(evp, EVP_sha384(), NULL))
+ goto err;
+ for (i = 0; i < 1000000; i += 64) {
+ if (!EVP_DigestUpdate(evp, "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa"
+ "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa",
+ (1000000 - i) < 64 ? 1000000 - i : 64))
+ goto err;
+ }
+ if (!EVP_DigestFinal_ex(evp, md, NULL))
+ goto err;
EVP_MD_CTX_free(evp);
if (memcmp(md, app_d3, sizeof(app_d3))) {
@@ -179,4 +191,9 @@ int main(int argc, char **argv)
fflush(stdout);
return 0;
+
+ err:
+ fflush(stdout);
+ fprintf(stderr, "\nFatal EVP error!\n");
+ return 1;
}