1 unstable release
Uses new Rust 2024
new 0.3.3 | Mar 31, 2025 |
---|
#48 in #e2ee
62 downloads per month
71KB
1K
SLoC
RGP Web
WebAssembly bindings for RGP.
Usage
import init, { generate_fingerprint, generate_dh_keys, encrypt_dh, decrypt_dh, } from "https://unpkg.com/rgp-web@0.3.3/rgp_web.js";
(async () => {
await init();
// fingerprint of sender
const fingerprint = generate_fingerprint();
// public/private keys for sender/receiver
const senderKeys = generate_dh_keys();
const receiverKeys = generate_dh_keys();
// content to be sent
const encoder = new TextEncoder();
const content = encoder.encode("hello world :)");
// encrypt
const encryptedContent = encrypt_dh(
fingerprint.fingerprint,
content,
senderKeys.private,
receiverKeys.public,
);
console.log("encrypted: ", encryptedContent);
// decrypt
const decryptedContent = decrypt_dh(
0,
encryptedContent,
fingerprint.verifier,
senderKeys.public,
receiverKeys.private
);
const decoder = new TextDecoder();
console.log("decrypted: ", decoder.decode(decryptedContent));
})();
Development
Install wasm-pack.
cargo install wasm-pack
Build with wasm-pack.
wasm-pack build --target web
Publish with wasm-pack.
wasm-pack publish
Dependencies
~4.5–6.5MB
~109K SLoC