diff options
Diffstat (limited to 'src/pkg/crypto/rc4')
-rw-r--r-- | src/pkg/crypto/rc4/rc4.go | 30 | ||||
-rw-r--r-- | src/pkg/crypto/rc4/rc4_test.go | 20 |
2 files changed, 25 insertions, 25 deletions
diff --git a/src/pkg/crypto/rc4/rc4.go b/src/pkg/crypto/rc4/rc4.go index d965f827b..e47a01513 100644 --- a/src/pkg/crypto/rc4/rc4.go +++ b/src/pkg/crypto/rc4/rc4.go @@ -10,14 +10,14 @@ package rc4 // it a poor choice for new protocols. import ( - "os"; - "strconv"; + "os" + "strconv" ) // A Cipher is an instance of RC4 using a particular key. type Cipher struct { - s [256]byte; - i, j uint8; + s [256]byte + i, j uint8 } type KeySizeError int @@ -29,30 +29,30 @@ func (k KeySizeError) String() string { // NewCipher creates and returns a new Cipher. The key argument should be the // RC4 key, at least 1 byte and at most 256 bytes. func NewCipher(key []byte) (*Cipher, os.Error) { - k := len(key); + k := len(key) if k < 1 || k > 256 { return nil, KeySizeError(k) } - var c Cipher; + var c Cipher for i := 0; i < 256; i++ { c.s[i] = uint8(i) } - var j uint8 = 0; + var j uint8 = 0 for i := 0; i < 256; i++ { - j += c.s[i] + key[i%k]; - c.s[i], c.s[j] = c.s[j], c.s[i]; + j += c.s[i] + key[i%k] + c.s[i], c.s[j] = c.s[j], c.s[i] } - return &c, nil; + return &c, nil } // XORKeyStream will XOR each byte of the given buffer with a byte of the // generated keystream. func (c *Cipher) XORKeyStream(buf []byte) { for i := range buf { - c.i += 1; - c.j += c.s[c.i]; - c.s[c.i], c.s[c.j] = c.s[c.j], c.s[c.i]; - buf[i] ^= c.s[c.s[c.i]+c.s[c.j]]; + c.i += 1 + c.j += c.s[c.i] + c.s[c.i], c.s[c.j] = c.s[c.j], c.s[c.i] + buf[i] ^= c.s[c.s[c.i]+c.s[c.j]] } } @@ -62,5 +62,5 @@ func (c *Cipher) Reset() { for i := range c.s { c.s[i] = 0 } - c.i, c.j = 0, 0; + c.i, c.j = 0, 0 } diff --git a/src/pkg/crypto/rc4/rc4_test.go b/src/pkg/crypto/rc4/rc4_test.go index e0ca4a4ae..1d39b2f17 100644 --- a/src/pkg/crypto/rc4/rc4_test.go +++ b/src/pkg/crypto/rc4/rc4_test.go @@ -5,11 +5,11 @@ package rc4 import ( - "testing"; + "testing" ) type rc4Test struct { - key, keystream []byte; + key, keystream []byte } var golden = []rc4Test{ @@ -41,18 +41,18 @@ var golden = []rc4Test{ func TestGolden(t *testing.T) { for i := 0; i < len(golden); i++ { - g := golden[i]; - c, err := NewCipher(g.key); + g := golden[i] + c, err := NewCipher(g.key) if err != nil { - t.Errorf("Failed to create cipher at golden index %d", i); - return; + t.Errorf("Failed to create cipher at golden index %d", i) + return } - keystream := make([]byte, len(g.keystream)); - c.XORKeyStream(keystream); + keystream := make([]byte, len(g.keystream)) + c.XORKeyStream(keystream) for j, v := range keystream { if g.keystream[j] != v { - t.Errorf("Failed at golden index %d", i); - break; + t.Errorf("Failed at golden index %d", i) + break } } } |