From fcc35bf48776fff9ebfd8db537679583221a9cd4 Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Mon, 23 Jan 2012 15:00:27 +0000 Subject: [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 --- src/crypto/entropy.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 src/crypto/entropy.c (limited to 'src/crypto') 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 . + * + * 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 +#include + +/** + * 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; +} -- cgit v1.2.3-55-g7522