{"_id":"www-authenticate","_rev":"27-fb3f6569d2560c11f3e83ce9f6034ec7","name":"www-authenticate","description":"Provides the functionality needed for a client to use HTTP Basic or Digest authentication.  Also provides primitives for parsing WWW-Authenticate and Authentication_Info headers.","dist-tags":{"latest":"0.6.3"},"versions":{"0.1.0":{"name":"www-authenticate","description":"Provides the functionality needed for a client to use HTTP Basic or Digest authentication.  Also provides primitives for parsing WWW-Authenticate and Authentication_Info headers.","version":"0.1.0","homepage":"https://github.com/randymized/www-authenticate","author":{"name":"Randy McLaughlin","email":"ot40ddj02@sneakemail.com"},"repository":{"type":"git","url":"git://github.com/randymized/www-authenticate.git"},"bugs":{"url":"https://github.com/randymized/www-authenticate/issues"},"licenses":[{"type":"MIT","url":"https://github.com/randymized/www-authenticate/blob/master/LICENSE-MIT"}],"main":"./index.js","engines":{"node":">= 0.8.0"},"scripts":{"test":"grunt simplemocha"},"devDependencies":{"mocha":"~1.9.0","should":"~1.2.2","grunt-contrib-jshint":"~0.4.0","grunt-simple-mocha":"git://github.com/yaymukund/grunt-simple-mocha.git","grunt-contrib-watch":"~0.3.1","grunt":"~0.4.1"},"keywords":["www-authenticate","HTTP","digest","authentication"],"readme":"# www-authenticate [![Build Status](https://secure.travis-ci.org/randymized/www-authenticate.png?branch=master)](http://travis-ci.org/randymized/www-authenticate)\n\n## Documentation\nProvides the functionality needed for a client to use HTTP Basic or Digest authentication.  Also provides primitives for parsing WWW-Authenticate and Authentication_Info headers.\n\nParses the content of a WWW-Authenticate header sent by a server. Interpret the authentication challenge posed. Then generate the credentials for Authorization headers for subsequent requests from the server.\n\n- Supports Basic and Digest authentication schemes.\n- Supports 'auth' quality of protection (qop) and challenges that do not include qop.\n- Supports MD5 and MD5-sess algorithms.\n- Assumes Node.js, but otherwise makes no assumtion about framework.\n\n## Limitations\n- Basic authetication scheme is untested.\n- Included tests only test Digest scheme against the rfc2617 example.\n- Most of the permutations of qop and algorithm have not been tested.\n- Little real-world testing.  That's where you can help!  Report any failures or submit a patch that resolves an authentication failure.\n- Will not parse WWW-Authenticate headers that contain more than one challenge.  Please send an example of one if you find one in the field or modify the parser to parse it.\n- Does not support auth-int qop, but will use auth qop if server allows either.  Support could surely be added in the future.\n- Response to challenges without qop have not been tested.\n\n## Getting Started\nInstall the module with: `npm install www-authenticate`\nSee examples below.\n\n## Examples\n```javascript\nvar www_authenticate = require('www-authenticate');\nvar on_www_authenticate= www_authenticate(username,password);\n\n// now wait for HTTP/1.1 401 Unauthorized and then parse the WWW_Authenticate header\nvar authenticator= on_www_authenticate(req.header.www_authenticate);\nif (authenticator.err) throw err; // or do something similarly drastic\n\n//... now, whenever you make a request, add an Authorization header:\nresponse.setHeader('authorize', authenticator.authorize('GET',url));\n```\n---\n```javascript\nvar parsers = require('www-authenticate').parsers;\nvar parsed= new parsers.WWW_Authenticate(request.headers['www-authenticate']);\nconsole.log(parsed.scheme);\nconsole.log(parsed.parms.nonce);\n\nvar parsed= new parsers.Authentication_Info(request.headers['authentication-info']);\nconsole.log(parsed.parms.nonce);\n```\n\n## Contributing\nIn lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using [Grunt](http://gruntjs.com/).\n\n## Release History\n_(Nothing yet)_\n\n## License\nCopyright (c) 2013 Randy McLaughlin\nLicensed under the MIT license.\n","readmeFilename":"README.md","_id":"www-authenticate@0.1.0","dist":{"shasum":"5963f5c2cafba3b632c6281fb10dfd5612921f9d","tarball":"https://registry.npmjs.org/www-authenticate/-/www-authenticate-0.1.0.tgz","integrity":"sha512-petfWSZxOPaCtJO/6g1Y0RGjaITW7dDqwj2adoVCJXRNSLfc0rDFvNzYctVnTNmadIlXMONVBMOnfVx4QfAEVQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDiv3zkNKdDJRJD+XjejJHAqUjvJEMhwN9qMJDTdmUtfQIgZ+cau8iK26qCm55Uiu5k8zSRD6hOhLfMnXRN4vL+VAc="}]},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"randymized","email":"8b629a9884@snkmail.com"},"maintainers":[{"name":"randymized","email":"8b629a9884@snkmail.com"}],"directories":{}},"0.1.1":{"name":"www-authenticate","description":"Provides the functionality needed for a client to use HTTP Basic or Digest authentication.  Also provides primitives for parsing WWW-Authenticate and Authentication_Info headers.","version":"0.1.1","homepage":"https://github.com/randymized/www-authenticate","author":{"name":"Randy McLaughlin","email":"ot40ddj02@sneakemail.com"},"repository":{"type":"git","url":"git://github.com/randymized/www-authenticate.git"},"bugs":{"url":"https://github.com/randymized/www-authenticate/issues"},"licenses":[{"type":"MIT","url":"https://github.com/randymized/www-authenticate/blob/master/LICENSE-MIT"}],"main":"./index.js","engines":{"node":">= 0.8.0"},"scripts":{"test":"grunt simplemocha"},"devDependencies":{"mocha":"~1.9.0","should":"~1.2.2","grunt-contrib-jshint":"~0.4.0","grunt-simple-mocha":"git://github.com/yaymukund/grunt-simple-mocha.git","grunt-contrib-watch":"~0.3.1","grunt":"~0.4.1"},"keywords":["www-authenticate","HTTP","digest","authentication"],"readme":"# www-authenticate [![Build Status](https://secure.travis-ci.org/randymized/www-authenticate.png?branch=master)](http://travis-ci.org/randymized/www-authenticate)\n\n## Documentation\nProvides the functionality needed for a client to use HTTP Basic or Digest authentication.  Also provides primitives for parsing WWW-Authenticate and Authentication_Info headers.\n\nParses the content of a WWW-Authenticate header sent by a server. Interpret the authentication challenge posed. Then generate the credentials for Authorization headers for subsequent requests from the server.\n\n- Supports Basic and Digest authentication schemes.\n- Supports 'auth' quality of protection (qop) and challenges that do not include qop.\n- Supports MD5 and MD5-sess algorithms.\n- Assumes Node.js, but otherwise makes no assumtion about framework.\n\n## Limitations\n- Basic authetication scheme is untested.\n- Included tests only test Digest scheme against the rfc2617 example.\n- Most of the permutations of qop and algorithm have not been tested.\n- Little real-world testing.  That's where you can help!  Report any failures or submit a patch that resolves an authentication failure.\n- Will not parse WWW-Authenticate headers that contain more than one challenge.  Please send an example of one if you find one in the field or modify the parser to parse it.\n- Does not support auth-int qop, but will use auth qop if server allows either.  Support could surely be added in the future.\n- Response to challenges without qop have not been tested.\n\n## Getting Started\nInstall the module with: `npm install www-authenticate`\nSee examples below.\n\n## Examples\n```javascript\nvar www_authenticate = require('www-authenticate');\nvar on_www_authenticate= www_authenticate(username,password);\n\n// now wait for HTTP/1.1 401 Unauthorized and then parse the WWW_Authenticate header\nvar authenticator= on_www_authenticate(response.headers['www-authenticate']);\nif (authenticator.err) throw err; // or do something similarly drastic\n\n//... now, whenever you make a request, add an Authorization header:\nresponse.setHeader('authorization', authenticator.authorize('GET',url));\n```\n---\n```javascript\nvar parsers = require('www-authenticate').parsers;\nvar parsed= new parsers.WWW_Authenticate(request.headers['www-authenticate']);\nconsole.log(parsed.scheme);\nconsole.log(parsed.parms.nonce);\n\nvar parsed= new parsers.Authentication_Info(request.headers['authentication-info']);\nconsole.log(parsed.parms.nonce);\n```\n\n## Contributing\nIn lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using [Grunt](http://gruntjs.com/).\n\n## Release History\n_(Nothing yet)_\n\n## License\nCopyright (c) 2013 Randy McLaughlin\nLicensed under the MIT license.\n","readmeFilename":"README.md","_id":"www-authenticate@0.1.1","dist":{"shasum":"2790856388c1b9faf55a0d18b97123c558a0a471","tarball":"https://registry.npmjs.org/www-authenticate/-/www-authenticate-0.1.1.tgz","integrity":"sha512-eg0AOOEdwuzd95/QDu7ANY6bahrNStY0TlSCLSkPhPLNdg/KtnC/igBH+2SGpncvuKwVDxu05TI0rvcaM82p7w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDbDbT4KVm65yeKoakOq1+EBQaHorqFM2KrCGMlkoYNIgIhAMCSW/GNsNn9HX2s8VwbUdBKFnwO3cYnhnD4xnNBpmDv"}]},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"randymized","email":"8b629a9884@snkmail.com"},"maintainers":[{"name":"randymized","email":"8b629a9884@snkmail.com"}],"directories":{}},"0.2.0":{"name":"www-authenticate","description":"Provides the functionality needed for a client to use HTTP Basic or Digest authentication.  Also provides primitives for parsing WWW-Authenticate and Authentication_Info headers.","version":"0.2.0","homepage":"https://github.com/randymized/www-authenticate","author":{"name":"Randy McLaughlin","email":"ot40ddj02@sneakemail.com"},"repository":{"type":"git","url":"git://github.com/randymized/www-authenticate.git"},"bugs":{"url":"https://github.com/randymized/www-authenticate/issues"},"licenses":[{"type":"MIT","url":"https://github.com/randymized/www-authenticate/blob/master/LICENSE-MIT"}],"main":"./index.js","engines":{"node":">= 0.8.0"},"scripts":{"test":"grunt simplemocha"},"devDependencies":{"mocha":"~1.9.0","should":"~1.2.2","grunt-contrib-jshint":"~0.4.0","grunt-simple-mocha":"git://github.com/yaymukund/grunt-simple-mocha.git","grunt-contrib-watch":"~0.3.1","grunt":"~0.4.1"},"keywords":["www-authenticate","HTTP","digest","authentication"],"readme":"# www-authenticate [![Build Status](https://secure.travis-ci.org/randymized/www-authenticate.png?branch=master)](http://travis-ci.org/randymized/www-authenticate)\n\n## Documentation\nProvides the functionality needed for a client to use HTTP Basic or Digest authentication.  Also provides primitives for parsing WWW-Authenticate and Authentication_Info headers.\n\nParses the content of a WWW-Authenticate header sent by a server. Interpret the authentication challenge posed. Then generate the credentials for Authorization headers for subsequent requests from the server.\n\n- Supports Basic and Digest authentication schemes.\n- Supports 'auth' quality of protection (qop) and challenges that do not include qop.\n- Supports MD5 and MD5-sess algorithms.\n- Assumes Node.js, but otherwise makes no assumtion about framework.\n\n## Limitations\n- Basic authetication scheme is untested.\n- Included tests only test Digest scheme against the rfc2617 example.\n- Most of the permutations of qop and algorithm have not been tested.\n- Little real-world testing.  That's where you can help!  Report any failures or submit a patch that resolves an authentication failure.\n- Will not parse WWW-Authenticate headers that contain more than one challenge.  Please send an example of one if you find one in the field or modify the parser to parse it.\n- Does not support auth-int qop, but will use auth qop if server allows either.  Support could surely be added in the future.\n- Response to challenges without qop have not been tested.\n\n## Getting Started\nInstall the module with: `npm install www-authenticate`\nSee examples below.\n\n## Examples\n```javascript\nvar www_authenticate = require('www-authenticate');\nvar on_www_authenticate= www_authenticate(username,password);\n\n// now wait for HTTP/1.1 401 Unauthorized and then parse the WWW_Authenticate header\nvar authenticator= on_www_authenticate(response.headers['www-authenticate']);\nif (authenticator.err) throw err; // or do something similarly drastic\n\n//... now, whenever you make a request, add an Authorization header:\nresponse.setHeader('authorization', authenticator.authorize('GET',url));\n```\n---\n```javascript\nvar parsers = require('www-authenticate').parsers;\nvar parsed= new parsers.WWW_Authenticate(request.headers['www-authenticate']);\nconsole.log(parsed.scheme);\nconsole.log(parsed.parms.nonce);\n\nvar parsed= new parsers.Authentication_Info(request.headers['authentication-info']);\nconsole.log(parsed.parms.nonce);\n```\n\n## Contributing\nIn lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using [Grunt](http://gruntjs.com/).\n\n## Release History\n_(Nothing yet)_\n\n## License\nCopyright (c) 2013 Randy McLaughlin\nLicensed under the MIT license.\n","readmeFilename":"README.md","_id":"www-authenticate@0.2.0","dist":{"shasum":"9f213224a2d8bd7db2013ecd882e9142dd3dc92d","tarball":"https://registry.npmjs.org/www-authenticate/-/www-authenticate-0.2.0.tgz","integrity":"sha512-P1cQEkvmh6IQoXY+Xo7JmoE5eyIYAWjectSuHjVeJctuq6GbMlSUineVRg7VPaA9RmQA9lmRYDgTLQUgWorj/w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCp8C01LxAGRa/9NXNTJwz38RebcsKaJQcUv0Ts/70VZwIhALftBJ+MLjcBYDZ128v6gowns0KrsJh7H1D/4V5WwRA4"}]},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"randymized","email":"8b629a9884@snkmail.com"},"maintainers":[{"name":"randymized","email":"8b629a9884@snkmail.com"}],"directories":{}},"0.3.0":{"name":"www-authenticate","description":"Provides the functionality needed for a client to use HTTP Basic or Digest authentication.  Also provides primitives for parsing WWW-Authenticate and Authentication_Info headers.","version":"0.3.0","homepage":"https://github.com/randymized/www-authenticate","author":{"name":"Randy McLaughlin","email":"ot40ddj02@sneakemail.com"},"repository":{"type":"git","url":"git://github.com/randymized/www-authenticate.git"},"bugs":{"url":"https://github.com/randymized/www-authenticate/issues"},"licenses":[{"type":"MIT","url":"https://github.com/randymized/www-authenticate/blob/master/LICENSE-MIT"}],"main":"./index.js","engines":{"node":">= 0.8.0"},"scripts":{"test":"grunt simplemocha"},"devDependencies":{"mocha":"~1.9.0","should":"~1.2.2","grunt-contrib-jshint":"~0.4.0","grunt-simple-mocha":"git://github.com/yaymukund/grunt-simple-mocha.git","grunt-contrib-watch":"~0.3.1","grunt":"~0.4.1"},"keywords":["www-authenticate","HTTP","digest","authentication"],"readme":"# www-authenticate [![Build Status](https://secure.travis-ci.org/randymized/www-authenticate.png?branch=master)](http://travis-ci.org/randymized/www-authenticate)\n\n## Documentation\nProvides the functionality needed for a client to use HTTP Basic or Digest authentication.  Also provides primitives for parsing WWW-Authenticate and Authentication_Info headers.\n\nParses the content of a WWW-Authenticate header sent by a server. Interpret the authentication challenge posed. Then generate the credentials for Authorization headers for subsequent requests from the server.\n\n- Supports Basic and Digest authentication schemes.\n- Supports 'auth' quality of protection (qop) and challenges that do not include qop.\n- Supports MD5 and MD5-sess algorithms.\n- Assumes Node.js, but otherwise makes no assumtion about framework.\n\n## Limitations\n- Basic authetication scheme is untested.\n- Included tests only test Digest scheme against the rfc2617 example.\n- Most of the permutations of qop and algorithm have not been tested.\n- Little real-world testing.  That's where you can help!  Report any failures or submit a patch that resolves an authentication failure.\n- Will not parse WWW-Authenticate headers that contain more than one challenge.  Please send an example of one if you find one in the field or modify the parser to parse it.\n- Does not support auth-int qop, but will use auth qop if server allows either.  Support could surely be added in the future.\n- Response to challenges without qop have not been tested.\n\n## Getting Started\nInstall the module with: `npm install www-authenticate`\nSee examples below.\n\n## Examples\n```javascript\nvar www_authenticate = require('www-authenticate');\nvar on_www_authenticate= www_authenticate(username,password);\n\n// now wait for HTTP/1.1 401 Unauthorized and then parse the WWW_Authenticate header\nvar authenticator= on_www_authenticate(response.headers['www-authenticate']);\nif (authenticator.err) throw err; // or do something similarly drastic\n\n//... now, whenever you make a request, add an Authorization header:\nresponse.setHeader('authorization', authenticator.authorize('GET',url));\n```\n---\n```javascript\nvar parsers = require('www-authenticate').parsers;\nvar parsed= new parsers.WWW_Authenticate(request.headers['www-authenticate']);\nconsole.log(parsed.scheme);\nconsole.log(parsed.parms.nonce);\n\nvar parsed= new parsers.Authentication_Info(request.headers['authentication-info']);\nconsole.log(parsed.parms.nonce);\n```\n\n## Contributing\nIn lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using [Grunt](http://gruntjs.com/).\n\n## Release History\n_(Nothing yet)_\n\n## License\nCopyright (c) 2013 Randy McLaughlin\nLicensed under the MIT license.\n","readmeFilename":"README.md","_id":"www-authenticate@0.3.0","dist":{"shasum":"44e00e5da5414943dd7ffa025505d3508a6b5e10","tarball":"https://registry.npmjs.org/www-authenticate/-/www-authenticate-0.3.0.tgz","integrity":"sha512-zJhAwS0bQSOK94KN7j/MW99RGttv6QC7aqmant/jqBGnufv2rZ7lWwLI8M0X2nM9uPtnCR390QXaJfvtsEzssg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFB9J0BK350oobOZnpbJn9IiXryTt8PFP8lH4y7gJWQZAiEA4zg0OjI2avJpwjH869yUKrZ1TKv1L0NEixYQ9MihecI="}]},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"randymized","email":"8b629a9884@snkmail.com"},"maintainers":[{"name":"randymized","email":"8b629a9884@snkmail.com"}],"directories":{}},"0.4.0":{"name":"www-authenticate","description":"Provides the functionality needed for a client to use HTTP Basic or Digest authentication.  Also provides primitives for parsing WWW-Authenticate and Authentication_Info headers.","version":"0.4.0","homepage":"https://github.com/randymized/www-authenticate","author":{"name":"Randy McLaughlin","email":"ot40ddj02@sneakemail.com"},"repository":{"type":"git","url":"git://github.com/randymized/www-authenticate.git"},"bugs":{"url":"https://github.com/randymized/www-authenticate/issues"},"licenses":[{"type":"MIT","url":"https://github.com/randymized/www-authenticate/blob/master/LICENSE-MIT"}],"main":"./index.js","engines":{"node":">= 0.8.0"},"scripts":{"test":"grunt simplemocha"},"devDependencies":{"mocha":"~1.9.0","should":"~1.2.2","grunt-contrib-jshint":"~0.4.0","grunt-simple-mocha":"git://github.com/yaymukund/grunt-simple-mocha.git","grunt-contrib-watch":"~0.3.1","grunt":"~0.4.1"},"keywords":["www-authenticate","HTTP","digest","authentication"],"readme":"# www-authenticate [![Build Status](https://secure.travis-ci.org/randymized/www-authenticate.png?branch=master)](http://travis-ci.org/randymized/www-authenticate)\n\n## Documentation\nProvides the functionality needed for a client to use HTTP Basic or Digest authentication.  Also provides primitives for parsing WWW-Authenticate and Authentication_Info headers.\n\nParses the content of a WWW-Authenticate header sent by a server. Interpret the authentication challenge posed. Then generate the credentials for Authorization headers for subsequent requests from the server.\n\n- Supports Basic and Digest authentication schemes.\n- Supports 'auth' quality of protection (qop) and challenges that do not include qop.\n- Supports MD5 and MD5-sess algorithms.\n- Assumes Node.js, but otherwise makes no assumtion about framework.\n\n## Limitations\n- Basic authetication scheme is untested.\n- Included tests only test Digest scheme against the rfc2617 example.\n- Most of the permutations of qop and algorithm have not been tested.\n- Little real-world testing.  That's where you can help!  Report any failures or submit a patch that resolves an authentication failure.\n- Will not parse WWW-Authenticate headers that contain more than one challenge.  Please send an example of one if you find one in the field or modify the parser to parse it.\n- Does not support auth-int qop, but will use auth qop if server allows either.  Support could surely be added in the future.\n- Response to challenges without qop have not been tested.\n\n## Getting Started\nInstall the module with: `npm install www-authenticate`\nSee examples below.\n\n## Examples\n```javascript\nvar www_authenticate = require('www-authenticate');\nvar on_www_authenticate= www_authenticate(username,password);\n\n// now wait for HTTP/1.1 401 Unauthorized and then parse the WWW_Authenticate header\nvar authenticator= on_www_authenticate(response.headers['www-authenticate']);\nif (authenticator.err) throw err; // or do something similarly drastic\n\n//... now, whenever you make a request, add an Authorization header:\nresponse.setHeader('authorization', authenticator.authorize('GET',url));\n```\n---\n```javascript\nvar parsers = require('www-authenticate').parsers;\nvar parsed= new parsers.WWW_Authenticate(request.headers['www-authenticate']);\nconsole.log(parsed.scheme);\nconsole.log(parsed.parms.nonce);\n\nvar parsed= new parsers.Authentication_Info(request.headers['authentication-info']);\nconsole.log(parsed.parms.nonce);\n```\n\n## Contributing\nIn lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using [Grunt](http://gruntjs.com/).\n\n## Release History\n_(Nothing yet)_\n\n## License\nCopyright (c) 2013 Randy McLaughlin\nLicensed under the MIT license.\n","readmeFilename":"README.md","_id":"www-authenticate@0.4.0","dist":{"shasum":"31c9c5031cb9a77fad53f5436bb607c3663a421d","tarball":"https://registry.npmjs.org/www-authenticate/-/www-authenticate-0.4.0.tgz","integrity":"sha512-38znH6T/Id0gsj0+mhK0Dk26u8SL9cdf1YzBAOVM7QjSUcwQt3mRYCu7vAWhu5iApNj/aDAFVIVftMZ/+0GfEA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFSKQAvUbhcFZ6b4fBA2rAQUERWF60tIKmaYe6Wagk+UAiAcjd5AK4332C6tRIuGarC2G0w4ki95+4BvjZAa0p1Uxw=="}]},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"randymized","email":"8b629a9884@snkmail.com"},"maintainers":[{"name":"randymized","email":"8b629a9884@snkmail.com"}],"directories":{}},"0.5.0":{"name":"www-authenticate","description":"Provides the functionality needed for a client to use HTTP Basic or Digest authentication.  Also provides primitives for parsing WWW-Authenticate and Authentication_Info headers.","version":"0.5.0","homepage":"https://github.com/randymized/www-authenticate","author":{"name":"Randy McLaughlin","email":"ot40ddj02@sneakemail.com"},"repository":{"type":"git","url":"git://github.com/randymized/www-authenticate.git"},"bugs":{"url":"https://github.com/randymized/www-authenticate/issues"},"licenses":[{"type":"MIT","url":"https://github.com/randymized/www-authenticate/blob/master/LICENSE-MIT"}],"main":"./index.js","engines":{"node":">= 0.8.0"},"scripts":{"test":"grunt simplemocha"},"devDependencies":{"mocha":"~1.9.0","should":"~1.2.2","grunt-contrib-jshint":"~0.4.0","grunt-simple-mocha":"git://github.com/yaymukund/grunt-simple-mocha.git","grunt-contrib-watch":"~0.3.1","grunt":"~0.4.1"},"keywords":["www-authenticate","HTTP","digest","authentication"],"readme":"# www-authenticate [![Build Status](https://secure.travis-ci.org/randymized/www-authenticate.png?branch=master)](http://travis-ci.org/randymized/www-authenticate)\n\n## Documentation\nProvides the functionality needed for a client to use HTTP Basic or Digest authentication.  Also provides primitives for parsing WWW-Authenticate and Authentication_Info headers.\n\nParses the content of a WWW-Authenticate header sent by a server. Interpret the authentication challenge posed. Then generate the credentials for Authorization headers for subsequent requests from the server.\n\n- Supports Basic and Digest authentication schemes.\n- Supports 'auth' quality of protection (qop) and challenges that do not include qop.\n- Supports MD5 and MD5-sess algorithms.\n- Assumes Node.js, but otherwise makes no assumtion about framework.\n\n## Limitations\n- Included tests only test Digest scheme against the rfc2617 example.\n- Most of the permutations of qop and algorithm have not been tested.\n- Little real-world testing.  That's where you can help!  Report any failures or submit a patch that resolves an authentication failure.\n- Will not parse WWW-Authenticate headers that contain more than one challenge.  Please send an example of one if you find one in the field or modify the parser to parse it.\n- Does not support auth-int qop, but will use auth qop if server allows either.  Support could surely be added in the future.\n- Response to challenges without qop have not been tested.\n\n## Getting Started\nInstall the module with: `npm install www-authenticate`\nSee examples below.\n\n## Examples\nUse the high level interface:\n```javascript\nvar www_authenticate = require('www-authenticate');\nvar authenticator= www_authenticate.authenticator(username,password);\n\n// Whenever you receive a response, send it to the authenticator.\n// The authenticator will parse and record any challenge it contains.\nauthenticator.get_challenge(response);\n\n//... now, whenever you make a request the authenticator will add an\n// authorization header if a challenge has been received...\n var options= {\n   method: \"GET\",\n   path: \"/dir/index.html\"\n }\n authenticator.authenticate_request_options(options);\n if (authenticator.err) throw err;  // or do something similarly drastic\n http.request(options);\n```\n---\nUse the low level interface:\n```javascript\nvar www_authenticate = require('www-authenticate');\nvar on_www_authenticate= www_authenticate(username,password);\n\n// now wait for HTTP/1.1 401 Unauthorized and then parse the WWW_Authenticate header\nvar authenticator= on_www_authenticate(response.headers['www-authenticate']);\nif (authenticator.err) throw err; // or do something similarly drastic\n\n//... now, whenever you make a request, add an Authorization header:\nresponse.setHeader('authorization', authenticator.authorize('GET',url));\n```\n---\nParse www-authenticate or authentication-info headers:\n```javascript\nvar parsers = require('www-authenticate').parsers;\nvar parsed= new parsers.WWW_Authenticate(request.headers['www-authenticate']);\nconsole.log(parsed.scheme);\nconsole.log(parsed.parms.nonce);\n\nvar parsed= new parsers.Authentication_Info(request.headers['authentication-info']);\nconsole.log(parsed.parms.nonce);\n```\n\n## Contributing\nIn lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using [Grunt](http://gruntjs.com/).\n\n## Release History\nv0.5.0: The higher-level interface is now exported directly by the module\nv0.4.0: Provides a higher-level interface\nv0.3.0: If password is null, it, and preceding ':' will not be included in hash\n\n## License\nCopyright (c) 2013 Randy McLaughlin\nLicensed under the MIT license.\n","readmeFilename":"README.md","_id":"www-authenticate@0.5.0","dist":{"shasum":"7f9e9506e4aa0bb6a7b30bb7a90c2b1f876defd2","tarball":"https://registry.npmjs.org/www-authenticate/-/www-authenticate-0.5.0.tgz","integrity":"sha512-AaVwPa1m51hPKjn7Bhu2JqjWmtKkuT1g4UlDgsaicox0CF0K26qSU59l3Mtd7btGiojLM9gjIBPLi8vpGW/jWw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAZMOb0fhi48TxPOC7R5xODKroH8hysfzFfapbWpoQokAiBRntXZlO34LimGSLxIs9LM0wKAhKygwUuh2u6sud3wgA=="}]},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"randymized","email":"8b629a9884@snkmail.com"},"maintainers":[{"name":"randymized","email":"8b629a9884@snkmail.com"}],"directories":{}},"0.5.1":{"name":"www-authenticate","description":"Provides the functionality needed for a client to use HTTP Basic or Digest authentication.  Also provides primitives for parsing WWW-Authenticate and Authentication_Info headers.","version":"0.5.1","homepage":"https://github.com/randymized/www-authenticate","author":{"name":"Randy McLaughlin","email":"ot40ddj02@sneakemail.com"},"repository":{"type":"git","url":"git://github.com/randymized/www-authenticate.git"},"bugs":{"url":"https://github.com/randymized/www-authenticate/issues"},"licenses":[{"type":"MIT","url":"https://github.com/randymized/www-authenticate/blob/master/LICENSE-MIT"}],"main":"./index.js","engines":{"node":">= 0.8.0"},"scripts":{"test":"grunt simplemocha"},"devDependencies":{"mocha":"~1.9.0","should":"~1.2.2","grunt-contrib-jshint":"~0.4.0","grunt-simple-mocha":"git://github.com/yaymukund/grunt-simple-mocha.git","grunt-contrib-watch":"~0.3.1","grunt":"~0.4.1"},"keywords":["www-authenticate","HTTP","digest","authentication"],"readme":"# www-authenticate [![Build Status](https://secure.travis-ci.org/randymized/www-authenticate.png?branch=master)](http://travis-ci.org/randymized/www-authenticate)\n\n## Documentation\nProvides the functionality needed for a client to use HTTP Basic or Digest authentication.  Also provides primitives for parsing WWW-Authenticate and Authentication_Info headers.\n\nParses the content of a WWW-Authenticate header sent by a server. Interpret the authentication challenge posed. Then generate the credentials for Authorization headers for subsequent requests from the server.\n\n- Supports Basic and Digest authentication schemes.\n- Supports 'auth' quality of protection (qop) and challenges that do not include qop.\n- Supports MD5 and MD5-sess algorithms.\n- Assumes Node.js, but otherwise makes no assumtion about framework.\n\n## Limitations\n- Included tests only test Digest scheme against the rfc2617 example.\n- Most of the permutations of qop and algorithm have not been tested.\n- Little real-world testing.  That's where you can help!  Report any failures or submit a patch that resolves an authentication failure.\n- Will not parse WWW-Authenticate headers that contain more than one challenge.  Please send an example of one if you find one in the field or modify the parser to parse it.\n- Does not support auth-int qop, but will use auth qop if server allows either.  Support could surely be added in the future.\n- Response to challenges without qop have not been tested.\n\n## Getting Started\nInstall the module with: `npm install www-authenticate`\nSee examples below.\n\n## Examples\nUse the high level interface:\n```javascript\nvar www_authenticate = require('www-authenticate');\nvar authenticator= www_authenticate.authenticator(username,password);\n\n// Whenever you receive a response, send it to the authenticator.\n// The authenticator will parse and record any challenge it contains.\nauthenticator.get_challenge(response);\n\n//... now, whenever you make a request the authenticator will add an\n// authorization header if a challenge has been received...\n var options= {\n   method: \"GET\",\n   path: \"/dir/index.html\"\n }\n authenticator.authenticate_request_options(options);\n if (authenticator.err) throw err;  // or do something similarly drastic\n http.request(options);\n```\n---\nUse the low level interface:\n```javascript\nvar www_authenticate = require('www-authenticate');\nvar on_www_authenticate= www_authenticate(username,password);\n\n// now wait for HTTP/1.1 401 Unauthorized and then parse the WWW_Authenticate header\nvar authenticator= on_www_authenticate(response.headers['www-authenticate']);\nif (authenticator.err) throw err; // or do something similarly drastic\n\n//... now, whenever you make a request, add an Authorization header:\nresponse.setHeader('authorization', authenticator.authorize('GET',url));\n```\n---\nParse www-authenticate or authentication-info headers:\n```javascript\nvar parsers = require('www-authenticate').parsers;\nvar parsed= new parsers.WWW_Authenticate(request.headers['www-authenticate']);\nconsole.log(parsed.scheme);\nconsole.log(parsed.parms.nonce);\n\nvar parsed= new parsers.Authentication_Info(request.headers['authentication-info']);\nconsole.log(parsed.parms.nonce);\n```\n\n## Contributing\nIn lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using [Grunt](http://gruntjs.com/).\n\n## Release History\nv0.5.0: The higher-level interface is now exported directly by the module\nv0.4.0: Provides a higher-level interface\nv0.3.0: If password is null, it, and preceding ':' will not be included in hash\n\n## License\nCopyright (c) 2013 Randy McLaughlin\nLicensed under the MIT license.\n","readmeFilename":"README.md","_id":"www-authenticate@0.5.1","dist":{"shasum":"ac1fd5844a5b5834d2e4a65eb26828a7627e38de","tarball":"https://registry.npmjs.org/www-authenticate/-/www-authenticate-0.5.1.tgz","integrity":"sha512-4ce1yQmNdU74J7SrT5FBli7gCmSYBhNQwzu46FcZZJM8HfeRgC8yzuzNI1N/htTN/SFCoorB/DF3FLUIkbMLsA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD7gJGribONF3UgORx1AO+FeWvya6MeAtX8F5otk4wi5AIgHemDgC8sM0IiaJiTIIpZfAgM3SrVN4/ehjuzxW6PyWs="}]},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"randymized","email":"8b629a9884@snkmail.com"},"maintainers":[{"name":"randymized","email":"8b629a9884@snkmail.com"}],"directories":{}},"0.5.2":{"name":"www-authenticate","description":"Provides the functionality needed for a client to use HTTP Basic or Digest authentication.  Also provides primitives for parsing WWW-Authenticate and Authentication_Info headers.","version":"0.5.2","homepage":"https://github.com/randymized/www-authenticate","author":{"name":"Randy McLaughlin","email":"ot40ddj02@sneakemail.com"},"repository":{"type":"git","url":"git://github.com/randymized/www-authenticate.git"},"bugs":{"url":"https://github.com/randymized/www-authenticate/issues"},"licenses":[{"type":"MIT","url":"https://github.com/randymized/www-authenticate/blob/master/LICENSE-MIT"}],"main":"./index.js","engines":{"node":">= 0.8.0"},"scripts":{"test":"grunt simplemocha"},"devDependencies":{"mocha":"~1.9.0","should":"~1.2.2","grunt-contrib-jshint":"~0.4.0","grunt-simple-mocha":"git://github.com/yaymukund/grunt-simple-mocha.git","grunt-contrib-watch":"~0.3.1","grunt":"~0.4.1"},"keywords":["www-authenticate","HTTP","digest","authentication"],"readme":"# www-authenticate [![Build Status](https://secure.travis-ci.org/randymized/www-authenticate.png?branch=master)](http://travis-ci.org/randymized/www-authenticate)\n\n## Documentation\nProvides the functionality needed for a client to use HTTP Basic or Digest authentication.  Also provides primitives for parsing WWW-Authenticate and Authentication_Info headers.\n\nParses the content of a WWW-Authenticate header sent by a server. Interpret the authentication challenge posed. Then generate the credentials for Authorization headers for subsequent requests from the server.\n\n- Supports Basic and Digest authentication schemes.\n- Supports 'auth' quality of protection (qop) and challenges that do not include qop.\n- Supports MD5 and MD5-sess algorithms.\n- Assumes Node.js, but otherwise makes no assumtion about framework.\n\n## Limitations\n- Included tests only test Digest scheme against the rfc2617 example.\n- Most of the permutations of qop and algorithm have not been tested.\n- Little real-world testing.  That's where you can help!  Report any failures or submit a patch that resolves an authentication failure.\n- Will not parse WWW-Authenticate headers that contain more than one challenge.  Please send an example of one if you find one in the field or modify the parser to parse it.\n- Does not support auth-int qop, but will use auth qop if server allows either.  Support could surely be added in the future.\n- Response to challenges without qop have not been tested.\n\n## Getting Started\nInstall the module with: `npm install www-authenticate`\nSee examples below.\n\n## Examples\nUse the high level interface:\n```javascript\nvar www_authenticate = require('www-authenticate');\nvar authenticator= www_authenticate.authenticator(username,password);\n\n// Whenever you receive a response, send it to the authenticator.\n// The authenticator will parse and record any challenge it contains.\nauthenticator.get_challenge(response);\n\n//... now, whenever you make a request the authenticator will add an\n// authorization header if a challenge has been received...\n var options= {\n   method: \"GET\",\n   path: \"/dir/index.html\"\n }\n authenticator.authenticate_request_options(options);\n if (authenticator.err) throw err;  // or do something similarly drastic\n http.request(options);\n```\n---\nUse the low level interface:\n```javascript\nvar www_authenticate = require('www-authenticate');\nvar on_www_authenticate= www_authenticate(username,password);\n\n// now wait for HTTP/1.1 401 Unauthorized and then parse the WWW_Authenticate header\nvar authenticator= on_www_authenticate(response.headers['www-authenticate']);\nif (authenticator.err) throw err; // or do something similarly drastic\n\n//... now, whenever you make a request, add an Authorization header:\nresponse.setHeader('authorization', authenticator.authorize('GET',url));\n```\n---\nParse www-authenticate or authentication-info headers:\n```javascript\nvar parsers = require('www-authenticate').parsers;\nvar parsed= new parsers.WWW_Authenticate(request.headers['www-authenticate']);\nconsole.log(parsed.scheme);\nconsole.log(parsed.parms.nonce);\n\nvar parsed= new parsers.Authentication_Info(request.headers['authentication-info']);\nconsole.log(parsed.parms.nonce);\n```\n\n## Contributing\nIn lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using [Grunt](http://gruntjs.com/).\n\n## Release History\nv0.5.0: The higher-level interface is now exported directly by the module\nv0.4.0: Provides a higher-level interface\nv0.3.0: If password is null, it, and preceding ':' will not be included in hash\n\n## License\nCopyright (c) 2013 Randy McLaughlin\nLicensed under the MIT license.\n","readmeFilename":"README.md","_id":"www-authenticate@0.5.2","dist":{"shasum":"fc4c0b5c88151e4311882edbfc5f705b30713250","tarball":"https://registry.npmjs.org/www-authenticate/-/www-authenticate-0.5.2.tgz","integrity":"sha512-Ld5VFuZN7fx50ic26F6Y6uc/OYIAxsBT3OVf4leVS9VKgE4zbyuzXxXr+YZo8EsTdfJcUE4hwCJncC2goiD+TA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDV0zeYDfheh7+HLDZJD09SJTgiAGVoTj2MbiahfiZZIQIhAN9W9sNjdLTpjMzSvwDh+U84SDVUC+KrphBjI6wdXHVu"}]},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"randymized","email":"8b629a9884@snkmail.com"},"maintainers":[{"name":"randymized","email":"8b629a9884@snkmail.com"}],"directories":{}},"0.6.0":{"name":"www-authenticate","description":"Provides the functionality needed for a client to use HTTP Basic or Digest authentication.  Also provides primitives for parsing WWW-Authenticate and Authentication_Info headers.","version":"0.6.0","homepage":"https://github.com/randymized/www-authenticate","author":{"name":"Randy McLaughlin","email":"ot40ddj02@sneakemail.com"},"repository":{"type":"git","url":"git://github.com/randymized/www-authenticate.git"},"bugs":{"url":"https://github.com/randymized/www-authenticate/issues"},"licenses":[{"type":"MIT","url":"https://github.com/randymized/www-authenticate/blob/master/LICENSE-MIT"}],"main":"./index.js","engines":{"node":">= 0.8.0"},"scripts":{"test":"grunt simplemocha"},"devDependencies":{"mocha":"~1.9.0","should":"~1.2.2","grunt-contrib-jshint":"~0.4.0","grunt-simple-mocha":"git://github.com/yaymukund/grunt-simple-mocha.git","grunt-contrib-watch":"~0.3.1","grunt":"~0.4.1"},"keywords":["www-authenticate","HTTP","digest","authentication"],"readme":"# www-authenticate [![Build Status](https://secure.travis-ci.org/randymized/www-authenticate.png?branch=master)](http://travis-ci.org/randymized/www-authenticate)\n\n## Documentation\nProvides the functionality needed for a client to use HTTP Basic or Digest authentication.  Also provides primitives for parsing WWW-Authenticate and Authentication_Info headers.\n\nParses the content of a WWW-Authenticate header sent by a server. Interpret the authentication challenge posed. Then generate the credentials for Authorization headers for subsequent requests from the server.\n\n- Supports Basic and Digest authentication schemes.\n- Supports 'auth' quality of protection (qop) and challenges that do not include qop.\n- Supports MD5 and MD5-sess algorithms.\n- Assumes Node.js, but otherwise makes no assumtion about framework.\n\n\n## Limitations\n- Included tests only test Digest scheme against the rfc2617 example.\n- Most of the permutations of qop and algorithm have not been tested.\n- Little real-world testing.  That's where you can help!  Report any failures or submit a patch that resolves an authentication failure.\n- Will not parse WWW-Authenticate headers that contain more than one challenge.  Please send an example of one if you find one in the field or modify the parser to parse it.\n- Does not support auth-int qop, but will use auth qop if server allows either.  Support could surely be added in the future.\n- Response to challenges without qop have not been tested.\n\n## Getting Started\nInstall the module with: `npm install www-authenticate`\nSee examples below.\n\n## Examples\nUse the high level interface:\n```javascript\nvar www_authenticate = require('www-authenticate');\nvar authenticator= www_authenticate.authenticator(username,password);\n\n// Whenever you receive a response, send it to the authenticator.\n// The authenticator will parse and record any challenge it contains.\nauthenticator.get_challenge(response);\n\n//... now, whenever you make a request the authenticator will add an\n// authorization header if a challenge has been received...\n var options= {\n   method: \"GET\",\n   path: \"/dir/index.html\"\n }\n authenticator.authenticate_request_options(options);\n if (authenticator.err) throw err;  // or do something similarly drastic\n http.request(options);\n```\n---\nUse the low level interface:\n```javascript\nvar www_authenticate = require('www-authenticate');\nvar on_www_authenticate= www_authenticate(username,password);\n\n// now wait for HTTP/1.1 401 Unauthorized and then parse the WWW_Authenticate header\nvar authenticator= on_www_authenticate(response.headers['www-authenticate']);\nif (authenticator.err) throw err; // or do something similarly drastic\n\n//... now, whenever you make a request, add an Authorization header:\nresponse.setHeader('authorization', authenticator.authorize('GET',url));\n```\n---\nParse www-authenticate or authentication-info headers:\n```javascript\nvar parsers = require('www-authenticate').parsers;\nvar parsed= new parsers.WWW_Authenticate(request.headers['www-authenticate']);\nconsole.log(parsed.scheme);\nconsole.log(parsed.parms.nonce);\n\nvar parsed= new parsers.Authentication_Info(request.headers['authentication-info']);\nconsole.log(parsed.parms.nonce);\n```\n\n### User credentials:\n\nThis module exports a `user_credentials` function.  When called, it returns a `user_credentials` object that uses the username and password to generate components of an Authentication header without exposing the password.  A `user_credentials` object may be used in place of the `username` and `password` arguments.\n\nWithout user credentials:\n```javascript\nvar www_authenticate = require('www-authenticate');\nvar authenticator= www_authenticate.authenticator(username,password);\n\nWith user credentials:\n```javascript\nvar www_authenticate = require('www-authenticate');\nvar my_credentials= www_authenticate.user_credentials(\"Me\",\"My Password\");\nvar authenticator= www_authenticate.authenticator(my_credentials);\n```\n\nIn the above example, `my_credentials` might actually be generated in a separate module and passed around instead of the plain text username and password, making accidental pasword disclosure less likely.\n\n### Options:\n\nIn the above examples, an option object may be passed in addition to the username and password (or user credentials). The following options are supported:\n- cnonce: provides a string to be used as the cnonce in digest authentication Authorization headers.  If this option is not provided, a random cnonce will be generated.\n- sendImmediately: (high level interface only).  If this option tests true, an Authorization  header will always be produced, even if a WWW-Authenticate header has not been received.  Until a WWW-Authenticate header is received, a Basic Authorization header will be generated.  Once a WWW-Authenticate header is received, it's challenge will define the content of the Authorization header.\n\n### WWW-Authenticate header parser:\nThis module exports the parser that is used internally to parse a WWW-Authenticate header.  Please see the tests for usage examples.\n\n\n## Contributing\nIn lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using [Grunt](http://gruntjs.com/).\n\n## Release History\n- v0.5.0: The higher-level interface is now exported directly by the module\n- v0.4.0: Provides a higher-level interface\n- v0.3.0: If password is null, it, and preceding ':' will not be included in hash\n\n## License\nCopyright (c) 2013 Randy McLaughlin\nLicensed under the MIT license.\n","readmeFilename":"README.md","_id":"www-authenticate@0.6.0","dist":{"shasum":"8e49c76df0911355cb233407b0697884145d9d78","tarball":"https://registry.npmjs.org/www-authenticate/-/www-authenticate-0.6.0.tgz","integrity":"sha512-Z9wJfEhck2P5RAz3nuuXjLGjOSVJtAoCfLVCAq4LqIiV55a2aUF8NxQkebH47sKqWdbb/JN3qdN75AZaZUSo8w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCID42SLHifvwHlCvRNBBh+lQF9Mn3gjBHS6DuCtzhkwl3AiEA8yMYc7qjHwoRF760zVTXN9AGggfxkx2mY+Hnb+R5Dl4="}]},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"randymized","email":"8b629a9884@snkmail.com"},"maintainers":[{"name":"randymized","email":"8b629a9884@snkmail.com"}],"directories":{}},"0.6.1":{"name":"www-authenticate","description":"Provides the functionality needed for a client to use HTTP Basic or Digest authentication.  Also provides primitives for parsing WWW-Authenticate and Authentication_Info headers.","version":"0.6.1","homepage":"https://github.com/randymized/www-authenticate","author":{"name":"Randy McLaughlin","email":"ot40ddj02@sneakemail.com"},"repository":{"type":"git","url":"git://github.com/randymized/www-authenticate.git"},"bugs":{"url":"https://github.com/randymized/www-authenticate/issues"},"licenses":[{"type":"MIT","url":"https://github.com/randymized/www-authenticate/blob/master/LICENSE-MIT"}],"main":"./index.js","engines":{"node":">= 0.8.0"},"scripts":{"test":"grunt simplemocha"},"devDependencies":{"mocha":"~1.9.0","should":"~1.2.2","grunt-contrib-jshint":"~0.4.0","grunt-simple-mocha":"git://github.com/yaymukund/grunt-simple-mocha.git","grunt-contrib-watch":"~0.3.1","grunt":"~0.4.1"},"keywords":["www-authenticate","HTTP","digest","authentication"],"readme":"# www-authenticate [![Build Status](https://secure.travis-ci.org/randymized/www-authenticate.png?branch=master)](http://travis-ci.org/randymized/www-authenticate)\n\n## Documentation\nProvides the functionality needed for a client to use HTTP Basic or Digest authentication.  Also provides primitives for parsing WWW-Authenticate and Authentication_Info headers.\n\nParses the content of a WWW-Authenticate header sent by a server. Interpret the authentication challenge posed. Then generate the credentials for Authorization headers for subsequent requests from the server.\n\n- Supports Basic and Digest authentication schemes.\n- Supports 'auth' quality of protection (qop) and challenges that do not include qop.\n- Supports MD5 and MD5-sess algorithms.\n- Assumes Node.js, but otherwise makes no assumtion about framework.\n\n\n## Limitations\n- Included tests only test Digest scheme against the rfc2617 example.\n- Most of the permutations of qop and algorithm have not been tested.\n- Little real-world testing.  That's where you can help!  Report any failures or submit a patch that resolves an authentication failure.\n- Will not parse WWW-Authenticate headers that contain more than one challenge.  Please send an example of one if you find one in the field or modify the parser to parse it.\n- Does not support auth-int qop, but will use auth qop if server allows either.  Support could surely be added in the future.\n- Response to challenges without qop have not been tested.\n\n## Getting Started\nInstall the module with: `npm install www-authenticate`\nSee examples below.\n\n## Examples\nUse the high level interface:\n```javascript\nvar www_authenticate = require('www-authenticate');\nvar authenticator= www_authenticate.authenticator(username,password);\n\n// Whenever you receive a response, send it to the authenticator.\n// The authenticator will parse and record any challenge it contains.\nauthenticator.get_challenge(response);\n\n//... now, whenever you make a request the authenticator will add an\n// authorization header if a challenge has been received...\n var options= {\n   method: \"GET\",\n   path: \"/dir/index.html\"\n }\n authenticator.authenticate_request_options(options);\n if (authenticator.err) throw err;  // or do something similarly drastic\n http.request(options);\n```\n---\nUse the low level interface:\n```javascript\nvar www_authenticate = require('www-authenticate');\nvar on_www_authenticate= www_authenticate(username,password);\n\n// now wait for HTTP/1.1 401 Unauthorized and then parse the WWW_Authenticate header\nvar authenticator= on_www_authenticate(response.headers['www-authenticate']);\nif (authenticator.err) throw err; // or do something similarly drastic\n\n//... now, whenever you make a request, add an Authorization header:\nresponse.setHeader('authorization', authenticator.authorize('GET',url));\n```\n---\nParse www-authenticate or authentication-info headers:\n```javascript\nvar parsers = require('www-authenticate').parsers;\nvar parsed= new parsers.WWW_Authenticate(request.headers['www-authenticate']);\nconsole.log(parsed.scheme);\nconsole.log(parsed.parms.nonce);\n\nvar parsed= new parsers.Authentication_Info(request.headers['authentication-info']);\nconsole.log(parsed.parms.nonce);\n```\n\n### User credentials:\n\nThis module exports a `user_credentials` function.  When called, it returns a `user_credentials` object that uses the username and password to generate components of an Authentication header without exposing the password.  A `user_credentials` object may be used in place of the `username` and `password` arguments.\n\nWithout user credentials:\n```javascript\nvar www_authenticate = require('www-authenticate');\nvar authenticator= www_authenticate.authenticator(username,password);\n\nWith user credentials:\n```javascript\nvar www_authenticate = require('www-authenticate');\nvar my_credentials= www_authenticate.user_credentials(\"Me\",\"My Password\");\nvar authenticator= www_authenticate.authenticator(my_credentials);\n```\n\nIn the above example, `my_credentials` might actually be generated in a separate module and passed around instead of the plain text username and password, making accidental pasword disclosure less likely.\n\n### Options:\n\nIn the above examples, an option object may be passed in addition to the username and password (or user credentials). The following options are supported:\n- cnonce: provides a string to be used as the cnonce in digest authentication Authorization headers.  If this option is not provided, a random cnonce will be generated.\n- sendImmediately: (high level interface only).  If this option tests true, an Authorization  header will always be produced, even if a WWW-Authenticate header has not been received.  Until a WWW-Authenticate header is received, a Basic Authorization header will be generated.  Once a WWW-Authenticate header is received, it's challenge will define the content of the Authorization header.\n\n### WWW-Authenticate header parser:\nThis module exports the parser that is used internally to parse a WWW-Authenticate header.  Please see the tests for usage examples.\n\n\n## Contributing\nIn lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using [Grunt](http://gruntjs.com/).\n\n## Release History\n- v0.6.0: Add sendImmediately option.  Inspired by `request` module.\n- v0.5.0: The higher-level interface is now exported directly by the module\n- v0.4.0: Provides a higher-level interface\n- v0.3.0: If password is null, it, and preceding ':' will not be included in hash\n\n## License\nCopyright (c) 2013 Randy McLaughlin\nLicensed under the MIT license.\n","readmeFilename":"README.md","_id":"www-authenticate@0.6.1","dist":{"shasum":"d8c542f84abd6db10292d3116d6ecf569dadfcdc","tarball":"https://registry.npmjs.org/www-authenticate/-/www-authenticate-0.6.1.tgz","integrity":"sha512-ZTjNdntTj5vG4Y4v+wSjX2vnRIPv1MllVcd0jVetkuZZ0ZsDL6tN9koAk/OwaGAuY4FWBWXIZmlMik4HFavjUw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFzzthl7CctFo3C8oX81LZKmjvU8Yi76Xr0xYJBt7z4CAiB8WnDvRmb7Q3dEUmwmR0gGBfE3g2PEC+tDbOqPBx1cCQ=="}]},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"randymized","email":"8b629a9884@snkmail.com"},"maintainers":[{"name":"randymized","email":"8b629a9884@snkmail.com"}],"directories":{}},"0.6.2":{"name":"www-authenticate","description":"Provides the functionality needed for a client to use HTTP Basic or Digest authentication.  Also provides primitives for parsing WWW-Authenticate and Authentication_Info headers.","version":"0.6.2","homepage":"https://github.com/randymized/www-authenticate","author":{"name":"Randy McLaughlin","email":"ot40ddj02@sneakemail.com"},"repository":{"type":"git","url":"git://github.com/randymized/www-authenticate.git"},"bugs":{"url":"https://github.com/randymized/www-authenticate/issues"},"licenses":[{"type":"MIT","url":"https://github.com/randymized/www-authenticate/blob/master/LICENSE-MIT"}],"main":"./index.js","engines":{"node":">= 0.8.0"},"scripts":{"test":"grunt simplemocha"},"devDependencies":{"mocha":"~1.9.0","should":"~1.2.2","grunt-contrib-jshint":"~0.4.0","grunt-simple-mocha":"git://github.com/yaymukund/grunt-simple-mocha.git","grunt-contrib-watch":"~0.3.1","grunt":"~0.4.1"},"keywords":["www-authenticate","HTTP","digest","authentication"],"readme":"# www-authenticate [![Build Status](https://secure.travis-ci.org/randymized/www-authenticate.png?branch=master)](http://travis-ci.org/randymized/www-authenticate)\n\n## Documentation\nProvides the functionality needed for a client to use HTTP Basic or Digest authentication.  Also provides primitives for parsing WWW-Authenticate and Authentication_Info headers.\n\nParses the content of a WWW-Authenticate header sent by a server. Interpret the authentication challenge posed. Then generate the credentials for Authorization headers for subsequent requests from the server.\n\n- Supports Basic and Digest authentication schemes.\n- Supports 'auth' quality of protection (qop) and challenges that do not include qop.\n- Supports MD5 and MD5-sess algorithms.\n- Assumes Node.js, but otherwise makes no assumtion about framework.\n\n\n## Limitations\n- Included tests only test Digest scheme against the rfc2617 example.\n- Most of the permutations of qop and algorithm have not been tested.\n- Little real-world testing.  That's where you can help!  Report any failures or submit a patch that resolves an authentication failure.\n- Will not parse WWW-Authenticate headers that contain more than one challenge.  Please send an example of one if you find one in the field or modify the parser to parse it.\n- Does not support auth-int qop, but will use auth qop if server allows either.  Support could surely be added in the future.\n- Response to challenges without qop have not been tested.\n\n## Getting Started\nInstall the module with: `npm install www-authenticate`\nSee examples below.\n\n## Examples\nUse the high level interface:\n```javascript\nvar www_authenticate = require('www-authenticate');\nvar authenticator= www_authenticate.authenticator(username,password);\n\n// Whenever you receive a response, send it to the authenticator.\n// The authenticator will parse and record any challenge it contains.\nauthenticator.get_challenge(response);\n\n//... now, whenever you make a request the authenticator will add an\n// authorization header if a challenge has been received...\n var options= {\n   method: \"GET\",\n   path: \"/dir/index.html\"\n }\n authenticator.authenticate_request_options(options);\n if (authenticator.err) throw err;  // or do something similarly drastic\n http.request(options);\n```\n---\nUse the low level interface:\n```javascript\nvar www_authenticate = require('www-authenticate');\nvar on_www_authenticate= www_authenticate(username,password);\n\n// now wait for HTTP/1.1 401 Unauthorized and then parse the WWW_Authenticate header\nvar authenticator= on_www_authenticate(response.headers['www-authenticate']);\nif (authenticator.err) throw err; // or do something similarly drastic\n\n//... now, whenever you make a request, add an Authorization header:\nresponse.setHeader('authorization', authenticator.authorize('GET',url));\n```\n---\nParse www-authenticate or authentication-info headers:\n```javascript\nvar parsers = require('www-authenticate').parsers;\nvar parsed= new parsers.WWW_Authenticate(request.headers['www-authenticate']);\nconsole.log(parsed.scheme);\nconsole.log(parsed.parms.nonce);\n\nvar parsed= new parsers.Authentication_Info(request.headers['authentication-info']);\nconsole.log(parsed.parms.nonce);\n```\n\n### User credentials:\n\nThis module exports a `user_credentials` function.  When called, it returns a `user_credentials` object that uses the username and password to generate components of an Authentication header without exposing the password.  A `user_credentials` object may be used in place of the `username` and `password` arguments.\n\nWithout user credentials:\n```javascript\nvar www_authenticate = require('www-authenticate');\nvar authenticator= www_authenticate.authenticator(username,password);\n```\n\nWith user credentials:\n```javascript\nvar www_authenticate = require('www-authenticate');\nvar my_credentials= www_authenticate.user_credentials(\"Me\",\"My Password\");\nvar authenticator= www_authenticate.authenticator(my_credentials);\n```\n\nIn the above example, `my_credentials` might actually be generated in a separate module and passed around instead of the plain text username and password, making accidental pasword disclosure less likely.\n\n### Options:\n\nIn the above examples, an option object may be passed in addition to the username and password (or user credentials). The following options are supported:\n- cnonce: provides a string to be used as the cnonce in digest authentication Authorization headers.  If this option is not provided, a random cnonce will be generated.\n- sendImmediately: (high level interface only).  If this option tests true, an Authorization  header will always be produced, even if a WWW-Authenticate header has not been received.  Until a WWW-Authenticate header is received, a Basic Authorization header will be generated.  Once a WWW-Authenticate header is received, it's challenge will define the content of the Authorization header.\n\n### WWW-Authenticate header parser:\nThis module exports the parser that is used internally to parse a WWW-Authenticate header.  Please see the tests for usage examples.\n\n\n## Contributing\nIn lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using [Grunt](http://gruntjs.com/).\n\n## Release History\n- v0.6.0: Add sendImmediately option.  Inspired by `request` module.\n- v0.5.0: The higher-level interface is now exported directly by the module\n- v0.4.0: Provides a higher-level interface\n- v0.3.0: If password is null, it, and preceding ':' will not be included in hash\n\n## License\nCopyright (c) 2013 Randy McLaughlin\nLicensed under the MIT license.\n","readmeFilename":"README.md","_id":"www-authenticate@0.6.2","dist":{"shasum":"b7a7d487bdc5a8b423a4d8fd5f9c661adde50ebf","tarball":"https://registry.npmjs.org/www-authenticate/-/www-authenticate-0.6.2.tgz","integrity":"sha512-jqeVsO3HKRXuwsE9UKk+UBapP13tzDKsRkFckBrXjSJIubAi1yugBbcNTjeNe5hZuG1QW8zb6jzbDa9XGOnFTw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDP4yb2O/o8gCjv5gQIBVPT9FqajkKL5eKqXGaSpR4AbwIhAJW3upVYHNxPrh2DD5LmQ2zV6h3N5DPSHGVEDelQbynR"}]},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"randymized","email":"8b629a9884@snkmail.com"},"maintainers":[{"name":"randymized","email":"8b629a9884@snkmail.com"}],"directories":{}},"0.6.3":{"name":"www-authenticate","description":"Provides the functionality needed for a client to use HTTP Basic or Digest authentication.  Also provides primitives for parsing WWW-Authenticate and Authentication_Info headers.","version":"0.6.3","homepage":"https://github.com/randymized/www-authenticate","author":{"name":"Randy McLaughlin","email":"ot40ddj02@sneakemail.com"},"repository":{"type":"git","url":"git://github.com/randymized/www-authenticate.git"},"bugs":{"url":"https://github.com/randymized/www-authenticate/issues"},"licenses":[{"type":"MIT","url":"https://github.com/randymized/www-authenticate/blob/master/LICENSE-MIT"}],"main":"./index.js","engines":{"node":">= 0.8.0"},"scripts":{"test":"grunt simplemocha"},"devDependencies":{"mocha":"~1.9.0","should":"~1.2.2","grunt-contrib-jshint":"~0.4.0","grunt-simple-mocha":"git://github.com/yaymukund/grunt-simple-mocha.git","grunt-contrib-watch":"~0.3.1","grunt":"~0.4.1"},"keywords":["www-authenticate","HTTP","digest","authentication"],"gitHead":"13df39383408579551b350aa9b4d286ec88d3512","_id":"www-authenticate@0.6.3","_nodeVersion":"18.12.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-8VkdLBJiBh5aXlJvcVaPykwSI//OA+Sxw7g84vIyCqoqlXtLupGNhyXxbgVuZ7g5ZS+lCJ4bTtcw/gJciqEuAg==","shasum":"15af2d8b230259c6c89e583078a58ed5f4ea34d5","tarball":"https://registry.npmjs.org/www-authenticate/-/www-authenticate-0.6.3.tgz","fileCount":11,"unpackedSize":20694,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCPzwPS79M6MVn6AzhB3DBvNGhuwSNLl1zJMp5dLegwIwIgDlFG+zX4hAS2CAlBVoM+W5gZoUcPY0FvhZM3X+P0t/0="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj5lWSACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmplChAAhzamxYcCnlRKLgdARUVoPWRHVIMrcjEreGDGFodE1tIjV2An\r\n6RGfwlT9R6Fdrmz9rfkqIxJsWBGKd1dSNFj210Nemc+KJhXzKDIUXePbcKXb\r\nfke/OF87q3c1F6qfW/ioBu/9o0vfQdrDLXspwy0N3IYwtUJyexWFViqN+gEd\r\nam4JyVH/sDaqXO5hLhEc9n2yrbNhNCE+4Te/iVQRLUQbUJOTFrxc7HF8/tkv\r\nmocIXTZuJm8V2ibTQ9p94XK9AydgwTGB8K7HGPTzh1jk3dP1gpTM17WMkdY7\r\nbBd/rlBPRPb8UxLVSePITr01zKiwsi6YKUbm9dW8osamiRhFnL6upYBHKLcD\r\n/x9JZcG3Y0B6xH0YtNeLQN3FOBxoHwN9494Pn7W01kv/BS8ouW/UE7j4iaLG\r\n+rmwwHKDdIK6ZY2hQvXUFTIoyC+t1GMX4kYczuCJwkbnD2M9M7jRxqfYuWQp\r\nBwAAxw1ikxyhPLe+pENTZaCuLbTdgpxv3XL0xUA52Z4DRpMu66HI5vxxuPnp\r\nvOmS4Nc89p0OJcCdxGzn/I4zRNE/+XtjMysEkcnQoGKyMiskUUxYbHI6Z+V4\r\nMiLnSm6kCvogcyr9mN+zTV+NtpCckiWT3E8rQM19neilOQhvxPcmKWBI7TK6\r\nrFPxI+J4E0Dr3QyI0/dIJpfN0rCg9eXc7XI=\r\n=GDTu\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"randymized","email":"randym-npm@usa.net"},"directories":{},"maintainers":[{"name":"randymized","email":"randym-npm@usa.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/www-authenticate_0.6.3_1676039570304_0.7140039217688732"},"_hasShrinkwrap":false}},"readme":"# www-authenticate [![Build Status](https://secure.travis-ci.org/randymized/www-authenticate.png?branch=master)](http://travis-ci.org/randymized/www-authenticate)\n\n[![Not Maintained](https://img.shields.io/badge/Maintenance%20Level-Abandoned-orange.svg)](https://gist.github.com/cheerfulstoic/d107229326a01ff0f333a1d3476e068d)\n\n\nwww-authenticate is **no longer being actively developed** and has been archived. \nYou are still welcome to use it but you may want to check for any forks that are more actively maintained.\nIf it is of value to you, you are welcome to fork it or start a new project and incorporate its code into your project.\n\n## Documentation\nProvides the functionality needed for a client to use HTTP Basic or Digest authentication.  Also provides primitives for parsing WWW-Authenticate and Authentication_Info headers.\n\nParses the content of a WWW-Authenticate header sent by a server. Interpret the authentication challenge posed. Then generate the credentials for Authorization headers for subsequent requests from the server.\n\n- Supports Basic and Digest authentication schemes.\n- Supports 'auth' quality of protection (qop) and challenges that do not include qop.\n- Supports MD5 and MD5-sess algorithms.\n- Assumes Node.js, but otherwise makes no assumtion about framework.\n\n\n## Limitations\n- Included tests only test Digest scheme against the rfc2617 example.\n- Most of the permutations of qop and algorithm have not been tested.\n- Little real-world testing.  That's where you can help!  Report any failures or submit a patch that resolves an authentication failure.\n- Will not parse WWW-Authenticate headers that contain more than one challenge.  Please send an example of one if you find one in the field or modify the parser to parse it.\n- Does not support auth-int qop, but will use auth qop if server allows either.  Support could surely be added in the future.\n- Response to challenges without qop have not been tested.\n\n## Getting Started\nInstall the module with: `npm install www-authenticate`\nSee examples below.\n\n## Examples\nUse the high level interface:\n```javascript\nvar www_authenticate = require('www-authenticate');\nvar authenticator= www_authenticate.authenticator(username,password);\n\n// Whenever you receive a response, send it to the authenticator.\n// The authenticator will parse and record any challenge it contains.\nauthenticator.get_challenge(response);\n\n//... now, whenever you make a request the authenticator will add an\n// authorization header if a challenge has been received...\n var options= {\n   method: \"GET\",\n   path: \"/dir/index.html\"\n }\n authenticator.authenticate_request_options(options);\n if (authenticator.err) throw err;  // or do something similarly drastic\n http.request(options);\n```\n---\nUse the low level interface:\n```javascript\nvar www_authenticate = require('www-authenticate');\nvar on_www_authenticate= www_authenticate(username,password);\n\n// now wait for HTTP/1.1 401 Unauthorized and then parse the WWW_Authenticate header\nvar authenticator= on_www_authenticate(response.headers['www-authenticate']);\nif (authenticator.err) throw err; // or do something similarly drastic\n\n//... now, whenever you make a request, add an Authorization header:\nresponse.setHeader('authorization', authenticator.authorize('GET',url));\n```\n---\nParse www-authenticate or authentication-info headers:\n```javascript\nvar parsers = require('www-authenticate').parsers;\nvar parsed= new parsers.WWW_Authenticate(request.headers['www-authenticate']);\nconsole.log(parsed.scheme);\nconsole.log(parsed.parms.nonce);\n\nvar parsed= new parsers.Authentication_Info(request.headers['authentication-info']);\nconsole.log(parsed.parms.nonce);\n```\n\n### User credentials:\n\nThis module exports a `user_credentials` function.  When called, it returns a `user_credentials` object that uses the username and password to generate components of an Authentication header without exposing the password.  A `user_credentials` object may be used in place of the `username` and `password` arguments.\n\nWithout user credentials:\n```javascript\nvar www_authenticate = require('www-authenticate');\nvar authenticator= www_authenticate.authenticator(username,password);\n```\n\nWith user credentials:\n```javascript\nvar www_authenticate = require('www-authenticate');\nvar my_credentials= www_authenticate.user_credentials(\"Me\",\"My Password\");\nvar authenticator= www_authenticate.authenticator(my_credentials);\n```\n\nIn the above example, `my_credentials` might actually be generated in a separate module and passed around instead of the plain text username and password, making accidental pasword disclosure less likely.\n\n### Options:\n\nIn the above examples, an option object may be passed in addition to the username and password (or user credentials). The following options are supported:\n- cnonce: provides a string to be used as the cnonce in digest authentication Authorization headers.  If this option is not provided, a random cnonce will be generated.\n- sendImmediately: (high level interface only).  If this option tests true, an Authorization  header will always be produced, even if a WWW-Authenticate header has not been received.  Until a WWW-Authenticate header is received, a Basic Authorization header will be generated.  Once a WWW-Authenticate header is received, it's challenge will define the content of the Authorization header.\n\n### WWW-Authenticate header parser:\nThis module exports the parser that is used internally to parse a WWW-Authenticate header.  Please see the tests for usage examples.\n\n\n## Contributing\nIn lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using [Grunt](http://gruntjs.com/).\n\n## Release History\n- v0.6.0: Add sendImmediately option.  Inspired by `request` module.\n- v0.5.0: The higher-level interface is now exported directly by the module\n- v0.4.0: Provides a higher-level interface\n- v0.3.0: If password is null, it, and preceding ':' will not be included in hash\n\n## License\nCopyright (c) 2013 Randy McLaughlin\nLicensed under the MIT license.\n","maintainers":[{"email":"randym-npm@usa.net","name":"randymized"},{"email":"michael.kriese@visualon.de","name":"viceice"}],"time":{"modified":"2023-02-10T18:19:12.287Z","created":"2013-08-02T17:38:26.056Z","0.1.0":"2013-08-02T17:38:27.340Z","0.1.1":"2013-08-03T23:19:01.769Z","0.2.0":"2013-08-04T02:52:57.306Z","0.3.0":"2013-08-05T03:10:17.397Z","0.4.0":"2013-08-14T16:34:06.272Z","0.5.0":"2013-08-20T15:55:09.415Z","0.5.1":"2013-08-20T16:36:41.044Z","0.5.2":"2013-08-20T16:59:57.161Z","0.6.0":"2013-08-22T21:14:46.552Z","0.6.1":"2013-08-23T03:24:14.732Z","0.6.2":"2013-08-30T20:55:50.158Z","0.6.3":"2023-02-10T14:32:50.459Z"},"author":{"name":"Randy McLaughlin","email":"ot40ddj02@sneakemail.com"},"repository":{"type":"git","url":"git://github.com/randymized/www-authenticate.git"},"homepage":"https://github.com/randymized/www-authenticate","keywords":["www-authenticate","HTTP","digest","authentication"],"bugs":{"url":"https://github.com/randymized/www-authenticate/issues"},"readmeFilename":"README.md"}