From 4116d89d5f808a42e4e0f022a2c8f27b9ec4af53 Mon Sep 17 00:00:00 2001 From: "J. Ryan Stinnett" Date: Wed, 20 Nov 2019 17:48:36 +0000 Subject: [PATCH] Store cross-signing keys in secret storage --- src/crypto/index.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/crypto/index.js b/src/crypto/index.js index d5f461f5b..7da2e8d9d 100644 --- a/src/crypto/index.js +++ b/src/crypto/index.js @@ -324,7 +324,12 @@ Crypto.prototype.bootstrapSecretStorage = async function({ // If cross-signing keys changed, store them in Secure Secret Storage. if (crossSigningKeysChanged) { - throw new Error("Cross-signing keys need to be stored!"); + logger.log("Storing cross-signing keys in secret storage"); + // XXX: We need to think about how to re-do this step if it fails. + const getKey = this._baseApis._cryptoCallbacks.getCrossSigningKey; + for (const name of ["master", "self_signing", "user_signing"]) { + await this.storeSecret(`m.cross_signing.${name}`, getKey(name)); + } } logger.log("Secure Secret Storage ready");