Skip to content

Commit

Permalink
updated to latest @esentri/de-serializer
Browse files Browse the repository at this point in the history
  • Loading branch information
Maurice Müller committed May 7, 2018
1 parent 3ef86de commit de92d28
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 22 deletions.
4 changes: 2 additions & 2 deletions package.json
@@ -1,6 +1,6 @@
{
"name": "@esentri/js-crypto-wrapper",
"version": "0.1.0",
"version": "0.1.1",
"description": "a wrapper around WebCryptoAPI",
"keywords": [],
"main": "dist/crypto-wrapper.umd.js",
Expand Down Expand Up @@ -111,6 +111,6 @@
"validate-commit-msg": "^2.12.2"
},
"dependencies": {
"@esentri/de-serializer": "^0.6.2"
"@esentri/de-serializer": "^0.7.1"
}
}
19 changes: 10 additions & 9 deletions src/SymmetricKey.ts
Expand Up @@ -15,15 +15,16 @@ export class SymmetricKey {
public encrypt (encryptee: any,
parameters: Array<DeSerializeParameter> = [DeSerializeParameter.WITH_FUNCTIONS])
: Promise<EncryptedObject> {
let vector = InitializationVector.random()
encryptee = SimpleSerialize(encryptee, parameters, SerializedType.ARRAY_BUFFER)
return window.crypto.subtle.encrypt(
{name: this.cryptoKey.algorithm.name!, iv: vector.asArray()},
this.cryptoKey,
encryptee)
.then(encryptedData => {
return new EncryptedObject(encryptedData, this.cryptoKey.algorithm, vector)
}) as Promise<EncryptedObject>
return SimpleSerialize(encryptee, parameters, SerializedType.ARRAY_BUFFER).then(encryptee => {
let vector = InitializationVector.random()
return window.crypto.subtle.encrypt(
{name: this.cryptoKey.algorithm.name!, iv: vector.asArray()},
this.cryptoKey,
encryptee)
.then(encryptedData => {
return new EncryptedObject(encryptedData, this.cryptoKey.algorithm, vector)
}) as Promise<EncryptedObject>
})
}

public decrypt (decryptionParameters: any, content: ArrayBuffer, prototype: any = null)
Expand Down
26 changes: 15 additions & 11 deletions test/EncryptedObject.test.ts
Expand Up @@ -6,17 +6,19 @@ import {NestedTestClass, SimpleTestClass} from './mock/SimpleTestClass'
describe('encrypted object test', () => {

const testClass = new SimpleTestClass(new NestedTestClass('hello world'))
const serializedTestClass = SimpleSerialize(testClass,
const serializedTestClassPromise = SimpleSerialize(testClass,
[DeSerializeParameter.WITH_FUNCTIONS],
SerializedType.ARRAY_BUFFER)

it('decrypts simple', done => {
SymmetricKey.random().then(symmetricKey => {
symmetricKey.encrypt(testClass).then(encryptedObject => {
expect(ArrayBufferEqual(encryptedObject['content'], serializedTestClass)).toBeFalsy()
encryptedObject.decrypt(symmetricKey).then(decryptedArrayBuffer => {
expect(ArrayBufferEqual(decryptedArrayBuffer, serializedTestClass)).toBeTruthy()
done()
serializedTestClassPromise.then(serializedTestClass => {
expect(ArrayBufferEqual(encryptedObject['content'], serializedTestClass)).toBeFalsy()
encryptedObject.decrypt(symmetricKey).then(decryptedArrayBuffer => {
expect(ArrayBufferEqual(decryptedArrayBuffer, serializedTestClass)).toBeTruthy()
done()
})
})
})
})
Expand All @@ -25,12 +27,14 @@ describe('encrypted object test', () => {
it('decrypt to object', done => {
SymmetricKey.random().then(symmetricKey => {
symmetricKey.encrypt(testClass).then(encryptedObject => {
expect(ArrayBufferEqual(encryptedObject['content'], serializedTestClass)).toBeFalsy()
encryptedObject.decrypt(symmetricKey, SimpleTestClass)
.then((simpleTestClass: SimpleTestClass) => {
expect(simpleTestClass.getField()).toBe('hello world')
done()
})
serializedTestClassPromise.then(serializedTestClass => {
expect(ArrayBufferEqual(encryptedObject['content'], serializedTestClass)).toBeFalsy()
encryptedObject.decrypt(symmetricKey, SimpleTestClass)
.then((simpleTestClass: SimpleTestClass) => {
expect(simpleTestClass.getField()).toBe('hello world')
done()
})
})
})
})
})
Expand Down

0 comments on commit de92d28

Please sign in to comment.