From b607615b48f8a996093ff16be6519c57624d04ce Mon Sep 17 00:00:00 2001 From: Rootul Patel Date: Thu, 7 Mar 2024 17:27:39 -0500 Subject: [PATCH] fix: error if incorrect ledger public key --- crypto/keyring/keyring.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/crypto/keyring/keyring.go b/crypto/keyring/keyring.go index e46db74693b3..7f4c3a638a2b 100644 --- a/crypto/keyring/keyring.go +++ b/crypto/keyring/keyring.go @@ -634,6 +634,14 @@ func SignWithLedger(k *Record, msg []byte, signMode signing.SignMode) (sig []byt if err != nil { return nil, nil, err } + ledgerPubKey := priv.PubKey() + pubKey, err := k.GetPubKey() + if err != nil { + return nil, nil, err + } + if !pubKey.Equals(ledgerPubKey) { + return nil, nil, fmt.Errorf("the public key that the user attempted to sign with %v does not match the public key on the ledger device %v", pubKey.String(), ledgerPubKey.String()) + } switch signMode { case signing.SignMode_SIGN_MODE_TEXTUAL: