Virgil Security Crypto library  1.8.2
VirgilRandom.h
1 
37 #ifndef VIRGIL_CRYPTO_VIRGIL_RANDOM_H
38 #define VIRGIL_CRYPTO_VIRGIL_RANDOM_H
39 
40 #include <cstddef>
41 
42 #include <virgil/crypto/VirgilByteArray.h>
43 
44 namespace virgil { namespace crypto { namespace foundation {
45 
49 class VirgilRandomImpl;
52 
56 class VirgilRandom {
57 public:
61 
68  explicit VirgilRandom(const virgil::crypto::VirgilByteArray& personalInfo);
70 
74 
81  virgil::crypto::VirgilByteArray randomize(size_t bytesNum);
82 
88  size_t randomize();
89 
100  size_t randomize(size_t min, size_t max);
102 
103 private:
104  VirgilRandom(const VirgilRandom& other);
105 
106  VirgilRandom& operator=(const VirgilRandom& other);
107 
108 public:
109  virtual ~VirgilRandom() throw();
110 
111 private:
112  VirgilRandomImpl* impl_;
113 };
114 
115 }}}
116 
117 #endif /* VIRGIL_CRYPTO_VIRGIL_RANDOM_H */
Provides randomization algorithm.
Definition: VirgilRandom.h:56
VirgilRandom(const virgil::crypto::VirgilByteArray &personalInfo)
Initialize randomization module with personalization data.
Definition: VirgilAsn1Compatible.h:46