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

Element-R: support for starting a SAS verification #3528

Merged
merged 3 commits into from
Jun 29, 2023

Conversation

richvdh
Copy link
Member

@richvdh richvdh commented Jun 28, 2023

Once we have a verification request in flight, we can start a SAS flow by sending an m.key.verification.start. This is slightly fiddly because at the moment the js-sdk breaks this into two steps: first do a .beginKeyVerification on the VerificationRequest to immediately get a Verifier, and then call .verify on the Verifier to send the start message.

However, in the Rust world, creating the equivalent to a verifier is asynchronous and sends the start message.

So, we create a new method which does both, and implement it in legacy crypto for forward compatibility.

Notes: Deprecate VerificationRequest.beginKeyVerification() in favour of VerificationRequest.startVerification().

Part of element-hq/element-web#25320.


Here's what your changelog entry will look like:

🦖 Deprecations

  • Deprecate VerificationRequest.beginKeyVerification() in favour of VerificationRequest.startVerification(). (#3528).

…ication`

The rust SDK ties together creating the verifier and sending the
`m.key.verification.start` message, so we need to combine
`.beginKeyVerification` and `.verify`.
@richvdh richvdh added the T-Deprecation A pull request that makes something deprecated label Jun 28, 2023
@richvdh richvdh marked this pull request as ready for review June 28, 2023 16:34
@richvdh richvdh requested a review from a team as a code owner June 28, 2023 16:34
Copy link
Contributor

@germain-gg germain-gg left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Otherwise looks good to me!

@@ -458,6 +459,13 @@ export class VerificationRequest<C extends IVerificationChannel = IVerificationC
return this._verifier!;
}

public async startVerification(method: string): Promise<Verifier> {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it desirable to have a list of supported methods here, rather than using string as a type?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

possibly, though we do have to support strings on all the other methods for backwards compatibility, so it's not an obvious win.

@richvdh richvdh added this pull request to the merge queue Jun 29, 2023
Merged via the queue into develop with commit 5165899 Jun 29, 2023
@richvdh richvdh deleted the rav/element-r/34_start_sas branch June 29, 2023 16:48
richvdh added a commit to matrix-org/matrix-react-sdk that referenced this pull request Jun 30, 2023
richvdh added a commit to matrix-org/matrix-react-sdk that referenced this pull request Jun 30, 2023
richvdh added a commit to matrix-org/matrix-react-sdk that referenced this pull request Jul 3, 2023
github-merge-queue bot pushed a commit to matrix-org/matrix-react-sdk that referenced this pull request Jul 7, 2023
* Cypress: `crypto.verification.request` -> `crypto.verificationRequestReceived`

matrix-org/matrix-js-sdk#3514 deprecated crypto.verification.request.

* Cypress: `beginKeyVerification` -> `startVerification`

matrix-org/matrix-js-sdk#3528 deprecated beginKeyVerification

* simplify `setupBotClient`

no functional change here, just combining the various `cy.wrap()`ed things into
a single async func

* Cypress: Use Rust crypto for the bot user in verification tests

We can already start using the Rust crypto implementation for the "bot" user in
the verification tests!
su-ex added a commit to SchildiChat/matrix-js-sdk that referenced this pull request Feb 24, 2024
* Drop support for Node 16 ([\matrix-org#3533](matrix-org#3533)).
* Improve types around login, registration, UIA and identity servers ([\matrix-org#3537](matrix-org#3537)).
* **The Browserify artifact is being deprecated, scheduled for removal in the October 10th release cycle. (matrix-org#3189)**
* Simplify `MatrixClient::setPowerLevel` API ([\matrix-org#3570](matrix-org#3570)). Fixes element-hq/element-web#13900 and matrix-org#1844.
* Deprecate `VerificationRequest.getQRCodeBytes` and replace it with the asynchronous `generateQRCode`. ([\matrix-org#3562](matrix-org#3562)).
* Deprecate `VerificationRequest.beginKeyVerification()` in favour of `VerificationRequest.startVerification()`. ([\matrix-org#3528](matrix-org#3528)).
* Deprecate `Crypto.VerificationRequest` application event, replacing it with `Crypto.VerificationRequestReceived`. ([\matrix-org#3514](matrix-org#3514)).
* Throw saner error when peeking has its room pulled out from under it ([\matrix-org#3577](matrix-org#3577)). Fixes element-hq/element-web#18679.
* OIDC: Log in ([\matrix-org#3554](matrix-org#3554)). Contributed by @kerryarchibald.
* Prevent threads code from making identical simultaneous API hits ([\matrix-org#3541](matrix-org#3541)). Fixes element-hq/element-web#25395.
* Update IUnsigned type to be extensible ([\matrix-org#3547](matrix-org#3547)).
* add stop() api to BackupManager for clean shutdown ([\matrix-org#3553](matrix-org#3553)).
* Log the message ID of any undecryptable to-device messages ([\matrix-org#3543](matrix-org#3543)).
* Ignore thread relations on state events for consistency with edits ([\matrix-org#3540](matrix-org#3540)).
* OIDC: validate id token ([\matrix-org#3531](matrix-org#3531)). Contributed by @kerryarchibald.
* Fix read receipt sending behaviour around thread roots ([\matrix-org#3600](matrix-org#3600)).
* Fix `TypedEventEmitter::removeAllListeners(void)` not working ([\matrix-org#3561](matrix-org#3561)).
* Don't allow Olm unwedging rate-limiting to race ([\matrix-org#3549](matrix-org#3549)). Fixes element-hq/element-web#25716.
* Fix an instance of failed to decrypt error when an in flight `/keys/query` fails. ([\matrix-org#3486](matrix-org#3486)).
* Use the right anchor emoji for SAS verification ([\matrix-org#3534](matrix-org#3534)).
* fix a bug which caused the wrong emoji to be shown during SAS device verification. ([\matrix-org#3523](matrix-org#3523)).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
T-Deprecation A pull request that makes something deprecated
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants