{"_id":"crypto-toolkit-ts","_rev":"2-2aaae22624661f157596402cc784f825","name":"crypto-toolkit-ts","dist-tags":{"latest":"1.1.0"},"versions":{"1.0.0":{"name":"crypto-toolkit-ts","version":"1.0.0","keywords":["crypto","cryptography","hash","hashing","hmac","password","encryption","ed25519","security","typescript"],"author":{"name":"Parthiv Rawat","email":"parthiv05022000@gmail.com"},"license":"MIT","_id":"crypto-toolkit-ts@1.0.0","maintainers":[{"name":"prthv-rwt","email":"parthiv05022000@gmail.com"}],"homepage":"https://github.com/parthivrawat/crypto-toolkit/tree/main/typescript#readme","bugs":{"url":"https://github.com/parthivrawat/crypto-toolkit/issues"},"dist":{"shasum":"4c7b75d24e753f35e2adac0b09a0de68d7374ae1","tarball":"https://registry.npmjs.org/crypto-toolkit-ts/-/crypto-toolkit-ts-1.0.0.tgz","fileCount":23,"integrity":"sha512-W/uHEB0tvtvMXwmb9XEPoTZqgzwBciKVQ7G9DWkqinsBEJuda8uBqelLJy97VPfFaV331/eN9DJvVnmwJp5Wtg==","signatures":[{"sig":"MEYCIQC9ciRzOHpEhqbYw1EccAHOfpdezuOByuJR/G85aLGQfgIhANQibA4DNCYVXyNnS0AceLhgu42MfIZrltyosdzBI6R8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":45369},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"tsc","clean":"rm -rf dist","format":"prettier --write \"src/**/*.ts\"","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"prthv-rwt","email":"parthiv05022000@gmail.com"},"repository":{"url":"git+https://github.com/parthivrawat/crypto-toolkit.git","type":"git","directory":"typescript"},"_npmVersion":"11.12.0","description":"Modern Cryptography & Hashing Toolkit - a misuse-resistant, high-level cryptography library for TypeScript/Node.js","directories":{},"_nodeVersion":"25.2.1","publishConfig":{"registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^1.6.0","typescript":"^5.4.0","@types/node":"^20.0.0","@vitest/coverage-v8":"^1.6.0"},"_npmOperationalInternal":{"tmp":"tmp/crypto-toolkit-ts_1.0.0_1787988049311_0.6657460234397399","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"crypto-toolkit-ts","version":"1.1.0","description":"Modern Cryptography & Hashing Toolkit - a misuse-resistant, high-level cryptography library for TypeScript/Node.js","main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","require":"./dist/index.js","import":"./dist/index.js"}},"scripts":{"build":"tsc","test":"vitest run","test:watch":"vitest","test:coverage":"vitest run --coverage","lint":"tsc --noEmit","format":"prettier --write \"src/**/*.ts\"","prepublishOnly":"npm run build && npm test","clean":"node -e \"fs.rmSync('dist', { recursive: true, force: true })\""},"keywords":["crypto","cryptography","hash","hashing","hmac","password","encryption","ed25519","security","typescript"],"author":{"name":"Parthiv Rawat","email":"parthiv05022000@gmail.com"},"license":"MIT","engines":{"node":">=18.0.0"},"devDependencies":{"@types/node":"^20.0.0","@vitest/coverage-v8":"^4.1.11","tsx":"^4.0.0","typescript":"^5.4.0","vitest":"^4.1.11"},"repository":{"type":"git","url":"git+https://github.com/parthivrawat/crypto-toolkit.git","directory":"typescript"},"bugs":{"url":"https://github.com/parthivrawat/crypto-toolkit/issues"},"homepage":"https://github.com/parthivrawat/crypto-toolkit/tree/main/typescript#readme","optionalDependencies":{"bcrypt":"^6.0.0"},"publishConfig":{"registry":"https://registry.npmjs.org/"},"gitHead":"0cc9da315d6c61ab7b3cd54ef47be128b73272fa","_id":"crypto-toolkit-ts@1.1.0","_nodeVersion":"25.2.1","_npmVersion":"11.12.0","dist":{"integrity":"sha512-MpiDpuE3MLlhG/QrIg2lduUHPA9RiG2g4DTaV4NCR2J2e6uwulw8VEo7vQcIMx2oQJc4D0v2Ij/pgkCfxhhTCg==","shasum":"103e2b4f58339e32f40bfc87ad7793101d7cb1ff","tarball":"https://registry.npmjs.org/crypto-toolkit-ts/-/crypto-toolkit-ts-1.1.0.tgz","fileCount":24,"unpackedSize":96059,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIEt7EOXkBdkb1lk/Ma+ingxSu2cGF3GdvB7amTG5ElkiAiEAxMUCuPIbFMLAtNn90KLCHn+6NuGs5TCINYu4YIFCFzY="}]},"_npmUser":{"name":"prthv-rwt","email":"parthiv05022000@gmail.com"},"directories":{},"maintainers":[{"name":"prthv-rwt","email":"parthiv05022000@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/crypto-toolkit-ts_1.1.0_1788882253751_0.5556355267997812"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-29T07:20:49.240Z","modified":"2026-09-08T15:44:14.038Z","1.0.0":"2026-08-29T07:20:49.439Z","1.1.0":"2026-09-08T15:44:13.888Z"},"bugs":{"url":"https://github.com/parthivrawat/crypto-toolkit/issues"},"author":{"name":"Parthiv Rawat","email":"parthiv05022000@gmail.com"},"license":"MIT","homepage":"https://github.com/parthivrawat/crypto-toolkit/tree/main/typescript#readme","keywords":["crypto","cryptography","hash","hashing","hmac","password","encryption","ed25519","security","typescript"],"repository":{"type":"git","url":"git+https://github.com/parthivrawat/crypto-toolkit.git","directory":"typescript"},"description":"Modern Cryptography & Hashing Toolkit - a misuse-resistant, high-level cryptography library for TypeScript/Node.js","maintainers":[{"name":"prthv-rwt","email":"parthiv05022000@gmail.com"}],"readme":"# Modern Cryptography & Hashing Toolkit (TypeScript)\r\n\r\nA misuse-resistant, high-level cryptography library with safe defaults, constant-time verification, and a clear API for hashing, password hashing, key derivation, symmetric encryption, HMAC, and digital signatures.\r\n\r\n## Features\r\n\r\n- **Safe hashing**: SHA-256, SHA-384, SHA-512, SHA-3, BLAKE2 (MD5 and SHA-1 rejected)\r\n- **HMAC**: Constant-time verification\r\n- **Password hashing**: Argon2id (Node 23.6+), PBKDF2-SHA256, scrypt, and bcrypt (optional) with secure defaults\r\n- **Key derivation**: PBKDF2, scrypt, and Argon2id (Node 23.6+)\r\n- **Symmetric encryption**: AES-256-GCM or ChaCha20-Poly1305 with automatic nonce management\r\n- **Digital signatures**: Ed25519 with raw and PEM key import/export\r\n- **Zero runtime dependencies** beyond Node.js `crypto` (bcrypt requires the optional `bcrypt` package)\r\n\r\n## Installation\r\n\r\n```bash\r\nnpm install crypto-toolkit-ts\r\n```\r\n\r\n## Optional dependencies\r\n\r\n- **bcrypt**: `npm install bcrypt` — required only for `bcrypt` password hashing.\r\n- **Argon2id**: uses Node.js built-in `crypto.argon2Sync` (available in Node 23.6+). No package is required.\r\n\r\n## Quick Start\r\n\r\n```typescript\r\nimport { hash, password, encrypt, sign } from 'crypto-toolkit-ts';\r\n\r\n// Safe, deterministic hashing\r\nconst sha256 = hash.string('hello world', 'sha-256');\r\nconsole.log(sha256);\r\n\r\nconst mac = hash.hmac('secret-key', 'message', 'sha-256');\r\nconsole.log(hash.verifyHmac(mac, 'secret-key', 'message', 'sha-256'));\r\n\r\n// Password hashing\r\nconst ph = password.hash('user-password');\r\nconsole.log(password.verify('user-password', ph));\r\n\r\n// Key derivation\r\nconst salt = Buffer.from('saltsaltsaltsalt', 'utf-8');\r\nconst key = password.derive('passphrase', salt, 32);\r\n\r\n// Symmetric encryption\r\nconst ciphertext = encrypt.symmetric('sensitive data', key);\r\nconst plaintext = encrypt.decrypt(ciphertext, key);\r\nconsole.log(plaintext);\r\n\r\n// Digital signatures\r\nconst { privateKey, publicKey } = sign.generateKeypair();\r\nconst signature = sign.ed25519('message', privateKey);\r\nconsole.log(sign.verify(signature, 'message', publicKey));\r\n```\r\n\r\n## Development\r\n\r\n```bash\r\ncd implementations/security/crypto-toolkit/typescript\r\nnpm install\r\nnpm run build\r\nnpm test\r\n```\r\n\r\n## License\r\n\r\nMIT License\r\n","readmeFilename":"README.md"}