Skip to content

Commit

Permalink
fuzz: add crypto/hd.DerivePrivateKeyForPath (#9135)
Browse files Browse the repository at this point in the history
Updates #7921.
  • Loading branch information
odeke-em committed Jun 4, 2022
1 parent d993064 commit 96fcc5e
Show file tree
Hide file tree
Showing 112 changed files with 141 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*m /4
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*m /4
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*m      /4
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*1/1/0/11/0/1/0/1/0/1/0/0/0/0/0/0/0/0/0/1/0/0/1/0/1/0/1/0/0/0/0/0/1/1/0/0
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*1/1/0/11/0/1/0/1/0/1/0/0/0/0/0/0/0/0/0/0/1/1/0/0/130/0/0/0/0/1/0/0/0/1/0/0/10/0/0/0/0/1/0
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
I ald*1/7
1 change: 1 addition & 0 deletions fuzz/crypto/hd/DerivePrivateKeyForPath/corpus/1.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
I am become Death, the destroyer of worlds!*m/1'/2147483647'/1/0'/0/0
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*m                                    /9
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*m                                  /9
1 change: 1 addition & 0 deletions fuzz/crypto/hd/DerivePrivateKeyForPath/corpus/2.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
artwork blanket carpet cricket disorder disorder artwork blanket carpet cricket disorder disorder*1'/2147483647'/1/0'/0/0
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*m           /6
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* m/4
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*  m /4
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*m /4
1 change: 1 addition & 0 deletions fuzz/crypto/hd/DerivePrivateKeyForPath/corpus/3.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
carpet cricket disorder cricket cricket artwork carpet cricket disorder cricket cricket artwork*m/44'/0'/0'/0/0
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*m                                        /9
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*1'/8'/0'/1'/8'/8'
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*m                           /3
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*m                  /9
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
8CKrN2cPg/Fvyt0Xlp/DoCzjA0CQQDU
y2ptGsuSmgUtWj3NM9xuwYPm+Z/F84K6+ARYiZ6PYj013sovGKUFfYAqVXVlxtIX
qyUBnu3X9ps8ZfjLZO7BAkEAlT4R5Yl6cGhaJQYZHOde3JEMhNRcVFMO8dJDaFeo
f9Oeos0UUothgiDktdQHxdNEwLjQf7lJJBzV+5OtwswCWA==
-----END RSA TESTING KEY-----* m/4
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
der*1'/8/1/0'/0/0
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
s*1/3/0/1/0/0/0/0/0/1/1/0/0/0/0/0/0/0
1 change: 1 addition & 0 deletions fuzz/crypto/hd/DerivePrivateKeyForPath/corpus/4.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
wolf afraid artwork blanket carpet cricket wolf afraid artwork blanket carpet cricket*m/44'/118'/52'/1/41
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
wlardartwor blnkt capetcicket wolf afraid artwork blarket carpet cricket*44'/118'/52'/1
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*m    /4
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*m /4
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* m /4
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*m      /4
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*m/1*
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* m/4
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*1'/8'/0'/8'
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*  m/4
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
!*1/1/0/0/0
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*m          /6
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*  m/4
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*m /4
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
c*5/1/4
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*5/1////
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*1/1/0/1/0/1/0/0/0/0/0/1/1/0/0/0/0/0/0/0/0
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*1/1/0/0/0/0/0/1/0/1/0/0/0/0/0/1/1/0/0/0/0/0/0/0/0
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
der*1/8/11/4/0'/0/0
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* m /6
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*1'/8'/0'/1'/0'/5'/8'/8'/8'
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
der*1'/8/11/4/0'/0/0
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*m/1***
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*1/1/0/1/0/11/0/0/0/0/0/1/1/0/0/0/0/0/0/1/0/0/0/0/0/1/1/0/0/0/0/0/0/1/0/0/0/0/0/1/1/0/0/0/0/0/0/0/0
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*5/1//
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*1/1/0/11/0/1/0/1/0/1/0/0/0/0/0/0/0/0/0/1/0/0/1/0/1/0/1/0/0/0/0/0/1/1/0/1/0/0/0/0/0/1/1/0
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*  m/4
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*m/4/
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
!*1/1/0/0/0/0/0/0/0
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
I am ecome Death, the destroyer of worlds!*m/1'
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* m/4
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*  m/4
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*m /4
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*m/1*********************************************************************
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
s/0/*1/1/0/0/1/1/0
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*m/1**
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*5/1////////////////
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*1/1/0/1/0/0/0/0/0/1/1/0/0/0/0/0/0/0/0
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*m/1****************
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*m                  /3
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* m/4
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* m/4
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* m/4
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*m                                      /9
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*m /6
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* m/4
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*1'/8'/8'/0'/1'/0'/5'/8'/8'/8'/0'/1'/0'/5'/8'/8'/8'
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*1/1/0/1/0/1/0/0/0/0/0/1/1/0/0/0/5/0
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*m       /4
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*1/1/0/11/0/1/0/1/0/1/0/0/0/0/0/0/0/0/0/0/1/1/0/0/0/0/0/0/130/0/0/0/1/0/1/0/1/0/0/0/0/0/1/1/0/0/0/0/0/1/0/0/0
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
wolf af*1/1/0/0/0/0
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*m/1********
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
wlardartwor blnkt capetcicket wolf afraid artwork blanket carpet cricket*44'/118'/52'/1
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*m      /4
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*m     /4
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
s�*1/1/0/0
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
!*1/1/0/0/0/0/0
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*5/1////////
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
s*1/1/0/1/0/0/0/0/0/1/1/0/0/0/0/0/0/0/0
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* m /4
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
wlardarafraidket carpet cricket*44'/118'/52/1/4
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
de�*1/8/4/0/1
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*m    /4
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* m /4
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
s*1/1/0/0/0/0/0
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*1/81/1375175421/469062971/0
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*m   /4
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*m                                 /9
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
s!*1/1/0/0/0
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*1/1/0/1/0/1/0/1/0/0/0/0/0/1/1/0/0/0/0/0/0/1/0/0/0/0/0/1/1/0/0/0/0/0/0/0/0
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*111/0/11/0/1/0/1/0/1/0/0/0/0/0/0/0/0/0/1/1/0/0/0/0/0/0/1/0/0/0/0/0/1/0/1/0/1/0/0/0/0/1/1/0/0/0/0/0/0/100/0/1/0
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*m /4
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* m /6
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
de�*1/8/11/4/0
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
e!*1/0
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*1/1/0/11/0/1/0/1/0/1/0/0/0/0/0/0/0/0/0/0/1/1/0/0/130/0/0/0/0/1/0/4/0/1/0/0/1
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*  m/4
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*m  /4
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*1/1/0/11/0/1/0/1/0/1/0/0/0/0/0/0/0/0/0/1/1/0/0/0/0/0/0/130/0/0/0/0/1/0/1/0/1/0/0/0/0/0/1/1/0/0/0/0/0/0/1/0/0/0/0/0/1/1/0/0/0
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*1/1/0/11/0/1/0/1/0/1/0/0/0/0/0/0/0/0/0/1/1/0/0/0/0/0/0/1/0/0/0/0/0/1/0/1/0/1/0/0/0/0/0/1/1/0/0/0/0/0/0/1/0/0/0/0/0/1/1/0/0/0/0/0/0/0/0
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*1/1/0/1/0/0/0/0/0/1/0/1/0/0/0/0/0/1/1/0/0/0/0/01/0/0/0/0/0/0/0/0
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*m/1********************************
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*m           /4
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*1/1/0/1/0/11/0/0/0/0/0/1/1/0/0/0/0/0/0/1/0/0/0/0/0/1/1/0/0/0/0/0/0/0/0
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*m  /4
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
s*1/1/0/0/1/1/0/0/0/0
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*m                               /9
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
s*11/4/1/0
Binary file not shown.
27 changes: 27 additions & 0 deletions fuzz/crypto/hd/DerivePrivateKeyForPath/main.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package derive

import (
"bytes"

"github.com/cosmos/cosmos-sdk/crypto/hd"
bip39 "github.com/cosmos/go-bip39"
)

func mnemonicToSeed(mnemonic string) []byte {
return bip39.NewSeed(mnemonic, "" /* Default passphrase */)
}

func Fuzz(in []byte) int {
splits := bytes.Split(in, []byte("*"))
if len(splits) == 1 {
return -1
}
mnemonic, path := splits[0], splits[1]
seed := mnemonicToSeed(string(mnemonic))
master, ch := hd.ComputeMastersFromSeed(seed)
_, err := hd.DerivePrivateKeyForPath(master, ch, string(path))
if err == nil {
return 1
}
return -1
}

0 comments on commit 96fcc5e

Please sign in to comment.