Add public API
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing

This commit is contained in:
Jack Hadrill 2022-01-31 00:02:51 +00:00
parent ba4c9399a9
commit d77b54a2f8
6 changed files with 55 additions and 2 deletions

6
src/decrypt.ts Normal file
View File

@ -0,0 +1,6 @@
import { cryptoAeadDecrypt } from './romulus-m'
export function decrypt (ciphertext: Buffer, associatedData: Buffer, nonce: Buffer, key: Buffer): Buffer {
const plaintext = cryptoAeadDecrypt(Array.from(ciphertext), Array.from(associatedData), Array.from(nonce), Array.from(key))
return Buffer.from(plaintext)
}

6
src/encrypt.ts Normal file
View File

@ -0,0 +1,6 @@
import { cryptoAeadEncrypt } from './romulus-m'
export function encrypt (message: Buffer, associatedData: Buffer, nonce: Buffer, key: Buffer): Buffer {
const ciphertext = cryptoAeadEncrypt(Array.from(message), Array.from(associatedData), Array.from(nonce), Array.from(key))
return Buffer.from(ciphertext)
}

View File

@ -1 +1,2 @@
console.log('Hello, World')
export { encrypt } from './encrypt'
export { decrypt } from './decrypt'

21
tests/decrypt.test.ts Normal file
View File

@ -0,0 +1,21 @@
import { decrypt } from '../src/decrypt'
test('Test buffers are supported by decrypt function.', () => {
// Given
const ciphertext = Buffer.from([
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 nonce = Buffer.from('\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f')
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, nonce, key)
// Then
const expectedResult = Buffer.from('Hello, World! This is a test message.')
expect(result).toMatchObject(expectedResult)
})

20
tests/encrypt.test.ts Normal file
View File

@ -0,0 +1,20 @@
import { encrypt } from '../src/encrypt'
test('Test buffers are supported by encrypt function.', () => {
// Given
const message = Buffer.from('Hello, World! This is a test message.')
const associatedData = Buffer.from('Some associated data.')
const nonce = Buffer.from('\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f')
const key = Buffer.from('\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f')
// When
const result = encrypt(message, associatedData, nonce, key)
// Then
const expectedResult = Buffer.from([
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
])
expect(result).toMatchObject(expectedResult)
})

View File

@ -1,5 +1,4 @@
{
"extends": "./tsconfig.json",
// "include": ["src", "tests"],
"exclude": []
}