diff options
author | Martin Willi <martin@strongswan.org> | 2005-11-16 16:10:47 +0000 |
---|---|---|
committer | Martin Willi <martin@strongswan.org> | 2005-11-16 16:10:47 +0000 |
commit | 146e568fe70fc289f65cc0e8d399f9d86e13bf70 (patch) | |
tree | 94fd51fee25be8f2709158d6a85c7700b9be1d9c /Source/charon/utils/randomizer.c | |
parent | a698ba19a4679367ed97e5c671c526e4b273aaff (diff) | |
download | strongswan-146e568fe70fc289f65cc0e8d399f9d86e13bf70.tar.bz2 strongswan-146e568fe70fc289f65cc0e8d399f9d86e13bf70.tar.xz |
- added methods which will allocate mem
Diffstat (limited to 'Source/charon/utils/randomizer.c')
-rw-r--r-- | Source/charon/utils/randomizer.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/Source/charon/utils/randomizer.c b/Source/charon/utils/randomizer.c index 90ad95bcb..9af7d5257 100644 --- a/Source/charon/utils/randomizer.c +++ b/Source/charon/utils/randomizer.c @@ -121,6 +121,20 @@ static status_t get_random_bytes(private_randomizer_t *this,size_t bytes, u_int8 { return (this->get_bytes_from_device(this, FALSE, bytes, buffer)); } +/** + * Implements randomizer_t's allocate_random_bytes function. + * See #randomizer_t.allocate_random_bytes for description. + */ +static status_t allocate_random_bytes(private_randomizer_t *this, size_t bytes, chunk_t *chunk) +{ + chunk->len = bytes; + chunk->ptr = allocator_alloc(bytes); + if (chunk->ptr == NULL) + { + return OUT_OF_RES; + } + return (this->get_bytes_from_device(this, FALSE, bytes, chunk->ptr)); +} /** * Implements randomizer_t's get_pseudo_random_bytes function. @@ -131,6 +145,23 @@ static status_t get_pseudo_random_bytes(private_randomizer_t *this,size_t bytes, return (this->get_bytes_from_device(this, TRUE, bytes, buffer)); } + +/** + * Implements randomizer_t's allocate_random_bytes function. + * See #randomizer_t.allocate_random_bytes for description. + */ +static status_t allocate_pseudo_random_bytes(private_randomizer_t *this, size_t bytes, chunk_t *chunk) +{ + chunk->len = bytes; + chunk->ptr = allocator_alloc(bytes); + if (chunk->ptr == NULL) + { + return OUT_OF_RES; + } + return (this->get_bytes_from_device(this, TRUE, bytes, chunk->ptr)); +} + + /** * Implements randomizer_t's destroy function. * See #randomizer_t.destroy for description. @@ -169,7 +200,9 @@ randomizer_t *randomizer_create_on_devices(char * random_dev_name,char * prandom /* public functions */ this->public.get_random_bytes = (status_t (*) (randomizer_t *,size_t, u_int8_t *)) get_random_bytes; + this->public.allocate_random_bytes = (status_t (*) (randomizer_t *,size_t, chunk_t *)) allocate_random_bytes; this->public.get_pseudo_random_bytes = (status_t (*) (randomizer_t *,size_t, u_int8_t *)) get_pseudo_random_bytes; + this->public.allocate_pseudo_random_bytes = (status_t (*) (randomizer_t *,size_t, chunk_t *)) allocate_pseudo_random_bytes; this->public.destroy = (status_t (*) (randomizer_t *))destroy; /* private functions */ |