You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			43 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
			
		
		
	
	
			43 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
/* global libsignal, libloki, textsecure, StringView, dcodeIO */
 | 
						|
 | 
						|
'use strict';
 | 
						|
 | 
						|
describe('Crypto', () => {
 | 
						|
  describe('FallBackSessionCipher', () => {
 | 
						|
    let fallbackCipher;
 | 
						|
    let identityKey;
 | 
						|
    let address;
 | 
						|
    const store = textsecure.storage.protocol;
 | 
						|
 | 
						|
    before(async () => {
 | 
						|
      clearDatabase();
 | 
						|
      identityKey = await libsignal.KeyHelper.generateIdentityKeyPair();
 | 
						|
      store.put('identityKey', identityKey);
 | 
						|
      const key = libsignal.crypto.getRandomBytes(32);
 | 
						|
      const pubKeyString = StringView.arrayBufferToHex(key);
 | 
						|
      address = new libsignal.SignalProtocolAddress(pubKeyString, 1);
 | 
						|
      fallbackCipher = new libloki.crypto.FallBackSessionCipher(address);
 | 
						|
    });
 | 
						|
 | 
						|
    it('should encrypt fallback cipher messages as fallback messages', async () => {
 | 
						|
      const buffer = new ArrayBuffer(10);
 | 
						|
      const { type } = await fallbackCipher.encrypt(buffer);
 | 
						|
      assert.strictEqual(
 | 
						|
        type,
 | 
						|
        textsecure.protobuf.Envelope.Type.FALLBACK_MESSAGE
 | 
						|
      );
 | 
						|
    });
 | 
						|
 | 
						|
    it('should encrypt and then decrypt a message with the same result', async () => {
 | 
						|
      const arr = new Uint8Array([1, 2, 3, 4, 5]);
 | 
						|
      const { body } = await fallbackCipher.encrypt(arr.buffer);
 | 
						|
      const bufferBody = dcodeIO.ByteBuffer.wrap(
 | 
						|
        body,
 | 
						|
        'binary'
 | 
						|
      ).toArrayBuffer();
 | 
						|
      const result = await fallbackCipher.decrypt(bufferBody);
 | 
						|
      assert.deepEqual(result, arr.buffer);
 | 
						|
    });
 | 
						|
  });
 | 
						|
});
 |