1.0.1 • Published 5 years ago

@cryptid/cryptid-js v1.0.1

Weekly downloads
1
License
Apache-2.0
Repository
github
Last release
5 years ago

npm version License

CryptID.js

Browser-friendly Identity-based Encryption library powered by WebAssembly.

If you're new to CryptID and Identity-based Encryption, then make sure to check out the CryptID Getting Started guide.

Install

CryptID.js is available via NPM:

$ npm install --save @cryptid/cryptid-js

Using CryptID.js

Below you can find a small example that sets up an IBE system instance, and then encrypts and decrypts a message:

const CryptID = require('@cryptid/cryptid-js');

(async function main() {
    const instance = await CryptID.getInstance();

    const setupResult = instance.setup(CryptID.SecurityLevel.LOWEST);

    if (!setupResult.success) {
        console.log('Failed to setup :(');
        return;
    }

    const message = 'Ironic.';
    // Name is somewhat unique among Sith Lords :)
    const identity = {
        name: 'Darth Plagueis'
    };

    const encryptResult = instance.encrypt(setupResult.publicParameters, identity, message);
    if (!encryptResult.success) {
        console.log('Failed to encrypt :(');
        return;
    }

    const extractResult = instance.extract(setupResult.publicParameters, setupResult.masterSecret, identity);
    if (!extractResult.success) {
        console.log('Failed to extract :(');
        return;
    }

    const decryptResult = instance.decrypt(setupResult.publicParameters, extractResult.privateKey, encryptResult.ciphertext);
    if (!decryptResult.success) {
        console.log('Failed to decrypt :(');
        return;
    }

    console.log(decryptResult.plaintext);
})();

License

CryptID.js is licensed under the Apache License 2.0.

Licenses of dependencies:

Acknowledgements

This work is supported by the construction EFOP-3.6.3-VEKOP-16-2017-00002. The project is supported by the European Union, co-financed by the European Social Fund.