{"_id":"@digitalbazaar/eddsa-jcs-2022-cryptosuite","_rev":"1-d678f0f88bd83353c5c4bb3de80e5bf2","name":"@digitalbazaar/eddsa-jcs-2022-cryptosuite","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@digitalbazaar/eddsa-jcs-2022-cryptosuite","version":"1.0.0","license":"BSD-3-Clause","_id":"@digitalbazaar/eddsa-jcs-2022-cryptosuite@1.0.0","maintainers":[{"name":"dlongley","email":"dlongley@digitalbazaar.com"},{"name":"msporny","email":"msporny@digitalbazaar.com"},{"name":"davidlehn","email":"dil@lehn.org"},{"name":"mattcollier","email":"mcollier@digitalbazaar.com"},{"name":"gannan","email":"gannan@digitalbazaar.com"}],"homepage":"https://github.com/digitalbazaar/eddsa-jcs-2022-cryptosuite","bugs":{"url":"https://github.com/digitalbazaar/eddsa-jcs-2022-cryptosuite/issues"},"c8":{"reporter":["lcov","text-summary","text"]},"dist":{"shasum":"39fcc40855c904b11f11d9337ab489dbda30b8fc","tarball":"https://registry.npmjs.org/@digitalbazaar/eddsa-jcs-2022-cryptosuite/-/eddsa-jcs-2022-cryptosuite-1.0.0.tgz","fileCount":10,"integrity":"sha512-/bucT+Ts8qWmN1jxSizZgsQuzZ9jv/2qnvsI0IAEnrAcZBiW98F665XUMe1D/vJBKWFoNm/oLgMfk/UAsxpjBA==","signatures":[{"sig":"MEYCIQDSe/zQtywVx8jJ7811HZA38v2n2XV857pQ/KXK8m47NAIhAJ23E6JZ24yvbMYskeOs05UYJX2ixMxqN3hdzojmr8YH","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":14326},"type":"module","browser":{"crypto":false,"./lib/sha.js":"./lib/sha-browser.js"},"engines":{"node":">=18"},"exports":"./lib/index.js","gitHead":"8c943d74d90ca7152e9be71b4a70cceb5b070a99","scripts":{"lint":"eslint .","test":"npm run test-node","coverage":"cross-env NODE_ENV=test c8 npm run test-node","test-node":"cross-env NODE_ENV=test mocha --preserve-symlinks -t 30000 -A -R ${REPORTER:-spec} --require test/test-mocha.js test/*.spec.js","test-karma":"karma start karma.conf.cjs","coverage-ci":"cross-env NODE_ENV=test c8 --reporter=lcovonly --reporter=text-summary --reporter=text npm run test-node","coverage-report":"c8 report"},"_npmUser":{"name":"gannan","email":"gannan@digitalbazaar.com"},"repository":{"url":"git+https://github.com/digitalbazaar/eddsa-jcs-2022-cryptosuite.git","type":"git"},"_npmVersion":"10.2.3","description":"An EdDSA-JCS-2022 Data Integrity cryptosuite.","directories":{},"_nodeVersion":"21.2.0","dependencies":{"canonicalize":"^2.0.0","@digitalbazaar/ed25519-multikey":"^1.3.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.2","chai":"^4.5.0","karma":"^6.4.4","mocha":"^10.8.2","eslint":"^8.57.1","webpack":"^5.96.1","cross-env":"^7.0.3","karma-chai":"^0.1.0","karma-mocha":"^2.0.1","karma-webpack":"^5.0.1","jsonld-signatures":"^11.3.2","eslint-plugin-jsdoc":"^50.4.3","mocha-lcov-reporter":"^1.3.0","karma-mocha-reporter":"^2.2.5","eslint-plugin-unicorn":"^56.0.0","karma-chrome-launcher":"^3.2.0","karma-sourcemap-loader":"^0.4.0","eslint-config-digitalbazaar":"^5.2.0","@digitalbazaar/data-integrity":"^2.5.0","@digitalbazaar/ed25519-multikey":"^1.3.0","@digitalbazaar/multikey-context":"^2.0.1","@digitalbazaar/data-integrity-context":"^2.0.1","@digitalbazaar/security-document-loader":"^3.0.0","@digitalbazaar/ed25519-verification-key-2018":"^4.0.0","@digitalbazaar/ed25519-verification-key-2020":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/eddsa-jcs-2022-cryptosuite_1.0.0_1731087272065_0.7138190651936431","host":"s3://npm-registry-packages"}}},"time":{"created":"2024-11-08T17:34:31.910Z","modified":"2025-02-14T21:39:56.140Z","1.0.0":"2024-11-08T17:34:32.260Z"},"bugs":{"url":"https://github.com/digitalbazaar/eddsa-jcs-2022-cryptosuite/issues"},"license":"BSD-3-Clause","homepage":"https://github.com/digitalbazaar/eddsa-jcs-2022-cryptosuite","repository":{"url":"git+https://github.com/digitalbazaar/eddsa-jcs-2022-cryptosuite.git","type":"git"},"description":"An EdDSA-JCS-2022 Data Integrity cryptosuite.","maintainers":[{"email":"dlongley@digitalbazaar.com","name":"dlongley"},{"email":"msporny@digitalbazaar.com","name":"msporny"},{"email":"dil@lehn.org","name":"davidlehn"},{"email":"gannan@digitalbazaar.com","name":"gannan"}],"readme":"# EdDSA JCS 2022 Data Integrity Cryptosuite _(@digitalbazaar/eddsa-jcs-2022-cryptosuite)_\n\n[![Build status](https://img.shields.io/github/actions/workflow/status/digitalbazaar/eddsa-jcs-2022-cryptosuite/main.yml)](https://github.com/digitalbazaar/eddsa-jcs-2022-cryptosuite/actions?query=workflow%3A%22Node.js+CI%22)\n[![Coverage status](https://img.shields.io/codecov/c/github/digitalbazaar/eddsa-jcs-2022-cryptosuite)](https://codecov.io/gh/digitalbazaar/eddsa-jcs-2022-cryptosuite)\n[![NPM Version](https://img.shields.io/npm/v/@digitalbazaar/eddsa-jcs-2022-cryptosuite.svg)](https://npm.im/@digitalbazaar/eddsa-jcs-2022-cryptosuite)\n\n> EdDSA 2022 Data Integrity Cryptosuite.\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\nTBD\n\n## Install\n\n- Browsers and Node.js 16+ are supported.\n\nTo install from NPM:\n\n```\nnpm install @digitalbazaar/eddsa-jcs-2022-cryptosuite\n```\n\nTo install locally (for development):\n\n```\ngit clone https://github.com/digitalbazaar/eddsa-jcs-2022-cryptosuite.git\ncd eddsa-jcs-2022-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 Ed25519Multikey from '@digitalbazaar/ed25519-multikey';\nimport {DataIntegrityProof} from '@digitalbazaar/data-integrity';\nimport {createSignCryptosuite} from '@digitalbazaar/eddsa-jcs-2022-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/2018/credentials/v1',\n    {\n      AlumniCredential: 'https://schema.org#AlumniCredential',\n      alumniOf: 'https://schema.org#alumniOf'\n    }\n  ],\n  id: 'http://example.edu/credentials/1872',\n  type: [ 'VerifiableCredential', 'AlumniCredential' ],\n  issuer: 'https://example.edu/issuers/565049',\n  issuanceDate: '2010-01-01T19:23:24Z',\n  credentialSubject: {\n    id: 'https://example.edu/students/alice',\n    alumniOf: 'Example University'\n  }\n};\n\n// create the keypair to use when signing\nconst controller = 'https://example.edu/issuers/565049';\nconst keyPair = await Ed25519Multikey.from({\n  '@context': 'https://w3id.org/security/multikey/v1',\n  type: 'Multikey',\n  controller,\n  id: controller + '#z6MkwXG2WjeQnNxSoynSGYU8V9j3QzP3JSqhdmkHc6SaVWoT',\n  publicKeyMultibase: 'z6MkwXG2WjeQnNxSoynSGYU8V9j3QzP3JSqhdmkHc6SaVWoT',\n  secretKeyMultibase: 'zrv3rbPamVDGvrm7LkYPLWYJ35P9audujKKsWn3x29EUiGwwhdZQd' +\n    '1iHhrsmZidtVALBQmhX3j9E5Fvx6Kr29DPt6LH'\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 eddsaJcs2022CryptoSuite = createSignCryptosuite();\nconst suite = new DataIntegrityProof({\n  signer: keyPair.signer(), cryptosuite: eddsaJcs2022CryptoSuite\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\n{\n  \"@context\": [\n    \"https://www.w3.org/2018/credentials/v1\",\n    {\n      \"AlumniCredential\": \"https://schema.org#AlumniCredential\",\n      \"alumniOf\": \"https://schema.org#alumniOf\"\n    },\n    \"https://w3id.org/security/data-integrity/v2\"\n  ],\n  \"id\": \"http://example.edu/credentials/1872\",\n  \"type\": [\n    \"VerifiableCredential\",\n    \"AlumniCredential\"\n  ],\n  \"issuer\": \"https://example.edu/issuers/565049\",\n  \"issuanceDate\": \"2010-01-01T19:23:24Z\",\n  \"credentialSubject\": {\n    \"id\": \"https://example.edu/students/alice\",\n    \"alumniOf\": \"Example University\"\n  },\n  \"proof\": {\n    \"type\": \"DataIntegrityProof\",\n    \"created\": \"2022-09-06T21:29:24Z\",\n    \"verificationMethod\": \"https://example.edu/issuers/565049#z6MkwXG2WjeQnNxSoynSGYU8V9j3QzP3JSqhdmkHc6SaVWoT\",\n    \"cryptosuite\": \"eddsa-jcs-2022\",\n    \"proofPurpose\": \"assertionMethod\",\n    \"@context\": [\n      \"https://www.w3.org/2018/credentials/v1\",\n      {\n        \"AlumniCredential\": \"https://schema.org#AlumniCredential\",\n        \"alumniOf\": \"https://schema.org#alumniOf\"\n      },\n      \"https://w3id.org/security/data-integrity/v2\"\n    ],\n    \"proofValue\": \"z3aKfEmARJBuiiBcmGtzPh5ZHaGm9EAehkyVRDJGRxnTJQwqpdoktM6CD8aJii1RobA34gjVcdSQ7cURYcXtEkav2\"\n  }\n}\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) © 2023 Digital Bazaar\n","readmeFilename":"README.md"}