diff --git a/cwt/cwt_test.go b/cwt/cwt_test.go index 0ead697..cfa6341 100644 --- a/cwt/cwt_test.go +++ b/cwt/cwt_test.go @@ -35,7 +35,7 @@ func createTestProof() (string, error) { data := map[int]interface{}{ 1: "test-client", 3: "http://127.0.0.1:60413", - 6: "1706706927", + 6: 1706706927, 10: "kYcbCxvele1pn94YpKjD", } diff --git a/verifiable/cose.go b/verifiable/cose.go index e621f18..4577c94 100644 --- a/verifiable/cose.go +++ b/verifiable/cose.go @@ -23,10 +23,10 @@ func marshalCOSE( signatureAlg cose.Algorithm, signer cwt.ProofCreator, keyID string, -) ([]byte, error) { +) ([]byte, *cose.Sign1Message, error) { payload, err := cbor.Marshal(claims) if err != nil { - return nil, err + return nil, nil, err } msg := &cose.Sign1Message{ @@ -44,7 +44,7 @@ func marshalCOSE( signData, err := cwt2.GetProofValue(msg) if err != nil { - return nil, err + return nil, nil, err } signed, err := signer.SignCWT(cwt.SignParameters{ @@ -52,15 +52,15 @@ func marshalCOSE( CWTAlg: signatureAlg, }, signData) if err != nil { - return nil, err + return nil, nil, err } msg.Signature = signed final, err := cbor.Marshal(msg) if err != nil { - return nil, err + return nil, nil, err } - return final, nil + return final, msg, nil } diff --git a/verifiable/credential.go b/verifiable/credential.go index d780f50..839e86a 100644 --- a/verifiable/credential.go +++ b/verifiable/credential.go @@ -1756,7 +1756,7 @@ func (vc *Credential) CreateSignedCOSEVC( return nil, err } - msg, err := claims.MarshaCOSE(signatureAlg, proofCreator, keyID) + msgRaw, msg, err := claims.MarshaCOSE(signatureAlg, proofCreator, keyID) if err != nil { return nil, err } @@ -1766,7 +1766,8 @@ func (vc *Credential) CreateSignedCOSEVC( credentialContents: vc.Contents(), ldProofs: vc.ldProofs, CWTEnvelope: &CWTEnvelope{ - Sign1MessageRaw: msg, + Sign1MessageRaw: msgRaw, + Sign1MessageParsed: msg, }, }, nil } diff --git a/verifiable/credential_cwt.go b/verifiable/credential_cwt.go index bf99c54..08ac082 100644 --- a/verifiable/credential_cwt.go +++ b/verifiable/credential_cwt.go @@ -62,6 +62,6 @@ func (jcc *CWTCredClaims) MarshaCOSE( signatureAlg cose.Algorithm, signer cwt.ProofCreator, keyID string, -) ([]byte, error) { +) ([]byte, *cose.Sign1Message, error) { return marshalCOSE(jcc, signatureAlg, signer, keyID) } diff --git a/verifiable/presentation_cwt.go b/verifiable/presentation_cwt.go index f64142c..95a55f7 100644 --- a/verifiable/presentation_cwt.go +++ b/verifiable/presentation_cwt.go @@ -33,6 +33,6 @@ func (c *CWTPresClaims) MarshalCWT( signatureAlg cose.Algorithm, signer cwt.ProofCreator, keyID string, -) ([]byte, error) { +) ([]byte, *cose.Sign1Message, error) { return marshalCOSE(c, signatureAlg, signer, keyID) } diff --git a/verifiable/presentation_cwt_proof_test.go b/verifiable/presentation_cwt_proof_test.go index df0cdfd..ac3b0b3 100644 --- a/verifiable/presentation_cwt_proof_test.go +++ b/verifiable/presentation_cwt_proof_test.go @@ -10,6 +10,7 @@ import ( "fmt" "testing" + "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "github.com/trustbloc/kms-go/spi/kms" "github.com/veraison/go-cose" @@ -32,8 +33,9 @@ func TestParsePresentationFromCWS_EdDSA(t *testing.T) { cwtClaims, err := vp.CWTClaims([]string{}, false) require.NoError(t, err) - cwtBytes, err := cwtClaims.MarshalCWT(cose.AlgorithmEdDSA, proofCreator, holderKeyID) + cwtBytes, msg, err := cwtClaims.MarshalCWT(cose.AlgorithmEdDSA, proofCreator, holderKeyID) require.NoError(t, err) + assert.NotNil(t, msg) hexStr := hex.EncodeToString(cwtBytes) fmt.Println(hexStr)