# PeculiarVentures/PKI.js

PKI.js is a pure JavaScript library implementing the formats that are used in PKI applications (signing, encryption, certificate requests, OCSP and TSP requests/responses). It is built on WebCrypto (Web Cryptography API) and requires no plug-ins.

Repository: https://github.com/PeculiarVentures/PKI.js
Canonical: https://ross.abutalabs.com/products/pkijs
Homepage: http://pkijs.org
Language: TypeScript
License: NOASSERTION
License Family: other
Topics: pki, webcrypto, pki-applications, javascript-library, plug-ins, ocsp, tsp, timestamp, encryption, pkcs5, pkcs7, signing, certificate, crl, es6, javascript, asn
Last push: 2026-08-14T08:30:50+00:00

## Health v2 (maintenance only)
Score: 90/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 97, release rhythm 75, longevity 100
- inputs: {"age_days": 4591, "days_push": 19, "days_rel": 168, "gap_med": 6.0, "n_releases_24m": 5}
- flags: no_license
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1396, forks 216 (observed 2026-08-28T04:04:36.566414+00:00)

## What it is
PKI.js is a pure TypeScript library implementing the common formats and protocols used in PKI applications, including X.509 certificates, PKCS#10 certificate requests, CMS signing/encryption, OCSP, CRLs, and RFC 3161 timestamping. It builds on the Web Crypto API rather than implementing its own cryptography, and works uniformly in browsers, Node.js, and Deno.

## Use cases
- create and validate X.509 certificates in JavaScript
- generate and parse PKCS#10 certificate signing requests (CSRs)
- sign and encrypt data using CMS (PKCS#7)
- create and parse OCSP requests and responses
- create and validate certificate revocation lists (CRLs)
- apply RFC 3161 trusted timestamps to signatures
- parse PKCS#8 and PKCS#12 private key structures
- build a browser-based certificate enrollment application

## When to choose
- you need to work with X.509 certificates, CSRs, CMS, OCSP, or CRLs in JavaScript or TypeScript
- you want a dependency-free PKI library that leverages the platform's Web Crypto implementation
- you need the same PKI code to run in both browsers and Node.js/Deno
- you need standards-compliant handling of specific PKI RFCs (5280, 5652, 2986, 3161, 6960)

## When to avoid
- you need to implement the cryptographic primitives themselves rather than use Web Crypto
- your platform lacks a Web Crypto API implementation
- you need a full PKI management service (CA, certificate lifecycle) rather than a format-handling library
- you work in a non-JavaScript ecosystem

## Facets
- artifact type: library
- maturity: stable
- function: cryptography, security, serialization, parser, sdk
- domain: security, developer-tools, web-development, apis
- platform: browser, cross-platform
- tags: pki, x509, webcrypto, cms, pkcs7, pkcs10, ocsp, crl, timestamping, asn1, certificate-management, digital-signatures, rfc3161, nodejs, deno, typescript

## Member repositories
- PeculiarVentures/PKI.js (main) score 90

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:04:36.566414+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T04:39:18.163886+00:00, confidence not recorded.
  - readme: https://github.com/PeculiarVentures/PKI.js (fetched 2026-08-28T04:04:36.566414+00:00, sha 807b0f69281d)
  - homepage: http://pkijs.org (fetched 2026-08-29T11:54:17.034829+00:00, sha ab0543f0fee9)
  - site_page: https://pkijs.org/docs/installation (fetched 2026-08-29T11:54:17.044416+00:00, sha 5f368cb9f348)
  - site_page: https://pkijs.org/docs/examples/certificates-and-revocation (fetched 2026-08-29T11:54:17.046258+00:00, sha 3d1999b98d1d)
  - site_page: https://pkijs.org/docs/api/pkijs (fetched 2026-08-29T11:54:17.048015+00:00, sha 9a4f658d322e)
- Data as of 2026-08-30T08:39:29.467469+00:00.
