1 /* random.h - random functions 2 * Copyright (C) 1998, 2002, 2006 Free Software Foundation, Inc. 3 * 4 * This file is part of Libgcrypt. 5 * 6 * Libgcrypt is free software; you can redistribute it and/or modify 7 * it under the terms of the GNU Lesser General Public License as 8 * published by the Free Software Foundation; either version 2.1 of 9 * the License, or (at your option) any later version. 10 * 11 * Libgcrypt is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 * GNU Lesser General Public License for more details. 15 * 16 * You should have received a copy of the GNU Lesser General Public 17 * License along with this program; if not, write to the Free Software 18 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA 19 */ 20 #ifndef G10_RANDOM_H 21 #define G10_RANDOM_H 22 23 #include "types.h" 24 #include "../src/gcrypt-testapi.h" /* struct gcry_drbg_test_vector */ 25 26 /*-- random.c --*/ 27 void _gcry_register_random_progress (void (*cb)(void *,const char*,int,int,int), 28 void *cb_data ); 29 30 void _gcry_set_preferred_rng_type (int type); 31 void _gcry_random_initialize (int full); 32 void _gcry_random_close_fds (void); 33 int _gcry_get_rng_type (int ignore_fips_mode); 34 void _gcry_random_dump_stats(void); 35 void _gcry_secure_random_alloc(void); 36 void _gcry_enable_quick_random_gen (void); 37 int _gcry_random_is_faked(void); 38 void _gcry_set_random_daemon_socket (const char *socketname); 39 int _gcry_use_random_daemon (int onoff); 40 void _gcry_set_random_seed_file (const char *name); 41 void _gcry_update_random_seed_file (void); 42 43 void _gcry_fast_random_poll( void ); 44 45 gcry_err_code_t _gcry_random_init_external_test (void **r_context, 46 unsigned int flags, 47 const void *key, 48 size_t keylen, 49 const void *seed, 50 size_t seedlen, 51 const void *dt, 52 size_t dtlen); 53 gcry_err_code_t _gcry_random_run_external_test (void *context, 54 char *buffer, size_t buflen); 55 void _gcry_random_deinit_external_test (void *context); 56 57 /*-- random-drbg.c --*/ 58 gpg_err_code_t _gcry_rngdrbg_reinit (const char *flagstr, 59 gcry_buffer_t *pers, int npers); 60 gpg_err_code_t _gcry_rngdrbg_cavs_test (struct gcry_drbg_test_vector *t, 61 unsigned char *buf); 62 gpg_err_code_t _gcry_rngdrbg_healthcheck_one (struct gcry_drbg_test_vector *t); 63 64 /*-- rndegd.c --*/ 65 gpg_error_t _gcry_rndegd_set_socket_name (const char *name); 66 67 /*-- rndjent.c --*/ 68 unsigned int _gcry_rndjent_get_version (int *r_active); 69 70 71 /*-- random-daemon.c (only used from random.c) --*/ 72 #ifdef USE_RANDOM_DAEMON 73 void _gcry_daemon_initialize_basics (void); 74 int _gcry_daemon_randomize (const char *socketname, 75 void *buffer, size_t length, 76 enum gcry_random_level level); 77 #endif /*USE_RANDOM_DAEMON*/ 78 79 #endif /*G10_RANDOM_H*/ 80