pubnub
Version:
Publish & Subscribe Real-time Messaging with PubNub
59 lines (49 loc) • 2.21 kB
text/typescript
/** */
import { expect } from 'chai';
import PubNub from '../../../src/node';
describe('components/crypto useRandomIVs', () => {
const pubnub = new PubNub({
subscribeKey: 'demo-36',
publishKey: 'demo-36',
useRandomIVs: true,
cipherKey: 'abcdef',
uuid: 'myUUID',
});
it('should be able to encrypt and decrypt a message', () => {
const data = {
message:
'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et ' +
'dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ' +
'ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu ' +
'fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt ' +
'mollit anim id est laborum.',
};
const plaintext = JSON.stringify(data);
const ciphertext = pubnub.encrypt(plaintext);
const decrypted = pubnub.decrypt(ciphertext);
expect(decrypted).to.deep.equal(data, JSON.stringify(decrypted));
});
it('should be able to encrypt and decrypt a message with ICryptoModule', () => {
const pubnub = new PubNub({
subscribeKey: 'demo-36',
publishKey: 'demo-36',
useRandomIVs: true,
cryptoModule: PubNub.CryptoModule.aesCbcCryptoModule({
cipherKey: 'abcd',
}),
uuid: 'myUUID',
});
const data = {
message:
'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et ' +
'dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ' +
'ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu ' +
'fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt ' +
'mollit anim id est laborum.',
};
const plaintext = JSON.stringify(data);
const ciphertext = pubnub.encrypt(plaintext);
const decrypted = pubnub.decrypt(ciphertext);
expect(decrypted).to.deep.equal(data);
});
});