Ivan Enderlin
792b4581ab
feat(crypto-js): Implement Qr.reciprocate and .confirm_scanning.
2022-09-14 09:58:09 +02:00
Ivan Enderlin
58ea598c68
feat(crypto-js): Implement VerificationRequest.scan_qr_code.
2022-09-14 09:58:09 +02:00
Ivan Enderlin
581c537396
test(crypto-js): Properly test `Qr.toQrCode.
2022-09-14 09:58:09 +02:00
Ivan Enderlin
9834b67bd5
feat(crypto-js): QrCode.renderIntoBuffer returns an Uint8ClampedArray.
2022-09-14 09:58:09 +02:00
Ivan Enderlin
6f89d02599
test(crypto-js): Test QrCode.render_into_buffer.
2022-09-14 09:58:09 +02:00
Ivan Enderlin
cbb5080837
test(crypto-js): Properly test Qr.toBytes.
2022-09-14 09:58:09 +02:00
Ivan Enderlin
6a05f834a9
test(crypto-js): Test Qr.toBytes.
2022-09-14 09:58:09 +02:00
Ivan Enderlin
c7e0b3ee31
test(crypto-js): Testing key verification workflow until QR code generation.
2022-09-14 09:58:09 +02:00
Ivan Enderlin
0d57983e1b
feat(crypto-js): Implement VerificationRequest.generate_qr_code.
2022-09-14 09:58:09 +02:00
Ivan Enderlin
bbfc076c7f
test(crypto-js): Inject bootstrap cross signing keys when setting up machines.
2022-09-14 09:58:09 +02:00
Ivan Enderlin
e367d8574d
feat(crypto-js): Implement OlmMachine.bootstrap_cross_signing.
2022-09-14 09:58:09 +02:00
Ivan Enderlin
1be17d354d
feat(crypto-js): Implement OlmMachine.(export|import)_cross_signing_keys.
2022-09-14 09:58:09 +02:00
Ivan Enderlin
e8331cc40c
feat(crypto-js): Enable the qrcode feature by default.
2022-09-14 09:58:09 +02:00
Ivan Enderlin
71a2fac46f
test(crypto-js): Reorganize the tests a little bit.
2022-09-14 09:58:09 +02:00
Ivan Enderlin
8948333e1e
test(crypto-js): Test until m.key.verification.done \o/.
2022-09-14 09:58:09 +02:00
Ivan Enderlin
c471a6fb4d
test(crypto-js): Split the Key Verification test case into a test suite.
2022-09-14 09:58:09 +02:00
Ivan Enderlin
6239d31bcf
test(crypto-js): Test the Emoji and decimals implementations.
2022-09-14 09:58:09 +02:00
Ivan Enderlin
b5a8103023
feat(crypto-js): Implement Sas.accept.
2022-09-14 09:58:09 +02:00
Ivan Enderlin
95709bb4b3
test(crypto-js): Test the Sas implementation.
2022-09-14 09:58:09 +02:00
Ivan Enderlin
14f22979c0
feat(crypto-js): Implement VerificationRequest.start_sas.
2022-09-14 09:58:09 +02:00
Ivan Enderlin
e6141d8efc
test(crypto-js): Continue to test m.key.verification.request and .ready.
2022-09-14 09:58:09 +02:00
Ivan Enderlin
155b187d45
test(crypto-js): Write first tests for key verification.
2022-09-14 09:58:09 +02:00
Ivan Enderlin
e659c724cd
chore(crypto-js): Some methods have been renamed.
2022-09-14 09:58:09 +02:00
Ivan Enderlin
e00b9221b9
feat(crypto-js): Implement Device.request_verification.
2022-09-14 09:58:09 +02:00
Ivan Enderlin
b6f01b3cec
feat(crypto-js): Implement the Device and UserDevice API.
2022-09-14 09:58:09 +02:00
Ivan Enderlin
53e21e0c26
feat(crypto-js): Start implementation key verification API.
2022-09-14 09:58:06 +02:00
Ivan Enderlin
9155989060
feat(crypto): Simplify code and add documentation.
2022-09-14 09:56:33 +02:00
Doug
bb62437369
feat(bindings): Expose redact method to FFI
2022-09-13 23:06:11 +02:00
Damir Jelić
6e6c474bcb
chore(base): Bump the lru crate
2022-09-13 16:03:42 +02:00
Damir Jelić
8ba33f6fd3
chore: Bump vodozemac to a released version
2022-09-13 16:03:42 +02:00
Jonas Platte
e46e13d1bf
chore: Upgrade Ruma
2022-09-13 08:32:59 +00:00
Kévin Commaille
97995b7bf6
fix(sdk): Re-export qrcode encoding and decoding error types
2022-09-12 19:27:30 +02:00
Damir Jelić
aac41fc82a
refactor(crypto): Remove the forwarding chains
...
These aren't really useful since they can be easily spoofed by any room
key forwarder.
2022-09-12 16:03:05 +02:00
Ivan Enderlin
d1b2bfcaa4
feat(qrcode): Remove decoding QR code from an image
...
feat(qrcode): Remove decoding QR code from an image
2022-09-12 13:33:42 +02:00
Ivan Enderlin
a0edd2f8d8
test(qrcode): Restore image only for one test.
2022-09-12 12:42:18 +02:00
Ivan Enderlin
478529f230
chore: Update Cargo.lock.
2022-09-12 12:28:31 +02:00
Ivan Enderlin
9411801245
feat(qrcode): Remove decoding QR code from an image.
...
This patch removes the `decode_image` (default) feature for this
`matrix-sdk-qrcode` crate.
First reason is that `rqrr` panics for some particular QR codes, and
we don't want to panic.
Second reason is that it's not a feature that is used. For Element on
iOS and Android, it's very unlikely that every frame from the camera
will be sent to `matrix-sdk-qrcode` to see if it can be decoded. So
it's obvious that an external library is used to read the bytes from
the QR code, that are then sent to `matrix-sdk-qrcode`. For Element on
Web, it's basically the same argument.
This feature is actually used only in our tests to ensure the
generated QR code is valid, but it sometimes fails due to `rqrr`
(cf. First reason).
2022-09-12 12:15:49 +02:00
Ivan Enderlin
2a94f575b8
feat(qrcode): Allow VerificationData to receive a flow ID
...
feat(qrcode): Allow `VerificationData` to receive a flow ID
2022-09-12 12:10:11 +02:00
Ivan Enderlin
f9d09b60d5
chore(crypto): Reduce the size of AnyDecryptedOlmEvent.
...
`AnyDecryptedOlmEvent::Custom` contains at least 440 bytes, while the
second-largest variant (`RoomKey`) contains at least 0 bytes. Let's
box `Custom` so that the size of `AnyDecryptedOlmEvent` stays low.
2022-09-12 11:57:45 +02:00
Ivan Enderlin
7831e0cd89
chore(crypto): Use to_owned instead of to_string.
2022-09-12 09:49:30 +02:00
Ivan Enderlin
70eeffbbb0
doc(qrcode): Update documentation.
...
Since we have switched to Vodozemac, those values don't need to be
unpadded base64 anymore.
2022-09-12 09:47:38 +02:00
Jonas Platte
831e802dd0
refactor(bindings): Move some more functions and methods out of UDL
2022-09-09 14:30:23 +02:00
Jonas Platte
ab0c144f51
chore: Upgrade UniFFI
2022-09-09 14:30:23 +02:00
Jonas Platte
dc05c6e2b8
chore: Silence clippy lint
2022-09-09 12:51:57 +02:00
Jonas Platte
3a6397fdba
chore: Update Cargo.lock
2022-09-09 12:51:57 +02:00
Jonas Platte
4a481f09d1
fix(base): Make tokio dev-dependency arch-dependent
2022-09-09 12:51:57 +02:00
Ivan Enderlin
fa6745bb60
feat(qrcode): DecodingError::Identifier is no longer useful.
2022-09-08 16:14:30 +02:00
Ivan Enderlin
cb21d89229
test(qrcode): Removing decode_invalid_room_id.
...
A room ID can no longer be invalid, it's just a string representing
either a `EventId` (we can validate that but…) or a `TransactionId`
(which is an opaque string, so it can be anything).
2022-09-08 16:12:21 +02:00
Ivan Enderlin
12b1ec5ef9
feat(crypto): VerificationData takes a flow ID, removing a panic.
...
This patch updates `QrVerification::new_cross`, by passing a flow ID
as an owned `String` to `VerificationData`, thus removing a panic, and
allowing QR code verification to happen outside a room.
2022-09-08 15:43:26 +02:00
Ivan Enderlin
aa1a47831a
chore(crypto): Use longer variable names.
2022-09-08 15:43:09 +02:00