| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 | package crypto_testimport (	"crypto/cipher"	"testing"	. "github.com/v2ray/v2ray-core/common/crypto")const benchSize = 1024 * 1024func benchmarkStream(b *testing.B, c cipher.Stream) {	b.SetBytes(benchSize)	input := make([]byte, benchSize)	output := make([]byte, benchSize)	b.ResetTimer()	for i := 0; i < b.N; i++ {		c.XORKeyStream(output, input)	}}func BenchmarkChaCha20(b *testing.B) {	key := make([]byte, 32)	nonce := make([]byte, 8)	c := NewChaCha20Stream(key, nonce)	benchmarkStream(b, c)}func BenchmarkChaCha20IETF(b *testing.B) {	key := make([]byte, 32)	nonce := make([]byte, 12)	c := NewChaCha20Stream(key, nonce)	benchmarkStream(b, c)}func BenchmarkAESEncryption(b *testing.B) {	key := make([]byte, 32)	iv := make([]byte, 16)	c := NewAesEncryptionStream(key, iv)	benchmarkStream(b, c)}func BenchmarkAESDecryption(b *testing.B) {	key := make([]byte, 32)	iv := make([]byte, 16)	c := NewAesDecryptionStream(key, iv)	benchmarkStream(b, c)}
 |