diff --git a/crypto/keys/secp256r1/privkey.go b/crypto/keys/secp256r1/privkey.go index a0ae1b069bc0..3080dec21785 100644 --- a/crypto/keys/secp256r1/privkey.go +++ b/crypto/keys/secp256r1/privkey.go @@ -64,12 +64,12 @@ func (sk ecdsaSK) Marshal() ([]byte, error) { // MarshalJSON implements customProtobufType. func (sk ecdsaSK) MarshalJSON() ([]byte, error) { b64 := base64.StdEncoding.EncodeToString(sk.PrivKey.Bytes()) - return []byte(b64), nil + return []byte("\"" + b64 + "\""), nil } // UnmarshalJSON implements customProtobufType. func (sk *ecdsaSK) UnmarshalJSON(data []byte) error { - bz, err := base64.StdEncoding.DecodeString(string(data)) + bz, err := base64.StdEncoding.DecodeString(string(data[1 : len(data)-1])) if err != nil { return err } diff --git a/crypto/keys/secp256r1/pubkey.go b/crypto/keys/secp256r1/pubkey.go index c0d4cfc956b8..fea06f73f201 100644 --- a/crypto/keys/secp256r1/pubkey.go +++ b/crypto/keys/secp256r1/pubkey.go @@ -73,12 +73,13 @@ func (pk ecdsaPK) Marshal() ([]byte, error) { // MarshalJSON implements customProtobufType. func (pk ecdsaPK) MarshalJSON() ([]byte, error) { b64 := base64.StdEncoding.EncodeToString(pk.PubKey.Bytes()) - return []byte(b64), nil + return []byte("\"" + b64 + "\""), nil } // UnmarshalJSON implements customProtobufType. func (pk *ecdsaPK) UnmarshalJSON(data []byte) error { - bz, err := base64.StdEncoding.DecodeString(string(data)) + // the string is quoted so we need to remove them + bz, err := base64.StdEncoding.DecodeString(string(data[1 : len(data)-1])) if err != nil { return err }