@govtechsg/open-certificate
v2.0.63
Published
**This CLI has been deprecated in favor of open-attestation CLI. Please read [OpenCerts documentation](https://docs.opencerts.io/docs/) to find out more.**
Downloads
445
Maintainers
Keywords
Readme
[DEPRECATED]
This CLI has been deprecated in favor of open-attestation CLI. Please read OpenCerts documentation to find out more.
Open Certificate
This library supplies the schemas used for OpenCerts standards, in the form of json schemas
Installation
Using npm:
npm install @govtechsg/open-certificate
Usage
If you are writing a certificate issuer: you probably want to issue a certificate or issue multiple certificates
If you are writing a certificate verifier or viewer: you probably want to
- validate that a certificate is well-formed
- verify that a certificate has not been tampered with
- retrieve certificate contents
- obfuscate fields
Using OpenCerts
const openCert = require("@govtechsg/open-certificate")
const exampleCert = require("exampleCert.json") // reading an example certificate file
openCert.verify(exampleCert)
Validate Schema
This library comes with the schemas in the ./schema
folder, all of them are loaded as valid schemas upon initialization.
openCert.validateSchema(exampleCert)
Verifying Certificate Signature
Certificates are considered untampered-with if they have a valid signature field. Refer to the Open Attestation library for more details on this.
openCert.verifySignature(exampleCert)
Issue a Certificate
A single Certificate can be issued using the .issueCertificate(certificate)
method.
Issuing a certificate in this manner will append a signature field to the certificate.
The return value of the method will be the signed certificate.
const issuedCert = openCert.issueCertificate(exampleCert)
Issue Multiple Certificates
Multiple Certificates can be issued at once with the .issueCertificates(certificate[])
method.
The return value of the method will be an array of signed certificates.
const exampleCerts = [cert1, cert2, cert3, ...]
const issuedCerts = openCert.issueCertificates(exampleCerts)
Retrieving Certificate contents
The raw certificate has salt in the fields to prevent enumeration, we provide a convenience method to retrieve the unsalted contents of the certificate using the method .certificateData(certificate)
const data = openCert.certificateData(exampleCert)
Obfuscating Fields in a Certificate
To obfuscate fields in a cert, the method .obfuscateFields(certificate, paths[])
is provided.
The paths[] parameter is simply the JSON path for the fields to be obfuscated.
The method returns the obfuscated certificate.
const obfuscatedCert = openCert.obfuscateFields(exampleCert, [
"recipient.email",
"recipient.phone"
]);
Developers
The code is written to ES6 specs with stage-3 presets and is compiled by Babel.
Test
npm run test
Build
npm run build