{"_id":"oz","_rev":"305308","name":"oz","description":"Web Authorization Protocol","dist-tags":{"latest":"5.0.3"},"maintainers":[{"name":"hueniverse","email":"eran@hammer.io"}],"time":{"modified":"2021-06-03T19:29:47.000Z","created":"2012-07-27T05:38:02.361Z","5.0.3":"2018-11-03T07:28:15.004Z","5.0.2":"2017-11-03T23:54:58.751Z","5.0.1":"2017-10-27T22:53:57.330Z","5.0.0":"2017-10-27T09:35:37.343Z","4.0.5":"2016-12-01T05:49:21.959Z","4.0.4":"2016-09-04T06:38:22.541Z","4.0.3":"2016-07-28T22:44:55.830Z","4.0.2":"2016-05-25T18:52:39.504Z","4.0.1":"2016-04-29T22:40:21.932Z","4.0.0":"2016-02-01T07:52:49.600Z","3.0.0":"2016-01-19T01:07:43.692Z","2.0.0":"2015-11-06T04:03:46.056Z","1.0.2":"2015-09-22T17:44:27.127Z","1.0.1":"2015-09-19T21:02:56.160Z","1.0.0":"2015-09-19T20:23:21.784Z","0.6.0":"2015-06-14T03:02:58.711Z","0.5.0":"2015-06-13T20:01:52.261Z","0.4.2":"2014-07-17T16:15:00.416Z","0.4.1":"2014-03-22T22:57:20.822Z","0.4.0":"2014-01-19T08:31:40.293Z","0.3.3":"2013-07-17T07:12:06.232Z","0.3.2":"2013-07-13T21:15:47.955Z","0.3.1":"2013-05-26T17:30:01.002Z","0.3.0":"2013-05-26T16:21:58.773Z","0.2.0":"2013-05-26T07:31:26.518Z","0.1.2":"2013-03-09T04:54:31.291Z","0.1.1":"2013-02-17T08:36:30.411Z","0.1.0":"2013-02-08T23:33:53.681Z","0.0.19":"2013-02-07T23:03:27.172Z","0.0.18":"2013-01-14T15:57:05.420Z","0.0.16":"2013-01-13T08:14:03.071Z","0.0.15":"2013-01-12T22:10:10.309Z","0.0.14":"2013-01-03T02:30:00.469Z","0.0.13":"2012-12-06T08:37:36.314Z","0.0.12":"2012-11-30T01:36:11.587Z","0.0.11":"2012-11-24T20:16:51.320Z","0.0.10":"2012-11-15T22:02:33.725Z","0.0.8":"2012-11-13T21:09:45.162Z","0.0.7":"2012-11-13T19:46:04.760Z","0.0.6":"2012-11-12T08:43:08.769Z","0.0.5":"2012-11-12T08:40:41.505Z","0.0.4":"2012-11-05T22:29:21.208Z","0.0.3":"2012-11-05T07:34:20.121Z","0.0.2":"2012-11-04T19:34:10.151Z","0.0.1":"2012-10-24T07:07:18.744Z","0.0.0":"2012-07-27T05:38:02.361Z"},"users":{"fgribreau":true,"ruiquelhas":true,"stuligan":true,"mhaidarh":true},"repository":{"type":"git","url":"git://github.com/hueniverse/oz.git"},"versions":{"5.0.3":{"name":"oz","description":"Web Authorization Protocol","version":"5.0.3","repository":{"type":"git","url":"git://github.com/hueniverse/oz.git"},"main":"lib/index.js","keywords":["http","authorization","oz","hawk"],"dependencies":{"boom":"7.x.x","cryptiles":"4.x.x","hawk":"7.x.x","hoek":"6.x.x","iron":"5.x.x","joi":"14.x.x","wreck":"14.x.x"},"devDependencies":{"code":"5.x.x","lab":"17.x.x"},"scripts":{"test":"lab -a code -t 100 -L","test-cov-html":"lab -a code -r html -o coverage.html"},"license":"BSD-3-Clause","gitHead":"5797e5bd8b96d187c702643e9e8d862d146b9058","bugs":{"url":"https://github.com/hueniverse/oz/issues"},"homepage":"https://github.com/hueniverse/oz#readme","_id":"oz@5.0.3","_npmVersion":"6.4.1","_nodeVersion":"8.12.0","_npmUser":{"name":"hueniverse","email":"eran@hammer.io"},"dist":{"shasum":"70f2b25769abd25723a163f80215a698647caca1","size":13300,"noattachment":false,"key":"/oz/-/oz-5.0.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/oz/download/oz-5.0.3.tgz"},"maintainers":[{"name":"hueniverse","email":"eran@hammer.io"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oz_5.0.3_1541230094856_0.45409887607568855"},"_hasShrinkwrap":false,"publish_time":1541230095004,"_cnpm_publish_time":1541230095004,"deprecated":"This package has been deprecated"},"5.0.2":{"name":"oz","description":"Web Authorization Protocol","version":"5.0.2","repository":{"type":"git","url":"git://github.com/hueniverse/oz.git"},"main":"lib/index.js","keywords":["http","authorization","oz","hawk"],"engines":{"node":">=8.9.0"},"dependencies":{"boom":"7.x.x","cryptiles":"4.x.x","hawk":"7.x.x","hoek":"5.x.x","iron":"5.x.x","joi":"13.x.x","wreck":"14.x.x"},"devDependencies":{"code":"5.x.x","lab":"15.x.x"},"scripts":{"test":"lab -a code -t 100 -L","test-cov-html":"lab -a code -r html -o coverage.html"},"license":"BSD-3-Clause","gitHead":"4a9710f119b64f2aac4b3cb0941e3bfbce14c6bf","bugs":{"url":"https://github.com/hueniverse/oz/issues"},"homepage":"https://github.com/hueniverse/oz#readme","_id":"oz@5.0.2","_npmVersion":"5.5.1","_nodeVersion":"8.9.0","_npmUser":{"name":"hueniverse","email":"eran@hammer.io"},"dist":{"shasum":"12882b14044eb10b7c3308a15b42a5911a19c2ef","size":13270,"noattachment":false,"key":"/oz/-/oz-5.0.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/oz/download/oz-5.0.2.tgz"},"maintainers":[{"name":"hueniverse","email":"eran@hammer.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oz-5.0.2.tgz_1509753298542_0.4330262702424079"},"directories":{},"publish_time":1509753298751,"_hasShrinkwrap":false,"_cnpm_publish_time":1509753298751,"deprecated":"This package has been deprecated"},"5.0.1":{"name":"oz","description":"Web Authorization Protocol","version":"5.0.1","repository":{"type":"git","url":"git://github.com/hueniverse/oz.git"},"main":"lib/index.js","keywords":["http","authorization","oz","hawk"],"engines":{"node":">=8.8.0"},"dependencies":{"boom":"6.x.x","cryptiles":"4.x.x","hawk":"7.x.x","hoek":"5.x.x","iron":"5.x.x","joi":"13.x.x","wreck":"14.x.x"},"devDependencies":{"code":"5.x.x","lab":"15.x.x"},"scripts":{"test":"lab -a code -t 100 -L","test-cov-html":"lab -a code -r html -o coverage.html"},"license":"BSD-3-Clause","gitHead":"af635e05ea5f5b1279d1712ef794e5200c79b836","bugs":{"url":"https://github.com/hueniverse/oz/issues"},"homepage":"https://github.com/hueniverse/oz#readme","_id":"oz@5.0.1","_npmVersion":"5.5.1","_nodeVersion":"8.7.0","_npmUser":{"name":"hueniverse","email":"eran@hammer.io"},"dist":{"shasum":"c87ee83e7fb835458a9c23e096e2303a79903b06","size":13265,"noattachment":false,"key":"/oz/-/oz-5.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/oz/download/oz-5.0.1.tgz"},"maintainers":[{"name":"hueniverse","email":"eran@hammer.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oz-5.0.1.tgz_1509144837131_0.06194818625226617"},"directories":{},"publish_time":1509144837330,"_hasShrinkwrap":false,"_cnpm_publish_time":1509144837330,"deprecated":"This package has been deprecated"},"5.0.0":{"name":"oz","description":"Web Authorization Protocol","version":"5.0.0","repository":{"type":"git","url":"git://github.com/hueniverse/oz.git"},"main":"lib/index.js","keywords":["http","authorization","oz","hawk"],"engines":{"node":">=8.8.0"},"dependencies":{"boom":"6.x.x","cryptiles":"4.x.x","hawk":"7.x.x","hoek":"5.x.x","iron":"5.x.x","joi":"13.x.x","wreck":"14.x.x"},"devDependencies":{"code":"5.x.x","lab":"15.x.x"},"scripts":{"test":"lab -a code -t 100 -L","test-cov-html":"lab -a code -r html -o coverage.html"},"license":"BSD-3-Clause","gitHead":"acd814133dc47115f06f160ee83cac9c3dc72ebf","bugs":{"url":"https://github.com/hueniverse/oz/issues"},"homepage":"https://github.com/hueniverse/oz#readme","_id":"oz@5.0.0","_npmVersion":"5.5.1","_nodeVersion":"8.7.0","_npmUser":{"name":"hueniverse","email":"eran@hammer.io"},"dist":{"shasum":"3e2a65a6330308f86458dcc59ef23d0b0e11f492","size":13250,"noattachment":false,"key":"/oz/-/oz-5.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/oz/download/oz-5.0.0.tgz"},"maintainers":[{"name":"hueniverse","email":"eran@hammer.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oz-5.0.0.tgz_1509096937265_0.9157128972001374"},"directories":{},"publish_time":1509096937343,"_hasShrinkwrap":false,"_cnpm_publish_time":1509096937343,"deprecated":"This package has been deprecated"},"4.0.5":{"name":"oz","description":"Web Authorization Protocol","version":"4.0.5","repository":{"type":"git","url":"git://github.com/hueniverse/oz.git"},"main":"lib/index.js","keywords":["http","authorization","oz","hawk"],"engines":{"node":">=4.x.x"},"dependencies":{"boom":"4.x.x","cryptiles":"3.x.x","hawk":"6.x.x","hoek":"4.x.x","iron":"4.x.x","joi":"10.x.x","wreck":"10.x.x"},"devDependencies":{"code":"4.x.x","lab":"11.x.x"},"scripts":{"test":"lab -a code -t 100 -L","test-cov-html":"lab -a code -r html -o coverage.html"},"license":"BSD-3-Clause","gitHead":"f7e0f92c49b1c5fd956de0e46063890a56b57d73","bugs":{"url":"https://github.com/hueniverse/oz/issues"},"homepage":"https://github.com/hueniverse/oz#readme","_id":"oz@4.0.5","_shasum":"071a928b61cf552b28ee1c38cf593b4f1d654597","_from":".","_npmVersion":"4.0.3","_nodeVersion":"7.2.0","_npmUser":{"name":"hueniverse","email":"eran@hammer.io"},"dist":{"shasum":"071a928b61cf552b28ee1c38cf593b4f1d654597","size":12122,"noattachment":false,"key":"/oz/-/oz-4.0.5.tgz","tarball":"http://registry.cnpm.dingdandao.com/oz/download/oz-4.0.5.tgz"},"maintainers":[{"name":"hueniverse","email":"eran@hammer.io"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/oz-4.0.5.tgz_1480571361247_0.3223763594869524"},"directories":{},"publish_time":1480571361959,"_cnpm_publish_time":1480571361959,"_hasShrinkwrap":false,"deprecated":"This package has been deprecated"},"4.0.4":{"name":"oz","description":"Web Authorization Protocol","version":"4.0.4","repository":{"type":"git","url":"git://github.com/hueniverse/oz.git"},"main":"lib/index.js","keywords":["http","authorization","oz","hawk"],"engines":{"node":">=4.x.x"},"dependencies":{"boom":"4.x.x","cryptiles":"3.x.x","hawk":"6.x.x","hoek":"4.x.x","iron":"4.x.x","joi":"9.x.x","wreck":"9.x.x"},"devDependencies":{"code":"3.x.x","lab":"11.x.x"},"scripts":{"test":"lab -a code -t 100 -L","test-cov-html":"lab -a code -r html -o coverage.html"},"license":"BSD-3-Clause","gitHead":"a829664fdfef94c481beefc4750f4934e89ad1cd","bugs":{"url":"https://github.com/hueniverse/oz/issues"},"homepage":"https://github.com/hueniverse/oz#readme","_id":"oz@4.0.4","_shasum":"669ed653c730a3f4ff52e0493683ab04e5703b28","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.4.0","_npmUser":{"name":"hueniverse","email":"eran@hammer.io"},"dist":{"shasum":"669ed653c730a3f4ff52e0493683ab04e5703b28","size":12121,"noattachment":false,"key":"/oz/-/oz-4.0.4.tgz","tarball":"http://registry.cnpm.dingdandao.com/oz/download/oz-4.0.4.tgz"},"maintainers":[{"name":"hueniverse","email":"eran@hammer.io"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/oz-4.0.4.tgz_1472971102261_0.04003749671392143"},"directories":{},"publish_time":1472971102541,"_cnpm_publish_time":1472971102541,"_hasShrinkwrap":false,"deprecated":"This package has been deprecated"},"4.0.3":{"name":"oz","description":"Web Authorization Protocol","version":"4.0.3","repository":{"type":"git","url":"git://github.com/hueniverse/oz.git"},"main":"lib/index.js","keywords":["http","authorization","oz","hawk"],"engines":{"node":">=4.x.x"},"dependencies":{"boom":"3.x.x","cryptiles":"3.x.x","hawk":"5.x.x","hoek":"4.x.x","iron":"4.x.x","joi":"9.x.x","wreck":"8.x.x"},"devDependencies":{"code":"3.x.x","lab":"10.x.x"},"scripts":{"test":"lab -a code -t 100 -L","test-cov-html":"lab -a code -r html -o coverage.html"},"license":"BSD-3-Clause","gitHead":"90260a16d354e275046213a5cc103f63eca81274","bugs":{"url":"https://github.com/hueniverse/oz/issues"},"homepage":"https://github.com/hueniverse/oz#readme","_id":"oz@4.0.3","_shasum":"1f004060af6a8a6fe4c4e8b7970f4e62053fa371","_from":".","_npmVersion":"3.10.6","_nodeVersion":"6.3.0","_npmUser":{"name":"hueniverse","email":"eran@hammer.io"},"dist":{"shasum":"1f004060af6a8a6fe4c4e8b7970f4e62053fa371","size":12147,"noattachment":false,"key":"/oz/-/oz-4.0.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/oz/download/oz-4.0.3.tgz"},"maintainers":[{"name":"hueniverse","email":"eran@hammer.io"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/oz-4.0.3.tgz_1469745895584_0.39330452447757125"},"directories":{},"publish_time":1469745895830,"_cnpm_publish_time":1469745895830,"_hasShrinkwrap":false,"deprecated":"This package has been deprecated"},"4.0.2":{"name":"oz","description":"Web Authorization Protocol","version":"4.0.2","repository":{"type":"git","url":"git://github.com/hueniverse/oz.git"},"main":"lib/index.js","keywords":["http","authorization","oz","hawk"],"engines":{"node":">=4.x.x"},"dependencies":{"boom":"3.x.x","cryptiles":"3.x.x","hawk":"5.x.x","hoek":"4.x.x","iron":"4.x.x","joi":"8.x.x","wreck":"7.x.x"},"devDependencies":{"code":"3.x.x","lab":"10.x.x"},"scripts":{"test":"lab -a code -t 100 -L","test-cov-html":"lab -a code -r html -o coverage.html"},"license":"BSD-3-Clause","gitHead":"d1204b610c4d7325ef89bccbd3abf56ba43f267f","bugs":{"url":"https://github.com/hueniverse/oz/issues"},"homepage":"https://github.com/hueniverse/oz#readme","_id":"oz@4.0.2","_shasum":"4740c93d6ad90bc64c064a318a3e04f5402b6865","_from":".","_npmVersion":"3.8.6","_nodeVersion":"6.0.0","_npmUser":{"name":"hueniverse","email":"eran@hammer.io"},"dist":{"shasum":"4740c93d6ad90bc64c064a318a3e04f5402b6865","size":162774,"noattachment":false,"key":"/oz/-/oz-4.0.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/oz/download/oz-4.0.2.tgz"},"maintainers":[{"name":"hueniverse","email":"eran@hammer.io"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/oz-4.0.2.tgz_1464202356423_0.1838178050238639"},"directories":{},"publish_time":1464202359504,"_cnpm_publish_time":1464202359504,"_hasShrinkwrap":false,"deprecated":"This package has been deprecated"},"4.0.1":{"name":"oz","description":"Web Authorization Protocol","version":"4.0.1","repository":{"type":"git","url":"git://github.com/hueniverse/oz.git"},"main":"lib/index.js","keywords":["http","authorization","oz","hawk"],"engines":{"node":">=4.x.x"},"dependencies":{"boom":"3.x.x","cryptiles":"3.x.x","hawk":"^4.1.x","hoek":"3.x.x","iron":"4.x.x","joi":"8.x.x","wreck":"7.x.x"},"devDependencies":{"code":"2.x.x","lab":"10.x.x"},"scripts":{"test":"lab -a code -t 100 -L","test-cov-html":"lab -a code -r html -o coverage.html"},"license":"BSD-3-Clause","gitHead":"e3f6d8107dc39e75a1cbfec25865a3a14d92e18b","bugs":{"url":"https://github.com/hueniverse/oz/issues"},"homepage":"https://github.com/hueniverse/oz#readme","_id":"oz@4.0.1","_shasum":"d2995938404a403c119222d9cffde2783abb1117","_from":".","_npmVersion":"3.8.6","_nodeVersion":"5.11.0","_npmUser":{"name":"hueniverse","email":"eran@hammer.io"},"dist":{"shasum":"d2995938404a403c119222d9cffde2783abb1117","size":162783,"noattachment":false,"key":"/oz/-/oz-4.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/oz/download/oz-4.0.1.tgz"},"maintainers":[{"name":"hueniverse","email":"eran@hammer.io"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/oz-4.0.1.tgz_1461969619551_0.08822712814435363"},"directories":{},"publish_time":1461969621932,"_cnpm_publish_time":1461969621932,"_hasShrinkwrap":false,"deprecated":"This package has been deprecated"},"4.0.0":{"name":"oz","description":"Web Authorization Protocol","version":"4.0.0","repository":{"type":"git","url":"git://github.com/hueniverse/oz.git"},"main":"lib/index.js","keywords":["http","authorization","oz","hawk"],"engines":{"node":">=4.x.x"},"dependencies":{"boom":"3.x.x","cryptiles":"3.x.x","hawk":"^4.1.x","hoek":"3.x.x","iron":"4.x.x","joi":"7.x.x","wreck":"7.x.x"},"devDependencies":{"code":"2.x.x","lab":"8.x.x"},"scripts":{"test":"lab -a code -t 100 -L","test-cov-html":"lab -a code -r html -o coverage.html"},"license":"BSD-3-Clause","gitHead":"87009494f66a619540a759cd09d647b2705f31e7","bugs":{"url":"https://github.com/hueniverse/oz/issues"},"homepage":"https://github.com/hueniverse/oz#readme","_id":"oz@4.0.0","_shasum":"3d70ca8211c80a0689ae30bd9229eb09449e9052","_from":".","_npmVersion":"3.3.12","_nodeVersion":"5.4.1","_npmUser":{"name":"hueniverse","email":"eran@hammer.io"},"dist":{"shasum":"3d70ca8211c80a0689ae30bd9229eb09449e9052","size":162609,"noattachment":false,"key":"/oz/-/oz-4.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/oz/download/oz-4.0.0.tgz"},"maintainers":[{"name":"hueniverse","email":"eran@hammer.io"}],"directories":{},"publish_time":1454313169600,"_cnpm_publish_time":1454313169600,"_hasShrinkwrap":false,"deprecated":"This package has been deprecated"},"3.0.0":{"name":"oz","description":"Web Authorization Protocol","version":"3.0.0","repository":{"type":"git","url":"git://github.com/hueniverse/oz.git"},"main":"lib/index.js","keywords":["http","authorization","oz","hawk"],"engines":{"node":">=4.x.x"},"dependencies":{"boom":"3.x.x","cryptiles":"3.x.x","hawk":"^4.1.x","hoek":"3.x.x","iron":"3.x.x","joi":"7.x.x","wreck":"7.x.x"},"devDependencies":{"code":"2.x.x","lab":"8.x.x"},"scripts":{"test":"lab -a code -t 100 -L","test-cov-html":"lab -a code -r html -o coverage.html"},"license":"BSD-3-Clause","gitHead":"5797814858bcd1da8842e2e655077a622557e982","bugs":{"url":"https://github.com/hueniverse/oz/issues"},"homepage":"https://github.com/hueniverse/oz#readme","_id":"oz@3.0.0","_shasum":"271cdbf35b2a9fe56135d1ea842decff52eaf1f2","_from":".","_npmVersion":"3.3.12","_nodeVersion":"5.4.0","_npmUser":{"name":"hueniverse","email":"eran@hammer.io"},"dist":{"shasum":"271cdbf35b2a9fe56135d1ea842decff52eaf1f2","size":162513,"noattachment":false,"key":"/oz/-/oz-3.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/oz/download/oz-3.0.0.tgz"},"maintainers":[{"name":"hueniverse","email":"eran@hammer.io"}],"directories":{},"publish_time":1453165663692,"_cnpm_publish_time":1453165663692,"_hasShrinkwrap":false,"deprecated":"This package has been deprecated"},"2.0.0":{"name":"oz","description":"Web Authorization Protocol","version":"2.0.0","repository":{"type":"git","url":"git://github.com/hueniverse/oz.git"},"main":"lib/index.js","keywords":["http","authorization","oz","hawk"],"engines":{"node":">=4.x.x"},"dependencies":{"joi":"7.x.x","hoek":"3.x.x","boom":"3.x.x","iron":"3.x.x","cryptiles":"3.x.x","hawk":"4.x.x"},"devDependencies":{"code":"2.x.x","lab":"7.x.x"},"scripts":{"test":"lab -a code -t 100 -L","test-cov-html":"lab -a code -r html -o coverage.html"},"license":"BSD-3-Clause","gitHead":"3f2a6985059a1d49ddf87dbbca063d8145f341f0","bugs":{"url":"https://github.com/hueniverse/oz/issues"},"homepage":"https://github.com/hueniverse/oz#readme","_id":"oz@2.0.0","_shasum":"fcba2de037f7642464105b6ec1520b0b5b8c2c39","_from":".","_npmVersion":"3.3.12","_nodeVersion":"5.0.0","_npmUser":{"name":"hueniverse","email":"eran@hammer.io"},"dist":{"shasum":"fcba2de037f7642464105b6ec1520b0b5b8c2c39","size":159494,"noattachment":false,"key":"/oz/-/oz-2.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/oz/download/oz-2.0.0.tgz"},"maintainers":[{"name":"hueniverse","email":"eran@hammer.io"}],"directories":{},"publish_time":1446782626056,"_cnpm_publish_time":1446782626056,"_hasShrinkwrap":false,"deprecated":"This package has been deprecated"},"1.0.2":{"name":"oz","description":"Web Authorization Protocol","version":"1.0.2","repository":{"type":"git","url":"git://github.com/hueniverse/oz.git"},"main":"lib/index.js","keywords":["http","authorization","oz","hawk"],"engines":{"node":"4.x.x"},"dependencies":{"joi":"6.x.x","hoek":"2.x.x","boom":"^2.8.x","iron":"2.x.x","cryptiles":"2.x.x","hawk":"^3.1.x"},"devDependencies":{"code":"1.x.x","lab":"5.x.x"},"scripts":{"test":"lab -a code -t 100 -L","test-cov-html":"lab -a code -r html -o coverage.html"},"license":"BSD-3-Clause","gitHead":"d6bd0e3cd242a1a5ee83c212f453e74abcc0e444","bugs":{"url":"https://github.com/hueniverse/oz/issues"},"homepage":"https://github.com/hueniverse/oz#readme","_id":"oz@1.0.2","_shasum":"2e7459f34c31ff023d171d02562b511aa3490122","_from":".","_npmVersion":"3.3.2","_nodeVersion":"4.1.0","_npmUser":{"name":"hueniverse","email":"eran@hammer.io"},"dist":{"shasum":"2e7459f34c31ff023d171d02562b511aa3490122","size":159437,"noattachment":false,"key":"/oz/-/oz-1.0.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/oz/download/oz-1.0.2.tgz"},"maintainers":[{"name":"hueniverse","email":"eran@hammer.io"}],"directories":{},"publish_time":1442943867127,"_cnpm_publish_time":1442943867127,"_hasShrinkwrap":false,"deprecated":"This package has been deprecated"},"1.0.1":{"name":"oz","description":"Web Authorization Protocol","version":"1.0.1","repository":{"type":"git","url":"git://github.com/hueniverse/oz.git"},"main":"lib/index.js","keywords":["http","authorization","oz","hawk"],"engines":{"node":"4.x.x"},"dependencies":{"joi":"6.x.x","hoek":"2.x.x","boom":"^2.8.x","iron":"2.x.x","cryptiles":"2.x.x","hawk":"^3.1.x"},"devDependencies":{"code":"1.x.x","lab":"5.x.x"},"scripts":{"test":"lab -a code -t 100 -L","test-cov-html":"lab -a code -r html -o coverage.html"},"license":"BSD-3-Clause","gitHead":"71763576df08084482ca8b079974df3003367626","bugs":{"url":"https://github.com/hueniverse/oz/issues"},"homepage":"https://github.com/hueniverse/oz#readme","_id":"oz@1.0.1","_shasum":"3d63ceb0708a60ea6c0a076ab3610f62ba5f62fb","_from":".","_npmVersion":"3.3.2","_nodeVersion":"4.1.0","_npmUser":{"name":"hueniverse","email":"eran@hammer.io"},"dist":{"shasum":"3d63ceb0708a60ea6c0a076ab3610f62ba5f62fb","size":159294,"noattachment":false,"key":"/oz/-/oz-1.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/oz/download/oz-1.0.1.tgz"},"maintainers":[{"name":"hueniverse","email":"eran@hammer.io"}],"directories":{},"publish_time":1442696576160,"_cnpm_publish_time":1442696576160,"_hasShrinkwrap":false,"deprecated":"This package has been deprecated"},"1.0.0":{"name":"oz","description":"Web Authorization Protocol","version":"1.0.0","repository":{"type":"git","url":"git://github.com/hueniverse/oz.git"},"main":"lib/index.js","keywords":["http","authorization","oz","hawk"],"engines":{"node":"4.x.x"},"dependencies":{"joi":"6.x.x","hoek":"2.x.x","boom":"^2.8.x","iron":"2.x.x","cryptiles":"2.x.x","hawk":"^3.1.x"},"devDependencies":{"code":"1.x.x","lab":"5.x.x"},"scripts":{"test":"lab -a code -t 100 -L","test-cov-html":"lab -a code -r html -o coverage.html"},"license":"BSD-3-Clause","gitHead":"4000bedcdf03c9c4288d208dac04524f51c408bb","bugs":{"url":"https://github.com/hueniverse/oz/issues"},"homepage":"https://github.com/hueniverse/oz#readme","_id":"oz@1.0.0","_shasum":"37e88ed0dac174145052a97556795b47339c574c","_from":".","_npmVersion":"3.3.2","_nodeVersion":"4.1.0","_npmUser":{"name":"hueniverse","email":"eran@hammer.io"},"dist":{"shasum":"37e88ed0dac174145052a97556795b47339c574c","size":159162,"noattachment":false,"key":"/oz/-/oz-1.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/oz/download/oz-1.0.0.tgz"},"maintainers":[{"name":"hueniverse","email":"eran@hammer.io"}],"directories":{},"publish_time":1442694201784,"_cnpm_publish_time":1442694201784,"_hasShrinkwrap":false,"deprecated":"This package has been deprecated"},"0.6.0":{"name":"oz","description":"Web Authorization Protocol","version":"0.6.0","author":{"name":"Eran Hammer","email":"eran@hammer.io","url":"http://hueniverse.com"},"contributors":[{"name":"Wyatt Preul","email":"wpreul@gmail.com"},{"name":"Adam Barth","email":"github@adambarth.com"}],"repository":{"type":"git","url":"git://github.com/hueniverse/oz.git"},"main":"lib/index.js","keywords":["http","authorization","oz"],"engines":{"node":">=0.10.32"},"dependencies":{"joi":"6.x.x","hoek":"2.x.x","boom":"^2.8.x","iron":"2.x.x","cryptiles":"2.x.x","hawk":"^3.1.x"},"devDependencies":{"code":"1.0.0","lab":"5.x.x"},"scripts":{"test":"lab -a code -t 100 -L","test-cov-html":"lab -a code -r html -o coverage.html"},"license":"BSD-3-Clause","gitHead":"60b06ab771da13d7cb029da0cd71571f5a459116","bugs":{"url":"https://github.com/hueniverse/oz/issues"},"homepage":"https://github.com/hueniverse/oz#readme","_id":"oz@0.6.0","_shasum":"0468a77f90d724316e11c72450c9fcb4458f42c8","_from":".","_npmVersion":"2.10.0","_nodeVersion":"0.10.38","_npmUser":{"name":"hueniverse","email":"eran@hammer.io"},"dist":{"shasum":"0468a77f90d724316e11c72450c9fcb4458f42c8","size":150830,"noattachment":false,"key":"/oz/-/oz-0.6.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/oz/download/oz-0.6.0.tgz"},"maintainers":[{"name":"hueniverse","email":"eran@hammer.io"}],"directories":{},"publish_time":1434250978711,"_cnpm_publish_time":1434250978711,"_hasShrinkwrap":false,"deprecated":"This package has been deprecated"},"0.5.0":{"name":"oz","description":"Web Authorization Protocol","version":"0.5.0","author":{"name":"Eran Hammer","email":"eran@hammer.io","url":"http://hueniverse.com"},"contributors":[{"name":"Wyatt Preul","email":"wpreul@gmail.com"},{"name":"Adam Barth","email":"github@adambarth.com"}],"repository":{"type":"git","url":"git://github.com/hueniverse/oz.git"},"main":"lib/index.js","keywords":["http","authorization","oz"],"engines":{"node":">=0.10.32"},"dependencies":{"joi":"6.x.x","hoek":"2.x.x","boom":"2.x.x","iron":"2.x.x","cryptiles":"2.x.x","hawk":"3.x.x"},"devDependencies":{"code":"1.0.0","lab":"5.x.x"},"scripts":{"test":"lab -a code -t 100 -L","test-cov-html":"lab -a code -r html -o coverage.html"},"license":"BSD-3-Clause","gitHead":"7faee1dd14ddb76e61115bb480254988640a332c","bugs":{"url":"https://github.com/hueniverse/oz/issues"},"homepage":"https://github.com/hueniverse/oz#readme","_id":"oz@0.5.0","_shasum":"cd02e6974bf943f24af34bf7a8b9989e019d74b5","_from":".","_npmVersion":"2.10.0","_nodeVersion":"0.10.38","_npmUser":{"name":"hueniverse","email":"eran@hammer.io"},"dist":{"shasum":"cd02e6974bf943f24af34bf7a8b9989e019d74b5","size":150760,"noattachment":false,"key":"/oz/-/oz-0.5.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/oz/download/oz-0.5.0.tgz"},"maintainers":[{"name":"hueniverse","email":"eran@hammer.io"}],"directories":{},"publish_time":1434225712261,"_cnpm_publish_time":1434225712261,"_hasShrinkwrap":false,"deprecated":"This package has been deprecated"},"0.4.2":{"name":"oz","description":"Web Authorization Protocol","version":"0.4.2","author":{"name":"Eran Hammer","email":"eran@hammer.io","url":"http://hueniverse.com"},"contributors":[{"name":"Wyatt Preul","email":"wpreul@gmail.com"},{"name":"Adam Barth","email":"github@adambarth.com"}],"repository":{"type":"git","url":"git://github.com/hueniverse/oz"},"main":"index","keywords":["http","authorization","oz"],"engines":{"node":">=0.10.22"},"dependencies":{"joi":"4.x.x","hoek":"2.x.x","boom":"2.x.x","iron":"2.x.x","cryptiles":"2.x.x","hawk":"2.x.x"},"devDependencies":{"lab":"3.x.x"},"scripts":{"test":"make test-cov"},"licenses":[{"type":"BSD","url":"http://github.com/hueniverse/oz/raw/master/LICENSE"}],"bugs":{"url":"https://github.com/hueniverse/oz/issues"},"homepage":"https://github.com/hueniverse/oz","_id":"oz@0.4.2","_shasum":"e4b74dafa583fa0f0e034b57d7324f7f8a99fb66","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"hueniverse","email":"eran@hueniverse.com"},"maintainers":[{"name":"hueniverse","email":"eran@hammer.io"}],"dist":{"shasum":"e4b74dafa583fa0f0e034b57d7324f7f8a99fb66","size":150739,"noattachment":false,"key":"/oz/-/oz-0.4.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/oz/download/oz-0.4.2.tgz"},"directories":{},"publish_time":1405613700416,"_cnpm_publish_time":1405613700416,"_hasShrinkwrap":false,"deprecated":"This package has been deprecated"},"0.4.1":{"name":"oz","description":"Web Authorization Protocol","version":"0.4.1","author":{"name":"Eran Hammer","email":"eran@hueniverse.com","url":"http://hueniverse.com"},"contributors":[{"name":"Wyatt Preul","email":"wpreul@gmail.com"},{"name":"Adam Barth","email":"github@adambarth.com"}],"repository":{"type":"git","url":"git://github.com/hueniverse/oz"},"main":"index","keywords":["http","authorization","oz"],"engines":{"node":">=0.10.22"},"dependencies":{"joi":"2.x.x","hoek":"1.x.x","boom":"2.x.x","iron":"2.x.x","cryptiles":"2.x.x","hawk":"2.x.x"},"devDependencies":{"lab":"1.x.x"},"scripts":{"test":"make test-cov"},"licenses":[{"type":"BSD","url":"http://github.com/hueniverse/oz/raw/master/LICENSE"}],"bugs":{"url":"https://github.com/hueniverse/oz/issues"},"homepage":"https://github.com/hueniverse/oz","_id":"oz@0.4.1","dist":{"shasum":"17e4c44f5cebdec20694eb4f10afb62c72a57669","size":150764,"noattachment":false,"key":"/oz/-/oz-0.4.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/oz/download/oz-0.4.1.tgz"},"_from":".","_npmVersion":"1.4.4","_npmUser":{"name":"hueniverse","email":"eran@hueniverse.com"},"maintainers":[{"name":"hueniverse","email":"eran@hammer.io"}],"directories":{},"publish_time":1395529040822,"_cnpm_publish_time":1395529040822,"_hasShrinkwrap":false,"deprecated":"This package has been deprecated"},"0.4.0":{"name":"oz","description":"Web Authorization Protocol","version":"0.4.0","author":{"name":"Eran Hammer","email":"eran@hueniverse.com","url":"http://hueniverse.com"},"contributors":[{"name":"Wyatt Preul","email":"wpreul@gmail.com"},{"name":"Adam Barth","email":"github@adambarth.com"}],"repository":{"type":"git","url":"git://github.com/hueniverse/oz"},"main":"index","keywords":["http","authorization","oz"],"engines":{"node":"0.10.x"},"dependencies":{"joi":"2.x.x","hoek":"1.x.x","boom":"2.x.x","iron":"2.x.x","cryptiles":"2.x.x","hawk":"2.x.x"},"devDependencies":{"lab":"1.x.x"},"scripts":{"test":"make test-cov"},"licenses":[{"type":"BSD","url":"http://github.com/hueniverse/oz/raw/master/LICENSE"}],"readmeFilename":"README.md","bugs":{"url":"https://github.com/hueniverse/oz/issues"},"homepage":"https://github.com/hueniverse/oz","_id":"oz@0.4.0","dist":{"shasum":"d7badbaa2f841464d9758ee019c8db0bd19c3c5f","size":150750,"noattachment":false,"key":"/oz/-/oz-0.4.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/oz/download/oz-0.4.0.tgz"},"_from":".","_npmVersion":"1.3.23","_npmUser":{"name":"hueniverse","email":"eran@hueniverse.com"},"maintainers":[{"name":"hueniverse","email":"eran@hammer.io"}],"directories":{},"publish_time":1390120300293,"_cnpm_publish_time":1390120300293,"_hasShrinkwrap":false,"deprecated":"This package has been deprecated"},"0.3.3":{"name":"oz","description":"Web Authorization Protocol","version":"0.3.3","author":{"name":"Eran Hammer","email":"eran@hueniverse.com","url":"http://hueniverse.com"},"contributors":[{"name":"Wyatt Preul","email":"wpreul@gmail.com"},{"name":"Adam Barth","email":"github@adambarth.com"}],"repository":{"type":"git","url":"git://github.com/hueniverse/oz"},"main":"index","keywords":["http","authorization","oz"],"engines":{"node":"0.10.x"},"dependencies":{"joi":"0.3.x","hoek":"0.9.x","boom":"0.4.x","iron":"0.3.x","cryptiles":"0.2.x","hawk":"1.x.x"},"devDependencies":{"lab":"0.x.x","complexity-report":"0.x.x"},"scripts":{"test":"make test-cov"},"licenses":[{"type":"BSD","url":"http://github.com/hueniverse/oz/raw/master/LICENSE"}],"readmeFilename":"README.md","bugs":{"url":"https://github.com/hueniverse/oz/issues"},"_id":"oz@0.3.3","dist":{"shasum":"507bf8c25f5896a53eb1460f6cf46b8dc5d90ba1","size":150972,"noattachment":false,"key":"/oz/-/oz-0.3.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/oz/download/oz-0.3.3.tgz"},"_from":".","_npmVersion":"1.3.2","_npmUser":{"name":"hueniverse","email":"eran@hueniverse.com"},"maintainers":[{"name":"hueniverse","email":"eran@hammer.io"}],"directories":{},"publish_time":1374045126232,"_cnpm_publish_time":1374045126232,"_hasShrinkwrap":false,"deprecated":"This package has been deprecated"},"0.3.2":{"name":"oz","description":"Web Authorization Protocol","version":"0.3.2","author":{"name":"Eran Hammer","email":"eran@hueniverse.com","url":"http://hueniverse.com"},"contributors":[{"name":"Wyatt Preul","email":"wpreul@gmail.com"},{"name":"Adam Barth","email":"github@adambarth.com"}],"repository":{"type":"git","url":"git://github.com/hueniverse/oz"},"main":"index","keywords":["http","authorization","oz"],"engines":{"node":"0.10.x"},"dependencies":{"joi":"0.3.x","hoek":"0.9.x","boom":"0.4.x","iron":"0.3.x","cryptiles":"0.2.x","hawk":"1.x.x"},"devDependencies":{"lab":"0.x.x","complexity-report":"0.x.x"},"scripts":{"test":"make test-cov"},"licenses":[{"type":"BSD","url":"http://github.com/hueniverse/oz/raw/master/LICENSE"}],"readmeFilename":"README.md","bugs":{"url":"https://github.com/hueniverse/oz/issues"},"_id":"oz@0.3.2","dist":{"shasum":"5f8f9fe6d8e2f2ace27a568ad6844af42766a354","size":150951,"noattachment":false,"key":"/oz/-/oz-0.3.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/oz/download/oz-0.3.2.tgz"},"_from":".","_npmVersion":"1.3.2","_npmUser":{"name":"hueniverse","email":"eran@hueniverse.com"},"maintainers":[{"name":"hueniverse","email":"eran@hammer.io"}],"directories":{},"publish_time":1373750147955,"_cnpm_publish_time":1373750147955,"_hasShrinkwrap":false,"deprecated":"This package has been deprecated"},"0.3.1":{"name":"oz","description":"Web Authorization Protocol","version":"0.3.1","author":{"name":"Eran Hammer","email":"eran@hueniverse.com","url":"http://hueniverse.com"},"contributors":[{"name":"Wyatt Preul","email":"wpreul@gmail.com"},{"name":"Adam Barth","email":"github@adambarth.com"}],"repository":{"type":"git","url":"git://github.com/hueniverse/oz"},"main":"index","keywords":["http","authorization","oz"],"engines":{"node":"0.10.x"},"dependencies":{"joi":"0.3.x","hoek":"0.9.x","boom":"0.4.x","iron":"0.3.x","cryptiles":"0.2.x","hawk":"0.15.x"},"devDependencies":{"lab":"0.x.x","complexity-report":"0.x.x"},"scripts":{"test":"make test-cov"},"licenses":[{"type":"BSD","url":"http://github.com/hueniverse/oz/raw/master/LICENSE"}],"readmeFilename":"README.md","bugs":{"url":"https://github.com/hueniverse/oz/issues"},"_id":"oz@0.3.1","dist":{"shasum":"405d61584282b18366173062a656e70e622e53aa","size":150942,"noattachment":false,"key":"/oz/-/oz-0.3.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/oz/download/oz-0.3.1.tgz"},"_from":".","_npmVersion":"1.2.21","_npmUser":{"name":"hueniverse","email":"eran@hueniverse.com"},"maintainers":[{"name":"hueniverse","email":"eran@hammer.io"}],"directories":{},"publish_time":1369589401002,"_cnpm_publish_time":1369589401002,"_hasShrinkwrap":false,"deprecated":"This package has been deprecated"},"0.3.0":{"name":"oz","description":"Web Authorization Protocol","version":"0.3.0","author":{"name":"Eran Hammer","email":"eran@hueniverse.com","url":"http://hueniverse.com"},"contributors":[{"name":"Wyatt Preul","email":"wpreul@gmail.com"},{"name":"Adam Barth","email":"github@adambarth.com"}],"repository":{"type":"git","url":"git://github.com/hueniverse/oz"},"main":"index","keywords":["http","authorization","oz"],"engines":{"node":"0.10.x"},"dependencies":{"joi":"0.3.x","hoek":"0.9.x","boom":"0.4.x","iron":"0.3.x","cryptiles":"0.2.x","hawk":"0.15.x"},"devDependencies":{"lab":"0.x.x","complexity-report":"0.x.x"},"scripts":{"test":"make test-cov"},"licenses":[{"type":"BSD","url":"http://github.com/hueniverse/oz/raw/master/LICENSE"}],"readmeFilename":"README.md","bugs":{"url":"https://github.com/hueniverse/oz/issues"},"_id":"oz@0.3.0","dist":{"shasum":"7d1aaa1ee3a0e168caa3efe64afadb99e8191b71","size":150929,"noattachment":false,"key":"/oz/-/oz-0.3.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/oz/download/oz-0.3.0.tgz"},"_from":".","_npmVersion":"1.2.21","_npmUser":{"name":"hueniverse","email":"eran@hueniverse.com"},"maintainers":[{"name":"hueniverse","email":"eran@hammer.io"}],"directories":{},"publish_time":1369585318773,"_cnpm_publish_time":1369585318773,"_hasShrinkwrap":false,"deprecated":"This package has been deprecated"},"0.2.0":{"name":"oz","description":"Web Authorization Protocol","version":"0.2.0","author":{"name":"Eran Hammer","email":"eran@hueniverse.com","url":"http://hueniverse.com"},"contributors":[{"name":"Wyatt Preul","email":"wpreul@gmail.com"},{"name":"Adam Barth","email":"github@adambarth.com"}],"repository":{"type":"git","url":"git://github.com/hueniverse/oz"},"main":"index","keywords":["http","authorization","oz"],"engines":{"node":"0.10.x"},"dependencies":{"joi":"0.3.x","hoek":"0.9.x","boom":"0.4.x","iron":"0.3.x","cryptiles":"0.2.x","hawk":"0.15.x"},"devDependencies":{"lab":"0.x.x","complexity-report":"0.x.x"},"scripts":{"test":"make test-cov"},"licenses":[{"type":"BSD","url":"http://github.com/hueniverse/oz/raw/master/LICENSE"}],"readmeFilename":"README.md","bugs":{"url":"https://github.com/hueniverse/oz/issues"},"_id":"oz@0.2.0","dist":{"shasum":"422cb928c85fad5608e42aaebbd24c7e157deb20","size":150788,"noattachment":false,"key":"/oz/-/oz-0.2.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/oz/download/oz-0.2.0.tgz"},"_from":".","_npmVersion":"1.2.21","_npmUser":{"name":"hueniverse","email":"eran@hueniverse.com"},"maintainers":[{"name":"hueniverse","email":"eran@hammer.io"}],"directories":{},"publish_time":1369553486518,"_cnpm_publish_time":1369553486518,"_hasShrinkwrap":false,"deprecated":"This package has been deprecated"},"0.1.2":{"name":"oz","description":"Web Authorization Protocol","version":"0.1.2","author":{"name":"Eran Hammer","email":"eran@hueniverse.com","url":"http://hueniverse.com"},"contributors":[{"name":"Wyatt Preul","email":"wpreul@gmail.com"},{"name":"Adam Barth","email":"github@adambarth.com"}],"repository":{"type":"git","url":"git://github.com/hueniverse/oz"},"main":"index","keywords":["http","authorization","oz"],"engines":{"node":"0.8.x"},"dependencies":{"joi":"0.2.x","hoek":"0.6.x","boom":"0.3.x","iron":"0.2.x","cryptiles":"0.1.x","hawk":"0.10.x"},"devDependencies":{"mocha":"1.x.x","chai":"1.x.x","blanket":"1.0.x","travis-cov":"0.2.x"},"scripts":{"test":"make test && make test-cov","blanket":{"pattern":"//^((?!/node_modules/)(?!/test/).)*$/ig","onlyCwd":true,"data-cover-flags":{"branchTracking":true}},"travis-cov":{"threshold":100}},"licenses":[{"type":"BSD","url":"http://github.com/hueniverse/oz/raw/master/LICENSE"}],"_id":"oz@0.1.2","dist":{"shasum":"f950f7d901675ea0ecc9909cc4fe8d27e20de170","size":13011,"noattachment":false,"key":"/oz/-/oz-0.1.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/oz/download/oz-0.1.2.tgz"},"_npmVersion":"1.1.61","_npmUser":{"name":"hueniverse","email":"eran@hueniverse.com"},"maintainers":[{"name":"hueniverse","email":"eran@hammer.io"}],"directories":{},"publish_time":1362804871291,"_cnpm_publish_time":1362804871291,"_hasShrinkwrap":false,"deprecated":"This package has been deprecated"},"0.1.1":{"name":"oz","description":"Web Authorization Protocol","version":"0.1.1","author":{"name":"Eran Hammer","email":"eran@hueniverse.com","url":"http://hueniverse.com"},"contributors":[{"name":"Wyatt Preul","email":"wpreul@gmail.com"},{"name":"Adam Barth","email":"github@adambarth.com"}],"repository":{"type":"git","url":"git://github.com/hueniverse/oz"},"main":"index","keywords":["http","authorization","oz"],"engines":{"node":"0.8.x"},"dependencies":{"joi":"0.1.x","hoek":"0.4.x","boom":"0.3.x","iron":"0.2.x","cryptiles":"0.1.x"},"devDependencies":{"mocha":"1.x.x","chai":"1.x.x","blanket":"1.0.x","travis-cov":"0.2.x"},"scripts":{"test":"make test && make test-cov","blanket":{"pattern":"//^((?!/node_modules/)(?!/test/).)*$/ig","onlyCwd":true,"data-cover-flags":{"branchTracking":true}},"travis-cov":{"threshold":100}},"licenses":[{"type":"BSD","url":"http://github.com/hueniverse/oz/raw/master/LICENSE"}],"readmeFilename":"README.md","_id":"oz@0.1.1","dist":{"shasum":"018181f25c267a77f59e16ce9ed8df36e7ac9e75","size":13453,"noattachment":false,"key":"/oz/-/oz-0.1.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/oz/download/oz-0.1.1.tgz"},"_from":".","_npmVersion":"1.2.2","_npmUser":{"name":"hueniverse","email":"eran@hueniverse.com"},"maintainers":[{"name":"hueniverse","email":"eran@hammer.io"}],"directories":{},"publish_time":1361090190411,"_cnpm_publish_time":1361090190411,"_hasShrinkwrap":false,"deprecated":"This package has been deprecated"},"0.1.0":{"name":"oz","description":"Web Authorization Protocol","version":"0.1.0","author":{"name":"Eran Hammer","email":"eran@hueniverse.com","url":"http://hueniverse.com"},"contributors":[{"name":"Wyatt Preul","email":"wpreul@gmail.com"},{"name":"Adam Barth","email":"github@adambarth.com"}],"repository":{"type":"git","url":"git://github.com/hueniverse/oz"},"main":"index","keywords":["http","authorization","oz"],"engines":{"node":">=0.8.0"},"dependencies":{"joi":"0.0.x","hoek":"0.4.x","boom":"0.3.x","iron":"0.2.x","cryptiles":"0.1.x"},"devDependencies":{"mocha":"1.x.x","chai":"1.x.x"},"scripts":{"test":"make test && make unit"},"licenses":[{"type":"BSD","url":"http://github.com/hueniverse/oz/raw/master/LICENSE"}],"readmeFilename":"README.md","_id":"oz@0.1.0","dist":{"shasum":"0d290f34e6e720f78bfc8ca351aa447fe07fb858","size":13816,"noattachment":false,"key":"/oz/-/oz-0.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/oz/download/oz-0.1.0.tgz"},"_from":".","_npmVersion":"1.2.2","_npmUser":{"name":"hueniverse","email":"eran@hueniverse.com"},"maintainers":[{"name":"hueniverse","email":"eran@hammer.io"}],"directories":{},"publish_time":1360366433681,"_cnpm_publish_time":1360366433681,"_hasShrinkwrap":false,"deprecated":"This package has been deprecated"},"0.0.19":{"name":"oz","description":"Web Authorization Protocol","version":"0.0.19","author":{"name":"Eran Hammer","email":"eran@hueniverse.com","url":"http://hueniverse.com"},"contributors":[{"name":"Wyatt Preul","email":"wpreul@gmail.com"},{"name":"Adam Barth","email":"github@adambarth.com"}],"repository":{"type":"git","url":"git://github.com/hueniverse/oz"},"main":"index","keywords":["http","authorization","oz"],"engines":{"node":">=0.8.0"},"dependencies":{"joi":"0.0.x","hoek":"0.4.x","boom":"0.2.x","iron":"0.1.x","cryptiles":"0.0.x"},"devDependencies":{"mocha":"1.x.x","chai":"1.x.x"},"scripts":{"test":"make test && make unit"},"licenses":[{"type":"BSD","url":"http://github.com/hueniverse/oz/raw/master/LICENSE"}],"readmeFilename":"README.md","_id":"oz@0.0.19","dist":{"shasum":"f3aadd6cfbe452b3209f00e582febcf3679792f1","size":13806,"noattachment":false,"key":"/oz/-/oz-0.0.19.tgz","tarball":"http://registry.cnpm.dingdandao.com/oz/download/oz-0.0.19.tgz"},"_from":".","_npmVersion":"1.2.2","_npmUser":{"name":"hueniverse","email":"eran@hueniverse.com"},"maintainers":[{"name":"hueniverse","email":"eran@hammer.io"}],"directories":{},"publish_time":1360278207172,"_cnpm_publish_time":1360278207172,"_hasShrinkwrap":false,"deprecated":"This package has been deprecated"},"0.0.18":{"name":"oz","description":"Web Authorization Protocol","version":"0.0.18","author":{"name":"Eran Hammer","email":"eran@hueniverse.com","url":"http://hueniverse.com"},"contributors":[{"name":"Wyatt Preul","email":"wpreul@gmail.com"},{"name":"Adam Barth","email":"github@adambarth.com"}],"repository":{"type":"git","url":"git://github.com/hueniverse/oz"},"main":"index","keywords":["http","authorization","oz"],"engines":{"node":">=0.8.0"},"dependencies":{"joi":"0.0.x","hoek":"0.0.x","boom":"0.0.x","iron":"0.0.x","cryptiles":"0.0.x"},"devDependencies":{"mocha":"1.x.x","chai":"1.x.x"},"scripts":{"test":"make test && make unit"},"licenses":[{"type":"BSD","url":"http://github.com/hueniverse/oz/raw/master/LICENSE"}],"readmeFilename":"README.md","_id":"oz@0.0.18","dist":{"shasum":"586c61c2aabe421df124561e964388a6888a0bd2","size":13834,"noattachment":false,"key":"/oz/-/oz-0.0.18.tgz","tarball":"http://registry.cnpm.dingdandao.com/oz/download/oz-0.0.18.tgz"},"_npmVersion":"1.1.65","_npmUser":{"name":"hueniverse","email":"eran@hueniverse.com"},"maintainers":[{"name":"hueniverse","email":"eran@hammer.io"}],"directories":{},"publish_time":1358179025420,"_cnpm_publish_time":1358179025420,"_hasShrinkwrap":false,"deprecated":"This package has been deprecated"},"0.0.16":{"name":"oz","description":"Web Authorization Protocol","version":"0.0.16","author":{"name":"Eran Hammer","email":"eran@hueniverse.com","url":"http://hueniverse.com"},"contributors":[{"name":"Wyatt Preul","email":"wpreul@gmail.com"},{"name":"Adam Barth","email":"github@adambarth.com"}],"repository":{"type":"git","url":"git://github.com/hueniverse/oz"},"main":"index","keywords":["http","authorization","oz"],"engines":{"node":">=0.8.0"},"dependencies":{"joi":"0.0.x","hoek":"0.0.x","boom":"0.0.x","iron":"0.0.x"},"devDependencies":{"mocha":"1.x.x","chai":"1.x.x"},"scripts":{"test":"make test && make unit"},"licenses":[{"type":"BSD","url":"http://github.com/hueniverse/oz/raw/master/LICENSE"}],"readmeFilename":"README.md","_id":"oz@0.0.16","dist":{"shasum":"36ef0052aca628ab128fac9736098e384bde1aed","size":13796,"noattachment":false,"key":"/oz/-/oz-0.0.16.tgz","tarball":"http://registry.cnpm.dingdandao.com/oz/download/oz-0.0.16.tgz"},"_npmVersion":"1.1.65","_npmUser":{"name":"hueniverse","email":"eran@hueniverse.com"},"maintainers":[{"name":"hueniverse","email":"eran@hammer.io"}],"directories":{},"publish_time":1358064843071,"_cnpm_publish_time":1358064843071,"_hasShrinkwrap":false,"deprecated":"This package has been deprecated"},"0.0.15":{"name":"oz","description":"Web Authorization Protocol","version":"0.0.15","author":{"name":"Eran Hammer","email":"eran@hueniverse.com","url":"http://hueniverse.com"},"contributors":[{"name":"Wyatt Preul","email":"wpreul@gmail.com"},{"name":"Adam Barth","email":"github@adambarth.com"}],"repository":{"type":"git","url":"git://github.com/hueniverse/oz"},"main":"index","keywords":["http","authorization","oz"],"engines":{"node":">=0.8.0"},"dependencies":{"joi":"0.0.x","hoek":"0.0.x","boom":"0.0.x"},"devDependencies":{"mocha":"1.x.x","chai":"1.x.x"},"scripts":{"test":"make test && make unit"},"licenses":[{"type":"BSD","url":"http://github.com/hueniverse/oz/raw/master/LICENSE"}],"readmeFilename":"README.md","_id":"oz@0.0.15","dist":{"shasum":"5529524358181d70a77efd8b0c9e6a23869f98d8","size":15353,"noattachment":false,"key":"/oz/-/oz-0.0.15.tgz","tarball":"http://registry.cnpm.dingdandao.com/oz/download/oz-0.0.15.tgz"},"_npmVersion":"1.1.65","_npmUser":{"name":"hueniverse","email":"eran@hueniverse.com"},"maintainers":[{"name":"hueniverse","email":"eran@hammer.io"}],"directories":{},"publish_time":1358028610309,"_cnpm_publish_time":1358028610309,"_hasShrinkwrap":false,"deprecated":"This package has been deprecated"},"0.0.14":{"name":"oz","description":"Web Authorization Protocol","version":"0.0.14","author":{"name":"Eran Hammer","email":"eran@hueniverse.com","url":"http://hueniverse.com"},"contributors":[{"name":"Wyatt Preul","email":"wpreul@gmail.com"},{"name":"Adam Barth","email":"github@adambarth.com"}],"repository":{"type":"git","url":"git://github.com/hueniverse/oz"},"main":"index","keywords":["http","authorization","oz"],"engines":{"node":">=0.8.0"},"dependencies":{"joi":"0.0.x","hoek":"0.0.x"},"devDependencies":{"mocha":"1.x.x","chai":"1.x.x"},"scripts":{"test":"make test && make unit"},"licenses":[{"type":"BSD","url":"http://github.com/hueniverse/oz/raw/master/LICENSE"}],"readmeFilename":"README.md","_id":"oz@0.0.14","dist":{"shasum":"702d807074cb5806d19ebb1c39391f8bcb806799","size":16023,"noattachment":false,"key":"/oz/-/oz-0.0.14.tgz","tarball":"http://registry.cnpm.dingdandao.com/oz/download/oz-0.0.14.tgz"},"_npmVersion":"1.1.65","_npmUser":{"name":"hueniverse","email":"eran@hueniverse.com"},"maintainers":[{"name":"hueniverse","email":"eran@hammer.io"}],"directories":{},"publish_time":1357180200469,"_cnpm_publish_time":1357180200469,"_hasShrinkwrap":false,"deprecated":"This package has been deprecated"},"0.0.13":{"name":"oz","description":"Web Authorization Protocol","version":"0.0.13","author":{"name":"Eran Hammer","email":"eran@hueniverse.com","url":"http://hueniverse.com"},"contributors":[{"name":"Wyatt Preul","email":"wpreul@gmail.com"},{"name":"Adam Barth","email":"github@adambarth.com"}],"repository":{"type":"git","url":"git://github.com/hueniverse/oz"},"main":"index","keywords":["http","authorization","oz"],"engines":{"node":">=0.8.0"},"dependencies":{"joi":"0.0.x","hoek":"0.0.x"},"devDependencies":{"mocha":"1.x.x","chai":"1.x.x"},"scripts":{"test":"make test && make unit"},"licenses":[{"type":"BSD","url":"http://github.com/hueniverse/oz/raw/master/LICENSE"}],"readmeFilename":"README.md","_id":"oz@0.0.13","dist":{"shasum":"5b1a83f88a52aef671cdc42f4cd2a31619ef2ee2","size":16015,"noattachment":false,"key":"/oz/-/oz-0.0.13.tgz","tarball":"http://registry.cnpm.dingdandao.com/oz/download/oz-0.0.13.tgz"},"_npmVersion":"1.1.65","_npmUser":{"name":"hueniverse","email":"eran@hueniverse.com"},"maintainers":[{"name":"hueniverse","email":"eran@hammer.io"}],"directories":{},"publish_time":1354783056314,"_cnpm_publish_time":1354783056314,"_hasShrinkwrap":false,"deprecated":"This package has been deprecated"},"0.0.12":{"name":"oz","description":"Web Authorization Protocol","version":"0.0.12","author":{"name":"Eran Hammer","email":"eran@hueniverse.com"},"contributors":[{"name":"Wyatt Preul","email":"wpreul@gmail.com"},{"name":"Adam Barth","email":"github@adambarth.com"}],"repository":{"type":"git","url":"git://github.com/hueniverse/oz"},"main":"index","keywords":["http","authorization","oz"],"engines":{"node":">=0.8.0"},"dependencies":{"joi":"0.0.x","hoek":"0.0.x"},"devDependencies":{"mocha":"1.x.x","should":"1.x.x","chai":"1.2.x"},"scripts":{"test":"make test && make unit"},"licenses":[{"type":"BSD","url":"http://github.com/walmartlabs/oz/raw/master/LICENSE"}],"readmeFilename":"README.md","_id":"oz@0.0.12","dist":{"shasum":"08c4de4c34d18e82a480e1952bb7dca8bc47e5f4","size":16108,"noattachment":false,"key":"/oz/-/oz-0.0.12.tgz","tarball":"http://registry.cnpm.dingdandao.com/oz/download/oz-0.0.12.tgz"},"_npmVersion":"1.1.65","_npmUser":{"name":"hueniverse","email":"eran@hueniverse.com"},"maintainers":[{"name":"hueniverse","email":"eran@hammer.io"}],"directories":{},"publish_time":1354239371587,"_cnpm_publish_time":1354239371587,"_hasShrinkwrap":false,"deprecated":"This package has been deprecated"},"0.0.11":{"name":"oz","description":"Web Authorization Protocol","version":"0.0.11","author":{"name":"Eran Hammer","email":"eran@hueniverse.com"},"contributors":[{"name":"Wyatt Preul","email":"wpreul@gmail.com"},{"name":"Adam Barth","email":"github@adambarth.com"}],"repository":{"type":"git","url":"git://github.com/hueniverse/oz"},"main":"index","keywords":["http","authorization","oz"],"engines":{"node":">=0.8.0"},"dependencies":{"joi":"0.0.x","hoek":"0.0.x"},"devDependencies":{"mocha":"1.x.x","should":"1.x.x","chai":"1.2.x"},"scripts":{"test":"make test && make unit"},"licenses":[{"type":"BSD","url":"http://github.com/walmartlabs/oz/raw/master/LICENSE"}],"readmeFilename":"README.md","_id":"oz@0.0.11","dist":{"shasum":"cb720dbc014844356febb912ef21a8df0cf337fe","size":16075,"noattachment":false,"key":"/oz/-/oz-0.0.11.tgz","tarball":"http://registry.cnpm.dingdandao.com/oz/download/oz-0.0.11.tgz"},"_npmVersion":"1.1.65","_npmUser":{"name":"hueniverse","email":"eran@hueniverse.com"},"maintainers":[{"name":"hueniverse","email":"eran@hammer.io"}],"directories":{},"publish_time":1353788211320,"_cnpm_publish_time":1353788211320,"_hasShrinkwrap":false,"deprecated":"This package has been deprecated"},"0.0.10":{"name":"oz","description":"Web Authorization Protocol","version":"0.0.10","author":{"name":"Eran Hammer","email":"eran@hueniverse.com"},"contributors":[{"name":"Wyatt Preul","email":"wpreul@gmail.com"},{"name":"Adam Barth","email":"github@adambarth.com"}],"repository":{"type":"git","url":"git://github.com/hueniverse/oz"},"main":"index","keywords":["http","authorization","oz"],"engines":{"node":">=0.8.0"},"dependencies":{"joi":"0.0.x","hoek":"0.0.x"},"devDependencies":{"mocha":"1.x.x","should":"1.x.x","sinon":"1.3.4","chai":"1.2.x"},"scripts":{"test":"make test && make unit"},"licenses":[{"type":"BSD","url":"http://github.com/walmartlabs/hoek/raw/master/LICENSE"}],"readmeFilename":"README.md","_id":"oz@0.0.10","dist":{"shasum":"579fb4fc8f1f8f58f709f07bb149b0a7bfbfbab9","size":16134,"noattachment":false,"key":"/oz/-/oz-0.0.10.tgz","tarball":"http://registry.cnpm.dingdandao.com/oz/download/oz-0.0.10.tgz"},"_npmVersion":"1.1.65","_npmUser":{"name":"hueniverse","email":"eran@hueniverse.com"},"maintainers":[{"name":"hueniverse","email":"eran@hammer.io"}],"directories":{},"publish_time":1353016953725,"_cnpm_publish_time":1353016953725,"_hasShrinkwrap":false,"deprecated":"This package has been deprecated"},"0.0.8":{"name":"oz","description":"Web Authorization Protocol","version":"0.0.8","author":{"name":"Eran Hammer","email":"eran@hueniverse.com"},"repository":{"type":"git","url":"git://github.com/hueniverse/oz"},"main":"index","keywords":["http","authorization","oz"],"engines":{"node":">=0.8.0"},"dependencies":{"joi":"0.0.x","hoek":"0.0.x"},"devDependencies":{"mocha":"1.x.x","should":"1.x.x","sinon":"1.3.4","chai":"1.2.x"},"scripts":{"test":"make test && make unit"},"licenses":[{"type":"BSD","url":"http://github.com/walmartlabs/hoek/raw/master/LICENSE"}],"readmeFilename":"README.md","_id":"oz@0.0.8","dist":{"shasum":"0c9e5a66f46c70745b226a3070890a459d201f00","size":15591,"noattachment":false,"key":"/oz/-/oz-0.0.8.tgz","tarball":"http://registry.cnpm.dingdandao.com/oz/download/oz-0.0.8.tgz"},"_npmVersion":"1.1.65","_npmUser":{"name":"hueniverse","email":"eran@hueniverse.com"},"maintainers":[{"name":"hueniverse","email":"eran@hammer.io"}],"directories":{},"publish_time":1352840985162,"_cnpm_publish_time":1352840985162,"_hasShrinkwrap":false,"deprecated":"This package has been deprecated"},"0.0.7":{"name":"oz","description":"Web Authorization Protocol","version":"0.0.7","author":{"name":"Eran Hammer","email":"eran@hueniverse.com"},"repository":{"type":"git","url":"git://github.com/hueniverse/oz"},"main":"index","keywords":["http","authorization","oz"],"engines":{"node":">=0.8.0"},"dependencies":{"joi":"0.0.x","hoek":"0.0.x"},"devDependencies":{"mocha":"1.x.x","should":"1.x.x","sinon":"1.3.4","chai":"1.2.x"},"scripts":{"test":"make test && make unit"},"licenses":[{"type":"BSD","url":"http://github.com/walmartlabs/hoek/raw/master/LICENSE"}],"readmeFilename":"README.md","_id":"oz@0.0.7","dist":{"shasum":"f97843d4ad025326437f77c100f92dde7423c8c6","size":15774,"noattachment":false,"key":"/oz/-/oz-0.0.7.tgz","tarball":"http://registry.cnpm.dingdandao.com/oz/download/oz-0.0.7.tgz"},"_npmVersion":"1.1.65","_npmUser":{"name":"hueniverse","email":"eran@hueniverse.com"},"maintainers":[{"name":"hueniverse","email":"eran@hammer.io"}],"directories":{},"publish_time":1352835964760,"_cnpm_publish_time":1352835964760,"_hasShrinkwrap":false,"deprecated":"This package has been deprecated"},"0.0.6":{"name":"oz","description":"Web Authorization Protocol","version":"0.0.6","author":{"name":"Eran Hammer","email":"eran@hueniverse.com"},"repository":{"type":"git","url":"git://github.com/hueniverse/oz"},"main":"index","keywords":["http","authorization","oz"],"engines":{"node":">=0.8.0"},"dependencies":{"hoek":"0.0.x"},"devDependencies":{"mocha":"1.x.x","should":"1.x.x","sinon":"1.3.4"},"scripts":{"test":"make test && make unit"},"licenses":[{"type":"BSD","url":"http://github.com/walmartlabs/hoek/raw/master/LICENSE"}],"readmeFilename":"README.md","_id":"oz@0.0.6","dist":{"shasum":"8c361eadc4243bb75bcc68478a42087281a91c67","size":13464,"noattachment":false,"key":"/oz/-/oz-0.0.6.tgz","tarball":"http://registry.cnpm.dingdandao.com/oz/download/oz-0.0.6.tgz"},"_npmVersion":"1.1.65","_npmUser":{"name":"hueniverse","email":"eran@hueniverse.com"},"maintainers":[{"name":"hueniverse","email":"eran@hammer.io"}],"directories":{},"publish_time":1352709788769,"_cnpm_publish_time":1352709788769,"_hasShrinkwrap":false,"deprecated":"This package has been deprecated"},"0.0.5":{"name":"oz","description":"Web Authorization Protocol","version":"0.0.5","author":{"name":"Eran Hammer","email":"eran@hueniverse.com"},"repository":{"type":"git","url":"git://github.com/hueniverse/oz"},"main":"index","keywords":["http","authorization","oz"],"engines":{"node":">=0.8.0"},"dependencies":{"hoek":"0.0.x"},"devDependencies":{"mocha":"1.x.x","should":"1.x.x","sinon":"1.3.4"},"scripts":{"test":"make test && make unit"},"licenses":[{"type":"BSD","url":"http://github.com/walmartlabs/hoek/raw/master/LICENSE"}],"readmeFilename":"README.md","_id":"oz@0.0.5","dist":{"shasum":"cdfdfb81a49cb0dd445984a80a273beffb5d5808","size":13486,"noattachment":false,"key":"/oz/-/oz-0.0.5.tgz","tarball":"http://registry.cnpm.dingdandao.com/oz/download/oz-0.0.5.tgz"},"_npmVersion":"1.1.65","_npmUser":{"name":"hueniverse","email":"eran@hueniverse.com"},"maintainers":[{"name":"hueniverse","email":"eran@hammer.io"}],"directories":{},"publish_time":1352709641505,"_cnpm_publish_time":1352709641505,"_hasShrinkwrap":false,"deprecated":"This package has been deprecated"},"0.0.4":{"name":"oz","description":"Web Authorization Protocol","version":"0.0.4","author":{"name":"Eran Hammer","email":"eran@hueniverse.com"},"repository":{"type":"git","url":"git://github.com/hueniverse/oz"},"main":"index","keywords":["http","authorization","oz"],"engines":{"node":">=0.8.0"},"dependencies":{"hoek":"0.0.x"},"devDependencies":{"mocha":"1.x.x","should":"1.x.x","sinon":"1.3.4"},"scripts":{"test":"make test && make unit"},"licenses":[{"type":"BSD","url":"http://github.com/walmartlabs/hoek/raw/master/LICENSE"}],"readmeFilename":"README.md","_id":"oz@0.0.4","dist":{"shasum":"88fb7f49bc1b2722a79376068b9274b9206d90cf","size":12500,"noattachment":false,"key":"/oz/-/oz-0.0.4.tgz","tarball":"http://registry.cnpm.dingdandao.com/oz/download/oz-0.0.4.tgz"},"_npmVersion":"1.1.65","_npmUser":{"name":"hueniverse","email":"eran@hueniverse.com"},"maintainers":[{"name":"hueniverse","email":"eran@hammer.io"}],"directories":{},"publish_time":1352154561208,"_cnpm_publish_time":1352154561208,"_hasShrinkwrap":false,"deprecated":"This package has been deprecated"},"0.0.3":{"name":"oz","description":"Web Authorization Protocol","version":"0.0.3","author":{"name":"Eran Hammer","email":"eran@hueniverse.com"},"repository":{"type":"git","url":"git://github.com/hueniverse/oz"},"main":"index","keywords":["http","authorization","oz"],"engines":{"node":">=0.8.0"},"dependencies":{"hoek":"0.0.x"},"devDependencies":{"mocha":"1.x.x","should":"1.x.x","sinon":"1.3.4"},"scripts":{"test":"make test && make unit"},"licenses":[{"type":"BSD","url":"http://github.com/walmartlabs/hoek/raw/master/LICENSE"}],"readmeFilename":"README.md","_id":"oz@0.0.3","dist":{"shasum":"c536fbb44b6719c04ae4974febfbbe1baab84c3c","size":11416,"noattachment":false,"key":"/oz/-/oz-0.0.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/oz/download/oz-0.0.3.tgz"},"_npmVersion":"1.1.65","_npmUser":{"name":"hueniverse","email":"eran@hueniverse.com"},"maintainers":[{"name":"hueniverse","email":"eran@hammer.io"}],"directories":{},"publish_time":1352100860121,"_cnpm_publish_time":1352100860121,"_hasShrinkwrap":false,"deprecated":"This package has been deprecated"},"0.0.2":{"name":"oz","description":"Web Authorization Protocol","version":"0.0.2","author":{"name":"Eran Hammer","email":"eran@hueniverse.com"},"repository":{"type":"git","url":"git://github.com/hueniverse/oz"},"main":"index","keywords":["http","authorization","oz"],"engines":{"node":">=0.8.0"},"dependencies":{"hoek":"0.0.x"},"devDependencies":{"mocha":"1.x.x","should":"1.x.x","sinon":"1.3.4"},"scripts":{"test":"make test && make unit"},"licenses":[{"type":"BSD","url":"http://github.com/walmartlabs/hoek/raw/master/LICENSE"}],"readmeFilename":"README.md","_id":"oz@0.0.2","dist":{"shasum":"165273c833026fb05e6f0537eb43b1a845c41b24","size":11762,"noattachment":false,"key":"/oz/-/oz-0.0.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/oz/download/oz-0.0.2.tgz"},"_npmVersion":"1.1.65","_npmUser":{"name":"hueniverse","email":"eran@hueniverse.com"},"maintainers":[{"name":"hueniverse","email":"eran@hammer.io"}],"directories":{},"publish_time":1352057650151,"_cnpm_publish_time":1352057650151,"_hasShrinkwrap":false,"deprecated":"This package has been deprecated"},"0.0.1":{"name":"oz","description":"Web Authorization Protocol","version":"0.0.1","author":{"name":"Eran Hammer","email":"eran@hueniverse.com"},"repository":{"type":"git","url":"git://github.com/hueniverse/oz"},"main":"index","keywords":["http","authorization","oz"],"engines":{"node":">=0.8.0"},"dependencies":{"hoek":"0.0.x"},"devDependencies":{"mocha":"1.x.x","should":"1.x.x","sinon":"1.3.4"},"scripts":{"test":"make test && make unit"},"licenses":[{"type":"BSD","url":"http://github.com/walmartlabs/hoek/raw/master/LICENSE"}],"_id":"oz@0.0.1","dist":{"shasum":"edf94dd18054d8a31e61c5da0a1e420f641c03b5","size":7591,"noattachment":false,"key":"/oz/-/oz-0.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/oz/download/oz-0.0.1.tgz"},"_npmVersion":"1.1.61","_npmUser":{"name":"hueniverse","email":"eran@hueniverse.com"},"maintainers":[{"name":"hueniverse","email":"eran@hammer.io"}],"directories":{},"publish_time":1351062438744,"_cnpm_publish_time":1351062438744,"_hasShrinkwrap":false,"deprecated":"This package has been deprecated"},"0.0.0":{"name":"oz","description":"Web Authorization Protocol","version":"0.0.0","author":{"name":"Eran Hammer","email":"eran@hueniverse.com"},"repository":{"type":"git","url":"git://github.com/hueniverse/oz"},"main":"index","keywords":["http","authorization"],"engines":{"node":">=0.8.0"},"dependencies":{},"devDependencies":{},"_id":"oz@0.0.0","dist":{"shasum":"7cd4fc366617856ae8aa37eb410363306991e786","size":1390,"noattachment":false,"key":"/oz/-/oz-0.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/oz/download/oz-0.0.0.tgz"},"maintainers":[{"name":"hueniverse","email":"eran@hammer.io"}],"directories":{},"publish_time":1343367482361,"_cnpm_publish_time":1343367482361,"_hasShrinkwrap":false,"deprecated":"This package has been deprecated"}},"readme":"![oz Logo](https://raw.github.com/hueniverse/oz/master/images/oz.png)\r\n\r\nOz is a web authorization protocol based on industry best practices. Oz combines the\r\n[Hawk](https://github.com/hueniverse/hawk) authentication protocol with the\r\n[Iron](https://github.com/hueniverse/iron) encryption protocol to provide a simple to use and\r\nsecure solution for granting and authenticating third-party access to an API on behalf of a user or\r\nan application.\r\n\r\nProtocol version: **5.0.0** (Same as v1.0.0 but moved the expired ticket indicator from a header\r\nattribute to the error payload).\r\n\r\n[![Build Status](https://api.travis-ci.org/hueniverse/oz.svg?branch=master)](http://travis-ci.org/hueniverse/oz)\r\n\r\n# Table of Content\r\n\r\n- [Protocol](#protocol)\r\n  - [Workflow](#workflow)\r\n  - [Application](#application)\r\n  - [User](#user)\r\n  - [Ticket](#ticket)\r\n    - [Grant](#grant)\r\n    - [Scope](#scope)\r\n    - [Rsvp](#rsvp)\r\n- [API](#api)\r\n  - [Shared objects](#shared-objects)\r\n    - [`app` object](#app-object)\r\n    - [`grant` object](#grant-object)\r\n    - [`ticket` response](#ticket-response)\r\n  - [`Oz.client`](#ozclient)\r\n    - [`Oz.client.header(uri, method, ticket, [options])`](#ozclientheaderuri-method-ticket-options)\r\n    - [`new Oz.client.Connection(options)`](#new-ozclientconnectionoptions)\r\n      - [`await connection.request(path, ticket, options)`](#await-connectionrequestpath-ticket-options)\r\n      - [`await connection.app(path, options)`](#await-connectionapppath-options)\r\n      - [`await connection.reissue(ticket)`](#await-connectionreissueticket)\r\n  - [`Oz.endpoints`](#ozendpoints)\r\n    - [Endpoints options](#endpoints-options)\r\n      - [`encryptionPassword`](#encryptionpassword)\r\n      - [`loadAppFunc`](#loadappfunc)\r\n      - [`loadGrantFunc`](#loadgrantfunc)\r\n    - [`await endpoints.app(req, payload, options)`](#await-endpointsappreq-payload-options)\r\n    - [`await endpoints.reissue(req, payload, options)`](#await-endpointsreissuereq-payload-options)\r\n    - [`await endpoints.rsvp(req, payload, options)`](#await-endpointsrsvpreq-payload-options)\r\n  - [`Oz.hawk`](#ozhawk)\r\n  - [`Oz.scope`](#ozscope)\r\n    - [`Oz.scope.validate(scope)`](#ozscopevalidatescope)\r\n    - [`Oz.scope.isSubset(scope, subset)`](#ozscopeissubsetscope-subset)\r\n  - [`Oz.server`](#ozserver)\r\n    - [`await Oz.server.authenticate(req, encryptionPassword, options)`](#await-ozserverauthenticatereq-encryptionpassword-options)\r\n  - [`Oz.ticket`](#ozticket)\r\n    - [Ticket options](#ticket-options)\r\n    - [`await ticket.issue(app, grant, encryptionPassword, options)`](#await-ticketissueapp-grant-encryptionpassword-options)\r\n    - [`await ticket.reissue(parentTicket, grant, encryptionPassword, options)`](#await-ticketreissueparentticket-grant-encryptionpassword-options)\r\n    - [`await ticket.rsvp(app, grant, encryptionPassword, options)`](#await-ticketrsvpapp-grant-encryptionpassword-options)\r\n    - [`await ticket.generate(ticket, encryptionPassword, options)`](#await-ticketgenerateticket-encryptionpassword-options)\r\n    - [`await ticket.parse(id, encryptionPassword, options)`](#await-ticketparseid-encryptionpassword-options)\r\n- [Security Considerations](#security-considerations)\r\n  - [Ticket and Application Hawk Credentials Transmission](#ticket-and-application-hawk-credentials-transmission)\r\n  - [Plaintext Storage of Ticket and Application Hawk Credentials](#plaintext-storage-of-ticket-and-application-hawk-credentials)\r\n  - [Entropy of Keys](#entropy-of-keys)\r\n  - [Application Redirect URI](#application-redirect-uri)\r\n\r\n## Protocol\r\n\r\nOz builds on the well-understood concepts behind the [OAuth](https://tools.ietf.org/html/rfc5849)\r\nprotocol. While the terminology has been updated to reflect the common terms used today when\r\nbuilding applications with third-party access, the overall architecture is the same. This document\r\nassumes the reader is familiar with the OAuth 1.0a protocol workflow.\r\n\r\n### Workflow\r\n\r\n1. The [application](#application) uses its previously issued [Hawk](https://github.com/hueniverse/hawk)\r\n  credentials to authenticate with the server and request an application [ticket](#ticket). If valid,\r\n  the server issues an application ticket.\r\n2. The application directs the [user](#user) to grant it authorization by providing the user with its\r\n  application identifier. The user authenticates with the server, reviews the authorization\r\n  [grant](#grant) and its [scope](#scope), and if approved the server returns an [rsvp](#rsvp).\r\n3. The user returns to the application with the rsvp which the application uses to request a new\r\n  user-specific ticket. If valid, the server returns a new ticket.\r\n4. The application uses the user-ticket to access the user's protected resources.\r\n\r\n### Application\r\n\r\nOz is an application-to-server authorization protocol. This means credentials are issued only to\r\napplications, not to users. The method through which users authenticate is outside the scope of\r\nthis protocol.\r\n\r\nThe application represents a third-party accessing protected resource on the server. This\r\nthird-party can be another server, a native app, a single-page-app, or any other application using\r\nweb resources. The protected resources can be under the control of the application itself or under\r\nthe control of a user who grants the application access.\r\n\r\nEach application definition includes:\r\n- `id` - a unique application identifier.\r\n- `scope` - the default application [scope](#scope).\r\n- `delegate` - if `true`, the application is allowed to delegate a ticket to another application.\r\n  Defaults to `false`.\r\n\r\nApplications must be registered with the server prior to using Oz. The method through which\r\napplications register is outside the scope of this protocol. When an application registers, it is\r\nissued a set of [Hawk](https://github.com/hueniverse/hawk) credentials. The application uses these\r\ncredentials to obtain an Oz [ticket](#ticket).\r\n\r\nThe application Hawk credentials include:\r\n- `id` - the unique application identifier.\r\n- `key` - a shared secret used to authenticate.\r\n- `algorithm` - the HMAC algorithm used to authenticate (e.g. HMAC-SHA256).\r\n\r\nThe [Hawk](https://github.com/hueniverse/hawk) protocol supports two Oz-specific header attributes\r\nwhich are used for authenticating Oz applications (`app` and `dlg`).\r\n\r\n### User\r\n\r\nApplications act on behalf of users. Users are usually people with protected resources on the\r\nserver who would like to use the application to access those protected resources. For the purpose\r\nof the Oz protocol, each user must have a unique identifier which is used by the protocol to record\r\naccess rights. The method through which users are registered, authenticated, and managed is beyond\r\nthe scope of this protocol.\r\n\r\n### Ticket\r\n\r\nAn Oz ticket is a set of [Hawk](https://github.com/hueniverse/hawk) credentials used by the\r\napplication to access protected resources. Just like any other Hawk credentials, the ticket\r\nincludes:\r\n- `id` - a unique identifier for the authorized access.\r\n- `key` - a shared secret used to authenticate.\r\n- `algorithm` - the HMAC algorithm used to authenticate (e.g. HMAC-SHA256).\r\n\r\nHowever, unlike most Hawk credential identifiers, the Oz identifier is an encoded\r\n[Iron](https://github.com/hueniverse/iron) string which when decoded contains:\r\n- `exp` - ticket expiration time in milliseconds since 1/1/1970.\r\n- `app` - the application id the ticket was issued to.\r\n- `user` - the user id if the ticket represents access to user resources. If no user id is included,\r\n  the ticket allows the application access to the application own resources only.\r\n- `scope` - the ticket [scope](#scope). Defaults to `[]` if no scope is specified.\r\n- `delegate` - if `false`, the ticket cannot be delegated regardless of the application permissions.\r\n  Defaults to `true` which means use the application permissions to delegate.\r\n- `grant` - if `user` is set, includes the [grant](#grant) identifier referencing the authorization\r\n  granted by the user to the application. Can be a unique identifier or string encoding the grant\r\n  information as long as the server is able to parse the information later.\r\n- `dlg` - if the ticket is the result of access delegation, the application id of the delegating\r\n  application.\r\n- `ext` - custom server data where:\r\n    - `public` - also made available to the application when the ticket is sent back.\r\n    - `private` - available only within the encoded ticket.\r\n\r\nWhen a ticket is generated and sent to the application by the server, the response includes all of\r\nthe above properties with the exception of `ext` which is included but only with the content of\r\n`ext.public` if present.\r\n\r\nThe ticket expiration can be shorter than the grant expiration in which case, the application can\r\nreissue the ticket. This provides the ability to limit the time credentials are valid but allowing\r\ngrants to have longer lifetime.\r\n\r\nWhen tickets are reissued, they can be constrained to less scope or duration, and can also be\r\nissued to another application for access delegation.\r\n\r\n#### Grant\r\n\r\nA grant is the authorization given to an application by a user to access the user's protected\r\nresources. Grants can be persisted in a database (usually to support revocation) or can be self\r\ndescribing (using an encoded identifier). Each grant contains:\r\n- `id` - the grant identifier, allowing the server to retrieve or recreate the grant information.\r\n- `exp` - authorization expiration time in milliseconds since 1/1/1970.\r\n- `user` - the user id who the user who authorized access.\r\n- `scope` - the authorized [scope](#scope). Defaults to the application scope if no scope is\r\n  specified.\r\n\r\n#### Scope\r\n\r\nScope is an array of strings, each represents an implementation-specific permission on the server.\r\nEach scope string adds additional permissions to the application (i.e. `['a', 'b']` grants the\r\napplication access to both the `'a'` and `'b'` rights, individually).\r\n\r\nEach application has a default scope which is included in the tickets issued to the application\r\nunless the grant specifies a subset of the application scope. Applications cannot be granted scopes\r\nnot present in their default set.\r\n\r\n#### Rsvp\r\n\r\nWhen the user authorizes the application access request, the server issues an rsvp which is an\r\nencoded string containing the application identifier, the grant identifier, and an expiration.\r\n\r\n## API\r\n\r\nThe Oz public API is offered as a full toolkit to implement the protocol as-is or to modify it to\r\nfit custom security needs. Most implementations will only need to use the [endpoints functions](#ozendpoints)\r\nmethods and the [`ticket.rsvp()`](#await-ticketrsvpapp-grant-encryptionPassword-options) method\r\ndirectly.\r\n\r\n### Shared objects\r\n\r\n#### `app` object\r\n\r\nAn object describing an application where:\r\n- `id` - the application identifier.\r\n- `scope` - an array with the default application scope.\r\n- `delegate` - if `true`, the application is allowed to delegate a ticket to another application.\r\n  Defaults to `false`.\r\n- `key` - the shared secret used to authenticate.\r\n- `algorithm` - the HMAC algorithm used to authenticate (e.g. HMAC-SHA256).\r\n\r\n#### `grant` object\r\n\r\nAn object describing a user grant where:\r\n- `id` - the grant identifier.\r\n- `app` - the application identifier.\r\n- `user` - the user identifier.\r\n- `exp` - grant expiration time in milliseconds since 1/1/1970.\r\n- `scope` - an array with the scope granted by the user to the application.\r\n\r\n#### `ticket` response\r\n\r\nAn object describing a ticket and its public properties:\r\n- `id` - the ticket identifier used for making authenticated Hawk requests.\r\n- `key` - a shared secret used to authenticate.\r\n- `algorithm` - the HMAC algorithm used to authenticate (e.g. HMAC-SHA256).\r\n- `exp` - ticket expiration time in milliseconds since 1/1/1970.\r\n- `app` - the application id the ticket was issued to.\r\n- `user` - the user id if the ticket represents access to user resources. If no user id is\r\n  included, the ticket allows the application access to the application own resources only.\r\n- `scope` - the ticket [scope](#scope). Defaults to `[]` if no scope is specified.\r\n- `grant` - if `user` is set, includes the [grant](#grant) identifier referencing the authorization\r\n    granted by the user to the application. Can be a unique identifier or string encoding the grant\r\n    information as long as the server is able to parse the information later.\r\n- `delegate` - if `false`, the ticket cannot be delegated regardless of the application permissions.\r\n  Defaults to `true` which means use the application permissions to delegate.\r\n- `dlg` - if the ticket is the result of access delegation, the application id of the delegating\r\n    application.\r\n- `ext` - custom server public data attached to the ticket.\r\n\r\n### `Oz.client`\r\n\r\nUtilities used for making authenticated Oz requests.\r\n\r\n#### `Oz.client.header(uri, method, ticket, [options])`\r\n\r\nA convenience utility to generate the application Hawk request authorization header for making\r\nauthenticated Oz requests where:\r\n- `uri` - the request URI.\r\n- `method` - the request HTTP method.\r\n- `ticket` - the authorization [ticket](#ticket-response).\r\n- `options` - additional Hawk `Hawk.client.header()` options.\r\n\r\n#### `new Oz.client.Connection(options)`\r\n\r\nCreates an **oz** client connection manager for easier access to protected resources. The client\r\nmanages the ticket lifecycle and will automatically refresh the ticken when expired. Accepts the\r\nfollowing options:\r\n- `endpoints` - an object containing the server protocol endpoints:\r\n    `app` - the application credentials endpoint path. Defaults to `'/oz/app'`.\r\n    `reissue` - the ticket reissue endpoint path. Defaults to `'/oz/reissue'`.\r\n- `uri` - required, the server full root uri without path (e.g. 'https://example.com').\r\n- `credentials` - required, the application **hawk** credentials.\r\n\r\n##### `await connection.request(path, ticket, options)`\r\n\r\nRequests a protected resource where:\r\n- `path` - the resource path (e.g. '/resource').\r\n- `ticket` - the application or user ticket. If the ticket is expired, it will automatically\r\n  attempt to refresh it.\r\n- `options` - optional configuration object where:\r\n    - `method` - the HTTP method (e.g. 'GET'). Defaults to `'GET'`.\r\n    - `payload` - the request payload object or string. Defaults to no payload.\r\n\r\nReturn value: `{ result, code, ticket }` where:\r\n    - `result` - the requested resource (parsed to object if JSON).\r\n    - `code` - the HTTP response code.\r\n    - `ticket` - the ticket used to make the request (may be different from the ticket provided\r\n      when the ticket was expired and refreshed).\r\n    - throws request errors.\r\n\r\n##### `await connection.app(path, options)`\r\n\r\nRequests a protected resource using a shared application ticket where:\r\n- `path` - the resource path (e.g. '/resource').\r\n- `options` - optional configuration object where:\r\n    - `method` - the HTTP method (e.g. 'GET'). Defaults to `'GET'`.\r\n    - `payload` - the request payload object or string. Defaults to no payload.\r\n\r\nReturn value: `{ result, code, ticket }` where:\r\n    - `result` - the requested resource (parsed to object if JSON).\r\n    - `code` - the HTTP response code.\r\n    - `ticket` - the ticket used to make the request (may be different from the ticket provided\r\n      when the ticket was expired and refreshed).\r\n    - throws request errors.\r\n\r\nOnce an application ticket is obtained internally using the provided **hawk** credentials in the\r\nconstructor, it will be reused by called to `connection.app()`. If it expires, it will\r\nautomatically refresh and stored for future usage.\r\n\r\n##### `await connection.reissue(ticket)`\r\n\r\nReissues (refresh) a ticket where:\r\n- `ticket` - the ticket being reissued.\r\n\r\nReturn value: the reissued ticket.\r\n\r\n### `Oz.endpoints`\r\n\r\nThe endpoint methods provide a complete HTTP request handler implementation which is designed to\r\nbe plugged into an HTTP framework such as [**hapi**](http://hapijs.com). The\r\n[**scarecrow**](https://github.com/hueniverse/scarecrow) plugin provides an example of how these\r\nmethods integrate with an existing server implementation.\r\n\r\n#### Endpoints options\r\n\r\nEach endpoint method accepts a set of options.\r\n\r\n##### `encryptionPassword`\r\n\r\nA required string used to generate the ticket encryption key. Must be kept confidential. The string\r\nmust be the same across all Oz methods and deployments in order to allow the server to parse and\r\ngenerate compatible encoded strings.\r\n\r\nThe `encryptionPassword` value is passed directly to the [Iron](https://github.com/hueniverse/iron)\r\nmodule which supports additional inputs for pre-generated encryption and integrity keys as well as\r\npassword rotation.\r\n\r\n##### `loadAppFunc`\r\n\r\nThe application lookup method using the signature `async function(id)` where:\r\n- `id` - the application identifier being requested.\r\n- the function must return an [application](#app-object) object or throw an error;\r\n\r\n##### `loadGrantFunc`\r\n\r\nThe grant lookup method using the signature `async function(id)` where:\r\n- `id` - the grant identifier being requested.\r\n- the function must return an object `{ grant, ext }` or throw an error where:\r\n    - `grant` - a [grant](#grant-object) object.\r\n    - `ext` - an optional object used to include custom server data in the ticket and response where:\r\n        - `public` - an object which is included in the response under `ticket.ext` and in\r\n            the encoded ticket as `ticket.ext.public`.\r\n        - `private` - an object which is included only in the encoded ticket as\r\n            `ticket.ext.private`.\r\n\r\n#### `await endpoints.app(req, payload, options)`\r\n\r\nAuthenticates an application request and if valid, issues an application ticket where:\r\n- `req` - the node HTTP server request object.\r\n- `payload` - this argument is ignored and is defined only to keep the endpoint method signature\r\n  consistent with the other endpoints.\r\n- `options` - protocol [configuration](#endpoints-options) options where:\r\n    - `encryptionPassword` - required.\r\n    - `loadAppFunc` - required.\r\n    - `ticket` - optional [ticket options](#ticket-options) used for parsing and issuance.\r\n    - `hawk` - optional [Hawk](https://github.com/hueniverse/hawk) configuration object. Defaults to\r\n      the Hawk defaults.\r\n\r\nReturn value: a [ticket response](#ticket-response) object or throws an error.\r\n        \r\n#### `await endpoints.reissue(req, payload, options)`\r\n\r\nReissue an existing ticket (the ticket used to authenticate the request) where:\r\n- `req` - the node HTTP server request object.\r\n- `payload` - The HTTP request payload fully parsed into an object with the following optional keys:\r\n    - `issueTo` - a different application identifier than the one of the current application. Used\r\n      to delegate access between applications. Defaults to the current application.\r\n    - `scope` - an array of scope strings which must be a subset of the ticket's granted scope.\r\n      Defaults to the original ticket scope.\r\n- `options` - protocol [configuration](#endpoints-options) options where:\r\n    - `encryptionPassword` - required.\r\n    - `loadAppFunc` - required.\r\n    - `loadGrantFunc` - required.\r\n    - `ticket` - optional [ticket options](#ticket-options) used for parsing and issuance.\r\n    - `hawk` - optional [Hawk](https://github.com/hueniverse/hawk) configuration object. Defaults to\r\n      the Hawk defaults.\r\n\r\nReturn value: a [ticket response](#ticket-response) object or throws an error.\r\n\r\n#### `await endpoints.rsvp(req, payload, options)`\r\n\r\nAuthenticates an application request and if valid, exchanges the provided rsvp with a ticket where:\r\n- `req` - the node HTTP server request object.\r\n- `payload` - The HTTP request payload fully parsed into an object with the following keys:\r\n    - `rsvp` - the required rsvp string provided to the user to bring back to the application after\r\n      granting authorization.\r\n- `options` - protocol [configuration](#endpoints-options) options where:\r\n    - `encryptionPassword` - required.\r\n    - `loadAppFunc` - required.\r\n    - `loadGrantFunc` - required.\r\n    - `ticket` - optional [ticket options](#ticket-options) used for parsing and issuance.\r\n    - `hawk` - optional [Hawk](https://github.com/hueniverse/hawk) configuration object. Defaults to\r\n      the Hawk defaults.\r\n\r\nReturn value: a [ticket response](#ticket-response) object or throws an error.\r\n\r\n### `Oz.hawk`\r\n\r\nProvides direct access to the underlying [Hawk](https://github.com/hueniverse/hawk) module.\r\n\r\n### `Oz.scope`\r\n\r\nScope manipulation utilities.\r\n\r\n#### `Oz.scope.validate(scope)`\r\n\r\nValidates a scope for proper structure (an array of unique strings) where:\r\n- `scope` - the array being validated.\r\n\r\nReturns an `Error` is the scope failed validation, otherwise `null` for valid scope.\r\n\r\n#### `Oz.scope.isSubset(scope, subset)`\r\n\r\nChecks whether a scope is a subset of another where:\r\n- `scope` - the superset.\r\n- `subset` - the subset.\r\n\r\nReturns `true` if the `subset` is fully contained with `scope`, otherwise `false.\r\n\r\n### `Oz.server`\r\n\r\nServer implementation utilities.\r\n\r\n#### `await Oz.server.authenticate(req, encryptionPassword, options)`\r\n\r\nAuthenticates an incoming request using [Hawk](https://github.com/hueniverse/hawk) and performs\r\nadditional Oz-specific validations where:\r\nAuthenticates an application request and if valid, issues an application ticket where:\r\n- `req` - the node HTTP server request object.\r\n- `encryptionPassword` - the ticket [encryption password](#encryptionPassword).\r\n- `options` - protocol [configuration](#endpoints-options) options where:\r\n    - `ticket` - optional [ticket options](#ticket-options) used for parsing and issuance.\r\n    - `hawk` - optional [Hawk](https://github.com/hueniverse/hawk) configuration object. Defaults to\r\n      the Hawk defaults.\r\n\r\nReturn value: `{ ticket, artifacts }` or throws an error where:\r\n    - `ticket` - the decoded [ticket response](#ticket-response) object.\r\n    - `artifacts` - Hawk protocol artifacts.\r\n\r\n### `Oz.ticket`\r\n\r\nTicket issuance, parsing, encoding, and re-issuance utilities.\r\n\r\n#### Ticket options\r\n\r\nThe following are the supported ticket parsing and issuance options passed to the corresponding\r\nticket methods. Each endpoint utilizes a different subset of these options but it is safe to pass\r\none common object to all (it will ignore unused options):\r\n- `ttl` - when generating a ticket, sets the ticket lifetime in milliseconds. Defaults to\r\n    `3600000` (1 hour) for tickets and `60000` (1 minutes) for rsvps.\r\n- `delegate` - if `false`, the ticket cannot be delegated regardless of the application permissions.\r\n  Defaults to `true` which means use the application permissions to delegate.\r\n- `iron` - overrides the default [Iron](https://github.com/hueniverse/iron) configuration.\r\n- `keyBytes` - the [Hawk](https://github.com/hueniverse/hawk) key length in bytes. Defaults to\r\n    `32`.\r\n- `hmacAlgorithm` - the [Hawk](https://github.com/hueniverse/hawk) HMAC algorithm. Defaults to\r\n    `sha256`.\r\n- `ext` - an object used to provide custom server data to be included in the ticket (this option\r\n    will be ignored when passed to an endpoint method and the `loadGrantFunc` function returns an\r\n    `ext` value) where:\r\n    - `public` - an object which is included in the response under `ticket.ext` and in\r\n        the encoded ticket as `ticket.ext.public`.\r\n    - `private` - an object which is included only in the encoded ticket as\r\n        `ticket.ext.private`.\r\n\r\n#### `await ticket.issue(app, grant, encryptionPassword, options)`\r\n\r\nIssues a new application or user ticket where:\r\n- `app` - the application [object](#app-object) the ticket is being issued to.\r\n- `grant` - the grant [object](#grant-object) the ticket is being issued with if the ticket\r\n  represents user access. `null` if the ticket is an application-only ticket.\r\n- `encryptionPassword` - the ticket [encryption password](#encryptionPassword).\r\n- `options` - ticket generation [options](#ticket-options).\r\n\r\nReturn value: a [ticket response](#ticket-response) object.\r\n\r\n#### `await ticket.reissue(parentTicket, grant, encryptionPassword, options)`\r\n\r\nReissues a application or user ticket where:\r\n- `parentTicket` - the [ticket](#ticket-response) object being reissued.\r\n- `grant` - the grant [object](#grant-object) the ticket is being issued with if the ticket\r\n  represents user access. `null` if the ticket is an application-only ticket.\r\n- `encryptionPassword` - the ticket [encryption password](#encryptionPassword).\r\n- `options` - ticket generation [options](#ticket-options).\r\n\r\nReturn value: a [ticket response](#ticket-response) object or throws an error.\r\n\r\n#### `await ticket.rsvp(app, grant, encryptionPassword, options)`\r\n\r\nGenerates an rsvp string representing a user grant where:\r\n- `app` - the application [object](#app-object) the ticket is being issued to.\r\n- `grant` - the grant [object](#grant-object) the ticket is being issued with if the ticket\r\n  represents user access. `null` if the ticket is an application-only ticket.\r\n- `encryptionPassword` - the ticket [encryption password](#encryptionPassword).\r\n- `options` - ticket generation [options](#ticket-options).\r\n\r\nReturn value: the rsvp string or throws an error.\r\n\r\n#### `await ticket.generate(ticket, encryptionPassword, options)`\r\n\r\nAdds the cryptographic properties to a ticket and prepares the response where:\r\n- `ticket` - an incomplete [ticket](#ticket-response) object with the following:\r\n    - `exp`\r\n    - `app`\r\n    - `user`\r\n    - `scope`\r\n    - `grant`\r\n    - `dlg`\r\n- `encryptionPassword` - the ticket [encryption password](#encryptionPassword).\r\n- `options` - ticket generation [options](#ticket-options).\r\n\r\nReturn value: the completed [ticket response](#ticket-response) object or throws an error.\r\n\r\n#### `await ticket.parse(id, encryptionPassword, options)`\r\n\r\nDecodes a ticket identifier into a ticket response where:\r\n- `id` - the ticket id which contains the encoded ticket information.\r\n- `encryptionPassword` - the ticket [encryption password](#encryptionPassword).\r\n- `options` - ticket generation [options](#ticket-options).\r\n\r\nReturn value: a [ticket response](#ticket-response) object or throws an error.\r\n\r\n## Security Considerations\r\n\r\nThe greatest sources of security risks are usually found not in Oz but in the policies and\r\nprocedures surrounding its use. Implementers are strongly encouraged to assess how this protocol\r\naddresses their security requirements. This section includes an incomplete list of security\r\nconsiderations that must be reviewed and understood before deploying Oz on the server. Most of these\r\nsecurity considerations are the same as the\r\n[security considerations for Hawk](https://github.com/hueniverse/hawk#security-considerations), and\r\nmany of the protections provided in Hawk depend on whether or not they are used and how they are\r\nused.\r\n\r\n### Ticket and Application Hawk Credentials Transmission\r\n\r\nOz does not provide any mechanism for obtaining or transmitting the set of shared Hawk credentials\r\nfor the application. Any mechanism the application uses to obtain the Hawk credentials must ensure\r\nthat these transmissions are protected using transport-layer mechanisms such as TLS.\r\n\r\n### Plaintext Storage of Ticket and Application Hawk Credentials\r\n\r\nThe ticket keys and application Hawk keys in Oz function the same way passwords do in traditional\r\nauthentication systems. In order to compute the request MAC, the server must have access to the key\r\nin plain-text form. This is in contrast, for example, to modern operating systems, which store only\r\na one-way hash of user credentials.\r\n\r\nIf an attacker were to gain access to these keys—or worse, to the server's database of all such\r\nkeys—he or she would be able to perform any action on behalf of the user. Accordingly, it is\r\ncritical that servers protect these keys from unauthorized access.\r\n\r\n### Entropy of Keys\r\n\r\nUnless a transport-layer security protocol is used, eavesdroppers will have full access to\r\nauthenticated requests and request MAC values, and will thus be able to mount offline brute-force\r\nattacks to recover the key used. Servers should be careful to assign ticket keys and application\r\nHawk keys that are long and random enough to resist such attacks for at least the length of time\r\nthat the ticket credentials or the application Hawk credentials are valid.\r\n\r\nFor example, if the credentials are valid for two weeks, servers should ensure that it is not\r\npossible to mount a brute force attack that recovers the key in less than two weeks. Of course,\r\nservers are urged to err on the side of caution and use the longest key reasonable.\r\n\r\nIt is equally important that the pseudo-random number generator (PRNG) used to generate these keys\r\nbe of sufficiently high quality. Many PRNG implementations generate number sequences that may appear\r\nto be random, but nevertheless exhibit patterns or other weaknesses which make cryptanalysis or\r\nbrute force attacks easier. Implementers should be careful to use cryptographically secure PRNGs to\r\navoid these problems.\r\n\r\n### Application Redirect URI\r\n\r\nIf the server redirects the RSVP to the application, the server should require a redirect URI for\r\nthe application when the application is registered. This redirect URI would be used by the server to\r\nredirect back to the application with the RSVP after the user approves the grant. If the application\r\nsupplies the redirect URI to the server and the server uses only this redirect URI to send the RSVP\r\nto the application, it is possible for an attacker to intercept the request from the application to\r\nserver, change the supplied redirect URI to steal the RSVP, and exchange the RSVP for a user ticket\r\nif the application ticket credentials or application Hawk credentials were also stolen by the\r\nattacker. Additionally, the server requiring the registration of a redirect URI of an application\r\nadds an extra layer of security if the server redirects the RSVP to the application, because it\r\nlimits what the attacker can do if he or she steals the application ticket credentials or\r\napplication Hawk credentials.\r\n","_attachments":{},"homepage":"https://github.com/hueniverse/oz#readme","bugs":{"url":"https://github.com/hueniverse/oz/issues"},"license":"BSD-3-Clause"}