Derive from the mnemonic's words joined by single spaces (closes #49)
check / check (push) Successful in 2m40s
check / check (push) Successful in 2m40s
The seed is computed over the mnemonic string itself, and only its ends were trimmed, so the same words one per line, tab-separated or double-spaced passed the checksum but gave different keys. The words are now joined with single spaces before the checksum and the seed. A test shows each of those three spacings gives the README SSH vector, and the README section on giving the mnemonic says so. Model: opus-5-5
This commit is contained in:
@@ -47,6 +47,25 @@ func TestTheReadmeTestVectors(t *testing.T) {
|
||||
)
|
||||
}
|
||||
|
||||
func TestTheSpacingBetweenTheWordsDoesNotChangeTheKeys(t *testing.T) {
|
||||
words := strings.Fields(example())
|
||||
|
||||
for name, spaced := range map[string]string{
|
||||
"one word per line": strings.Join(words, "\n"),
|
||||
"double spaces": strings.Join(words, " "),
|
||||
"tabs": strings.Join(words, "\t"),
|
||||
} {
|
||||
t.Run(name, func(t *testing.T) {
|
||||
t.Setenv(mnemonic.Variable, spaced)
|
||||
|
||||
require.Equal(t,
|
||||
vectorZero+" keyfunc/ssh/0",
|
||||
strings.TrimSpace(run(t, "ssh", "pub", "-n", "0")),
|
||||
)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestTheCommentCanBeChosen(t *testing.T) {
|
||||
t.Setenv(mnemonic.Variable, example())
|
||||
|
||||
|
||||
Reference in New Issue
Block a user