Botan 2.19.1
Crypto and TLS for C&
p11_randomgenerator.cpp
Go to the documentation of this file.
1/*
2* PKCS#11 Random Generator
3* (C) 2016 Daniel Neus, Sirrix AG
4* (C) 2016 Philipp Weber, Sirrix AG
5*
6* Botan is released under the Simplified BSD License (see license.txt)
7*/
8
9#include <botan/p11_randomgenerator.h>
10
11namespace Botan {
12
13namespace PKCS11 {
14
16 : m_session(session)
17 {}
18
19void PKCS11_RNG::randomize(uint8_t output[], std::size_t length)
20 {
21 module()->C_GenerateRandom(m_session.get().handle(), output, Ulong(length));
22 }
23
24void PKCS11_RNG::add_entropy(const uint8_t in[], std::size_t length)
25 {
26 module()->C_SeedRandom(m_session.get().handle(), const_cast<uint8_t*>(in), Ulong(length));
27 }
28
29}
30}
31
bool C_GenerateRandom(SessionHandle session, Byte *random_data_ptr, Ulong random_len, ReturnValue *return_value=ThrowException) const
Definition: p11.cpp:743
bool C_SeedRandom(SessionHandle session, Byte *seed_ptr, Ulong seed_len, ReturnValue *return_value=ThrowException) const
Definition: p11.cpp:735
void randomize(uint8_t output[], std::size_t length) override
Calls C_GenerateRandom to generate random data.
PKCS11_RNG(Session &session)
Initialize the RNG with the PKCS#11 session that provides access to the cryptoki functions.
void add_entropy(const uint8_t in[], std::size_t length) override
Calls C_SeedRandom to add entropy to the random generation function of the token/middleware.
Represents a PKCS#11 session.
Definition: p11_types.h:131
CK_ULONG Ulong
Definition: p11.h:838
Definition: alg_id.cpp:13