{"_id":"@blockialabs/ssi-utils","_rev":"8-2813a825d8067d59cbe08577eb6f7107","name":"@blockialabs/ssi-utils","dist-tags":{"latest":"2.0.8"},"versions":{"2.0.0":{"name":"@blockialabs/ssi-utils","version":"2.0.0","_id":"@blockialabs/ssi-utils@2.0.0","maintainers":[{"name":"blockialabs","email":"kristijan.boshev@blockialabs.com"}],"nx":{"name":"ssi-utils"},"dist":{"shasum":"eade2911fa575bf9b6397f6fc0b6e9d7ea449247","tarball":"https://registry.npmjs.org/@blockialabs/ssi-utils/-/ssi-utils-2.0.0.tgz","fileCount":17,"integrity":"sha512-Kuuos8ZlT5NnsKLo+je4CL9JfhHujYOthtMfWANZesYjkQibFUkZxeEM1sqhu8Gh6kt2B2YSlbeZUDyErLlbbw==","signatures":[{"sig":"MEQCIH+IUdwxFmHa2JmNxtR8ZilCSnIu9LcAnWLLjuDBzkbdAiA/jdEbErq2T7bDzr3mVUGnr4hEF+RxQxRdLfKmDk9T0w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11789},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","development":"./src/index.ts"},"./package.json":"./package.json"},"gitHead":"1d934414afd658a43ffe3699784c51869a955851","_npmUser":{"name":"blockialabs","email":"kristijan.boshev@blockialabs.com"},"_npmVersion":"10.9.2","description":"This library was generated with [Nx](https://nx.dev).","directories":{},"_nodeVersion":"22.17.1","dependencies":{"tslib":"^2.3.0","@scure/base":"^2.0.0","@noble/curves":"^2.0.0","@noble/hashes":"^2.0.0","@blockialabs/ssi-types":"2.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ssi-utils_2.0.0_1757410394525_0.9898833538114833","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"@blockialabs/ssi-utils","version":"2.0.1","license":"Apache-2.0","_id":"@blockialabs/ssi-utils@2.0.1","maintainers":[{"name":"blockialabs","email":"kristijan.boshev@blockialabs.com"}],"nx":{"name":"ssi-utils"},"dist":{"shasum":"6486a695e894d643734316440ac540e9ec0e5e09","tarball":"https://registry.npmjs.org/@blockialabs/ssi-utils/-/ssi-utils-2.0.1.tgz","fileCount":17,"integrity":"sha512-RBhoPlBZx9azaVr+drxAxdsyKfifILbhJ/NW7xADdYNQ5ePpZWllATJDJ9iOIc/3UHlZF3KiQ20hh6frD/u9OQ==","signatures":[{"sig":"MEUCIHWHuoC/a9OiylaHcvhbEAzg8t0Zoa4tKKY15nUaGLvXAiEAy6t2P4EmXXpEwOYcdNFpmhWzt5yfkF+wAkdJ1GY4PGw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11816},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","development":"./src/index.ts"},"./package.json":"./package.json"},"gitHead":"7326fa169b854b03b693d74a22b53491083aeb8a","_npmUser":{"name":"blockialabs","email":"kristijan.boshev@blockialabs.com"},"_npmVersion":"10.9.2","description":"This library was generated with [Nx](https://nx.dev).","directories":{},"_nodeVersion":"22.17.1","dependencies":{"tslib":"^2.3.0","@scure/base":"^2.0.0","@noble/curves":"^2.0.0","@noble/hashes":"^2.0.0","@blockialabs/ssi-types":"2.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ssi-utils_2.0.1_1757426801230_0.6840488859020191","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"@blockialabs/ssi-utils","version":"2.0.2","keywords":["ssi","verifiable credentials","VC","did","decentralized identity","utils","utilities"],"license":"Apache-2.0","_id":"@blockialabs/ssi-utils@2.0.2","maintainers":[{"name":"blockialabs","email":"kristijan.boshev@blockialabs.com"}],"homepage":"https://github.com/Blockia-Labs/blockialabs-ssi/blob/main/packages/ssi-utils/README.md","bugs":{"url":"https://github.com/Blockia-Labs/blockialabs-ssi/issues"},"nx":{"name":"ssi-utils"},"dist":{"shasum":"fa4b8181d7d56e6ada7134897dfc5950781f9e34","tarball":"https://registry.npmjs.org/@blockialabs/ssi-utils/-/ssi-utils-2.0.2.tgz","fileCount":17,"integrity":"sha512-uu5X6F5uj3kFu/vwfgS1R1KT9iFEwsvfm4eN1sco6DzTQ7W6BD88LdEULi9lIor+pWR4eBUpaoDOcDljfcqfnQ==","signatures":[{"sig":"MEUCIQCc641Vk8wa6OPjQj7dEjReRZFDQOwYGucttiP4/YcRnwIgdzVwrPRNlfTHUlLlUpjdvmv1VQZyBoCerKGy8xt7ZVc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12406},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","development":"./src/index.ts"},"./package.json":"./package.json"},"gitHead":"2f8809648b4da5bab2d6740e223630b9b55f7237","_npmUser":{"name":"blockialabs","email":"kristijan.boshev@blockialabs.com"},"repository":{"url":"git+https://github.com/Blockia-Labs/blockialabs-ssi.git","type":"git","directory":"packages/ssi-utils"},"_npmVersion":"10.9.2","description":"A library providing utility functions for decentralized identity and verifiable credentials.","directories":{},"_nodeVersion":"22.17.1","dependencies":{"tslib":"^2.3.0","@scure/base":"^2.0.0","@noble/curves":"^2.0.0","@noble/hashes":"^2.0.0","@blockialabs/ssi-types":"2.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ssi-utils_2.0.2_1757506745026_0.7083092098277743","host":"s3://npm-registry-packages-npm-production"}},"2.0.4":{"name":"@blockialabs/ssi-utils","version":"2.0.4","keywords":["ssi","verifiable credentials","VC","did","decentralized identity","utils","utilities"],"license":"Apache-2.0","_id":"@blockialabs/ssi-utils@2.0.4","maintainers":[{"name":"blockialabs","email":"kristijan.boshev@blockialabs.com"}],"homepage":"https://github.com/Blockia-Labs/blockialabs-ssi/blob/main/packages/ssi-utils/README.md","bugs":{"url":"https://github.com/Blockia-Labs/blockialabs-ssi/issues"},"nx":{"name":"ssi-utils"},"dist":{"shasum":"8f7d7f9e020f406eddc6b96c9b7617090f801f23","tarball":"https://registry.npmjs.org/@blockialabs/ssi-utils/-/ssi-utils-2.0.4.tgz","fileCount":2,"integrity":"sha512-rhQh146ZN19WKdHsRe0CDO2/H0jA/UCsfv+xHnlcW7EhVIa+Pi5Pj6Co0FSHtOoIMmAZT+q9qtX8KsX0jrF9mQ==","signatures":[{"sig":"MEQCIAsvdQGpbrqAVO2dSjYR6AWwPoCps/lvLSdRU0HiaxTgAiBYx745h/vHINxUmWIbaaamt68+ye0je/KTK9JCuoyLvg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blockialabs%2fssi-utils@2.0.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":6232},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","development":"./src/index.ts"},"./package.json":"./package.json"},"gitHead":"8955516e01892565319f30209391d5bd17d8277b","_npmUser":{"name":"blockialabs","email":"kristijan.boshev@blockialabs.com"},"repository":{"url":"git+https://github.com/Blockia-Labs/blockialabs-ssi.git","type":"git","directory":"packages/ssi-utils"},"_npmVersion":"10.8.2","description":"A library providing utility functions for decentralized identity and verifiable credentials.","directories":{},"_nodeVersion":"20.19.5","dependencies":{"tslib":"^2.3.0","@scure/base":"^2.0.0","@noble/curves":"^2.0.0","@noble/hashes":"^2.0.0","@blockialabs/ssi-types":"2.0.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ssi-utils_2.0.4_1757603900552_0.18757308436251652","host":"s3://npm-registry-packages-npm-production"}},"2.0.5":{"name":"@blockialabs/ssi-utils","version":"2.0.5","keywords":["ssi","verifiable credentials","VC","did","decentralized identity","utils","utilities"],"license":"Apache-2.0","_id":"@blockialabs/ssi-utils@2.0.5","maintainers":[{"name":"blockialabs","email":"kristijan.boshev@blockialabs.com"}],"homepage":"https://github.com/Blockia-Labs/blockialabs-ssi/blob/main/packages/ssi-utils/README.md","bugs":{"url":"https://github.com/Blockia-Labs/blockialabs-ssi/issues"},"nx":{"name":"ssi-utils"},"dist":{"shasum":"e01cc8544923014592a8e28d47619fd04ff96f56","tarball":"https://registry.npmjs.org/@blockialabs/ssi-utils/-/ssi-utils-2.0.5.tgz","fileCount":17,"integrity":"sha512-XyjxIX2ZzTILAibIx/zCtcLmlzP0dGu/AU+icbGj2ZfJZz5Uqfmd6VyYRaqMVeRsl2NvUUuYyZSR3zPVoTO/jg==","signatures":[{"sig":"MEUCIGjgz5rgYPUqlqCibUxn+2wvhV3mYjMXPD9ooJWIpWWxAiEAnCrORyTHoA9nhrFN8q87AT/jbswaUCrx8HiWx9f15+U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blockialabs%2fssi-utils@2.0.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":17323},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","development":"./src/index.ts"},"./package.json":"./package.json"},"gitHead":"8757f919d7d3e049ed9095c27b0296025488e926","_npmUser":{"name":"blockialabs","email":"kristijan.boshev@blockialabs.com"},"repository":{"url":"git+https://github.com/Blockia-Labs/blockialabs-ssi.git","type":"git","directory":"packages/ssi-utils"},"_npmVersion":"10.8.2","description":"A library providing utility functions for decentralized identity and verifiable credentials.","directories":{},"_nodeVersion":"20.19.5","dependencies":{"tslib":"^2.3.0","@scure/base":"^2.0.0","@noble/curves":"^2.0.0","@noble/hashes":"^2.0.0","@blockialabs/ssi-types":"2.0.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ssi-utils_2.0.5_1757610200589_0.29963661384863016","host":"s3://npm-registry-packages-npm-production"}},"2.0.6":{"name":"@blockialabs/ssi-utils","version":"2.0.6","keywords":["ssi","verifiable credentials","VC","did","decentralized identity","utils","utilities"],"license":"Apache-2.0","_id":"@blockialabs/ssi-utils@2.0.6","maintainers":[{"name":"blockialabs","email":"kristijan.boshev@blockialabs.com"}],"homepage":"https://github.com/Blockia-Labs/blockialabs-ssi/blob/main/packages/ssi-utils/README.md","bugs":{"url":"https://github.com/Blockia-Labs/blockialabs-ssi/issues"},"nx":{"name":"ssi-utils"},"dist":{"shasum":"0df3119954e41c4f11b4729f6096e09a4cf0c4b9","tarball":"https://registry.npmjs.org/@blockialabs/ssi-utils/-/ssi-utils-2.0.6.tgz","fileCount":17,"integrity":"sha512-g9ve4FY4NlwbACzWP6BnT72JU7u9MI2uuwF6J5XrxVFzVyNvNYv5QIrwFeKwXbbcgiIXuUXAuL4DLTgWNzzJCw==","signatures":[{"sig":"MEYCIQCsePYVsoW0K6COILWOXu8CCrhWvRyyVHVmewlGDO9VtgIhAPIL8bHDK9/a63UHeVdHbAyuvwColabMYO18JyPobzVA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blockialabs%2fssi-utils@2.0.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":17467},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","development":"./src/index.ts"},"./package.json":"./package.json"},"gitHead":"2604a08dee38daf8218e9963fb73f5f6114e96e6","_npmUser":{"name":"blockialabs","email":"kristijan.boshev@blockialabs.com"},"repository":{"url":"git+https://github.com/Blockia-Labs/blockialabs-ssi.git","type":"git","directory":"packages/ssi-utils"},"_npmVersion":"10.8.2","description":"A library providing utility functions for decentralized identity and verifiable credentials.","directories":{},"_nodeVersion":"20.19.5","dependencies":{"tslib":"^2.3.0","@scure/base":"^2.0.0","@noble/curves":"^2.0.0","@noble/hashes":"^2.0.0","@blockialabs/ssi-types":"2.0.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ssi-utils_2.0.6_1757683825029_0.96356201131119","host":"s3://npm-registry-packages-npm-production"}},"2.0.7":{"name":"@blockialabs/ssi-utils","version":"2.0.7","keywords":["ssi","verifiable credentials","VC","did","decentralized identity","utils","utilities"],"license":"Apache-2.0","_id":"@blockialabs/ssi-utils@2.0.7","maintainers":[{"name":"blockialabs","email":"kristijan.boshev@blockialabs.com"}],"homepage":"https://github.com/Blockia-Labs/blockialabs-ssi/blob/main/packages/ssi-utils/README.md","bugs":{"url":"https://github.com/Blockia-Labs/blockialabs-ssi/issues"},"nx":{"name":"ssi-utils"},"dist":{"shasum":"7110323e8f4844151361202bf3b525125ba12f52","tarball":"https://registry.npmjs.org/@blockialabs/ssi-utils/-/ssi-utils-2.0.7.tgz","fileCount":17,"integrity":"sha512-SxQRbxgDV2bDIpxVNCng9E/FXZuTAIWF+EdvhhhJd8mPBJpM0f7LnRIL81qVeFgHjVX0iBKG06WvTpn9sCnPnQ==","signatures":[{"sig":"MEQCIGJiEgT+s+r7Ra7T2WRKYPZxvEx7/rkuKargOGAshW5gAiANfRuRGblfV+26itnyqvNGGORWaSDRmreyPW6nSSYlAg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blockialabs%2fssi-utils@2.0.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":17484},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","development":"./src/index.ts"},"./package.json":"./package.json"},"gitHead":"dfcbd422c56abf23c3c7bd3bf2818a1ce03ba7e7","_npmUser":{"name":"blockialabs","email":"kristijan.boshev@blockialabs.com"},"repository":{"url":"git+https://github.com/Blockia-Labs/blockialabs-ssi.git","type":"git","directory":"packages/ssi-utils"},"_npmVersion":"10.8.2","description":"A library providing utility functions for decentralized identity and verifiable credentials.","directories":{},"_nodeVersion":"20.19.5","dependencies":{"tslib":"^2.3.0","@scure/base":"1.2.6","@noble/curves":"^1.9.6","@noble/hashes":"^1.8.0","@blockialabs/ssi-types":"2.0.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ssi-utils_2.0.7_1758102253072_0.1254799538848539","host":"s3://npm-registry-packages-npm-production"}},"2.0.8":{"name":"@blockialabs/ssi-utils","version":"2.0.8","license":"Apache-2.0","keywords":["ssi","verifiable credentials","VC","did","decentralized identity","utils","utilities"],"homepage":"https://github.com/Blockia-Labs/blockialabs-ssi/blob/main/packages/ssi-utils/README.md","bugs":{"url":"https://github.com/Blockia-Labs/blockialabs-ssi/issues"},"repository":{"type":"git","url":"git+https://github.com/Blockia-Labs/blockialabs-ssi.git","directory":"packages/ssi-utils"},"description":"A library providing utility functions for decentralized identity and verifiable credentials.","type":"module","main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{"./package.json":"./package.json",".":{"development":"./src/index.ts","types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"publishConfig":{"access":"public"},"nx":{"name":"ssi-utils"},"dependencies":{"@blockialabs/ssi-types":"2.0.8","@noble/curves":"^1.9.6","@noble/hashes":"^1.8.0","@scure/base":"1.2.6","tslib":"^2.3.0"},"_id":"@blockialabs/ssi-utils@2.0.8","gitHead":"ec8efbed31088c87c74972943839d10ef337a4d8","_nodeVersion":"20.19.5","_npmVersion":"10.8.2","dist":{"integrity":"sha512-mAwurd2UGejx98NMuOj6j5N+rScyM+CYyRQs+M+y4MxSdH1ZQ0dMuKJCYpvbNsRzNqf5HnyCTA3pAVaYPBZxWw==","shasum":"c3a809e9ac0c8e8850d5dfb8403f13ff15c87774","tarball":"https://registry.npmjs.org/@blockialabs/ssi-utils/-/ssi-utils-2.0.8.tgz","fileCount":17,"unpackedSize":18350,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blockialabs%2fssi-utils@2.0.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIAwBAq92RSc6UVgy2O5j9lF7CN4UEzxf2AyfPuSK57ZtAiEA6UzazVFqw3x/YcUzg4yLEaZpkBBKgv8NxcFx03PJLgA="}]},"_npmUser":{"name":"blockialabs","email":"kristijan.boshev@blockialabs.com"},"directories":{},"maintainers":[{"name":"blockialabs","email":"kristijan.boshev@blockialabs.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ssi-utils_2.0.8_1758625092915_0.916421022543052"},"_hasShrinkwrap":false}},"time":{"created":"2025-09-09T09:33:14.454Z","modified":"2025-09-23T10:58:13.465Z","2.0.0":"2025-09-09T09:33:14.701Z","2.0.1":"2025-09-09T14:06:41.410Z","2.0.2":"2025-09-10T12:19:05.245Z","2.0.4":"2025-09-11T15:18:20.729Z","2.0.5":"2025-09-11T17:03:20.789Z","2.0.6":"2025-09-12T13:30:25.224Z","2.0.7":"2025-09-17T09:44:13.250Z","2.0.8":"2025-09-23T10:58:13.081Z"},"bugs":{"url":"https://github.com/Blockia-Labs/blockialabs-ssi/issues"},"license":"Apache-2.0","homepage":"https://github.com/Blockia-Labs/blockialabs-ssi/blob/main/packages/ssi-utils/README.md","keywords":["ssi","verifiable credentials","VC","did","decentralized identity","utils","utilities"],"repository":{"type":"git","url":"git+https://github.com/Blockia-Labs/blockialabs-ssi.git","directory":"packages/ssi-utils"},"description":"A library providing utility functions for decentralized identity and verifiable credentials.","maintainers":[{"name":"blockialabs","email":"kristijan.boshev@blockialabs.com"}],"readme":"# SSI Utils\n\nThe `ssi-utils` package provides essential utility functions for Self-Sovereign Identity (SSI) systems. It includes cryptographic utilities, JWT proof generation, and signature providers for both custodial and non-custodial signing scenarios.\n\n## Installation\n\nInstall the package via NPM:\n\n```bash\nnpm install @blockialabs/ssi-utils\n```\n\n## Key Components\n\n### JWT Proof Generation\n\n- `generateJwtProof`: Generate JWT proofs for OpenID4VCI credential issuance\n\n### Signature Providers\n\n- `KmsProvider`: Custodial signature provider for KMS integration\n- `Secp256k1Provider`: Non-custodial signature provider for wallet operations\n\n### Verification Utilities\n\n- `verifySignature`: Signature verification utility with detailed error messages\n\n## Basic Usage\n\n### JWT Proof Generation\n\nGenerate JWT proofs for OpenID4VCI credential requests:\n\n```typescript\nimport { generateJwtProof } from '@blockialabs/ssi-utils';\n\n// Generate a JWT proof for credential issuance\nconst jwtProof = await generateJwtProof(\n  'private-key-hex', // Private key in hex format\n  'did:example:holder123', // Holder DID\n  'did:example:issuer456', // Issuer DID\n  'nonce-from-issuer', // Nonce from issuer\n);\n\nconsole.log('JWT Proof:', jwtProof);\n// Output: eyJhbGciOiJFUzI1NiIsInR5cCI6Im9wZW5pZDR2Y2ktcHJvb2Yrand0Iiwia2lkIjoiZGlkOmV4YW1wbGU6aG9sZGVyMTIzI2NvbnRyb2xsZXJLZXkifQ.eyJpc3MiOiJkaWQ6ZXhhbXBsZTpob2xkZXIxMjMiLCJhdWQiOiJkaWQ6ZXhhbXBsZTppc3N1ZXI0NTYiLCJpYXQiOjE2MzgzNjgwMDAsIm5vbmNlIjoibm9uY2UtZnJvbS1pc3N1ZXIifQ\n```\n\n### Using Secp256k1 Provider\n\nNon-custodial signing operations:\n\n```typescript\nimport { Secp256k1Provider } from '@blockialabs/ssi-utils';\n\n// Create provider instance\nconst provider = new Secp256k1Provider();\n\n// Sign a message\nconst message = new TextEncoder().encode('Hello, World!');\nconst privateKey = 'your-private-key-hex';\nconst signature = await provider.sign(message, privateKey);\n\nconsole.log('Signature:', signature);\n\n// Verify a signature\nconst publicKey = 'your-public-key-hex-bytes';\nconst isValid = await provider.verify(signature, message, publicKey);\n\nconsole.log('Signature valid:', isValid);\n```\n\n### Using KMS Provider\n\nFor custodial signing with Key Management Services:\n\n```typescript\nimport { KmsProvider } from '@blockialabs/ssi-utils';\n\n// Create KMS provider with your KMS implementation\nconst kmsProvider = new KmsProvider(yourKmsImplementation);\n\n// The KMS provider expects keyId references, not actual private keys\nconst keyId = 'kms-key-reference';\nconst signature = await kmsProvider.sign(message, keyId);\n\n// Verification works the same way\nconst isValid = await kmsProvider.verify(signature, message, publicKey);\n```\n\n### Signature Verification\n\nUse the verification utility if you have custom provider:\n\n```typescript\nimport { verifySignature } from '@blockialabs/ssi-utils';\n\ntry {\n  await verifySignature(\n    signatureProvider,\n    'base64-signature',\n    'message-to-verify',\n    'public-key-hex',\n    { skipHashing: false },\n  );\n\n  console.log('Signature is valid');\n} catch (error) {\n  console.error('Verification failed:', error.message);\n  // Error provides detailed information about what went wrong\n}\n```\n\n## Integration Examples\n\n### With SSI Issuer SDK\n\n```typescript\nimport { CredentialIssuer } from '@blockialabs/ssi-issuer-sdk';\nimport { Secp256k1Provider } from '@blockialabs/ssi-utils';\n\n// Setup signature provider\nconst signatureProvider = new Secp256k1Provider();\n\n// Configure issuer with signature provider\nconst issuer = new CredentialIssuer(config, {\n  signatureProvider,\n  // ... other options\n});\n```\n\n### With SSI Credentials\n\n```typescript\nimport { CredentialProcessor } from '@blockialabs/ssi-credentials';\nimport { KmsProvider } from '@blockialabs/ssi-utils';\n\n// Setup KMS provider for credential processing\nconst kmsProvider = new KmsProvider(yourKmsImplementation);\n\nconst processor = new CredentialProcessor({\n  // ... other config\n  signatureProviders: {\n    kmsProvider: kmsProvider,\n  },\n});\n\n// Process credentials with KMS-backed signing\nconst signedCredential = await processor.issue(credential, options);\n```\n\n### With SSI DID\n\n```typescript\nimport { DIDOrchestrator } from '@blockialabs/ssi-did';\nimport { Secp256k1Provider } from '@blockialabs/ssi-utils';\n\n// Setup signature provider for DID operations\nconst secpSignatureProvider = new Secp256k1Provider();\n\nconst orchestrator = new DIDOrchestrator({\n  methodRegistry,\n  resolverRegistry,\n  signatureProviders: {\n    Secp256k1: secpSignatureProvider,\n  },\n});\n\n// Create DID with wallet-based signing\nconst { did, didDocument } = await orchestrator.completeDid('key', options);\n```\n\n## Building\n\nRun `nx build ssi-utils` to build the library.\n\n## Running unit tests\n\nRun `nx test ssi-utils` to execute the unit tests via [Jest](https://jestjs.io).\n\n## Running lint\n\nRun `nx lint ssi-utils` to check if there are lint errors.\n\nSee [LICENSE](../../LICENSE).\n","readmeFilename":"README.md"}