{"_id":"@digitalbazaar/mldsa44-rdfc-2024-cryptosuite","name":"@digitalbazaar/mldsa44-rdfc-2024-cryptosuite","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@digitalbazaar/mldsa44-rdfc-2024-cryptosuite","version":"1.0.0","description":"An ML-DSA 44 RDFC Data Integrity cryptosuite for use with jsonld-signatures.","homepage":"https://github.com/digitalbazaar/mldsa44-rdfc-2024-cryptosuite","repository":{"type":"git","url":"git+https://github.com/digitalbazaar/mldsa44-rdfc-2024-cryptosuite.git"},"license":"BSD-3-Clause","type":"module","exports":"./lib/index.js","dependencies":{"@digitalbazaar/mldsa-multikey":"github:digitalbazaar/mldsa-multikey#main","base64url-universal":"^2.0.0","jsonld":"^9.0.0","rdf-canonize":"^5.0.0"},"devDependencies":{"@digitalbazaar/data-integrity":"^2.5.0","@digitalbazaar/data-integrity-context":"^2.0.1","@digitalbazaar/did-io":"^2.1.1","@digitalbazaar/did-method-key":"^5.3.0","@digitalbazaar/eslint-config":"^8.0.1","@digitalbazaar/multikey-context":"^2.0.1","@digitalbazaar/security-document-loader":"^3.2.0","c8":"^11.0.0","chai":"^4.5.0","cross-env":"^10.1.0","eslint":"^9.39.4","jsonld-signatures":"^11.6.0","karma":"^6.4.4","karma-chai":"^0.1.0","karma-chrome-launcher":"^3.2.0","karma-mocha":"^2.0.1","karma-mocha-reporter":"^2.2.5","karma-sourcemap-loader":"^0.4.0","karma-webpack":"^5.0.1","mocha":"^11.7.6","mocha-lcov-reporter":"^1.3.0","webpack":"^5.107.1"},"engines":{"node":">=22"},"scripts":{"test":"npm run test-node","test-karma":"karma start karma.conf.cjs","test-node":"cross-env NODE_ENV=test mocha --preserve-symlinks -t 30000 -A -R ${REPORTER:-spec} --require test/test-mocha.js test/*.spec.js","coverage":"cross-env NODE_ENV=test c8 npm run test-node","coverage-ci":"cross-env NODE_ENV=test c8 --reporter=lcovonly --reporter=text-summary --reporter=text npm run test-node","coverage-report":"c8 report","lint":"eslint ."},"c8":{"reporter":["lcov","text-summary","text"]},"gitHead":"b430a07616f68657ac9856c6cc419f8706f83ce4","_id":"@digitalbazaar/mldsa44-rdfc-2024-cryptosuite@1.0.0","bugs":{"url":"https://github.com/digitalbazaar/mldsa44-rdfc-2024-cryptosuite/issues"},"_nodeVersion":"22.22.2","_npmVersion":"11.13.0","dist":{"integrity":"sha512-FdyuLwuSlbuLL3zRkUZtgNPZOMIJKh2lddiM4fIWVwt8a6vgW6vSx7QSO0D3ncdDUaqH6go5hLTcR/QeqhAKpw==","shasum":"ec454b19b6af2ff3c96b10538769c411cd523813","tarball":"https://registry.npmjs.org/@digitalbazaar/mldsa44-rdfc-2024-cryptosuite/-/mldsa44-rdfc-2024-cryptosuite-1.0.0.tgz","fileCount":9,"unpackedSize":12047,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIDHniXQdcsTMWEwq5mK9nj2Ty6Ny/8xuu9pMZXuBLe8tAiEA2Ww+cgUiQBNpVgN2LSk/AbIzPoRwCXvQelUTMNyVP7Q="}]},"_npmUser":{"name":"davidlehn","email":"dil@lehn.org"},"directories":{},"maintainers":[{"name":"dlongley","email":"dlongley@digitalbazaar.com"},{"name":"msporny","email":"msporny@digitalbazaar.com"},{"name":"davidlehn","email":"dil@lehn.org"},{"name":"gannan","email":"gannan@digitalbazaar.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mldsa44-rdfc-2024-cryptosuite_1.0.0_1779842801192_0.07335614603669893"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-27T00:46:41.010Z","1.0.0":"2026-05-27T00:46:41.324Z","modified":"2026-05-27T00:46:41.698Z"},"maintainers":[{"name":"dlongley","email":"dlongley@digitalbazaar.com"},{"name":"msporny","email":"msporny@digitalbazaar.com"},{"name":"davidlehn","email":"dil@lehn.org"},{"name":"gannan","email":"gannan@digitalbazaar.com"}],"description":"An ML-DSA 44 RDFC Data Integrity cryptosuite for use with jsonld-signatures.","homepage":"https://github.com/digitalbazaar/mldsa44-rdfc-2024-cryptosuite","repository":{"type":"git","url":"git+https://github.com/digitalbazaar/mldsa44-rdfc-2024-cryptosuite.git"},"bugs":{"url":"https://github.com/digitalbazaar/mldsa44-rdfc-2024-cryptosuite/issues"},"license":"BSD-3-Clause","readme":"# ML-DSA RDFC 2024 Data Integrity Cryptosuite _(@digitalbazaar/mldsa44-rdfc-2024-cryptosuite)_\n\n> ML-DSA RDFC 2024 Data Integrity Cryptosuite for use with jsonld-signatures.\n\n## Table of Contents\n\n- [Background](#background)\n- [Security](#security)\n- [Install](#install)\n- [Usage](#usage)\n- [Contribute](#contribute)\n- [Commercial Support](#commercial-support)\n- [License](#license)\n\n## Background\n\nFor use with https://github.com/digitalbazaar/jsonld-signatures v11.0 and above.\n\nSee also related specs:\n\n* [Verifiable Credential Data Integrity](https://w3c.github.io/vc-data-integrity/)\n\n## Security\n\nAs with any cryptographic implementation, the security of this library depends\non correct key management. Secret keys must be protected and never transmitted\nor stored in plaintext. The ML-DSA-44 algorithm provides NIST security level 2\npost-quantum security.\n\n## Install\n\nThis software requires and supports maintained recent versions of Node.js and\nbrowsers. Updates may remove support for older unmaintained platform versions.\nPlease use dependency version lock files and testing to ensure compatibility\nwith this software.\n\nTo install from NPM:\n\nhttps://www.npmjs.com/package/@digitalbazaar/mldsa44-rdfc-2024-cryptosuite.git\n\n```sh\nnpm install @digitalbazaar/mldsa44-rdfc-2024-cryptosuite\n```\n\nTo install locally (for development):\n\n```sh\ngit clone https://github.com/digitalbazaar/mldsa44-rdfc-2024-cryptosuite.git\ncd mldsa44-rdfc-2024-cryptosuite\nnpm install\n```\n\n## Usage\n\nThe following code snippet provides a complete example of digitally signing\na verifiable credential using this library:\n\n```javascript\nimport * as MldsaMultikey from '@digitalbazaar/mldsa-multikey';\nimport {DataIntegrityProof} from '@digitalbazaar/data-integrity';\nimport {cryptosuite as mldsa44Rdfc2024Cryptosuite} from\n  '@digitalbazaar/mldsa44-rdfc-2024-cryptosuite';\nimport jsigs from 'jsonld-signatures';\nconst {purposes: {AssertionProofPurpose}} = jsigs;\n\n\n// create the unsigned credential\nconst unsignedCredential = {\n  '@context': [\n    'https://www.w3.org/ns/credentials/v2',\n    'https://www.w3.org/ns/credentials/examples/v2'\n  ],\n  id: 'http://university.example/credentials/58473',\n  type: ['VerifiableCredential', 'ExampleAlumniCredential'],\n  issuer: 'did:example:2g55q912ec3476eba2l9812ecbfe',\n  validFrom: '2010-01-01T00:00:00Z',\n  credentialSubject: {\n    id: 'did:example:ebfeb1f712ebc6f1c276e12ec21',\n    alumniOf: {\n      id: 'did:example:c276e12ec21ebfeb1f712ebc6f1',\n      name: 'Example University'\n    }\n  }\n};\n\n// create the keypair to use when signing\nconst controller = 'https://example.edu/issuers/565049';\nconst keyPair = await EcdsaMultikey.from({\n  '@context': 'https://w3id.org/security/multikey/v1',\n  id: 'https://example.edu/issuers/565049#TBD',\n  type: 'Multikey',\n  controller: 'https://example.edu/issuers/565049',\n  publicKeyMultibase: 'TBD',\n  secretKeyMultibase: 'TBD'\n});\n\n// export public key and add to document loader\nconst publicKey = await keyPair.export({publicKey: true, includeContext: true});\naddDocumentToLoader({url: publicKey.id, document: publicKey});\n\n// create key's controller document\nconst controllerDoc = {\n  '@context': [\n    'https://www.w3.org/ns/did/v1',\n    'https://w3id.org/security/multikey/v1'\n  ],\n  id: controller,\n  assertionMethod: [publicKey]\n};\naddDocumentToLoader({url: controllerDoc.id, document: controllerDoc});\n\n// create suite\nconst suite = new DataIntegrityProof({\n  signer: keyPair.signer(), cryptosuite: mldsa44Rdfc2024Cryptosuite\n});\n\n// create signed credential\nconst signedCredential = await jsigs.sign(unsignedCredential, {\n  suite,\n  purpose: new AssertionProofPurpose(),\n  documentLoader\n});\n\n// results in the following signed VC\nTBD\n```\n\n## Contribute\n\nSee [the contribute file](https://github.com/digitalbazaar/bedrock/blob/master/CONTRIBUTING.md)!\n\nPRs accepted.\n\nIf editing the Readme, please conform to the\n[standard-readme](https://github.com/RichardLitt/standard-readme) specification.\n\n## Commercial Support\n\nCommercial support for this library is available upon request from\nDigital Bazaar: support@digitalbazaar.com\n\n## License\n\n[New BSD License (3-clause)](LICENSE) © 2026 Digital Bazaar\n","readmeFilename":"README.md","_rev":"1-453d1f03e1ed71fd79aaa0062c93ea5f"}