@opendatalabs/vana-sdk
Version:
A TypeScript library for interacting with Vana Network smart contracts.
59 lines • 1.57 kB
JavaScript
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