11 #include <botan/secmem.h>
12 #include <botan/hex.h>
27 rng.
randomize(m_uuid.data(), m_uuid.size());
30 m_uuid[6] = 0x40 | (m_uuid[6] & 0x0F);
33 m_uuid[8] = 0xC0 | (m_uuid[8] & 0x3F);
36 UUID(
const std::vector<uint8_t>& blob)
46 UUID(
const std::string& uuid_str)
48 if(uuid_str.size() != 36 ||
50 uuid_str[14] !=
'-' ||
51 uuid_str[19] !=
'-' ||
58 for(
size_t i = 0; i != uuid_str.size(); ++i)
70 if(m_uuid.size() != 16)
93 return m_uuid == other.m_uuid;
98 bool is_valid()
const {
return m_uuid.size() == 16; }
101 std::vector<uint8_t> m_uuid;
bool operator==(const UUID &other)
virtual void randomize(uint8_t output[], size_t length)=0
bool operator!=(const UUID &other)
const std::vector< uint8_t > binary_value() const
std::string to_string() const
UUID(const std::vector< uint8_t > &blob)
UUID(RandomNumberGenerator &rng)
void hex_encode(char output[], const uint8_t input[], size_t input_length, bool uppercase)
size_t hex_decode(uint8_t output[], const char input[], size_t input_length, size_t &input_consumed, bool ignore_ws)
UUID(const std::string &uuid_str)