return ret;
}
-RawBuffer pack(const RawBuffer &data, const Password &pass)
-{
- int scheme = EncryptionScheme::NONE;
- RawBuffer packed = data;
-
- if (!pass.empty()) {
- RawBuffer iv = generateRandIV();
- RawBuffer key = passwordToKey(pass, iv, Params::DERIVED_KEY_LENGTH);
-
- std::pair<RawBuffer, RawBuffer> ret;
-
- try {
- ret = Crypto::SW::Internals::encryptDataAesGcm(key, data, iv,
- Params::DEFAULT_AES_GCM_TAG_LEN_BYTES);
- } catch (const Exc::Exception &e) {
- ThrowErr(Exc::InternalError, "Encryption with custom password failed, internal error");
- }
-
- scheme |= EncryptionScheme::PASSWORD;
-
- // serialization exceptions will be catched as CKM::Exception and will cause
- // CKM_API_ERROR_SERVER_ERROR
- packed = SerializeMessage(ret.first, iv, ret.second);
- }
-
- // encryption scheme + internal buffer
- return SerializeMessage(scheme, packed);
-}
-
std::string rawToHexString(const RawBuffer &raw)
{
return hexDump<std::string>(raw);
return Token(m_backendId, data.type, pack(data.data, pass));
}
+RawBuffer Store::pack(const RawBuffer &data, const Password &pass)
+{
+ int scheme = EncryptionScheme::NONE;
+ RawBuffer packed = data;
+
+ if (!pass.empty()) {
+ RawBuffer iv = generateRandIV();
+ RawBuffer key = passwordToKey(pass, iv, Params::DERIVED_KEY_LENGTH);
+
+ std::pair<RawBuffer, RawBuffer> ret;
+
+ try {
+ ret = Crypto::SW::Internals::encryptDataAesGcm(key, data, iv,
+ Params::DEFAULT_AES_GCM_TAG_LEN_BYTES);
+ } catch (const Exc::Exception &e) {
+ ThrowErr(Exc::InternalError, "Encryption with custom password failed, internal error");
+ }
+
+ scheme |= EncryptionScheme::PASSWORD;
+
+ // serialization exceptions will be catched as CKM::Exception and will cause
+ // CKM_API_ERROR_SERVER_ERROR
+ packed = SerializeMessage(ret.first, iv, ret.second);
+ }
+
+ // encryption scheme + internal buffer
+ return SerializeMessage(scheme, packed);
+}
+
} // namespace SW
} // namespace Crypto
} // namespace CKM