element-hq / element-hq/element-web

Cannot verify devices on account with working 4S but no published public cross-signing keys

Open
#27,252 10 comments 3 reactions 0 assignees View on GitHub
A-E2EE A-E2EE-Cross-Signing A-Element-R O-Occasional S-Major T-Defect Team: Crypto
Dominant language
TypeScript
Stars
13.5k
Forks
2.8k
PR merge metrics
PR metrics pending

Description

Suppose you have a user account, where SSSS has been set up, and contains the *private* cross-signing keys, but the *public* keys have never been published. See https://github.com/element-hq/element-web/issues/27253.

Now, when you log in on the account:

1. You are prompted for your 4S passphrase: ![image](https://github.com/element-hq/element-web/assets/1389908/a105a53f-bd77-478e-afb3-417627bcd620)
2. Enter 4S passphrase.
3. You are prompted a **further two times** for 4S passphrase.
4. It still fails, even after all that:
![image](https://github.com/element-hq/element-web/assets/1389908/aac0dc14-0b14-4fe2-98c1-330f380fd9c8)
Console reports:
```
WARN matrix_sdk_crypto::store: No public identity found while importing cross-signing keys, a /keys/query needs to be done
Error bootstrapping cross-signing Error: the signing key is missing from the object that signed the message
at module.exports.__wbindgen_error_new (index.js:9867:1)
at matrix_sdk_crypto_wasm.wasm.wasm_bindgen::JsError::new::ha883f446bf57a3fd (matrix_sdk_crypto_wa…-0881f436:0x17b4bac)
at matrix_sdk_crypto_wasm.wasm.matrix_sdk_crypto_wasm::future::future_to_promise::{{closure}}::h69162113e82d4886 (matrix_sdk_crypto_wa…-0881f436:0x1607641)
at matrix_sdk_crypto_wasm.wasm.>::call_once::h66e7cefc41dc8442 (matrix_sdk_crypto_wa…-0881f436:0x18ad0b4)
at matrix_sdk_crypto_wasm.wasm. as futures_util::fns::FnOnce1>>::call_once::{{closure}}::h94a11c4d36abd7a7 (matrix_sdk_crypto_wa…-0881f436:0x1906219)
at matrix_sdk_crypto_wasm.wasm.core::result::Result::map_err::h61ac269bc4134dbe (matrix_sdk_crypto_wa…-0881f436:0x13dd6bb)
at matrix_sdk_crypto_wasm.wasm. as futures_util::fns::FnOnce1>>::call_once::h14b9005db0a46cbf (matrix_sdk_crypto_wa…-0881f436:0x1967c2a)
at matrix_sdk_crypto_wasm.wasm. as core::future::future::Future>::poll::hd56fd2c68aa16e05 (matrix_sdk_crypto_wa…m-0881f436:0xf54621)
at matrix_sdk_crypto_wasm.wasm. as core::future::future::Future>::poll::h38cc453636d8daec (matrix_sdk_crypto_wa…-0881f436:0x18ae3fb)
at matrix_sdk_crypto_wasm.wasm. as core::future::future::Future>::poll::h05eb7142cd1307b3 (matrix_sdk_crypto_wa…-0881f436:0x18ad953)
at /home/rav/work/matrix-rust-sdk/crates/matrix-sdk-crypto/src/store/mod.rs:1212

(anonymous) @ CreateCrossSigningDialog.tsx:163
```
5. Press "Cancel". EW now launches.
6. Under "Security & Privacy": ![image](https://github.com/element-hq/element-web/assets/1389908/483f45e4-eeb1-4be1-855b-430e3656bdb0)
7. Click "Verify this session"
8. You are prompted (yet again) for 4S passphrase.
9. Entering correct password returns you to "Verify this session" dialog. Console reports:
```
Error: the signing key is missing from the object that signed the message
at module.exports.__wbindgen_error_new (index.js:9867:1)
at matrix_sdk_crypto_wasm.wasm.wasm_bindgen::JsError::new::ha883f446bf57a3fd (matrix_sdk_crypto_wasm.wasm-0881f436:0x17b4bac)
at matrix_sdk_crypto_wasm.wasm.matrix_sdk_crypto_wasm::future::future_to_promise::{{closure}}::h69162113e82d4886 (matrix_sdk_crypto_wasm.wasm-0881f436:0x1607641)
at matrix_sdk_crypto_wasm.wasm.>::call_once::h66e7cefc41dc8442 (matrix_sdk_crypto_wasm.wasm-0881f436:0x18ad0b4)
at matrix_sdk_crypto_wasm.wasm. as futures_util::fns::FnOnce1>>::call_once::{{closure}}::h94a11c4d36abd7a7 (matrix_sdk_crypto_wasm.wasm-0881f436:0x1906219)
at matrix_sdk_crypto_wasm.wasm.core::result::Result::map_err::h61ac269bc4134dbe (matrix_sdk_crypto_wasm.wasm-0881f436:0x13dd6bb)
at matrix_sdk_crypto_wasm.wasm. as futures_util::fns::FnOnce1>>::call_once::h14b9005db0a46cbf (matrix_sdk_crypto_wasm.wasm-0881f436:0x1967c2a)
at matrix_sdk_crypto_wasm.wasm. as core::future::future::Future>::poll::hd56fd2c68aa16e05 (matrix_sdk_crypto_wasm.wasm-0881f436:0xf54621)
at matrix_sdk_crypto_wasm.wasm. as core::future::future::Future>::poll::h38cc453636d8daec (matrix_sdk_crypto_wasm.wasm-0881f436:0x18ae3fb)
at matrix_sdk_crypto_wasm.wasm. as core::future::future::Future>::poll::h05eb7142cd1307b3 (matrix_sdk_crypto_wasm.wasm-0881f436:0x18ad953)
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.