{"_id":"seneca-crypto-sign","_rev":"8-a84c78b7de313b341f1c15c40a9798be","name":"seneca-crypto-sign","description":"microservice for signing information (both HMAC and pub/priv key signing)","dist-tags":{"latest":"0.1.2"},"versions":{"0.1.0":{"name":"seneca-crypto-sign","version":"0.1.0","description":"microservice for signing information (both HMAC and pub/priv key signing)","main":"crypto-sign.js","scripts":{"test":"mocha test --reporter spec"},"repository":{"type":"git","url":"git://github.com/nherment/seneca-crypto-sign.git"},"keywords":["seneca","auth","crypto","hmac","token","signing","sign","key"],"author":{"name":"Nicolas Herment","email":"nherment@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/nherment/seneca-crypto-sign/issues"},"homepage":"https://github.com/nherment/seneca-crypto-sign","dependencies":{"underscore":"1.6.0","ursa":"0.8.0"},"peerDependencies":{"seneca":"0.5.15"},"devDependencies":{"mocha":"1.18.2"},"_id":"seneca-crypto-sign@0.1.0","dist":{"shasum":"928e8fb4e2b3956060973f7b4d6a0084bfff748c","tarball":"https://registry.npmjs.org/seneca-crypto-sign/-/seneca-crypto-sign-0.1.0.tgz","integrity":"sha512-z8zMKvz+CH4Z2eaH0vxX3/UjnUztvpqmZEf18b4hsWD22A+fh0GoudsVmM3bcSr+lzsOjkIoAFeAh7CK+Z5JPg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDNTcGk+5xI1qkDxnpsa+NbK/9sn7FsuEEAD4f+8o9oyQIhAMiLgIKq7KO6kvv6Zrn7Rca3+Za5X8BGGreYrP7031WL"}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"nherment","email":"nherment@gmail.com"},"maintainers":[{"name":"nherment","email":"nherment@gmail.com"}]},"0.1.1":{"name":"seneca-crypto-sign","version":"0.1.1","description":"microservice for signing information (both HMAC and pub/priv key signing)","main":"crypto-sign.js","scripts":{"test":"mocha test --reporter spec"},"repository":{"type":"git","url":"git://github.com/nherment/seneca-crypto-sign.git"},"keywords":["seneca","auth","crypto","hmac","token","signing","sign","key"],"author":{"name":"Nicolas Herment","email":"nherment@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/nherment/seneca-crypto-sign/issues"},"homepage":"https://github.com/nherment/seneca-crypto-sign","dependencies":{"underscore":"1.6.0","ursa":"0.8.0"},"peerDependencies":{"seneca":"*"},"devDependencies":{"seneca":"*","mocha":"*"},"_id":"seneca-crypto-sign@0.1.1","_shasum":"ca9bb0109c3c24f5debf9ebc47a8f7135a6c11aa","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"nherment","email":"nherment@gmail.com"},"maintainers":[{"name":"nherment","email":"nherment@gmail.com"},{"name":"rjrodger","email":"richard.rodger@nearform.com"}],"dist":{"shasum":"ca9bb0109c3c24f5debf9ebc47a8f7135a6c11aa","tarball":"https://registry.npmjs.org/seneca-crypto-sign/-/seneca-crypto-sign-0.1.1.tgz","integrity":"sha512-nA3sH4pOmbNsJS7qc1VJZFm/SS+eEdWr9dkWlXcugGZnAckO6f8pYlcbE8PqMoQXNw23txVxLa60YhQ1J4DCwg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDU7yVmXHi4WDjRDDKYvTOaV4TLkY67djjSWM5H5TCFbgIhALOme0cAksxZ2q5Fo76hmLWhAe8GyU1k4JNIgbpGdz0P"}]}},"0.1.2":{"name":"seneca-crypto-sign","version":"0.1.2","description":"microservice for signing information (both HMAC and pub/priv key signing)","main":"crypto-sign.js","scripts":{"test":"mocha test --reporter spec"},"repository":{"type":"git","url":"git://github.com/nherment/seneca-crypto-sign.git"},"keywords":["seneca","auth","crypto","hmac","token","signing","sign","key"],"author":{"name":"Nicolas Herment","email":"nherment@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/nherment/seneca-crypto-sign/issues"},"homepage":"https://github.com/nherment/seneca-crypto-sign","dependencies":{"underscore":"1.6.0","ursa":"~0.8.4"},"peerDependencies":{"seneca":"*"},"devDependencies":{"seneca":"*","mocha":"*"},"_id":"seneca-crypto-sign@0.1.2","_shasum":"0fd959572dbd825a9242fca49a55cb226babe4da","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"nherment","email":"nherment@gmail.com"},"maintainers":[{"name":"nherment","email":"nherment@gmail.com"},{"name":"rjrodger","email":"richard.rodger@nearform.com"}],"dist":{"shasum":"0fd959572dbd825a9242fca49a55cb226babe4da","tarball":"https://registry.npmjs.org/seneca-crypto-sign/-/seneca-crypto-sign-0.1.2.tgz","integrity":"sha512-vuEy5Dh20tbxDh+o/hd1IiTX3lytGB8flIvRvTOg2pD3j3shASSy4JwYidFf3D+2++Aifrvxhz4TfUEscQ2Tfw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDPcz2rLkf9CQgpWAunE5jnqBrTVAmGg7N4yDCgOxTnJAiBDnXksfbsPYvdLH/cACOCHiKgwfjbI2jQR9MqBJyxcmA=="}]}}},"readme":"\n[![Build Status](https://api.travis-ci.org/nherment/seneca-crypto-sign.png?branch=master)](https://travis-ci.org/nherment/seneca-crypto-sign)\n\nseneca plugin to sign objects\n\n### install\n\n```\n  npm install --save seneca\n  npm install --save seneca-crypto-sign\n```\n\n### usage\n\n\nThe is a default hmac signing mechanism which derives a secret key from options.key\nIt uses the hashing algorithm ```sha256```.\n\n```\nseneca.use( 'crypto-sign' )\n\nvar payload = {...}\n\nvar crypto = seneca.pin({role: 'crypto-sign', cmd: '*'})\n\ncrypto.sign({data: payload}, function(err, signedData) {\n\n  signedData.type     // 'hmac' by default\n  signedData.token    // the signature\n  signedData.payload  // the data that was signed\n\n})\n\ncrypto.verify({data: signedData}, function(err, verified) {\n  verified // true | false\n})\n```\n\n### key\n\nIt is possible to pass a custom secret key:\n\n```\ncrypto.sign({data: payload, key: 'xyz'}, function(err, signedData) {\n  ...\n})\n\ncrypto.verify({data: payload, key: 'xyz'}, function(err, verified) {\n  ...\n})\n```\n\n### custom microservice\n\n\nDeclare a custom microservice:\n\n```\n    crypto.configure({name: 'myCustomHmacService', type: 'hmac', key: 'super duper secret', algorithm: 'sha1'}, function(err) {\n      ...\n    })\n```\n\n\nUse private/public keys:\n\n```\n    crypto.configure({name: 'myCustomRsaService', type: 'rsa', pem: <private or public key>, algorithm: 'sha256'}, function(err) {\n      ...\n    })\n```\n\n\nYou can use your own even if it is password protected:\n\n```\n    crypto.configure({name: 'myCustomRsaService', type: 'rsa', pem: <private or public key>, password: 'secret', algorithm: 'sha256'}, function(err) {\n      ...\n    })\n```\n\nnote that the 'pem' field can also receive a public key. In this case, the service can only verify data but cannot sign\nit. It allows to separate instances that know the private key (eg. firewall protected authentication provider) from\nthose that only verify the data (public web services) and thus reduce your attack surface.\n","maintainers":[{"name":"nherment","email":"nherment@gmail.com"},{"name":"rjrodger","email":"richard.rodger@nearform.com"}],"time":{"modified":"2022-06-26T17:37:45.611Z","created":"2014-03-21T13:17:55.590Z","0.1.0":"2014-03-21T13:17:55.590Z","0.1.1":"2014-06-18T11:45:39.165Z","0.1.2":"2015-05-21T15:55:18.050Z"},"homepage":"https://github.com/nherment/seneca-crypto-sign","keywords":["seneca","auth","crypto","hmac","token","signing","sign","key"],"repository":{"type":"git","url":"git://github.com/nherment/seneca-crypto-sign.git"},"author":{"name":"Nicolas Herment","email":"nherment@gmail.com"},"bugs":{"url":"https://github.com/nherment/seneca-crypto-sign/issues"},"license":"MIT","readmeFilename":"README.md"}