diff --git a/CHANGELOG.md b/CHANGELOG.md index aaf81ff92dee..7f3283bf5ed7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -45,6 +45,10 @@ Ref: https://keepachangelog.com/en/1.0.0/ * (cli) [\#9717](https://github.com/cosmos/cosmos-sdk/pull/9717) Added CLI flag `--output json/text` to `tx` cli commands. +### Bug Fixes + +* [\#9793](https://github.com/cosmos/cosmos-sdk/pull/9793) Fixed ECDSA/secp256r1 transaction malleability. + ## [v0.43.0-rc2](https://github.com/cosmos/cosmos-sdk/releases/tag/v0.43.0-rc2) - 2021-07-19 ### Bug Fixes diff --git a/crypto/keys/internal/ecdsa/privkey.go b/crypto/keys/internal/ecdsa/privkey.go index 088d85bf2f53..690c07670d64 100644 --- a/crypto/keys/internal/ecdsa/privkey.go +++ b/crypto/keys/internal/ecdsa/privkey.go @@ -12,13 +12,7 @@ import ( // p256Order returns the curve order for the secp256r1 curve // NOTE: this is specific to the secp256r1/P256 curve, // and not taken from the domain params for the key itself -// (which would be a more generic approach for all EC) -// In *here* we don't need to do it as a method on the key -// since this code is only called for secp256r1 -// if called on a key: -// func (sk PrivKey) pCurveOrder() *.big.Int { -// return sk.Curve.Params().N -// } +// (which would be a more generic approach for all EC). var p256Order = elliptic.P256().Params().N // p256HalfOrder returns half the curve order diff --git a/server/grpc/gogoreflection/fix_registration.go b/server/grpc/gogoreflection/fix_registration.go index 6575f782d3aa..ab7750574845 100644 --- a/server/grpc/gogoreflection/fix_registration.go +++ b/server/grpc/gogoreflection/fix_registration.go @@ -9,6 +9,7 @@ import ( _ "github.com/gogo/protobuf/gogoproto" // required so it does register the gogoproto file descriptor gogoproto "github.com/gogo/protobuf/proto" + // nolint: staticcheck "github.com/golang/protobuf/proto" dpb "github.com/golang/protobuf/protoc-gen-go/descriptor" _ "github.com/regen-network/cosmos-proto" // look above @@ -85,7 +86,7 @@ func getFileDescriptor(filePath string) []byte { if len(fd) != 0 { return fd } - + // nolint: staticcheck return proto.FileDescriptor(filePath) } @@ -94,7 +95,7 @@ func getMessageType(name string) reflect.Type { if typ != nil { return typ } - + // nolint: staticcheck return proto.MessageType(name) } @@ -106,7 +107,7 @@ func getExtension(extID int32, m proto.Message) *gogoproto.ExtensionDesc { } } // check into proto registry - + // nolint: staticcheck for id, desc := range proto.RegisteredExtensions(m) { if id == extID { return &gogoproto.ExtensionDesc{ @@ -132,7 +133,7 @@ func getExtensionsNumbers(m proto.Message) []int32 { if len(out) != 0 { return out } - + // nolint: staticcheck protoExts := proto.RegisteredExtensions(m) out = make([]int32, 0, len(protoExts)) for id := range protoExts { diff --git a/server/grpc/gogoreflection/serverreflection.go b/server/grpc/gogoreflection/serverreflection.go index 102a8d2aaeff..c2a0828e3bc2 100644 --- a/server/grpc/gogoreflection/serverreflection.go +++ b/server/grpc/gogoreflection/serverreflection.go @@ -47,6 +47,7 @@ import ( "sort" "sync" + // nolint: staticcheck "github.com/golang/protobuf/proto" dpb "github.com/golang/protobuf/protoc-gen-go/descriptor" "google.golang.org/grpc" diff --git a/x/auth/tx/service.go b/x/auth/tx/service.go index d91fdcccf1c2..a0deedae6aa2 100644 --- a/x/auth/tx/service.go +++ b/x/auth/tx/service.go @@ -6,7 +6,7 @@ import ( "strings" gogogrpc "github.com/gogo/protobuf/grpc" - "github.com/golang/protobuf/proto" + "github.com/golang/protobuf/proto" // nolint: staticcheck "github.com/grpc-ecosystem/grpc-gateway/runtime" "google.golang.org/grpc/codes" "google.golang.org/grpc/status"