Commit Graph
194 Commits
Author SHA1 Message Date
seayyyy 63f386ee08 chore: fix some comments (#20119) 2024-04-22 06:43:19 +00:00
Marko 600c2468b8 chore: fix codeql issue (#20113) 2024-04-22 06:36:15 +00:00
ipangpang 1bd4351241 style: remove redundant import alias (#20109)
Signed-off-by: ipangpang <arronipangpang@gmail.com>
2024-04-21 19:03:43 +00:00
Marko 13cf11aa92 chore: codeql changes (#20091) 2024-04-20 14:23:39 +00:00
Facundo Medica d00f3c8fff fix: secp256r1 json missing quotes (#20060) 2024-04-17 08:17:15 +00:00
Facundo MedicaandMarko 037cf98f7e fix: Implement gogoproto customtype to secp256r1 keys (#20027)
Co-authored-by: Marko <marko@baricevic.me>
2024-04-12 21:23:05 +00:00
Ezequiel Raynaudo b9c8d60ea0 refactor: bump gogoproto (#19869) 2024-03-28 19:53:21 +00:00
Matt KocubinskiandMarko c807aaede8 refactor!: mv AddressCodecs aliases from runtime -> core (#19747)
Co-authored-by: Marko <marbar3778@yahoo.com>
2024-03-14 14:19:15 +00:00
Qt b2e8feb61f refactor(crypto): unify the error handling methods in the crypto package that are different from the project style (#19650) 2024-03-05 13:36:10 +00:00
QtandJulien Robert 83a7f0ee37 docs(log,crypto,depinject/appconfig): update docs (#19625)
Co-authored-by: Julien Robert <julien@rbrt.fr>
2024-03-04 10:18:04 +00:00
KeienWang 5617c10798 chore: Fixed typos in the 'crypto' folder. (#19240) 2024-01-25 15:11:57 +00:00
14e261eb73 chore: fix spelling errors (#18734)
Co-authored-by: github-merge-queue <github-merge-queue@users.noreply.github.com>
Co-authored-by: Julien Robert <julien@rbrt.fr>
2023-12-13 14:05:58 +00:00
8f0d5b15f0 chore: typos fixes by cosmos-sdk bot (#18689)
Co-authored-by: github-merge-queue <github-merge-queue@users.noreply.github.com>
Co-authored-by: Julien Robert <julien@rbrt.fr>
Co-authored-by: marbar3778 <marbar3778@yahoo.com>
2023-12-11 13:03:19 +00:00
112f6cbdae feat(accounts): use gogoproto API instead of protov2. (#18653)
Co-authored-by: unknown unknown <unknown@unknown>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2023-12-08 13:17:48 +00:00
Carlos Santiago Yanzon b6f9c705f7 feat: secp256k1 public key constant time (#18026)
Signed-off-by: bizk <santiago.yanzon1999@gmail.com>
2023-12-04 19:04:02 +00:00
Carlos Santiago Yanzon 346044afd0 feat: extra checks on signatures/pubkeys + check the signature first in antehandle (#18194) 2023-11-07 13:15:11 +00:00
Emmanuel T Odeke 05261cc46e refactor(x/auth): spin out go.mod (#18351) 2023-11-07 11:42:58 +00:00
Julián ToledanoandMarko 9c2f464c84 docs: cgo secp256k1 ldflags (#18357)
Co-authored-by: Marko <marbar3778@yahoo.com>
2023-11-03 17:07:43 +00:00
Julien Robert 5839c3a600 chore: bump golangci-lint to v1.54.2 (#17538) 2023-08-25 14:07:24 +00:00
Julien Robert 0c4f246d86 refactor(runtime): define address codec providers in runtime (#17037) 2023-07-18 12:41:26 +00:00
ruthishvitwit fd7e549a3c chore: enable errcheck linter (#16406) 2023-07-12 08:58:27 +00:00
Jacob Gadikian f0aec3f30d style: use thelper (#16777) 2023-07-03 13:33:05 +00:00
Jacob Gadikian 8d4ff7a19a style: bump golangci-lint (#16667) 2023-06-23 12:49:34 +00:00
Jacob Gadikian 6afece635c style: add gci linter (#16605) 2023-06-22 15:35:51 +00:00
Facundo MedicaandJulien Robert af3122aa6c feat!: Provide logger through depinject (#15818)
Co-authored-by: Julien Robert <julien@rbrt.fr>
2023-04-24 09:42:55 +00:00
Marko 90e2a2ae89 style: linting (#15704)
## Description

closing in on completion of linting

---

### Author Checklist

*All items are required. Please add a note to the item if the item is not applicable and
please add links to any relevant follow up issues.*

I have...

* [ ] included the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
* [ ] added `!` to the type prefix if API or client breaking change
* [ ] targeted the correct branch (see [PR Targeting](https://github.com/cosmos/cosmos-sdk/blob/main/CONTRIBUTING.md#pr-targeting))
* [ ] provided a link to the relevant issue or specification
* [ ] followed the guidelines for [building modules](https://github.com/cosmos/cosmos-sdk/blob/main/docs/docs/building-modules)
* [ ] included the necessary unit and integration [tests](https://github.com/cosmos/cosmos-sdk/blob/main/CONTRIBUTING.md#testing)
* [ ] added a changelog entry to `CHANGELOG.md`
* [ ] included comments for [documenting Go code](https://blog.golang.org/godoc)
* [ ] updated the relevant documentation or specification
* [ ] reviewed "Files changed" and left comments if necessary
* [ ] confirmed all CI checks have passed

### Reviewers Checklist

*All items are required. Please add a note if the item is not applicable and please add
your handle next to the items reviewed if you only reviewed selected items.*

I have...

* [ ] confirmed the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
* [ ] confirmed `!` in the type prefix if API or client breaking change
* [ ] confirmed all author checklist items have been addressed 
* [ ] reviewed state machine logic
* [ ] reviewed API design and naming
* [ ] reviewed documentation is accurate
* [ ] reviewed tests and test coverage
* [ ] manually tested (if applicable)
2023-04-06 23:25:23 +00:00
Jacob Gadikian a9546bfad0 style: apply any / all automated lint fixes (#15644) 2023-03-31 13:48:41 +02:00
Marko 51f3e70a12 style: more linting (#15618) 2023-03-30 13:00:18 +00:00
Marko c1ea84d583 style: more linting (#15616) 2023-03-30 12:05:50 +00:00
Marko 1f2875d445 style: gofumpt linting (#15605) 2023-03-30 06:27:38 +00:00
Jacob Gadikian 37ba88872d style: enable strict gofumpt (#15579) 2023-03-28 18:59:21 +00:00
Marko fd34d3f221 chore: fix int conversion lint (#15070)
## Description

this pr fixes a integer conversion lint issue. 

---

### Author Checklist

*All items are required. Please add a note to the item if the item is not applicable and
please add links to any relevant follow up issues.*

I have...

- [ ] included the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [ ] added `!` to the type prefix if API or client breaking change
- [ ] targeted the correct branch (see [PR Targeting](https://github.com/cosmos/cosmos-sdk/blob/main/CONTRIBUTING.md#pr-targeting))
- [ ] provided a link to the relevant issue or specification
- [ ] followed the guidelines for [building modules](https://github.com/cosmos/cosmos-sdk/blob/main/docs/docs/building-modules)
- [ ] included the necessary unit and integration [tests](https://github.com/cosmos/cosmos-sdk/blob/main/CONTRIBUTING.md#testing)
- [ ] added a changelog entry to `CHANGELOG.md`
- [ ] included comments for [documenting Go code](https://blog.golang.org/godoc)
- [ ] updated the relevant documentation or specification
- [ ] reviewed "Files changed" and left comments if necessary
- [ ] confirmed all CI checks have passed

### Reviewers Checklist

*All items are required. Please add a note if the item is not applicable and please add
your handle next to the items reviewed if you only reviewed selected items.*

I have...

- [ ] confirmed the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [ ] confirmed `!` in the type prefix if API or client breaking change
- [ ] confirmed all author checklist items have been addressed 
- [ ] reviewed state machine logic
- [ ] reviewed API design and naming
- [ ] reviewed documentation is accurate
- [ ] reviewed tests and test coverage
- [ ] manually tested (if applicable)
2023-02-20 12:36:51 +00:00
Facundo Medica 4a6a1e3cb8 refactor: fix lint issues + gofumpt (#15062) 2023-02-19 10:31:49 +00:00
Marko a28ba7b148 chore: use secp directly instead of wrapper (#15018) 2023-02-13 22:05:38 +00:00
Julien Robert 4f13b5b319 refactor!: extract AppStateFn out of simapp (#14977) 2023-02-09 14:16:07 +00:00
Julián Toledano 0081563092 test: add more secp256k1 test vectors (#14756) 2023-02-09 12:51:34 +00:00
Julien Robert c17c3caab8 refactor: rename commands to match consensus engine name (#14956) 2023-02-08 20:09:28 +00:00
Julien Robert 80dd55f79b refactor: rename to CometBFT (#14914) 2023-02-06 18:11:14 +00:00
Julien Robert 41a3dfeced refactor!: migrate Cosmos SDK to CometBFT (#14897) 2023-02-05 14:51:33 +01:00
Julien Robert 44fbb0df9c refactor: reduce tendermint deps (#14616) 2023-01-18 11:28:18 +01:00
Jacob Gadikian be8c5a09c2 chore: lint tests (#14268) 2022-12-18 23:48:31 +00:00
Julián ToledanoandEzequiel Raynaudo 6188f6e798 refactor!: key presentation outside keyring (#14151)
* refactor: move key presentation to client/keys

* refactor: move key presentation to client/keys

* update: changelog

Co-authored-by: Ezequiel Raynaudo <raynaudo.ee@gmail.com>
2022-12-07 10:22:19 +00:00
Jacob Gadikian 679c5d6086 chore: run markdownlint on the whole repository (#14106) 2022-11-30 19:51:26 +00:00
Facundo Medica 644f906966 refactor: (secp256k1) cleaner way to check for lower S form signatures (#13884)
## Description

TLDR; check for `s.IsOverHalfOrder()` with less steps

Before this PR:

```go
        // parse the signature:
	signature := signatureFromBytes(sigStr)
	// Reject malleable signatures. libsecp256k1 does this check but btcec doesn't.
	// see: https://github.com/ethereum/go-ethereum/blob/f9401ae011ddf7f8d2d95020b7446c17f8d98dc1/crypto/signature_nocgo.go#L90-L93
	// Serialize() would negate S value if it is over half order.
	// Hence, if the signature is different after Serialize() if should be rejected.
	modifiedSignature, parseErr := ecdsa.ParseDERSignature(signature.Serialize())
	if parseErr != nil {
		return false
	}
	if !signature.IsEqual(modifiedSignature) {
		return false
	}
	
```

It's serializing the signature into a new variable and then comparing if both are equal. Inside `Serialize()` we have:

https://github.com/decred/dcrd/blob/5d537320a0fe2357daf444cc12c62680579689da/dcrec/secp256k1/ecdsa/signature.go#L88-L95

```go
	// Ensure the S component of the signature is less than or equal to the half
	// order of the group because both S and its negation are valid signatures
	// modulo the order, so this forces a consistent choice to reduce signature
	// malleability.
	sigS := new(secp256k1.ModNScalar).Set(&sig.s)
	if sigS.IsOverHalfOrder() {
		sigS.Negate()
	}
```

Before btcec update to v2:

Until btcec update this was simpler because S was exported in the signature: https://github.com/cosmos/cosmos-sdk/commit/ed9cd41396815bd236770f73bb30e083e63e8b64#diff-30a6b594e157a12a28bf8a26f65ab4de1dc3c65c8419e5756f0b9c25d9ce1a93L46

```go
if signature.S.Cmp(secp256k1halfN) > 0 {
    return false
}
```


Closes: #XXXX



---

### Author Checklist

*All items are required. Please add a note to the item if the item is not applicable and
please add links to any relevant follow up issues.*

I have...

- [ ] included the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [ ] added `!` to the type prefix if API or client breaking change
- [ ] targeted the correct branch (see [PR Targeting](https://github.com/cosmos/cosmos-sdk/blob/main/CONTRIBUTING.md#pr-targeting))
- [ ] provided a link to the relevant issue or specification
- [ ] followed the guidelines for [building modules](https://github.com/cosmos/cosmos-sdk/blob/main/docs/building-modules)
- [ ] included the necessary unit and integration [tests](https://github.com/cosmos/cosmos-sdk/blob/main/CONTRIBUTING.md#testing)
- [ ] added a changelog entry to `CHANGELOG.md`
- [ ] included comments for [documenting Go code](https://blog.golang.org/godoc)
- [ ] updated the relevant documentation or specification
- [ ] reviewed "Files changed" and left comments if necessary
- [ ] confirmed all CI checks have passed

### Reviewers Checklist

*All items are required. Please add a note if the item is not applicable and please add
your handle next to the items reviewed if you only reviewed selected items.*

I have...

- [ ] confirmed the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [ ] confirmed `!` in the type prefix if API or client breaking change
- [ ] confirmed all author checklist items have been addressed 
- [ ] reviewed state machine logic
- [ ] reviewed API design and naming
- [ ] reviewed documentation is accurate
- [ ] reviewed tests and test coverage
- [ ] manually tested (if applicable)
2022-11-23 17:16:00 +00:00
Julien Robert d9bc5acac8 fix: .String() panics when pubkey is set on a BaseAccount (#13838) 2022-11-14 14:56:18 +00:00
AmauryandAaron Craelius b49f948b36 feat: Add proto annotations for Amino JSON (#13501)
* add legacy_amino_name

* make-proto-gen

* remove useless omitempty

* add annotations

* Add proto annotations

* Add more annotations

* update cosmos-proto

* Add message scalar?

* Add comments

* Fix comment

* lint proto files

* proto-gen

* go mod tidy

* Add multisig encoding

* Add field name

* Format proto

* proto-gen

* Update proto/cosmos/msg/v1/msg.proto

Co-authored-by: Aaron Craelius <aaron@regen.network>

* Add dont_omitempty whenever we have nullable=false

* proto-gen

* Remove problematic annotations

* put legacy_amino in subpackage

* proto-gen

* Fixes

* legacy_amino.v1

* add non-working proto

* Generate in separate package

* Remove `cosmos.msg` prefix

* make proto-gen

* remove v1 too

* make proto-format

* Add field option

* format

* proto-gen

* Use underscores

* update legacy_amino -> amino

* update to `key_field`

* make proto-format

* make proto-gen

Co-authored-by: Aaron Craelius <aaron@regen.network>
2022-11-07 22:51:51 +00:00
Elias NaurandMarko ed9cd41396 chore(crypto): update btcec to v2 (#13513)
Similar to Tendermint's PR,

https://github.com/tendermint/tendermint/pull/9250

Note that crypto/ledger is not updated in this PR, because if its
dependency on the R and S values being exposed by ParseDERSignature.

Updates #13423

Signed-off-by: Elias Naur <elias@orijtech.com>

Signed-off-by: Elias Naur <elias@orijtech.com>
Co-authored-by: Marko <marbar3778@yahoo.com>
2022-10-17 16:33:43 +02:00
Emmanuel T Odeke 641ab20415 fix: crypto/keys/secp246k1/*: add +build cgo guard to avoid failure with CGO_ENABLED=0 (#13267)
Fixes an oversight that hadn't been considered when the build
guards were added to the other files in the same directory, that
this test requires linking with code that hooks into cgo. This change
adds the build guard

    +build cgo

Fixes #13266
2022-09-14 01:06:44 +02:00
Julien Robert 6d0ef15b0a refactor: migrate to cosmos/gogoproto (#13070) 2022-09-08 17:27:48 +00:00
Marko e09516f479 chore: bump tendermint version (#13148) 2022-09-05 07:39:12 +00:00