Post Quantum verifiable credentials
Conforming to:
- Module-Lattice-Based Digital Signature Standard (FIPS 204)
- Verifiable Credentials Data Model v2.0
- Verifiable Credential Data Integrity v1.0
- Quantum-Safe Cryptosuites v0.3
1_keyring_mldsa44
Zencode
gherkin
Scenario qp
Given nothing
When I create the mldsa44 key
and I create the mldsa44 public key
Then I print the keyring
and I print the 'mldsa44 public key'
Output
json
{
"keyring": {
"mldsa44": "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"
},
"mldsa44_public_key": "+Ej+UoLZ5/MUQ6CHFgCKtTExGkvK+21OPUqfytzIAU629hkAyXMINVnVujASG6jmhjx1V330SND4pMKIwCyYeKJ0vLOaIKcohLDwvEPW51PFxEFsDBz/+LH9B+PQlvcPiHMsQtTtXxrS2WAJpKJhNdAJtKMhIktuurbLZ8GG/OHYR+tYUwhdZNyJQhCtxPAXY49+YwhH16pxVYGx2rzzBAocJPsKn3fQIbHXF6Z90BfPKQdKBV/PUXia6x+K4Yqc4WAWpVfZTdUbdw41X0aTRwq+m08mqSJg74eKSiXSOhTZGDGgz5aezLypWYuMUKtHPbqSHqr+IBJEFyKw6aDKncLmGbxWhtpNd1t668NMI6r1ctmvEbsPmJllXlin2rtB0qIQPYE0NXEHmeLUhStd2s4GtlvaASO0TS5+4Sk5RvEIqVclPOMq8ydvFCxCquk5dl1+UEg8i4vu19oQCyyN1ebkCRli559gmdyvkZr9w1N1j6ndreWQS3F0b3IHGj7HzsF6AKXoZft7qZnDYRGny3KaFYIqW17Gdp4masjK1IyIgSkbBSCaDLp+reIJtU08Z5tWEJewA8h8fEb0Y6wwHmPT7fB2NzX+zXg19x48vat6CZR3zT+36raXVFPMIJzc58c8L3YcwCFr67PjPJj5Crf8BDGQtBvJ7JMjTCZ+0/fcD0rGHYMap3TdLSa/6g9utVORotFyGvZoEazxnmymoXNQ9OQh59MYi4iDtMY1CVClRq1cPrMMvUqxlwGCXhDKNY08/h+yoWkacO6cuycsbfsb90yVzmGW/aeDNSxlJPyfKFYqzUKlBMtfkKE2ZMmmTWZR0LsY9hkYe3+LL/8vUipfUIYTSCZaCc5fHaxZGmfggtaAjD0OdnCZffuf2KOVKgms4/YRaxgmBGbVuvlXjkG+R4M2YmamZvq+M6AdH+TPR3sYr1J7B8dF4y4BlmzGP5ChXIyUsCCGELTOorvUrGcSn5XDW919e1R4dDZa7Vj1/OjTWlkSalsRq43LAKkH+Tb6r+wSfGrht1KbdjbqJzhxQoWROcZ111MFmUv1dc8xMI2G3w3VzbIbtIi1Ixpp9Yi64X1Xu2T+0lIbIUmDg63TwEpHO9BuxIBFAGtbhcRlmKeE3BV6/dS56tJGUIt9OxufKt2cGTvQge2qof3dF6OdsM2KdVHrtZp5EJft9mpxlO2VFa+ZIox/a5CiP81SxV+CaZRGES3OEGXxTMT4wvhQGyhn4dmP4/YhpXhmN5cs5oJtmn5CXI75gcANWvWStNghoHxwA3xI6MlsYXCM5VaM9q10TwxgeF1Ip9GGhHB/cn5bJgy0YYZcaqBxJHfvRqnlRKoW68jmEzEpPCgh8byiQBrOVLiJ8XGduEqEvd4IJc9F5CfTBU4MqJlODnGdCfDyz/hJJaTzbPnajXRiGGsysHh/1zTMm+ekRDLQpxUkghLQVhQTZ5wMNzNaS1CRAg1s8H/DyEXOkqjwMK0XRZTOlJ8jKPtPIDO79kbH0FXII4c5SUwnSGHKo0U7M77AhG8LdSRWWb681EtQxKojgVL++r/5cJdIhtxrWnBM6jX5rjvDpFR7XbxV9vuhdHWcbRN0XMv3O0e86ePShR08e35UY29ntZ7An6OZO5OU1SpKz6O361oyFil5fnzX2U1f0DxUdVwC5yMJy1muexqPTqUOozm26IPnLgYH2CB0EvFe8OPxVPMlnpO7WdlNtC8DrH1NznvIfRR3ffo+HjmR1A=="
}
2_rdfcanon_mldsa44
Input
unsecuredDocument
json
{
"unsecuredDocument": {
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "urn:uuid:58172aac-d8ba-11ed-83dd-0b3aef56cc33",
"type": ["VerifiableCredential", "AlumniCredential"],
"name": "Alumni Credential",
"description": "A minimum viable example of an Alumni Credential.",
"issuer": "https://vc.example/issuers/5678",
"validFrom": "2023-01-01T00:00:00Z",
"credentialSubject": {
"id": "did:example:abcdefgh",
"alumniOf": "The School of Examples"
}
}
}
1_keyring_mldsa44
json
{
"keyring": {
"mldsa44": "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"
},
"mldsa44_public_key": "+Ej+UoLZ5/MUQ6CHFgCKtTExGkvK+21OPUqfytzIAU629hkAyXMINVnVujASG6jmhjx1V330SND4pMKIwCyYeKJ0vLOaIKcohLDwvEPW51PFxEFsDBz/+LH9B+PQlvcPiHMsQtTtXxrS2WAJpKJhNdAJtKMhIktuurbLZ8GG/OHYR+tYUwhdZNyJQhCtxPAXY49+YwhH16pxVYGx2rzzBAocJPsKn3fQIbHXF6Z90BfPKQdKBV/PUXia6x+K4Yqc4WAWpVfZTdUbdw41X0aTRwq+m08mqSJg74eKSiXSOhTZGDGgz5aezLypWYuMUKtHPbqSHqr+IBJEFyKw6aDKncLmGbxWhtpNd1t668NMI6r1ctmvEbsPmJllXlin2rtB0qIQPYE0NXEHmeLUhStd2s4GtlvaASO0TS5+4Sk5RvEIqVclPOMq8ydvFCxCquk5dl1+UEg8i4vu19oQCyyN1ebkCRli559gmdyvkZr9w1N1j6ndreWQS3F0b3IHGj7HzsF6AKXoZft7qZnDYRGny3KaFYIqW17Gdp4masjK1IyIgSkbBSCaDLp+reIJtU08Z5tWEJewA8h8fEb0Y6wwHmPT7fB2NzX+zXg19x48vat6CZR3zT+36raXVFPMIJzc58c8L3YcwCFr67PjPJj5Crf8BDGQtBvJ7JMjTCZ+0/fcD0rGHYMap3TdLSa/6g9utVORotFyGvZoEazxnmymoXNQ9OQh59MYi4iDtMY1CVClRq1cPrMMvUqxlwGCXhDKNY08/h+yoWkacO6cuycsbfsb90yVzmGW/aeDNSxlJPyfKFYqzUKlBMtfkKE2ZMmmTWZR0LsY9hkYe3+LL/8vUipfUIYTSCZaCc5fHaxZGmfggtaAjD0OdnCZffuf2KOVKgms4/YRaxgmBGbVuvlXjkG+R4M2YmamZvq+M6AdH+TPR3sYr1J7B8dF4y4BlmzGP5ChXIyUsCCGELTOorvUrGcSn5XDW919e1R4dDZa7Vj1/OjTWlkSalsRq43LAKkH+Tb6r+wSfGrht1KbdjbqJzhxQoWROcZ111MFmUv1dc8xMI2G3w3VzbIbtIi1Ixpp9Yi64X1Xu2T+0lIbIUmDg63TwEpHO9BuxIBFAGtbhcRlmKeE3BV6/dS56tJGUIt9OxufKt2cGTvQge2qof3dF6OdsM2KdVHrtZp5EJft9mpxlO2VFa+ZIox/a5CiP81SxV+CaZRGES3OEGXxTMT4wvhQGyhn4dmP4/YhpXhmN5cs5oJtmn5CXI75gcANWvWStNghoHxwA3xI6MlsYXCM5VaM9q10TwxgeF1Ip9GGhHB/cn5bJgy0YYZcaqBxJHfvRqnlRKoW68jmEzEpPCgh8byiQBrOVLiJ8XGduEqEvd4IJc9F5CfTBU4MqJlODnGdCfDyz/hJJaTzbPnajXRiGGsysHh/1zTMm+ekRDLQpxUkghLQVhQTZ5wMNzNaS1CRAg1s8H/DyEXOkqjwMK0XRZTOlJ8jKPtPIDO79kbH0FXII4c5SUwnSGHKo0U7M77AhG8LdSRWWb681EtQxKojgVL++r/5cJdIhtxrWnBM6jX5rjvDpFR7XbxV9vuhdHWcbRN0XMv3O0e86ePShR08e35UY29ntZ7An6OZO5OU1SpKz6O361oyFil5fnzX2U1f0DxUdVwC5yMJy1muexqPTqUOozm26IPnLgYH2CB0EvFe8OPxVPMlnpO7WdlNtC8DrH1NznvIfRR3ffo+HjmR1A=="
}
Zencode
gherkin
rule unknown ignore
Given I have a 'string dictionary' named 'unsecuredDocument'
and I have a 'keyring'
When I create the 'string dictionary' named 'proofConfig'
and I copy '@context' from 'unsecuredDocument' in 'proofConfig'
and I write string 'DataIntegrityProof' in 'type'
and I move 'type' in 'proofConfig'
and I write string 'did:dyne:b4dc0ff3' in 'verificationMethod'
and I move 'verificationMethod' in 'proofConfig'
and I write string 'experimental-mldsa-rdfc-2025' in 'cryptosuite'
and I move 'cryptosuite' in 'proofConfig'
and I write string 'assertionMethod' in 'proofPurpose'
and I move 'proofPurpose' in 'proofConfig'
and I write string '2025-04-25T09:07:09Z' in 'created'
and I move 'created' in 'proofConfig'
and I rename 'unsecuredDocument' to 'document'
Then print 'proofConfig' as 'string'
and print 'document' as 'string'
Compute 'proofConfig rdf-canon': generate serialized canonical rdf with dictionary 'proofConfig'
Compute 'document rdf-canon': generate serialized canonical rdf with dictionary 'document'
Output
json
{
"document": {
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"credentialSubject": {
"alumniOf": "The School of Examples",
"id": "did:example:abcdefgh"
},
"description": "A minimum viable example of an Alumni Credential.",
"id": "urn:uuid:58172aac-d8ba-11ed-83dd-0b3aef56cc33",
"issuer": "https://vc.example/issuers/5678",
"name": "Alumni Credential",
"type": [
"VerifiableCredential",
"AlumniCredential"
],
"validFrom": "2023-01-01T00:00:00Z"
},
"proofConfig": {
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"created": "2025-04-25T09:07:09Z",
"cryptosuite": "experimental-mldsa-rdfc-2025",
"proofPurpose": "assertionMethod",
"type": "DataIntegrityProof",
"verificationMethod": "did:dyne:b4dc0ff3"
},
"proofConfig rdf-canon": "XzpjMTRuMCA8aHR0cDovL3B1cmwub3JnL2RjL3Rlcm1zL2NyZWF0ZWQ+ICIyMDI1LTA0LTI1VDA5OjA3OjA5WiJeXjxodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSNkYXRlVGltZT4gLgpfOmMxNG4wIDxodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjdHlwZT4gPGh0dHBzOi8vdzNpZC5vcmcvc2VjdXJpdHkjRGF0YUludGVncml0eVByb29mPiAuCl86YzE0bjAgPGh0dHBzOi8vdzNpZC5vcmcvc2VjdXJpdHkjY3J5cHRvc3VpdGU+ICJleHBlcmltZW50YWwtbWxkc2EtcmRmYy0yMDI1Il5ePGh0dHBzOi8vdzNpZC5vcmcvc2VjdXJpdHkjY3J5cHRvc3VpdGVTdHJpbmc+IC4KXzpjMTRuMCA8aHR0cHM6Ly93M2lkLm9yZy9zZWN1cml0eSNwcm9vZlB1cnBvc2U+IDxodHRwczovL3czaWQub3JnL3NlY3VyaXR5I2Fzc2VydGlvbk1ldGhvZD4gLgpfOmMxNG4wIDxodHRwczovL3czaWQub3JnL3NlY3VyaXR5I3ZlcmlmaWNhdGlvbk1ldGhvZD4gPGRpZDpkeW5lOmI0ZGMwZmYzPiAuCg==",
"document rdf-canon": "PGRpZDpleGFtcGxlOmFiY2RlZmdoPiA8aHR0cHM6Ly93d3cudzMub3JnL25zL2NyZWRlbnRpYWxzL2V4YW1wbGVzI2FsdW1uaU9mPiAiVGhlIFNjaG9vbCBvZiBFeGFtcGxlcyIgLgo8dXJuOnV1aWQ6NTgxNzJhYWMtZDhiYS0xMWVkLTgzZGQtMGIzYWVmNTZjYzMzPiA8aHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zI3R5cGU+IDxodHRwczovL3d3dy53My5vcmcvMjAxOC9jcmVkZW50aWFscyNWZXJpZmlhYmxlQ3JlZGVudGlhbD4gLgo8dXJuOnV1aWQ6NTgxNzJhYWMtZDhiYS0xMWVkLTgzZGQtMGIzYWVmNTZjYzMzPiA8aHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zI3R5cGU+IDxodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvZXhhbXBsZXMjQWx1bW5pQ3JlZGVudGlhbD4gLgo8dXJuOnV1aWQ6NTgxNzJhYWMtZDhiYS0xMWVkLTgzZGQtMGIzYWVmNTZjYzMzPiA8aHR0cHM6Ly9zY2hlbWEub3JnL2Rlc2NyaXB0aW9uPiAiQSBtaW5pbXVtIHZpYWJsZSBleGFtcGxlIG9mIGFuIEFsdW1uaSBDcmVkZW50aWFsLiIgLgo8dXJuOnV1aWQ6NTgxNzJhYWMtZDhiYS0xMWVkLTgzZGQtMGIzYWVmNTZjYzMzPiA8aHR0cHM6Ly9zY2hlbWEub3JnL25hbWU+ICJBbHVtbmkgQ3JlZGVudGlhbCIgLgo8dXJuOnV1aWQ6NTgxNzJhYWMtZDhiYS0xMWVkLTgzZGQtMGIzYWVmNTZjYzMzPiA8aHR0cHM6Ly93d3cudzMub3JnLzIwMTgvY3JlZGVudGlhbHMjY3JlZGVudGlhbFN1YmplY3Q+IDxkaWQ6ZXhhbXBsZTphYmNkZWZnaD4gLgo8dXJuOnV1aWQ6NTgxNzJhYWMtZDhiYS0xMWVkLTgzZGQtMGIzYWVmNTZjYzMzPiA8aHR0cHM6Ly93d3cudzMub3JnLzIwMTgvY3JlZGVudGlhbHMjaXNzdWVyPiA8aHR0cHM6Ly92Yy5leGFtcGxlL2lzc3VlcnMvNTY3OD4gLgo8dXJuOnV1aWQ6NTgxNzJhYWMtZDhiYS0xMWVkLTgzZGQtMGIzYWVmNTZjYzMzPiA8aHR0cHM6Ly93d3cudzMub3JnLzIwMTgvY3JlZGVudGlhbHMjdmFsaWRGcm9tPiAiMjAyMy0wMS0wMVQwMDowMDowMFoiXl48aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEjZGF0ZVRpbWU+IC4K"
}
3_sign_mldsa44
Input
2_rdfcanon_mldsa44
json
{
"document": {
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"credentialSubject": {
"alumniOf": "The School of Examples",
"id": "did:example:abcdefgh"
},
"description": "A minimum viable example of an Alumni Credential.",
"id": "urn:uuid:58172aac-d8ba-11ed-83dd-0b3aef56cc33",
"issuer": "https://vc.example/issuers/5678",
"name": "Alumni Credential",
"type": [
"VerifiableCredential",
"AlumniCredential"
],
"validFrom": "2023-01-01T00:00:00Z"
},
"proofConfig": {
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"created": "2025-04-25T09:07:09Z",
"cryptosuite": "experimental-mldsa-rdfc-2025",
"proofPurpose": "assertionMethod",
"type": "DataIntegrityProof",
"verificationMethod": "did:dyne:b4dc0ff3"
},
"proofConfig rdf-canon": "XzpjMTRuMCA8aHR0cDovL3B1cmwub3JnL2RjL3Rlcm1zL2NyZWF0ZWQ+ICIyMDI1LTA0LTI1VDA5OjA3OjA5WiJeXjxodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSNkYXRlVGltZT4gLgpfOmMxNG4wIDxodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjdHlwZT4gPGh0dHBzOi8vdzNpZC5vcmcvc2VjdXJpdHkjRGF0YUludGVncml0eVByb29mPiAuCl86YzE0bjAgPGh0dHBzOi8vdzNpZC5vcmcvc2VjdXJpdHkjY3J5cHRvc3VpdGU+ICJleHBlcmltZW50YWwtbWxkc2EtcmRmYy0yMDI1Il5ePGh0dHBzOi8vdzNpZC5vcmcvc2VjdXJpdHkjY3J5cHRvc3VpdGVTdHJpbmc+IC4KXzpjMTRuMCA8aHR0cHM6Ly93M2lkLm9yZy9zZWN1cml0eSNwcm9vZlB1cnBvc2U+IDxodHRwczovL3czaWQub3JnL3NlY3VyaXR5I2Fzc2VydGlvbk1ldGhvZD4gLgpfOmMxNG4wIDxodHRwczovL3czaWQub3JnL3NlY3VyaXR5I3ZlcmlmaWNhdGlvbk1ldGhvZD4gPGRpZDpkeW5lOmI0ZGMwZmYzPiAuCg==",
"document rdf-canon": "PGRpZDpleGFtcGxlOmFiY2RlZmdoPiA8aHR0cHM6Ly93d3cudzMub3JnL25zL2NyZWRlbnRpYWxzL2V4YW1wbGVzI2FsdW1uaU9mPiAiVGhlIFNjaG9vbCBvZiBFeGFtcGxlcyIgLgo8dXJuOnV1aWQ6NTgxNzJhYWMtZDhiYS0xMWVkLTgzZGQtMGIzYWVmNTZjYzMzPiA8aHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zI3R5cGU+IDxodHRwczovL3d3dy53My5vcmcvMjAxOC9jcmVkZW50aWFscyNWZXJpZmlhYmxlQ3JlZGVudGlhbD4gLgo8dXJuOnV1aWQ6NTgxNzJhYWMtZDhiYS0xMWVkLTgzZGQtMGIzYWVmNTZjYzMzPiA8aHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zI3R5cGU+IDxodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvZXhhbXBsZXMjQWx1bW5pQ3JlZGVudGlhbD4gLgo8dXJuOnV1aWQ6NTgxNzJhYWMtZDhiYS0xMWVkLTgzZGQtMGIzYWVmNTZjYzMzPiA8aHR0cHM6Ly9zY2hlbWEub3JnL2Rlc2NyaXB0aW9uPiAiQSBtaW5pbXVtIHZpYWJsZSBleGFtcGxlIG9mIGFuIEFsdW1uaSBDcmVkZW50aWFsLiIgLgo8dXJuOnV1aWQ6NTgxNzJhYWMtZDhiYS0xMWVkLTgzZGQtMGIzYWVmNTZjYzMzPiA8aHR0cHM6Ly9zY2hlbWEub3JnL25hbWU+ICJBbHVtbmkgQ3JlZGVudGlhbCIgLgo8dXJuOnV1aWQ6NTgxNzJhYWMtZDhiYS0xMWVkLTgzZGQtMGIzYWVmNTZjYzMzPiA8aHR0cHM6Ly93d3cudzMub3JnLzIwMTgvY3JlZGVudGlhbHMjY3JlZGVudGlhbFN1YmplY3Q+IDxkaWQ6ZXhhbXBsZTphYmNkZWZnaD4gLgo8dXJuOnV1aWQ6NTgxNzJhYWMtZDhiYS0xMWVkLTgzZGQtMGIzYWVmNTZjYzMzPiA8aHR0cHM6Ly93d3cudzMub3JnLzIwMTgvY3JlZGVudGlhbHMjaXNzdWVyPiA8aHR0cHM6Ly92Yy5leGFtcGxlL2lzc3VlcnMvNTY3OD4gLgo8dXJuOnV1aWQ6NTgxNzJhYWMtZDhiYS0xMWVkLTgzZGQtMGIzYWVmNTZjYzMzPiA8aHR0cHM6Ly93d3cudzMub3JnLzIwMTgvY3JlZGVudGlhbHMjdmFsaWRGcm9tPiAiMjAyMy0wMS0wMVQwMDowMDowMFoiXl48aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEjZGF0ZVRpbWU+IC4K"
}
1_keyring_mldsa44
json
{
"keyring": {
"mldsa44": "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"
},
"mldsa44_public_key": "+Ej+UoLZ5/MUQ6CHFgCKtTExGkvK+21OPUqfytzIAU629hkAyXMINVnVujASG6jmhjx1V330SND4pMKIwCyYeKJ0vLOaIKcohLDwvEPW51PFxEFsDBz/+LH9B+PQlvcPiHMsQtTtXxrS2WAJpKJhNdAJtKMhIktuurbLZ8GG/OHYR+tYUwhdZNyJQhCtxPAXY49+YwhH16pxVYGx2rzzBAocJPsKn3fQIbHXF6Z90BfPKQdKBV/PUXia6x+K4Yqc4WAWpVfZTdUbdw41X0aTRwq+m08mqSJg74eKSiXSOhTZGDGgz5aezLypWYuMUKtHPbqSHqr+IBJEFyKw6aDKncLmGbxWhtpNd1t668NMI6r1ctmvEbsPmJllXlin2rtB0qIQPYE0NXEHmeLUhStd2s4GtlvaASO0TS5+4Sk5RvEIqVclPOMq8ydvFCxCquk5dl1+UEg8i4vu19oQCyyN1ebkCRli559gmdyvkZr9w1N1j6ndreWQS3F0b3IHGj7HzsF6AKXoZft7qZnDYRGny3KaFYIqW17Gdp4masjK1IyIgSkbBSCaDLp+reIJtU08Z5tWEJewA8h8fEb0Y6wwHmPT7fB2NzX+zXg19x48vat6CZR3zT+36raXVFPMIJzc58c8L3YcwCFr67PjPJj5Crf8BDGQtBvJ7JMjTCZ+0/fcD0rGHYMap3TdLSa/6g9utVORotFyGvZoEazxnmymoXNQ9OQh59MYi4iDtMY1CVClRq1cPrMMvUqxlwGCXhDKNY08/h+yoWkacO6cuycsbfsb90yVzmGW/aeDNSxlJPyfKFYqzUKlBMtfkKE2ZMmmTWZR0LsY9hkYe3+LL/8vUipfUIYTSCZaCc5fHaxZGmfggtaAjD0OdnCZffuf2KOVKgms4/YRaxgmBGbVuvlXjkG+R4M2YmamZvq+M6AdH+TPR3sYr1J7B8dF4y4BlmzGP5ChXIyUsCCGELTOorvUrGcSn5XDW919e1R4dDZa7Vj1/OjTWlkSalsRq43LAKkH+Tb6r+wSfGrht1KbdjbqJzhxQoWROcZ111MFmUv1dc8xMI2G3w3VzbIbtIi1Ixpp9Yi64X1Xu2T+0lIbIUmDg63TwEpHO9BuxIBFAGtbhcRlmKeE3BV6/dS56tJGUIt9OxufKt2cGTvQge2qof3dF6OdsM2KdVHrtZp5EJft9mpxlO2VFa+ZIox/a5CiP81SxV+CaZRGES3OEGXxTMT4wvhQGyhn4dmP4/YhpXhmN5cs5oJtmn5CXI75gcANWvWStNghoHxwA3xI6MlsYXCM5VaM9q10TwxgeF1Ip9GGhHB/cn5bJgy0YYZcaqBxJHfvRqnlRKoW68jmEzEpPCgh8byiQBrOVLiJ8XGduEqEvd4IJc9F5CfTBU4MqJlODnGdCfDyz/hJJaTzbPnajXRiGGsysHh/1zTMm+ekRDLQpxUkghLQVhQTZ5wMNzNaS1CRAg1s8H/DyEXOkqjwMK0XRZTOlJ8jKPtPIDO79kbH0FXII4c5SUwnSGHKo0U7M77AhG8LdSRWWb681EtQxKojgVL++r/5cJdIhtxrWnBM6jX5rjvDpFR7XbxV9vuhdHWcbRN0XMv3O0e86ePShR08e35UY29ntZ7An6OZO5OU1SpKz6O361oyFil5fnzX2U1f0DxUdVwC5yMJy1muexqPTqUOozm26IPnLgYH2CB0EvFe8OPxVPMlnpO7WdlNtC8DrH1NznvIfRR3ffo+HjmR1A=="
}
Zencode
gherkin
Scenario qp
Given I have a 'keyring'
and I have a 'string dictionary' named 'proofConfig'
and I have a 'string dictionary' named 'document'
Given I have a 'base64' named 'document rdf-canon'
and I have a 'base64' named 'proofConfig rdf-canon'
#and I have a 'hex' named 'proofConfig w3c hash'
#and I have a 'hex' named 'document w3c hash'
When I create the hash of 'proofConfig rdf-canon'
and rename 'hash' to 'proofConfig hash'
and I create the hash of 'document rdf-canon'
and rename 'hash' to 'document hash'
When I append 'document hash' to 'proofConfig hash'
When I create the mldsa44 signature of 'proofConfig hash'
When I rename 'proofConfig' to 'proof'
# multisignature base58 prefix
and I write string 'z' in 'proofValue'
and I append 'base58' of 'mldsa44 signature' to 'proofValue'
and I move 'proofValue' in 'proof'
and I remove '@context' from 'proof'
and I move 'proof' in 'document'
Then print 'document' as 'string'
Output
json
{
"document": {
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"credentialSubject": {
"alumniOf": "The School of Examples",
"id": "did:example:abcdefgh"
},
"description": "A minimum viable example of an Alumni Credential.",
"id": "urn:uuid:58172aac-d8ba-11ed-83dd-0b3aef56cc33",
"issuer": "https://vc.example/issuers/5678",
"name": "Alumni Credential",
"proof": {
"created": "2025-04-25T09:07:09Z",
"cryptosuite": "experimental-mldsa-rdfc-2025",
"proofPurpose": "assertionMethod",
"proofValue": "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",
"type": "DataIntegrityProof",
"verificationMethod": "did:dyne:b4dc0ff3"
},
"type": [
"VerifiableCredential",
"AlumniCredential"
],
"validFrom": "2023-01-01T00:00:00Z"
}
}
4_preverif_mldsa44
Input
3_sign_mldsa44
json
{
"document": {
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"credentialSubject": {
"alumniOf": "The School of Examples",
"id": "did:example:abcdefgh"
},
"description": "A minimum viable example of an Alumni Credential.",
"id": "urn:uuid:58172aac-d8ba-11ed-83dd-0b3aef56cc33",
"issuer": "https://vc.example/issuers/5678",
"name": "Alumni Credential",
"proof": {
"created": "2025-04-25T09:07:09Z",
"cryptosuite": "experimental-mldsa-rdfc-2025",
"proofPurpose": "assertionMethod",
"proofValue": "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",
"type": "DataIntegrityProof",
"verificationMethod": "did:dyne:b4dc0ff3"
},
"type": [
"VerifiableCredential",
"AlumniCredential"
],
"validFrom": "2023-01-01T00:00:00Z"
}
}
1_keyring_mldsa44
json
{
"keyring": {
"mldsa44": "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"
},
"mldsa44_public_key": "+Ej+UoLZ5/MUQ6CHFgCKtTExGkvK+21OPUqfytzIAU629hkAyXMINVnVujASG6jmhjx1V330SND4pMKIwCyYeKJ0vLOaIKcohLDwvEPW51PFxEFsDBz/+LH9B+PQlvcPiHMsQtTtXxrS2WAJpKJhNdAJtKMhIktuurbLZ8GG/OHYR+tYUwhdZNyJQhCtxPAXY49+YwhH16pxVYGx2rzzBAocJPsKn3fQIbHXF6Z90BfPKQdKBV/PUXia6x+K4Yqc4WAWpVfZTdUbdw41X0aTRwq+m08mqSJg74eKSiXSOhTZGDGgz5aezLypWYuMUKtHPbqSHqr+IBJEFyKw6aDKncLmGbxWhtpNd1t668NMI6r1ctmvEbsPmJllXlin2rtB0qIQPYE0NXEHmeLUhStd2s4GtlvaASO0TS5+4Sk5RvEIqVclPOMq8ydvFCxCquk5dl1+UEg8i4vu19oQCyyN1ebkCRli559gmdyvkZr9w1N1j6ndreWQS3F0b3IHGj7HzsF6AKXoZft7qZnDYRGny3KaFYIqW17Gdp4masjK1IyIgSkbBSCaDLp+reIJtU08Z5tWEJewA8h8fEb0Y6wwHmPT7fB2NzX+zXg19x48vat6CZR3zT+36raXVFPMIJzc58c8L3YcwCFr67PjPJj5Crf8BDGQtBvJ7JMjTCZ+0/fcD0rGHYMap3TdLSa/6g9utVORotFyGvZoEazxnmymoXNQ9OQh59MYi4iDtMY1CVClRq1cPrMMvUqxlwGCXhDKNY08/h+yoWkacO6cuycsbfsb90yVzmGW/aeDNSxlJPyfKFYqzUKlBMtfkKE2ZMmmTWZR0LsY9hkYe3+LL/8vUipfUIYTSCZaCc5fHaxZGmfggtaAjD0OdnCZffuf2KOVKgms4/YRaxgmBGbVuvlXjkG+R4M2YmamZvq+M6AdH+TPR3sYr1J7B8dF4y4BlmzGP5ChXIyUsCCGELTOorvUrGcSn5XDW919e1R4dDZa7Vj1/OjTWlkSalsRq43LAKkH+Tb6r+wSfGrht1KbdjbqJzhxQoWROcZ111MFmUv1dc8xMI2G3w3VzbIbtIi1Ixpp9Yi64X1Xu2T+0lIbIUmDg63TwEpHO9BuxIBFAGtbhcRlmKeE3BV6/dS56tJGUIt9OxufKt2cGTvQge2qof3dF6OdsM2KdVHrtZp5EJft9mpxlO2VFa+ZIox/a5CiP81SxV+CaZRGES3OEGXxTMT4wvhQGyhn4dmP4/YhpXhmN5cs5oJtmn5CXI75gcANWvWStNghoHxwA3xI6MlsYXCM5VaM9q10TwxgeF1Ip9GGhHB/cn5bJgy0YYZcaqBxJHfvRqnlRKoW68jmEzEpPCgh8byiQBrOVLiJ8XGduEqEvd4IJc9F5CfTBU4MqJlODnGdCfDyz/hJJaTzbPnajXRiGGsysHh/1zTMm+ekRDLQpxUkghLQVhQTZ5wMNzNaS1CRAg1s8H/DyEXOkqjwMK0XRZTOlJ8jKPtPIDO79kbH0FXII4c5SUwnSGHKo0U7M77AhG8LdSRWWb681EtQxKojgVL++r/5cJdIhtxrWnBM6jX5rjvDpFR7XbxV9vuhdHWcbRN0XMv3O0e86ePShR08e35UY29ntZ7An6OZO5OU1SpKz6O361oyFil5fnzX2U1f0DxUdVwC5yMJy1muexqPTqUOozm26IPnLgYH2CB0EvFe8OPxVPMlnpO7WdlNtC8DrH1NznvIfRR3ffo+HjmR1A=="
}
Zencode
gherkin
rule output encoding base64
Scenario qp
Given I have a 'keyring'
and I have a 'dictionary' named 'document'
and I have a 'base58' part of path 'document.proof.proofValue' after string prefix 'z'
and I have a 'dictionary' in path 'document.proof'
When I rename 'proofValue' to 'mldsa44 signature'
and I remove 'proofValue' from 'proof'
and I remove 'proof' from 'document'
and I copy '@context' from 'document' in 'proof'
and I create the mldsa44 public key
Then print the 'mldsa44 signature' as 'base64'
and print the 'proof'
and print the 'document'
and print the 'mldsa44 public key'
Compute 'proof rdf-canon': generate serialized canonical rdf with dictionary 'proof'
Compute 'document rdf-canon': generate serialized canonical rdf with dictionary 'document'
Output
json
{
"document": {
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"credentialSubject": {
"alumniOf": "The School of Examples",
"id": "did:example:abcdefgh"
},
"description": "A minimum viable example of an Alumni Credential.",
"id": "urn:uuid:58172aac-d8ba-11ed-83dd-0b3aef56cc33",
"issuer": "https://vc.example/issuers/5678",
"name": "Alumni Credential",
"type": [
"VerifiableCredential",
"AlumniCredential"
],
"validFrom": "2023-01-01T00:00:00Z"
},
"mldsa44_public_key": "+Ej+UoLZ5/MUQ6CHFgCKtTExGkvK+21OPUqfytzIAU629hkAyXMINVnVujASG6jmhjx1V330SND4pMKIwCyYeKJ0vLOaIKcohLDwvEPW51PFxEFsDBz/+LH9B+PQlvcPiHMsQtTtXxrS2WAJpKJhNdAJtKMhIktuurbLZ8GG/OHYR+tYUwhdZNyJQhCtxPAXY49+YwhH16pxVYGx2rzzBAocJPsKn3fQIbHXF6Z90BfPKQdKBV/PUXia6x+K4Yqc4WAWpVfZTdUbdw41X0aTRwq+m08mqSJg74eKSiXSOhTZGDGgz5aezLypWYuMUKtHPbqSHqr+IBJEFyKw6aDKncLmGbxWhtpNd1t668NMI6r1ctmvEbsPmJllXlin2rtB0qIQPYE0NXEHmeLUhStd2s4GtlvaASO0TS5+4Sk5RvEIqVclPOMq8ydvFCxCquk5dl1+UEg8i4vu19oQCyyN1ebkCRli559gmdyvkZr9w1N1j6ndreWQS3F0b3IHGj7HzsF6AKXoZft7qZnDYRGny3KaFYIqW17Gdp4masjK1IyIgSkbBSCaDLp+reIJtU08Z5tWEJewA8h8fEb0Y6wwHmPT7fB2NzX+zXg19x48vat6CZR3zT+36raXVFPMIJzc58c8L3YcwCFr67PjPJj5Crf8BDGQtBvJ7JMjTCZ+0/fcD0rGHYMap3TdLSa/6g9utVORotFyGvZoEazxnmymoXNQ9OQh59MYi4iDtMY1CVClRq1cPrMMvUqxlwGCXhDKNY08/h+yoWkacO6cuycsbfsb90yVzmGW/aeDNSxlJPyfKFYqzUKlBMtfkKE2ZMmmTWZR0LsY9hkYe3+LL/8vUipfUIYTSCZaCc5fHaxZGmfggtaAjD0OdnCZffuf2KOVKgms4/YRaxgmBGbVuvlXjkG+R4M2YmamZvq+M6AdH+TPR3sYr1J7B8dF4y4BlmzGP5ChXIyUsCCGELTOorvUrGcSn5XDW919e1R4dDZa7Vj1/OjTWlkSalsRq43LAKkH+Tb6r+wSfGrht1KbdjbqJzhxQoWROcZ111MFmUv1dc8xMI2G3w3VzbIbtIi1Ixpp9Yi64X1Xu2T+0lIbIUmDg63TwEpHO9BuxIBFAGtbhcRlmKeE3BV6/dS56tJGUIt9OxufKt2cGTvQge2qof3dF6OdsM2KdVHrtZp5EJft9mpxlO2VFa+ZIox/a5CiP81SxV+CaZRGES3OEGXxTMT4wvhQGyhn4dmP4/YhpXhmN5cs5oJtmn5CXI75gcANWvWStNghoHxwA3xI6MlsYXCM5VaM9q10TwxgeF1Ip9GGhHB/cn5bJgy0YYZcaqBxJHfvRqnlRKoW68jmEzEpPCgh8byiQBrOVLiJ8XGduEqEvd4IJc9F5CfTBU4MqJlODnGdCfDyz/hJJaTzbPnajXRiGGsysHh/1zTMm+ekRDLQpxUkghLQVhQTZ5wMNzNaS1CRAg1s8H/DyEXOkqjwMK0XRZTOlJ8jKPtPIDO79kbH0FXII4c5SUwnSGHKo0U7M77AhG8LdSRWWb681EtQxKojgVL++r/5cJdIhtxrWnBM6jX5rjvDpFR7XbxV9vuhdHWcbRN0XMv3O0e86ePShR08e35UY29ntZ7An6OZO5OU1SpKz6O361oyFil5fnzX2U1f0DxUdVwC5yMJy1muexqPTqUOozm26IPnLgYH2CB0EvFe8OPxVPMlnpO7WdlNtC8DrH1NznvIfRR3ffo+HjmR1A==",
"mldsa44_signature": "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",
"proof": {
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"created": "2025-04-25T09:07:09Z",
"cryptosuite": "experimental-mldsa-rdfc-2025",
"proofPurpose": "assertionMethod",
"type": "DataIntegrityProof",
"verificationMethod": "did:dyne:b4dc0ff3"
},
"proof rdf-canon": "XzpjMTRuMCA8aHR0cDovL3B1cmwub3JnL2RjL3Rlcm1zL2NyZWF0ZWQ+ICIyMDI1LTA0LTI1VDA5OjA3OjA5WiJeXjxodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSNkYXRlVGltZT4gLgpfOmMxNG4wIDxodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjdHlwZT4gPGh0dHBzOi8vdzNpZC5vcmcvc2VjdXJpdHkjRGF0YUludGVncml0eVByb29mPiAuCl86YzE0bjAgPGh0dHBzOi8vdzNpZC5vcmcvc2VjdXJpdHkjY3J5cHRvc3VpdGU+ICJleHBlcmltZW50YWwtbWxkc2EtcmRmYy0yMDI1Il5ePGh0dHBzOi8vdzNpZC5vcmcvc2VjdXJpdHkjY3J5cHRvc3VpdGVTdHJpbmc+IC4KXzpjMTRuMCA8aHR0cHM6Ly93M2lkLm9yZy9zZWN1cml0eSNwcm9vZlB1cnBvc2U+IDxodHRwczovL3czaWQub3JnL3NlY3VyaXR5I2Fzc2VydGlvbk1ldGhvZD4gLgpfOmMxNG4wIDxodHRwczovL3czaWQub3JnL3NlY3VyaXR5I3ZlcmlmaWNhdGlvbk1ldGhvZD4gPGRpZDpkeW5lOmI0ZGMwZmYzPiAuCg==",
"document rdf-canon": "PGRpZDpleGFtcGxlOmFiY2RlZmdoPiA8aHR0cHM6Ly93d3cudzMub3JnL25zL2NyZWRlbnRpYWxzL2V4YW1wbGVzI2FsdW1uaU9mPiAiVGhlIFNjaG9vbCBvZiBFeGFtcGxlcyIgLgo8dXJuOnV1aWQ6NTgxNzJhYWMtZDhiYS0xMWVkLTgzZGQtMGIzYWVmNTZjYzMzPiA8aHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zI3R5cGU+IDxodHRwczovL3d3dy53My5vcmcvMjAxOC9jcmVkZW50aWFscyNWZXJpZmlhYmxlQ3JlZGVudGlhbD4gLgo8dXJuOnV1aWQ6NTgxNzJhYWMtZDhiYS0xMWVkLTgzZGQtMGIzYWVmNTZjYzMzPiA8aHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zI3R5cGU+IDxodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvZXhhbXBsZXMjQWx1bW5pQ3JlZGVudGlhbD4gLgo8dXJuOnV1aWQ6NTgxNzJhYWMtZDhiYS0xMWVkLTgzZGQtMGIzYWVmNTZjYzMzPiA8aHR0cHM6Ly9zY2hlbWEub3JnL2Rlc2NyaXB0aW9uPiAiQSBtaW5pbXVtIHZpYWJsZSBleGFtcGxlIG9mIGFuIEFsdW1uaSBDcmVkZW50aWFsLiIgLgo8dXJuOnV1aWQ6NTgxNzJhYWMtZDhiYS0xMWVkLTgzZGQtMGIzYWVmNTZjYzMzPiA8aHR0cHM6Ly9zY2hlbWEub3JnL25hbWU+ICJBbHVtbmkgQ3JlZGVudGlhbCIgLgo8dXJuOnV1aWQ6NTgxNzJhYWMtZDhiYS0xMWVkLTgzZGQtMGIzYWVmNTZjYzMzPiA8aHR0cHM6Ly93d3cudzMub3JnLzIwMTgvY3JlZGVudGlhbHMjY3JlZGVudGlhbFN1YmplY3Q+IDxkaWQ6ZXhhbXBsZTphYmNkZWZnaD4gLgo8dXJuOnV1aWQ6NTgxNzJhYWMtZDhiYS0xMWVkLTgzZGQtMGIzYWVmNTZjYzMzPiA8aHR0cHM6Ly93d3cudzMub3JnLzIwMTgvY3JlZGVudGlhbHMjaXNzdWVyPiA8aHR0cHM6Ly92Yy5leGFtcGxlL2lzc3VlcnMvNTY3OD4gLgo8dXJuOnV1aWQ6NTgxNzJhYWMtZDhiYS0xMWVkLTgzZGQtMGIzYWVmNTZjYzMzPiA8aHR0cHM6Ly93d3cudzMub3JnLzIwMTgvY3JlZGVudGlhbHMjdmFsaWRGcm9tPiAiMjAyMy0wMS0wMVQwMDowMDowMFoiXl48aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEjZGF0ZVRpbWU+IC4K"
}
5_verify_mldsa44
Input
4_preverif_mldsa44
json
{
"document": {
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"credentialSubject": {
"alumniOf": "The School of Examples",
"id": "did:example:abcdefgh"
},
"description": "A minimum viable example of an Alumni Credential.",
"id": "urn:uuid:58172aac-d8ba-11ed-83dd-0b3aef56cc33",
"issuer": "https://vc.example/issuers/5678",
"name": "Alumni Credential",
"type": [
"VerifiableCredential",
"AlumniCredential"
],
"validFrom": "2023-01-01T00:00:00Z"
},
"mldsa44_public_key": "+Ej+UoLZ5/MUQ6CHFgCKtTExGkvK+21OPUqfytzIAU629hkAyXMINVnVujASG6jmhjx1V330SND4pMKIwCyYeKJ0vLOaIKcohLDwvEPW51PFxEFsDBz/+LH9B+PQlvcPiHMsQtTtXxrS2WAJpKJhNdAJtKMhIktuurbLZ8GG/OHYR+tYUwhdZNyJQhCtxPAXY49+YwhH16pxVYGx2rzzBAocJPsKn3fQIbHXF6Z90BfPKQdKBV/PUXia6x+K4Yqc4WAWpVfZTdUbdw41X0aTRwq+m08mqSJg74eKSiXSOhTZGDGgz5aezLypWYuMUKtHPbqSHqr+IBJEFyKw6aDKncLmGbxWhtpNd1t668NMI6r1ctmvEbsPmJllXlin2rtB0qIQPYE0NXEHmeLUhStd2s4GtlvaASO0TS5+4Sk5RvEIqVclPOMq8ydvFCxCquk5dl1+UEg8i4vu19oQCyyN1ebkCRli559gmdyvkZr9w1N1j6ndreWQS3F0b3IHGj7HzsF6AKXoZft7qZnDYRGny3KaFYIqW17Gdp4masjK1IyIgSkbBSCaDLp+reIJtU08Z5tWEJewA8h8fEb0Y6wwHmPT7fB2NzX+zXg19x48vat6CZR3zT+36raXVFPMIJzc58c8L3YcwCFr67PjPJj5Crf8BDGQtBvJ7JMjTCZ+0/fcD0rGHYMap3TdLSa/6g9utVORotFyGvZoEazxnmymoXNQ9OQh59MYi4iDtMY1CVClRq1cPrMMvUqxlwGCXhDKNY08/h+yoWkacO6cuycsbfsb90yVzmGW/aeDNSxlJPyfKFYqzUKlBMtfkKE2ZMmmTWZR0LsY9hkYe3+LL/8vUipfUIYTSCZaCc5fHaxZGmfggtaAjD0OdnCZffuf2KOVKgms4/YRaxgmBGbVuvlXjkG+R4M2YmamZvq+M6AdH+TPR3sYr1J7B8dF4y4BlmzGP5ChXIyUsCCGELTOorvUrGcSn5XDW919e1R4dDZa7Vj1/OjTWlkSalsRq43LAKkH+Tb6r+wSfGrht1KbdjbqJzhxQoWROcZ111MFmUv1dc8xMI2G3w3VzbIbtIi1Ixpp9Yi64X1Xu2T+0lIbIUmDg63TwEpHO9BuxIBFAGtbhcRlmKeE3BV6/dS56tJGUIt9OxufKt2cGTvQge2qof3dF6OdsM2KdVHrtZp5EJft9mpxlO2VFa+ZIox/a5CiP81SxV+CaZRGES3OEGXxTMT4wvhQGyhn4dmP4/YhpXhmN5cs5oJtmn5CXI75gcANWvWStNghoHxwA3xI6MlsYXCM5VaM9q10TwxgeF1Ip9GGhHB/cn5bJgy0YYZcaqBxJHfvRqnlRKoW68jmEzEpPCgh8byiQBrOVLiJ8XGduEqEvd4IJc9F5CfTBU4MqJlODnGdCfDyz/hJJaTzbPnajXRiGGsysHh/1zTMm+ekRDLQpxUkghLQVhQTZ5wMNzNaS1CRAg1s8H/DyEXOkqjwMK0XRZTOlJ8jKPtPIDO79kbH0FXII4c5SUwnSGHKo0U7M77AhG8LdSRWWb681EtQxKojgVL++r/5cJdIhtxrWnBM6jX5rjvDpFR7XbxV9vuhdHWcbRN0XMv3O0e86ePShR08e35UY29ntZ7An6OZO5OU1SpKz6O361oyFil5fnzX2U1f0DxUdVwC5yMJy1muexqPTqUOozm26IPnLgYH2CB0EvFe8OPxVPMlnpO7WdlNtC8DrH1NznvIfRR3ffo+HjmR1A==",
"mldsa44_signature": "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",
"proof": {
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"created": "2025-04-25T09:07:09Z",
"cryptosuite": "experimental-mldsa-rdfc-2025",
"proofPurpose": "assertionMethod",
"type": "DataIntegrityProof",
"verificationMethod": "did:dyne:b4dc0ff3"
},
"proof rdf-canon": "XzpjMTRuMCA8aHR0cDovL3B1cmwub3JnL2RjL3Rlcm1zL2NyZWF0ZWQ+ICIyMDI1LTA0LTI1VDA5OjA3OjA5WiJeXjxodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSNkYXRlVGltZT4gLgpfOmMxNG4wIDxodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjdHlwZT4gPGh0dHBzOi8vdzNpZC5vcmcvc2VjdXJpdHkjRGF0YUludGVncml0eVByb29mPiAuCl86YzE0bjAgPGh0dHBzOi8vdzNpZC5vcmcvc2VjdXJpdHkjY3J5cHRvc3VpdGU+ICJleHBlcmltZW50YWwtbWxkc2EtcmRmYy0yMDI1Il5ePGh0dHBzOi8vdzNpZC5vcmcvc2VjdXJpdHkjY3J5cHRvc3VpdGVTdHJpbmc+IC4KXzpjMTRuMCA8aHR0cHM6Ly93M2lkLm9yZy9zZWN1cml0eSNwcm9vZlB1cnBvc2U+IDxodHRwczovL3czaWQub3JnL3NlY3VyaXR5I2Fzc2VydGlvbk1ldGhvZD4gLgpfOmMxNG4wIDxodHRwczovL3czaWQub3JnL3NlY3VyaXR5I3ZlcmlmaWNhdGlvbk1ldGhvZD4gPGRpZDpkeW5lOmI0ZGMwZmYzPiAuCg==",
"document rdf-canon": "PGRpZDpleGFtcGxlOmFiY2RlZmdoPiA8aHR0cHM6Ly93d3cudzMub3JnL25zL2NyZWRlbnRpYWxzL2V4YW1wbGVzI2FsdW1uaU9mPiAiVGhlIFNjaG9vbCBvZiBFeGFtcGxlcyIgLgo8dXJuOnV1aWQ6NTgxNzJhYWMtZDhiYS0xMWVkLTgzZGQtMGIzYWVmNTZjYzMzPiA8aHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zI3R5cGU+IDxodHRwczovL3d3dy53My5vcmcvMjAxOC9jcmVkZW50aWFscyNWZXJpZmlhYmxlQ3JlZGVudGlhbD4gLgo8dXJuOnV1aWQ6NTgxNzJhYWMtZDhiYS0xMWVkLTgzZGQtMGIzYWVmNTZjYzMzPiA8aHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zI3R5cGU+IDxodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvZXhhbXBsZXMjQWx1bW5pQ3JlZGVudGlhbD4gLgo8dXJuOnV1aWQ6NTgxNzJhYWMtZDhiYS0xMWVkLTgzZGQtMGIzYWVmNTZjYzMzPiA8aHR0cHM6Ly9zY2hlbWEub3JnL2Rlc2NyaXB0aW9uPiAiQSBtaW5pbXVtIHZpYWJsZSBleGFtcGxlIG9mIGFuIEFsdW1uaSBDcmVkZW50aWFsLiIgLgo8dXJuOnV1aWQ6NTgxNzJhYWMtZDhiYS0xMWVkLTgzZGQtMGIzYWVmNTZjYzMzPiA8aHR0cHM6Ly9zY2hlbWEub3JnL25hbWU+ICJBbHVtbmkgQ3JlZGVudGlhbCIgLgo8dXJuOnV1aWQ6NTgxNzJhYWMtZDhiYS0xMWVkLTgzZGQtMGIzYWVmNTZjYzMzPiA8aHR0cHM6Ly93d3cudzMub3JnLzIwMTgvY3JlZGVudGlhbHMjY3JlZGVudGlhbFN1YmplY3Q+IDxkaWQ6ZXhhbXBsZTphYmNkZWZnaD4gLgo8dXJuOnV1aWQ6NTgxNzJhYWMtZDhiYS0xMWVkLTgzZGQtMGIzYWVmNTZjYzMzPiA8aHR0cHM6Ly93d3cudzMub3JnLzIwMTgvY3JlZGVudGlhbHMjaXNzdWVyPiA8aHR0cHM6Ly92Yy5leGFtcGxlL2lzc3VlcnMvNTY3OD4gLgo8dXJuOnV1aWQ6NTgxNzJhYWMtZDhiYS0xMWVkLTgzZGQtMGIzYWVmNTZjYzMzPiA8aHR0cHM6Ly93d3cudzMub3JnLzIwMTgvY3JlZGVudGlhbHMjdmFsaWRGcm9tPiAiMjAyMy0wMS0wMVQwMDowMDowMFoiXl48aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEjZGF0ZVRpbWU+IC4K"
}
Zencode
gherkin
Scenario qp
Given I have a 'base64' named 'document rdf-canon'
and I have a 'base64' named 'proof rdf-canon'
and I have a 'mldsa44 public key'
and I have a 'base64' named 'mldsa44 signature'
When I create the hash of 'proof rdf-canon'
and rename 'hash' to 'proof hash'
and I create the hash of 'document rdf-canon'
and rename 'hash' to 'document hash'
and I append 'document hash' to 'proof hash'
When I verify 'proof hash' has a mldsa44 signature in 'mldsa44 signature' by 'mldsa44 public key'
Then print the string 'VALID DOC PROOF'
Output
json
{
"output": [
"VALID_DOC_PROOF"
]
}