Unverified Commit 9698a72f authored by bigs's avatar bigs Committed by GitHub

Merge pull request #31 from libp2p/bug/remove-blowfish-support

Remove support for blowfish
parents 33faefeb 47983a3a
...@@ -182,7 +182,11 @@ type StretchedKeys struct { ...@@ -182,7 +182,11 @@ type StretchedKeys struct {
} }
// KeyStretcher returns a set of keys for each party by stretching the shared key. // KeyStretcher returns a set of keys for each party by stretching the shared key.
// (myIV, theirIV, myCipherKey, theirCipherKey, myMACKey, theirMACKey) // (myIV, theirIV, myCipherKey, theirCipherKey, myMACKey, theirMACKey).
// This function accepts the following cipher types:
// - AES-128
// - AES-256
// The function will panic upon receiving an unknown cipherType
func KeyStretcher(cipherType string, hashType string, secret []byte) (StretchedKeys, StretchedKeys) { func KeyStretcher(cipherType string, hashType string, secret []byte) (StretchedKeys, StretchedKeys) {
var cipherKeySize int var cipherKeySize int
var ivSize int var ivSize int
...@@ -193,10 +197,8 @@ func KeyStretcher(cipherType string, hashType string, secret []byte) (StretchedK ...@@ -193,10 +197,8 @@ func KeyStretcher(cipherType string, hashType string, secret []byte) (StretchedK
case "AES-256": case "AES-256":
ivSize = 16 ivSize = 16
cipherKeySize = 32 cipherKeySize = 32
case "Blowfish": default:
ivSize = 8 panic("Unrecognized cipher, programmer error?")
// Note: cypherKeySize arbitrarily selected, needs more thought
cipherKeySize = 32
} }
hmacKeySize := 20 hmacKeySize := 20
......
...@@ -171,3 +171,23 @@ func TestUnknownCurveErrors(t *testing.T) { ...@@ -171,3 +171,23 @@ func TestUnknownCurveErrors(t *testing.T) {
t.Fatal("expected invalid key type to error") t.Fatal("expected invalid key type to error")
} }
} }
func TestPanicOnUnknownCipherType(t *testing.T) {
passed := false
defer func() {
if !passed {
t.Fatal("expected known cipher and hash to succeed")
}
err := recover()
errStr, ok := err.(string)
if !ok {
t.Fatal("expected string in panic")
}
if errStr != "Unrecognized cipher, programmer error?" {
t.Fatal("expected \"Unrecognized cipher, programmer error?\"")
}
}()
KeyStretcher("AES-256", "SHA1", []byte("foo"))
passed = true
KeyStretcher("Fooba", "SHA1", []byte("foo"))
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment