{"_id":"ts-chacha20","_rev":"4-b5970cc7815a87cd00c0059c7fdf1fbb","name":"ts-chacha20","dist-tags":{"latest":"1.2.0"},"versions":{"1.2.0-rc.0":{"name":"ts-chacha20","version":"1.2.0-rc.0","description":"Typescript ChaCha20 stream cipher","main":"build/src/chacha20.js","directories":{"test":"test","src":"src"},"devDependencies":{"@babel/preset-env":"^7.16.11","@babel/preset-typescript":"^7.16.7","@types/jest-expect-message":"^1.0.3","jest":"^27.4.7","jest-expect-message":"^1.0.2","typescript":"^4.5.5"},"scripts":{"build":"tsc","test":"jest"},"repository":{"type":"git","url":"git+https://github.com/runsascoded/js-chacha20.git"},"keywords":["cryptography","cipher","encryption","stream","salsa","salsa20","chacha","chacha20"],"author":{"name":"Mykola Bubelich"},"contributors":[{"name":"Ryan Williams"}],"license":"MIT","bugs":{"url":"https://github.com/runsascoded/js-chacha20/issues"},"homepage":"https://github.com/runsascoded/js-chacha20#readme","types":"./build/src/chacha20.d.ts","gitHead":"18dc75619d2327259c28bfd4356384d0482fc2f6","_id":"ts-chacha20@1.2.0-rc.0","_nodeVersion":"17.3.1","_npmVersion":"8.3.0","dist":{"integrity":"sha512-DW3V+MnSo00zbr+2B87RPp168O9n+e8u9IhOuVdb612SqD3HgwBQNCZWI56VaSKaLhb3uZxyklF2yITTrDci7w==","shasum":"dd9dac4aa897d700c70a1425f3acb6b5f5e790a9","tarball":"https://registry.npmjs.org/ts-chacha20/-/ts-chacha20-1.2.0-rc.0.tgz","fileCount":22,"unpackedSize":81220,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh/tJWCRA9TVsSAnZWagAAvAoP/jNCh9YlssFaf3iJCSPU\n9aGWbNwthl6HfeDoPMRc7QiH0nfQ9K+DXGtYdVwFDiGXt+I0/EEOZhsU3je5\nFl7BvQWZmCGD/VshkyNY1bJF2KGoNXSJ+AR7rF9gYEoxOQhS+NGWnpP+YTIp\nL74tj5jtgZlOOwARzACuemRbzhDflkudRadeNvH6f+iZGIohu5B+WBhIL1/S\nV9kOogn0NAwPMQwbYCG9f5/fuxyXqYEcl5jKRYDKA9WpIJrtW6XD/4fIDWCy\nlcd9BsRRjijnbB0IE5wVnv2uUU9RDGcwlQLCe+udyMkNQRmBkk6SxDljMjeg\n7MR2M0KdiNHk1Rh0CAUIy5tNEUfAhzFZPvybNvHYuM5B7CXTHHAsi6MMujsF\nkfCSdHF9poIh8GghkBzAewS28ZtFKZNt8shvhKuy4Gc5EEWIzxxVlSBbJR0O\n9Ceb3WHnVjbJA1/U0gC7MGT14MhVE3KdVPI7uocuQH94Z/Lp+h0OSMk/axLO\nlBB3DaJ5scYbS3XB/xIaM0fc5AntGOVgAWuRY1L2p9tmvO1vDSXWhvh5aZnr\noq4aMuAEwFbOPHpsYjYl0Ef+JR2dAqnxRhDlDdJJUTk2mR+Zjo2vyeOZxc86\ndkbedtAifx/o4tQT8SYv/dpSBAO+fQ8415TiC+DSCGRcj2lq5pHPXXPa02ZB\n3JDg\r\n=uLVZ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIH/mMpwxeidYzqw6GJdvxvpdzrJ+WGO2dNzZylodyjYnAiA7gPk17uTILNah8Ax4FMi5GO+tqWcaUg5fWzmGFi7oLg=="}]},"_npmUser":{"name":"rdub","email":"ryan@runsascoded.com"},"maintainers":[{"name":"rdub","email":"ryan@runsascoded.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ts-chacha20_1.2.0-rc.0_1644089942613_0.5017389490752475"},"_hasShrinkwrap":false},"1.2.0-rc.1":{"name":"ts-chacha20","version":"1.2.0-rc.1","description":"Typescript ChaCha20 stream cipher","main":"build/src/chacha20.js","directories":{"test":"test","src":"src"},"devDependencies":{"@babel/preset-env":"^7.16.11","@babel/preset-typescript":"^7.16.7","@types/jest-expect-message":"^1.0.3","jest":"^27.4.7","jest-expect-message":"^1.0.2","typescript":"^4.5.5"},"scripts":{"build":"tsc","test":"jest"},"repository":{"type":"git","url":"git+https://github.com/hscrypt/ts-chacha20.git"},"keywords":["cryptography","cipher","encryption","stream","salsa","salsa20","chacha","chacha20"],"author":{"name":"Mykola Bubelich"},"contributors":[{"name":"Ryan Williams"}],"license":"MIT","bugs":{"url":"https://github.com/hscrypt/ts-chacha20/issues"},"homepage":"https://github.com/hscrypt/ts-chacha20#readme","types":"./build/src/chacha20.d.ts","gitHead":"c603bf2adc71e626db31aeb48feead2bad1d48fe","_id":"ts-chacha20@1.2.0-rc.1","_nodeVersion":"17.5.0","_npmVersion":"8.4.1","dist":{"integrity":"sha512-njFS4xjvzWXpx52JGjdodbtozPBdgVGtcDK6anYRSMVQLXod5+Sld8kPlmyQQEG7ikuUwmOQbSp3a/t5CE2QMQ==","shasum":"6c63872e95598bd48790902a372df3a25d8b4762","tarball":"https://registry.npmjs.org/ts-chacha20/-/ts-chacha20-1.2.0-rc.1.tgz","fileCount":21,"unpackedSize":43723,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiEb1mACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrHcQ//VP5akAjHWtlsLqOq6SRWt8+wdiRvn3vuxUZvd6qNNDA9MVPF\r\n5/K1FvmVp4rbsCl16RyysyZI1aUHnUKmJS6mbnk+b9GJ2ixoF2c3bCHtyQlR\r\nX1FR8hMfJtKbjjRKyMDCFdE66Lf67WIOjQDULd94WFXaXlll5DwNjEEm0431\r\nByiQZFX+ows+Y0I9vO9YAwW5tXq3wevzQhR61OawoBNT25xRw+p6y+v45iuw\r\n4/zyAC2eGLkIEDYVur9Gw+Om4KYLL0iDtH3NsHqFjTFJk7RatAEYXDBxke36\r\nw2Bq584PRaR19njD836rSgZff2eMzF3k4OZQnT3jlPHynIXqO16JES/N7coN\r\nq7ax9H4QMC5BtSaMye+4aB6E3BN3xBK+flxPx6XFdJHekdLf0FfHdb5jwTOu\r\nr+q6QSGn7v0dujiyyu6sMLctTbu6anBKgZIzKOA2FvPUKNDjzJscKOOhQw2T\r\nxpCcCVghTPDWHg7q/mE6G1EEtuzXoUhacGa3NUkzPsoUSLSukxaJ1uKFlek0\r\nfT1YPFSmvz85okg9VDveZc4bj6oLTz+fCsUPwT344pPi1YWP7pSSU/5wSdsU\r\ndszTAbW4frfQRPC04IUXLXpiX4S6GBbk17dge5ssLdheQoFOg27eTbZgbJn2\r\nj8Pme0z50kHSdxDJ1imrYBJsiG0sotbmQCE=\r\n=LZ+y\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC/nwUOQuqborOJ4cU0/youR9hfT8VOK7eayDWciMMVYQIhAO3tb7xLPvfKbBboE4d1cpRg/WhWyDK0hGv5qQB0+Ox5"}]},"_npmUser":{"name":"rdub","email":"ryan@runsascoded.com"},"maintainers":[{"name":"rdub","email":"ryan@runsascoded.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ts-chacha20_1.2.0-rc.1_1645329766092_0.2951838570644061"},"_hasShrinkwrap":false},"1.2.0-rc.2":{"name":"ts-chacha20","version":"1.2.0-rc.2","description":"Typescript ChaCha20 stream cipher","main":"build/src/chacha20.js","devDependencies":{"@babel/preset-env":"^7.16.11","@babel/preset-typescript":"^7.16.7","@types/jest-expect-message":"^1.0.3","jest":"^27.4.7","jest-expect-message":"^1.0.2","typescript":"^4.5.5"},"scripts":{"build":"tsc","test":"jest"},"repository":{"type":"git","url":"git+https://github.com/hscrypt/ts-chacha20.git"},"keywords":["cryptography","cipher","encryption","stream","salsa","salsa20","chacha","chacha20"],"author":{"name":"Mykola Bubelich"},"contributors":[{"name":"Ryan Williams"}],"license":"MIT","bugs":{"url":"https://github.com/hscrypt/ts-chacha20/issues"},"homepage":"https://github.com/hscrypt/ts-chacha20#readme","types":"./build/src/chacha20.d.ts","gitHead":"337b0768c88810dd1376ff70134163bad3ec7aee","_id":"ts-chacha20@1.2.0-rc.2","_nodeVersion":"17.5.0","_npmVersion":"8.4.1","dist":{"integrity":"sha512-xdIrabkoXk3PMABdRuoDywdnIR852kKoOx1fj8/kCYSI8xvy7H6+Lz5Ttzj2K9O3izjkey3wBYiv7K5W5DvyMg==","shasum":"b09f3ac4b1315870717a238c5b2b34cf4fd7ae67","tarball":"https://registry.npmjs.org/ts-chacha20/-/ts-chacha20-1.2.0-rc.2.tgz","fileCount":12,"unpackedSize":30636,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiEoENACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpTBQ/9GaJHI5X3mZO4bwEgn4kirda9IhvE9B0ZK+VYCCCUsgzFKbnR\r\nb8OOgcE3EowU3X8PM4Ljm1VqI7Xjj2rvCbBNribrHpd+yh3rGImJI6fr5X21\r\nBg5v8p4kUvzod9RoSygmJO+jIs2PODxJQp762shwqDQliUnixdC9jlDJMzkr\r\nIhkdDyQeajb0de38CUVUB10UkuuuNa/z7t20EGG0Iv6u9CARbtg8q9bq0S61\r\naFAOpmD6JpdLpi5MQ8jpVhWFG+iFhUlmsm7rvd5BTPEHiuZf0Z0562zor3zw\r\nhvr09barAxis2f9jQhcCjnwqXPQ2UyAgaowJ7cTE7oXgtBVclFQa7i7rrk54\r\ng8+I6+0nqt6/yQrVwhZLln0ZLLGh+uVjgMv+JBPNFUnjExfbWu6K9S71TXa7\r\nTGvAX+fI998vbQYed1CExO+NIDOMlRmr8jmAiScAwa3Z4sdyAVUQd+zpS60v\r\neakOhv66FZGDqFUBWkuBj0cd9y46+9F0I+3YpyiHhCb1UFkLqTvBwXy0mevy\r\n2ZYUG9a16k6ubiuAytp4ZciJLzL6V359HOxrYJrQUWnNPUXsZVD8LQ0ph7PO\r\ngcCR9+pIQC+sP6TDCWyzTXHfUbS45A/8pDTbJSvCgTC5OHb6SNnBVDGHjjqd\r\nMxyqScrTIw4h+G4fcp+HWuyPrs0ozyRaKs0=\r\n=oEOR\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDzTp4AjtxC91vPIa+a2ICPb2ewHfWXgkpDhSsfWKh5iQIgNpudCRRnhigJ1/88/iGGH8fo2R5dempZOVGiWO5d3qI="}]},"_npmUser":{"name":"rdub","email":"ryan@runsascoded.com"},"directories":{},"maintainers":[{"name":"rdub","email":"ryan@runsascoded.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ts-chacha20_1.2.0-rc.2_1645379853507_0.13621548539149697"},"_hasShrinkwrap":false},"1.2.0":{"name":"ts-chacha20","version":"1.2.0","description":"Typescript ChaCha20 stream cipher","main":"build/src/chacha20.js","devDependencies":{"@babel/preset-env":"^7.16.11","@babel/preset-typescript":"^7.16.7","@types/jest-expect-message":"^1.0.3","jest":"^27.4.7","jest-expect-message":"^1.0.2","typescript":"^4.5.5"},"scripts":{"build":"tsc","test":"jest"},"repository":{"type":"git","url":"git+https://github.com/hscrypt/ts-chacha20.git"},"keywords":["cryptography","cipher","encryption","stream","salsa","salsa20","chacha","chacha20"],"author":{"name":"Mykola Bubelich"},"contributors":[{"name":"Ryan Williams"}],"license":"MIT","bugs":{"url":"https://github.com/hscrypt/ts-chacha20/issues"},"homepage":"https://github.com/hscrypt/ts-chacha20#readme","types":"./build/src/chacha20.d.ts","gitHead":"193ec01fc57034d01b9ed3722a399f80b8743e49","_id":"ts-chacha20@1.2.0","_nodeVersion":"17.6.0","_npmVersion":"8.5.1","dist":{"integrity":"sha512-PTyPoWYHc2we8P2NTn5hpYG211popWbkjiw+k63xqjeMrx9pPtXSclz9F3fu0Tpr+vfR1xxcQFwsEkh1cXMLqw==","shasum":"57f68ef400f465cd7a341899c13000f9bb75f255","tarball":"https://registry.npmjs.org/ts-chacha20/-/ts-chacha20-1.2.0.tgz","fileCount":12,"unpackedSize":30631,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiF5kEACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpg4A/+P/J1T2hK3DyzhA/Ar1TrQpso67lF3Ydchh9Hz/lf3f2mu0EW\r\nCI8JXc8FdYE5HZGGEvG25BzNSi1Bv+RPe3BQFrOMXrrsaWmMimKOhP+jdxME\r\nkYZ6kpMvYGdSy8HJNBo29PgThvBssRikb1PFmVgyaGGcYcYKjyHz4i39cEzK\r\nsMf2du+Ja6QVGh6bXl96aIHSKXbfOzQXKhDE8KfbZaBKRBUyurJV5tYVRITI\r\nURiqfn5XCz0K75FF6yh146Mo0eTA1JMk8l3/aQi3FgdT5u/idFGTEn/EFItq\r\n6G7H2HJfezLCiU3B3L8ggC8KIVq2Q72QxN7vd08Q4HS/TpXTnjbbwDVn0HGO\r\nc5psXu54TWX36CBECiqsJ/U4VNl0nvQNKltePuK/+nAc/FDONs7r7GhWCkZf\r\nvVosSsMx63AD4M5YhOMZpzI2HzPlazk9XJUInsL9A+0ztHG+laIBcuoS6MyQ\r\n/PyksXEa43ecKDNJrjI7x40gKqgAfAiPPWe7N43bGT6SjTBX/eWOPGfRzqbx\r\nml1GgcKT6c7qvZoGYwahpIiTDNAeI7SBiuzbZ/WBLZ45pUVSEoq4sR/De8iV\r\nxhvv2k/OQQ2J0uqpme/vCl2jkbCQS2tis067+6Zw1VJLc9sFXf3Jh/ruDlx7\r\nEnLQj0FfDD6OR0IpSW5ERLmGTKFIG3xTG0I=\r\n=OsRn\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFVr57RzhhFAcl5yNWJAo7uRy+6vUNYRGP/RUE3MnCGJAiAmTGudDkRdOAWOnm7WoOdZbpKrFERfMozAnQrkNgGyxA=="}]},"_npmUser":{"name":"rdub","email":"ryan@runsascoded.com"},"directories":{},"maintainers":[{"name":"rdub","email":"ryan@runsascoded.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ts-chacha20_1.2.0_1645713668724_0.9558782057286992"},"_hasShrinkwrap":false}},"time":{"created":"2022-02-05T19:39:02.613Z","1.2.0-rc.0":"2022-02-05T19:39:02.812Z","modified":"2022-05-22T06:56:09.488Z","1.2.0-rc.1":"2022-02-20T04:02:46.278Z","1.2.0-rc.2":"2022-02-20T17:57:33.654Z","1.2.0":"2022-02-24T14:41:08.855Z"},"maintainers":[{"name":"rdub","email":"ryan@runsascoded.com"}],"description":"Typescript ChaCha20 stream cipher","homepage":"https://github.com/hscrypt/ts-chacha20#readme","keywords":["cryptography","cipher","encryption","stream","salsa","salsa20","chacha","chacha20"],"repository":{"type":"git","url":"git+https://github.com/hscrypt/ts-chacha20.git"},"contributors":[{"name":"Ryan Williams"}],"author":{"name":"Mykola Bubelich"},"bugs":{"url":"https://github.com/hscrypt/ts-chacha20/issues"},"license":"MIT","readme":"# TS-ChaCha20\nTypeScript ChaCha20 stream cipher (TypeScript port of [thesimj/js-chacha20](https://github.com/thesimj/js-chacha20))\n\n[![Build Status](https://travis-ci.org/thesimj/js-chacha20.svg?branch=master)](https://travis-ci.org/thesimj/js-chacha20)\n[![Standard - JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](http://standardjs.com/)\n\n### Abstract\nChaCha20 is a stream cipher designed by D. J. Bernstein.\nIt is a refinement of the [Salsa20](https://github.com/thesimj/js-salsa20) algorithm, and it uses a 256-bit key.\n\nChaCha20 successively calls the ChaCha20 block function, with the same key and nonce, and with successively increasing block counter parameters.\nChaCha20 then serializes the resulting state by writing the numbers in little-endian order, creating a keystream block.\n\nConcatenating the keystream blocks from the successive blocks forms a keystream.\nThe ChaCha20 function then performs an XOR of this keystream with the plaintext.\nAlternatively, each keystream block can be XORed with a plaintext block before proceeding to create the next block, saving some memory.\nThere is no requirement for the plaintext to be an integral multiple of 512 bits.  If there is extra keystream from the last block, it is discarded.\n\nThe inputs to ChaCha20 are:\n- 256-bit key\n- 96-bit nonce.  In some protocols, this is known as the Initialization Vector\n- 32-bit initial counter\n- Arbitrary-length plaintext\n\nImplementation derived from RFC7539\nChaCha20 and Poly1305 for IETF Protocols\n- https://tools.ietf.org/pdf/rfc7539.pdf\n- https://cr.yp.to/chacha/chacha-20080128.pdf\n\n### Install\n```\nnpm install ts-chacha20 --save\n```\n\n### Usage\nEncrypt message with key and nonce\n```javascript\nimport Chacha20 from \"ts-chacha20\";\n\nconst key = Uint8Array([...]); // 32 bytes key\nconst nonce = Uint8Array([...]); // 12 bytes nonce\nconst message = Uint8Array([...]); // some data as bytes array\n\n// Encrypt //\nconst encrypt = new Jschacha20(key, nonce).encrypt(message);\n\n// now encrypt contains bytes array of encrypted message\n```\n\nDecrypt encrypted message with key and nonce\n```javascript\nimport Chacha20 from \"ts-chacha20\";\n\nconst key = Uint8Array([...]); // 32 bytes key\nconst nonce = Uint8Array([...]); // 12 bytes nonce\nconst encrypt = Uint8Array([...]); // some data as bytes array\n\n// Encrypt //\nconst message = new Chacha20(key, nonce).decrypt(encrypt);\n\n// now message contains bytes array of original message\n```\n\nThat all. If something happens, Error will be thrown.\nMore examples you can find in tests files.\n","readmeFilename":"README.md"}