Merge pull request #78 from libtom/idea/ltc_rng
add ltc_rng function pointer
This commit is contained in:
		
						commit
						fd1e351316
					
				@ -1097,6 +1097,10 @@
 | 
				
			|||||||
					RelativePath="src\misc\crypt\crypt_prng_is_valid.c"
 | 
										RelativePath="src\misc\crypt\crypt_prng_is_valid.c"
 | 
				
			||||||
					>
 | 
										>
 | 
				
			||||||
				</File>
 | 
									</File>
 | 
				
			||||||
 | 
									<File
 | 
				
			||||||
 | 
										RelativePath="src\misc\crypt\crypt_prng_rng_descriptor.c"
 | 
				
			||||||
 | 
										>
 | 
				
			||||||
 | 
									</File>
 | 
				
			||||||
				<File
 | 
									<File
 | 
				
			||||||
					RelativePath="src\misc\crypt\crypt_register_cipher.c"
 | 
										RelativePath="src\misc\crypt\crypt_register_cipher.c"
 | 
				
			||||||
					>
 | 
										>
 | 
				
			||||||
 | 
				
			|||||||
@ -1099,6 +1099,10 @@
 | 
				
			|||||||
					RelativePath="src\misc\crypt\crypt_prng_is_valid.c"
 | 
										RelativePath="src\misc\crypt\crypt_prng_is_valid.c"
 | 
				
			||||||
					>
 | 
										>
 | 
				
			||||||
				</File>
 | 
									</File>
 | 
				
			||||||
 | 
									<File
 | 
				
			||||||
 | 
										RelativePath="src\misc\crypt\crypt_prng_rng_descriptor.c"
 | 
				
			||||||
 | 
										>
 | 
				
			||||||
 | 
									</File>
 | 
				
			||||||
				<File
 | 
									<File
 | 
				
			||||||
					RelativePath="src\misc\crypt\crypt_register_cipher.c"
 | 
										RelativePath="src\misc\crypt\crypt_register_cipher.c"
 | 
				
			||||||
					>
 | 
										>
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										4
									
								
								makefile
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								makefile
									
									
									
									
									
								
							@ -95,8 +95,8 @@ src/misc/crypt/crypt_find_hash_oid.o src/misc/crypt/crypt_find_prng.o src/misc/c
 | 
				
			|||||||
src/misc/crypt/crypt_hash_descriptor.o src/misc/crypt/crypt_hash_is_valid.o \
 | 
					src/misc/crypt/crypt_hash_descriptor.o src/misc/crypt/crypt_hash_is_valid.o \
 | 
				
			||||||
src/misc/crypt/crypt_inits.o src/misc/crypt/crypt_ltc_mp_descriptor.o \
 | 
					src/misc/crypt/crypt_inits.o src/misc/crypt/crypt_ltc_mp_descriptor.o \
 | 
				
			||||||
src/misc/crypt/crypt_prng_descriptor.o src/misc/crypt/crypt_prng_is_valid.o \
 | 
					src/misc/crypt/crypt_prng_descriptor.o src/misc/crypt/crypt_prng_is_valid.o \
 | 
				
			||||||
src/misc/crypt/crypt_register_cipher.o src/misc/crypt/crypt_register_hash.o \
 | 
					src/misc/crypt/crypt_prng_rng_descriptor.o src/misc/crypt/crypt_register_cipher.o \
 | 
				
			||||||
src/misc/crypt/crypt_register_prng.o src/misc/crypt/crypt_sizes.o \
 | 
					src/misc/crypt/crypt_register_hash.o src/misc/crypt/crypt_register_prng.o src/misc/crypt/crypt_sizes.o \
 | 
				
			||||||
src/misc/crypt/crypt_unregister_cipher.o src/misc/crypt/crypt_unregister_hash.o \
 | 
					src/misc/crypt/crypt_unregister_cipher.o src/misc/crypt/crypt_unregister_hash.o \
 | 
				
			||||||
src/misc/crypt/crypt_unregister_prng.o src/misc/error_to_string.o src/misc/hkdf/hkdf.o \
 | 
					src/misc/crypt/crypt_unregister_prng.o src/misc/error_to_string.o src/misc/hkdf/hkdf.o \
 | 
				
			||||||
src/misc/hkdf/hkdf_test.o src/misc/mem_neq.o src/misc/pk_get_oid.o src/misc/pkcs5/pkcs_5_1.o \
 | 
					src/misc/hkdf/hkdf_test.o src/misc/mem_neq.o src/misc/pk_get_oid.o src/misc/pkcs5/pkcs_5_1.o \
 | 
				
			||||||
 | 
				
			|||||||
@ -152,8 +152,8 @@ src/misc/crypt/crypt_find_hash_oid.o src/misc/crypt/crypt_find_prng.o src/misc/c
 | 
				
			|||||||
src/misc/crypt/crypt_hash_descriptor.o src/misc/crypt/crypt_hash_is_valid.o \
 | 
					src/misc/crypt/crypt_hash_descriptor.o src/misc/crypt/crypt_hash_is_valid.o \
 | 
				
			||||||
src/misc/crypt/crypt_inits.o src/misc/crypt/crypt_ltc_mp_descriptor.o \
 | 
					src/misc/crypt/crypt_inits.o src/misc/crypt/crypt_ltc_mp_descriptor.o \
 | 
				
			||||||
src/misc/crypt/crypt_prng_descriptor.o src/misc/crypt/crypt_prng_is_valid.o \
 | 
					src/misc/crypt/crypt_prng_descriptor.o src/misc/crypt/crypt_prng_is_valid.o \
 | 
				
			||||||
src/misc/crypt/crypt_register_cipher.o src/misc/crypt/crypt_register_hash.o \
 | 
					src/misc/crypt/crypt_prng_rng_descriptor.o src/misc/crypt/crypt_register_cipher.o \
 | 
				
			||||||
src/misc/crypt/crypt_register_prng.o src/misc/crypt/crypt_sizes.o \
 | 
					src/misc/crypt/crypt_register_hash.o src/misc/crypt/crypt_register_prng.o src/misc/crypt/crypt_sizes.o \
 | 
				
			||||||
src/misc/crypt/crypt_unregister_cipher.o src/misc/crypt/crypt_unregister_hash.o \
 | 
					src/misc/crypt/crypt_unregister_cipher.o src/misc/crypt/crypt_unregister_hash.o \
 | 
				
			||||||
src/misc/crypt/crypt_unregister_prng.o src/misc/error_to_string.o src/misc/hkdf/hkdf.o \
 | 
					src/misc/crypt/crypt_unregister_prng.o src/misc/error_to_string.o src/misc/hkdf/hkdf.o \
 | 
				
			||||||
src/misc/hkdf/hkdf_test.o src/misc/mem_neq.o src/misc/pk_get_oid.o src/misc/pkcs5/pkcs_5_1.o \
 | 
					src/misc/hkdf/hkdf_test.o src/misc/mem_neq.o src/misc/pk_get_oid.o src/misc/pkcs5/pkcs_5_1.o \
 | 
				
			||||||
 | 
				
			|||||||
@ -99,8 +99,8 @@ src/misc/crypt/crypt_find_hash_oid.o src/misc/crypt/crypt_find_prng.o src/misc/c
 | 
				
			|||||||
src/misc/crypt/crypt_hash_descriptor.o src/misc/crypt/crypt_hash_is_valid.o \
 | 
					src/misc/crypt/crypt_hash_descriptor.o src/misc/crypt/crypt_hash_is_valid.o \
 | 
				
			||||||
src/misc/crypt/crypt_inits.o src/misc/crypt/crypt_ltc_mp_descriptor.o \
 | 
					src/misc/crypt/crypt_inits.o src/misc/crypt/crypt_ltc_mp_descriptor.o \
 | 
				
			||||||
src/misc/crypt/crypt_prng_descriptor.o src/misc/crypt/crypt_prng_is_valid.o \
 | 
					src/misc/crypt/crypt_prng_descriptor.o src/misc/crypt/crypt_prng_is_valid.o \
 | 
				
			||||||
src/misc/crypt/crypt_register_cipher.o src/misc/crypt/crypt_register_hash.o \
 | 
					src/misc/crypt/crypt_prng_rng_descriptor.o src/misc/crypt/crypt_register_cipher.o \
 | 
				
			||||||
src/misc/crypt/crypt_register_prng.o src/misc/crypt/crypt_sizes.o \
 | 
					src/misc/crypt/crypt_register_hash.o src/misc/crypt/crypt_register_prng.o src/misc/crypt/crypt_sizes.o \
 | 
				
			||||||
src/misc/crypt/crypt_unregister_cipher.o src/misc/crypt/crypt_unregister_hash.o \
 | 
					src/misc/crypt/crypt_unregister_cipher.o src/misc/crypt/crypt_unregister_hash.o \
 | 
				
			||||||
src/misc/crypt/crypt_unregister_prng.o src/misc/error_to_string.o src/misc/hkdf/hkdf.o \
 | 
					src/misc/crypt/crypt_unregister_prng.o src/misc/error_to_string.o src/misc/hkdf/hkdf.o \
 | 
				
			||||||
src/misc/hkdf/hkdf_test.o src/misc/mem_neq.o src/misc/pk_get_oid.o src/misc/pkcs5/pkcs_5_1.o \
 | 
					src/misc/hkdf/hkdf_test.o src/misc/mem_neq.o src/misc/pk_get_oid.o src/misc/pkcs5/pkcs_5_1.o \
 | 
				
			||||||
 | 
				
			|||||||
@ -57,8 +57,8 @@ src/misc/crypt/crypt_find_hash_oid.obj src/misc/crypt/crypt_find_prng.obj src/mi
 | 
				
			|||||||
src/misc/crypt/crypt_hash_descriptor.obj src/misc/crypt/crypt_hash_is_valid.obj \
 | 
					src/misc/crypt/crypt_hash_descriptor.obj src/misc/crypt/crypt_hash_is_valid.obj \
 | 
				
			||||||
src/misc/crypt/crypt_inits.obj src/misc/crypt/crypt_ltc_mp_descriptor.obj \
 | 
					src/misc/crypt/crypt_inits.obj src/misc/crypt/crypt_ltc_mp_descriptor.obj \
 | 
				
			||||||
src/misc/crypt/crypt_prng_descriptor.obj src/misc/crypt/crypt_prng_is_valid.obj \
 | 
					src/misc/crypt/crypt_prng_descriptor.obj src/misc/crypt/crypt_prng_is_valid.obj \
 | 
				
			||||||
src/misc/crypt/crypt_register_cipher.obj src/misc/crypt/crypt_register_hash.obj \
 | 
					src/misc/crypt/crypt_prng_rng_descriptor.obj src/misc/crypt/crypt_register_cipher.obj \
 | 
				
			||||||
src/misc/crypt/crypt_register_prng.obj src/misc/crypt/crypt_sizes.obj \
 | 
					src/misc/crypt/crypt_register_hash.obj src/misc/crypt/crypt_register_prng.obj src/misc/crypt/crypt_sizes.obj \
 | 
				
			||||||
src/misc/crypt/crypt_unregister_cipher.obj src/misc/crypt/crypt_unregister_hash.obj \
 | 
					src/misc/crypt/crypt_unregister_cipher.obj src/misc/crypt/crypt_unregister_hash.obj \
 | 
				
			||||||
src/misc/crypt/crypt_unregister_prng.obj src/misc/error_to_string.obj src/misc/hkdf/hkdf.obj \
 | 
					src/misc/crypt/crypt_unregister_prng.obj src/misc/error_to_string.obj src/misc/hkdf/hkdf.obj \
 | 
				
			||||||
src/misc/hkdf/hkdf_test.obj src/misc/mem_neq.obj src/misc/pk_get_oid.obj src/misc/pkcs5/pkcs_5_1.obj \
 | 
					src/misc/hkdf/hkdf_test.obj src/misc/mem_neq.obj src/misc/pk_get_oid.obj src/misc/pkcs5/pkcs_5_1.obj \
 | 
				
			||||||
 | 
				
			|||||||
@ -85,8 +85,8 @@ src/misc/crypt/crypt_find_hash_oid.o src/misc/crypt/crypt_find_prng.o src/misc/c
 | 
				
			|||||||
src/misc/crypt/crypt_hash_descriptor.o src/misc/crypt/crypt_hash_is_valid.o \
 | 
					src/misc/crypt/crypt_hash_descriptor.o src/misc/crypt/crypt_hash_is_valid.o \
 | 
				
			||||||
src/misc/crypt/crypt_inits.o src/misc/crypt/crypt_ltc_mp_descriptor.o \
 | 
					src/misc/crypt/crypt_inits.o src/misc/crypt/crypt_ltc_mp_descriptor.o \
 | 
				
			||||||
src/misc/crypt/crypt_prng_descriptor.o src/misc/crypt/crypt_prng_is_valid.o \
 | 
					src/misc/crypt/crypt_prng_descriptor.o src/misc/crypt/crypt_prng_is_valid.o \
 | 
				
			||||||
src/misc/crypt/crypt_register_cipher.o src/misc/crypt/crypt_register_hash.o \
 | 
					src/misc/crypt/crypt_prng_rng_descriptor.o src/misc/crypt/crypt_register_cipher.o \
 | 
				
			||||||
src/misc/crypt/crypt_register_prng.o src/misc/crypt/crypt_sizes.o \
 | 
					src/misc/crypt/crypt_register_hash.o src/misc/crypt/crypt_register_prng.o src/misc/crypt/crypt_sizes.o \
 | 
				
			||||||
src/misc/crypt/crypt_unregister_cipher.o src/misc/crypt/crypt_unregister_hash.o \
 | 
					src/misc/crypt/crypt_unregister_cipher.o src/misc/crypt/crypt_unregister_hash.o \
 | 
				
			||||||
src/misc/crypt/crypt_unregister_prng.o src/misc/error_to_string.o src/misc/hkdf/hkdf.o \
 | 
					src/misc/crypt/crypt_unregister_prng.o src/misc/error_to_string.o src/misc/hkdf/hkdf.o \
 | 
				
			||||||
src/misc/hkdf/hkdf_test.o src/misc/mem_neq.o src/misc/pk_get_oid.o src/misc/pkcs5/pkcs_5_1.o \
 | 
					src/misc/hkdf/hkdf_test.o src/misc/mem_neq.o src/misc/pk_get_oid.o src/misc/pkcs5/pkcs_5_1.o \
 | 
				
			||||||
 | 
				
			|||||||
@ -93,8 +93,8 @@ src/misc/crypt/crypt_find_hash_oid.o src/misc/crypt/crypt_find_prng.o src/misc/c
 | 
				
			|||||||
src/misc/crypt/crypt_hash_descriptor.o src/misc/crypt/crypt_hash_is_valid.o \
 | 
					src/misc/crypt/crypt_hash_descriptor.o src/misc/crypt/crypt_hash_is_valid.o \
 | 
				
			||||||
src/misc/crypt/crypt_inits.o src/misc/crypt/crypt_ltc_mp_descriptor.o \
 | 
					src/misc/crypt/crypt_inits.o src/misc/crypt/crypt_ltc_mp_descriptor.o \
 | 
				
			||||||
src/misc/crypt/crypt_prng_descriptor.o src/misc/crypt/crypt_prng_is_valid.o \
 | 
					src/misc/crypt/crypt_prng_descriptor.o src/misc/crypt/crypt_prng_is_valid.o \
 | 
				
			||||||
src/misc/crypt/crypt_register_cipher.o src/misc/crypt/crypt_register_hash.o \
 | 
					src/misc/crypt/crypt_prng_rng_descriptor.o src/misc/crypt/crypt_register_cipher.o \
 | 
				
			||||||
src/misc/crypt/crypt_register_prng.o src/misc/crypt/crypt_sizes.o \
 | 
					src/misc/crypt/crypt_register_hash.o src/misc/crypt/crypt_register_prng.o src/misc/crypt/crypt_sizes.o \
 | 
				
			||||||
src/misc/crypt/crypt_unregister_cipher.o src/misc/crypt/crypt_unregister_hash.o \
 | 
					src/misc/crypt/crypt_unregister_cipher.o src/misc/crypt/crypt_unregister_hash.o \
 | 
				
			||||||
src/misc/crypt/crypt_unregister_prng.o src/misc/error_to_string.o src/misc/hkdf/hkdf.o \
 | 
					src/misc/crypt/crypt_unregister_prng.o src/misc/error_to_string.o src/misc/hkdf/hkdf.o \
 | 
				
			||||||
src/misc/hkdf/hkdf_test.o src/misc/mem_neq.o src/misc/pk_get_oid.o src/misc/pkcs5/pkcs_5_1.o \
 | 
					src/misc/hkdf/hkdf_test.o src/misc/mem_neq.o src/misc/pk_get_oid.o src/misc/pkcs5/pkcs_5_1.o \
 | 
				
			||||||
 | 
				
			|||||||
@ -304,6 +304,9 @@
 | 
				
			|||||||
/* rng_make_prng() */
 | 
					/* rng_make_prng() */
 | 
				
			||||||
#define LTC_RNG_MAKE_PRNG
 | 
					#define LTC_RNG_MAKE_PRNG
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* enable the ltc_rng hook to integrate e.g. embedded hardware RNG's easily */
 | 
				
			||||||
 | 
					/* #define LTC_PRNG_ENABLE_LTC_RNG */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif /* LTC_NO_PRNGS */
 | 
					#endif /* LTC_NO_PRNGS */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef LTC_YARROW
 | 
					#ifdef LTC_YARROW
 | 
				
			||||||
 | 
				
			|||||||
@ -193,6 +193,11 @@ unsigned long rng_get_bytes(unsigned char *out,
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
int rng_make_prng(int bits, int wprng, prng_state *prng, void (*callback)(void));
 | 
					int rng_make_prng(int bits, int wprng, prng_state *prng, void (*callback)(void));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef LTC_PRNG_ENABLE_LTC_RNG
 | 
				
			||||||
 | 
					extern unsigned long (*ltc_rng)(unsigned char *out, unsigned long outlen,
 | 
				
			||||||
 | 
					      void (*callback)(void));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* $Source$ */
 | 
					/* $Source$ */
 | 
				
			||||||
/* $Revision$ */
 | 
					/* $Revision$ */
 | 
				
			||||||
 | 
				
			|||||||
@ -371,6 +371,9 @@ const char *crypt_build_settings =
 | 
				
			|||||||
#if defined(LTC_RNG_MAKE_PRNG)
 | 
					#if defined(LTC_RNG_MAKE_PRNG)
 | 
				
			||||||
    " LTC_RNG_MAKE_PRNG "
 | 
					    " LTC_RNG_MAKE_PRNG "
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					#if defined(LTC_PRNG_ENABLE_LTC_RNG)
 | 
				
			||||||
 | 
					    " LTC_PRNG_ENABLE_LTC_RNG "
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
#if defined(LTC_HASH_HELPERS)
 | 
					#if defined(LTC_HASH_HELPERS)
 | 
				
			||||||
    " LTC_HASH_HELPERS "
 | 
					    " LTC_HASH_HELPERS "
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										15
									
								
								src/misc/crypt/crypt_prng_rng_descriptor.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								src/misc/crypt/crypt_prng_rng_descriptor.c
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,15 @@
 | 
				
			|||||||
 | 
					/* LibTomCrypt, modular cryptographic library -- Tom St Denis
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * LibTomCrypt is a library that provides various cryptographic
 | 
				
			||||||
 | 
					 * algorithms in a highly modular and flexible manner.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * The library is free for all purposes without any express
 | 
				
			||||||
 | 
					 * guarantee it works.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Tom St Denis, tomstdenis@gmail.com, http://libtom.org
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#include "tomcrypt.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef LTC_PRNG_ENABLE_LTC_RNG
 | 
				
			||||||
 | 
					unsigned long (*ltc_rng)(unsigned char *out, unsigned long outlen, void (*callback)(void));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
@ -135,6 +135,15 @@ unsigned long rng_get_bytes(unsigned char *out, unsigned long outlen,
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
   LTC_ARGCHK(out != NULL);
 | 
					   LTC_ARGCHK(out != NULL);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef LTC_PRNG_ENABLE_LTC_RNG
 | 
				
			||||||
 | 
					   if (ltc_rng) {
 | 
				
			||||||
 | 
					      x = ltc_rng(out, outlen, callback);
 | 
				
			||||||
 | 
					      if (x != 0) {
 | 
				
			||||||
 | 
					         return x;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					   }
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#if defined(_WIN32) || defined(_WIN32_WCE)
 | 
					#if defined(_WIN32) || defined(_WIN32_WCE)
 | 
				
			||||||
   x = rng_win32(out, outlen, callback); if (x != 0) { return x; }
 | 
					   x = rng_win32(out, outlen, callback); if (x != 0) { return x; }
 | 
				
			||||||
#elif defined(LTC_DEVRANDOM)
 | 
					#elif defined(LTC_DEVRANDOM)
 | 
				
			||||||
 | 
				
			|||||||
@ -302,8 +302,29 @@ static void _unregister_all(void)
 | 
				
			|||||||
#endif
 | 
					#endif
 | 
				
			||||||
} /* _cleanup() */
 | 
					} /* _cleanup() */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef LTC_PRNG_ENABLE_LTC_RNG
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static unsigned long my_test_rng_read;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static unsigned long my_test_rng(unsigned char *buf, unsigned long len,
 | 
				
			||||||
 | 
					                             void (*callback)(void))
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					   unsigned long n;
 | 
				
			||||||
 | 
					   LTC_UNUSED_PARAM(callback);
 | 
				
			||||||
 | 
					   for (n = 0; n < len; ++n) {
 | 
				
			||||||
 | 
					      buf[n] = 4;
 | 
				
			||||||
 | 
					   }
 | 
				
			||||||
 | 
					   my_test_rng_read += n;
 | 
				
			||||||
 | 
					   return n;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void reg_algs(void)
 | 
					void reg_algs(void)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
					#ifdef LTC_PRNG_ENABLE_LTC_RNG
 | 
				
			||||||
 | 
					  unsigned long before;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
  int err;
 | 
					  int err;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  atexit(_unregister_all);
 | 
					  atexit(_unregister_all);
 | 
				
			||||||
@ -441,6 +462,23 @@ register_prng(&rc4_desc);
 | 
				
			|||||||
register_prng(&sober128_desc);
 | 
					register_prng(&sober128_desc);
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef LTC_PRNG_ENABLE_LTC_RNG
 | 
				
			||||||
 | 
					   ltc_rng = my_test_rng;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   before = my_test_rng_read;
 | 
				
			||||||
 | 
					   if ((err = rng_make_prng(128, find_prng("yarrow"), &yarrow_prng, NULL)) != CRYPT_OK) {
 | 
				
			||||||
 | 
					      fprintf(stderr, "rng_make_prng with 'my_test_rng' failed: %s\n", error_to_string(err));
 | 
				
			||||||
 | 
					      exit(EXIT_FAILURE);
 | 
				
			||||||
 | 
					   }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   if (before == my_test_rng_read) {
 | 
				
			||||||
 | 
					      fprintf(stderr, "somehow there was no read from the ltc_rng! %lu == %lu\n", before, my_test_rng_read);
 | 
				
			||||||
 | 
					      exit(EXIT_FAILURE);
 | 
				
			||||||
 | 
					   }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   ltc_rng = NULL;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   if ((err = rng_make_prng(128, find_prng("yarrow"), &yarrow_prng, NULL)) != CRYPT_OK) {
 | 
					   if ((err = rng_make_prng(128, find_prng("yarrow"), &yarrow_prng, NULL)) != CRYPT_OK) {
 | 
				
			||||||
      fprintf(stderr, "rng_make_prng failed: %s\n", error_to_string(err));
 | 
					      fprintf(stderr, "rng_make_prng failed: %s\n", error_to_string(err));
 | 
				
			||||||
      exit(EXIT_FAILURE);
 | 
					      exit(EXIT_FAILURE);
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user