0.1.6 • Published 2 years ago

@pathcheck/divoc-sdk v0.1.6

Weekly downloads
-
License
GPL-3.0-only
Repository
github
Last release
2 years ago

Verifiable QR SDK for DIVOC Credentials

JavaScript Implementation of DIVOC's COWIN Credentials for India, a W3C VC-based Verifiable QR Credentials.

Install

npm install @pathcheck/divoc-sdk --save

Usage

With the keys:

const PRIVATE_KEY_PEM= `-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAnXQalrgztecTpc+INjRQ8s73FSE1kU5QSlwBdICCVJBUKiuQUt7s+Z5epgCvLVAOCbP1mm5lV7bfgV/iYWDio7lzX4MlJwDedWLiufr3Ajq+79CQiqPaIbZTo0i13zijKtX7wgxQ78wT/HkJRLkFpmGeK3za21tEfttytkhmJYlwaDTEc+Kx3RJqVhVh/dfwJGeuV4Xc/e2NH++ht0ENGuTk44KpQ+pwQVqtW7lmbDZQJoOJ7HYmmoKGJ0qt2hrj15uwcD1WEYfY5N7N0ArTzPgctExtZFDmituLGzuAZfv2AZZ9/7Y+igshzfB0reIFdUKw3cdVTzfv5FNrIqN5pwIDAQABAoIBAHPILMUoLt5UTd5f/YnebqgeCRNAmGOBcwk7HtbMqQoGF93qqvZFd30XOAJZ/ncTpz77Vl95ToxxrWk1WQLCe+ZpOK3Dgk5sFSm8zXx1T64UBNPUSnWoh37C1D39+b9rppCZScgnxlyPdSLy3h3q8Hyoy+auqUEkm/ms5W2lT3fJscyN1IAyHrhsOBWjl3Ilq5GxBo5tbYv/Fb1pQiP/p2SIHA1+2ASXNYQP100F5Vn0V6SFtBXTCQnwcvbP083NvlGxs9+xRs3MCUcxCkKepWuzYwOZDmu/2yCz1/EsP6wlsYEHmCZLdIb0tQt0caqzB/RoxfBpNRIlhOtqHvBzUgECgYEAzIRn5Y7lqO3N+V29wXXtVZjYWvBh7xUfOxAwVYv0rKI0y9kHJHhIrU+wOVOKGISxBKmzqBQRPvXtXW8E0/14Zz82g60rRwtNjvW0UoZAY3KPouwruUIjAe2UnKZcQ//MBTrvds8QGpL6nxvPsBqU0y2K+ySAOxBtNtGEjzv8nxUCgYEAxRbMWukIbgVOuQjangkfJEfA1UaRFQqQ8jUmT9aiq2nREnd4mYP8kNKzJa9L7zj6Un6yLH5DbGspZ2gGODeRw3uVFN8XSzRdLvllNEyiG/waiysUtXfG2DPOR6xD8tXXDMm/tl9gTa8cbkvqYy10XT9MpfOAsusEZVmc0/DBBMsCgYAYdAxoKjnThPuHwWma5BrIjUnxNaTADWp6iWj+EYnjylE9vmlYNvmZn1mWwSJV5Ce2QwQ0KJIXURhcf5W4MypeTfSase3mxLc1TLOO2naAbYY3GL3xnLLK3DlUsZ9+kes3BOD097UZOFG3DIA8sjDxPxTLCoY6ibBFSa/r4GRIMQKBgQCranDCgPu79RHLDVBXM0fKnj2xQXbd/hqjDmcL+Xnx7E7S6OYTXyBENX1qwVQh9ESDi34cBJVPrsSME4WVT3+PreS0CnSQDDMfr/m9ywkTnejYMdgJHOvtDuHSpJlUk3g+vxnm3H0+E5d+trhdGiOjFnLrwyWkd5OTMqWcEEFQkQKBgFfXObDz/7KqeSaAxI8RzXWbI3Fa492b4qQUhbKYVpGn98CCVEFJr11vuB/8AXYCa92OtbwgMw6Ah5JOGzRScJKdipoxo7oc2LJ9sSjjw3RB/aWl35ChvnCJhmfSL8Usbj0nWVTrPwRLjMC2bIxkLtnm9qYXPumW1EjEbusjVMpN
-----END RSA PRIVATE KEY-----`

const PUBLIC_KEY_PEM = `-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnXQalrgztecTpc+INjRQ8s73FSE1kU5QSlwBdICCVJBUKiuQUt7s+Z5epgCvLVAOCbP1mm5lV7bfgV/iYWDio7lzX4MlJwDedWLiufr3Ajq+79CQiqPaIbZTo0i13zijKtX7wgxQ78wT/HkJRLkFpmGeK3za21tEfttytkhmJYlwaDTEc+Kx3RJqVhVh/dfwJGeuV4Xc/e2NH++ht0ENGuTk44KpQ+pwQVqtW7lmbDZQJoOJ7HYmmoKGJ0qt2hrj15uwcD1WEYfY5N7N0ArTzPgctExtZFDmituLGzuAZfv2AZZ9/7Y+igshzfB0reIFdUKw3cdVTzfv5FNrIqN5pwIDAQAB
-----END PUBLIC KEY-----`;

And a Payload

const TEST_PAYLOAD = {
  "@context":["https://www.w3.org/2018/credentials/v1","https://cowin.gov.in/credentials/vaccination/v1"],
  "type":["VerifiableCredential","ProofOfVaccinationCredential"],
  "issuer":"https://cowin.gov.in/",
  "issuanceDate":"2021-04-14T04:00:00.000Z",
  "nonTransferable":"true",
  "credentialSubject":{
    "type":"Person",
    "id":"did:in.gov.uidai.aadhaar:2342343334",
    "refId":"12346",
    "name":
    "Bhaya Mitra",
    "gender":"Male",
    "age":"27",
    "nationality":
    "Indian",
    "address":{
      "streetAddress":
      "101-102, Mangal Ashirwad",
      "streetAddress2":"S V Road",
      "district":"Santacruz West",
      "city":"Mumbai",
      "addressRegion":
      "Maharashtra",
      "addressCountry":"IN",
      "postalCode":"400054"}
    },
    "evidence":[{
      "id":"https://cowin.gov.in/vaccine/undefined",
      "feedbackUrl":"https://cowin.gov.in/?undefined",
      "infoUrl":"https://cowin.gov.in/?undefined",
      "type":["Vaccination"],
      "batch":"MB3428BX",
      "vaccine":"CoVax",
      "manufacturer":
      "COVPharma",
      "date":"20210414",
      "effectiveStart":"20201202",
      "effectiveUntil":"20251202",
      "dose":"1",
      "totalDoses":"1",
      "verifier":{
        "name":"Sooraj Singh"
      },
      "facility":{
        "name":"ABC Medical Center",
        "address":{
          "streetAddress":"123, Koramangala",
          "streetAddress2":"",
          "district":"Bengaluru South",
          "city":"Bengaluru",
          "addressRegion":"Karnataka",
          "addressCountry":"IN",
          "postalCode":""}
        }
      }
    ]
  };

Call the signAndPack to create the URI for the QR Code:

const qrUri = await signAndPack(TEST_PAYLOAD, PRIVATE_KEY_PEM);

And call the unpack and verify to convert the URI into the payload:

const json = await unpackAndVerify(qrUri);

Development

npm install

Test

npm test
0.1.6

2 years ago

0.1.4

3 years ago

0.1.3

3 years ago

0.1.5

3 years ago

0.1.2

3 years ago

0.1.1

3 years ago

0.1.0

3 years ago

0.0.9

3 years ago

0.0.8

3 years ago

0.0.7

3 years ago

0.0.6

3 years ago

0.0.5

3 years ago

0.0.4

3 years ago