Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add different certificate signature algorithms to benchmarks #4080

Merged
merged 16 commits into from
Jul 25, 2023
Merged
2 changes: 1 addition & 1 deletion bindings/rust/bench/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ To remove external factors, we use custom IO with our benchmarks, bypassing the

### Certificate generation

All certs are stored in `certs/` and can be regenerated using `certs/generate_certs.sh`. There is one root cert that directly signs the server and client certs that are used in benchmarking. Currently, we use ECDSA with `secp384r1`.
All certs are stored in `certs/` and can be regenerated using `certs/generate_certs.sh`. There is one root cert that directly signs the server and client certs that are used in benchmarking. We currently bench `P-384`, `RSA-2048`, and `RSA-4096` certs.

### Negotiation parameters

Expand Down
32 changes: 15 additions & 17 deletions bindings/rust/bench/benches/handshake.rs
Original file line number Diff line number Diff line change
@@ -1,32 +1,27 @@
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0

use std::any::type_name;

use bench::{
CipherSuite::*,
CryptoConfig,
ECGroup::{self, *},
OpenSslHarness, RustlsHarness, S2NHarness, TlsBenchHarness,
OpenSslHarness, RustlsHarness, S2NHarness,
SigType::{self, *},
TlsBenchHarness,
};
use criterion::{
criterion_group, criterion_main, measurement::WallTime, BatchSize, BenchmarkGroup, Criterion,
};
use std::any::type_name;

pub fn bench_handshake_key_exchange(c: &mut Criterion) {
pub fn bench_handshake_params(c: &mut Criterion) {
fn bench_handshake_for_library<T: TlsBenchHarness>(
bench_group: &mut BenchmarkGroup<WallTime>,
ec_group: &ECGroup,
sig_type: &SigType,
) {
bench_group.bench_function(type_name::<T>(), |b| {
b.iter_batched_ref(
|| {
T::new(&CryptoConfig {
cipher_suite: AES_128_GCM_SHA256,
ec_group: *ec_group,
})
.unwrap()
},
|| T::new(&CryptoConfig::new(&Default::default(), ec_group, sig_type)).unwrap(),
|harness| {
harness.handshake().unwrap();
},
Expand All @@ -36,12 +31,15 @@ pub fn bench_handshake_key_exchange(c: &mut Criterion) {
}

for ec_group in [SECP256R1, X25519] {
let mut bench_group = c.benchmark_group(format!("handshake-{:?}", ec_group));
bench_handshake_for_library::<S2NHarness>(&mut bench_group, &ec_group);
bench_handshake_for_library::<RustlsHarness>(&mut bench_group, &ec_group);
bench_handshake_for_library::<OpenSslHarness>(&mut bench_group, &ec_group);
for sig_type in [Rsa2048, Rsa4096, Ec384] {
let mut bench_group =
c.benchmark_group(format!("handshake-{:?}-{:?}", ec_group, sig_type));
bench_handshake_for_library::<S2NHarness>(&mut bench_group, &ec_group, &sig_type);
bench_handshake_for_library::<RustlsHarness>(&mut bench_group, &ec_group, &sig_type);
bench_handshake_for_library::<OpenSslHarness>(&mut bench_group, &ec_group, &sig_type);
}
}
}

criterion_group!(benches, bench_handshake_key_exchange);
criterion_group!(benches, bench_handshake_params);
criterion_main!(benches);
22 changes: 0 additions & 22 deletions bindings/rust/bench/certs/ca-cert.pem

This file was deleted.

22 changes: 0 additions & 22 deletions bindings/rust/bench/certs/client-cert.pem

This file was deleted.

6 changes: 0 additions & 6 deletions bindings/rust/bench/certs/client-key.pem

This file was deleted.

15 changes: 15 additions & 0 deletions bindings/rust/bench/certs/ec384/ca-cert.pem
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
-----BEGIN CERTIFICATE-----
MIICTjCCAdQCFCI17v5gV4ghuGIAMZ/4URS3uOyMMAoGCCqGSM49BAMCMIGJMQsw
CQYDVQQGEwJKUDEOMAwGA1UECAwFQ2hpYmExEzARBgNVBAcMCkNoaWJhIENpdHkx
GDAWBgNVBAoMD1Rlc3NpZXItQXNocG9vbDEYMBYGA1UEAwwPZGV2ZWxvcC5sb2Nh
bGNhMSEwHwYJKoZIhvcNAQkBFhJjYUBkZXZlbG9wLmxvY2FsY2EwIBcNMjMwNjIw
MTc0OTMwWhgPMjIwMjExMjUxNzQ5MzBaMIGJMQswCQYDVQQGEwJKUDEOMAwGA1UE
CAwFQ2hpYmExEzARBgNVBAcMCkNoaWJhIENpdHkxGDAWBgNVBAoMD1Rlc3NpZXIt
QXNocG9vbDEYMBYGA1UEAwwPZGV2ZWxvcC5sb2NhbGNhMSEwHwYJKoZIhvcNAQkB
FhJjYUBkZXZlbG9wLmxvY2FsY2EwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQBa11l
hdlPfuEwoEDyQVjMAfwjBvNYPiHoSzFgcTvEmjqEnTC+ZaOnPb+gJ+mk1ZUgmXpG
woEGhY+Z9IIiaZWfW9NRrPUabh5SlUh+t76NUNX7xzukGHUlTJNBQmD34pAwCgYI
KoZIzj0EAwIDaAAwZQIxAOCrMxHjK4UFKK+oaalbkmf8JbaOTOj9dk2DG7ciGzZ2
g+sqQq6zyfxoiOCwnGwD6AIwQ4AjIC5LzRUnqVtrbdg4snB3sim8FfhKXW9Rrrhq
EbUxsAjxGKiCVmTr0UyXFiB9
-----END CERTIFICATE-----
19 changes: 19 additions & 0 deletions bindings/rust/bench/certs/ec384/client-cert.pem
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
-----BEGIN CERTIFICATE-----
MIIDGzCCAqCgAwIBAgIUPqC8apGPfAOaZwdkr6H5cPXH9oUwCgYIKoZIzj0EAwIw
gYkxCzAJBgNVBAYTAkpQMQ4wDAYDVQQIDAVDaGliYTETMBEGA1UEBwwKQ2hpYmEg
Q2l0eTEYMBYGA1UECgwPVGVzc2llci1Bc2hwb29sMRgwFgYDVQQDDA9kZXZlbG9w
LmxvY2FsY2ExITAfBgkqhkiG9w0BCQEWEmNhQGRldmVsb3AubG9jYWxjYTAgFw0y
MzA2MjAxNzQ5MzBaGA8yMjAyMTEyNTE3NDkzMFowYDELMAkGA1UEBhMCVVMxEzAR
BgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxDzANBgNVBAoMBmNs
aWVudDEZMBcGA1UEAwwQY2xpZW50LmxvY2FsaG9zdDB2MBAGByqGSM49AgEGBSuB
BAAiA2IABMX8WCuYv5PV74bCbwe0V+N59uKScDBNBvKsaDfe0Zzw2zKXf1pEhbRi
oAyxadH88Uw1uozMbif35qUeiJqt07/LMKqFbTSYlUvWAvLRm5wpiv9Py8DWvsji
0WSJGibcMKOB7jCB6zAUBgNVHREEDTALgglsb2NhbGhvc3QwHQYDVR0OBBYEFE1l
y7Io0670fI/dz2V6UBEyV/x5MIGzBgNVHSMEgaswgaihgY+kgYwwgYkxCzAJBgNV
BAYTAkpQMQ4wDAYDVQQIDAVDaGliYTETMBEGA1UEBwwKQ2hpYmEgQ2l0eTEYMBYG
A1UECgwPVGVzc2llci1Bc2hwb29sMRgwFgYDVQQDDA9kZXZlbG9wLmxvY2FsY2Ex
ITAfBgkqhkiG9w0BCQEWEmNhQGRldmVsb3AubG9jYWxjYYIUIjXu/mBXiCG4YgAx
n/hRFLe47IwwCgYIKoZIzj0EAwIDaQAwZgIxAJ5fuUU5B1F5HYnV5KdNIkU0vQMt
1lk4c+Vh/L9X3nHUrtj5aqQ3yttKNFwS28PxvwIxAPxrzMnGMxYYB4ujMmhj/CZz
vsg2/wx0vPwPfHSGmaWOPdzX27n2iZyvNlLjGVaEVw==
-----END CERTIFICATE-----
34 changes: 34 additions & 0 deletions bindings/rust/bench/certs/ec384/client-fullchain.pem
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
-----BEGIN CERTIFICATE-----
MIIDGzCCAqCgAwIBAgIUPqC8apGPfAOaZwdkr6H5cPXH9oUwCgYIKoZIzj0EAwIw
gYkxCzAJBgNVBAYTAkpQMQ4wDAYDVQQIDAVDaGliYTETMBEGA1UEBwwKQ2hpYmEg
Q2l0eTEYMBYGA1UECgwPVGVzc2llci1Bc2hwb29sMRgwFgYDVQQDDA9kZXZlbG9w
LmxvY2FsY2ExITAfBgkqhkiG9w0BCQEWEmNhQGRldmVsb3AubG9jYWxjYTAgFw0y
MzA2MjAxNzQ5MzBaGA8yMjAyMTEyNTE3NDkzMFowYDELMAkGA1UEBhMCVVMxEzAR
BgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxDzANBgNVBAoMBmNs
aWVudDEZMBcGA1UEAwwQY2xpZW50LmxvY2FsaG9zdDB2MBAGByqGSM49AgEGBSuB
BAAiA2IABMX8WCuYv5PV74bCbwe0V+N59uKScDBNBvKsaDfe0Zzw2zKXf1pEhbRi
oAyxadH88Uw1uozMbif35qUeiJqt07/LMKqFbTSYlUvWAvLRm5wpiv9Py8DWvsji
0WSJGibcMKOB7jCB6zAUBgNVHREEDTALgglsb2NhbGhvc3QwHQYDVR0OBBYEFE1l
y7Io0670fI/dz2V6UBEyV/x5MIGzBgNVHSMEgaswgaihgY+kgYwwgYkxCzAJBgNV
BAYTAkpQMQ4wDAYDVQQIDAVDaGliYTETMBEGA1UEBwwKQ2hpYmEgQ2l0eTEYMBYG
A1UECgwPVGVzc2llci1Bc2hwb29sMRgwFgYDVQQDDA9kZXZlbG9wLmxvY2FsY2Ex
ITAfBgkqhkiG9w0BCQEWEmNhQGRldmVsb3AubG9jYWxjYYIUIjXu/mBXiCG4YgAx
n/hRFLe47IwwCgYIKoZIzj0EAwIDaQAwZgIxAJ5fuUU5B1F5HYnV5KdNIkU0vQMt
1lk4c+Vh/L9X3nHUrtj5aqQ3yttKNFwS28PxvwIxAPxrzMnGMxYYB4ujMmhj/CZz
vsg2/wx0vPwPfHSGmaWOPdzX27n2iZyvNlLjGVaEVw==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIICTjCCAdQCFCI17v5gV4ghuGIAMZ/4URS3uOyMMAoGCCqGSM49BAMCMIGJMQsw
CQYDVQQGEwJKUDEOMAwGA1UECAwFQ2hpYmExEzARBgNVBAcMCkNoaWJhIENpdHkx
GDAWBgNVBAoMD1Rlc3NpZXItQXNocG9vbDEYMBYGA1UEAwwPZGV2ZWxvcC5sb2Nh
bGNhMSEwHwYJKoZIhvcNAQkBFhJjYUBkZXZlbG9wLmxvY2FsY2EwIBcNMjMwNjIw
MTc0OTMwWhgPMjIwMjExMjUxNzQ5MzBaMIGJMQswCQYDVQQGEwJKUDEOMAwGA1UE
CAwFQ2hpYmExEzARBgNVBAcMCkNoaWJhIENpdHkxGDAWBgNVBAoMD1Rlc3NpZXIt
QXNocG9vbDEYMBYGA1UEAwwPZGV2ZWxvcC5sb2NhbGNhMSEwHwYJKoZIhvcNAQkB
FhJjYUBkZXZlbG9wLmxvY2FsY2EwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQBa11l
hdlPfuEwoEDyQVjMAfwjBvNYPiHoSzFgcTvEmjqEnTC+ZaOnPb+gJ+mk1ZUgmXpG
woEGhY+Z9IIiaZWfW9NRrPUabh5SlUh+t76NUNX7xzukGHUlTJNBQmD34pAwCgYI
KoZIzj0EAwIDaAAwZQIxAOCrMxHjK4UFKK+oaalbkmf8JbaOTOj9dk2DG7ciGzZ2
g+sqQq6zyfxoiOCwnGwD6AIwQ4AjIC5LzRUnqVtrbdg4snB3sim8FfhKXW9Rrrhq
EbUxsAjxGKiCVmTr0UyXFiB9
-----END CERTIFICATE-----
6 changes: 6 additions & 0 deletions bindings/rust/bench/certs/ec384/client-key.pem
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
-----BEGIN PRIVATE KEY-----
MIG2AgEAMBAGByqGSM49AgEGBSuBBAAiBIGeMIGbAgEBBDBRe7cOunVcaEtuUqVO
frBwYT5ENPaOFHNRSaOK9fmpG/0j5BRRn8JD8CqBo0gHMLuhZANiAATF/FgrmL+T
1e+Gwm8HtFfjefbiknAwTQbyrGg33tGc8Nsyl39aRIW0YqAMsWnR/PFMNbqMzG4n
9+alHoiardO/yzCqhW00mJVL1gLy0ZucKYr/T8vA1r7I4tFkiRom3DA=
-----END PRIVATE KEY-----
19 changes: 19 additions & 0 deletions bindings/rust/bench/certs/ec384/server-cert.pem
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
-----BEGIN CERTIFICATE-----
MIIDGjCCAqCgAwIBAgIUQ0cVVrzSnGbwpFh/2nAbu7yMsk4wCgYIKoZIzj0EAwIw
gYkxCzAJBgNVBAYTAkpQMQ4wDAYDVQQIDAVDaGliYTETMBEGA1UEBwwKQ2hpYmEg
Q2l0eTEYMBYGA1UECgwPVGVzc2llci1Bc2hwb29sMRgwFgYDVQQDDA9kZXZlbG9w
LmxvY2FsY2ExITAfBgkqhkiG9w0BCQEWEmNhQGRldmVsb3AubG9jYWxjYTAgFw0y
MzA2MjAxNzQ5MzBaGA8yMjAyMTEyNTE3NDkzMFowYDELMAkGA1UEBhMCVVMxEzAR
BgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxDzANBgNVBAoMBnNl
cnZlcjEZMBcGA1UEAwwQc2VydmVyLmxvY2FsaG9zdDB2MBAGByqGSM49AgEGBSuB
BAAiA2IABJC2pUj/7+bwIS1d2094qztfgCUbFac5dnnDNmiRDFy1pP4SQSrjFo3v
RJe0eke5VXcOw4i5AuqKkgyr8xZybeb+OoflrHd2VCpf8aCqLLPo5jYg4QAkrgXp
7AtN7dWlnaOB7jCB6zAUBgNVHREEDTALgglsb2NhbGhvc3QwHQYDVR0OBBYEFDQD
ydDtN4aSFAvuuWMZU2LKcZufMIGzBgNVHSMEgaswgaihgY+kgYwwgYkxCzAJBgNV
BAYTAkpQMQ4wDAYDVQQIDAVDaGliYTETMBEGA1UEBwwKQ2hpYmEgQ2l0eTEYMBYG
A1UECgwPVGVzc2llci1Bc2hwb29sMRgwFgYDVQQDDA9kZXZlbG9wLmxvY2FsY2Ex
ITAfBgkqhkiG9w0BCQEWEmNhQGRldmVsb3AubG9jYWxjYYIUIjXu/mBXiCG4YgAx
n/hRFLe47IwwCgYIKoZIzj0EAwIDaAAwZQIwKWZ+rvNGNBzD2aBU+Q3hlkh5rpor
ZWSYcQ9Q+Wl7CvftZjLC5irD8qpMCQ1TkWCxAjEAhbzz3pJo0I3IGom0rI5napQ5
TnvosY7sQJl+XAu13kAhRgCZob3Y1wM6HKORGfD2
-----END CERTIFICATE-----
34 changes: 34 additions & 0 deletions bindings/rust/bench/certs/ec384/server-fullchain.pem
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
-----BEGIN CERTIFICATE-----
MIIDGjCCAqCgAwIBAgIUQ0cVVrzSnGbwpFh/2nAbu7yMsk4wCgYIKoZIzj0EAwIw
gYkxCzAJBgNVBAYTAkpQMQ4wDAYDVQQIDAVDaGliYTETMBEGA1UEBwwKQ2hpYmEg
Q2l0eTEYMBYGA1UECgwPVGVzc2llci1Bc2hwb29sMRgwFgYDVQQDDA9kZXZlbG9w
LmxvY2FsY2ExITAfBgkqhkiG9w0BCQEWEmNhQGRldmVsb3AubG9jYWxjYTAgFw0y
MzA2MjAxNzQ5MzBaGA8yMjAyMTEyNTE3NDkzMFowYDELMAkGA1UEBhMCVVMxEzAR
BgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxDzANBgNVBAoMBnNl
cnZlcjEZMBcGA1UEAwwQc2VydmVyLmxvY2FsaG9zdDB2MBAGByqGSM49AgEGBSuB
BAAiA2IABJC2pUj/7+bwIS1d2094qztfgCUbFac5dnnDNmiRDFy1pP4SQSrjFo3v
RJe0eke5VXcOw4i5AuqKkgyr8xZybeb+OoflrHd2VCpf8aCqLLPo5jYg4QAkrgXp
7AtN7dWlnaOB7jCB6zAUBgNVHREEDTALgglsb2NhbGhvc3QwHQYDVR0OBBYEFDQD
ydDtN4aSFAvuuWMZU2LKcZufMIGzBgNVHSMEgaswgaihgY+kgYwwgYkxCzAJBgNV
BAYTAkpQMQ4wDAYDVQQIDAVDaGliYTETMBEGA1UEBwwKQ2hpYmEgQ2l0eTEYMBYG
A1UECgwPVGVzc2llci1Bc2hwb29sMRgwFgYDVQQDDA9kZXZlbG9wLmxvY2FsY2Ex
ITAfBgkqhkiG9w0BCQEWEmNhQGRldmVsb3AubG9jYWxjYYIUIjXu/mBXiCG4YgAx
n/hRFLe47IwwCgYIKoZIzj0EAwIDaAAwZQIwKWZ+rvNGNBzD2aBU+Q3hlkh5rpor
ZWSYcQ9Q+Wl7CvftZjLC5irD8qpMCQ1TkWCxAjEAhbzz3pJo0I3IGom0rI5napQ5
TnvosY7sQJl+XAu13kAhRgCZob3Y1wM6HKORGfD2
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIICTjCCAdQCFCI17v5gV4ghuGIAMZ/4URS3uOyMMAoGCCqGSM49BAMCMIGJMQsw
CQYDVQQGEwJKUDEOMAwGA1UECAwFQ2hpYmExEzARBgNVBAcMCkNoaWJhIENpdHkx
GDAWBgNVBAoMD1Rlc3NpZXItQXNocG9vbDEYMBYGA1UEAwwPZGV2ZWxvcC5sb2Nh
bGNhMSEwHwYJKoZIhvcNAQkBFhJjYUBkZXZlbG9wLmxvY2FsY2EwIBcNMjMwNjIw
MTc0OTMwWhgPMjIwMjExMjUxNzQ5MzBaMIGJMQswCQYDVQQGEwJKUDEOMAwGA1UE
CAwFQ2hpYmExEzARBgNVBAcMCkNoaWJhIENpdHkxGDAWBgNVBAoMD1Rlc3NpZXIt
QXNocG9vbDEYMBYGA1UEAwwPZGV2ZWxvcC5sb2NhbGNhMSEwHwYJKoZIhvcNAQkB
FhJjYUBkZXZlbG9wLmxvY2FsY2EwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQBa11l
hdlPfuEwoEDyQVjMAfwjBvNYPiHoSzFgcTvEmjqEnTC+ZaOnPb+gJ+mk1ZUgmXpG
woEGhY+Z9IIiaZWfW9NRrPUabh5SlUh+t76NUNX7xzukGHUlTJNBQmD34pAwCgYI
KoZIzj0EAwIDaAAwZQIxAOCrMxHjK4UFKK+oaalbkmf8JbaOTOj9dk2DG7ciGzZ2
g+sqQq6zyfxoiOCwnGwD6AIwQ4AjIC5LzRUnqVtrbdg4snB3sim8FfhKXW9Rrrhq
EbUxsAjxGKiCVmTr0UyXFiB9
-----END CERTIFICATE-----
6 changes: 6 additions & 0 deletions bindings/rust/bench/certs/ec384/server-key.pem
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
-----BEGIN PRIVATE KEY-----
MIG2AgEAMBAGByqGSM49AgEGBSuBBAAiBIGeMIGbAgEBBDB0T4dbewat5Y8DRLsT
f8YU9fP21tqvZPYLoEBTiHfUelhJptLJ4Y14MQeZUgDhGMuhZANiAASQtqVI/+/m
8CEtXdtPeKs7X4AlGxWnOXZ5wzZokQxctaT+EkEq4xaN70SXtHpHuVV3DsOIuQLq
ipIMq/MWcm3m/jqH5ax3dlQqX/Ggqiyz6OY2IOEAJK4F6ewLTe3VpZ0=
-----END PRIVATE KEY-----
44 changes: 0 additions & 44 deletions bindings/rust/bench/certs/fullchain.pem

This file was deleted.

Loading