Nomad Packaging Mechanism

    @casual-simulation/crypto-browser
    TypeScript icon, indicating that this package has built-in type declarations

    3.1.11-alpha.3500879217 • Public • Published

    Crypto Browser

    npm (scoped)

    Installation

    npm install @casual-simulation/crypto-browser
    

    Usage

    // ES6-style imports are required.
    // If you are running in an environment that does not support ES Modules,
    // then use Webpack or Babel to transpile to the format you want. (like CommonJS)
    import { BrowserSigningCryptoImpl } from '@casual-simulation/crypto-browser';
    
    // Async is optional. Every method returns a promise.
    async function demo() {
        // Currently ECDSA-SHA256-NISTP256 is the only supported
        // algorithm.
        let algorithm = 'ECDSA-SHA256-NISTP256';
        let crypto = new BrowserSigningCryptoImpl(algorithm);
    
        console.log('Crypto Supported: ', crypto.supported());
    
        // Generate a public-private key pair.
        let [publicKey, privateKey] = await crypto.generateKeyPair();
    
        // You can export the public and private keys to
        // share them with other devices. (But really only share the public key)
        let exportedPubKey = await crypto.exportKey(publicKey);
        let exportedPrivateKey = await crypto.exportKey(privateKey);
    
        // You can import keys that were exported using exportKey()
        // via the importPrivateKey() and importPublicKey() methods.
    
        console.log('Public Key: ', exportedPubKey);
        console.log('Private Key: ', exportedPrivateKey);
        // TODO: Save/share keys
    
        // Any ArrayBuffer will work
        let data = new Int32Array(100);
    
        // If you're using webpack, enable the Buffer polyfil.
        // This will let you convert strings to ArrayBuffer compatible
        // objects using Buffer.from(str).
        // Read More: https://webpack.js.org/configuration/node/
    
        // Fill with pseudo-random data.
        for (let i = 0; i < data.length; i++) {
            data[i] = Math.floor(Math.random() * 100);
        }
    
        // Sign the data
        let signature = crypto.sign(privateKey, data);
    
        // TODO: Send or store the signature and data
    
        // Verify the signature.
        // Note that the data must be provided as well.
        // This is because the signature does not store the data
        // in a usable format.
        let valid = crypto.verify(publicKey, signature, data);
        console.log('Valid: ', valid);
    }
    
    demo();

    Keywords

    Install

    npm i @casual-simulation/crypto-browser

    DownloadsWeekly Downloads

    123

    Version

    3.1.11-alpha.3500879217

    License

    MIT

    Unpacked Size

    17.2 kB

    Total Files

    9

    Last publish

    Collaborators

    • kallyngowdyyeti
    • casualsimulation