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": "u2QyOyhTbhNDLLclMOEnZ2mQ4+o3IIgIFh2sYxznueE7hLkoFPFxhAaQ8V7Yt4wDGvBCjNvUloGYOry/FIb2P3KoQgEbe15cXsOrzTWYSAG2RllDMFG7nqTn+KK5uTWtdqiKERSQANY3Om7aVtLYtXvDNyIvi0S71CcSoCat1yB0Gbxv0P2gspRWaC40+w3+KH4ObINDsDBzVh1ir8B73JuovTFNLtSocBEcLwy3dNfGUrnRdgUDL5bY4IKzx9d8e1awKN1W52hSytrY2HPKJLy4Q/UPqynEyVx5ncykgcAGoYRL94/cW4JbjFRN2qWJfIeMmqTCxgkFpPlmlFTVLe5Fyqe4wFTpUK/keg+DxJqJ+27QmikB+jdr4YewBUg8a56wQSDi5t9ZD34GSuelsnHrWlpDVm+smNJTwAshHN3qvbWDbc/T6I2Jag6NIOlfGr5sXFsydAFgQcpvDhhAVAhNmPmbD36LXr91ztgsiBrT7fKbXtBTOLGlZcxI5mVRZcgPrtQX2KLopvQn6Ny42rph+sXaqTUxK0p9/oAcMEkU8sdLyJLh/Z6PM8iMFKYLDi8R5//BtwgHNln3Eb16lYH/4AqIpG147RLo6hTaTElpa3N0bNAijjyrHYwAcX55JWxz88kIv9B11eMsJWAk8LsJllgluKeeZU4D4bnY09RSv6PcA12S8jCqYSY+M//0WgxXT0yksdHCvFhoq8rQyveimi4EOvmq0K/xB0hCbAtuwB1p3q6LB8PeaEtLD7lXRsfCQdHtZs4ciAFdwJg2Jgojm8V0Sl2csQQ5QDtPet9JA4+NgCdGu33CIiBoH+ROQqqnoYfR7wKL8GDTHsnoejp+En7RAlRqqB4XmU/B9EHOxlH1hDmGAaXwbCDc7ssfe5zti73YBp7GsLJ3JfN2IG2p2Qt0bA5hnEpC+SthFVX4McjXgqsDuwyAM0rcZV+320Q+52ptowspaed27M/xZzZ1Xz2JD/SvQmFWCkcDO0lmn7uwHL3uohvC6XZLv54k61aZ05nY90z3Y5fym+hywjD8japkRZjj9z1JZbOrFfaIhW2ZEvI6xoXwo1DJz5f8ZyYYz1+TFXu7PzgWpDggvjRY4Eoq+2tEx6TpzJ8uW/LboOQrvii2CcI6ZgjwpeJkbNdFi75NGspX0HNvzMpEmCV63tZrbwiLgd/P1otuM9pNhmShDmxl9V3YZsbsR07WoCbka8zfTpZQCgTWYUn8mCHBN6elQP5jwZ7647FPtsNe8O1LwsP9pGS9Z/uKYokU/aSmFQqPPOhccw5IMCvbmur2RFCaFco7I5clHY/dPRk8RzyNu4ZeTvVgiu5diP2VCsySizszUN7ggRPRnIqyUfE+h1kdb64bTmyEQXG6DMcBTA8iwP6z83iuMh6O+0np3dU1GRf0CZm5bgSbDwUV62B1eRN6zcudRUpfGggg/b0JTkvtnxIliB1Lo9UoJ5oZLYDC8gBeVLJrcrHBk1vLJ86/GW/u5dbAi1rzd4RCdhBLuvVvx95ByK29w1hl19cVQzHc2CO9rzM4JOXbBP2L/VAFzjSdDyUePWv9jFoJH3ctf6LAYFFX9whgxFeQJWM/rODNsJt2oH4WqAyUW3q3/0nEkR9uxNTZh0s7u2oMIHdHtQpMp8NsTqxJSjNAN2OUaeJI3YDO+6DnR4vW6XzvdYCijTU7PPubuEbGuAw10Zj0uDk6SDlN6i9alxKt+toQClAakWOYPTCaXT+goOLnaA=="
}
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": "u2QyOyhTbhNDLLclMOEnZ2mQ4+o3IIgIFh2sYxznueE7hLkoFPFxhAaQ8V7Yt4wDGvBCjNvUloGYOry/FIb2P3KoQgEbe15cXsOrzTWYSAG2RllDMFG7nqTn+KK5uTWtdqiKERSQANY3Om7aVtLYtXvDNyIvi0S71CcSoCat1yB0Gbxv0P2gspRWaC40+w3+KH4ObINDsDBzVh1ir8B73JuovTFNLtSocBEcLwy3dNfGUrnRdgUDL5bY4IKzx9d8e1awKN1W52hSytrY2HPKJLy4Q/UPqynEyVx5ncykgcAGoYRL94/cW4JbjFRN2qWJfIeMmqTCxgkFpPlmlFTVLe5Fyqe4wFTpUK/keg+DxJqJ+27QmikB+jdr4YewBUg8a56wQSDi5t9ZD34GSuelsnHrWlpDVm+smNJTwAshHN3qvbWDbc/T6I2Jag6NIOlfGr5sXFsydAFgQcpvDhhAVAhNmPmbD36LXr91ztgsiBrT7fKbXtBTOLGlZcxI5mVRZcgPrtQX2KLopvQn6Ny42rph+sXaqTUxK0p9/oAcMEkU8sdLyJLh/Z6PM8iMFKYLDi8R5//BtwgHNln3Eb16lYH/4AqIpG147RLo6hTaTElpa3N0bNAijjyrHYwAcX55JWxz88kIv9B11eMsJWAk8LsJllgluKeeZU4D4bnY09RSv6PcA12S8jCqYSY+M//0WgxXT0yksdHCvFhoq8rQyveimi4EOvmq0K/xB0hCbAtuwB1p3q6LB8PeaEtLD7lXRsfCQdHtZs4ciAFdwJg2Jgojm8V0Sl2csQQ5QDtPet9JA4+NgCdGu33CIiBoH+ROQqqnoYfR7wKL8GDTHsnoejp+En7RAlRqqB4XmU/B9EHOxlH1hDmGAaXwbCDc7ssfe5zti73YBp7GsLJ3JfN2IG2p2Qt0bA5hnEpC+SthFVX4McjXgqsDuwyAM0rcZV+320Q+52ptowspaed27M/xZzZ1Xz2JD/SvQmFWCkcDO0lmn7uwHL3uohvC6XZLv54k61aZ05nY90z3Y5fym+hywjD8japkRZjj9z1JZbOrFfaIhW2ZEvI6xoXwo1DJz5f8ZyYYz1+TFXu7PzgWpDggvjRY4Eoq+2tEx6TpzJ8uW/LboOQrvii2CcI6ZgjwpeJkbNdFi75NGspX0HNvzMpEmCV63tZrbwiLgd/P1otuM9pNhmShDmxl9V3YZsbsR07WoCbka8zfTpZQCgTWYUn8mCHBN6elQP5jwZ7647FPtsNe8O1LwsP9pGS9Z/uKYokU/aSmFQqPPOhccw5IMCvbmur2RFCaFco7I5clHY/dPRk8RzyNu4ZeTvVgiu5diP2VCsySizszUN7ggRPRnIqyUfE+h1kdb64bTmyEQXG6DMcBTA8iwP6z83iuMh6O+0np3dU1GRf0CZm5bgSbDwUV62B1eRN6zcudRUpfGggg/b0JTkvtnxIliB1Lo9UoJ5oZLYDC8gBeVLJrcrHBk1vLJ86/GW/u5dbAi1rzd4RCdhBLuvVvx95ByK29w1hl19cVQzHc2CO9rzM4JOXbBP2L/VAFzjSdDyUePWv9jFoJH3ctf6LAYFFX9whgxFeQJWM/rODNsJt2oH4WqAyUW3q3/0nEkR9uxNTZh0s7u2oMIHdHtQpMp8NsTqxJSjNAN2OUaeJI3YDO+6DnR4vW6XzvdYCijTU7PPubuEbGuAw10Zj0uDk6SDlN6i9alxKt+toQClAakWOYPTCaXT+goOLnaA=="
}
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 '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": "mldsa-rdfc-2025",
"proofPurpose": "assertionMethod",
"type": "DataIntegrityProof",
"verificationMethod": "did:dyne:b4dc0ff3"
},
"proofConfig rdf-canon": "XzpjMTRuMCA8aHR0cDovL3B1cmwub3JnL2RjL3Rlcm1zL2NyZWF0ZWQ+ICIyMDI1LTA0LTI1VDA5OjA3OjA5WiJeXjxodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSNkYXRlVGltZT4gLgpfOmMxNG4wIDxodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjdHlwZT4gPGh0dHBzOi8vdzNpZC5vcmcvc2VjdXJpdHkjRGF0YUludGVncml0eVByb29mPiAuCl86YzE0bjAgPGh0dHBzOi8vdzNpZC5vcmcvc2VjdXJpdHkjY3J5cHRvc3VpdGU+ICJtbGRzYS1yZGZjLTIwMjUiXl48aHR0cHM6Ly93M2lkLm9yZy9zZWN1cml0eSNjcnlwdG9zdWl0ZVN0cmluZz4gLgpfOmMxNG4wIDxodHRwczovL3czaWQub3JnL3NlY3VyaXR5I3Byb29mUHVycG9zZT4gPGh0dHBzOi8vdzNpZC5vcmcvc2VjdXJpdHkjYXNzZXJ0aW9uTWV0aG9kPiAuCl86YzE0bjAgPGh0dHBzOi8vdzNpZC5vcmcvc2VjdXJpdHkjdmVyaWZpY2F0aW9uTWV0aG9kPiA8ZGlkOmR5bmU6YjRkYzBmZjM+IC4K",
"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": "mldsa-rdfc-2025",
"proofPurpose": "assertionMethod",
"type": "DataIntegrityProof",
"verificationMethod": "did:dyne:b4dc0ff3"
},
"proofConfig rdf-canon": "XzpjMTRuMCA8aHR0cDovL3B1cmwub3JnL2RjL3Rlcm1zL2NyZWF0ZWQ+ICIyMDI1LTA0LTI1VDA5OjA3OjA5WiJeXjxodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSNkYXRlVGltZT4gLgpfOmMxNG4wIDxodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjdHlwZT4gPGh0dHBzOi8vdzNpZC5vcmcvc2VjdXJpdHkjRGF0YUludGVncml0eVByb29mPiAuCl86YzE0bjAgPGh0dHBzOi8vdzNpZC5vcmcvc2VjdXJpdHkjY3J5cHRvc3VpdGU+ICJtbGRzYS1yZGZjLTIwMjUiXl48aHR0cHM6Ly93M2lkLm9yZy9zZWN1cml0eSNjcnlwdG9zdWl0ZVN0cmluZz4gLgpfOmMxNG4wIDxodHRwczovL3czaWQub3JnL3NlY3VyaXR5I3Byb29mUHVycG9zZT4gPGh0dHBzOi8vdzNpZC5vcmcvc2VjdXJpdHkjYXNzZXJ0aW9uTWV0aG9kPiAuCl86YzE0bjAgPGh0dHBzOi8vdzNpZC5vcmcvc2VjdXJpdHkjdmVyaWZpY2F0aW9uTWV0aG9kPiA8ZGlkOmR5bmU6YjRkYzBmZjM+IC4K",
"document rdf-canon": "PGRpZDpleGFtcGxlOmFiY2RlZmdoPiA8aHR0cHM6Ly93d3cudzMub3JnL25zL2NyZWRlbnRpYWxzL2V4YW1wbGVzI2FsdW1uaU9mPiAiVGhlIFNjaG9vbCBvZiBFeGFtcGxlcyIgLgo8dXJuOnV1aWQ6NTgxNzJhYWMtZDhiYS0xMWVkLTgzZGQtMGIzYWVmNTZjYzMzPiA8aHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zI3R5cGU+IDxodHRwczovL3d3dy53My5vcmcvMjAxOC9jcmVkZW50aWFscyNWZXJpZmlhYmxlQ3JlZGVudGlhbD4gLgo8dXJuOnV1aWQ6NTgxNzJhYWMtZDhiYS0xMWVkLTgzZGQtMGIzYWVmNTZjYzMzPiA8aHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zI3R5cGU+IDxodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvZXhhbXBsZXMjQWx1bW5pQ3JlZGVudGlhbD4gLgo8dXJuOnV1aWQ6NTgxNzJhYWMtZDhiYS0xMWVkLTgzZGQtMGIzYWVmNTZjYzMzPiA8aHR0cHM6Ly9zY2hlbWEub3JnL2Rlc2NyaXB0aW9uPiAiQSBtaW5pbXVtIHZpYWJsZSBleGFtcGxlIG9mIGFuIEFsdW1uaSBDcmVkZW50aWFsLiIgLgo8dXJuOnV1aWQ6NTgxNzJhYWMtZDhiYS0xMWVkLTgzZGQtMGIzYWVmNTZjYzMzPiA8aHR0cHM6Ly9zY2hlbWEub3JnL25hbWU+ICJBbHVtbmkgQ3JlZGVudGlhbCIgLgo8dXJuOnV1aWQ6NTgxNzJhYWMtZDhiYS0xMWVkLTgzZGQtMGIzYWVmNTZjYzMzPiA8aHR0cHM6Ly93d3cudzMub3JnLzIwMTgvY3JlZGVudGlhbHMjY3JlZGVudGlhbFN1YmplY3Q+IDxkaWQ6ZXhhbXBsZTphYmNkZWZnaD4gLgo8dXJuOnV1aWQ6NTgxNzJhYWMtZDhiYS0xMWVkLTgzZGQtMGIzYWVmNTZjYzMzPiA8aHR0cHM6Ly93d3cudzMub3JnLzIwMTgvY3JlZGVudGlhbHMjaXNzdWVyPiA8aHR0cHM6Ly92Yy5leGFtcGxlL2lzc3VlcnMvNTY3OD4gLgo8dXJuOnV1aWQ6NTgxNzJhYWMtZDhiYS0xMWVkLTgzZGQtMGIzYWVmNTZjYzMzPiA8aHR0cHM6Ly93d3cudzMub3JnLzIwMTgvY3JlZGVudGlhbHMjdmFsaWRGcm9tPiAiMjAyMy0wMS0wMVQwMDowMDowMFoiXl48aHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEjZGF0ZVRpbWU+IC4K"
}
1_keyring_mldsa44
json
{
"keyring": {
"mldsa44": "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"
},
"mldsa44_public_key": "u2QyOyhTbhNDLLclMOEnZ2mQ4+o3IIgIFh2sYxznueE7hLkoFPFxhAaQ8V7Yt4wDGvBCjNvUloGYOry/FIb2P3KoQgEbe15cXsOrzTWYSAG2RllDMFG7nqTn+KK5uTWtdqiKERSQANY3Om7aVtLYtXvDNyIvi0S71CcSoCat1yB0Gbxv0P2gspRWaC40+w3+KH4ObINDsDBzVh1ir8B73JuovTFNLtSocBEcLwy3dNfGUrnRdgUDL5bY4IKzx9d8e1awKN1W52hSytrY2HPKJLy4Q/UPqynEyVx5ncykgcAGoYRL94/cW4JbjFRN2qWJfIeMmqTCxgkFpPlmlFTVLe5Fyqe4wFTpUK/keg+DxJqJ+27QmikB+jdr4YewBUg8a56wQSDi5t9ZD34GSuelsnHrWlpDVm+smNJTwAshHN3qvbWDbc/T6I2Jag6NIOlfGr5sXFsydAFgQcpvDhhAVAhNmPmbD36LXr91ztgsiBrT7fKbXtBTOLGlZcxI5mVRZcgPrtQX2KLopvQn6Ny42rph+sXaqTUxK0p9/oAcMEkU8sdLyJLh/Z6PM8iMFKYLDi8R5//BtwgHNln3Eb16lYH/4AqIpG147RLo6hTaTElpa3N0bNAijjyrHYwAcX55JWxz88kIv9B11eMsJWAk8LsJllgluKeeZU4D4bnY09RSv6PcA12S8jCqYSY+M//0WgxXT0yksdHCvFhoq8rQyveimi4EOvmq0K/xB0hCbAtuwB1p3q6LB8PeaEtLD7lXRsfCQdHtZs4ciAFdwJg2Jgojm8V0Sl2csQQ5QDtPet9JA4+NgCdGu33CIiBoH+ROQqqnoYfR7wKL8GDTHsnoejp+En7RAlRqqB4XmU/B9EHOxlH1hDmGAaXwbCDc7ssfe5zti73YBp7GsLJ3JfN2IG2p2Qt0bA5hnEpC+SthFVX4McjXgqsDuwyAM0rcZV+320Q+52ptowspaed27M/xZzZ1Xz2JD/SvQmFWCkcDO0lmn7uwHL3uohvC6XZLv54k61aZ05nY90z3Y5fym+hywjD8japkRZjj9z1JZbOrFfaIhW2ZEvI6xoXwo1DJz5f8ZyYYz1+TFXu7PzgWpDggvjRY4Eoq+2tEx6TpzJ8uW/LboOQrvii2CcI6ZgjwpeJkbNdFi75NGspX0HNvzMpEmCV63tZrbwiLgd/P1otuM9pNhmShDmxl9V3YZsbsR07WoCbka8zfTpZQCgTWYUn8mCHBN6elQP5jwZ7647FPtsNe8O1LwsP9pGS9Z/uKYokU/aSmFQqPPOhccw5IMCvbmur2RFCaFco7I5clHY/dPRk8RzyNu4ZeTvVgiu5diP2VCsySizszUN7ggRPRnIqyUfE+h1kdb64bTmyEQXG6DMcBTA8iwP6z83iuMh6O+0np3dU1GRf0CZm5bgSbDwUV62B1eRN6zcudRUpfGggg/b0JTkvtnxIliB1Lo9UoJ5oZLYDC8gBeVLJrcrHBk1vLJ86/GW/u5dbAi1rzd4RCdhBLuvVvx95ByK29w1hl19cVQzHc2CO9rzM4JOXbBP2L/VAFzjSdDyUePWv9jFoJH3ctf6LAYFFX9whgxFeQJWM/rODNsJt2oH4WqAyUW3q3/0nEkR9uxNTZh0s7u2oMIHdHtQpMp8NsTqxJSjNAN2OUaeJI3YDO+6DnR4vW6XzvdYCijTU7PPubuEbGuAw10Zj0uDk6SDlN6i9alxKt+toQClAakWOYPTCaXT+goOLnaA=="
}
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": "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": "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": "u2QyOyhTbhNDLLclMOEnZ2mQ4+o3IIgIFh2sYxznueGA1T6mgqunP0My9j643Ffbx7oYxzQ+qKd7c5F/L8omWjmC7DKCNrYLj4gQzewi6LJjZJhUgvWhog3iuBZxoE10MKoTw+XX0hMp6pHIuq2Rgo56nAiMb+tO1qkIAb+rEBBZuAWSSI1EEkwSpIlQEJISEUqUMABItETEMAIjCWFbFijAFiUaEmmBAGXApC0ioAQDkICMAAQIRICDAgUJsAlIJiSkNo5YQAQCyYkEgyRLQoAMIE7bBGwIQo6kQCUAMUnZIIhCIIGiAmCMyFEURAyBAkXDGIratmUDkQADMo0jpQnJIigcMkZCJCFgokQMKRLYAIiThmkSJQoDRUiTxJALQXLDlgDCIGgbuCDiEmmgtAGiAGFgkkHRMGhRFIYEEWZIKAWgSCRkRhALBwlSIERgRnFhGDCQIohEMpFMMEgkNxESI2wSwCmEIEgDE2qSkFFBAmAkokhbtAWIBGTQFk3EtA2AkAQLRCWTtonilk3gMHEYIyDCtC1LlADLplFcBgDJJm5iSEikQkoJF2gBCZISBmRZNgiMAlKKRHAEQIxIABFURnESMTIBxWDLsBHgRCbaoIHDMHJEFihKlo0aIiShiE0gRYFiRBHMkiwkkkAThCiUCE2aFiWbSGQiAy7ACC0koSAjNmYUoYALKIgCkZGiFo7jOGwbqIGMQAKJxmgcME0ilWFaIo6bGEAJQiYSwgiKJEYUNoyQFkBBEEUEtyQJxEzBSIWayI2TkGxRRApikAQcM0AkRYlMklAUkmGTxDCcJjETskzJNIEUg3CSkBBJwonakAlANEoMMEmIsBEEEyaCGIwaEo5IgmVJFiXYgEgcQiILBwjTECUZJQyjMBEYpCCjGC0bxQmTSGSAoEmbllDRsgUBMzJiIgxaskVhEI5bEIrCwJEgsQhQMCDawmVABoYAxmiDFkmLkiUSQIDDSG1bEpBRwkCTQJADRiBSoEWLNHIEmC0EuGFkIGAYNSmBNIakCCZhholaAgWQBinZJk0JF0jLQmEAJSkJt0zCOGYQiUFAEE4CxYUBFU0KJzBUEAJIEAIEtomYMkxhNmjSoixgkkEJEy5EKDHRQIgZMJGDGBEZkoWMqGmEBhAEgkwLBizbNCVixIAiKQoTGJAkF0lgQgKLFEkQg5AANwLDsGH4myZakSWvzwVvhrquug6A+rHbC9csuEMvz3F9fCEMn/vpzF3Vxda6Tiytr0eHoC4s0lfht1l1IhmMU1SXX2CSbO0X9Q/rahEGnTJAiZwtzq4o27ppP7ikBU3ZhpPlYm82EadYM6IMZcuJeONiY5AkbwmOB3NvQNApo41D6h151fVwA7xRT5uSlaidpK/Kxbr3dqkCqRTiuzCmBkAcMb5jJgGLjCCDJucZPK+WbG7gPYPq75jgH9Gu59KQTHf881X9TnGE1X9PH0yNYuHvqS/2j9kk+qEXl8ro9OCHTaNfwGTjNGqHtZnBxn5zFaWVZsR5qbaH5JBmt81kLjpK0FD6LKvzt+ud2ITzD7fNDVpoPhXlMpc8Yn2yoMsFeWgMIRuM8J8XrxK+Z4Bb3FQf1hLxUfS6I0pOJJLMFWkTTZGfnaMU6N55Yzmbwd/I2MIvxT4d7HK0YvQp8V716qu8PSzd7hTjbo8rkMnsCPMcnTLcmHFKWYIJK7OCY2w+J2DQ3rJmKYd/gkQhTDCRPqv7iOP7oIvNnTYdbPWgoNWOk9L8ioU13PUXJdVm/mgY1WjigwbsAgNtFbVlpJK1odoOJ5DtyFfcr5FmwnBr7I+d3mDhfDtC6mYyeMqJ5R5DrDrCuC3yfGHTosqkTRM6j7uJkFH+OIEcf8GLva+qguAkbp9tQuYnQwS3+GX7M+kW/ruG+bciiPQrunC+m2WRUXn8ZtugAjK/eujUrwYmzgDuIUENC58jfDTc37qw42TtctPQoREybUvHhD+6WgKtuI9m3adCdt2W5x/s66s0zMI2/nqJhsK6DsyFOFHycALXTNdU2EndyVibdse27UF1j/JsNf+KBhEedcxpxB2xrYVKf9ac1emn3l3Cr9h1toKmmpc0QloYuOzPEtu4WC8h4Gf0hgXZjU7zgJ1qXJJsPTcEbuxvjzifgpP0mbqPb+uWJTa4IXj7aVmOg/SN2zgFah5hKohFGHyhuKX9mxxbUNKoFe/zldPYUbgRalS/t4A/IQ2N/oMNVQfZHWSyPZlON9gjOwNFKoUAFPy8Vn5NslXydOyiBeGZT5blJpyp6H1CKUKYMQ0nnYspS7d5Kd3kglNy05sInN6vpiJRyShJKGwcZWSsCLkxC6/pnbwkGbJQcYlVGE94nJ1V2VhjKTDp+l9OE8CBZ5oTwnKhof5vf4Di6CdkDhCR2xadpSMDjvJrtTjbVwTmDSdHi4NdHlLj1YgZQ496VhOf684HfeioARqGQozR8ETlRkOrcaz9ki2FwpRwBP/Pu0pw3WUbyzVW5chyqtZKB3SXRtaZmFJ0oulYRg0yQR28G2fZNL3wznC2gD8YCX8rhTfWN+YmJzuI/kTyZcQZ/3NLhQHFqvxgjKqiZAM4n60A5MMZ/g6QgWVyRkMP3qN+Zt589OvzAaGf7MsLlLXIG+Luk6LEmCFvoSCKjs2PSdC98xc1QkiiEgJpgh3Gm5VX5am7E8z3vLUqLvGz0NFuB9wY2QhoT+axqhun3TteBGD6SEnz/bc8jMoRJfsX10+Q8lLkGZ+NDyvKhYerHhnUo+oCB5Yu6hEPGQDyV4WWEPwed3LuM0S4w5bEpmWQlLYdWADpG0Y+g5xi2+4OkIfzTHU8AcLOJ6m3wXFYwZDg+RvcA6/axq3M2aVgAz+4hdNPjvlPYMIIQ5WDaALtAvcil10FrLpdwEQDVDlTJ0AvFOmtEXCjrEeYvKCR8WSGBOhpPJqwwZtGbsIG0Y6mqisV44UvddBGGpKBQlAmL7QFl4q4CyCO/TCfDxBqSYacM8+4pO2CuU0q2CuilI6Nyg3Cuk+AYtLlsM1yjjIGm5PQdC73W47tpJ8DXuqJ/NmTdjJqz+tQZFfYm/b77V5lWgCE3fq0JjYRfv9V3J+V3JiniXWNZlhQNq7Eh5tKMpkb7l1SoHbTWGhv2soi5B+0LsQ/rtokqqKU/uJTDBBpJghQE0FfAB3SchxtIL2SjZ/6i+x8EhQ74Mo3wv80QtVU/Cd0mun/zX7KowJFWFpuF+/HLaqZNVTKRqKZgW0zEuHIfk7azUv2M1dJeFoN9iO0UvzfAWfM6IGTs3N0l2NbAdkygwfG4wOlibGUImwbNJQqYq3pbmbpBQlM+Wul7QyLpudRg1qwxu1E/qhSPA7BPm7vY3ltkw0Jipwj3bl1PTZJNHj8glBf6gKMlUzK9ynzZgXM+RBTZfvOhNhzLpqrAStV8w=="
},
"mldsa44_public_key": "u2QyOyhTbhNDLLclMOEnZ2mQ4+o3IIgIFh2sYxznueE7hLkoFPFxhAaQ8V7Yt4wDGvBCjNvUloGYOry/FIb2P3KoQgEbe15cXsOrzTWYSAG2RllDMFG7nqTn+KK5uTWtdqiKERSQANY3Om7aVtLYtXvDNyIvi0S71CcSoCat1yB0Gbxv0P2gspRWaC40+w3+KH4ObINDsDBzVh1ir8B73JuovTFNLtSocBEcLwy3dNfGUrnRdgUDL5bY4IKzx9d8e1awKN1W52hSytrY2HPKJLy4Q/UPqynEyVx5ncykgcAGoYRL94/cW4JbjFRN2qWJfIeMmqTCxgkFpPlmlFTVLe5Fyqe4wFTpUK/keg+DxJqJ+27QmikB+jdr4YewBUg8a56wQSDi5t9ZD34GSuelsnHrWlpDVm+smNJTwAshHN3qvbWDbc/T6I2Jag6NIOlfGr5sXFsydAFgQcpvDhhAVAhNmPmbD36LXr91ztgsiBrT7fKbXtBTOLGlZcxI5mVRZcgPrtQX2KLopvQn6Ny42rph+sXaqTUxK0p9/oAcMEkU8sdLyJLh/Z6PM8iMFKYLDi8R5//BtwgHNln3Eb16lYH/4AqIpG147RLo6hTaTElpa3N0bNAijjyrHYwAcX55JWxz88kIv9B11eMsJWAk8LsJllgluKeeZU4D4bnY09RSv6PcA12S8jCqYSY+M//0WgxXT0yksdHCvFhoq8rQyveimi4EOvmq0K/xB0hCbAtuwB1p3q6LB8PeaEtLD7lXRsfCQdHtZs4ciAFdwJg2Jgojm8V0Sl2csQQ5QDtPet9JA4+NgCdGu33CIiBoH+ROQqqnoYfR7wKL8GDTHsnoejp+En7RAlRqqB4XmU/B9EHOxlH1hDmGAaXwbCDc7ssfe5zti73YBp7GsLJ3JfN2IG2p2Qt0bA5hnEpC+SthFVX4McjXgqsDuwyAM0rcZV+320Q+52ptowspaed27M/xZzZ1Xz2JD/SvQmFWCkcDO0lmn7uwHL3uohvC6XZLv54k61aZ05nY90z3Y5fym+hywjD8japkRZjj9z1JZbOrFfaIhW2ZEvI6xoXwo1DJz5f8ZyYYz1+TFXu7PzgWpDggvjRY4Eoq+2tEx6TpzJ8uW/LboOQrvii2CcI6ZgjwpeJkbNdFi75NGspX0HNvzMpEmCV63tZrbwiLgd/P1otuM9pNhmShDmxl9V3YZsbsR07WoCbka8zfTpZQCgTWYUn8mCHBN6elQP5jwZ7647FPtsNe8O1LwsP9pGS9Z/uKYokU/aSmFQqPPOhccw5IMCvbmur2RFCaFco7I5clHY/dPRk8RzyNu4ZeTvVgiu5diP2VCsySizszUN7ggRPRnIqyUfE+h1kdb64bTmyEQXG6DMcBTA8iwP6z83iuMh6O+0np3dU1GRf0CZm5bgSbDwUV62B1eRN6zcudRUpfGggg/b0JTkvtnxIliB1Lo9UoJ5oZLYDC8gBeVLJrcrHBk1vLJ86/GW/u5dbAi1rzd4RCdhBLuvVvx95ByK29w1hl19cVQzHc2CO9rzM4JOXbBP2L/VAFzjSdDyUePWv9jFoJH3ctf6LAYFFX9whgxFeQJWM/rODNsJt2oH4WqAyUW3q3/0nEkR9uxNTZh0s7u2oMIHdHtQpMp8NsTqxJSjNAN2OUaeJI3YDO+6DnR4vW6XzvdYCijTU7PPubuEbGuAw10Zj0uDk6SDlN6i9alxKt+toQClAakWOYPTCaXT+goOLnaA=="
}
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": "u2QyOyhTbhNDLLclMOEnZ2mQ4+o3IIgIFh2sYxznueE7hLkoFPFxhAaQ8V7Yt4wDGvBCjNvUloGYOry/FIb2P3KoQgEbe15cXsOrzTWYSAG2RllDMFG7nqTn+KK5uTWtdqiKERSQANY3Om7aVtLYtXvDNyIvi0S71CcSoCat1yB0Gbxv0P2gspRWaC40+w3+KH4ObINDsDBzVh1ir8B73JuovTFNLtSocBEcLwy3dNfGUrnRdgUDL5bY4IKzx9d8e1awKN1W52hSytrY2HPKJLy4Q/UPqynEyVx5ncykgcAGoYRL94/cW4JbjFRN2qWJfIeMmqTCxgkFpPlmlFTVLe5Fyqe4wFTpUK/keg+DxJqJ+27QmikB+jdr4YewBUg8a56wQSDi5t9ZD34GSuelsnHrWlpDVm+smNJTwAshHN3qvbWDbc/T6I2Jag6NIOlfGr5sXFsydAFgQcpvDhhAVAhNmPmbD36LXr91ztgsiBrT7fKbXtBTOLGlZcxI5mVRZcgPrtQX2KLopvQn6Ny42rph+sXaqTUxK0p9/oAcMEkU8sdLyJLh/Z6PM8iMFKYLDi8R5//BtwgHNln3Eb16lYH/4AqIpG147RLo6hTaTElpa3N0bNAijjyrHYwAcX55JWxz88kIv9B11eMsJWAk8LsJllgluKeeZU4D4bnY09RSv6PcA12S8jCqYSY+M//0WgxXT0yksdHCvFhoq8rQyveimi4EOvmq0K/xB0hCbAtuwB1p3q6LB8PeaEtLD7lXRsfCQdHtZs4ciAFdwJg2Jgojm8V0Sl2csQQ5QDtPet9JA4+NgCdGu33CIiBoH+ROQqqnoYfR7wKL8GDTHsnoejp+En7RAlRqqB4XmU/B9EHOxlH1hDmGAaXwbCDc7ssfe5zti73YBp7GsLJ3JfN2IG2p2Qt0bA5hnEpC+SthFVX4McjXgqsDuwyAM0rcZV+320Q+52ptowspaed27M/xZzZ1Xz2JD/SvQmFWCkcDO0lmn7uwHL3uohvC6XZLv54k61aZ05nY90z3Y5fym+hywjD8japkRZjj9z1JZbOrFfaIhW2ZEvI6xoXwo1DJz5f8ZyYYz1+TFXu7PzgWpDggvjRY4Eoq+2tEx6TpzJ8uW/LboOQrvii2CcI6ZgjwpeJkbNdFi75NGspX0HNvzMpEmCV63tZrbwiLgd/P1otuM9pNhmShDmxl9V3YZsbsR07WoCbka8zfTpZQCgTWYUn8mCHBN6elQP5jwZ7647FPtsNe8O1LwsP9pGS9Z/uKYokU/aSmFQqPPOhccw5IMCvbmur2RFCaFco7I5clHY/dPRk8RzyNu4ZeTvVgiu5diP2VCsySizszUN7ggRPRnIqyUfE+h1kdb64bTmyEQXG6DMcBTA8iwP6z83iuMh6O+0np3dU1GRf0CZm5bgSbDwUV62B1eRN6zcudRUpfGggg/b0JTkvtnxIliB1Lo9UoJ5oZLYDC8gBeVLJrcrHBk1vLJ86/GW/u5dbAi1rzd4RCdhBLuvVvx95ByK29w1hl19cVQzHc2CO9rzM4JOXbBP2L/VAFzjSdDyUePWv9jFoJH3ctf6LAYFFX9whgxFeQJWM/rODNsJt2oH4WqAyUW3q3/0nEkR9uxNTZh0s7u2oMIHdHtQpMp8NsTqxJSjNAN2OUaeJI3YDO+6DnR4vW6XzvdYCijTU7PPubuEbGuAw10Zj0uDk6SDlN6i9alxKt+toQClAakWOYPTCaXT+goOLnaA==",
"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": "mldsa-rdfc-2025",
"proofPurpose": "assertionMethod",
"type": "DataIntegrityProof",
"verificationMethod": "did:dyne:b4dc0ff3"
},
"proof rdf-canon": "XzpjMTRuMCA8aHR0cDovL3B1cmwub3JnL2RjL3Rlcm1zL2NyZWF0ZWQ+ICIyMDI1LTA0LTI1VDA5OjA3OjA5WiJeXjxodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSNkYXRlVGltZT4gLgpfOmMxNG4wIDxodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjdHlwZT4gPGh0dHBzOi8vdzNpZC5vcmcvc2VjdXJpdHkjRGF0YUludGVncml0eVByb29mPiAuCl86YzE0bjAgPGh0dHBzOi8vdzNpZC5vcmcvc2VjdXJpdHkjY3J5cHRvc3VpdGU+ICJtbGRzYS1yZGZjLTIwMjUiXl48aHR0cHM6Ly93M2lkLm9yZy9zZWN1cml0eSNjcnlwdG9zdWl0ZVN0cmluZz4gLgpfOmMxNG4wIDxodHRwczovL3czaWQub3JnL3NlY3VyaXR5I3Byb29mUHVycG9zZT4gPGh0dHBzOi8vdzNpZC5vcmcvc2VjdXJpdHkjYXNzZXJ0aW9uTWV0aG9kPiAuCl86YzE0bjAgPGh0dHBzOi8vdzNpZC5vcmcvc2VjdXJpdHkjdmVyaWZpY2F0aW9uTWV0aG9kPiA8ZGlkOmR5bmU6YjRkYzBmZjM+IC4K",
"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": "u2QyOyhTbhNDLLclMOEnZ2mQ4+o3IIgIFh2sYxznueE7hLkoFPFxhAaQ8V7Yt4wDGvBCjNvUloGYOry/FIb2P3KoQgEbe15cXsOrzTWYSAG2RllDMFG7nqTn+KK5uTWtdqiKERSQANY3Om7aVtLYtXvDNyIvi0S71CcSoCat1yB0Gbxv0P2gspRWaC40+w3+KH4ObINDsDBzVh1ir8B73JuovTFNLtSocBEcLwy3dNfGUrnRdgUDL5bY4IKzx9d8e1awKN1W52hSytrY2HPKJLy4Q/UPqynEyVx5ncykgcAGoYRL94/cW4JbjFRN2qWJfIeMmqTCxgkFpPlmlFTVLe5Fyqe4wFTpUK/keg+DxJqJ+27QmikB+jdr4YewBUg8a56wQSDi5t9ZD34GSuelsnHrWlpDVm+smNJTwAshHN3qvbWDbc/T6I2Jag6NIOlfGr5sXFsydAFgQcpvDhhAVAhNmPmbD36LXr91ztgsiBrT7fKbXtBTOLGlZcxI5mVRZcgPrtQX2KLopvQn6Ny42rph+sXaqTUxK0p9/oAcMEkU8sdLyJLh/Z6PM8iMFKYLDi8R5//BtwgHNln3Eb16lYH/4AqIpG147RLo6hTaTElpa3N0bNAijjyrHYwAcX55JWxz88kIv9B11eMsJWAk8LsJllgluKeeZU4D4bnY09RSv6PcA12S8jCqYSY+M//0WgxXT0yksdHCvFhoq8rQyveimi4EOvmq0K/xB0hCbAtuwB1p3q6LB8PeaEtLD7lXRsfCQdHtZs4ciAFdwJg2Jgojm8V0Sl2csQQ5QDtPet9JA4+NgCdGu33CIiBoH+ROQqqnoYfR7wKL8GDTHsnoejp+En7RAlRqqB4XmU/B9EHOxlH1hDmGAaXwbCDc7ssfe5zti73YBp7GsLJ3JfN2IG2p2Qt0bA5hnEpC+SthFVX4McjXgqsDuwyAM0rcZV+320Q+52ptowspaed27M/xZzZ1Xz2JD/SvQmFWCkcDO0lmn7uwHL3uohvC6XZLv54k61aZ05nY90z3Y5fym+hywjD8japkRZjj9z1JZbOrFfaIhW2ZEvI6xoXwo1DJz5f8ZyYYz1+TFXu7PzgWpDggvjRY4Eoq+2tEx6TpzJ8uW/LboOQrvii2CcI6ZgjwpeJkbNdFi75NGspX0HNvzMpEmCV63tZrbwiLgd/P1otuM9pNhmShDmxl9V3YZsbsR07WoCbka8zfTpZQCgTWYUn8mCHBN6elQP5jwZ7647FPtsNe8O1LwsP9pGS9Z/uKYokU/aSmFQqPPOhccw5IMCvbmur2RFCaFco7I5clHY/dPRk8RzyNu4ZeTvVgiu5diP2VCsySizszUN7ggRPRnIqyUfE+h1kdb64bTmyEQXG6DMcBTA8iwP6z83iuMh6O+0np3dU1GRf0CZm5bgSbDwUV62B1eRN6zcudRUpfGggg/b0JTkvtnxIliB1Lo9UoJ5oZLYDC8gBeVLJrcrHBk1vLJ86/GW/u5dbAi1rzd4RCdhBLuvVvx95ByK29w1hl19cVQzHc2CO9rzM4JOXbBP2L/VAFzjSdDyUePWv9jFoJH3ctf6LAYFFX9whgxFeQJWM/rODNsJt2oH4WqAyUW3q3/0nEkR9uxNTZh0s7u2oMIHdHtQpMp8NsTqxJSjNAN2OUaeJI3YDO+6DnR4vW6XzvdYCijTU7PPubuEbGuAw10Zj0uDk6SDlN6i9alxKt+toQClAakWOYPTCaXT+goOLnaA==",
"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": "mldsa-rdfc-2025",
"proofPurpose": "assertionMethod",
"type": "DataIntegrityProof",
"verificationMethod": "did:dyne:b4dc0ff3"
},
"proof rdf-canon": "XzpjMTRuMCA8aHR0cDovL3B1cmwub3JnL2RjL3Rlcm1zL2NyZWF0ZWQ+ICIyMDI1LTA0LTI1VDA5OjA3OjA5WiJeXjxodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSNkYXRlVGltZT4gLgpfOmMxNG4wIDxodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjdHlwZT4gPGh0dHBzOi8vdzNpZC5vcmcvc2VjdXJpdHkjRGF0YUludGVncml0eVByb29mPiAuCl86YzE0bjAgPGh0dHBzOi8vdzNpZC5vcmcvc2VjdXJpdHkjY3J5cHRvc3VpdGU+ICJtbGRzYS1yZGZjLTIwMjUiXl48aHR0cHM6Ly93M2lkLm9yZy9zZWN1cml0eSNjcnlwdG9zdWl0ZVN0cmluZz4gLgpfOmMxNG4wIDxodHRwczovL3czaWQub3JnL3NlY3VyaXR5I3Byb29mUHVycG9zZT4gPGh0dHBzOi8vdzNpZC5vcmcvc2VjdXJpdHkjYXNzZXJ0aW9uTWV0aG9kPiAuCl86YzE0bjAgPGh0dHBzOi8vdzNpZC5vcmcvc2VjdXJpdHkjdmVyaWZpY2F0aW9uTWV0aG9kPiA8ZGlkOmR5bmU6YjRkYzBmZjM+IC4K",
"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"
]
}