Commit Graph
54 Commits
Author SHA1 Message Date
Anay Wadhera b7415ecd40 Implement NearbyDevice for PresenceDevice.
PiperOrigin-RevId: 491705794
2022-11-29 12:19:47 -08:00
Hai Shang 6871b9d5a6 Add initial impl for UpdateRemotePublicCredentials in CredentialManager.
PiperOrigin-RevId: 491458184
2022-11-28 15:24:26 -08:00
Janusz Sobczak 8bd3d34580 Link with Rust NP LDT
Add conditional dependency on Rust NP LDT.
By default, we will use an empty stub.

PiperOrigin-RevId: 490554102
2022-11-23 11:55:52 -08:00
Anay Wadhera 52d81710a2 Add fields to PresenceDevice
PiperOrigin-RevId: 490345719
2022-11-22 15:03:09 -08:00
Janusz Sobczak 9e61866ee3 Sync with Rust LDT changes
PiperOrigin-RevId: 490288278
2022-11-22 11:16:21 -08:00
Janusz Sobczak a3b6058753 Fully qualify ::location::nearby imports.
Find and replace exercise.
Replace
`using location::nearby`
with
`using ::location::nearby`
and
`using <Name> = location::nearby`
with
`using <Name> = ::location::nearby`

PiperOrigin-RevId: 490087051
2022-11-21 15:33:21 -08:00
Janusz Sobczak a11733988f Implement start advertising in service controller.
PiperOrigin-RevId: 489584407
2022-11-18 16:17:55 -08:00
Anay Wadhera beb67fc02a Call StopScan() when ScanSession goes out of scope and make sure stop can only be called once.
PiperOrigin-RevId: 488717591
2022-11-15 11:46:34 -08:00
Anay Wadhera b7de5f4097 Resolve unique_ptr being thrown away and potential deadlock issue
PiperOrigin-RevId: 487979164
2022-11-11 20:30:27 -08:00
Nick Bourdakos 4fb6ba318c Internal change
PiperOrigin-RevId: 486691317
2022-11-07 09:59:14 -08:00
Janusz Sobczak a90b7f85fc Disable medium env by default.
MediumEnvironment's initial state will now match the state after calling `Stop()`.

Cleaned up tests that were calling Stop() before test start.

PiperOrigin-RevId: 486277290
2022-11-04 18:56:30 -07:00
Janusz Sobczak 5faa395f24 Change enum PublicCredentialType to enum class.
PiperOrigin-RevId: 486243753
2022-11-04 15:26:34 -07:00
Janusz Sobczak 23c9b106b1 Remove dependency on tink.
PiperOrigin-RevId: 486232030
2022-11-04 14:32:56 -07:00
Janusz Sobczak 951945dd5c Add AdvertisementData struct.
Define and use an NP private AdvertisementData structure instead of the low level BleAdvertisementData,
The APIs look cleaner this way.

PiperOrigin-RevId: 486224840
2022-11-04 14:03:24 -07:00
Hai Shang de4e7a66dc Utilize ScanManager for scan operation in service controller.
PiperOrigin-RevId: 486208283
2022-11-04 12:50:19 -07:00
Anay Wadhera c0531d556c Explicitly convert absl::string_view to std::string for chromium
PiperOrigin-RevId: 485990008
2022-11-03 15:34:38 -07:00
Anay Wadhera 8028821593 Switch to .pb.h and explicit conversions to std::string
PiperOrigin-RevId: 485942813
2022-11-03 12:31:18 -07:00
Anay Wadhera 373a694b32 Add missing die_if_null and flat_hash_map dependency to fix build error
PiperOrigin-RevId: 485938749
2022-11-03 12:14:16 -07:00
Janusz Sobczak d268b077c9 Save scan callbacks before starting scan session.
This reduces flakiness. We can start receiving advertisements before StartScan() has finished.

PiperOrigin-RevId: 485904791
2022-11-03 10:13:02 -07:00
Anay Wadhera 74f7f5ec5c Fix visibility rules
PiperOrigin-RevId: 485897261
2022-11-03 09:44:47 -07:00
Anay Wadhera fa983e304a Allow tink to be fetched and compile presence in bazel builds.
PiperOrigin-RevId: 485876571
2022-11-03 08:15:15 -07:00
Anay Wadhera c4dc132f50 Add ScanManager class for bookkeeping BLE v2 scans
PiperOrigin-RevId: 485675999
2022-11-02 13:15:31 -07:00
Janusz Sobczak 81f6b547bb Add StartAdvertising to BLE medium.
StartAdvertising allows us to broadcast Nearby Presence advertisements.
We can now test scanning and advertising with the MediumEnvironment rather than mocking platform code.

PiperOrigin-RevId: 484662211
2022-10-28 18:23:30 -07:00
Janusz Sobczak 5d742558a4 Add advertisement filtering
PiperOrigin-RevId: 484616133
2022-10-28 14:07:29 -07:00
Janusz Sobczak bc9a6ec55b Use LDT for advertisement decryption.
We are still missing the real LDT implementation, so the code is linked with a
placeholder code that doesn't do the actual encryption.

PiperOrigin-RevId: 484596294
2022-10-28 12:37:48 -07:00
Janusz Sobczak 53c504be9d Use LDT for advertisement encryption.
We are still missing the real LDT implementation, so the code is linked with a
placeholder code that doesn't do the actual encryption.

We also needed to pass the `account_name` to credential manager to choose the
correct credentials.

PiperOrigin-RevId: 483801163
2022-10-25 16:09:17 -07:00
Hai Shang 054f6efe53 Chain scan & broadcast invokes from PresenceClient to ServiceController
PiperOrigin-RevId: 483496670
2022-10-24 15:12:43 -07:00
Janusz Sobczak 8128bbc062 Include LDT header
PiperOrigin-RevId: 480757134
2022-10-12 17:16:16 -07:00
Janusz Sobczak 4bd0337c10 Update to match revised BLE 4.2 specification
PiperOrigin-RevId: 479615854
2022-10-07 10:33:38 -07:00
Hai Shang c4ad6de6f8 add scan function in presence BLE
PiperOrigin-RevId: 478666843
2022-10-03 19:35:23 -07:00
Anthony Rueda 1443f3a135 Implement get public & private credentials.
PiperOrigin-RevId: 478522128
2022-10-03 09:18:19 -07:00
Anthony Rueda fd59e9aede Consolidate credential_storage callback functions. Move all callback struct definitions in a central header file compiled as part of internal/platform/implementation:comm library.
PiperOrigin-RevId: 476186596
2022-09-22 13:46:47 -07:00
Janusz Sobczak 5871209f44 Convert from public to internal broadcast request
Add conversion from public BroadcastRequest to internal BLE 4.2 broadcast request.

PiperOrigin-RevId: 473338534
2022-09-09 14:09:09 -07:00
Xin He 4f599a0d3e Save generated credentials and make the callback
PiperOrigin-RevId: 472776321
2022-09-07 11:50:30 -07:00
Anay Wadhera 5b7bb37d41 Nearby Presence/Implementation: Fix for Android compile
PiperOrigin-RevId: 468735587
2022-08-19 10:43:41 -07:00
Xin He f166f1e22c Remove presence_identity struct.
PiperOrigin-RevId: 468032143
2022-08-16 14:56:38 -07:00
Xin He e5c24b8b8a Add manager app ID into the APIs
PiperOrigin-RevId: 467757514
2022-08-15 14:11:15 -07:00
Xin He 123a2cfd18 Move credentials related proto from Prensence to internal
Replace PresenceIdentityType with proto

PiperOrigin-RevId: 467294239
2022-08-12 14:18:34 -07:00
Anay Wadhera e1f8cf40ba Switch to absl::variant for Chrome compatibility
PiperOrigin-RevId: 467033120
2022-08-11 13:21:52 -07:00
Hai Shang 754b1ad349 Check in sensor fusion interface
PiperOrigin-RevId: 467029545
2022-08-11 13:07:26 -07:00
Janusz Sobczak 8446944697 Hide internal code in implementation/
Refactoring change.

action_factory* -> implementation/action_factory*
broadcast_request* -> implementation/base_broadcast_request*
encryption* -> implementation/encryption*

Clean up build targets.

PiperOrigin-RevId: 466992367
2022-08-11 10:37:56 -07:00
Xin He 76d45f20db Replace encrypting metadata with CBC to AES.
Provide a new API to decrypt the device metadata inside a public credential

PiperOrigin-RevId: 466936093
2022-08-11 06:23:49 -07:00
Janusz Sobczak 07119e80de Merge CertificateManager and CredentialManager
Refactoring change.
Merge CertificateManager and CredentialManager into a single interface.
Hide AdvertisementFactory in implementation/. The client app will not be using
that class directly.
Clean up build targets.

PiperOrigin-RevId: 466748133
2022-08-10 11:46:16 -07:00
Suet-Fei Li 55f20775d2 Fix internal flow
PiperOrigin-RevId: 466426960
2022-08-09 12:02:16 -07:00
hai007 0a8f1f1c39 Implement Credentials Generation APIs
PiperOrigin-RevId: 466389238
2022-08-09 09:56:54 -07:00
Janusz Sobczak 6e6ae3ebd7 Decode the action in Base NP advertisements back into a list of Data Elements
PiperOrigin-RevId: 466204445
2022-08-08 19:39:05 -07:00
jsobczak 319e5abea4 Add advertisement decoder
The decoder allows us to parse incoming Nearby Presence advertisements.

PiperOrigin-RevId: 465146528
2022-08-03 14:18:12 -07:00
hai007 a732616a97 Change private/public credentials from struct to proto.
PiperOrigin-RevId: 464678736
2022-08-01 19:16:05 -07:00
hai007 0d4964da7b Splitting SaveCredentials into two separate virtual functions:
SavePrivateCredentials() and SavePublicCredentials().

Replacing Get_**_CredentialsCallback implementation with two function wrappers
instead of one function wrapper for the ExceptionOr class.

PiperOrigin-RevId: 464108110
2022-07-29 10:34:22 -07:00
hais d5f86a04d6 Replace to use IdentityType where TrustType were used.
PiperOrigin-RevId: 463713311
2022-07-27 17:07:19 -07:00