Skip to content
This repository was archived by the owner on Jan 20, 2026. It is now read-only.

Commit 8a2b961

Browse files
authored
do no use legacy marshaling on key exports (#567)
## Describe your changes and provide context When we export the private keys, an extra prefix `e1b0f79b20` is being prepended to all of the keys e.g: ``` seid keys export ta9 --unarmored-hex --unsafe WARNING: The private key will be exported as an unarmored hexadecimal string. USE AT YOUR OWN RISK. Continue? [y/N]: y e1b0f79b20ae7f662971f762e3d594f03a5386c440023e04899a4fe155622301245d0b64ce ``` This change removes some of the older marshalling, that is responsible for the extra prefix. ## Testing performed to validate your change - unit tests - local seid
1 parent c45dd4a commit 8a2b961

3 files changed

Lines changed: 11 additions & 8 deletions

File tree

client/keys/import_test.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -63,12 +63,13 @@ func Test_runImportCmd(t *testing.T) {
6363
}
6464

6565
armoredKey := `-----BEGIN TENDERMINT PRIVATE KEY-----
66-
salt: A790BB721D1C094260EA84F5E5B72289
6766
kdf: bcrypt
67+
salt: 0A2203634D31B7BAFD938564E19A173A
68+
type: secp256k1
6869
69-
HbP+c6JmeJy9JXe2rbbF1QtCX1gLqGcDQPBXiCtFvP7/8wTZtVOPj8vREzhZ9ElO
70-
3P7YnrzPQThG0Q+ZnRSbl9MAS8uFAM4mqm5r/Ys=
71-
=f3l4
70+
OqpHBjYDPl5/jfm3LqzatY1Re19JvYvZ5fCAKGj/VUk1PZFj0bDjdYfr7CLDqduS
71+
mBtElE9j21pFaLf9gt8hVPTMDXWPtbIL
72+
=ctQV
7273
-----END TENDERMINT PRIVATE KEY-----
7374
`
7475

crypto/keyring/keyring.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"bufio"
55
"encoding/hex"
66
"fmt"
7+
"github.com/cosmos/cosmos-sdk/crypto/keys/secp256k1"
78
"io"
89
"io/ioutil"
910
"os"
@@ -249,7 +250,7 @@ func (ks keystore) ExportPrivateKeyObject(uid string) ([]byte, error) {
249250
if err != nil {
250251
return nil, err
251252
}
252-
priv = legacy.Cdc.MustMarshal(privKeys)
253+
priv = privKeys.Bytes()
253254
}
254255

255256
case ledgerInfo, offlineInfo, multiInfo:
@@ -286,10 +287,11 @@ func (ks keystore) ImportPrivKey(uid, armor, passphrase string) error {
286287
}
287288
privKey = typedKey
288289
} else {
289-
privKey, err = legacy.PrivKeyFromBytes(privKeyBytes)
290-
if err != nil {
290+
secpKey := &secp256k1.PrivKey{}
291+
if err := secpKey.UnmarshalAmino(privKeyBytes); err != nil {
291292
return err
292293
}
294+
privKey = secpKey
293295
}
294296

295297
_, err = ks.writeLocalKey(uid, privKey, hd.PubKeyType(algo))

crypto/keyring/keyring_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -895,7 +895,7 @@ func TestAltKeyring_UnsafeExportPrivKeyHex(t *testing.T) {
895895
privKey, err := unsafeKeyring.UnsafeExportPrivKeyHex(uid)
896896

897897
require.NoError(t, err)
898-
require.Equal(t, 74, len(privKey))
898+
require.Equal(t, 64, len(privKey))
899899

900900
_, err = hex.DecodeString(privKey)
901901
require.NoError(t, err)

0 commit comments

Comments
 (0)