{"_id":"@hpke/hybridkem-x-wing","_rev":"9-c9101879b67f2bf4a62ebbd4f460cb2a","name":"@hpke/hybridkem-x-wing","dist-tags":{"latest":"0.7.0"},"versions":{"0.1.0":{"name":"@hpke/hybridkem-x-wing","version":"0.1.0","keywords":["hpke","rfc9180","kem","kyber","x25519","post-quantum","security","encryption"],"author":{"name":"Ajitomi Daisuke"},"license":"MIT","_id":"@hpke/hybridkem-x-wing@0.1.0","maintainers":[{"name":"dajiaji","email":"ajitomi@gmail.com"}],"homepage":"https://github.com/dajiaji/hpke-js#readme","bugs":{"url":"https://github.com/dajiaji/hpke-js/issues"},"dist":{"shasum":"c5e27b0eb292a2d61f4b80daa439d627825aff08","tarball":"https://registry.npmjs.org/@hpke/hybridkem-x-wing/-/hybridkem-x-wing-0.1.0.tgz","fileCount":97,"integrity":"sha512-wSXin+STJJOW1FdPCtMCvIl9CfewxMP/f5q8SxrXTskOm4krt2X9SkenEq+7b1ywzeCwJUteB2Prxd1SnRZGwg==","signatures":[{"sig":"MEUCIBJwgucBkqCh0j29J7gAGWG175DLIVcH3hlCy0b7WAzQAiEAok0P80qJoEKxGfK5TriyXMIgqtEX2Zfo9veB5/Mrg+g=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":98695},"main":"./script/mod.js","types":"./esm/mod.d.ts","module":"./esm/mod.js","engines":{"node":">=16.0.0"},"exports":{".":{"import":"./esm/mod.js","require":"./script/mod.js"},"./package.json":"./package.json"},"gitHead":"3eae0031623a86045e154e5bfffdee6478f45fbf","scripts":{"test":"node test_runner.js"},"_npmUser":{"name":"dajiaji","email":"ajitomi@gmail.com"},"repository":{"url":"git+https://github.com/dajiaji/hpke-js.git","type":"git"},"_npmVersion":"10.8.2","description":"A Hybrid Public Key Encryption (HPKE) module extension for a hybrid post-quantum KEM, X25519Kyber768Draft00","directories":{},"sideEffects":false,"_nodeVersion":"20.18.0","dependencies":{"mlkem":"^2.2.0","@hpke/common":"^1.4.3","@noble/hashes":"^1.4.0","@hpke/dhkem-x25519":"^1.4.3"},"_hasShrinkwrap":false,"devDependencies":{"@hpke/core":"^1.4.3","picocolors":"^1.0.0","@types/node":"^20.9.0","@deno/shim-deno":"~0.18.0"},"_npmOperationalInternal":{"tmp":"tmp/hybridkem-x-wing_0.1.0_1730645743478_0.7803567219057552","host":"s3://npm-registry-packages"}},"0.2.0":{"name":"@hpke/hybridkem-x-wing","version":"0.2.0","keywords":["hpke","ml-kem","kyber","x25519","post-quantum","pqc","x-wing","security","encryption"],"author":{"name":"Ajitomi Daisuke"},"license":"MIT","_id":"@hpke/hybridkem-x-wing@0.2.0","maintainers":[{"name":"dajiaji","email":"ajitomi@gmail.com"}],"homepage":"https://github.com/dajiaji/hpke-js#readme","bugs":{"url":"https://github.com/dajiaji/hpke-js/issues"},"dist":{"shasum":"8c3c6858ea83b244be29a22bec0b3e1e28bca487","tarball":"https://registry.npmjs.org/@hpke/hybridkem-x-wing/-/hybridkem-x-wing-0.2.0.tgz","fileCount":97,"integrity":"sha512-ystQcGS4D37EXeBBYfw2HrXmELNib9gJVkwd5+rx5llnHwQtZGex93594exS2I58JsLngECl69CyqdE6L15TEQ==","signatures":[{"sig":"MEYCIQDB9VHgx2jm4n74WnmjYOmpOllfMern9pSFbuGFOyIrhwIhANG9qghwvo+1GK+0I3H3zd1XkDeMDxA1QE+fhGAiQW5a","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":98592},"main":"./script/mod.js","types":"./esm/mod.d.ts","module":"./esm/mod.js","engines":{"node":">=16.0.0"},"exports":{".":{"import":"./esm/mod.js","require":"./script/mod.js"},"./package.json":"./package.json"},"gitHead":"815cda57ff317fc4217a7f5957b72f732d00b838","scripts":{"test":"node test_runner.js"},"_npmUser":{"name":"dajiaji","email":"ajitomi@gmail.com"},"repository":{"url":"git+https://github.com/dajiaji/hpke-js.git","type":"git"},"_npmVersion":"10.8.2","description":"A Hybrid Public Key Encryption (HPKE) module extension for X-Wing: general-purpose hybrid post-quantum KEM.","directories":{},"sideEffects":false,"_nodeVersion":"20.18.0","dependencies":{"mlkem":"^2.2.0","@hpke/common":"^1.4.3","@noble/hashes":"^1.5.0","@hpke/dhkem-x25519":"^1.4.3"},"_hasShrinkwrap":false,"devDependencies":{"@hpke/core":"^1.4.3","picocolors":"^1.0.0","@types/node":"^20.9.0","@deno/shim-deno":"~0.18.0"},"_npmOperationalInternal":{"tmp":"tmp/hybridkem-x-wing_0.2.0_1730687806286_0.3540260126017096","host":"s3://npm-registry-packages"}},"0.4.0":{"name":"@hpke/hybridkem-x-wing","version":"0.4.0","keywords":["hpke","ml-kem","kyber","x25519","post-quantum","pqc","x-wing","security","encryption"],"author":{"name":"Ajitomi Daisuke"},"license":"MIT","_id":"@hpke/hybridkem-x-wing@0.4.0","maintainers":[{"name":"dajiaji","email":"ajitomi@gmail.com"}],"homepage":"https://github.com/dajiaji/hpke-js#readme","bugs":{"url":"https://github.com/dajiaji/hpke-js/issues"},"dist":{"shasum":"912e6ad34ccd51cc7927ff72473770a9aa3467f1","tarball":"https://registry.npmjs.org/@hpke/hybridkem-x-wing/-/hybridkem-x-wing-0.4.0.tgz","fileCount":97,"integrity":"sha512-CsuNSvVS5lMr0oNCtZuRsPt/GJKUCHYuoAKNJfWe7orAjL3cztwpDAjB47wkt92gqmeQ48Yj94+jer42YQPqAA==","signatures":[{"sig":"MEYCIQCF0ibnrPoJIfqCetiJ+1g3kSquj3rCWL4vqvayKUz2ZAIhAPcjG6mGBur25K6rToxVTE2Bc6u7eKKrOnlmTYPw3bNW","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":103027},"main":"./script/mod.js","types":"./esm/mod.d.ts","module":"./esm/mod.js","engines":{"node":">=16.0.0"},"exports":{".":{"import":"./esm/mod.js","require":"./script/mod.js"},"./package.json":"./package.json"},"gitHead":"7d1a405e9410e5ddca6f5dbeb31e486fd087a10e","scripts":{"test":"node test_runner.js"},"_npmUser":{"name":"dajiaji","email":"ajitomi@gmail.com"},"repository":{"url":"git+https://github.com/dajiaji/hpke-js.git","type":"git"},"_npmVersion":"10.8.2","description":"A Hybrid Public Key Encryption (HPKE) module extension for X-Wing: general-purpose hybrid post-quantum KEM.","directories":{},"sideEffects":false,"_nodeVersion":"20.18.0","dependencies":{"mlkem":"^2.3.0","@hpke/common":"^1.6.1","@noble/hashes":"^1.5.0","@hpke/dhkem-x25519":"^1.6.0"},"_hasShrinkwrap":false,"devDependencies":{"@hpke/core":"^1.6.0","picocolors":"^1.0.0","@types/node":"^20.9.0","@deno/shim-deno":"~0.18.0"},"_npmOperationalInternal":{"tmp":"tmp/hybridkem-x-wing_0.4.0_1730822163920_0.6506879220769164","host":"s3://npm-registry-packages"}},"0.5.0":{"name":"@hpke/hybridkem-x-wing","version":"0.5.0","keywords":["hpke","ml-kem","kyber","x25519","post-quantum","pqc","x-wing","security","encryption"],"author":{"name":"Ajitomi Daisuke"},"license":"MIT","_id":"@hpke/hybridkem-x-wing@0.5.0","maintainers":[{"name":"dajiaji","email":"ajitomi@gmail.com"}],"homepage":"https://github.com/dajiaji/hpke-js#readme","bugs":{"url":"https://github.com/dajiaji/hpke-js/issues"},"dist":{"shasum":"bda3c52c3052c45d5dee34ffa297c692c7b5596b","tarball":"https://registry.npmjs.org/@hpke/hybridkem-x-wing/-/hybridkem-x-wing-0.5.0.tgz","fileCount":101,"integrity":"sha512-9YSS3wvfClSb1Sfnx6raaVXDf7day9/Js3cdtXZaM+/iPUVcjl6npDaH4PKYPoanFksoYSiFmgqDkyo/kMUTEg==","signatures":[{"sig":"MEUCIQCc2FTLdMfGr5INBQfoDqM5rWr7zDGONBsOCgu+dLtfegIgblFBaHMJWvZKd3PEeh2YWTH2TU5ocBn+XjT/pNWf18U=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hpke%2fhybridkem-x-wing@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":114818},"main":"./script/mod.js","types":"./esm/mod.d.ts","module":"./esm/mod.js","engines":{"node":">=16.0.0"},"exports":{".":{"import":"./esm/mod.js","require":"./script/mod.js"},"./package.json":"./package.json"},"gitHead":"5a75587da5ab731c9e1f53cfdb55671d9014608f","scripts":{"test":"node test_runner.js"},"_npmUser":{"name":"dajiaji","email":"ajitomi@gmail.com"},"repository":{"url":"git+https://github.com/dajiaji/hpke-js.git","type":"git"},"_npmVersion":"10.8.2","description":"A Hybrid Public Key Encryption (HPKE) module extension for X-Wing: general-purpose hybrid post-quantum KEM.","directories":{},"sideEffects":false,"_nodeVersion":"20.18.0","dependencies":{"mlkem":"^2.3.0","@hpke/common":"^1.7.0","@noble/hashes":"^1.5.0","@hpke/dhkem-x25519":"^1.6.0"},"_hasShrinkwrap":false,"devDependencies":{"@hpke/core":"^1.7.0","picocolors":"^1.0.0","@types/node":"^20.9.0","@deno/shim-deno":"~0.18.0"},"_npmOperationalInternal":{"tmp":"tmp/hybridkem-x-wing_0.5.0_1730995061776_0.8933992318573771","host":"s3://npm-registry-packages"}},"0.5.1":{"name":"@hpke/hybridkem-x-wing","version":"0.5.1","keywords":["hpke","ml-kem","kyber","x25519","post-quantum","pqc","x-wing","security","encryption"],"author":{"name":"Ajitomi Daisuke"},"license":"MIT","_id":"@hpke/hybridkem-x-wing@0.5.1","maintainers":[{"name":"dajiaji","email":"ajitomi@gmail.com"}],"homepage":"https://github.com/dajiaji/hpke-js#readme","bugs":{"url":"https://github.com/dajiaji/hpke-js/issues"},"dist":{"shasum":"f74ae6e3bee820f8a99ca24a88342ca7090ade08","tarball":"https://registry.npmjs.org/@hpke/hybridkem-x-wing/-/hybridkem-x-wing-0.5.1.tgz","fileCount":101,"integrity":"sha512-Ld4ok/jEiUmCrhZHCIaDQbYpvkbrqy+hsEHp7CXVJLPPZkhiU0XFAxhM0CmoBVHuv3V76dG6HKgmc4YSDvs1gg==","signatures":[{"sig":"MEUCIQD/g8td3gwJWCtp27bo9xIFyjj1nePExjojVYvAUxl/9AIgVJbU5EUDOZIE40NIoTCVWFd+mAscJOkJGV0s3Iv/8ZE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hpke%2fhybridkem-x-wing@0.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":115456},"main":"./script/mod.js","types":"./esm/mod.d.ts","module":"./esm/mod.js","engines":{"node":">=16.0.0"},"exports":{".":{"import":"./esm/mod.js","require":"./script/mod.js"},"./package.json":"./package.json"},"gitHead":"9d48d3e232ffadba62274bb1975d96438abdbafa","scripts":{"test":"node test_runner.js"},"_npmUser":{"name":"dajiaji","email":"ajitomi@gmail.com"},"repository":{"url":"git+https://github.com/dajiaji/hpke-js.git","type":"git"},"_npmVersion":"10.9.2","description":"A Hybrid Public Key Encryption (HPKE) module extension for X-Wing: general-purpose hybrid post-quantum KEM.","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","dependencies":{"mlkem":"^2.3.1","@hpke/common":"^1.7.2","@noble/hashes":"^1.7.1","@hpke/dhkem-x25519":"^1.6.2"},"_hasShrinkwrap":false,"devDependencies":{"@hpke/core":"^1.7.2","picocolors":"^1.0.0","@types/node":"^20.9.0","@deno/shim-deno":"~0.18.0"},"_npmOperationalInternal":{"tmp":"tmp/hybridkem-x-wing_0.5.1_1743305605163_0.10853028776616203","host":"s3://npm-registry-packages-npm-production"}},"0.5.2":{"name":"@hpke/hybridkem-x-wing","version":"0.5.2","keywords":["hpke","ml-kem","kyber","x25519","post-quantum","pqc","x-wing","security","encryption"],"author":{"name":"Ajitomi Daisuke"},"license":"MIT","_id":"@hpke/hybridkem-x-wing@0.5.2","maintainers":[{"name":"dajiaji","email":"ajitomi@gmail.com"}],"homepage":"https://github.com/dajiaji/hpke-js#readme","bugs":{"url":"https://github.com/dajiaji/hpke-js/issues"},"dist":{"shasum":"ba0eae69039519b4eabcd19a2d694494d9019b43","tarball":"https://registry.npmjs.org/@hpke/hybridkem-x-wing/-/hybridkem-x-wing-0.5.2.tgz","fileCount":105,"integrity":"sha512-3b92Ie8RqR1Rqq3QdY15kUaSCJKEiXCwy/d7AxwRJDXEZ/yEurKART0AHaICdgaMP2Z9R5V93lxxPQf8P7w8Hg==","signatures":[{"sig":"MEQCIFCn2nnw+BNAxxlJcSofZFC7Nj+yewXM2ffgVvbTmfRZAiAhEOdDq8h/96fn5MO+Xw49okrf+fOAv3RiUiSxDUOzUg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hpke%2fhybridkem-x-wing@0.5.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":116202},"main":"./script/mod.js","types":"./esm/mod.d.ts","module":"./esm/mod.js","engines":{"node":">=16.0.0"},"exports":{".":{"import":"./esm/mod.js","require":"./script/mod.js"},"./package.json":"./package.json"},"gitHead":"1318097655cd63e41c94cd76e818ed82d416d819","scripts":{"test":"node test_runner.js"},"_npmUser":{"name":"dajiaji","email":"ajitomi@gmail.com"},"repository":{"url":"git+https://github.com/dajiaji/hpke-js.git","type":"git"},"_npmVersion":"10.9.2","description":"A Hybrid Public Key Encryption (HPKE) module extension for X-Wing: general-purpose hybrid post-quantum KEM.","directories":{},"sideEffects":false,"_nodeVersion":"22.17.0","dependencies":{"mlkem":"^2.3.1","@hpke/common":"^1.7.3","@noble/hashes":"^1.8.0","@hpke/dhkem-x25519":"^1.6.3"},"_hasShrinkwrap":false,"devDependencies":{"@hpke/core":"^1.7.3","picocolors":"^1.0.0","@types/node":"^20.9.0","@deno/shim-deno":"~0.18.0"},"_npmOperationalInternal":{"tmp":"tmp/hybridkem-x-wing_0.5.2_1752370219207_0.5751174944530693","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@hpke/hybridkem-x-wing","version":"0.6.0","keywords":["hpke","ml-kem","kyber","x25519","post-quantum","pqc","x-wing","security","encryption"],"author":{"name":"Ajitomi Daisuke"},"license":"MIT","_id":"@hpke/hybridkem-x-wing@0.6.0","maintainers":[{"name":"dajiaji","email":"ajitomi@gmail.com"}],"homepage":"https://github.com/dajiaji/hpke-js#readme","bugs":{"url":"https://github.com/dajiaji/hpke-js/issues"},"dist":{"shasum":"65d83afcb6ded094e7ad4f613720263f0cc75698","tarball":"https://registry.npmjs.org/@hpke/hybridkem-x-wing/-/hybridkem-x-wing-0.6.0.tgz","fileCount":105,"integrity":"sha512-4Z4lP6CmrTMuKORM4MZmf7fwWVkgzy8utmAx19hqP4KE5hTdmAq/c9UQbeomLbJDonx5wVXVYqGocX1+pxKnWg==","signatures":[{"sig":"MEUCIC5qwVq9oCC5HGSYB+amEiD0w+tgS3FxZBdkZ89Y6/5GAiEAvqlV3lhVpn61Nf+9e1OUT0CZ2AeE70XS2M7WgcTDZDE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hpke%2fhybridkem-x-wing@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":116669},"main":"./script/mod.js","types":"./esm/mod.d.ts","module":"./esm/mod.js","engines":{"node":">=16.0.0"},"exports":{".":{"import":"./esm/mod.js","require":"./script/mod.js"},"./package.json":"./package.json"},"gitHead":"0abf0bbe4c3770369b24e8696ac40295b21ac0fa","scripts":{"test":"node test_runner.js"},"_npmUser":{"name":"dajiaji","email":"ajitomi@gmail.com"},"repository":{"url":"git+https://github.com/dajiaji/hpke-js.git","type":"git"},"_npmVersion":"10.9.3","description":"A Hybrid Public Key Encryption (HPKE) module extension for X-Wing: general-purpose hybrid post-quantum KEM.","directories":{},"sideEffects":false,"_nodeVersion":"22.18.0","dependencies":{"mlkem":"^2.5.0","@hpke/common":"^1.7.3","@hpke/dhkem-x25519":"^1.6.3"},"_hasShrinkwrap":false,"devDependencies":{"@hpke/core":"^1.7.3","picocolors":"^1.0.0","@types/node":"^20.9.0","@deno/shim-deno":"~0.18.0"},"_npmOperationalInternal":{"tmp":"tmp/hybridkem-x-wing_0.6.0_1754897906633_0.2692783607099931","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"@hpke/hybridkem-x-wing","version":"0.6.1","keywords":["hpke","ml-kem","kyber","x25519","post-quantum","pqc","x-wing","security","encryption"],"author":{"name":"Ajitomi Daisuke"},"license":"MIT","_id":"@hpke/hybridkem-x-wing@0.6.1","maintainers":[{"name":"dajiaji","email":"ajitomi@gmail.com"}],"homepage":"https://github.com/dajiaji/hpke-js#readme","bugs":{"url":"https://github.com/dajiaji/hpke-js/issues"},"dist":{"shasum":"ea5092fa9faac5a8aabf46db3d30a6abbbe4b390","tarball":"https://registry.npmjs.org/@hpke/hybridkem-x-wing/-/hybridkem-x-wing-0.6.1.tgz","fileCount":17,"integrity":"sha512-mNdGapyHPw9gEicUlBYlWGjOpWmQyC49dEqLm5QtGZOSjIVSjSTBX/Bq2VxXNTeNdsRYIpPOalTwYbop/+4Ykw==","signatures":[{"sig":"MEUCIQCz1+nJfz5C8CewOZ1CPY5Y7I0AlyBSlNuFJf/0rQtz8gIgezLynXNo5KI8ASZkJerShXc77Yv6ozf+l1wC8lAUO0A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hpke%2fhybridkem-x-wing@0.6.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":63547},"main":"./script/mod.js","types":"./esm/mod.d.ts","module":"./esm/mod.js","engines":{"node":">=16.0.0"},"exports":{".":{"import":"./esm/mod.js","require":"./script/mod.js"},"./package.json":"./package.json"},"gitHead":"ae68506f0080da7e7e7784e0b2d581cdf4e7d485","_npmUser":{"name":"dajiaji","email":"ajitomi@gmail.com"},"repository":{"url":"git+https://github.com/dajiaji/hpke-js.git","type":"git"},"_npmVersion":"10.9.3","description":"A Hybrid Public Key Encryption (HPKE) module extension for X-Wing: general-purpose hybrid post-quantum KEM.","directories":{},"sideEffects":false,"_nodeVersion":"22.18.0","dependencies":{"mlkem":"^2.5.0","@hpke/common":"^1.8.1","@hpke/dhkem-x25519":"^1.6.4"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^20.9.0"},"_npmOperationalInternal":{"tmp":"tmp/hybridkem-x-wing_0.6.1_1755254374800_0.07305241384909933","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@hpke/hybridkem-x-wing","version":"0.7.0","description":"A Hybrid Public Key Encryption (HPKE) module extension for X-Wing: general-purpose hybrid post-quantum KEM.","keywords":["hpke","ml-kem","kyber","x25519","post-quantum","pqc","x-wing","security","encryption"],"author":{"name":"Ajitomi Daisuke"},"homepage":"https://github.com/dajiaji/hpke-js#readme","repository":{"type":"git","url":"git+https://github.com/dajiaji/hpke-js.git"},"license":"MIT","bugs":{"url":"https://github.com/dajiaji/hpke-js/issues"},"main":"./script/mod.js","module":"./esm/mod.js","types":"./esm/mod.d.ts","exports":{".":{"import":"./esm/mod.js","require":"./script/mod.js"},"./package.json":"./package.json"},"sideEffects":false,"engines":{"node":">=16.0.0"},"dependencies":{"@hpke/common":"^1.10.0","@hpke/dhkem-x25519":"^1.8.0","mlkem":"^2.5.0"},"devDependencies":{"@types/node":"^20.9.0","@deno/shim-deno":"~0.18.0","picocolors":"^1.0.0"},"gitHead":"f9fbe3d5a6404f516df859e472c078c0d08e8057","_id":"@hpke/hybridkem-x-wing@0.7.0","_nodeVersion":"24.14.0","_npmVersion":"11.9.0","dist":{"integrity":"sha512-95M8gJMperA4iWwHFgsEkmxjKcvAX8M4koheFnT85zXcqLL/vBh4597ucw2wLol6d2dC6gpKp9ZApL4d6hmDzA==","shasum":"9f3c584beff59bface4b195ebfdba3e9f19cf3ec","tarball":"https://registry.npmjs.org/@hpke/hybridkem-x-wing/-/hybridkem-x-wing-0.7.0.tgz","fileCount":17,"unpackedSize":64282,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@hpke%2fhybridkem-x-wing@0.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIGQYgjwx/K0io7DzzfhlfxSbSetFrlH6y/MQkTblVJyUAiAxNYj+gMnIGVXbs95ALdGzLwm/tqGElKu6OABTTSx1zg=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:05d8c49a-7d14-4554-94a3-a9338b9641b7"}},"directories":{},"maintainers":[{"name":"dajiaji","email":"ajitomi@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/hybridkem-x-wing_0.7.0_1772979493751_0.759633095112219"},"_hasShrinkwrap":false}},"time":{"created":"2024-11-03T14:55:43.319Z","modified":"2026-03-08T14:18:14.223Z","0.1.0":"2024-11-03T14:55:43.702Z","0.2.0":"2024-11-04T02:36:46.466Z","0.4.0":"2024-11-05T15:56:04.101Z","0.5.0":"2024-11-07T15:57:41.994Z","0.5.1":"2025-03-30T03:33:25.391Z","0.5.2":"2025-07-13T01:30:19.390Z","0.6.0":"2025-08-11T07:38:26.818Z","0.6.1":"2025-08-15T10:39:34.993Z","0.7.0":"2026-03-08T14:18:13.915Z"},"bugs":{"url":"https://github.com/dajiaji/hpke-js/issues"},"author":{"name":"Ajitomi Daisuke"},"license":"MIT","homepage":"https://github.com/dajiaji/hpke-js#readme","keywords":["hpke","ml-kem","kyber","x25519","post-quantum","pqc","x-wing","security","encryption"],"repository":{"type":"git","url":"git+https://github.com/dajiaji/hpke-js.git"},"description":"A Hybrid Public Key Encryption (HPKE) module extension for X-Wing: general-purpose hybrid post-quantum KEM.","maintainers":[{"name":"dajiaji","email":"ajitomi@gmail.com"}],"readme":"<h1 align=\"center\">@hpke/hybridkem-x-wing</h1>\n\n<div align=\"center\">\n<a href=\"https://www.npmjs.com/package/@hpke/hybridkem-x-wing\"><img src=\"https://img.shields.io/npm/v/@hpke/hybridkem-x-wing\" alt=\"npm\"/></a>\n<a href=\"https://jsr.io/@hpke/hybridkem-x-wing\"><img src=\"https://jsr.io/badges/@hpke/hybridkem-x-wing\" alt=\"JSR\"/></a>\n</div>\n\n<div align=\"center\">\nA TypeScript <a href=\"https://datatracker.ietf.org/doc/html/rfc9180\">Hybrid Public Key Encryption (HPKE)</a> module extension for <a href=\"https://www.ietf.org/archive/id/draft-connolly-cfrg-xwing-kem-06.html\">X-Wing: general-purpose hybrid post-quantum KEM</a>.\n</div>\n<p></p>\n\n<div align=\"center\">\n\nDocumentation: [jsr.io](https://jsr.io/@hpke/hybridkem-x-wing/doc) |\n[pages (only for the latest ver.)](https://dajiaji.github.io/hpke-js/hybridkem-x-wing/docs/)\n\n</div>\n\nAn example of use:\n\n```ts\nimport { Aes256Gcm, CipherSuite, HkdfSha256 } from \"@hpke/core\";\nimport { XWing } from \"@hpke/hybridkem-x-wing\";\n\nasync function doHpke() {\n  const suite = new CipherSuite({\n    kem: new XWing(),\n    kdf: new HkdfSha256(),\n    aead: new Aes256Gcm(),\n  });\n\n  // NOTE: The following support for JWKs with the AKP key type is experimental.\n  // Please be aware that the specifications are subject to change without notice.\n  const jwkPub = {\n    kty: \"AKP\",\n    kid: \"01\",\n    alg: \"X-Wing\",\n    pub:\n      \"4iNrNajCSzmxCqEyOpapGaLO2IQAYzp7BxMXE_wUsrWxnPw9pfoaksSfJVE-D9MNaxYRyauWNdcIZyekt9IdNCROZpac8Vs7KnhTKfYbCWsnfqA3ODR5prVW3nIx_kt_qcmsJMBpmgAYpSU0AbrPqQXKgWVz5WotLgZ-m3KHUzuhOpN97bMfpEus7UB2mSNhADSuMeYZoXAkUZmzxcOYZIWf4bTJcXoHwwSVvfuYoKACzPVsEobO9QQd7ePETPFr9WLHRIUYAms9i5lAaAq9OKFXX9J7WNoGO_rDLDnDCGk3TAXBrrGJi2swPMaL5FU0buCvaZY2IkoUjKKuoQRjERxwn2m2nHDOhTh0ZpjExgqa7wAwx5JM7sQqXTaBb1RerhMpNGCzrLN-oOE9cOSqeGhto5ioOXwI6vloghE_5Pe61NpAsFAeHHU-_nMFPIcBToZhwzCZr-i-3kFKWxqifYOSs-Ex6acMEFWHgkDK0PQNX-PN-FI26tl-KpdEg2OygIyq_VFs0lBSxcNiVDwlF-Ss0OYOwHFjAJtkJfwyJ3rO5xwkurU-2fKedMZqCjVklVmY12uWqai1DRY1pNemfrQt9WRNMwRXKTqAQvU8x6aSiPF-1Vgn6Cso6CZlqGoU-9lmReyoFywET4O8DYwLTIYmmFYxyoevgpBo8TWJY8szNmTKSCdjujs7sghXf5umrGLCX3ZZJ0O2S-UZMXcUy0ECy3svmiWytPBhXeMd7NnKVQJtbaC2URGxb-Uv7tikh-FERiptupNyj1ALb_xJ5RVWnvJf7Rev9SBQc2glNSWGD1i-O-YclkYEpqyBTmk1WWQCpSCkZws9KEMYhmWT0VpLsBw14-WH7gxn0ogNbyQH-3pwcSuDjeuWxde_K0S89gOMy-M_vPUaVKWE_pAIPJHHptQ9T7FfSMYML9ZuCoqtStZOXEK7iHfA6-wrXjh8ipiP3CO-ueFsh1d4HgoUmcYeE4wh8hbCnQdpeYccqmlCuvwJBUS-6ZtUsWy5qaNk1iRtn0LM5TxmtZxFyPmukpmnXRUYDDyVIVGpG3oQdyQp3Ey65vzGIvqAGMY0OfiQYwuZKNtrt_lDiuQGXtNNc9SG8_UvkPCAfciN_djHKOlU8aw1wGwADOQaBYJYDju1e2cpcokKxeeYjnhQZXEW8bV9CAmq7ewL7eGuFIFIMRxvfjFzRuUYn7jNY1uYb4wL3SdkHFhLd4s6kRqAvhyWkquOG7sSg5VzzOGd8YO0WDW7tVBS-fxmoWeO8qNt6nhBHmyNYFAbTmBZLRNpipQ7UJGF25EuLqEL4GFxI2syfHFxYJTJZKaLAzd_UToFvNmcHzRlg7sFKXehChKt_HWANOVhfaTBJ2WF5XdOHzuZeLCdDpxE07yGFRxDqtGFcScXNAIjrDgdIRUKBClOl7sTu9ohtaGCttqWnhmn_QcnN_qOiApTwkKOPQSbfSGXQFKW3bNhkSp7z0gnztYR0Men2hBN3kMiCVM59kph1bsQj_C_TXgMrlCfsiwlaRQZP_c0kEJYEjfVIoKIJO4739B_sD8flC0uoXn-ci8GzAPeW2mFntsG7_OJsn3OWYRFcCFiI1k9S6MtmrrIzQSQQO9lNA\",\n    key_ops: [],\n  };\n  const pk = await suite.kem.importKey(\"jwk\", jwkPub, true);\n  // In addition to importing keys from external sources, you can also generate keys as follows:\n  //   const rkp = await suite.kem.generateKeyPair();\n  //   const rkp = await suite.kem.deriveKeyPair(random32bytesValue);\n\n  const sender = await suite.createSenderContext({ recipientPublicKey: pk });\n\n  const jwkPriv = {\n    kty: \"AKP\",\n    kid: \"01\",\n    alg: \"X-Wing\",\n    priv: \"f5wrpOiPgn1hYEVQdgWFPtc7gJP277yI6xpurPpm7yY\",\n    key_ops: [\"deriveBits\"],\n  };\n  const sk = await suite.kem.importKey(\"jwk\", jwkPriv, false);\n  const recipient = await suite.createRecipientContext({\n    recipientKey: sk,\n    enc: sender.enc,\n  });\n  const encrypted = await sender.seal(\n    new TextEncoder().encode(\"Hellow world!\"),\n  );\n  const pt = await recipient.open(encrypted);\n\n  // Hello world!\n  console.log(new TextDecoder().decode(pt));\n}\n\ntry {\n  doHpke();\n} catch (err: unknown) {\n  console.log(\"failed:\", (err as Error).message);\n}\n```\n\n## Index\n\n- [Installation](#installation)\n  - [Node.js](#nodejs)\n  - [Deno](#deno)\n  - [Web Browsers](#web-browsers)\n- [Usage](#usage)\n- [Contributing](#contributing)\n\n## Installation\n\n`@hpke/hybridkem-x-wing` needs to be used with\n[@hpke/core](https://github.com/dajiaji/hpke-js/blob/main/packages/core/README.md),\nwhich can be installed in the same manner as desribed below.\n\n### Node.js\n\nYou can install the package with npm, yarn or pnpm.\n\n```sh\n# Using npm:\nnpm install @hpke/hybridkem-x-wing\nyarn add @hpke/hybridkem-x-wing\npnpm install @hpke/hybridkem-x-wing\n# Using jsr:\nnpx jsr add @hpke/hybridkem-x-wing\nyarn add jsr:@hpke/hybridkem-x-wing\npnpm add jsr:@hpke/hybridkem-x-wing\n```\n\nThe above manner can be used with other JavaScript runtimes that support npm,\nsuch as Cloudflare Workers and Bun.\n\nThen, you can use the module from code like this:\n\n```ts\nimport { Aes256Gcm, CipherSuite, HkdfSha256 } from \"@hpke/core\";\nimport { XWing } from \"@hpke/hybridkem-x-wing\";\n```\n\n### Deno\n\nFor Deno, it is recommended to use the jsr.io registry.\n\n```sh\ndeno add jsr:@hpke/hybridkem-x-wing\n```\n\n### Web Browsers\n\nFollowings are how to use this module with typical CDNs. Other CDNs can be used\nas well.\n\nUsing esm.sh:\n\n```html\n<!-- use a specific version -->\n<script type=\"module\">\n  import {\n    Aes256Gcm,\n    CipherSuite,\n    HkdfSha256,\n  } from \"https://esm.sh/@hpke/core@<SEMVER>\";\n  import { XWing } from \"https://esm.sh/@hpke/hybridkem-x-wing@<SEMVER>\";\n  // ...\n</script>\n\n<!-- use the latest stable version -->\n<script type=\"module\">\n  import {\n    Aes256Gcm,\n    CipherSuite,\n    HkdfSha256,\n  } from \"https://esm.sh/@hpke/core\";\n  import { XWing } from \"https://esm.sh/@hpke/hybridkem-x-wing\";\n  // ...\n</script>\n```\n\nUsing unpkg:\n\n```html\n<!-- use a specific version -->\n<script type=\"module\">\n  import {\n    Aes256Gcm,\n    CipherSuite,\n    HkdfSha256,\n  } from \"https://unpkg.com/@hpke/core@<SEMVER>/esm/mod.js\";\n  import { XWing } from \"https://unpkg.com/@hpke/hybridkem-x-wing@<SEMVER>/esm/mod.js\";\n  // ...\n</script>\n```\n\n## Usage\n\nThis section shows some typical usage examples.\n\n### Node.js\n\n```js\nimport { Aes256Gcm, CipherSuite, HkdfSha256 } from \"@hpke/core\";\nimport { XWing } from \"@hpke/hybridkem-x-wing\";\n\nasync function doHpke() {\n  // setup\n  const suite = new CipherSuite({\n    kem: new XWing(),\n    kdf: new HkdfSha256(),\n    aead: new Aes256Gcm(),\n  });\n\n  const rkp = await suite.kem.generateKeyPair();\n\n  // Note that the `ct` (ciphertext) resulting from X-Wing Encapsulate() is set to `sender.enc`.\n  const sender = await suite.createSenderContext({\n    recipientPublicKey: rkp.publicKey,\n  });\n\n  // encrypt\n  const encrypted = await sender.seal(new TextEncoder().encode(\"Hello world!\"));\n\n  const recipient = await suite.createRecipientContext({\n    recipientKey: rkp.privateKey,\n    enc: sender.enc, // == `ct` (ciphertext) in the context of X-Wing\n  });\n\n  // decrypt\n  const pt = await recipient.open(encrypted);\n\n  // Hello world!\n  console.log(new TextDecoder().decode(pt));\n}\n\ntry {\n  doHpke();\n} catch (err) {\n  console.log(\"failed:\", err.message);\n}\n```\n\n### Deno\n\n```ts\nimport { Aes256Gcm, CipherSuite, HkdfSha256 } from \"@hpke/core\";\nimport { XWing } from \"@hpke/hybridkem-x-wing\";\n\nasync function doHpke() {\n  // setup\n  const suite = new CipherSuite({\n    kem: new XWing(),\n    kdf: new HkdfSha256(),\n    aead: new Aes256Gcm(),\n  });\n\n  const rkp = await suite.kem.generateKeyPair();\n\n  // Note that the `ct` (ciphertext) resulting from X-Wing::Encapsulate() is set to `sender.enc`.\n  const sender = await suite.createSenderContext({\n    recipientPublicKey: rkp.publicKey,\n  });\n\n  // encrypt\n  const encrypted = await sender.seal(new TextEncoder().encode(\"Hello world!\"));\n\n  const recipient = await suite.createRecipientContext({\n    recipientKey: rkp.privateKey,\n    enc: sender.enc, // == `ct` (ciphertext) in the context of X-Wing\n  });\n\n  // decrypt\n  const pt = await recipient.open(encrypted);\n\n  // Hello world!\n  console.log(new TextDecoder().decode(pt));\n}\n\ntry {\n  doHpke();\n} catch (_err: unknown) {\n  console.log(\"failed.\");\n}\n```\n\n### Web Browsers\n\n```html\n<html>\n  <head></head>\n  <body>\n    <script type=\"module\">\n      import {\n        Aes256Gcm,\n        CipherSuite,\n        HkdfSha256,\n      } from \"https://esm.sh/@hpke/core\";\n      import { XWing } from \"https://esm.sh/@hpke/hybridkem-x-wing\";\n\n      globalThis.doHpke = async () => {\n        try {\n          const suite = new CipherSuite({\n            kem: new XWing(),\n            kdf: new HkdfSha256(),\n            aead: new Aes256Gcm(),\n          });\n\n          const rkp = await suite.kem.generateKeyPair();\n\n          // Note that the `ct` resulting from X-Wing::Encapsulate() is set to `sender.enc`.\n          const sender = await suite.createSenderContext({\n            recipientPublicKey: rkp.publicKey,\n          });\n          // encrypt\n          const encrypted = await sender.seal(\n            new TextEncoder().encode(\"Hello world!\"),\n          );\n\n          const recipient = await suite.createRecipientContext({\n            recipientKey: rkp.privateKey, // rkp (CryptoKeyPair) is also acceptable.\n            enc: sender.enc, // == `ct` (ciphertext) in the context of X-Wing\n          });\n\n          // decrypt\n          const pt = await recipient.open(encrypted);\n\n          // Hello world!\n          alert(new TextDecoder().decode(pt));\n        } catch (err) {\n          alert(\"failed:\", err.message);\n        }\n      };\n    </script>\n    <button type=\"button\" onclick=\"doHpke()\">do HPKE</button>\n  </body>\n</html>\n```\n\n## Contributing\n\nWe welcome all kind of contributions, filing issues, suggesting new features or\nsending PRs.\n","readmeFilename":"README.md"}