Commit Graph
23 Commits
Author SHA1 Message Date
hai007 a78e9e4138 Automated Code Change
PiperOrigin-RevId: 786383170
2025-07-23 12:34:42 -07:00
hai007 1d2e43e931 Automated Code Change
PiperOrigin-RevId: 675305801
2024-09-16 15:10:32 -07:00
Guogang Li 9b8d708a7f Add use_stable_endpoint_id to AdvertisingOptions
PiperOrigin-RevId: 638501216
2024-05-29 20:25:48 -07:00
Anay Wadhera f26d25ed01 Provide a platform abstraction for RandBytes instead of swapping headers
The `RandBytes` functions were being placed in the `crypto` namespace,
which collides with Chromium's namespace of the same name. Within,
`RandBytes` was defined with almost-the-same API. Then in Chromium
builds, the Chromium header would be used instead (though somewhat
inconsistently).

This creates a lot of pain for Chromium development as there's a
third-party repository directly depending on headers from Chromium's
source tree, and is against the third-party policies for that reason.
There are a number of other headers that mirror Chromium and are
swapped out in the Chromium build that will cause similar pain, such as:
```
include "crypto/aead.h"
include "crypto/ec_private_key.h"
include "crypto/hkdf.h"
```

This CL provides a template for how to get rid of these header swaps and
give a platform abstraction in nearby instead.

We provide a platform abstraction in `platform/crypto.h` (really in
`platform/implementation/crypto.h`) which is implemented in
`platform/implementation/shared/crypto.cc`. However that implementation
is removed by `#ifdef` when in the Chromium build.

Then, in the Chromium repo, we will add (separately) an implementation
of the same abstraction in `//third_party/nearby/platform_impl` with GN
rules to include it in the build. It will replace the implementation
from the nearby repo.

Copybara import of the project:

--
6ca8099 by danakj <danakj@chromium.org>:

Provide a platform abstraction for RandBytes instead of swapping headers

The `RandBytes` functions were being placed in the `crypto` namespace,
which collides with Chromium's namespace of the same name. Within,
`RandBytes` was defined with almost-the-same API. Then in Chromium
builds, the Chromium header would be used instead (though somewhat
inconsistently).

This creates a lot of pain for Chromium development as there's a
third-party repository directly depending on headers from Chromium's
source tree, and is against the third-party policies for that reason.
There are a number of other headers that mirror Chromium and are
swapped out in the Chromium build that will cause similar pain, such as:
```
include "crypto/aead.h"
include "crypto/ec_private_key.h"
include "crypto/hkdf.h"
```

This CL provides a template for how to get rid of these header swaps and
give a platform abstraction in nearby instead.

We provide a platform abstraction in `platform/crypto.h` (really in
`platform/implementation/crypto.h`) which is implemented in
`platform/implementation/shared/crypto.cc`. However that implementation
is removed by `#ifdef` when in the Chromium build.

Then, in the Chromium repo, we will add (separately) an implementation
of the same abstraction in `//third_party/nearby/platform_impl` with GN
rules to include it in the build. It will replace the implementation
from the nearby repo.

--
9c2654b by danakj <danakj@chromium.org>:

Remove CryptoSpan, use absl::Span

The header swapping of Chromium crypto libraries is
problematic, but absl::Span will convert to base::span
so there's no need for the typedef even without
removing the header swapping yet.

--
df1135d by danakj <danakj@chromium.org>:

Add missing files

--
ab18a15 by danakj <danakj@chromium.org>:

Remove the random_unittest.cc from Swift build

The file moved, so the Swift package needs its path
updated.

--
2038f78 by danakj <danakj@chromium.org>:

Combine crypto unittests into crypto_test.cc

--
f7ad176 by danakj <danakj@chromium.org>:

Add stdint and stddef includes for uint8_t and size_t

--
9f04590 by danakj <danakj@chromium.org>:

Mark the shared crypto implementation compatable_with non_prod

--
18eeafd by danakj <danakj@chromium.org>:

Add IWYU pragma for crypto implementation

PiperOrigin-RevId: 632150866
2024-05-09 08:02:50 -07:00
Nick Bourdakos a08a42077c PR #2404: Add license header to all source files
Imported from GitHub PR https://github.com/google/nearby/pull/2404

Copybara import of the project:

--
a6fbb3c396321c0b9012b787323f5f2ff652fd8f by Nick Bourdakos <bourdakos1@gmail.com>:

Add license header to all source files

Merging this change closes #2404

PiperOrigin-RevId: 623540004
2024-04-10 10:40:38 -07:00
Juliet Levesque ecb9de0cbc [Nearby Presence] Add authentication status to InitialConnectionInfo
Adds authentication status to `InitialConnectionInfo`, which will pass the result of the authentication to clients when the connection is complete. See go/cros-nearby-presence-np-nc-authentication for details. This is used to communicate the authentication status to clients of RequestConnectionV3().

PiperOrigin-RevId: 613278476
2024-03-06 11:10:38 -08:00
Anay Wadhera 8cfbc884d7 introduce v3 discovery options
PiperOrigin-RevId: 551053578
2023-07-25 18:15:16 -07:00
Anay Wadhera 9c6b60df3f introduce v3 advertising options
PiperOrigin-RevId: 551051166
2023-07-25 18:05:08 -07:00
Crisrael Lucero 0e44ed626d Refactor crypto/ directory into crypto_cros/ and crypto/
PiperOrigin-RevId: 549467911
2023-07-19 17:12:52 -07:00
Anay Wadhera 2dcfe66f2e update device provider api for multi-identity auth
PiperOrigin-RevId: 548767413
2023-07-17 12:30:34 -07:00
Crisrael Lucero 001069faa1 Convert std::variant usage to absl::variant
PiperOrigin-RevId: 546987633
2023-07-10 14:43:27 -07:00
Anay Wadhera 507935f506 Implement NearbyDevice::ToProto() for Connections device
PiperOrigin-RevId: 546376155
2023-07-07 13:55:31 -07:00
Anay Wadhera 4a185d0317 Add NearbyDevice::ToProto() API
PiperOrigin-RevId: 546055852
2023-07-06 12:07:01 -07:00
Anay Wadhera 5da4b33824 Revert "Revert incoming connections listener changes for internal breakages."
PiperOrigin-RevId: 542381558
2023-06-21 15:36:44 -07:00
Anay Wadhera 1973b09849 Revert incoming connections listener changes for internal breakages.
PiperOrigin-RevId: 542010849
2023-06-20 12:16:10 -07:00
Anay Wadhera 5737b867ed implement startlisteningforincomingconnections
PiperOrigin-RevId: 540707703
2023-06-15 15:31:08 -07:00
Anay Wadhera 1c455e3488 introduce authentication transport function into DeviceProvider
PiperOrigin-RevId: 538909999
2023-06-08 15:41:54 -07:00
Anay Wadhera b0568ecc26 Update ServiceControllerRouter for v3 API entrypoint
PiperOrigin-RevId: 537478014
2023-06-02 21:06:58 -07:00
Anay Wadhera f727d00ad1 Create v3 ConnectionResponseInfo
PiperOrigin-RevId: 533518921
2023-05-19 12:14:15 -07:00
Anay Wadhera b698c00b5d DeviceProvider: refactor getdevice interface once again
PiperOrigin-RevId: 531659446
2023-05-12 19:37:54 -07:00
Anay Wadhera 630b2dd3db Create ConnectionsDeviceProvider
PiperOrigin-RevId: 529781099
2023-05-05 12:13:06 -07:00
Anay Wadhera d91904d79d Create ConnectionsDevice
PiperOrigin-RevId: 529447365
2023-05-04 10:26:47 -07:00
Anay Wadhera 5edd8e25ca Introduce v3 NC API callbacks
PiperOrigin-RevId: 527747390
2023-04-27 19:01:39 -07:00