From b2c9d5c9a6f096a78b6a4b2384049235a20d05d7 Mon Sep 17 00:00:00 2001 From: Ryan Prichard Date: Wed, 20 Sep 2023 16:11:35 -0700 Subject: [PATCH] Fix nonce uniqueness tests std::unique consolidates the unique nonces at the start of the `nonces` vector, but it doesn't modify nonces.size(), so these tests weren't actually verifying that the nonces were unique. Add a vector::erase call to shrink the vector. After upgrading libc++, std::unique is [[nodiscard]] and this bug is a compiler error. Bug: 175635923 Test: treehugger Test: m VtsAidlSharedSecretTargetTest VtsHalKeymasterV4_0TargetTest Change-Id: I7fd8c40a3920bf3a8988c8065503c78ba36dc742 --- keymaster/4.0/vts/functional/HmacKeySharingTest.cpp | 2 +- .../sharedsecret/aidl/vts/functional/SharedSecretAidlTest.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/keymaster/4.0/vts/functional/HmacKeySharingTest.cpp b/keymaster/4.0/vts/functional/HmacKeySharingTest.cpp index f57a6682f9..1bff076859 100644 --- a/keymaster/4.0/vts/functional/HmacKeySharingTest.cpp +++ b/keymaster/4.0/vts/functional/HmacKeySharingTest.cpp @@ -137,7 +137,7 @@ TEST_P(HmacKeySharingTest, ComputeSharedHmac) { auto nonces = copyNonces(params); EXPECT_EQ(allKeymasters().size(), nonces.size()); std::sort(nonces.begin(), nonces.end()); - std::unique(nonces.begin(), nonces.end()); + nonces.erase(std::unique(nonces.begin(), nonces.end()), nonces.end()); EXPECT_EQ(allKeymasters().size(), nonces.size()); auto responses = computeSharedHmac(allKeymasters(), params); diff --git a/security/sharedsecret/aidl/vts/functional/SharedSecretAidlTest.cpp b/security/sharedsecret/aidl/vts/functional/SharedSecretAidlTest.cpp index 51938baa82..7599bce3af 100644 --- a/security/sharedsecret/aidl/vts/functional/SharedSecretAidlTest.cpp +++ b/security/sharedsecret/aidl/vts/functional/SharedSecretAidlTest.cpp @@ -164,7 +164,7 @@ TEST_F(SharedSecretAidlTest, ComputeSharedSecret) { auto nonces = copyNonces(params); EXPECT_EQ(sharedSecrets.size(), nonces.size()); std::sort(nonces.begin(), nonces.end()); - std::unique(nonces.begin(), nonces.end()); + nonces.erase(std::unique(nonces.begin(), nonces.end()), nonces.end()); EXPECT_EQ(sharedSecrets.size(), nonces.size()); auto responses = computeAllSharedSecrets(params);