{"_id":"@bpe/one-time-pad","_rev":"3-0502084487d2cd6f2e8ed0688a27736e","name":"@bpe/one-time-pad","dist-tags":{"latest":"1.0.2"},"versions":{"1.0.0":{"name":"@bpe/one-time-pad","version":"1.0.0","description":"One time pad in NodeJS supporting Strings, Buffers and Files","main":"index.js","directories":{"example":"example","test":"tests"},"scripts":{"test":"node tests/test.js","example":"npm install --prefix ./example && node example/example.js"},"repository":{"type":"git","url":"git+https://github.com/BenEdridge/one-time-pad.git"},"keywords":["one","time","pad","one-time","OTP","cipher","crypto","cryptography"],"author":{"name":"Ben Edridge"},"license":"MIT","bugs":{"url":"https://github.com/BenEdridge/one-time-pad/issues"},"homepage":"https://github.com/BenEdridge/one-time-pad#readme","dependencies":{},"gitHead":"cd7ba570582b154dd8e5c4261483c765b07f1902","_id":"@bpe/one-time-pad@1.0.0","_nodeVersion":"14.9.0","_npmVersion":"6.14.8","_npmUser":{"name":"bpe","email":"npm@benedridge.com"},"dist":{"integrity":"sha512-0nBH/mdFHtgox+1AxqGMT1pySLT9Kz9j6GBmHnuBIZPqGc/zwpAm8St0d0FxGITR2TgYQc4Nsq04Jheq7nzETg==","shasum":"336a2e4206cc9c2c558dbccc60ceeec783af2e08","tarball":"https://registry.npmjs.org/@bpe/one-time-pad/-/one-time-pad-1.0.0.tgz","fileCount":3,"unpackedSize":4084,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfZYjyCRA9TVsSAnZWagAAeNcP/Rnw25VFz1lNB4/d9jaA\nGLob2rQhOgkR/Ve6XLtVGKOxakF3vOqHG1JlVaDKWlvkdmmmX0EBsOCDf9EX\n7dytBi1L+Ug0TOGE5VQ64Qxv+pGXspIXgNt42tZwLXPANOrwfHYIxFc2NgBw\n0bia+2KXA+liAbBwyavhWG4/IeV3ZNWAOk9nyvcpkbjQHM8k7/2I7plO5/dq\nZfMlK8VTUr+44X9yajyIESDgLQbIIlIUZ54M5ryHKVishYomVzM4UqJcXh9T\nd6BcU+7KGJmh9XIsz5Xcs0n2BWqy5IQ2hB2vQD1e5qIC2+EXdk3BAiIrrRW9\n58vJr/rb04ZmQy4/fRziFzW5oEyYr9BB6zR4flSjWjCX8+kzWe4y7RUQmSIt\nDkZavLu2ZsEJac+7uMZOc7MIsURNdxFBR9mjamO/LG92b2soQ9XoHkud95rr\naIbJ5UX6eIlK1PfRrh7jt46ewxUHUh1l0ruZuGmEyi89jvCqoyrDDFGvjO2o\nDrJ8t0Jo8ihlCKsk4wHnLfJu7BwPelAHspGgavbHvOxhciKO29QznF/wos98\nTH3f5i2pZg/6OCjm/rmzABL7rSkThjeZpweHY8/SQF4k1J6y0neTEVxg5ny9\nk8OagkqMmX/vsZymPcMlmQhiwAyDNV1Ef3djUpc0axJ6SKAziIIZ4JF94o2Z\nHfE7\r\n=7ohl\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICpJ9Ldgdz8Yd67JFtGB9cLNpfBEPAdbaxl2SsygQaIlAiEAvP7TGQzOpr8KH19CGi1D4rHSEzkQ8m7N3OoSqS+eW6Q="}]},"maintainers":[{"name":"bpe","email":"npm@benedridge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/one-time-pad_1.0.0_1600489713756_0.9186549675839342"},"_hasShrinkwrap":false},"1.0.1":{"name":"@bpe/one-time-pad","version":"1.0.1","description":"A more complete One-time pad implementation supporting Strings, Buffers and Files","main":"index.js","directories":{"example":"example","test":"tests"},"scripts":{"test":"node tests/test.js","example":"npm install --prefix ./example && node example/example.js"},"repository":{"type":"git","url":"git+https://github.com/BenEdridge/one-time-pad.git"},"keywords":["one","time","pad","one-time","OTP","cipher","crypto","cryptography"],"author":{"name":"Ben Edridge"},"license":"ISC","bugs":{"url":"https://github.com/BenEdridge/one-time-pad/issues"},"homepage":"https://github.com/BenEdridge/one-time-pad#readme","dependencies":{},"gitHead":"a7eb86321ab884edf7e45853e9888d47c6db34f2","_id":"@bpe/one-time-pad@1.0.1","_nodeVersion":"14.9.0","_npmVersion":"6.14.8","_npmUser":{"name":"bpe","email":"npm@benedridge.com"},"dist":{"integrity":"sha512-wfAAcMrSTASFyKc7TMapUwMGgXUZcjaUk8eriU6W6WzOhmQVQRJSYEO9FxcPHbBr9anIgtxKSMx6JB1jYUbWIQ==","shasum":"274b027fca883c691d922cf127f32937dd4f7b98","tarball":"https://registry.npmjs.org/@bpe/one-time-pad/-/one-time-pad-1.0.1.tgz","fileCount":4,"unpackedSize":6164,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfZcHHCRA9TVsSAnZWagAA668P/AkBPfOwAxoxm8yI8wRF\nmCM/bVJKkzD8OoqERjkaLYgthy+Y6sh7hyHUfcIWwCaRvTAZewBHUZWXlv+T\n8U02lrqmHArQI37j73xD+BU1h3k1EeYyvWXqVmgF2oNPE02IGY66q4H+EPjT\nRzj5t54RA9cMREqVfEKuVKT57PtA4w0HlLYiNs0dAT09h7SrlRyvAKyF5hzh\nce8CWZo+L6ngkv5N9ijKgqVM7jZO/5AwcqR434zv3cyUagYhTBHeTaTeLbmD\nyTCwdYCkDUIrCUb2onck0JzLKNiyQBKzyetFYb7wLRe7mP1ozYr37F7waZD8\nRDeKWyA2xpTXZ9JbtMrb0QfIazjPSxqpqINObUzCwdIlL37/JEIYOgKvYVyk\nyoNBS3iH3Yypu3biqZcK7u0ZE+xNcu6XeTlEWXCcPDfi9ed7gKhueKcgeGqu\nNo+FiTrfXHfW61Tzife4P+pVrdhhncSyDha3WFmMDMogMu7rs7snBn6e8S7C\nuLFuzRENl0I0nF35CLCCFv2CXDJuTX5VOXisOsOT8r/jeQfVLhabVckmTGUy\nH7tCCeHNolujBqLWcCNKpmOmzSuqqjkJ2Mj2KeIcp8TIIq3G0Gra2XsGQFkv\nBlHfC38y4G7nJBE5iGYw29Il07sQppLEIihsMRyi/8LkE3X/8GlKvdUassdp\nNkS2\r\n=JdXr\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDPch7QAN/1Yh+3A/L3jzeVKsQ108Zq+RteOesmgFjVjwIgEV88IUZGXC5dLGb+/TPw8OckBW+j1Fb7H5F1DWmOBJk="}]},"maintainers":[{"name":"bpe","email":"npm@benedridge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/one-time-pad_1.0.1_1600504262969_0.00439255922259707"},"_hasShrinkwrap":false},"1.0.2":{"name":"@bpe/one-time-pad","version":"1.0.2","description":"A more complete One-time pad implementation supporting Strings, Buffers and Files","main":"index.js","directories":{"example":"example","test":"tests"},"scripts":{"test":"node tests/test.js","example":"npm install --prefix ./example && node example/example.js"},"repository":{"type":"git","url":"git+https://github.com/BenEdridge/one-time-pad.git"},"keywords":["one","time","pad","one-time","OTP","cipher","crypto","cryptography"],"author":{"name":"Ben Edridge"},"license":"ISC","bugs":{"url":"https://github.com/BenEdridge/one-time-pad/issues"},"homepage":"https://github.com/BenEdridge/one-time-pad#readme","dependencies":{},"gitHead":"446f0a59b93f42f98a53c7e587c45697f2e3220d","_id":"@bpe/one-time-pad@1.0.2","_nodeVersion":"14.17.0","_npmVersion":"6.14.13","_npmUser":{"name":"bpe","email":"npm@benedridge.com"},"dist":{"integrity":"sha512-qE3ybdHnveaFskrzS9CqZgi2ZqqdeeTB28Gg+9mlXNX18VyWs6gKMimSP4dinR5xQz9EIRWP1/m6JduGlaDY2w==","shasum":"5d639b6fabd55ee59ad1298af1b98ba5bed6cf69","tarball":"https://registry.npmjs.org/@bpe/one-time-pad/-/one-time-pad-1.0.2.tgz","fileCount":4,"unpackedSize":6554,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhC6qaCRA9TVsSAnZWagAAexEQAJFi/0eW8Z3j1nJYRsdc\nsEC670+MGf0HQXsh4CVHAWQgzw7yHFvCQCHxfYbhLmTqNZVgWDgJFmVRjzQZ\n4IPqgzlYrbOc3kOMW7xUnAsk0NLJ37u7z+pho4OYMrWjdTosOsVmP4Ty7vC8\nHS1/dDxDNk9wBOPbb7EpTmXhywuYkh5Vau3EjwM/UjTUhQuOAAx4UDMYqvtx\noRK+7P3+Ra1mv+Ka/+4JPJXhl4CAvsN2RIMNApr3UibnClRqUYxF4zMks7HN\nrva3arPfXB6qwbFoyebyzBWSgcNpEgSp7Ha+1siVNsH+TTep3xAJt8Gfo0PA\niuw+CKVZGgga/PZMEhwx1x600nAlWmg2ZujHaXaOhhNUdlzC6AhD3KGuupDZ\nWbJwBVJmgnHDJNZjbL2nnE4MEW/CbLdeBCTy7lqHNMKP6v0U8t9m3IFDJ3L3\nfGxe5UAfuc+IXlEvffpMYokBW//VWpDqps8zrzfSMIWrpBN2z5itc2abEiaQ\n6hihaJzAzmXbflGwZd+9qLGWYHaqMCfg02C6s74Uy8UstnwA7UQgD9OIioLe\nsKZJGgzvteiAa72VM0CVWf8OntIG1ouyhFFQxrUhBg3FD2AJehptJ0gHeM83\nVcj2CM3pnQZkuvPolAdBThJHu64I7Ql+Ut6nPrly6Hb0E2T8OkUyvlBECbgv\nhd8r\r\n=KASv\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHsqOL60vu+krrVtpJ8Gz4KT2/Ltfmz4d/hWISRrFBWUAiADSMmRM2Gmmw1RvmIIqEQmFXVl1BA2+wM8voUWKtIPeg=="}]},"maintainers":[{"name":"bpe","email":"npm@benedridge.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/one-time-pad_1.0.2_1628154522260_0.3093250047732492"},"_hasShrinkwrap":false}},"time":{"created":"2020-09-19T04:28:33.722Z","1.0.0":"2020-09-19T04:28:33.875Z","modified":"2022-04-04T20:18:48.312Z","1.0.1":"2020-09-19T08:31:03.110Z","1.0.2":"2021-08-05T09:08:42.456Z"},"maintainers":[{"name":"bpe","email":"npm@benedridge.com"}],"description":"A more complete One-time pad implementation supporting Strings, Buffers and Files","homepage":"https://github.com/BenEdridge/one-time-pad#readme","keywords":["one","time","pad","one-time","OTP","cipher","crypto","cryptography"],"repository":{"type":"git","url":"git+https://github.com/BenEdridge/one-time-pad.git"},"author":{"name":"Ben Edridge"},"bugs":{"url":"https://github.com/BenEdridge/one-time-pad/issues"},"license":"ISC","readme":"# One-Time Pad\n\nA simple and more complete One-Time Pad implementation in NodeJS\n\n![npm (scoped)](https://img.shields.io/npm/v/@bpe/one-time-pad)\n![GitHub issues](https://img.shields.io/github/issues/BenEdridge/one-time-pad)\n![Snyk Vulnerabilities for npm package](https://img.shields.io/snyk/vulnerabilities/npm/@bpe/one-time-pad)\n![npm bundle size](https://img.shields.io/bundlephobia/min/@bpe/one-time-pad)\n![NPM](https://img.shields.io/npm/l/@bpe/one-time-pad)\n\n\n- No limitations on length of data or type of data encrypted\n- Supports any data type as long as you convert it to a Buffer\n- No dependencies required\n\n## Installation\n\n```\nnpm install @bpe/one-time-pad\n```\n\n## Usage\n\n### Strings\n```javascript\nconst { OneTimePad } = require('one-time-pad');\n\nconst plainText = 'Hello World!';\nconst plainTextBuffer = Buffer.from(plainText, 'utf8')\n\n// Secure Pad the length of plainText (Keep Secure!)\nconst pad = OneTimePad.generatePad(plainTextBuffer);\n\nconst encryptedData = OneTimePad.encrypt(pad, plainTextBuffer);\nconsole.log(`${Buffer.from(encryptedData).toString('base64')}`);\n\nconst decryptedData = OneTimePad.decrypt(pad, encryptedData);\nconsole.log(`Decrypted Data: ${Buffer.from(decryptedData).toString('utf8')}`);\n```\n### Binary Data\n\n```javascript\nconst { OneTimePad } = require('one-time-pad');\nconst fs = require('fs');\n\nconst pngBuffer = new Uint8Array(fs.readFileSync('./tests/test_image.png'));\nconst pad = OneTimePad.generatePad(pngBuffer);\n\nfs.writeFileSync('./tests/scratch/encrypted.png', OneTimePad.encrypt(pad, pngBuffer));\n\nconst encryptedPng = new Uint8Array(fs.readFileSync('./tests/scratch/encrypted.png'));\nconst decryptedData = OneTimePad.decrypt(pad, encryptedPng);\n```\n\n```javascript\nconst { OneTimePad } = require('one-time-pad');\nconst fs = require('fs');\n\nconst plainTextBuffer = new Uint8Array(fs.readFileSync('./tests/file.txt'));\nconst pad = OneTimePad.generatePad(plainTextBuffer);\n\nconst encryptedData = OneTimePad.encrypt(pad, plainTextBuffer);\nconst decryptedData = OneTimePad.decrypt(pad, encryptedData);\n```\n\nSee more examples in [tests](https://github.com/BenEdridge/one-time-pad/blob/master/tests/test.js)\n\n\n## License\n\nISC\n\n## Acknowledgements\n\n`test_image.png` file retrieved from: [en.wikipedia.org](https://en.wikipedia.org/wiki/JPEG#/media/File:Felis_silvestris_silvestris_small_gradual_decrease_of_quality.png).\n\n[npm-image]: https://img.shields.io/npm/v/path-to-regexp.svg?style=flat\n[npm-url]: https://npmjs.org/package/path-to-regexp\n[travis-image]: https://img.shields.io/travis/pillarjs/path-to-regexp.svg?style=flat\n[travis-url]: https://travis-ci.org/pillarjs/path-to-regexp\n[coveralls-image]: https://img.shields.io/coveralls/pillarjs/path-to-regexp.svg?style=flat\n[coveralls-url]: https://coveralls.io/r/pillarjs/path-to-regexp?branch=master\n[david-image]: http://img.shields.io/david/pillarjs/path-to-regexp.svg?style=flat\n[david-url]: https://david-dm.org/pillarjs/path-to-regexp\n[license-image]: http://img.shields.io/npm/l/path-to-regexp.svg?style=flat\n[license-url]: LICENSE.md\n[downloads-image]: http://img.shields.io/npm/dm/path-to-regexp.svg?style=flat\n[downloads-url]: https://npmjs.org/package/path-to-regexp","readmeFilename":"README.md"}