clash/transport/shadowsocks/shadowstream/old_chacha20.go

23 lines
441 B
Go
Raw Normal View History

2022-11-16 10:37:14 +00:00
package shadowstream
import (
"crypto/cipher"
"github.com/aead/chacha20/chacha"
)
type chacha20key []byte
func (k chacha20key) IVSize() int {
return chacha.NonceSize
}
func (k chacha20key) Encrypter(iv []byte) cipher.Stream {
c, _ := chacha.NewCipher(iv, k, 20)
return c
}
func (k chacha20key) Decrypter(iv []byte) cipher.Stream {
return k.Encrypter(iv)
}
func ChaCha20(key []byte) (Cipher, error) {
return chacha20key(key), nil
}