diff options
author | Hubert Chathi <hubert@uhoreg.ca> | 2018-06-11 17:48:45 -0400 |
---|---|---|
committer | Hubert Chathi <hubert@uhoreg.ca> | 2018-06-27 16:38:45 -0400 |
commit | 128d45cc83b1378422625ea975152e1e3c9d88f6 (patch) | |
tree | c5b0840d4f1b4c49ccd6f14f032b377b424e407d /javascript/test/pk.spec.js | |
parent | 6a2a2741e8563bbdc4cc2fa3ad41551d2a482d32 (diff) |
add initial implementation of basic private key encryption functionality
Diffstat (limited to 'javascript/test/pk.spec.js')
-rw-r--r-- | javascript/test/pk.spec.js | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/javascript/test/pk.spec.js b/javascript/test/pk.spec.js new file mode 100644 index 0000000..9eec47e --- /dev/null +++ b/javascript/test/pk.spec.js @@ -0,0 +1,64 @@ +/* +Copyright 2018 New Vector Ltd + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +"use strict"; + +var Olm = require('../olm'); + +if (!Object.keys) { + Object.keys = function(o) { + var k=[], p; + for (p in o) if (Object.prototype.hasOwnProperty.call(o,p)) k.push(p); + return k; + } +} + +describe("pk", function() { + var encryption, decryption; + + beforeEach(function() { + encryption = new Olm.PkEncryption(); + decryption = new Olm.PkDecryption(); + }); + + afterEach(function () { + if (encryption !== undefined) { + encryption.free(); + encryption = undefined; + } + if (decryption !== undefined) { + decryption.free(); + decryption = undefined; + } + }); + + it('should encrypt and decrypt', function () { + var TEST_TEXT='têst1'; + var pubkey = decryption.generate_key(); + encryption.set_recipient_key(pubkey); + var encrypted = encryption.encrypt(TEST_TEXT); + var decrypted = decryption.decrypt(encrypted.ephemeral, encrypted.mac, encrypted.ciphertext); + console.log(TEST_TEXT, "->", decrypted); + expect(decrypted).toEqual(TEST_TEXT); + + TEST_TEXT='hot beverage: ☕'; + encryption.set_recipient_key(pubkey); + encrypted = encryption.encrypt(TEST_TEXT); + decrypted = decryption.decrypt(encrypted.ephemeral, encrypted.mac, encrypted.ciphertext); + console.log(TEST_TEXT, "->", decrypted); + expect(decrypted).toEqual(TEST_TEXT); + }); +}); |