@cryptid/cryptid-js
v1.0.1
Published
Browser-friendly Identity-based Encryption library powered by WebAssembly.
Downloads
10
Readme
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.