#include <platform/decider.h>
#include <generic-backend/exception.h>
-#include <sw-backend/store.h>
#ifdef TZ_BACKEND_ENABLED
-#include <tz-backend/store.h>
#include <tz-backend/tz-context.h>
#include <tee_client_api.h>
} // namespace
Decider::Decider()
- : m_swStore(new SW::Store(CryptoBackend::OpenSSL))
+ : m_swStore(CryptoBackend::OpenSSL)
#ifdef TZ_BACKEND_ENABLED
- , m_tzStore(new TZ::Store(CryptoBackend::TrustZone))
+ , m_tzStore(CryptoBackend::TrustZone)
#endif
{
}
-GStore &Decider::getStore(const Token &token) const
+GStore &Decider::getStore(const Token &token)
{
return getStore(token.backendId);
};
-GStore &Decider::getStore(CryptoBackend cryptoBackend) const
+GStore &Decider::getStore(CryptoBackend cryptoBackend)
{
GStore *gStore = NULL;
if (cryptoBackend == CryptoBackend::OpenSSL)
- gStore = m_swStore.get();
+ gStore = &m_swStore;
#ifdef TZ_BACKEND_ENABLED
if (cryptoBackend == CryptoBackend::TrustZone)
- gStore = m_tzStore.get();
+ gStore = &m_tzStore;
#endif
if (gStore)
return *gStore;
"Backend not available. BackendId: ", (int)cryptoBackend);
}
-GStore &Decider::getStore(DataType data, const Policy &policy, bool encrypted) const
+GStore &Decider::getStore(DataType data, const Policy &policy, bool encrypted)
{
DataParams params{
DataParam(data, policy, encrypted)
return getStore(chooseCryptoBackend(params));
}
-GStore &Decider::getStore(const DataParams& params) const
+GStore &Decider::getStore(const DataParams& params)
{
return getStore(chooseCryptoBackend(params));
}
*/
#pragma once
-#include <memory>
#include <vector>
#include <ckm/ckm-type.h>
#include <crypto-backend.h>
#include <generic-backend/gstore.h>
+
+#include <sw-backend/store.h>
+#ifdef TZ_BACKEND_ENABLED
+#include <tz-backend/store.h>
+#endif
+
#include <token.h>
namespace CKM {
using DataParams = std::vector<DataParam>;
-class Decider {
+class Decider final {
public:
Decider();
- GStore &getStore(const Token &token) const;
- GStore &getStore(DataType data, const Policy &policy, bool encrypted = false) const;
- GStore &getStore(const DataParams& params) const;
-
- virtual ~Decider() {}
+ GStore &getStore(const Token &token);
+ GStore &getStore(DataType data, const Policy &policy, bool encrypted = false);
+ GStore &getStore(const DataParams& params);
-protected:
- GStore &getStore(CryptoBackend id) const;
+private:
+ GStore &getStore(CryptoBackend id);
- std::unique_ptr<GStore> m_swStore;
- std::unique_ptr<GStore> m_tzStore;
+ SW::Store m_swStore;
+#ifdef TZ_BACKEND_ENABLED
+ TZ::Store m_tzStore;
+#endif
};
} // Crypto
const Name &name,
const ClientId &owner,
const Crypto::Data &data,
- const Policy &policy) const
+ const Policy &policy)
{
Crypto::GStore &store = m_decider.getStore(data.type, policy);
const PKCS12Serializable &pkcs,
const PolicySerializable &keyPolicy,
const PolicySerializable &certPolicy,
- DB::RowVector &output) const
+ DB::RowVector &output)
{
// private key is mandatory
auto key = pkcs.getKey();
const Name &name,
const ClientId &owner,
const Crypto::Data &data,
- const Policy &policy) const;
+ const Policy &policy);
int getPKCS12Helper(
const Credentials &cred,
const PKCS12Serializable &pkcs,
const PolicySerializable &keyPolicy,
const PolicySerializable &certPolicy,
- DB::RowVector &output) const;
+ DB::RowVector &output);
int removeDataHelper(
const Credentials &cred,