From 3524aae25f079ef5cf6d6a79dede1ff28220d30f Mon Sep 17 00:00:00 2001 From: 3nprob <3nprob@3nprob> Date: Fri, 20 Aug 2021 16:03:21 +0900 Subject: [PATCH] Report new certificate fingerprint --- src/bridge/AdminRoomHandler.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/bridge/AdminRoomHandler.ts b/src/bridge/AdminRoomHandler.ts index 0406a2fba..4594a5f2e 100644 --- a/src/bridge/AdminRoomHandler.ts +++ b/src/bridge/AdminRoomHandler.ts @@ -673,8 +673,9 @@ export class AdminRoomHandler { new MatrixUser(userId), server.domain ); } + let c: crypto.X509Certificate; try { - const c = new crypto.X509Certificate(cert); + c = new crypto.X509Certificate(cert); const pk = config.getSASLKey(); if (pk) { if (!c.checkPrivateKey(crypto.createPrivateKey(pk))) { @@ -689,10 +690,13 @@ export class AdminRoomHandler { catch (err) { throw new Error(`Invalid certificate: ${err.message})`); } + const fingerprint512 = crypto.createHash('sha512').update(c.raw).digest('hex') + .replace(/:/g, '').toLowerCase(); config.setSASLCert(cert); await this.ircBridge.getStore().storeIrcClientConfig(config); notice = new MatrixAction( - "notice", `Successfully stored SASL cert for ${domain}. Use !reconnect to reauthenticate.` + "notice", `Successfully stored SASL cert for ${domain} with fingerprint ${fingerprint512}.\n' + + 'Use !reconnect to reauthenticate.` ); } }