When compiling with AES_WRAP_TEST, make main() return a meaningful value
authormiod <miod@openbsd.org>
Tue, 22 Apr 2014 21:27:11 +0000 (21:27 +0000)
committermiod <miod@openbsd.org>
Tue, 22 Apr 2014 21:27:11 +0000 (21:27 +0000)
instead of garbage, and add this to the libcrypto regress. Note these tests
are incomplete, as they always use the default IV.

lib/libcrypto/aes/aes_wrap.c
lib/libssl/src/crypto/aes/aes_wrap.c
regress/lib/libcrypto/Makefile
regress/lib/libcrypto/aeswrap/Makefile [new file with mode: 0644]

index 6689784..4053344 100644 (file)
@@ -231,19 +231,33 @@ main(int argc, char **argv)
        };
 
        AES_KEY wctx, xctx;
-       int ret;
+       int ret, nfailures = 0;
        ret = AES_wrap_unwrap_test(kek, 128, NULL, e1, key, 16);
+       if (ret == 0)
+               nfailures++;
        fprintf(stderr, "Key test result %d\n", ret);
        ret = AES_wrap_unwrap_test(kek, 192, NULL, e2, key, 16);
+       if (ret == 0)
+               nfailures++;
        fprintf(stderr, "Key test result %d\n", ret);
        ret = AES_wrap_unwrap_test(kek, 256, NULL, e3, key, 16);
+       if (ret == 0)
+               nfailures++;
        fprintf(stderr, "Key test result %d\n", ret);
        ret = AES_wrap_unwrap_test(kek, 192, NULL, e4, key, 24);
+       if (ret == 0)
+               nfailures++;
        fprintf(stderr, "Key test result %d\n", ret);
        ret = AES_wrap_unwrap_test(kek, 256, NULL, e5, key, 24);
+       if (ret == 0)
+               nfailures++;
        fprintf(stderr, "Key test result %d\n", ret);
        ret = AES_wrap_unwrap_test(kek, 256, NULL, e6, key, 32);
+       if (ret == 0)
+               nfailures++;
        fprintf(stderr, "Key test result %d\n", ret);
+
+       return nfailures;
 }
 
 #endif
index 6689784..4053344 100644 (file)
@@ -231,19 +231,33 @@ main(int argc, char **argv)
        };
 
        AES_KEY wctx, xctx;
-       int ret;
+       int ret, nfailures = 0;
        ret = AES_wrap_unwrap_test(kek, 128, NULL, e1, key, 16);
+       if (ret == 0)
+               nfailures++;
        fprintf(stderr, "Key test result %d\n", ret);
        ret = AES_wrap_unwrap_test(kek, 192, NULL, e2, key, 16);
+       if (ret == 0)
+               nfailures++;
        fprintf(stderr, "Key test result %d\n", ret);
        ret = AES_wrap_unwrap_test(kek, 256, NULL, e3, key, 16);
+       if (ret == 0)
+               nfailures++;
        fprintf(stderr, "Key test result %d\n", ret);
        ret = AES_wrap_unwrap_test(kek, 192, NULL, e4, key, 24);
+       if (ret == 0)
+               nfailures++;
        fprintf(stderr, "Key test result %d\n", ret);
        ret = AES_wrap_unwrap_test(kek, 256, NULL, e5, key, 24);
+       if (ret == 0)
+               nfailures++;
        fprintf(stderr, "Key test result %d\n", ret);
        ret = AES_wrap_unwrap_test(kek, 256, NULL, e6, key, 32);
+       if (ret == 0)
+               nfailures++;
        fprintf(stderr, "Key test result %d\n", ret);
+
+       return nfailures;
 }
 
 #endif
index 46e867b..df9e45f 100644 (file)
@@ -1,6 +1,7 @@
-#      $OpenBSD: Makefile,v 1.3 2014/04/17 18:33:21 miod Exp $
+#      $OpenBSD: Makefile,v 1.4 2014/04/22 21:27:13 miod Exp $
 
 SUBDIR= \
+       aeswrap \
        bf \
        bn \
        cast \
diff --git a/regress/lib/libcrypto/aeswrap/Makefile b/regress/lib/libcrypto/aeswrap/Makefile
new file mode 100644 (file)
index 0000000..63770a5
--- /dev/null
@@ -0,0 +1,12 @@
+#      $OpenBSD: Makefile,v 1.1 2014/04/22 21:27:15 miod Exp $
+
+PROG=  aes_wrap
+CRYPTO=        ${.CURDIR}/../../../../lib/libssl/src/crypto
+CFLAGS+=       -DAES_WRAP_TEST
+CFLAGS+=       -I${CRYPTO} -I${CRYPTO}/aes
+.PATH: ${CRYPTO}/aes
+
+LDADD= -lcrypto
+DPADD= ${LIBCRYPTO}
+
+.include <bsd.regress.mk>