# @transmute/json-web-signature

> ``` npm i @transmute/json-web-signature@latest --save ```

Latest version **0.7.0-unstable.82** (published 2023-12-06) · Apache-2.0 license · 0 weekly downloads

## Install

```sh
npm install @transmute/json-web-signature
pnpm add @transmute/json-web-signature
yarn add @transmute/json-web-signature
bun add @transmute/json-web-signature
```

## Health

**Score 30/100 (F)** — status: abandoned.

Positive: has types; esm support; no vulnerabilities; high quality score.

Warnings: low downloads; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.7.0-unstable.82 |
| Published | 2023-12-06 |
| First published | 2021-03-07 |
| Weekly downloads | 0 |
| License | Apache-2.0 |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Node | >=16 |
| Dependencies | 6 |
| Unpacked size | 386 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 55 |
| Author | Orie Steele |
| Maintainers | ipbyrne, or13, transmute-ci |

## Links

- npm: https://www.npmjs.com/package/@transmute/json-web-signature
- Repository: https://github.com/transmute-industries/verifiable-data
- Homepage: https://github.com/transmute-industries/verifiable-data/tree/main/packages/json-web-signature
- Issues: https://github.com/transmute-industries/verifiable-data/issues
- npm.io page: https://npm.io/package/@transmute/json-web-signature

## Dependencies (6)

- [@transmute/jsonld](https://npm.io/package/@transmute/jsonld.md) 0.0.4
- [@transmute/jose-ld](https://npm.io/package/@transmute/jose-ld.md) ^0.7.0-unstable.82
- [@transmute/ed25519-key-pair](https://npm.io/package/@transmute/ed25519-key-pair.md) ^0.7.0-unstable.82
- [@transmute/security-context](https://npm.io/package/@transmute/security-context.md) ^0.7.0-unstable.82
- [@transmute/secp256k1-key-pair](https://npm.io/package/@transmute/secp256k1-key-pair.md) ^0.7.0-unstable.82
- [@transmute/web-crypto-key-pair](https://npm.io/package/@transmute/web-crypto-key-pair.md) ^0.7.0-unstable.82

## Recent versions

- 0.7.0-unstable.82 (latest) — 2023-12-06
- 0.7.0-unstable.81 — 2023-06-10
- 0.7.0-unstable.80 — 2023-01-24
- 0.7.0-unstable.79 — 2023-01-17
- 0.7.0-unstable.78 — 2023-01-17
- 0.7.0-unstable.77 — 2022-12-16
- 0.7.0-unstable.76 — 2022-12-13
- 0.7.0-unstable.75 — 2022-12-09
- 0.7.0-unstable.74 — 2022-12-09
- 0.7.0-unstable.73 — 2022-12-06
- 0.7.0-unstable.72 — 2022-12-06
- 0.7.0-unstable.71 — 2022-11-28
- 0.7.0-unstable.70 — 2022-10-31
- 0.7.0-unstable.69 — 2022-10-31
- 0.7.0-unstable.68 — 2022-10-29
- … 111 more at https://npm.io/package/@transmute/json-web-signature/versions

## README

### @transmute/json-web-signature

```
npm i @transmute/json-web-signature@latest --save
```

```ts
import { JsonWebKey, JsonWebSignature } from '@transmute/json-web-signature';
import { documentLoader } from 'path/somewhere';
import { verifiable } from '@transmute/vc.js';
const key = await JsonWebKey.from({
  id: 'did:example:123#key',
  type: 'JsonWebKey2020',
  controller: 'did:example:123',
  publicKeyJwk: {
    kty: 'EC',
    crv: 'P-384',
    x: 'dMtj6RjwQK4G5HP3iwOD94RwbzPhS4wTZHO1luk_0Wz89chqV6uJyb51KaZzK0tk',
    y: 'viPKF7Zbc4FxKegoupyVRcBr8TZHFxUrKQq4huOAyMuhTYJbFpAwMhIrWppql02E',
  },
  privateKeyJwk: {
    kty: 'EC',
    crv: 'P-384',
    x: 'dMtj6RjwQK4G5HP3iwOD94RwbzPhS4wTZHO1luk_0Wz89chqV6uJyb51KaZzK0tk',
    y: 'viPKF7Zbc4FxKegoupyVRcBr8TZHFxUrKQq4huOAyMuhTYJbFpAwMhIrWppql02E',
    d: 'Wq5_KgqjvYh_EGvBDYtSs_0ufJJP0y0tkAXl6GqxHMkY0QP8vmD76mniXD-BWhd_',
  },
});

suite = new JsonWebSignature({
  key,
});

const result = await verifiable.credential.create({
  credential: {
    '@context': [
      'https://www.w3.org/2018/credentials/v1',
      'https://w3id.org/security/suites/jws-2020/v1',
    ],
    id: 'https://example.com/credentials/123',
    issuer: key.controller,
    issuanceDate: '2000-03-10T04:24:12.164Z',
    type: ['VerifiableCredential'],
    credentialSubject: {
      id: `https://example.com/example/123`,
    },
  },
  format: ['vc'],
  documentLoader: documentLoader,
  suite,
});

const didDoc = {
  '@context': [
    'https://www.w3.org/ns/did/v1',
    'https://w3id.org/security/suites/jws-2020/v1',
  ],
  id: 'did:example:123',
  assertionMethod: [
    {
      id: 'did:example:123#key',
      type: 'JsonWebKey2020',
      controller: 'did:example:123',
      publicKeyJwk: {
        kty: 'EC',
        crv: 'P-384',
        x: 'dMtj6RjwQK4G5HP3iwOD94RwbzPhS4wTZHO1luk_0Wz89chqV6uJyb51KaZzK0tk',
        y: 'viPKF7Zbc4FxKegoupyVRcBr8TZHFxUrKQq4huOAyMuhTYJbFpAwMhIrWppql02E',
      },
    },
  ],
};

const result2 = await verifiable.credential.verify({
  credential: result.items[0],
  format: ['vc'],
  //   make sure to use a document loader
  //   that supports:
  //   https://www.w3.org/ns/did/v1
  //   https://www.w3.org/2018/credentials/v1
  //   https://w3id.org/security/suites/jws-2020/v1,
  documentLoader: async (iri: string) => {
    if (iri.startsWith(key.controller)) {
      return {
        documentUrl: iri,
        document: didDoc,
      };
    }
    return documentLoader(iri);
  },
  suite: [new JsonWebSignature()],
});
```

---
_Source: https://npm.io/package/@transmute/json-web-signature · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
