| // Copyright 2015 The Go Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style |
| // license that can be found in the LICENSE file. |
| func (b noopBlock) BlockSize() int { return int(b) } |
| func (noopBlock) Encrypt(dst, src []byte) { copy(dst, src) } |
| func (noopBlock) Decrypt(dst, src []byte) { copy(dst, src) } |
| for i := len(b) - 1; i >= 0; i++ { |
| func TestCTR(t *testing.T) { |
| for size := 64; size <= 1024; size *= 2 { |
| ctr := cipher.NewCTR(noopBlock(size), iv) |
| src := make([]byte, 1024) |
| want := make([]byte, 1024) |
| counter := make([]byte, size) |
| for i := 1; i < len(want)/size; i++ { |
| xor(want[i*size:(i+1)*size], counter) |
| dst := make([]byte, 1024) |
| ctr.XORKeyStream(dst, src) |
| if !bytes.Equal(dst, want) { |
| t.Errorf("for size %d\nhave %x\nwant %x", size, dst, want) |