X-Git-Url: http://www.git.cypherpunks.ru/?a=blobdiff_plain;f=src%2Fcypherpunks.ru%2Fgogost%2Fgost28147%2Fcfb.go;h=902d12dc85713332b9fbb90a656b976c88cd8658;hb=edd431beb779e95ccff14114367e2fe7bf5d4f7a;hp=b7b605007c7e19f7176e9629ad177b18b468f8a5;hpb=1f35967fa918c1653dfa787818ce4f3559283ff5;p=gogost.git diff --git a/src/cypherpunks.ru/gogost/gost28147/cfb.go b/src/cypherpunks.ru/gogost/gost28147/cfb.go index b7b6050..902d12d 100644 --- a/src/cypherpunks.ru/gogost/gost28147/cfb.go +++ b/src/cypherpunks.ru/gogost/gost28147/cfb.go @@ -25,6 +25,9 @@ func (c *Cipher) NewCFBEncrypter(iv []byte) *CFBEncrypter { if len(iv) != BlockSize { panic("iv length is not equal to blocksize") } + encrypter := CFBEncrypter{c: c, iv: make([]byte, BlockSize)} + copy(encrypter.iv, iv) + return &encrypter } func (c *CFBEncrypter) XORKeyStream(dst, src []byte) { @@ -54,6 +57,9 @@ func (c *Cipher) NewCFBDecrypter(iv []byte) *CFBDecrypter { if len(iv) != BlockSize { panic("iv length is not equal to blocksize") } + decrypter := CFBDecrypter{c: c, iv: make([]byte, BlockSize)} + copy(decrypter.iv, iv) + return &decrypter } func (c *CFBDecrypter) XORKeyStream(dst, src []byte) {