diff options
author | Nikos Mavrogiannopoulos <nmav@turtle.(none)> | 2008-04-26 14:43:12 +0300 |
---|---|---|
committer | Nikos Mavrogiannopoulos <nmav@turtle.(none)> | 2008-04-26 14:43:12 +0300 |
commit | 0024cce1f30126e690c1a37a09202486910fd1b1 (patch) | |
tree | 6686db1d08a08b075367b4d07a26a0dbad35ca9b | |
parent | 2dca285c9b92f30e82a20e298cc98f6bf09ef629 (diff) | |
download | gnutls-0024cce1f30126e690c1a37a09202486910fd1b1.tar.gz |
added crypto rng registration test.
-rw-r--r-- | tests/Makefile.am | 2 | ||||
-rw-r--r-- | tests/crypto_rng.c | 64 |
2 files changed, 65 insertions, 1 deletions
diff --git a/tests/Makefile.am b/tests/Makefile.am index 7fb1fff02c..b2ccc4ede1 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -37,7 +37,7 @@ noinst_LTLIBRARIES = libutils.la libutils_la_SOURCES = utils.h utils.c ctests = simple openssl gc set_pkcs12_cred certder \ - certificate_set_x509_crl dn parse_ca moredn + certificate_set_x509_crl dn parse_ca moredn crypto_rng openssl_LDADD = $(LDADD) ../libextra/libgnutls-openssl.la if HAVE_FORK ctests += openpgpself x509self x509signself x509dn anonself pskself dhepskself tlsia resume diff --git a/tests/crypto_rng.c b/tests/crypto_rng.c new file mode 100644 index 0000000000..2667178a06 --- /dev/null +++ b/tests/crypto_rng.c @@ -0,0 +1,64 @@ + +#ifdef HAVE_CONFIG_H +# include <config.h> +#endif + +#include <stdio.h> + +#include "utils.h" + +#include <gnutls/gnutls.h> +#include <gnutls/crypto.h> +#include "../lib/random.h" + +void mylogfn( int level, const char*ptr) +{ + printf ("Got Logs: "); + if (ptr) + printf ("%s", ptr); +} + +int rng_init( void** ctx) +{ + return 0; +} + +int rng_rnd ( void* ctx, int level, void* data, int datasize) +{ + memset(data, 1,datasize); + return 0; +} + +void rng_deinit( void* ctx) +{ +} + +void +doit (void) +{ + int rc; + char buf1[32]; + char buf2[32]; + int failed = 0; + gnutls_crypto_rnd_st rng = { rng_init, rng_rnd, rng_deinit }; + + + rc = gnutls_crypto_rnd_register (0, &rng); + + gnutls_global_init (); + + memset(buf2, 1, sizeof(buf2)); + + _gnutls_rnd(GNUTLS_RND_KEY, buf1, sizeof(buf1)); + + if (memcmp( buf1, buf2, sizeof(buf1))!=0) + failed = 1; + + gnutls_global_deinit (); + + if (failed == 0) { + success("rng registered ok\n"); + } else { + fail ("rng register test failed: %d\n", rc); + } +} |