diff options
| author | Michael Brown | 2012-01-23 16:00:27 +0100 |
|---|---|---|
| committer | Michael Brown | 2012-01-23 16:07:46 +0100 |
| commit | fcc35bf48776fff9ebfd8db537679583221a9cd4 (patch) | |
| tree | ee9e99247a789a75177d3634cb82d19abe6aca79 /src/crypto | |
| parent | [rng] Add NIST self-tests for HMAC_DRBG (diff) | |
| download | ipxe-fcc35bf48776fff9ebfd8db537679583221a9cd4.tar.gz ipxe-fcc35bf48776fff9ebfd8db537679583221a9cd4.tar.xz ipxe-fcc35bf48776fff9ebfd8db537679583221a9cd4.zip | |
[rng] Add dummy entropy source
Cryptographic random number generation requires an entropy source,
which is used as the input to a Deterministic Random Bit Generator
(DRBG).
iPXE does not currently have a suitable entropy source. Provide a
dummy source to allow the DRBG code to be implemented.
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/crypto')
| -rw-r--r-- | src/crypto/entropy.c | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/src/crypto/entropy.c b/src/crypto/entropy.c new file mode 100644 index 000000000..86fa89783 --- /dev/null +++ b/src/crypto/entropy.c @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2012 Michael Brown <mbrown@fensystems.co.uk>. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +FILE_LICENCE ( GPL2_OR_LATER ); + +/** @file + * + * Entropy source + * + */ + +#include <string.h> +#include <ipxe/entropy.h> + +/** + * Obtain entropy input + * + * @v entropy_bits Minimum amount of entropy, in bits + * @v data Data buffer + * @v min_len Minimum length of entropy input, in bytes + * @v max_len Maximum length of entropy input, in bytes + * @ret len Length of entropy input, in bytes + */ +int get_entropy_input ( unsigned int entropy_bits, void *data, size_t min_len, + size_t max_len ) { + + /* Placeholder to allow remainder of RBG code to be tested */ + ( void ) entropy_bits; + ( void ) min_len; + memset ( data, 0x01, max_len ); + + return max_len; +} |
