From: Filippo Valsorda Date: Thu, 21 Nov 2024 12:30:47 +0000 (+0100) Subject: crypto/rsa: add BenchmarkParsePKCS8PrivateKey and BenchmarkGenerateKey X-Git-Tag: go1.24rc1~104 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=3b42687c56af9a7e52a8194e75c0dc14962b37b8;p=gostls13.git crypto/rsa: add BenchmarkParsePKCS8PrivateKey and BenchmarkGenerateKey BenchmarkParsePKCS8PrivateKey is a useful high-level measure of the performance of Validate + Precompute. Change-Id: Ibc32bf7006cd6669019dc3c697566614ee348d0f Reviewed-on: https://go-review.googlesource.com/c/go/+/630516 Reviewed-by: Russ Cox LUCI-TryBot-Result: Go LUCI Reviewed-by: Dmitri Shuralyov Auto-Submit: Filippo Valsorda --- diff --git a/src/crypto/rsa/rsa_test.go b/src/crypto/rsa/rsa_test.go index 99535128a5..dbf5e0a52a 100644 --- a/src/crypto/rsa/rsa_test.go +++ b/src/crypto/rsa/rsa_test.go @@ -436,7 +436,7 @@ F6rgN3QiyCA9J/1FluUCQQC5nX+PTU1FXx+6Ri2ZCi6EjEKMHr7gHcABhMinZYOt N59pra9UdVQw9jxCU9G7eMyb0jJkNACAuEwakX3gi27b -----END RSA TESTING KEY-----`)) -var test2048Key = parseKey(testingKey(`-----BEGIN TESTING KEY----- +var test2048KeyPEM = testingKey(`-----BEGIN TESTING KEY----- MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDNoyFUYeDuqw+k iyv47iBy/udbWmQdpbUZ8JobHv8uQrvL7sQN6l83teHgNJsXqtiLF3MC+K+XI6Dq hxUWfQwLip8WEnv7Jx/+53S8yp/CS4Jw86Q1bQHbZjFDpcoqSuwAxlegw18HNZCY @@ -463,7 +463,9 @@ mCSL4FGK02ImUNDsd0RVVFw51DRId4rmsuJYMK9NAoGAKlYdc4784ixTD2ZICIOC ZWPxPAyQUEA7EkuUhAX1bVNG6UJTYA8kmGcUCG4jPTgWzi00IyUUr8jK7efyU/zs qiJuVs1bia+flYIQpysMl1VzZh8gW1nkB4SVPm5l2wBvVJDIr9Mc6rueC/oVNkh2 fLVGuFoTVIu2bF0cWAjNNMg= ------END TESTING KEY-----`)) +-----END TESTING KEY-----`) + +var test2048Key = parseKey(test2048KeyPEM) var test3072Key = parseKey(testingKey(`-----BEGIN TESTING KEY----- MIIG/gIBADANBgkqhkiG9w0BAQEFAASCBugwggbkAgEAAoIBgQDJrvevql7G07LM @@ -713,6 +715,28 @@ func BenchmarkVerifyPSS(b *testing.B) { }) } +func BenchmarkGenerateKey(b *testing.B) { + b.Run("2048", func(b *testing.B) { + for i := 0; i < b.N; i++ { + if _, err := GenerateKey(rand.Reader, 2048); err != nil { + b.Fatal(err) + } + } + }) +} + +func BenchmarkParsePKCS8PrivateKey(b *testing.B) { + b.Run("2048", func(b *testing.B) { + p, _ := pem.Decode([]byte(test2048KeyPEM)) + b.ResetTimer() + for i := 0; i < b.N; i++ { + if _, err := x509.ParsePKCS8PrivateKey(p.Bytes); err != nil { + b.Fatal(err) + } + } + }) +} + type testEncryptOAEPMessage struct { in []byte seed []byte