{"_id":"@3846masa/http-signature","_rev":"2-f0d86633f80226701a71a50b57867d8d","name":"@3846masa/http-signature","dist-tags":{"latest":"0.1.0"},"versions":{"0.0.1":{"name":"@3846masa/http-signature","description":"Create / Verify HTTP Signatures (https://tools.ietf.org/html/draft-cavage-http-signatures-10)","license":"MIT","author":{"name":"3846masa","email":"3846masahiro+git@gmail.com"},"homepage":"https://github.com/3846masa/http-signature#readme","repository":{"type":"git","url":"git+ssh://git@github.com/3846masa/http-signature.git"},"bugs":{"url":"https://github.com/3846masa/http-signature/issues"},"version":"0.0.1","main":"lib/index.js","scripts":{"prebuild":"npm-run-all clean lint","build":"tsc","clean":"rimraf lib","codecov":"codecov","lint":"npm-run-all -p lint:*","lint:package-json":"prettier-package-json --write","lint:ts":"prettier --write src/**/*.ts","test":"npm-run-all test:tsc test:ava","test:ava":"nyc ava src/**/*.spec.ts","test:tsc":"tsc --noEmit"},"types":"lib/index.d.ts","dependencies":{},"devDependencies":{"@types/node":"^10.14.5","ava":"^1.4.1","codecov":"^3.3.0","husky":"^1.3.1","lint-staged":"^8.1.5","npm-run-all":"^4.1.5","nyc":"^14.0.0","prettier":"^1.17.0","prettier-package-json":"^2.1.0","rimraf":"^2.6.3","ts-node":"^8.1.0","typescript":"^3.4.4"},"keywords":["http-signature"],"engines":{"node":">=10.0.0"},"ava":{"compileEnhancements":false,"extensions":["ts"],"require":["ts-node/register"]},"husky":{"hooks":{"pre-commit":"lint-staged"}},"lint-staged":{"*.ts":["prettier --write","git add"],"*.md":["prettier --write","git add"],"package.json":["prettier-package-json --write","git add"]},"nyc":{"reporter":["lcov","html","text"],"include":["src/**/*.ts"],"exclude":["src/**/*.spec.ts"],"extension":[".ts"],"require":["ts-node/register"],"sourceMap":true},"gitHead":"d6c16af3d08ec253eb9887d0d801a77dfda6d821","_id":"@3846masa/http-signature@0.0.1","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"3846masa","email":"3846masahiro+git@gmail.com"},"dist":{"integrity":"sha512-g4Dd2ceebKnil4ymsYAwHL/sqpemA5J6Gjyvfp2kGHnnfyjfRtyn01RF06ARd7Zt+kfl1x8ELNueQnCldKVlEQ==","shasum":"3dd83b26f6305de2abbd5f2227ea7bbef5360ce9","tarball":"https://registry.npmjs.org/@3846masa/http-signature/-/http-signature-0.0.1.tgz","fileCount":27,"unpackedSize":39340,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcvHCzCRA9TVsSAnZWagAAISoP/1lyehNAy+o82Sf+Mtkb\ndPKs+ErBZqWpYw5Sb3rEu2hwU1Xx03cu8XEwFuh7+F4W7sxxIE8gKqTxNVJH\nGnLvUkshM1KQui+4MTy26ezeGqrFRYap+I4HvbKxSoarT0Yd00BLFwilfhWR\nXyn0b12jP0JQ3NbFlGvZuqyhWE0zJzpGXQIMyUMp3EtwePgaPHvdJ9qVtnQu\nHj93nzQk8I+BBTLGvEbCTzl6k2OrkIS1y5BH/49zTWhUkZuWGIzSVMmUA0hX\nd7+KwtSfV3zI/Xc8UGjS2gLI7LaiLDdldTtmhECuCuFTvC4mlcKRs8E9G1jz\nBFPMy0p705tm8xOGdbC/tqfTFV55/tA4VkB3oNPa/nGSxaW4yYiIjk0F/Zkl\ndYngnGySokW2B2IetjTCAjSsHSyASrwehhCrTlsVASYESaSlUT26ZweKTUix\n2W+xdEtaeYJiAuyTM7jvtnHfEWzllUSg+hTfwKY61q1Q/sHv/nqv0SBAJMct\n41DRyz9KA7UPWDH0ft+nJHJn3cnSYQ+fLkZAvnkMs4JB3LPG0S2rV07QB3mC\nF2k6Rh5pDvyRtdS/CGdNhIS9xc9gVfW62fIhzO4fJeOW41EuEBKZPL+T1nOR\ngsJxAEUBd/q3erpj57vIaS7r4eRkjvpge3nv7SpAO9qmxOUuHFCwrU+aqOXq\ng1MQ\r\n=5Ug3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHnPC8BdV9ByuSwAYtBl8lDMs4LNeEDQplOmgIy6mh2jAiEA/WvIrA6+xA9hwyZALDN+b55qQHO8NpdNNHkT8Orm7bs="}]},"maintainers":[{"name":"3846masa","email":"3846masahiro+git@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/http-signature_0.0.1_1555853491149_0.26542017241739346"},"_hasShrinkwrap":false},"0.1.0":{"name":"@3846masa/http-signature","description":"Create / Verify HTTP Signatures (https://tools.ietf.org/html/draft-cavage-http-signatures-10)","license":"MIT","author":{"name":"3846masa","email":"3846masahiro+git@gmail.com"},"homepage":"https://github.com/3846masa/http-signature#readme","repository":{"type":"git","url":"git+ssh://git@github.com/3846masa/http-signature.git"},"bugs":{"url":"https://github.com/3846masa/http-signature/issues"},"version":"0.1.0","main":"lib/index.js","scripts":{"prebuild":"npm-run-all clean lint","build":"tsc","clean":"rimraf lib","codecov":"codecov","lint":"npm-run-all -p lint:*","lint:package-json":"prettier-package-json --write","lint:ts":"prettier --write src/**/*.ts","test":"npm-run-all test:tsc test:ava","test:ava":"nyc ava src/**/*.spec.ts","test:tsc":"tsc --noEmit"},"types":"lib/index.d.ts","dependencies":{},"devDependencies":{"@types/node":"^10.14.5","ava":"^2.1.0","codecov":"^3.3.0","husky":"^2.4.0","lint-staged":"^8.1.5","npm-run-all":"^4.1.5","nyc":"^14.0.0","prettier":"^1.17.0","prettier-package-json":"^2.1.0","rimraf":"^2.6.3","ts-node":"^8.1.0","typescript":"^3.4.4"},"keywords":["http-signature"],"engines":{"node":">=10.0.0"},"ava":{"compileEnhancements":false,"extensions":["ts"],"require":["ts-node/register"]},"husky":{"hooks":{"pre-commit":"lint-staged"}},"lint-staged":{"*.ts":["prettier --write","git add"],"*.md":["prettier --write","git add"],"package.json":["prettier-package-json --write","git add"]},"nyc":{"reporter":["lcov","html","text"],"include":["src/**/*.ts"],"exclude":["src/**/*.spec.ts"],"extension":[".ts"],"require":["ts-node/register"],"sourceMap":true},"gitHead":"b829f71902c06147e8851b016af4052762f43000","_id":"@3846masa/http-signature@0.1.0","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-HstwAPjkD3qXdAcac/f6b4jO7enCzqkrE2oxfbreIJyQHaGoSPN+m9LYry0HMVI8kkff+W2ARwTcrIJLInu9Zg==","shasum":"eb17850cfac192299e75b17ca1176e438fe8630b","tarball":"https://registry.npmjs.org/@3846masa/http-signature/-/http-signature-0.1.0.tgz","fileCount":27,"unpackedSize":41613,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc/t0ACRA9TVsSAnZWagAApdkP/RIHh1WBzLC+VT/Uac9/\nKdXSsQ/75X15LoUZJKaSEDnOTSg248heQvAA005Yh1KC9JPZUpM1sTTuNfpy\nQZ14PuEcKiH97ol6CiVigBJxjLIxgd6yedk3PIctxprxyPldkehimT55bMie\nJRh9P4gi/K6wGmlJyN3cVUkmL0ExlMEYW9hBl1lJTDu8CIAS87okz+rYRiuI\nH+YA7Om8GbiRf0M65NDBH9ib8AVz5i3hVGois5Cg0/HihdjsIsx7m6DkHaoH\nBK29ds0Nv7oY2N8GtwmxrIFPxh+/RZVVhC27/UUYiLyd2Wy9or/f636nqQUp\nFL/wY3sGXTW1fIYUxCqLEId5wkWWGTTDRTa9ePa3bHCb68qsFcOFzm6bgFpA\n1QGtdBDoyg+ImnXLViMV/gh0Zo44+Y4TMOGUwHn93AZpk41ktyAFnbOSPhU2\nlBXfsmn+iDsY0n5wEHLbcRKsrtqS+QAKrkPVW2/LHhb4nerehn8rLAd6B9Gh\nrEzOwRIlOdDTkX70waZ4TYBqJsZGmffn+uLVGDjuJGCEj/toCRcG9UpTxPbl\nHaYGnR7P1BUkoirEGMJdZMV3A11J1DHCh5kVtckwjPOU6CfI2PoXn1jkn9Mh\nz/LbWnqYoTCm3rnouXcS+edH1VSBPh/+ewMuMCY+p8DXnPbSHkI3dWspGN+D\n1n4y\r\n=lIwk\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBUHq5Bj5J2Gu8WMmUSwfJl6Pg53v1rs2BUUa7amaLZEAiA33JFTHa2GohqdEd424MbI7VSTcL9nf0TdW9SWrhSLNg=="}]},"maintainers":[{"name":"3846masa","email":"3846masahiro+git@gmail.com"}],"_npmUser":{"name":"3846masa","email":"3846masahiro+git@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/http-signature_0.1.0_1560206591721_0.852824438695329"},"_hasShrinkwrap":false}},"time":{"created":"2019-04-21T13:31:30.955Z","0.0.1":"2019-04-21T13:31:31.282Z","modified":"2022-04-04T10:44:27.187Z","0.1.0":"2019-06-10T22:43:11.967Z"},"maintainers":[{"name":"3846masa","email":"3846masahiro+git@gmail.com"}],"description":"Create / Verify HTTP Signatures (https://tools.ietf.org/html/draft-cavage-http-signatures-10)","homepage":"https://github.com/3846masa/http-signature#readme","keywords":["http-signature"],"repository":{"type":"git","url":"git+ssh://git@github.com/3846masa/http-signature.git"},"author":{"name":"3846masa","email":"3846masahiro+git@gmail.com"},"bugs":{"url":"https://github.com/3846masa/http-signature/issues"},"license":"MIT","readme":"# [@3846masa/http-signature](https://www.npmjs.com/package/@3846masa/http-signature) <!-- omit in toc -->\n\n[![NPM](https://nodei.co/npm/@3846masa/http-signature.png?mini=true)](https://www.npmjs.com/package/@3846masa/http-signature)\n[![CircleCI](https://flat.badgen.net/circleci/github/3846masa/http-signature)](https://circleci.com/gh/3846masa/http-signature)\n[![Codecov](https://flat.badgen.net/codecov/c/github/3846masa/http-signature)](https://codecov.io/gh/3846masa/http-signature)\n\n> Create / Verify [HTTP Signatures](https://tools.ietf.org/html/draft-cavage-http-signatures-10)\n\n## Table of Contents <!-- omit in toc -->\n\n- [Install](#install)\n- [Usage](#usage)\n  - [Create signature](#create-signature)\n  - [Parse signature](#parse-signature)\n  - [Verify signature](#verify-signature)\n- [Contributing](#contributing)\n- [License](#license)\n\n## Install\n\n```bash\nnpm install --save @3846masa/http-signature\n```\n\n```bash\nyarn add @3846masa/http-signature\n```\n\nTypeScript definitions is included.\n\n## Usage\n\n### Create signature\n\n```ts\nimport { createSignature } from '@3846masa/http-signature';\n\nconst privateKey = `\n-----BEGIN RSA PRIVATE KEY-----\nMIICXgIBAAKBgQDCFENGw33yGihy92pDjZQhl0C36rPJj+CvfSC8+q28hxA161QF\nNUd13wuCTUcq0Qd2qsBe/2hFyc2DCJJg0h1L78+6Z4UMR7EOcpfdUE9Hf3m/hs+F\nUR45uBJeDK1HSFHD8bHKD6kv8FPGfJTotc+2xjJwoYi+1hqp1fIekaxsyQIDAQAB\nAoGBAJR8ZkCUvx5kzv+utdl7T5MnordT1TvoXXJGXK7ZZ+UuvMNUCdN2QPc4sBiA\nQWvLw1cSKt5DsKZ8UETpYPy8pPYnnDEz2dDYiaew9+xEpubyeW2oH4Zx71wqBtOK\nkqwrXa/pzdpiucRRjk6vE6YY7EBBs/g7uanVpGibOVAEsqH1AkEA7DkjVH28WDUg\nf1nqvfn2Kj6CT7nIcE3jGJsZZ7zlZmBmHFDONMLUrXR/Zm3pR5m0tCmBqa5RK95u\n412jt1dPIwJBANJT3v8pnkth48bQo/fKel6uEYyboRtA5/uHuHkZ6FQF7OUkGogc\nmSJluOdc5t6hI1VsLn0QZEjQZMEOWr+wKSMCQQCC4kXJEsHAve77oP6HtG/IiEn7\nkpyUXRNvFsDE0czpJJBvL/aRFUJxuRK91jhjC68sA7NsKMGg5OXb5I5Jj36xAkEA\ngIT7aFOYBFwGgQAQkWNKLvySgKbAZRTeLBacpHMuQdl1DfdntvAyqpAZ0lY0RKmW\nG6aFKaqQfOXKCyWoUiVknQJAXrlgySFci/2ueKlIE1QqIiLSZ8V8OlpFLRnb1pzI\n7U1yQXnTAEFYM560yJlzUpOb1V4cScGd365tiSMvxLOvTA==\n-----END RSA PRIVATE KEY-----\n`.trim();\n\ncreateSignature({\n  privateKey,\n  keyId: 'Test',\n  method: 'POST',\n  pathname: '/foo?param=value&pet=dog',\n  headers: {\n    Host: 'example.com',\n    Date: 'Sun, 05 Jan 2014 21:31:40 GMT',\n    'Content-Type': 'application/json',\n    Digest: 'SHA-256=X48E9qOokqqrvdts8nOJRJN3OWDUoyWxBf7kbu9DBPE=',\n    'Content-Length': 18,\n  },\n  properties: ['(request-target)', 'host', 'date'],\n  algorithm: 'rsa-sha256',\n});\n\n// keyId=\"Test\",algorithm=\"rsa-sha256\",headers=\"(request-target) host date\",signature=\"qdx+H7PHHDZgy4y/Ahn9Tny9V3GP6YgBPyUXMmoxWtLbHpUnXS2mg2+SbrQDMCJypxBLSPQR2aAjn7ndmw2iicw3HMbe8VfEdKFYRqzic+efkb3nndiv/x1xSHDJWeSWkx3ButlYSuBskLu6kd9Fswtemr3lgdDEmn04swr2Os0=\"\n```\n\n### Parse signature\n\n```ts\nimport { parseSignature } from '@3846masa/http-signature';\n\nconst signatureObj = parseSignature(\n  `keyId=\"Test\",algorithm=\"rsa-sha256\",headers=\"(request-target) host date\",signature=\"qdx+H7PHHDZgy4y/Ahn9Tny9V3GP6YgBPyUXMmoxWtLbHpUnXS2mg2+SbrQDMCJypxBLSPQR2aAjn7ndmw2iicw3HMbe8VfEdKFYRqzic+efkb3nndiv/x1xSHDJWeSWkx3ButlYSuBskLu6kd9Fswtemr3lgdDEmn04swr2Os0=\"`,\n);\n\n/**\n * {\n *   keyId: 'Test',\n *   algorithm: 'rsa-sha256',\n *   headers: '(request-target) host date',\n *   signature: 'qdx+H7PHHDZgy4y/Ahn9Tny9V3GP6YgBPyUXMmoxWtLbHpUnXS2mg2+SbrQDMCJypxBLSPQR2aAjn7ndmw2iicw3HMbe8VfEdKFYRqzic+efkb3nndiv/x1xSHDJWeSWkx3ButlYSuBskLu6kd9Fswtemr3lgdDEmn04swr2Os0='\n * }\n */\n```\n\n### Verify signature\n\n```ts\nimport { verifySignature } from '@3846masa/http-signature';\n\nconst publicKey = `\n-----BEGIN PUBLIC KEY-----\nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDCFENGw33yGihy92pDjZQhl0C3\n6rPJj+CvfSC8+q28hxA161QFNUd13wuCTUcq0Qd2qsBe/2hFyc2DCJJg0h1L78+6\nZ4UMR7EOcpfdUE9Hf3m/hs+FUR45uBJeDK1HSFHD8bHKD6kv8FPGfJTotc+2xjJw\noYi+1hqp1fIekaxsyQIDAQAB\n-----END PUBLIC KEY-----\n`.trim();\n\ntry {\n  verifySignature({\n    publicKey,\n    signature: {\n      keyId: 'Test',\n      algorithm: 'rsa-sha256',\n      headers: '(request-target) host date',\n      signature:\n        'qdx+H7PHHDZgy4y/Ahn9Tny9V3GP6YgBPyUXMmoxWtLbHpUnXS2mg2+SbrQDMCJypxBLSPQR2aAjn7ndmw2iicw3HMbe8VfEdKFYRqzic+efkb3nndiv/x1xSHDJWeSWkx3ButlYSuBskLu6kd9Fswtemr3lgdDEmn04swr2Os0=',\n    },\n    method: 'POST',\n    pathname: '/foo?param=value&pet=dog',\n    headers: {\n      Host: 'example.com',\n      Date: 'Sun, 05 Jan 2014 21:31:40 GMT',\n      'Content-Type': 'application/json',\n      Digest: 'SHA-256=X48E9qOokqqrvdts8nOJRJN3OWDUoyWxBf7kbu9DBPE=',\n      'Content-Length': 18,\n    },\n    algorithm: 'rsa-sha256',\n  });\n} catch (err) {\n  console.error(err);\n}\n```\n\n## Contributing\n\n1. [Fork it](http://github.com/3846masa/http-signature/fork)\n2. Create your feature branch (`git checkout -b my-new-feature`)\n3. Commit your changes (`git commit -am 'Add some feature'`)\n4. Lint codes before pushing (`yarn lint`)\n5. Push to the branch (`git push origin my-new-feature`)\n6. Run tests before creating PR (`yarn test`)\n7. Create new Pull Request\n\nPRs accepted.\n\n## License\n\n[MIT (c) 3846masa](https://github.com/3846masa/http-signature/blob/master/LICENSE)\n","readmeFilename":"README.md"}