diff --git a/README.md b/README.md
index becc46be..4104f470 100644
--- a/README.md
+++ b/README.md
@@ -13,8 +13,9 @@ Hopae, a founding member of OpenWallet Foundation, is building wallet module in
Currently compliant with:
-- **[draft-ietf-oauth-selective-disclosure-jwt-08](https://datatracker.ietf.org/doc/draft-ietf-oauth-selective-disclosure-jwt/)**
-- **[draft-ietf-oauth-sd-jwt-vc-03](https://datatracker.ietf.org/doc/draft-ietf-oauth-sd-jwt-vc/)**
+- **[draft-ietf-oauth-selective-disclosure-jwt-13](https://datatracker.ietf.org/doc/draft-ietf-oauth-selective-disclosure-jwt/)**
+- **[draft-ietf-oauth-sd-jwt-vc-05](https://datatracker.ietf.org/doc/draft-ietf-oauth-sd-jwt-vc/)**
+- **[draft-ietf-oauth-status-list-05](https://datatracker.ietf.org/doc/draft-ietf-oauth-status-list/)**
## **Background**
@@ -53,6 +54,7 @@ By adhering to these design principles, "Selective Disclosure for JWT" aims to s
- **[@sd-jwt/hash](./packages/hash/README.md)**: SHA-256 support for SD JWT
- **[@sd-jwt/crypto-nodejs](./packages/node-crypto/README.md)**: Nodejs Crypto support for SD JWT
- **[@sd-jwt/crypto-browser](./packages/browser-crypto/README.md)**: Browser Crypto support for SD JWT
+- **[@sd-jwt/jwt-status-list](./packages/jwt-status-list/README.md)**: Token Status List
## Online Debugging Tool
diff --git a/docs/index.html b/docs/index.html
index e930409e..c22638e4 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -100,8 +100,9 @@
What is SD-JWT VC?
Specification Compliance
Installation
diff --git a/examples/sd-jwt-example/all.ts b/examples/sd-jwt-example/all.ts
index 35335bf5..c95b20ba 100644
--- a/examples/sd-jwt-example/all.ts
+++ b/examples/sd-jwt-example/all.ts
@@ -1,6 +1,6 @@
import { SDJwtInstance } from '@sd-jwt/core';
import type { DisclosureFrame } from '@sd-jwt/types';
-import { createSignerVerifier, digest, generateSalt } from './utils';
+import { createSignerVerifier, digest, generateSalt, ES256 } from './utils';
(async () => {
const { signer, verifier } = await createSignerVerifier();
@@ -9,7 +9,7 @@ import { createSignerVerifier, digest, generateSalt } from './utils';
const sdjwt = new SDJwtInstance({
signer,
verifier,
- signAlg: 'EdDSA',
+ signAlg: ES256.alg,
hasher: digest,
hashAlg: 'SHA-256',
saltGenerator: generateSalt,
@@ -103,6 +103,6 @@ import { createSignerVerifier, digest, generateSalt } from './utils';
// Verify the presentation using the public key and the required claims
// return a boolean result
- const verified = await sdjwt.verify(credential, requiredClaims);
+ const verified = await sdjwt.verify(presentation, requiredClaims);
console.log('verified:', verified);
})();
diff --git a/examples/sd-jwt-example/basic.ts b/examples/sd-jwt-example/basic.ts
index 0eb05125..95bd59bd 100644
--- a/examples/sd-jwt-example/basic.ts
+++ b/examples/sd-jwt-example/basic.ts
@@ -1,6 +1,6 @@
import { SDJwtInstance } from '@sd-jwt/core';
import type { DisclosureFrame } from '@sd-jwt/types';
-import { createSignerVerifier, digest, generateSalt } from './utils';
+import { createSignerVerifier, digest, ES256, generateSalt } from './utils';
(async () => {
const { signer, verifier } = await createSignerVerifier();
@@ -9,7 +9,7 @@ import { createSignerVerifier, digest, generateSalt } from './utils';
const sdjwt = new SDJwtInstance({
signer,
verifier,
- signAlg: 'EdDSA',
+ signAlg: ES256.alg,
hasher: digest,
hashAlg: 'SHA-256',
saltGenerator: generateSalt,
diff --git a/examples/sd-jwt-example/custom.ts b/examples/sd-jwt-example/custom.ts
index 7c1fda53..aeb5066f 100644
--- a/examples/sd-jwt-example/custom.ts
+++ b/examples/sd-jwt-example/custom.ts
@@ -1,6 +1,6 @@
import { SDJwtInstance } from '@sd-jwt/core';
import type { DisclosureFrame } from '@sd-jwt/types';
-import { createSignerVerifier, digest, generateSalt } from './utils';
+import { createSignerVerifier, digest, ES256, generateSalt } from './utils';
(async () => {
const { signer, verifier } = await createSignerVerifier();
@@ -9,7 +9,7 @@ import { createSignerVerifier, digest, generateSalt } from './utils';
const sdjwt = new SDJwtInstance({
signer,
verifier,
- signAlg: 'EdDSA',
+ signAlg: ES256.alg,
hasher: digest,
hashAlg: 'SHA-256',
saltGenerator: generateSalt,
diff --git a/examples/sd-jwt-example/custom_header.ts b/examples/sd-jwt-example/custom_header.ts
index 5dcaece3..d4bbd869 100644
--- a/examples/sd-jwt-example/custom_header.ts
+++ b/examples/sd-jwt-example/custom_header.ts
@@ -1,6 +1,6 @@
import { SDJwtInstance } from '@sd-jwt/core';
import type { DisclosureFrame } from '@sd-jwt/types';
-import { createSignerVerifier, digest, generateSalt } from './utils';
+import { createSignerVerifier, digest, ES256, generateSalt } from './utils';
(async () => {
const { signer, verifier } = await createSignerVerifier();
@@ -9,7 +9,7 @@ import { createSignerVerifier, digest, generateSalt } from './utils';
const sdjwt = new SDJwtInstance({
signer,
verifier,
- signAlg: 'EdDSA',
+ signAlg: ES256.alg,
hasher: digest,
hashAlg: 'SHA-256',
saltGenerator: generateSalt,
diff --git a/examples/sd-jwt-example/decode.ts b/examples/sd-jwt-example/decode.ts
index a14247b2..184fe279 100644
--- a/examples/sd-jwt-example/decode.ts
+++ b/examples/sd-jwt-example/decode.ts
@@ -1,5 +1,5 @@
import { SDJwtInstance } from '@sd-jwt/core';
-import { createSignerVerifier, digest, generateSalt } from './utils';
+import { createSignerVerifier, digest, ES256, generateSalt } from './utils';
(async () => {
const { signer, verifier } = await createSignerVerifier();
@@ -7,7 +7,7 @@ import { createSignerVerifier, digest, generateSalt } from './utils';
// Create SDJwt instance for use
const sdjwt = new SDJwtInstance({
signer,
- signAlg: 'EdDSA',
+ signAlg: ES256.alg,
verifier,
hasher: digest,
saltGenerator: generateSalt,
diff --git a/examples/sd-jwt-example/decoy.ts b/examples/sd-jwt-example/decoy.ts
index cda6e11d..e9dec0f7 100644
--- a/examples/sd-jwt-example/decoy.ts
+++ b/examples/sd-jwt-example/decoy.ts
@@ -1,6 +1,6 @@
import { SDJwtInstance } from '@sd-jwt/core';
import type { DisclosureFrame } from '@sd-jwt/types';
-import { createSignerVerifier, digest, generateSalt } from './utils';
+import { createSignerVerifier, digest, ES256, generateSalt } from './utils';
(async () => {
const { signer, verifier } = await createSignerVerifier();
@@ -9,7 +9,7 @@ import { createSignerVerifier, digest, generateSalt } from './utils';
const sdjwt = new SDJwtInstance({
signer,
verifier,
- signAlg: 'EdDSA',
+ signAlg: ES256.alg,
hasher: digest,
hashAlg: 'SHA-256',
saltGenerator: generateSalt,
diff --git a/examples/sd-jwt-example/kb.ts b/examples/sd-jwt-example/kb.ts
index 09c0bce3..0c375dc7 100644
--- a/examples/sd-jwt-example/kb.ts
+++ b/examples/sd-jwt-example/kb.ts
@@ -1,6 +1,6 @@
import { SDJwtInstance } from '@sd-jwt/core';
import type { DisclosureFrame } from '@sd-jwt/types';
-import { createSignerVerifier, digest, generateSalt } from './utils';
+import { createSignerVerifier, digest, ES256, generateSalt } from './utils';
(async () => {
const { signer, verifier } = await createSignerVerifier();
@@ -8,12 +8,12 @@ import { createSignerVerifier, digest, generateSalt } from './utils';
// Create SDJwt instance for use
const sdjwt = new SDJwtInstance({
signer,
- signAlg: 'EdDSA',
+ signAlg: ES256.alg,
verifier,
hasher: digest,
saltGenerator: generateSalt,
kbSigner: signer,
- kbSignAlg: 'EdDSA',
+ kbSignAlg: ES256.alg,
kbVerifier: verifier,
});
const claims = {
diff --git a/examples/sd-jwt-example/sdjwtobject.ts b/examples/sd-jwt-example/sdjwtobject.ts
index 6f565b41..1e5cdacf 100644
--- a/examples/sd-jwt-example/sdjwtobject.ts
+++ b/examples/sd-jwt-example/sdjwtobject.ts
@@ -1,6 +1,6 @@
import { SDJwtInstance } from '@sd-jwt/core';
import type { DisclosureFrame } from '@sd-jwt/types';
-import { createSignerVerifier, digest, generateSalt } from './utils';
+import { createSignerVerifier, digest, ES256, generateSalt } from './utils';
(async () => {
const { signer, verifier } = await createSignerVerifier();
@@ -8,12 +8,12 @@ import { createSignerVerifier, digest, generateSalt } from './utils';
// Create SDJwt instance for use
const sdjwt = new SDJwtInstance({
signer,
- signAlg: 'EdDSA',
+ signAlg: ES256.alg,
verifier,
hasher: digest,
saltGenerator: generateSalt,
kbSigner: signer,
- kbSignAlg: 'EdDSA',
+ kbSignAlg: ES256.alg,
kbVerifier: verifier,
});
// Issuer Define the claims object with the user's information
diff --git a/examples/sd-jwt-example/utils.ts b/examples/sd-jwt-example/utils.ts
index 3eb5426d..8e68c6d9 100644
--- a/examples/sd-jwt-example/utils.ts
+++ b/examples/sd-jwt-example/utils.ts
@@ -1,5 +1,5 @@
import { ES256, digest, generateSalt } from '@sd-jwt/crypto-nodejs';
-export { digest, generateSalt };
+export { digest, generateSalt, ES256 };
export const createSignerVerifier = async () => {
const { privateKey, publicKey } = await ES256.generateKeyPair();
diff --git a/examples/sd-jwt-vc-example/all.ts b/examples/sd-jwt-vc-example/all.ts
index 9b64dfa9..9a83e1d0 100644
--- a/examples/sd-jwt-vc-example/all.ts
+++ b/examples/sd-jwt-vc-example/all.ts
@@ -1,6 +1,6 @@
import { SDJwtVcInstance } from '@sd-jwt/sd-jwt-vc';
import type { DisclosureFrame } from '@sd-jwt/types';
-import { createSignerVerifier, digest, generateSalt } from './utils';
+import { createSignerVerifier, digest, ES256, generateSalt } from './utils';
(async () => {
const { signer, verifier } = await createSignerVerifier();
@@ -9,7 +9,7 @@ import { createSignerVerifier, digest, generateSalt } from './utils';
const sdjwt = new SDJwtVcInstance({
signer,
verifier,
- signAlg: 'EdDSA',
+ signAlg: ES256.alg,
hasher: digest,
hashAlg: 'SHA-256',
saltGenerator: generateSalt,
diff --git a/examples/sd-jwt-vc-example/basic.ts b/examples/sd-jwt-vc-example/basic.ts
index 2ed209bb..dff14700 100644
--- a/examples/sd-jwt-vc-example/basic.ts
+++ b/examples/sd-jwt-vc-example/basic.ts
@@ -1,6 +1,6 @@
import { SDJwtVcInstance } from '@sd-jwt/sd-jwt-vc';
import type { DisclosureFrame } from '@sd-jwt/types';
-import { createSignerVerifier, digest, generateSalt } from './utils';
+import { createSignerVerifier, digest, ES256, generateSalt } from './utils';
(async () => {
const { signer, verifier } = await createSignerVerifier();
@@ -9,7 +9,7 @@ import { createSignerVerifier, digest, generateSalt } from './utils';
const sdjwt = new SDJwtVcInstance({
signer,
verifier,
- signAlg: 'EdDSA',
+ signAlg: ES256.alg,
hasher: digest,
hashAlg: 'SHA-256',
saltGenerator: generateSalt,
diff --git a/examples/sd-jwt-vc-example/custom.ts b/examples/sd-jwt-vc-example/custom.ts
index 1a2a5a7a..a9e48ec4 100644
--- a/examples/sd-jwt-vc-example/custom.ts
+++ b/examples/sd-jwt-vc-example/custom.ts
@@ -1,6 +1,6 @@
import { SDJwtVcInstance } from '@sd-jwt/sd-jwt-vc';
import type { DisclosureFrame } from '@sd-jwt/types';
-import { createSignerVerifier, digest, generateSalt } from './utils';
+import { createSignerVerifier, digest, ES256, generateSalt } from './utils';
(async () => {
const { signer, verifier } = await createSignerVerifier();
@@ -9,7 +9,7 @@ import { createSignerVerifier, digest, generateSalt } from './utils';
const sdjwt = new SDJwtVcInstance({
signer,
verifier,
- signAlg: 'EdDSA',
+ signAlg: ES256.alg,
hasher: digest,
hashAlg: 'SHA-256',
saltGenerator: generateSalt,
diff --git a/examples/sd-jwt-vc-example/custom_header.ts b/examples/sd-jwt-vc-example/custom_header.ts
index 31eb3d8b..0b8cab75 100644
--- a/examples/sd-jwt-vc-example/custom_header.ts
+++ b/examples/sd-jwt-vc-example/custom_header.ts
@@ -1,6 +1,6 @@
import { SDJwtVcInstance } from '@sd-jwt/sd-jwt-vc';
import type { DisclosureFrame } from '@sd-jwt/types';
-import { createSignerVerifier, digest, generateSalt } from './utils';
+import { createSignerVerifier, digest, ES256, generateSalt } from './utils';
(async () => {
const { signer, verifier } = await createSignerVerifier();
@@ -9,7 +9,7 @@ import { createSignerVerifier, digest, generateSalt } from './utils';
const sdjwt = new SDJwtVcInstance({
signer,
verifier,
- signAlg: 'EdDSA',
+ signAlg: ES256.alg,
hasher: digest,
hashAlg: 'SHA-256',
saltGenerator: generateSalt,
diff --git a/examples/sd-jwt-vc-example/decode.ts b/examples/sd-jwt-vc-example/decode.ts
index ccf1faab..bcd4b2f0 100644
--- a/examples/sd-jwt-vc-example/decode.ts
+++ b/examples/sd-jwt-vc-example/decode.ts
@@ -1,5 +1,5 @@
import { SDJwtVcInstance } from '@sd-jwt/sd-jwt-vc';
-import { createSignerVerifier, digest, generateSalt } from './utils';
+import { createSignerVerifier, digest, ES256, generateSalt } from './utils';
(async () => {
const { signer, verifier } = await createSignerVerifier();
@@ -7,12 +7,12 @@ import { createSignerVerifier, digest, generateSalt } from './utils';
// Create SDJwt instance for use
const sdjwt = new SDJwtVcInstance({
signer,
- signAlg: 'EdDSA',
+ signAlg: ES256.alg,
verifier,
hasher: digest,
saltGenerator: generateSalt,
kbSigner: signer,
- kbSignAlg: 'EdDSA',
+ kbSignAlg: ES256.alg,
kbVerifier: verifier,
});
diff --git a/examples/sd-jwt-vc-example/decoy.ts b/examples/sd-jwt-vc-example/decoy.ts
index 109e4c47..b8fc3c43 100644
--- a/examples/sd-jwt-vc-example/decoy.ts
+++ b/examples/sd-jwt-vc-example/decoy.ts
@@ -1,6 +1,6 @@
import { SDJwtVcInstance } from '@sd-jwt/sd-jwt-vc';
import type { DisclosureFrame } from '@sd-jwt/types';
-import { createSignerVerifier, digest, generateSalt } from './utils';
+import { createSignerVerifier, digest, ES256, generateSalt } from './utils';
(async () => {
const { signer, verifier } = await createSignerVerifier();
@@ -9,7 +9,7 @@ import { createSignerVerifier, digest, generateSalt } from './utils';
const sdjwt = new SDJwtVcInstance({
signer,
verifier,
- signAlg: 'EdDSA',
+ signAlg: ES256.alg,
hasher: digest,
hashAlg: 'SHA-256',
saltGenerator: generateSalt,
diff --git a/examples/sd-jwt-vc-example/kb.ts b/examples/sd-jwt-vc-example/kb.ts
index 6ce9858c..39a889ef 100644
--- a/examples/sd-jwt-vc-example/kb.ts
+++ b/examples/sd-jwt-vc-example/kb.ts
@@ -1,6 +1,6 @@
import { SDJwtVcInstance } from '@sd-jwt/sd-jwt-vc';
import type { DisclosureFrame } from '@sd-jwt/types';
-import { createSignerVerifier, digest, generateSalt } from './utils';
+import { createSignerVerifier, digest, ES256, generateSalt } from './utils';
(async () => {
const { signer, verifier } = await createSignerVerifier();
@@ -8,12 +8,12 @@ import { createSignerVerifier, digest, generateSalt } from './utils';
// Create SDJwt instance for use
const sdjwt = new SDJwtVcInstance({
signer,
- signAlg: 'EdDSA',
+ signAlg: ES256.alg,
verifier,
hasher: digest,
saltGenerator: generateSalt,
kbSigner: signer,
- kbSignAlg: 'EdDSA',
+ kbSignAlg: ES256.alg,
kbVerifier: verifier,
});
const claims = {
diff --git a/examples/sd-jwt-vc-example/sdjwtobject.ts b/examples/sd-jwt-vc-example/sdjwtobject.ts
index 798f8a19..0f1c0e1c 100644
--- a/examples/sd-jwt-vc-example/sdjwtobject.ts
+++ b/examples/sd-jwt-vc-example/sdjwtobject.ts
@@ -1,6 +1,6 @@
import { SDJwtVcInstance } from '@sd-jwt/sd-jwt-vc';
import type { DisclosureFrame } from '@sd-jwt/types';
-import { createSignerVerifier, digest, generateSalt } from './utils';
+import { createSignerVerifier, digest, ES256, generateSalt } from './utils';
(async () => {
const { signer, verifier } = await createSignerVerifier();
@@ -8,12 +8,12 @@ import { createSignerVerifier, digest, generateSalt } from './utils';
// Create SDJwt instance for use
const sdjwt = new SDJwtVcInstance({
signer,
- signAlg: 'EdDSA',
+ signAlg: ES256.alg,
verifier,
hasher: digest,
saltGenerator: generateSalt,
kbSigner: signer,
- kbSignAlg: 'EdDSA',
+ kbSignAlg: ES256.alg,
kbVerifier: verifier,
});
// Issuer Define the claims object with the user's information
diff --git a/examples/sd-jwt-vc-example/utils.ts b/examples/sd-jwt-vc-example/utils.ts
index 3eb5426d..8e68c6d9 100644
--- a/examples/sd-jwt-vc-example/utils.ts
+++ b/examples/sd-jwt-vc-example/utils.ts
@@ -1,5 +1,5 @@
import { ES256, digest, generateSalt } from '@sd-jwt/crypto-nodejs';
-export { digest, generateSalt };
+export { digest, generateSalt, ES256 };
export const createSignerVerifier = async () => {
const { privateKey, publicKey } = await ES256.generateKeyPair();