1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- package crypto_test
- import (
- "crypto/cipher"
- "testing"
- . "github.com/xtls/xray-core/common/crypto"
- )
- const benchSize = 1024 * 1024
- func 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)
- }
|