{"_id":"@blocq-inc/lamport-key-manager-lib","_rev":"2-f6e7d8159bb4920ac35ee0230bcb2f27","name":"@blocq-inc/lamport-key-manager-lib","dist-tags":{"latest":"0.1.2"},"versions":{"0.1.0":{"name":"@blocq-inc/lamport-key-manager-lib","version":"0.1.0","keywords":["ethereum","keccak256","lamport signature","post-quantum"],"author":{"name":"Naoto Sato","email":"stardustforever012@gmail.com"},"license":"MIT","_id":"@blocq-inc/lamport-key-manager-lib@0.1.0","maintainers":[{"name":"starcharles","email":"stardustforever012@gmail.com"}],"homepage":"https://github.com/blocq-inc/lamport-key-manager","bugs":{"url":"https://github.com/blocq-inc/lamport-key-manager/issues","email":"stardustforever012@gmail.com"},"dist":{"shasum":"9417a9f3628e982c6340f3817486c6c1461fa4e9","tarball":"https://registry.npmjs.org/@blocq-inc/lamport-key-manager-lib/-/lamport-key-manager-lib-0.1.0.tgz","fileCount":29,"integrity":"sha512-uAXwMIXRloN8DP4zMhOtpxwOXSOsgZSkffAfgnRpkoVwoBIBUWmJYIYdQ5gJcZ+MJLLrSPt++H8A8k7MflNv2A==","signatures":[{"sig":"MEYCIQDKSs97/ajtm/Vrsj0wpI+WXjkRiP8lZQohp01KLxO9dgIhAJU9VGzzWWISPK2fsUMGxmIodM+58gUtUSLJQuEGETki","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":31242},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","moduleFileExtensions":["js","json","ts"]},"main":"dist/cjs/index.js","types":"dist/esm/index.d.ts","module":"dist/esm/index.js","gitHead":"882234dd778e4539ae58793e4d5a80d7ff6ffa74","scripts":{"test":"jest -i","build":"yarn build:cjs && yarn build:esm","relink":"yarn unlink && yarn build && yarn link","build:cjs":"tsc --project tsconfig.cjs.json","build:esm":"tsc --project tsconfig.esm.json","type-check":"tsc --noEmit"},"_npmUser":{"name":"starcharles","email":"stardustforever012@gmail.com"},"repository":{"url":"git+https://github.com/blocq-inc/lamport-key-manager.git","type":"git"},"_npmVersion":"10.8.1","description":"Lamport Key Manegement Library","directories":{},"_nodeVersion":"22.3.0","dependencies":{"jest":"^29.7.0","ethers":"^6.13.4"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.13.0","ts-jest":"^29.2.5","ts-node":"^10.9.2","typescript":"^5.6.3","@types/jest":"^29.5.14","@types/node":"^22.7.9"},"_npmOperationalInternal":{"tmp":"tmp/lamport-key-manager-lib_0.1.0_1730329487405_0.8087514069763948","host":"s3://npm-registry-packages"}},"0.1.1":{"name":"@blocq-inc/lamport-key-manager-lib","version":"0.1.1","keywords":["ethereum","keccak256","quantum resistant","hash based signature","lamport signature","post quantum"],"author":{"name":"Naoto Sato","email":"stardustforever012@gmail.com"},"license":"MIT","_id":"@blocq-inc/lamport-key-manager-lib@0.1.1","maintainers":[{"name":"starcharles","email":"stardustforever012@gmail.com"}],"homepage":"https://github.com/blocq-inc/lamport-key-manager","bugs":{"url":"https://github.com/blocq-inc/lamport-key-manager/issues","email":"stardustforever012@gmail.com"},"dist":{"shasum":"082fd80efb61fcb8e72fe24129ebf18434cb63d6","tarball":"https://registry.npmjs.org/@blocq-inc/lamport-key-manager-lib/-/lamport-key-manager-lib-0.1.1.tgz","fileCount":29,"integrity":"sha512-evggLq/J/J/RcoNeoqzvWGJyieidqhrc2huCbrOeXnTq5+9ybqtikySe2hlPioMzze8lAEzQ+vdC2MTl7cJKCg==","signatures":[{"sig":"MEQCICOj2JsIgv94XHrt6st06Az2096/V9Eoh0pnF7sVTayqAiA1+85TU6d61EqhN5XWeCCNdJMTKZD6lXv9kU8uRe0UGA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":32118},"jest":{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","moduleFileExtensions":["js","json","ts"]},"main":"dist/cjs/index.js","types":"dist/esm/index.d.ts","module":"dist/esm/index.js","gitHead":"925bb109717ce04bc3554de4fe138864c2792b16","scripts":{"test":"jest -i","build":"yarn build:cjs && yarn build:esm","relink":"yarn unlink && yarn build && yarn link","build:cjs":"tsc --project tsconfig.cjs.json","build:esm":"tsc --project tsconfig.esm.json","type-check":"tsc --noEmit"},"_npmUser":{"name":"starcharles","email":"stardustforever012@gmail.com"},"repository":{"url":"git+https://github.com/blocq-inc/lamport-key-manager.git","type":"git"},"_npmVersion":"10.8.1","description":"Lamport Key Manegement Library","directories":{},"_nodeVersion":"22.3.0","dependencies":{"jest":"^29.7.0","ethers":"^6.13.4"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.13.0","ts-jest":"^29.2.5","ts-node":"^10.9.2","typescript":"^5.6.3","@types/jest":"^29.5.14","@types/node":"^22.7.9"},"_npmOperationalInternal":{"tmp":"tmp/lamport-key-manager-lib_0.1.1_1730384534979_0.6231336926002335","host":"s3://npm-registry-packages"}},"0.1.2":{"name":"@blocq-inc/lamport-key-manager-lib","version":"0.1.2","description":"Lamport Key Manegement Library","author":{"name":"Naoto Sato","email":"stardustforever012@gmail.com"},"bugs":{"url":"https://github.com/blocq-inc/lamport-key-manager/issues","email":"stardustforever012@gmail.com"},"dependencies":{"ethers":"^6.13.4","jest":"^29.7.0"},"devDependencies":{"@types/jest":"^29.5.14","@types/node":"^22.7.9","eslint":"^9.13.0","ts-jest":"^29.2.5","ts-node":"^10.9.2","typescript":"^5.6.3"},"homepage":"https://github.com/blocq-inc/lamport-key-manager","keywords":["ethereum","keccak256","hash","quantum resistant","quantum-resistant","lamport","lamport signature","post quantum","post-quantum"],"license":"MIT","main":"dist/cjs/index.js","module":"dist/esm/index.js","repository":{"type":"git","url":"git+https://github.com/blocq-inc/lamport-key-manager.git"},"scripts":{"build":"yarn build:cjs && yarn build:esm","build:cjs":"tsc --project tsconfig.cjs.json","build:esm":"tsc --project tsconfig.esm.json","relink":"yarn unlink && yarn build && yarn link","test":"jest -i","type-check":"tsc --noEmit"},"types":"dist/esm/index.d.ts","jest":{"moduleFileExtensions":["js","json","ts"],"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node"},"_id":"@blocq-inc/lamport-key-manager-lib@0.1.2","gitHead":"3afa74e959b77dd232f78d5d7871045f0432dfd2","_nodeVersion":"22.3.0","_npmVersion":"10.8.1","dist":{"integrity":"sha512-F/nQBK24F5X5qpK2AwYor2eRICITnJODJIZ+8hmp4eyTsBnCnLORvxTzq0jIMpvzcWMueGjrWw1TxbpaDM8PeQ==","shasum":"afd65e52933fd0ccd446b54a5d914ff6d3853319","tarball":"https://registry.npmjs.org/@blocq-inc/lamport-key-manager-lib/-/lamport-key-manager-lib-0.1.2.tgz","fileCount":33,"unpackedSize":47393,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDbH/EIJ2JLHg4rpq/8cL94MiWcIiwuIqqHYSXHZYB4IQIgd91bkDOsk4T9+ZZsnXdPbNBx+p3w42eFx3xrXsL4Ymw="}]},"_npmUser":{"name":"starcharles","email":"stardustforever012@gmail.com"},"directories":{},"maintainers":[{"name":"starcharles","email":"stardustforever012@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lamport-key-manager-lib_0.1.2_1730953341100_0.7896868688155345"},"_hasShrinkwrap":false}},"time":{"created":"2024-10-30T23:04:47.214Z","modified":"2024-11-07T04:22:21.535Z","0.1.0":"2024-10-30T23:04:47.713Z","0.1.1":"2024-10-31T14:22:15.147Z","0.1.2":"2024-11-07T04:22:21.315Z"},"bugs":{"url":"https://github.com/blocq-inc/lamport-key-manager/issues","email":"stardustforever012@gmail.com"},"author":{"name":"Naoto Sato","email":"stardustforever012@gmail.com"},"license":"MIT","homepage":"https://github.com/blocq-inc/lamport-key-manager","keywords":["ethereum","keccak256","hash","quantum resistant","quantum-resistant","lamport","lamport signature","post quantum","post-quantum"],"repository":{"type":"git","url":"git+https://github.com/blocq-inc/lamport-key-manager.git"},"description":"Lamport Key Manegement Library","maintainers":[{"name":"starcharles","email":"stardustforever012@gmail.com"}],"readme":"# Lamport Key Manager\n\n`Lamport Key Manager` is a library for managing and signing messages with Lamport keys.\n\n## Installation\n\n```bash\nnpm install @blocq-inc/lamport-key-manager-lib\n```\n\n```bash\nyarn add @blocq-inc/lamport-key-manager-lib\n```\n\n## Usage\n\n- key generation and save to file\n\n```typescript\nimport { LamportKeyManager } from \"@blocq-inc/lamport-key-manager\";\n\n// this will generate keys in `./keys/keys.json` and save to file in current directory\nconst manager = new LamportKeyManager();\n\n// this will generate next keys and save to file\nmanager.generateNextKeys();\n\n// these gets current private key, public key, lamport key pair, and public key hash\nconst currentPrivKey = manager.currentPrivKey;\nconst currentPubKey = manager.currentPubKey;\nconst currentLamportKeyPair = manager.currentLamportKeyPair;\nconst currentPubKeyHash = manager.currentPubKeyHash;\n```\n\n- signing message\n\n```typescript\nimport { LamportSigner } from \"@blocq-inc/lamport-key-manager\";\n\n// this loads keys from file in current directory\nconst manager = new LamportKeyManager(\"load\");\n\nconst signer = new LamportSigner(manager.currentLamportKeyPair);\n\nconst message = \"hello\";\n// this will sign message with current lamport key pair(private key)\nconst signature = signer.sign(message);\n\n// this will verify signature with current public key\nconst result = signer.verify(message, signature);\n\n// After signing, generate next keys because lamport key pair must not be reused.\nmanager.generateNextKeys();\n```\n\n## Development tips\n\n- run test\n\n```bash\nyarn test\n```\n\n- run type check\n\n```bash\nyarn type-check\n```\n\n- build\n\n```bash\nyarn build\n```\n\n- link local package\n\n```bash\nyarn link\n```\n\n- unlink local package, re-build and link again after updating the code for the local development\n\n```bash\nyarn relink\n```\n\n## TODO\n\n- [ ] add tests\n- [ ] add options for hash functions(e.g. sha256)\n","readmeFilename":"README.md"}