diff --git a/uzi_vc_issuer/ura_issuer.go b/uzi_vc_issuer/ura_issuer.go index 26691e2..6d7b522 100644 --- a/uzi_vc_issuer/ura_issuer.go +++ b/uzi_vc_issuer/ura_issuer.go @@ -110,7 +110,14 @@ func BuildUraVerifiableCredential(chain []*x509.Certificate, signingKey *rsa.Pri if err != nil { return nil, err } - template, err := uraCredential(did, otherNameValue, serialNumber, subjectDID) + uzi, _, _, err := x509_cert.ParseUraFromOtherNameValue(otherNameValue) + if err != nil { + return nil, err + } + if uzi != serialNumber { + return nil, errors.New("serial number does not match UZI number") + } + template, err := uraCredential(did, otherNameValue, subjectDID) if err != nil { return nil, err } @@ -255,18 +262,11 @@ func convertHeaders(headers map[string]interface{}) (jws.Headers, error) { // uraCredential generates a VerifiableCredential for a given URA and UZI number, including the subject's DID. // It sets a 1-year expiration period from the current issuance date. -func uraCredential(did string, otherNameValue string, serialNumber string, subjectDID string) (*vc.VerifiableCredential, error) { +func uraCredential(issuer string, otherNameValue string, subjectDID string) (*vc.VerifiableCredential, error) { exp := time.Now().Add(time.Hour * 24 * 365 * 100) iat := time.Now() - uzi, ura, agb, err := x509_cert.ParseUraFromOtherNameValue(otherNameValue) - if err != nil { - return nil, err - } - if uzi != serialNumber { - return nil, errors.New("serial number does not match UZI number") - } return &vc.VerifiableCredential{ - Issuer: ssi.MustParseURI(did), + Issuer: ssi.MustParseURI(issuer), Context: []ssi.URI{ssi.MustParseURI("https://www.w3.org/2018/credentials/v1")}, Type: []ssi.URI{ssi.MustParseURI("VerifiableCredential"), ssi.MustParseURI("UziServerCertificateCredential")}, ID: func() *ssi.URI { id := ssi.MustParseURI(uuid.NewString()); return &id }(), @@ -275,10 +275,7 @@ func uraCredential(did string, otherNameValue string, serialNumber string, subje CredentialSubject: []interface{}{ map[string]interface{}{ "id": subjectDID, - "uraNumber": ura, - "otherName": uzi, - "uziNumber": serialNumber, - "agbNumber": agb, + "otherName": otherNameValue, }, }, }, nil