Fix secret pwd passing in TZ backend KBKDF 49/296149/2
authorKrzysztof Jackiewicz <k.jackiewicz@samsung.com>
Thu, 20 Jul 2023 12:05:22 +0000 (14:05 +0200)
committerDongsun Lee <ds73.lee@samsung.com>
Thu, 20 Jul 2023 23:58:15 +0000 (08:58 +0900)
Change-Id: I6f1a4d588a6a0679b88f967fdbc71b436329153f

src/manager/crypto/tz-backend/internals.cpp
src/manager/crypto/tz-backend/internals.h
src/manager/crypto/tz-backend/obj.cpp
src/manager/crypto/tz-backend/tz-context.cpp
src/manager/crypto/tz-backend/tz-context.h

index ae8f9f80de6c93e48bc2945c75081ddbd357d71a..d0cc23275042bb55c54dc19c15864bc9b80e1008 100644 (file)
@@ -802,6 +802,7 @@ void deriveECDH(const RawBuffer &prvKeyId,
 }
 
 void deriveKBKDF(const RawBuffer &secretId,
+                                const Pwd &secretPwd,
                                 const CryptoAlgorithm &alg,
                                 const Password &keyPwd,
                                 const RawBuffer &keyPwdIV,
@@ -824,6 +825,7 @@ void deriveKBKDF(const RawBuffer &secretId,
        RawBuffer keyPwdBuf(keyPwd.begin(), keyPwd.end());
 
        TrustZoneContext::Instance().executeKbkdf(secretId,
+                                                                                         secretPwd,
                                                                                          label,
                                                                                          context,
                                                                                          fixed,
index bb8e44415c1964dedd5b84d69bd6cc49969b30fc..8797065d808538f2110e4f1eaa1ef17b9f870d81 100644 (file)
@@ -156,6 +156,7 @@ void deriveECDH(const RawBuffer &prvKeyId,
                                const RawBuffer &secretHash);
 
 void deriveKBKDF(const RawBuffer &secretId,
+                                const Pwd &secretPwd,
                                 const CryptoAlgorithm &alg,
                                 const Password &keyPwd,
                                 const RawBuffer &keyPwdIV,
index 8d85d1ae69c74809cd0c08d17edacdf89f11895b..5a8153e56bffb7b59709b8d1d9e2147257e230cb 100644 (file)
@@ -66,7 +66,7 @@ Token BData::derive(const CryptoAlgorithm &alg, const Password &pass, const RawB
                iv = Internals::generateIV();
        }
 
-       Internals::deriveKBKDF(getId(), alg, pass, iv, tag, hash);
+       Internals::deriveKBKDF(getId(), getPassword(), alg, pass, iv, tag, hash);
 
        return Token(backendId(), DataType(KeyType::KEY_AES), Store::pack(hash, pass, iv, tag));
 }
index 3cf57021fb6677cb6ad70ec7e77abfcb9ce95a98..ad09c65598e7917f9013197eed1087e844361b73 100644 (file)
@@ -890,6 +890,7 @@ void TrustZoneContext::executeEcdh(const RawBuffer &prvKeyId,
 }
 
 void TrustZoneContext::executeKbkdf(const RawBuffer& secretId,
+                                                                       const Pwd& secretPwd,
                                                                        const RawBuffer& label,
                                                                        const RawBuffer& context,
                                                                        const RawBuffer& fixed,
@@ -908,6 +909,7 @@ void TrustZoneContext::executeKbkdf(const RawBuffer& secretId,
        LogDebug("TrustZoneContext::executeKbkdf");
 
        auto sIn = makeSerializer(secretId,
+                                                         secretPwd,
                                                          label,
                                                          context,
                                                          fixed,
index 7233ef78ff186be8d0b47e70ce84ab1612b683ba..015b44ba8513c1dbf5f1e7433164ef334f2b3ed0 100644 (file)
@@ -183,6 +183,7 @@ public:
                                         const RawBuffer &secretHash);
 
        void executeKbkdf(const RawBuffer& secretId,
+                                         const Pwd& secretPwd,
                                          const RawBuffer& label,
                                          const RawBuffer& context,
                                          const RawBuffer& fixed,