nbrc-store
v0.0.7
Published
Wrapper for localStorage, sessionStorage, chrome.storage.local, chrome.storage.sync, chrome.storage.session, provide unified API interfaces.
Readme
Wrapper for localStorage, sessionStorage, chrome.storage.local, chrome.storage.sync, chrome.storage.session, provide unified API interfaces.
JWK
Keypair for encrypting sensitive data using rsa algorithm
const jwk = {
"public": {
"alg": "RSA-OAEP-256",
"e": "AQAB",
"ext": true,
"key_ops": [
"encrypt"
],
"kty": "RSA",
"n": "8FdE83-ymB2kPxAHLXmLCG9vRVOGxmgVpsxMnZqUqlRffx3dByUQ5yVKsU65f-Gaf0AI2Y5QcQczzejlXd2Y8p3p-Dkn1M143VjkpdsvsnGOG0qt0VYwUDkezJ_Ikb6o-MVZKPsvyx8YDhGIDHqWoBPjNfb3Jz1bKvzim8heGGHiWw49rqP4cwzEVrd2by2vUP0Qgh3dVTdBwv-SM2KOzcIfl87HUuHDVzjwqthZa03FsyAmTtO60Xbcy8jvpzcUJ8wLxj8r5ngmkG1aY40yyva6Auh0MqpA1Udmp7zLhf8AmWMmqUq-uL3XRgRtz5fdRacyxLIdvDMsvfo7XKYW7w"
},
"private": {
"alg": "RSA-OAEP-256",
"d": "A89uYWnh2_WEWBeZ9Yeaw6x4mCHF3jliNn3ArTL5LmYeCXbgvS9CQFfgAkWcPUHHYEMUoNZXwiL6GEab9EwCE76bKftF_WKwitnQ7iw2al7QgPBDJzF1nJ_7NAVIeb8LEL6YNkUdMdwxVm_Ct2fuIWWPUZizvGSFoH3X3d5kV4CV55jGfSlHVXMlqpcSHwNgGWaw6BecR-3ONDBSCFauS1k5Kc8BqZ2UG7XlkqJ_CCU9WXuuIh0jm6BjcurfgUHzRD9rIgwGAuyRWQGjmStNlN5cEa3ekrHJYP_X3E23NuN9wBpZ8FYMmDSMhpS8reY_R6bKuUpZT-KiuCZ4UHiTkQ",
"dp": "V-X_Bdo3Z8FxXj2RzZvXZwFfXaUyEjCVjfZzcinAKyYJs0dg7NjX6rnAHiBmC1wSQjGxSJwMaRUkIWd2KhOz1KOxgg1r78ton--BhpiOXHe71Yup1-oL5RwO_TmAm7jJuQGLTow64C-BnNUi8HWy7-126XZtubYuNKyOeaCfXck",
"dq": "lpDVfG_GcMDmgR8n3a1P3IRQH4liJugmjo9TF_xtVpCVuuD4m3KmwosnAJH0Aehei4BiWKel1MoBdcIhLLv9HYwmxRe9k5kqGnFUGL755DXiZZ2DcaRBp-Q_GP4kpmnFwsyX9SQeVTb7UdDnlXiF3-jFNEmDxuBwyXXJVv2pn70",
"e": "AQAB",
"ext": true,
"key_ops": [
"decrypt"
],
"kty": "RSA",
"n": "8FdE83-ymB2kPxAHLXmLCG9vRVOGxmgVpsxMnZqUqlRffx3dByUQ5yVKsU65f-Gaf0AI2Y5QcQczzejlXd2Y8p3p-Dkn1M143VjkpdsvsnGOG0qt0VYwUDkezJ_Ikb6o-MVZKPsvyx8YDhGIDHqWoBPjNfb3Jz1bKvzim8heGGHiWw49rqP4cwzEVrd2by2vUP0Qgh3dVTdBwv-SM2KOzcIfl87HUuHDVzjwqthZa03FsyAmTtO60Xbcy8jvpzcUJ8wLxj8r5ngmkG1aY40yyva6Auh0MqpA1Udmp7zLhf8AmWMmqUq-uL3XRgRtz5fdRacyxLIdvDMsvfo7XKYW7w",
"p": "-fjEcc-w7Y7QmH0KPoQMm07owsOTnd9-O_b-0XTsObNtEZjYzMZ0TaVoJIf47qNtTSvt2guWKzrmlAeus48-4-DrY_o-3dVelVMZI97zfesNZnMwwFtmd-gjvWXPM7RMlMJzPiA1da2_upQ1sem1kUuPQcodIOn-JKrMRNHJqSk",
"q": "9iMLcDqp_SkbIFWtCw3-jkXjcUco1OLaQK-J8CKRR4tMTgy3hpd0rFJ2DkjMxgicWFG46_mApdIw6ZV0jlsfPE0da5AW9WEIvu1BVpiVFigeUNdutW06Z2iGvqhI4FsCVz4mWbSyf-zlySLWD8KrD6Laf19WgJUdeba8gkKyClc",
"qi": "9sVjTxUkx_xBVy4bg8LJTOCFbrWso_jcKGvGrzZw13gudDh6R15J_eHKuwApDbBC9J9kAqdg639h37QvugxZ-gMLCuJ6YUoTz4lHzMG2b-AnU26qz4JLYHF2TPuVYSH8703YEIrRGriSjEsjBzUcgrp2H9lQUC1hT-z6yIg3W_w"
}
}Configuration
let configuration = {
driver: 'origin', // origin | session | crx.local | crx.sync | crx.session
key: {
prefix: 'nbrc-', // key prefix
hashKey: '' // factor for hashing key ( empty will not hash key )
},
value: {
rsa: true,// encrypt or not
jwk: jwk // rsa keypair
},
};Examples
import storeLib from 'nbrc-store'
let store = storeLib.createInstance(configuration);
// methods: get, set, remove, clear
// all of the methods return a Promise
store.set('key1', 'hello')
store.get('key1','default value....').then(v => {
console.log(v)
})
store.remove('key1')
store.clear()
