45 lines
1.7 KiB
TypeScript
45 lines
1.7 KiB
TypeScript
import { decrypt } from '../src/decrypt'
|
|
|
|
test('Test nonce parsing by public decrypt function.', () => {
|
|
// Given
|
|
const ciphertext = Buffer.from([
|
|
// Nonce
|
|
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
|
|
// Ciphertext
|
|
225, 53, 3, 212, 22, 112, 246, 194, 61, 171, 230, 187, 157, 102, 32, 76, 62, 65,
|
|
25, 202, 255, 201, 206, 49, 60, 58, 82, 216, 72, 116, 106, 129, 162, 142, 69, 40,
|
|
167, 88, 94, 195, 174, 217, 242, 149, 224, 125, 196, 237, 172, 165, 116, 119, 128
|
|
])
|
|
const associatedData = Buffer.from('Some associated data.')
|
|
const key = Buffer.from('\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f')
|
|
|
|
// When
|
|
const result = decrypt(ciphertext, associatedData, key)
|
|
|
|
// Then
|
|
const expectedResult = Buffer.from('Hello, World! This is a test message.')
|
|
expect(result.success).toBe(true)
|
|
expect(result.plaintext).toMatchObject(expectedResult)
|
|
})
|
|
|
|
test('Test decryption with an invalid key.', () => {
|
|
// Given
|
|
const ciphertext = Buffer.from([
|
|
// Nonce
|
|
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
|
|
// Ciphertext
|
|
225, 53, 3, 212, 22, 112, 246, 194, 61, 171, 230, 187, 157, 102, 32, 76, 62, 65,
|
|
25, 202, 255, 201, 206, 49, 60, 58, 82, 216, 72, 116, 106, 129, 162, 142, 69, 40,
|
|
167, 88, 94, 195, 174, 217, 242, 149, 224, 125, 196, 237, 172, 165, 116, 119, 128
|
|
])
|
|
const associatedData = Buffer.from('Some associated data.')
|
|
const key = Buffer.from('\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x00')
|
|
|
|
// When
|
|
const result = decrypt(ciphertext, associatedData, key)
|
|
|
|
// Then
|
|
expect(result.success).toBe(false)
|
|
expect(result.plaintext).toMatchObject(Buffer.alloc(0))
|
|
})
|