Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Restyle Introduce CommissionableDataProvider for discriminator and verifier #16072

Closed
wants to merge 15 commits into from

Conversation

restyled-io[bot]
Copy link
Contributor

@restyled-io restyled-io bot commented Mar 10, 2022

A duplicate of #16020 with additional commits that automatically address
incorrect style, created by Restyled.

⚠️ Even though this PR is not a Fork, it contains outside contributions.
Please review accordingly.

Since the original Pull Request was opened as a fork in a contributor's
repository, we are unable to create a Pull Request branching from it with only
the style fixes.

The following Restylers made fixes:

To incorporate these changes, you can either:

  1. Merge this Pull Request instead of the original, or

  2. Ask your contributor to locally incorporate these commits and push them to
    the original Pull Request

    Expand for example instructions
    ```console
    git remote add upstream https://github.com/project-chip/connectedhomeip.git
    git fetch upstream pull/<this PR number>/head
    git merge --ff-only FETCH_HEAD
    git push
    ```
    

NOTE: As work continues on the original Pull Request, this process will
re-run and update (force-push) this Pull Request with updated style fixes as
necessary. If the style is fixed manually at any point (i.e. this process finds
no fixes to make), this Pull Request will be closed automatically.

Sorry if this was unexpected. To disable it, see our documentation.

tcarmelveilleux and others added 15 commits March 9, 2022 11:31
- Current API in ConfigurationManager makes it very hard to provide
  spec-mandated per-device SPAKE2+ parameters (verifier, salt, iteration
  counts) and discovery discriminator, since it expects "in-app" common
  SDK handling of the data for something that actually usually
  comes from the factory.

This PR does the following:

- Adds CommissionableDataProvider interface, of which an instance
  is known to the ConfigurationManager.
- Adds a legacy path to avoid requiring setting a
  CommissionableDataProvider in the short term
- A linux implementation of CommissionableDataProvider showcasing
  providing externally generated SPAKE2+ verifier/salt/iterations
- Refactoring of all direct usage of ConfigurationManager to
  get discriminator/SPAKE2+ parameters

Testing done:
- Cert tests still pass with no change
- All unit tests still pass, including those modified
- Setting GN arg `chip_use_transitional_commissionable_data_provider=0`
  properly causes targets that don't provide an implementation
  from running.
- Manually verified the new Linux command-line arguments to
  all-clusters-app allow passing custom version of verifier or iteration
  counts.

Fixes #15543
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants