Skip to content

Commit

Permalink
Add PLGNW3CCredentialFromAnonAadhaarInputs to get W3CCredential from …
Browse files Browse the repository at this point in the history
…AnonAadhaar inputs
  • Loading branch information
olomix committed Jan 24, 2025
1 parent 2bad7b3 commit 449a21d
Show file tree
Hide file tree
Showing 3 changed files with 72 additions and 0 deletions.
7 changes: 7 additions & 0 deletions cmd/polygonid/polygonid.go
Original file line number Diff line number Diff line change
Expand Up @@ -926,6 +926,13 @@ func PLGNW3CCredentialFromOnchainHex(jsonResponse **C.char, in *C.char,
return true
}

//export PLGNW3CCredentialFromAnonAadhaarInputs
func PLGNW3CCredentialFromAnonAadhaarInputs(jsonResponse **C.char, in *C.char,
cfg *C.char, status **C.PLGNStatus) bool {
return callGenericFn(c_polygonid.W3cCredentialsFromAnonAadhaarInputsJson,
jsonResponse, in, cfg, status)
}

// PLGNDescribeID parses ID and return it in different representations.
// Request example:
//
Expand Down
17 changes: 17 additions & 0 deletions inputs_sig.go
Original file line number Diff line number Diff line change
Expand Up @@ -2674,3 +2674,20 @@ func AnonAadhaarInputsFromJson(ctx context.Context, cfg EnvConfig,
out.Inputs = inputs.asAnonAadhaarV1Inputs()
return out, nil
}

func W3cCredentialsFromAnonAadhaarInputsJson(ctx context.Context, cfg EnvConfig,
in []byte) (verifiable.W3CCredential, error) {

var inputs anonAadhaarV1Inputs
err := json.Unmarshal(in, &inputs)
if err != nil {
return verifiable.W3CCredential{}, err
}

w3cCred, err := inputs.asAnonAadhaarV1Inputs().W3CCredential()
if err != nil {
return verifiable.W3CCredential{}, err
}

return *w3cCred, nil
}
48 changes: 48 additions & 0 deletions inputs_sig_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -1457,3 +1457,51 @@ func TestNewGenesysIDFromEth(t *testing.T) {
}
require.Equal(t, wantResp, resp)
}

func TestW3cCredentialsFromAnonAadhaarInputsJson(t *testing.T) {
defer httpmock.MockHTTPClient(t, map[string]string{})()

ctx := context.Background()
var cfg EnvConfig
w3cCred, err := W3cCredentialsFromAnonAadhaarInputsJson(ctx, cfg,
readFixtureFile("anon_aadhaar_v1_inputs.json"))
require.NoError(t, err)

expectedCredential := `{
"@context": [
"https://www.w3.org/2018/credentials/v1",
"https://schema.iden3.io/core/jsonld/iden3proofs.jsonld",
"https://gist.githubusercontent.com/ilya-korotya/078de56c274d44ea5a9579e137bd4301/raw/bfc67afc2246cf40a3fc508f0de9f689f318373d/AnonAadhaar.jsonld"
],
"type": [
"VerifiableCredential",
"AnonAadhaar"
],
"issuanceDate": "2019-03-08T05:30:00Z",
"expirationDate": "2019-09-06T19:54:00Z",
"credentialSubject": {
"birthday": 19840101,
"gender": 77,
"id": "did:iden3:privado:main:2Scn2RfosbkQDMQzQM5nCz3Nk5GnbzZCWzGCd3tc2G",
"pinCode": 110051,
"state": 452723500356,
"type": "AnonAadhaar"
},
"credentialStatus": {
"id": "https://issuer-node-core-api-demo.privado.id/v2/agent",
"revocationNonce": 954548273,
"type": "Iden3commRevocationStatusV1.0"
},
"issuer": "did:iden3:privado:main:2Si3eZUE6XetYsmU5dyUK2Cvaxr1EEe65vdv2BML4L",
"credentialSchema": {
"id": "https://gist.githubusercontent.com/ilya-korotya/601c46ca5a7487ae6e1946b4aab22b1d/raw/3aa88a8dd666253869fb0d86ae58d0ce3d040203/AnonAadhaar.json",
"type": "JsonSchema2023"
}
}`
w3cCred.ID = "" // It's random generated UUID
w3cCredJ, err := json.Marshal(w3cCred)
require.NoError(t, err)
require.JSONEq(t, expectedCredential, string(w3cCredJ))

t.Log(w3cCred)
}

0 comments on commit 449a21d

Please sign in to comment.