{"id":25944997,"url":"https://github.com/path-check/divoc-sdk.js","last_synced_at":"2026-04-15T23:33:40.676Z","repository":{"id":57135331,"uuid":"363496533","full_name":"Path-Check/divoc-sdk.js","owner":"Path-Check","description":"Verifiable QR SDK for DIVOC Credentials","archived":false,"fork":false,"pushed_at":"2022-01-18T21:12:49.000Z","size":1992,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":5,"default_branch":"main","last_synced_at":"2024-04-24T06:07:08.317Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Path-Check.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-05-01T20:00:44.000Z","updated_at":"2022-06-22T15:45:01.000Z","dependencies_parsed_at":"2022-09-03T12:22:27.479Z","dependency_job_id":null,"html_url":"https://github.com/Path-Check/divoc-sdk.js","commit_stats":null,"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Path-Check%2Fdivoc-sdk.js","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Path-Check%2Fdivoc-sdk.js/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Path-Check%2Fdivoc-sdk.js/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Path-Check%2Fdivoc-sdk.js/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Path-Check","download_url":"https://codeload.github.com/Path-Check/divoc-sdk.js/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241810096,"owners_count":20023903,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-03-04T08:20:33.823Z","updated_at":"2025-12-02T05:06:06.232Z","avatar_url":"https://github.com/Path-Check.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Verifiable QR SDK for DIVOC Credentials\n\nJavaScript Implementation of [DIVOC's COWIN Credentials for India](https://divoc.egov.org.in/), a W3C VC-based Verifiable QR Credentials. \n\n# Install\n\n```sh\nnpm install @pathcheck/divoc-sdk --save\n```\n\n# Usage\n\nWith the keys: \n\n```js\nconst PRIVATE_KEY_PEM= `-----BEGIN RSA PRIVATE KEY-----\nMIIEowIBAAKCAQEAnXQalrgztecTpc+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\n-----END RSA PRIVATE KEY-----`\n\nconst PUBLIC_KEY_PEM = `-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnXQalrgztecTpc+INjRQ8s73FSE1kU5QSlwBdICCVJBUKiuQUt7s+Z5epgCvLVAOCbP1mm5lV7bfgV/iYWDio7lzX4MlJwDedWLiufr3Ajq+79CQiqPaIbZTo0i13zijKtX7wgxQ78wT/HkJRLkFpmGeK3za21tEfttytkhmJYlwaDTEc+Kx3RJqVhVh/dfwJGeuV4Xc/e2NH++ht0ENGuTk44KpQ+pwQVqtW7lmbDZQJoOJ7HYmmoKGJ0qt2hrj15uwcD1WEYfY5N7N0ArTzPgctExtZFDmituLGzuAZfv2AZZ9/7Y+igshzfB0reIFdUKw3cdVTzfv5FNrIqN5pwIDAQAB\n-----END PUBLIC KEY-----`;\n```\n\nAnd a Payload \n\n```js\nconst TEST_PAYLOAD = {\n  \"@context\":[\"https://www.w3.org/2018/credentials/v1\",\"https://cowin.gov.in/credentials/vaccination/v1\"],\n  \"type\":[\"VerifiableCredential\",\"ProofOfVaccinationCredential\"],\n  \"issuer\":\"https://cowin.gov.in/\",\n  \"issuanceDate\":\"2021-04-14T04:00:00.000Z\",\n  \"nonTransferable\":\"true\",\n  \"credentialSubject\":{\n    \"type\":\"Person\",\n    \"id\":\"did:in.gov.uidai.aadhaar:2342343334\",\n    \"refId\":\"12346\",\n    \"name\":\n    \"Bhaya Mitra\",\n    \"gender\":\"Male\",\n    \"age\":\"27\",\n    \"nationality\":\n    \"Indian\",\n    \"address\":{\n      \"streetAddress\":\n      \"101-102, Mangal Ashirwad\",\n      \"streetAddress2\":\"S V Road\",\n      \"district\":\"Santacruz West\",\n      \"city\":\"Mumbai\",\n      \"addressRegion\":\n      \"Maharashtra\",\n      \"addressCountry\":\"IN\",\n      \"postalCode\":\"400054\"}\n    },\n    \"evidence\":[{\n      \"id\":\"https://cowin.gov.in/vaccine/undefined\",\n      \"feedbackUrl\":\"https://cowin.gov.in/?undefined\",\n      \"infoUrl\":\"https://cowin.gov.in/?undefined\",\n      \"type\":[\"Vaccination\"],\n      \"batch\":\"MB3428BX\",\n      \"vaccine\":\"CoVax\",\n      \"manufacturer\":\n      \"COVPharma\",\n      \"date\":\"20210414\",\n      \"effectiveStart\":\"20201202\",\n      \"effectiveUntil\":\"20251202\",\n      \"dose\":\"1\",\n      \"totalDoses\":\"1\",\n      \"verifier\":{\n        \"name\":\"Sooraj Singh\"\n      },\n      \"facility\":{\n        \"name\":\"ABC Medical Center\",\n        \"address\":{\n          \"streetAddress\":\"123, Koramangala\",\n          \"streetAddress2\":\"\",\n          \"district\":\"Bengaluru South\",\n          \"city\":\"Bengaluru\",\n          \"addressRegion\":\"Karnataka\",\n          \"addressCountry\":\"IN\",\n          \"postalCode\":\"\"}\n        }\n      }\n    ]\n  };\n```\n\nCall the signAndPack to create the URI for the QR Code: \n\n```js\nconst qrUri = await signAndPack(TEST_PAYLOAD, PRIVATE_KEY_PEM);\n```\n\nAnd call the unpack and verify to convert the URI into the payload: \n\n```js\nconst json = await unpackAndVerify(qrUri);\n```\n\n# Development\n\n```sh\nnpm install\n``` \n\n# Test\n\n```sh\nnpm test\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpath-check%2Fdivoc-sdk.js","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpath-check%2Fdivoc-sdk.js","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpath-check%2Fdivoc-sdk.js/lists"}