summaryrefslogtreecommitdiffstats
path: root/test/sha1test.c
diff options
context:
space:
mode:
authorMatt Caswell <matt@openssl.org>2016-04-29 10:56:20 +0100
committerMatt Caswell <matt@openssl.org>2016-04-29 15:04:15 +0100
commit97a982e2eee2e04e8e41ae12665af417315a0f23 (patch)
treeb51cc91f14d545cdc80ab64ad202457a5f181e44 /test/sha1test.c
parent4cd5c3f4eef81c791a5041dc17ec27aa08540e42 (diff)
Fix the tests to work with EBCDIC
Most of the tests already pass with EBCIDC but a few were trying to write into read only memory. Reviewed-by: Andy Polyakov <appro@openssl.org>
Diffstat (limited to 'test/sha1test.c')
-rw-r--r--test/sha1test.c32
1 files changed, 14 insertions, 18 deletions
diff --git a/test/sha1test.c b/test/sha1test.c
index ada37d11d6..d2e248c9b7 100644
--- a/test/sha1test.c
+++ b/test/sha1test.c
@@ -67,10 +67,9 @@
# include <openssl/ebcdic.h>
#endif
-static char *test[] = {
- "abc",
- "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq",
- NULL,
+static char test[][80] = {
+ { "abc" },
+ { "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq" }
};
static char *ret[] = {
@@ -83,34 +82,31 @@ static char *bigret = "34aa973cd4c4daa4f61eeb2bdbad27316534016f";
static char *pt(unsigned char *md);
int main(int argc, char *argv[])
{
- int i, err = 0;
- char **P, **R;
+ unsigned int i;
+ int err = 0;
+ char **R;
static unsigned char buf[1000];
char *p, *r;
EVP_MD_CTX *c;
unsigned char md[SHA_DIGEST_LENGTH];
-#ifdef CHARSET_EBCDIC
- ebcdic2ascii(test[0], test[0], strlen(test[0]));
- ebcdic2ascii(test[1], test[1], strlen(test[1]));
-#endif
-
c = EVP_MD_CTX_new();
- P = test;
R = ret;
- i = 1;
- while (*P != NULL) {
- EVP_Digest(*P, strlen((char *)*P), md, NULL, EVP_sha1(), NULL);
+ i = 0;
+ while (i < OSSL_NELEM(test)) {
+# ifdef CHARSET_EBCDIC
+ ebcdic2ascii(test[i], test[i], strlen(test[i]));
+# endif
+ EVP_Digest(test[i], strlen(test[i]), md, NULL, EVP_sha1(), NULL);
p = pt(md);
if (strcmp(p, (char *)*R) != 0) {
- printf("error calculating SHA1 on '%s'\n", *P);
+ printf("error calculating SHA1 on '%s'\n", test[i]);
printf("got %s instead of %s\n", p, *R);
err++;
} else
- printf("test %d ok\n", i);
+ printf("test %d ok\n", i + 1);
i++;
R++;
- P++;
}
memset(buf, 'a', 1000);