Skip to content

Commit

Permalink
feat: more tests
Browse files Browse the repository at this point in the history
Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
  • Loading branch information
caarlos0 committed Mar 8, 2022
1 parent 95d8d81 commit b88c42d
Show file tree
Hide file tree
Showing 7 changed files with 100 additions and 6 deletions.
38 changes: 38 additions & 0 deletions cmd/melt/id_rsa
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABlwAAAAdzc2gtcn
NhAAAAAwEAAQAAAYEAwMPF0FZGHqzTGPvwEfwYJLETB35G3WKyCZPad8F7BRJMmtwTaJVA
J0H1Ie+WVq3zLS/XxPWRJM3Y+4G6e39+jeWRnubMyn5UN/1jDgFb288+ZynKTkNv/d77Fb
fP8effdcP6rDnJuYXfzdWOi6YAdiWD4d2OP2H82T7EQXYBR7uDUU0C4vrn+zrlDR2FNzH9
hmqFs8LRPopVm+otllmr/Yb83i9HG/FYAapKucW/6BECpvMnoocN67IcuZaIk6qI9LwlBZ
AgSGI3bRFrvTzsByRkFmUG61xHX299ROw7NYfsa+w3/Wx5fJJi6JX58D+vdyuWCTqkjFXg
s5nGwAvwhUyEisukdI1IOTO7fNHkP43+S8nTgBleQDQFBgXoQYh9BhS2pvyybRchxu+TGd
/g20QH9NMr/0i52QDuf1m+SWqPdWewXRD66KZ8dRtdpqhJ71D6EfKfHCpwwBNzofdgwQEq
edC7gQmfmUP13jQLz/8BueeA8WSGUjvVghbdPiajAAAFiMfWRBDH1kQQAAAAB3NzaC1yc2
EAAAGBAMDDxdBWRh6s0xj78BH8GCSxEwd+Rt1isgmT2nfBewUSTJrcE2iVQCdB9SHvllat
8y0v18T1kSTN2PuBunt/fo3lkZ7mzMp+VDf9Yw4BW9vPPmcpyk5Db/3e+xW3z/Hn33XD+q
w5ybmF383VjoumAHYlg+Hdjj9h/Nk+xEF2AUe7g1FNAuL65/s65Q0dhTcx/YZqhbPC0T6K
VZvqLZZZq/2G/N4vRxvxWAGqSrnFv+gRAqbzJ6KHDeuyHLmWiJOqiPS8JQWQIEhiN20Ra7
087AckZBZlButcR19vfUTsOzWH7GvsN/1seXySYuiV+fA/r3crlgk6pIxV4LOZxsAL8IVM
hIrLpHSNSDkzu3zR5D+N/kvJ04AZXkA0BQYF6EGIfQYUtqb8sm0XIcbvkxnf4NtEB/TTK/
9IudkA7n9Zvklqj3VnsF0Q+uimfHUbXaaoSe9Q+hHynxwqcMATc6H3YMEBKnnQu4EJn5lD
9d40C8//AbnngPFkhlI71YIW3T4mowAAAAMBAAEAAAGBALAwAFUdFfghpMy4McRuc67Nvo
Ph0mm1NN92KX+983A+OpBsyLyVdk6rhZ+f+fx9/790dDYM8b3+++1dtJH+hTCy/LeNYu9O
KjIGwovhiBFPykzGsKd6EhmrvjkqicEkW2WrXCogo5WTnGzpXeGcN93FClbeh469RDtYmE
7wydjDthIQXqwSAwjo2sRzD/jUE1LReCVG0rPkAr2AfGxox7/xqpx1//u1Sugyuxwzd+Vn
7tGje72czYd5g7HJukml2vBbKvH0Lgg44WeWBZBctjbm7dEyvKVOV7qUMRToEwHPXel+nI
vWWj+NTY02d+SWsbyHj0DkpgvIlBxrw6RWSWOPvh9ZwTlJPOioZNcQo4aM2Zkc0PTWAPuE
5/Xq0SR1JmhoYvwk3ZUot6XaJz6iK2EzzvbXtg0WLeeQzFaOvpu4LpWsduj9AqxBqhS+QA
kJUt3mq8KToevM4c5y9BrsRsx/yOfS6hPusjG7AF+bRbwumNx//RtzsYgIkIePLsgNeQAA
AMEAjCyxQl2PC6PFJxlJU1+vX/mkL/86lEif3g2zfiOqbQla5YMMcjusgk3OAYJvgHU3bG
ETE0gtI4vo3nk4tkEEpa5IRbhWU01PL2ZuRSRKEp/gShKUeM5aARVcJ5QkigNYoEtluNpb
gv2y15oe53cU5REL+Z1W2rySmecqL5NLXXFszWdVv/5WCBshsriUEUazkTmSjfP8sWaSIs
KWc/zjJ2Ox/7RAcuSY1lfiqPKr/JkH/M4+gV4Rs3vXQ9VNY6sSAAAAwQD+r+ikJooPFMqG
UBhmR00eBjFkoVpUlck+mpS7IeFC6cR7f52jY+msGeXrxGZVDITPJiA85p/lTIH3DsG0Ur
OU/CsA6pWGjh4lt2gA6dv/+vx+5dTa8HKxLkpz9diD/hH9NNzOj9OSv4a2iQpyO4Lh5gCC
+IKFXFIpEzzzoT2nrEXCtMDgbFA7iiDE1VpwnLbrUEMNo7TqYxdYyI4VYBwz0yAjDBucax
nL9sWEx+lkx2ihziGmMz6/RD5xNTLkIucAAADBAMHCJlCWFs9MKXbibvNWgOOvecmC01Ad
Hu1fRpS8GVAAT8rL0jqIRMbcaV526MFs/0gKeEmtQPCiyvBBbQ8iYrBqvK8ml/Hli/75iz
7asQD76dIYHvbpdvpbd1DYxJK0NzR0U6lFC379fazwapcUYq2InJhAKLSqK8VR2TnJ9bvm
PL/RrrIEng4GQd+iJ6Sxy/QTnV+bJJwse/NoTlh2dJJqu+ex5K73yqMM+uZLUcLZLbdv0Y
P4PhvljF9gzG3i5QAAAA9jYXJsb3NAZGFya3N0YXIBAg==
-----END OPENSSH PRIVATE KEY-----
19 changes: 18 additions & 1 deletion cmd/melt/main_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,21 @@ func TestBackupRestoreKnownKey(t *testing.T) {
is.Equal(mnemonic, strings.Join(strings.Fields(expectedMnemonic), " "))
})

t.Run("backup file that does not exist", func(t *testing.T) {
_, err := backup("nope")
is.New(t).True(err != nil)
})

t.Run("backup invalid ssh key", func(t *testing.T) {
_, err := backup("testdata/not-a-key")
is.New(t).True(err != nil)
})

t.Run("backup key of another type", func(t *testing.T) {
_, err := backup("testdata/id_rsa")
is.New(t).True(err != nil)
})

t.Run("restore", func(t *testing.T) {
is := is.New(t)
path := filepath.Join(t.TempDir(), "key")
Expand Down Expand Up @@ -57,11 +72,13 @@ func TestMaybeFile(t *testing.T) {
func sha256sum(tb testing.TB, path string) string {
tb.Helper()
is := is.New(tb)

bts, err := os.ReadFile(path)
is.NoErr(err)
tb.Log(string(bts))

digest := sha256.New()
_, err = digest.Write(bts)
is.NoErr(err)

return hex.EncodeToString(digest.Sum(nil))
}
1 change: 0 additions & 1 deletion cmd/melt/testdata/id_ed25519.pub

This file was deleted.

38 changes: 38 additions & 0 deletions cmd/melt/testdata/id_rsa
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
-----BEGIN OPENSSH PRIVATE KEY-----
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
-----END OPENSSH PRIVATE KEY-----
Empty file added cmd/melt/testdata/not-a-key
Empty file.
6 changes: 5 additions & 1 deletion melt.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,11 @@ import (

// ToMnemonic takes a ed25519 private key and returns the list of words.
func ToMnemonic(key *ed25519.PrivateKey) (string, error) {
words, err := bip39.NewMnemonic(key.Seed())
return toMnemonic(key.Seed())
}

func toMnemonic(seed []byte) (string, error) {
words, err := bip39.NewMnemonic(seed)
if err != nil {
return "", fmt.Errorf("could not create a mnemonic set of words: %w", err)
}
Expand Down
4 changes: 1 addition & 3 deletions melt_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,8 @@ import (

func TestToMnemonic(t *testing.T) {
t.Run("invalid", func(t *testing.T) {
t.Skipf("this panics inside ed25519... not sure how to properly test an invalid key")
is := is.New(t)
key := ed25519.PrivateKey([]byte{})
w, err := ToMnemonic(&key)
w, err := toMnemonic([]byte{})
is.Equal(w, "")
is.True(err != nil)
})
Expand Down

0 comments on commit b88c42d

Please sign in to comment.