diff options
Diffstat (limited to 'src/lib/cryptolink/crypto_rng.cc')
-rw-r--r-- | src/lib/cryptolink/crypto_rng.cc | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/src/lib/cryptolink/crypto_rng.cc b/src/lib/cryptolink/crypto_rng.cc new file mode 100644 index 0000000..13155fb --- /dev/null +++ b/src/lib/cryptolink/crypto_rng.cc @@ -0,0 +1,39 @@ +// Copyright (C) 2018-2024 Internet Systems Consortium, Inc. ("ISC") +// +// This Source Code Form is subject to the terms of the Mozilla Public +// License, v. 2.0. If a copy of the MPL was not distributed with this +// file, You can obtain one at http://mozilla.org/MPL/2.0/. + +#include <config.h> + +#include <cryptolink.h> +#include <cryptolink/crypto_rng.h> + +#include <boost/scoped_ptr.hpp> + +#include <cstring> + +namespace isc { +namespace cryptolink { + +RNG::RNG() { +} + +RNG::~RNG() { +} + +std::vector<uint8_t> +random(size_t len) { + RNGPtr rng(CryptoLink::getCryptoLink().getRNG()); + return (rng->random(len)); +} + +uint16_t generateQid() { + uint16_t val; + std::vector<uint8_t> rnd = random(sizeof(uint16_t)); + memmove(&val, &rnd[0], sizeof(uint16_t)); + return (val); +} + +} // namespace cryptolink +} // namespace isc |