/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2015 - 2021 Samsung Electronics Co., Ltd All Rights Reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
*/
/*
* @file store.h
- * @author Bartłomiej Grzelewski (b.grzelewski@samsung.com)
+ * @author Lukasz Kostyra (l.kostyra@samsung.com)
* @version 1.0
*/
#pragma once
-#include <generic-backend/gkey.h>
+#include <generic-backend/gobj.h>
#include <generic-backend/gstore.h>
namespace CKM {
class Store : public GStore {
public:
- explicit Store(CryptoBackend backendId);
+ explicit Store(CryptoBackend backendId);
- virtual GKeyShPtr getKey(const Token &token);
- virtual TokenPair generateAKey(const CryptoAlgorithm &);
- virtual Token import(DataType dataType, const RawBuffer &buffer);
- virtual void destroy(const Token &){}
+ GObjUPtr getObject(const Token &, const Password &) override;
+ TokenPair generateAKey(const CryptoAlgorithm &,
+ const Password &,
+ const Password &,
+ const RawBuffer &,
+ const RawBuffer &) override;
+ Token generateSKey(const CryptoAlgorithm &,
+ const Password &,
+ const RawBuffer &) override;
+ Token import(const Data &, const Password &, const EncryptionParams &,
+ const RawBuffer &) override;
+ void destroy(const Token &) override;
+
+ static RawBuffer pack(const RawBuffer &keyId,
+ const Password &pwd,
+ const RawBuffer &iv,
+ const RawBuffer &tag);
+
+ // TODO device key ID is needed here to support importEncrypted
};
} // namespace TZ
} // namespace Crypto
} // namespace CKM
-