@plamikcho/pbcrypto

2.2.1 • Public • Published

A simple wrapper over localStorage/sessionStorage using CryptoSubtle

The code is based on MDN https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto

How to use

import myCrypto from '@plamikcho/pbCrypto';

const encryptedStorage = getEncryptedStorage(localStorage, 'mysupersecret', 'salt');

encryptedStorage.setItem('test', 'Some text to store encrypted')
  .then(() => encryptedStorage.getItem('test'))
  .then(item => console.log(item));
  .catch(error => console.log(error));

If you don't need the storage, here is it:

const cryptoWrapper = getPbCrypto('secret', 'pepper');
const iv = cryptoWrapper.getIv();
cryptoWrapper.encrypt('ДобАр ден,аз съм вашта леля!', iv)
  .then(encrypted => cryptoWrapper.decrypt(encrypted, iv))
  .then((decrypted) => console.log(decrypted));

Supported browsers at the moment: Firefox and Chrome. MDN says that Edge also should work but it doesn't (at least I was not able to find the proper input params). Any help will be appreciated.

Changelog

2.2.1

  • Bowser removed, browser detection is changed to feature detection
  • isBrowserSupported method is restored as a promise. This method is used internally in encrypted storage

2.1.4

  • Typings cleaned from unused import

2.1.3

  • Babel configuration fixed in /dist folder
  • Example added for encrypt/decrypt
  • Typings fixes

2.1.2

  • Babel configuration fixed

2.1.1

  • Example fixed (broken on previous version)

2.1.0

  • Babel polyfill removed (MS browsers support)

2.0.0

  • Bowser is removed from the library. Now it is 6k minified.
  • The issue with large strings is partially solved, at least for the sizes supported by localStorage (=< 10 MB)

Dependencies (0)

    Dev Dependencies (10)

    Package Sidebar

    Install

    npm i @plamikcho/pbcrypto

    Weekly Downloads

    1

    Version

    2.2.1

    License

    MIT

    Unpacked Size

    538 kB

    Total Files

    14

    Last publish

    Collaborators

    • plamikcho