
Product
Socket Threat Intel Now Shows Which Malware Campaigns Were Blocked or Detected
Socket Threat Intel now shows which malware campaigns were blocked or detected in your organization, with links to scans and Firewall events.
@sd-jwt/core
Advanced tools
Core library for Selective Disclosure for JWTs (SD-JWT) — RFC 9901.
This package provides types, utilities, encoding/decoding, presentation, and the main SDJwtInstance class — everything needed to issue, present, and verify SD-JWTs. For SD-JWT-based Verifiable Credentials, use @sd-jwt/sd-jwt-vc, which is built on top of this package.
# Using npm
npm install @sd-jwt/core
# Using pnpm
pnpm add @sd-jwt/core
# Using yarn
yarn add @sd-jwt/core
import Crypto from 'node:crypto'
import { SDJwtInstance } from '@sd-jwt/core'
// Bring your own crypto – any Signer / Verifier / Hasher that fits the interface
const { privateKey, publicKey } = Crypto.generateKeyPairSync('ed25519')
const sdjwt = new SDJwtInstance({
signer: async (data) => {
const sig = Crypto.sign(null, Buffer.from(data), privateKey)
return Buffer.from(sig).toString('base64url')
},
verifier: async (data, sig) => {
return Crypto.verify(null, Buffer.from(data), publicKey, Buffer.from(sig, 'base64url'))
},
signAlg: 'EdDSA',
hasher: async (data, alg) => {
return new Uint8Array(Crypto.createHash(alg.replace('-', '')).update(data).digest())
},
hashAlg: 'sha-256',
saltGenerator: async () => Crypto.randomBytes(16).toString('base64url'),
})
// Issue
const credential = await sdjwt.issue(
{ firstname: 'John', lastname: 'Doe', ssn: '123-45-6789' },
{ _sd: ['firstname', 'lastname', 'ssn'] }
)
// Present (disclose only firstname)
const presentation = await sdjwt.present(credential, { firstname: true })
// Verify
const { payload } = await sdjwt.verify(presentation)
console.log(payload) // { firstname: 'John', ... }
Runnable examples are available in examples/sd-jwt/core. Run them from the repository root:
pnpm tsx examples/sd-jwt/core/basic.ts
See the SD-JWT examples overview for the full list.
This library is platform agnostic and works in:
A global TextEncoder and TextDecoder must be available. See the React Native notes if you need a polyfill.
Cryptographic operations (signing, verification, hashing, salt generation) are provided as callbacks. @owf/crypto provides Web Crypto based implementations.
See the Contributing Guide for details on how to contribute to this project.
This project is licensed under the Apache License Version 2.0 (Apache-2.0).
FAQs
SD-JWT RFC 9901 implementation in TypeScript
The npm package @sd-jwt/core receives a total of 0 weekly downloads. As such, @sd-jwt/core popularity was classified as not popular.
We found that @sd-jwt/core demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Product
Socket Threat Intel now shows which malware campaigns were blocked or detected in your organization, with links to scans and Firewall events.

Security News
Fixes for eMudhra and Brotli are out. Getting them everywhere they’re needed means tracking down bundled libraries, runtimes, and certificate stores.

Threat Research
/Security News
Socket uncovered secret-stealing workflows that ran in LiteLLM’s GitHub repository 11 days before the supply chain attack on PyPI and Docker.