Remove provisioned identity type from proto

PiperOrigin-RevId: 629178167
This commit is contained in:
hai007
2024-04-29 13:59:55 -07:00
committed by Copybara-Service
parent 0b04994f71
commit bba1ca540f
11 changed files with 27 additions and 127 deletions
+1
View File
@@ -473,6 +473,7 @@ cc_test(
"//proto:connections_enums_cc_proto",
"@com_github_protobuf_matchers//protobuf-matchers",
"@com_google_absl//absl/status",
"@com_google_absl//absl/status:statusor",
"@com_google_absl//absl/strings",
"@com_google_absl//absl/synchronization",
"@com_google_absl//absl/time",
@@ -14,10 +14,7 @@
#include "internal/platform/credential_storage_impl.h"
#include <memory>
#include <optional>
#include <string>
#include <tuple>
#include <utility>
#include <vector>
@@ -25,6 +22,7 @@
#include "protobuf-matchers/protocol-buffer-matchers.h"
#include "gtest/gtest.h"
#include "absl/status/status.h"
#include "absl/status/statusor.h"
#include "absl/strings/string_view.h"
#include "internal/platform/implementation/credential_callbacks.h"
#include "internal/proto/credential.pb.h"
@@ -70,9 +68,7 @@ std::vector<LocalCredential> BuildPrivateCreds(absl::string_view secret_id) {
CreateLocalCredential(secret_id,
IdentityType::IDENTITY_TYPE_PRIVATE_GROUP),
CreateLocalCredential(secret_id,
IdentityType::IDENTITY_TYPE_CONTACTS_GROUP),
CreateLocalCredential(secret_id,
IdentityType::IDENTITY_TYPE_PROVISIONED)};
IdentityType::IDENTITY_TYPE_CONTACTS_GROUP)};
return private_credentials;
}
@@ -81,9 +77,7 @@ std::vector<SharedCredential> BuildPublicCreds(absl::string_view secret_id) {
CreatePublicCredential(secret_id,
IdentityType::IDENTITY_TYPE_PRIVATE_GROUP),
CreatePublicCredential(secret_id,
IdentityType::IDENTITY_TYPE_CONTACTS_GROUP),
CreatePublicCredential(secret_id,
IdentityType::IDENTITY_TYPE_PROVISIONED)};
IdentityType::IDENTITY_TYPE_CONTACTS_GROUP)};
return public_credentials;
}
@@ -510,8 +504,7 @@ TEST_P(IdentityFilterTest, FilterPublicCredentialsFailsWhenNoCredentialsMatch) {
INSTANTIATE_TEST_SUITE_P(
CredentialStorageImplTest, IdentityFilterTest,
testing::Values(IdentityType::IDENTITY_TYPE_PRIVATE_GROUP,
IdentityType::IDENTITY_TYPE_CONTACTS_GROUP,
IdentityType::IDENTITY_TYPE_PROVISIONED));
IdentityType::IDENTITY_TYPE_CONTACTS_GROUP));
} // namespace
} // namespace nearby
-1
View File
@@ -29,7 +29,6 @@ enum IdentityType {
IDENTITY_TYPE_PRIVATE_GROUP = 1;
IDENTITY_TYPE_CONTACTS_GROUP = 2;
IDENTITY_TYPE_PUBLIC = 3;
IDENTITY_TYPE_PROVISIONED = 4;
}
// LINT.ThenChange(//depot/google3/google/internal/location/nearby/presence/v1/nearby_resources.proto:IdentityType)
// LINT.IfChange(CredentialType)
+2 -3
View File
@@ -28,7 +28,6 @@ namespace {
using ::nearby::internal::LocalCredential;
using ::nearby::internal::SharedCredential;
using ::nearby::internal::IdentityType::IDENTITY_TYPE_PRIVATE_GROUP;
using ::nearby::internal::IdentityType::IDENTITY_TYPE_PROVISIONED;
using ::protobuf_matchers::EqualsProto;
@@ -59,7 +58,7 @@ TEST(CredentialsTest, InitLocalCredential) {
TEST(CredentialsTest, CopyLocalCredential) {
LocalCredential pc1 = {};
pc1.set_identity_type(IDENTITY_TYPE_PROVISIONED);
pc1.set_identity_type(IDENTITY_TYPE_PRIVATE_GROUP);
auto salts = pc1.mutable_consumed_salts();
salts->insert(std::pair<int32, bool>(15, true));
LocalCredential pc1_copy = {pc1};
@@ -68,7 +67,7 @@ TEST(CredentialsTest, CopyLocalCredential) {
TEST(CredentialsTest, CopySharedCredential) {
SharedCredential pc1 = {};
pc1.set_identity_type(IDENTITY_TYPE_PROVISIONED);
pc1.set_identity_type(IDENTITY_TYPE_PRIVATE_GROUP);
for (const uint8_t byte : nearby::Uuid().data()) {
pc1.mutable_secret_id()->push_back(byte);
}
-1
View File
@@ -48,7 +48,6 @@ class DataElement {
static constexpr int kPrivateGroupIdentityFieldType = 1;
static constexpr int kContactsGroupIdentityFieldType = 2;
static constexpr int kPublicIdentityFieldType = 3;
static constexpr int kProvisionedIdentityFieldType = 4;
static constexpr int kTxPowerFieldType = 5;
static constexpr int kActionFieldType = 6;
static constexpr int kModelIdFieldType = 7;
@@ -64,7 +64,6 @@ bool IsDataElementAllowed(uint8_t header) {
case DataElement::kPublicIdentityFieldType:
return length == 0;
case DataElement::kPrivateGroupIdentityFieldType:
case DataElement::kProvisionedIdentityFieldType:
case DataElement::kContactsGroupIdentityFieldType:
return length >= 2 && length <= 6;
case DataElement::kTxPowerFieldType:
@@ -88,8 +87,7 @@ bool IsDataElementAllowed(uint8_t header) {
bool IsEncryptedIdentity(int data_type) {
return data_type == DataElement::kPrivateGroupIdentityFieldType ||
data_type == DataElement::kContactsGroupIdentityFieldType ||
data_type == DataElement::kProvisionedIdentityFieldType;
data_type == DataElement::kContactsGroupIdentityFieldType;
}
bool IsIdentity(int data_type) {
@@ -103,8 +101,6 @@ internal::IdentityType GetIdentityType(int data_type) {
return internal::IDENTITY_TYPE_PRIVATE_GROUP;
case DataElement::kContactsGroupIdentityFieldType:
return internal::IDENTITY_TYPE_CONTACTS_GROUP;
case DataElement::kProvisionedIdentityFieldType:
return internal::IDENTITY_TYPE_PROVISIONED;
case DataElement::kPublicIdentityFieldType:
return internal::IDENTITY_TYPE_PUBLIC;
}
@@ -47,10 +47,11 @@ constexpr absl::string_view kAccountName = "test account";
ScanRequest GetScanRequest() {
return {.account_name = std::string(kAccountName),
.identity_types = {IdentityType::IDENTITY_TYPE_PRIVATE_GROUP,
IdentityType::IDENTITY_TYPE_CONTACTS_GROUP,
IdentityType::IDENTITY_TYPE_PUBLIC,
IdentityType::IDENTITY_TYPE_PROVISIONED}};
.identity_types = {
IdentityType::IDENTITY_TYPE_PRIVATE_GROUP,
IdentityType::IDENTITY_TYPE_CONTACTS_GROUP,
IdentityType::IDENTITY_TYPE_PUBLIC,
}};
}
ScanRequest GetScanRequest(std::vector<SharedCredential> credentials) {
@@ -61,7 +62,6 @@ ScanRequest GetScanRequest(std::vector<SharedCredential> credentials) {
.AddIdentityType(IdentityType::IDENTITY_TYPE_PRIVATE_GROUP)
.AddIdentityType(IdentityType::IDENTITY_TYPE_CONTACTS_GROUP)
.AddIdentityType(IdentityType::IDENTITY_TYPE_PUBLIC)
.AddIdentityType(IdentityType::IDENTITY_TYPE_PROVISIONED)
.Build();
}
@@ -129,58 +129,6 @@ TEST(AdvertisementDecoderImpl,
absl::HexStringToBytes("08"))));
}
TEST(AdvertisementDecoderImpl, 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<IdentityType, std::vector<internal::SharedCredential>>
credentials;
credentials[IdentityType::IDENTITY_TYPE_CONTACTS_GROUP].push_back(
GetPublicCredential());
AdvertisementDecoderImpl decoder(&credentials);
absl::StatusOr<Advertisement> result = decoder.DecodeAdvertisement(
absl::HexStringToBytes("0052414257a35c020f1c547d7e169303196d75da7118ba"));
ASSERT_OK(result);
EXPECT_EQ(result->metadata_key, metadata_key.AsStringView());
EXPECT_EQ(result->identity_type, IdentityType::IDENTITY_TYPE_CONTACTS_GROUP);
EXPECT_THAT(
result->data_elements,
UnorderedElementsAre(DataElement(DataElement::kSaltFieldType, salt),
DataElement(DataElement::kTxPowerFieldType,
absl::HexStringToBytes("05")),
DataElement(DataElement::kActionFieldType,
absl::HexStringToBytes("0c")),
DataElement(DataElement::kActionFieldType,
absl::HexStringToBytes("08"))));
}
TEST(AdvertisementDecoderImpl, 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<IdentityType, std::vector<internal::SharedCredential>>
credentials;
credentials[IdentityType::IDENTITY_TYPE_PROVISIONED].push_back(
GetPublicCredential());
AdvertisementDecoderImpl decoder(&credentials);
absl::StatusOr<Advertisement> result = decoder.DecodeAdvertisement(
absl::HexStringToBytes("0054414257a35c020f1c547d7e169303196d75da7118ba"));
ASSERT_OK(result);
EXPECT_EQ(result->metadata_key, metadata_key.AsStringView());
EXPECT_EQ(result->identity_type, IdentityType::IDENTITY_TYPE_PROVISIONED);
EXPECT_THAT(
result->data_elements,
UnorderedElementsAre(DataElement(DataElement::kSaltFieldType, salt),
DataElement(DataElement::kTxPowerFieldType,
absl::HexStringToBytes("05")),
DataElement(DataElement::kActionFieldType,
absl::HexStringToBytes("0c")),
DataElement(DataElement::kActionFieldType,
absl::HexStringToBytes("08"))));
}
TEST(AdvertisementDecoderImpl, InvalidEncryptedContent) {
std::string salt = "AB";
ByteArray metadata_key(
@@ -252,20 +200,6 @@ TEST(AdvertisementDecoderImpl,
DataElement(DataElement(ActionBit::kActiveUnlockAction))));
}
TEST(AdvertisementDecoderImpl, DecodeEddystone) {
AdvertisementDecoderImpl decoder;
std::string eddystone_id =
absl::HexStringToBytes("A0A1A2A3A4A5A6A7A8A9B0B1B2B3B4B5B6B7B8B9");
auto result = decoder.DecodeAdvertisement(absl::HexStringToBytes("0008") +
eddystone_id);
EXPECT_OK(result);
EXPECT_THAT(result->data_elements,
ElementsAre(DataElement(DataElement::kEddystoneIdFieldType,
eddystone_id)));
}
TEST(AdvertisementDecoderImpl, UnsupportedDataElement) {
std::string valid_header_and_salt = absl::HexStringToBytes("00204142");
AdvertisementDecoderImpl decoder;
@@ -14,13 +14,21 @@
#include "presence/implementation/advertisement_factory.h"
#include <cstddef>
#include <cstdint>
#include <string>
#include <utility>
#include <vector>
#include "absl/base/attributes.h"
#include "absl/status/status.h"
#include "absl/strings/escaping.h"
#include "absl/strings/str_cat.h"
#include "absl/strings/str_format.h"
#include "absl/strings/string_view.h"
#include "absl/types/optional.h"
#include "absl/types/variant.h"
#include "internal/platform/implementation/credential_callbacks.h"
#include "internal/platform/logging.h"
#include "internal/platform/uuid.h"
#include "internal/proto/credential.pb.h"
@@ -71,11 +79,9 @@ uint8_t GetIdentityFieldType(IdentityType type) {
case IdentityType::IDENTITY_TYPE_CONTACTS_GROUP:
return DataElement::kContactsGroupIdentityFieldType;
case IdentityType::IDENTITY_TYPE_PUBLIC:
return DataElement::kPublicIdentityFieldType;
case IdentityType::IDENTITY_TYPE_PROVISIONED:
ABSL_FALLTHROUGH_INTENDED;
default:
return DataElement::kProvisionedIdentityFieldType;
return DataElement::kPublicIdentityFieldType;
}
}
@@ -95,8 +101,7 @@ std::string SerializeAction(const Action& action) {
bool RequiresCredentials(IdentityType identity_type) {
return identity_type == IdentityType::IDENTITY_TYPE_PRIVATE_GROUP ||
identity_type == IdentityType::IDENTITY_TYPE_CONTACTS_GROUP ||
identity_type == IdentityType::IDENTITY_TYPE_PROVISIONED;
identity_type == IdentityType::IDENTITY_TYPE_CONTACTS_GROUP;
}
} // namespace
@@ -105,31 +105,6 @@ TEST(AdvertisementFactory, CreateAdvertisementFromTrustedIdentity) {
"0052414257a35c020f1c547d7e169303196d75da7118ba");
}
TEST(AdvertisementFactory, CreateAdvertisementFromProvisionedIdentity) {
std::string account_name = "Test account";
std::string salt = "AB";
constexpr IdentityType kIdentity = IdentityType::IDENTITY_TYPE_PROVISIONED;
std::vector<DataElement> data_elements;
data_elements.emplace_back(ActionBit::kActiveUnlockAction);
data_elements.emplace_back(ActionBit::kPresenceManagerAction);
Action action = ActionFactory::CreateAction(data_elements);
BaseBroadcastRequest request =
BaseBroadcastRequest(BasePresenceRequestBuilder(kIdentity)
.SetAccountName(account_name)
.SetSalt(salt)
.SetTxPower(5)
.SetAction(action));
absl::StatusOr<AdvertisementData> result =
AdvertisementFactory().CreateAdvertisement(
request, CreateLocalCredential(kIdentity));
ASSERT_OK(result);
EXPECT_FALSE(result->is_extended_advertisement);
EXPECT_EQ(absl::BytesToHexString(result->content),
"0054414257a35c020f1c547d7e169303196d75da7118ba");
}
TEST(AdvertisementFactory, CreateAdvertisementFromPublicIdentity) {
std::string salt = "AB";
constexpr IdentityType kIdentity = IdentityType::IDENTITY_TYPE_PUBLIC;
@@ -95,9 +95,9 @@ TEST(AdvertisementFilter, MatchesLegacyPresenceScanFilter) {
TEST(AdvertisementFilter,
EncryptedIdentityFilterIgnoresPublicIdentityAdvertisement) {
AdvertisementFilter adv_filter(
{.identity_types = {internal::IdentityType::IDENTITY_TYPE_PRIVATE_GROUP,
internal::IdentityType::IDENTITY_TYPE_CONTACTS_GROUP,
internal::IdentityType::IDENTITY_TYPE_PROVISIONED}});
{.identity_types = {
internal::IdentityType::IDENTITY_TYPE_PRIVATE_GROUP,
internal::IdentityType::IDENTITY_TYPE_CONTACTS_GROUP}});
EXPECT_FALSE(adv_filter.MatchesScanFilter(
{.identity_type = internal::IdentityType::IDENTITY_TYPE_PUBLIC}));
+1 -2
View File
@@ -145,8 +145,7 @@ std::vector<CredentialSelector> GetCredentialSelectors(
std::vector<nearby::internal::IdentityType> all_types = {
nearby::internal::IdentityType::IDENTITY_TYPE_PRIVATE_GROUP,
nearby::internal::IdentityType::IDENTITY_TYPE_CONTACTS_GROUP,
nearby::internal::IdentityType::IDENTITY_TYPE_PUBLIC,
nearby::internal::IdentityType::IDENTITY_TYPE_PROVISIONED};
nearby::internal::IdentityType::IDENTITY_TYPE_PUBLIC};
std::vector<CredentialSelector> selectors;
for (auto identity_type :
(scan_request.identity_types.empty() ? all_types