mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-08-20 10:52:25 +00:00
Improve aes_gcm performance
* this modification does not change the encryption method before: ``` goos: darwin goarch: arm64 pkg: github.com/ethereum/go-ethereum/signer/storage BenchmarkEncryption BenchmarkEncryption-11 1306752 906.1 ns/op PASS ``` after: ``` goos: darwin goarch: arm64 pkg: github.com/ethereum/go-ethereum/signer/storage BenchmarkEncryption BenchmarkEncryption-11 2077677 545.8 ns/op PASS ```
This commit is contained in:
parent
248155eea0
commit
0346070ff6
2 changed files with 29 additions and 0 deletions
|
|
@ -22,6 +22,7 @@ import (
|
|||
"crypto/rand"
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"io"
|
||||
"os"
|
||||
|
||||
"github.com/ethereum/go-ethereum/log"
|
||||
|
|
|
|||
|
|
@ -160,3 +160,31 @@ func TestSwappedKeys(t *testing.T) {
|
|||
t.Errorf("double-swapped value should work fine")
|
||||
}
|
||||
}
|
||||
|
||||
func BenchmarkEncryption(b *testing.B) {
|
||||
storage := NewAESEncryptedStorage("test.json", []byte("x?^0^fIhNpSkTKbN"))
|
||||
|
||||
// Generate plaintext and additional data
|
||||
plaintext := []byte("example plaintext")
|
||||
additionalData := []byte("additional data")
|
||||
|
||||
b.ResetTimer()
|
||||
for i := 0; i < b.N; i++ {
|
||||
// Encrypt plaintext
|
||||
ciphertext, _, err := storage.encrypt(plaintext, additionalData)
|
||||
if err != nil {
|
||||
b.Fatalf("Encryption failed: %v", err)
|
||||
}
|
||||
|
||||
// Decrypt ciphertext
|
||||
decryptedPlaintext, err := storage.decrypt(ciphertext, additionalData)
|
||||
if err != nil {
|
||||
b.Fatalf("Decryption failed: %v", err)
|
||||
}
|
||||
|
||||
// Verify decryption
|
||||
if string(decryptedPlaintext) != string(plaintext) {
|
||||
b.Fatalf("Decryption failed: plaintext mismatch")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue