You've already forked matrix-js-sdk
mirror of
https://github.com/matrix-org/matrix-js-sdk.git
synced 2025-11-25 05:23:13 +03:00
Support sign in + E2EE set up using QR code implementing MSC3886, MSC3903 and MSC3906 (#2747)
* Clean implementation of MSC3886 and MSC3903 * Refactor to use object initialiser instead of lots of args + handle non-compliant fetch better * Start of some unit tests * Make AES work on Node.js as well as browser * Tests for ECDH/X25519 * stric mode linting * Fix incorrect test * Refactor full rendezvous logic out of react-sdk into js-sdk * Use correct unstable import * Pass fetch around * Make correct usage of fetch in tests * fix: you can't call fetch when it's not on window * Use class names to make it clearer that these are unstable MSC implementations * Linting * Clean implementation of MSC3886 and MSC3903 * Refactor to use object initialiser instead of lots of args + handle non-compliant fetch better * Start of some unit tests * Make AES work on Node.js as well as browser * Tests for ECDH/X25519 * stric mode linting * Fix incorrect test * Refactor full rendezvous logic out of react-sdk into js-sdk * Use correct unstable import * Pass fetch around * Make correct usage of fetch in tests * fix: you can't call fetch when it's not on window * Use class names to make it clearer that these are unstable MSC implementations * Linting * Reduce log noise * Tidy up interface a bit * Additional test for transport layer * Linting * Refactor dummy transport to be re-usable * Remove redundant condition * Handle more error cases * Initial tests for MSC3906 * Reduce scope of PR to only cover generating a code on existing device * Strict linting * Additional test cases * Lint * additional test cases and remove some code smells * More test cases * Strict lint * Strict lint * Test case * Refactor to handle UIA * Unstable prefixes * Lint * Missed due to lack of strict... * Test server capabilities using Feature * Remove redundant assignment * Refactor ro resuse generateDecimal from SAS * Update src/rendezvous/transports/simpleHttpTransport.ts Co-authored-by: Travis Ralston <travisr@matrix.org> * Update src/rendezvous/transports/simpleHttpTransport.ts Co-authored-by: Travis Ralston <travisr@matrix.org> * Update src/rendezvous/channels/ecdhV1.ts Co-authored-by: Travis Ralston <travisr@matrix.org> * Update src/rendezvous/transports/simpleHttpTransport.ts Co-authored-by: Travis Ralston <travisr@matrix.org> * Rename files to titlecase * Visibility modifiers * Resolve public mutability * Refactor logic to reduce duplication * Refactor to have better defined data types throughout * Rebase and remove Node.js crypto * Wipe AES key out after use * Add typing for MSC3906 layer * Strict lint * Fix double connect detection * Remove unintended debug statement * Return types * Use generics * Make type of MSC3903ECDHPayload explicit * Use unstable prefix for RendezvousChannelAlgorithm * Fix * Extra unstable type * Test types Co-authored-by: Travis Ralston <travisr@matrix.org> Co-authored-by: Kerry <kerrya@element.io>
This commit is contained in:
@@ -32,6 +32,7 @@ import {
|
||||
} from './Error';
|
||||
import { logger } from '../../logger';
|
||||
import { IContent, MatrixEvent } from "../../models/event";
|
||||
import { generateDecimalSas } from './SASDecimal';
|
||||
import { EventType } from '../../@types/event';
|
||||
|
||||
const START_TYPE = EventType.KeyVerificationStart;
|
||||
@@ -52,22 +53,6 @@ const newMismatchedCommitmentError = errorFactory(
|
||||
"m.mismatched_commitment", "Mismatched commitment",
|
||||
);
|
||||
|
||||
function generateDecimalSas(sasBytes: number[]): [number, number, number] {
|
||||
/**
|
||||
* +--------+--------+--------+--------+--------+
|
||||
* | Byte 0 | Byte 1 | Byte 2 | Byte 3 | Byte 4 |
|
||||
* +--------+--------+--------+--------+--------+
|
||||
* bits: 87654321 87654321 87654321 87654321 87654321
|
||||
* \____________/\_____________/\____________/
|
||||
* 1st number 2nd number 3rd number
|
||||
*/
|
||||
return [
|
||||
(sasBytes[0] << 5 | sasBytes[1] >> 3) + 1000,
|
||||
((sasBytes[1] & 0x7) << 10 | sasBytes[2] << 2 | sasBytes[3] >> 6) + 1000,
|
||||
((sasBytes[3] & 0x3f) << 7 | sasBytes[4] >> 1) + 1000,
|
||||
];
|
||||
}
|
||||
|
||||
type EmojiMapping = [emoji: string, name: string];
|
||||
|
||||
const emojiMapping: EmojiMapping[] = [
|
||||
|
||||
Reference in New Issue
Block a user