From 6417f96ea9de2c8ab62e321ed651a7ccbd62ba0a Mon Sep 17 00:00:00 2001 From: Karel Miko Date: Sat, 29 Apr 2017 14:12:36 +0200 Subject: [PATCH] fortuna - import does not fail when input data are larger than export_size --- src/prngs/fortuna.c | 2 +- testprof/cipher_hash_test.c | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/prngs/fortuna.c b/src/prngs/fortuna.c index 72e8c93..15f3c4c 100644 --- a/src/prngs/fortuna.c +++ b/src/prngs/fortuna.c @@ -408,7 +408,7 @@ int fortuna_import(const unsigned char *in, unsigned long inlen, prng_state *prn LTC_ARGCHK(in != NULL); LTC_ARGCHK(prng != NULL); - if (inlen != (unsigned long)fortuna_desc.export_size) { + if (inlen < (unsigned long)fortuna_desc.export_size) { return CRYPT_INVALID_ARG; } diff --git a/testprof/cipher_hash_test.c b/testprof/cipher_hash_test.c index 7f9f968..abb2648 100644 --- a/testprof/cipher_hash_test.c +++ b/testprof/cipher_hash_test.c @@ -50,6 +50,7 @@ int cipher_hash_test(void) DOX(prng_descriptor[x].pexport(buf, &n, &nprng), prng_descriptor[x].name); prng_descriptor[x].done(&nprng); DOX(prng_descriptor[x].pimport(buf, n, &nprng), prng_descriptor[x].name); + DOX(prng_descriptor[x].pimport(buf, 4096, &nprng), prng_descriptor[x].name); /* try to import larger data */ DOX(prng_descriptor[x].ready(&nprng), prng_descriptor[x].name); if (prng_descriptor[x].read(buf, 100, &nprng) != 100) { fprintf(stderr, "Error reading from imported PRNG (%s)!\n", prng_descriptor[x].name);