UNPKG

@opendatalabs/vana-sdk

Version:

A TypeScript library for interacting with Vana Network smart contracts.

59 lines 1.57 kB
import { readKey, readPrivateKey, decryptKey, readMessage, createMessage, encrypt, decrypt, generateKey, enums } from "openpgp"; class OpenPgpPort { async encrypt(input) { const publicKey = await readKey({ armoredKey: input.publicKeyArmored }); const message = await createMessage({ text: input.text }); const encrypted = await encrypt({ message, encryptionKeys: publicKey, config: { preferredCompressionAlgorithm: enums.compression.zlib } }); return { data: encrypted }; } async decrypt(input) { const privateKey = await readPrivateKey({ armoredKey: input.privateKeyArmored }); const decryptedKey = input.passphrase ? await decryptKey({ privateKey, passphrase: input.passphrase }) : privateKey; const message = await readMessage({ armoredMessage: input.messageArmored }); const { data } = await decrypt({ message, decryptionKeys: decryptedKey }); return { data }; } async generateKeyPair(options = {}) { const { name = "Vana User", email = "user@vana.org", passphrase } = options; const { publicKey, privateKey } = await generateKey({ type: "rsa", rsaBits: 2048, userIDs: [{ name, email }], passphrase, config: { preferredCompressionAlgorithm: 2, // zlib preferredSymmetricAlgorithm: 7 // aes256 } }); return { publicKey, privateKey }; } } const openPgpPort = new OpenPgpPort(); export { OpenPgpPort, openPgpPort }; //# sourceMappingURL=openpgp-port.js.map