rgp-web

Crates.iorgp-web
lib.rsrgp-web
version0.3.3
created_at2025-03-31 03:22:08.048647+00
updated_at2025-03-31 03:22:08.048647+00
descriptionWebAssembly bindings for the RGP crate.
homepagehttps://github.com/ordinarylabs/rgp
repositoryhttps://github.com/ordinarylabs/rgp
max_upload_size
id1612979
size24,687
sean watters (seanwatters)

documentation

README

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
Commit count: 175

cargo fmt