return key;
}
+
+template <size_t N>
+bool randomize(uint8_t (&array)[N])
+{
+ return RAND_bytes(array, N) == 1;
+}
+
} // anonymous namespace
WrappedKeyAndInfoContainer::WrappedKeyAndInfoContainer()
uint8_t key[MAX_KEY_SIZE];
- if (!RAND_bytes(key, m_kmcDKEK->getKeyAndInfo().keyInfo.keyLength) ||
- !RAND_bytes(wkmcDEK.getWrappedKeyAndInfo().keyInfo.iv, MAX_IV_SIZE))
+ if (!randomize(key) || !randomize(wkmcDEK.getWrappedKeyAndInfo().keyInfo.iv))
ThrowErr(Exc::InternalError, "OPENSSL_ENGINE_ERROR");
KeyData PKEK2 = makePKEK2(m_kmcDKEK->getKeyAndInfo().key, resized_client);
wkmcDKEK.setKeyInfoClient(user);
- if (!RAND_bytes(wkmcDKEK.getWrappedKeyAndInfo().keyInfo.salt, MAX_SALT_SIZE) ||
- !RAND_bytes(key, MAX_KEY_SIZE) ||
- !RAND_bytes(wkmcDKEK.getWrappedKeyAndInfo().keyInfo.iv, MAX_IV_SIZE))
+ if (!randomize(wkmcDKEK.getWrappedKeyAndInfo().keyInfo.salt) ||
+ !randomize(key) ||
+ !randomize(wkmcDKEK.getWrappedKeyAndInfo().keyInfo.iv)) {
ThrowErr(Exc::InternalError, "OPENSSL_ENGINE_ERROR");
+ }
KeyData PKEK1 = makePKEK1(wkmcDKEK.getWrappedKeyAndInfo().keyInfo, userPassword);