diff --git a/www/common/common-hash.js b/www/common/common-hash.js index cc4344413..f335d011b 100644 --- a/www/common/common-hash.js +++ b/www/common/common-hash.js @@ -28,6 +28,13 @@ var factory = function (Util, Crypto, Keys, Nacl) { }; }; + Hash.getSignPublicFromPrivate = function (edPrivateSafeStr) { + var edPrivateStr = Crypto.b64AddSlashes(edPrivateSafeStr); + var privateKey = Nacl.util.decodeBase64(edPrivateStr); + var keyPair = Nacl.sign.keyPair.fromSecretKey(privateKey); + return Nacl.util.encodeBase64(keyPair.publicKey); + }; + var getEditHashFromKeys = Hash.getEditHashFromKeys = function (secret) { var version = secret.version; var data = secret.keys; diff --git a/www/common/sframe-common-outer.js b/www/common/sframe-common-outer.js index b6f2f72d5..7253d8f1a 100644 --- a/www/common/sframe-common-outer.js +++ b/www/common/sframe-common-outer.js @@ -384,10 +384,7 @@ define([ // This is a burn after reading URL: make sure our owner key is still valid try { - var nacl = window.nacl; - var key = nacl.util.decodeBase64(Crypto.b64AddSlashes(burnAfterReading)); - var kp = nacl.sign.keyPair.fromSecretKey(key); - var publicKey = nacl.util.encodeBase64(kp.publicKey); + var publicKey = Utils.Hash.getSignPublicFromPrivate(burnAfterReading); Cryptpad.getPadMetadata({ channel: secret.channel }, waitFor(function (md) {