UNPKG

@fruitsjs/crypto

Version:

Cryptographic functions for building Fruits Eco-Blockchain apps.

26 lines (21 loc) 1.06 kB
import {Converter} from './converter'; import {encryptData} from './encryptData'; import {EncryptedMessage} from './typings/encryptedMessage'; /** * Encrypts arbitrary message (UTF-8 compatible) for P2P message/data exchange using asymmetric encryption * @see [[decryptMessage]] * @param plaintext Message to be encrypted * @param recipientPublicKeyHex The recipients public key hexadecimal format * @param senderPrivateKeyHex The senders private (agreement) key hexadecimal format * @return The encrypted Message * @module crypto */ export function encryptMessage(plaintext: string, recipientPublicKeyHex: string, senderPrivateKeyHex: string): EncryptedMessage { const data = new Uint8Array(Converter.convertStringToByteArray(plaintext)); const encryptedData = encryptData(data, recipientPublicKeyHex, senderPrivateKeyHex); return { data: Converter.convertByteArrayToHexString(encryptedData.data), nonce: Converter.convertByteArrayToHexString(encryptedData.nonce), isText: true, }; }