return -EOPNOTSUPP;
}
bufferptr s;
- int r = ch->create(nullptr, s); // fixme
+ int r = ch->create(cct->random(), s);
delete ch;
if (r < 0)
return r;
if (!crypto)
return false;
- if (crypto->create(nullptr, bp) < 0) // fixme
+ if (crypto->create(cct->random(), bp) < 0)
return false;
secret.set_secret(CEPH_CRYPTO_AES, bp, ceph_clock_now());
_crypto_none = CryptoHandler::create(CEPH_CRYPTO_NONE);
_crypto_aes = CryptoHandler::create(CEPH_CRYPTO_AES);
+ _crypto_random.reset(new CryptoRandom());
MempoolObs *mempool_obs = 0;
lookup_or_create_singleton_object(mempool_obs, "mempool_obs");
#define CEPH_CEPHCONTEXT_H
#include <set>
+#include <memory>
#include <mutex>
#include <atomic>
class CephContextHook;
class CephContextObs;
class CryptoHandler;
+class CryptoRandom;
namespace ceph {
class PluginRegistry;
*/
CryptoHandler *get_crypto_handler(int type);
+ CryptoRandom* random() const { return _crypto_random.get(); }
+
/// check if experimental feature is enable, and emit appropriate warnings
bool check_experimental_feature_enabled(const std::string& feature);
bool check_experimental_feature_enabled(const std::string& feature,
// crypto
CryptoHandler *_crypto_none;
CryptoHandler *_crypto_aes;
+ std::unique_ptr<CryptoRandom> _crypto_random;
// experimental
CephContextObs *_cct_obs;