Now Packing Magic

    webcrypto-core
    TypeScript icon, indicating that this package has built-in type declarations

    1.7.5 • Public • Published

    License test Coverage Status npm version

    NPM

    webcrypto-core

    We have created a number of WebCrypto polyfills including: node-webcrypto-ossl, node-webcrypto-p11, and webcrypto-liner. webcrypto-core was designed to be a common layer to be used by all of these libraries for input validation.

    Unless you intend to create a WebCrypto polyfill this library is probably not useful to you.

    Installing

    npm install webcrypto-core
    

    Example

    Current examples shows how you can implement your own WebCrypt interface

    const core = require(".");
    const crypto = require("crypto");
    
    class Sha1Provider extends core.ProviderCrypto {
    
      constructor() {
        super();
    
        this.name = "SHA-1";
        this.usages = [];
      }
    
      async onDigest(algorithm, data) {
        const hash = crypto.createHash("SHA1").update(Buffer.from(data)).digest();
        return new Uint8Array(hash).buffer;
      }
    
    }
    
    class SubtleCrypto extends core.SubtleCrypto {
      constructor() {
        super();
    
        // Add SHA1 provider to SubtleCrypto
        this.providers.set(new Sha1Provider());
      }
    }
    
    class Crypto extends core.Crypto {
    
      constructor() {
        this.subtle = new SubtleCrypto();
      }
    
      getRandomValues(array) {
        const buffer = Buffer.from(array.buffer);
        crypto.randomFillSync(buffer);
        return array;
      }
    
    }
    
    const webcrypto = new Crypto();
    webcrypto.subtle.digest("SHA-1", Buffer.from("TEST MESSAGE"))
      .then((hash) => {
        console.log(Buffer.from(hash).toString("hex")); // dbca505deb07e1612d944a69c0c851f79f3a4a60
      })
      .catch((err) => {
        console.error(err);
      });

    Install

    npm i webcrypto-core

    DownloadsWeekly Downloads

    917,973

    Version

    1.7.5

    License

    MIT

    Unpacked Size

    163 kB

    Total Files

    6

    Last publish

    Collaborators

    • peculiarventures
    • microshine