summaryrefslogtreecommitdiffstats
path: root/tests/slow/cipher-test.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--tests/slow/cipher-test.c64
1 files changed, 64 insertions, 0 deletions
diff --git a/tests/slow/cipher-test.c b/tests/slow/cipher-test.c
new file mode 100644
index 0000000..da7e7e7
--- /dev/null
+++ b/tests/slow/cipher-test.c
@@ -0,0 +1,64 @@
+#include <config.h>
+#include <stdint.h>
+#include <stdio.h>
+#include <string.h>
+#include <utils.h>
+#include <stdlib.h>
+#include <gnutls/gnutls.h>
+#include <gnutls/crypto.h>
+#include <gnutls/self-test.h>
+#include <signal.h>
+
+/* This does check the AES and SHA implementation against test vectors.
+ * This should not run under valgrind in order to use the native
+ * cpu instructions (AES-NI or padlock).
+ */
+
+#if defined(WIN32)
+int main(int argc, char **argv)
+{
+ exit(77);
+}
+#else
+# include <unistd.h>
+
+static void handle_sigill(int sig)
+{
+ _exit(0);
+}
+
+static void tls_log_func(int level, const char *str)
+{
+ fprintf(stderr, "<%d>| %s", level, str);
+}
+
+int main(int argc, char **argv)
+{
+ gnutls_global_set_log_function(tls_log_func);
+ if (argc > 1)
+ gnutls_global_set_log_level(4711);
+
+ global_init();
+ signal(SIGILL, handle_sigill);
+
+ /* ciphers */
+ if (gnutls_cipher_self_test(1, 0) < 0)
+ return 1;
+
+ /* message digests */
+ if (gnutls_digest_self_test(1, 0) < 0)
+ return 1;
+
+ /* MAC */
+ if (gnutls_mac_self_test(1, 0) < 0)
+ return 1;
+
+ /* PK */
+ if (gnutls_pk_self_test(1, 0) < 0)
+ return 1;
+
+ gnutls_global_deinit();
+ return 0;
+}
+
+#endif