Update SharedCredential definition

PiperOrigin-RevId: 507568902
This commit is contained in:
Janusz Sobczak
2023-02-06 13:33:23 -08:00
committed by Copybara-Service
parent d1d7cfad56
commit 5f4144cd0b
33 changed files with 398 additions and 402 deletions
@@ -34,7 +34,8 @@ namespace nearby {
namespace presence {
namespace {
using ::nearby::ByteArray; // NOLINT
using ::nearby::ByteArray; // NOLINT
using ::nearby::internal::IdentityType;
using ::nearby::internal::SharedCredential; // NOLINT
using ::testing::ElementsAre;
using ::protobuf_matchers::EqualsProto;
@@ -48,10 +49,10 @@ constexpr absl::string_view kAccountName = "test account";
ScanRequest GetScanRequest() {
return {.account_name = std::string(kAccountName),
.identity_types = {internal::IDENTITY_TYPE_PRIVATE,
internal::IDENTITY_TYPE_TRUSTED,
internal::IDENTITY_TYPE_PUBLIC,
internal::IDENTITY_TYPE_PROVISIONED}};
.identity_types = {IdentityType::IDENTITY_TYPE_PRIVATE,
IdentityType::IDENTITY_TYPE_TRUSTED,
IdentityType::IDENTITY_TYPE_PUBLIC,
IdentityType::IDENTITY_TYPE_PROVISIONED}};
}
#if USE_RUST_LDT == 1
@@ -60,10 +61,10 @@ ScanRequest GetScanRequest(std::vector<SharedCredential> credentials) {
credentials};
return ScanRequestBuilder()
.SetAccountName(kAccountName)
.AddIdentityType(internal::IDENTITY_TYPE_PRIVATE)
.AddIdentityType(internal::IDENTITY_TYPE_TRUSTED)
.AddIdentityType(internal::IDENTITY_TYPE_PUBLIC)
.AddIdentityType(internal::IDENTITY_TYPE_PROVISIONED)
.AddIdentityType(IdentityType::IDENTITY_TYPE_PRIVATE)
.AddIdentityType(IdentityType::IDENTITY_TYPE_TRUSTED)
.AddIdentityType(IdentityType::IDENTITY_TYPE_PUBLIC)
.AddIdentityType(IdentityType::IDENTITY_TYPE_PROVISIONED)
.AddScanFilter(scan_filter)
.Build();
}
@@ -77,7 +78,7 @@ SharedCredential GetPublicCredential() {
165, 34, 64, 181, 204, 44, 203, 95, 141, 82, 137,
163, 203, 100, 235, 53, 65, 202, 97, 75, 180});
SharedCredential public_credential;
public_credential.set_authenticity_key(seed.AsStringView());
public_credential.set_key_seed(seed.AsStringView());
public_credential.set_metadata_encryption_key_tag(known_mac.AsStringView());
return public_credential;
}
@@ -86,10 +87,10 @@ TEST(AdvertisementDecoder, DecodeBaseNpPrivateAdvertisement) {
std::string salt = "AB";
ByteArray metadata_key(
{205, 104, 63, 225, 161, 209, 248, 70, 84, 61, 10, 19, 212, 174});
absl::flat_hash_map<internal::IdentityType,
std::vector<internal::SharedCredential>>
absl::flat_hash_map<IdentityType, std::vector<internal::SharedCredential>>
credentials;
credentials[internal::IDENTITY_TYPE_PRIVATE].push_back(GetPublicCredential());
credentials[IdentityType::IDENTITY_TYPE_PRIVATE].push_back(
GetPublicCredential());
AdvertisementDecoder decoder(GetScanRequest(), &credentials);
absl::StatusOr<Advertisement> result = decoder.DecodeAdvertisement(
@@ -97,7 +98,7 @@ TEST(AdvertisementDecoder, DecodeBaseNpPrivateAdvertisement) {
ASSERT_OK(result);
EXPECT_EQ(result->metadata_key, metadata_key.AsStringView());
EXPECT_EQ(result->identity_type, internal::IDENTITY_TYPE_PRIVATE);
EXPECT_EQ(result->identity_type, IdentityType::IDENTITY_TYPE_PRIVATE);
EXPECT_THAT(result->data_elements,
ElementsAre(DataElement(DataElement::kSaltFieldType, salt),
DataElement(DataElement::kTxPowerFieldType,
@@ -120,7 +121,7 @@ TEST(AdvertisementDecoder,
ASSERT_OK(result);
EXPECT_EQ(result->metadata_key, metadata_key.AsStringView());
EXPECT_EQ(result->identity_type, internal::IDENTITY_TYPE_PRIVATE);
EXPECT_EQ(result->identity_type, IdentityType::IDENTITY_TYPE_PRIVATE);
EXPECT_THAT(result->data_elements,
ElementsAre(DataElement(DataElement::kSaltFieldType, salt),
DataElement(DataElement::kTxPowerFieldType,
@@ -133,10 +134,10 @@ TEST(AdvertisementDecoder, DecodeBaseNpTrustedAdvertisement) {
std::string salt = "AB";
ByteArray metadata_key(
{205, 104, 63, 225, 161, 209, 248, 70, 84, 61, 10, 19, 212, 174});
absl::flat_hash_map<internal::IdentityType,
std::vector<internal::SharedCredential>>
absl::flat_hash_map<IdentityType, std::vector<internal::SharedCredential>>
credentials;
credentials[internal::IDENTITY_TYPE_TRUSTED].push_back(GetPublicCredential());
credentials[IdentityType::IDENTITY_TYPE_TRUSTED].push_back(
GetPublicCredential());
AdvertisementDecoder decoder(GetScanRequest(), &credentials);
absl::StatusOr<Advertisement> result = decoder.DecodeAdvertisement(
@@ -144,7 +145,7 @@ TEST(AdvertisementDecoder, DecodeBaseNpTrustedAdvertisement) {
ASSERT_OK(result);
EXPECT_EQ(result->metadata_key, metadata_key.AsStringView());
EXPECT_EQ(result->identity_type, internal::IDENTITY_TYPE_TRUSTED);
EXPECT_EQ(result->identity_type, IdentityType::IDENTITY_TYPE_TRUSTED);
EXPECT_THAT(
result->data_elements,
UnorderedElementsAre(DataElement(DataElement::kSaltFieldType, salt),
@@ -160,10 +161,9 @@ TEST(AdvertisementDecoder, DecodeBaseNpProvisionedAdvertisement) {
std::string salt = "AB";
ByteArray metadata_key(
{205, 104, 63, 225, 161, 209, 248, 70, 84, 61, 10, 19, 212, 174});
absl::flat_hash_map<internal::IdentityType,
std::vector<internal::SharedCredential>>
absl::flat_hash_map<IdentityType, std::vector<internal::SharedCredential>>
credentials;
credentials[internal::IDENTITY_TYPE_PROVISIONED].push_back(
credentials[IdentityType::IDENTITY_TYPE_PROVISIONED].push_back(
GetPublicCredential());
AdvertisementDecoder decoder(GetScanRequest(), &credentials);
@@ -172,7 +172,7 @@ TEST(AdvertisementDecoder, DecodeBaseNpProvisionedAdvertisement) {
ASSERT_OK(result);
EXPECT_EQ(result->metadata_key, metadata_key.AsStringView());
EXPECT_EQ(result->identity_type, internal::IDENTITY_TYPE_PROVISIONED);
EXPECT_EQ(result->identity_type, IdentityType::IDENTITY_TYPE_PROVISIONED);
EXPECT_THAT(
result->data_elements,
UnorderedElementsAre(DataElement(DataElement::kSaltFieldType, salt),
@@ -188,10 +188,10 @@ TEST(AdvertisementDecoder, InvalidEncryptedContent) {
std::string salt = "AB";
ByteArray metadata_key(
{205, 104, 63, 225, 161, 209, 248, 70, 84, 61, 10, 19, 212, 174});
absl::flat_hash_map<internal::IdentityType,
std::vector<internal::SharedCredential>>
absl::flat_hash_map<IdentityType, std::vector<internal::SharedCredential>>
credentials;
credentials[internal::IDENTITY_TYPE_PRIVATE].push_back(GetPublicCredential());
credentials[IdentityType::IDENTITY_TYPE_PRIVATE].push_back(
GetPublicCredential());
AdvertisementDecoder decoder(GetScanRequest(), &credentials);
EXPECT_THAT(decoder.DecodeAdvertisement(absl::HexStringToBytes(
@@ -209,7 +209,7 @@ TEST(AdvertisementDecoder, DecodeBaseNpPublicAdvertisement) {
absl::HexStringToBytes("002041420337C1C2C31BEE"));
ASSERT_OK(result);
EXPECT_EQ(result->identity_type, internal::IDENTITY_TYPE_PUBLIC);
EXPECT_EQ(result->identity_type, IdentityType::IDENTITY_TYPE_PUBLIC);
EXPECT_EQ(result->version, 0);
EXPECT_THAT(
result->data_elements,
@@ -246,9 +246,9 @@ TEST(AdvertisementDecoder,
ScanForEncryptedIdentityIgnoresPublicIdentityAdvertisement) {
AdvertisementDecoder decoder(
{.account_name = std::string(kAccountName),
.identity_types = {internal::IDENTITY_TYPE_PRIVATE,
internal::IDENTITY_TYPE_TRUSTED,
internal::IDENTITY_TYPE_PROVISIONED}});
.identity_types = {IdentityType::IDENTITY_TYPE_PRIVATE,
IdentityType::IDENTITY_TYPE_TRUSTED,
IdentityType::IDENTITY_TYPE_PROVISIONED}});
EXPECT_THAT(decoder.DecodeAdvertisement(
absl::HexStringToBytes("00204142034650B04180")),