00001 /* 00002 Copyright (c) 2008, Dirk Krause 00003 All rights reserved. 00004 00005 Redistribution and use in source and binary forms, 00006 with or without modification, are permitted provided 00007 that the following conditions are met: 00008 00009 * Redistributions of source code must retain the above 00010 copyright notice, this list of conditions and the 00011 following disclaimer. 00012 * Redistributions in binary form must reproduce the above 00013 opyright notice, this list of conditions and the following 00014 disclaimer in the documentation and/or other materials 00015 provided with the distribution. 00016 * Neither the name of the Dirk Krause nor the names of 00017 its contributors may be used to endorse or promote 00018 products derived from this software without specific 00019 prior written permission. 00020 00021 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 00022 CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, 00023 INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 00024 MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 00025 DISCLAIMED. 00026 IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 00027 LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 00028 EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 00029 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 00030 LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 00031 HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 00032 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 00033 OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 00034 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 00035 DAMAGE. 00036 */ 00037 00041 #ifndef DKRANDC_INC 00042 #define DKRANDC_INC 1 00043 00045 #define DK_RAND_ALLOW_SEED_FILE 1 00046 00048 #define DK_RAND_TYPE_NONE 0 00049 00051 #define DK_RAND_TYPE_OPENSSL 2 00052 00054 #define DK_RAND_TYPE_STATE 4 00055 00057 #define DK_RAND_TYPE_RAND48 8 00058 00060 #define DK_RAND_TYPE_SIMPLE 16 00061 00063 #define DK_RAND_OSSL_PRNG_SEED_BYTES 1024 00064 00066 #define DK_RAND_TYPE_ALL (\ 00067 DK_RAND_TYPE_OPENSSL \ 00068 | DK_RAND_TYPE_STATE \ 00069 | DK_RAND_TYPE_RAND48 \ 00070 | DK_RAND_TYPE_SIMPLE \ 00071 ) 00072 00074 #define DK_RAND_TYPE_CRYPTO (DK_RAND_TYPE_OPENSSL) 00075 00077 #define DK_RAND_ERR_NONE 0x00000000UL 00078 00080 #define DK_RAND_ERR_NO_PRNG 0x00000001UL 00081 00083 #define DK_RAND_ERR_UNSECURE_PRNG 0x00000002UL 00084 00086 #define DK_RAND_ERR_NO_SEED 0x00000004UL 00087 00089 #define DK_RAND_ERR_INVALID_ARGS 0x00000008UL 00090 00092 #define DK_RAND_ERR_OPENSSL_NOT_SUPPORTED 0x00000010UL 00093 00095 #define DK_RAND_ERR_NO_MEMORY 0x00000020UL 00096 00097 #endif 00098