summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKrzysztof Jackiewicz <k.jackiewicz@samsung.com>2018-09-26 17:14:20 +0200
committerKrzysztof Jackiewicz <k.jackiewicz@samsung.com>2018-09-26 17:14:20 +0200
commit4cb37a79cc9b4f2b8d5389431e4d528e9ae74501 (patch)
treea478f97926248ce3c8c0ab6cd2f12f0ba0534af1
parent2ff75c9bc6dbaaf7d521edfe393b84a8a1186f45 (diff)
downloadkey-manager-4cb37a79cc9b4f2b8d5389431e4d528e9ae74501.tar.gz
key-manager-4cb37a79cc9b4f2b8d5389431e4d528e9ae74501.tar.bz2
key-manager-4cb37a79cc9b4f2b8d5389431e4d528e9ae74501.zip
Introduce Key class in tz backend
Add an intermediate Key class that removes the need to keep credentials from binary data object (BData). Change-Id: I638de81aedf47bc51421a7c362459ced801fd650
-rw-r--r--src/manager/crypto/tz-backend/obj.h27
-rw-r--r--src/manager/crypto/tz-backend/store.cpp2
2 files changed, 19 insertions, 10 deletions
diff --git a/src/manager/crypto/tz-backend/obj.h b/src/manager/crypto/tz-backend/obj.h
index f3459c14..32c6444f 100644
--- a/src/manager/crypto/tz-backend/obj.h
+++ b/src/manager/crypto/tz-backend/obj.h
@@ -59,15 +59,25 @@ private:
class BData : public GObj {
public:
- BData(int scheme, RawBuffer buffer, Pwd pwd, DataType keyType):
- m_scheme(scheme), m_raw(std::move(buffer)), m_password(std::move(pwd)),
- m_type(keyType) {}
+ explicit BData(RawBuffer buffer) : m_raw(std::move(buffer)) {}
virtual RawBuffer getBinary() const override
{
return m_raw;
}
+protected:
+ RawBuffer m_raw;
+};
+
+class Key : public BData {
+public:
+ Key(int scheme, RawBuffer buffer, Pwd pwd, DataType dataType) :
+ BData(std::move(buffer)),
+ m_scheme(scheme),
+ m_password(std::move(pwd)),
+ m_type(dataType) {}
+
virtual int getScheme() const
{
return m_scheme;
@@ -80,24 +90,23 @@ public:
protected:
int m_scheme;
- RawBuffer m_raw;
Pwd m_password;
DataType m_type;
};
-class SKey : public BData {
+class SKey : public Key {
public:
- SKey(int scheme, RawBuffer buffer, Pwd pwd, DataType keyType) :
- BData(scheme, std::move(buffer), std::move(pwd), keyType) {}
+ SKey(int scheme, RawBuffer buffer, Pwd pwd, DataType dataType) :
+ Key(scheme, std::move(buffer), std::move(pwd), dataType) {}
virtual RawBuffer encrypt(const CryptoAlgorithm &, const RawBuffer &);
virtual RawBuffer decrypt(const CryptoAlgorithm &, const RawBuffer &);
};
-class AKey : public BData {
+class AKey : public Key {
public:
AKey(int scheme, RawBuffer buffer, Pwd pwd, DataType dataType) :
- BData(scheme, std::move(buffer), std::move(pwd), dataType) {}
+ Key(scheme, std::move(buffer), std::move(pwd), dataType) {}
virtual RawBuffer sign(const CryptoAlgorithm &alg, const RawBuffer &message);
virtual int verify(const CryptoAlgorithm &alg, const RawBuffer &message,
diff --git a/src/manager/crypto/tz-backend/store.cpp b/src/manager/crypto/tz-backend/store.cpp
index 3d0179b0..92aaad55 100644
--- a/src/manager/crypto/tz-backend/store.cpp
+++ b/src/manager/crypto/tz-backend/store.cpp
@@ -115,7 +115,7 @@ GObjUPtr Store::getObject(const Token &token, const Password &pass)
if (token.dataType.isBinaryData()) {
RawBuffer exported_data = Internals::getData(id, Pwd(pass, iv, tag));
- return make_unique<BData>(scheme, exported_data, Pwd(pass, iv, tag), token.dataType);
+ return make_unique<BData>(std::move(exported_data));
}
ThrowErr(Exc::Crypto::DataTypeNotSupported,