@fruitsjs/crypto
Version:
Cryptographic functions for building Fruits Eco-Blockchain apps.
26 lines (21 loc) • 1.06 kB
text/typescript
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,
};
}