This CLI has been deprecated in favor of open-attestation CLI. Please read OpenCerts documentation to find out more.
If you are writing a certificate verifier or viewer: you probably want to
The return value of the method will be the signed certificate.
The return value of the method will be an array of signed certificates.
The method returns the obfuscated certificate.
Open Certificate
This library supplies the schemas used for OpenCerts standards, in the form of json schemasInstallation
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 certificatesIf 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