Add AES128-GCM to the benchmark

This commit is contained in:
Rodolphe Bréard 2024-03-24 14:38:03 +01:00
parent 747163f433
commit 360917adb8
7 changed files with 46 additions and 15 deletions

View file

@ -7,10 +7,17 @@ pub const DATA_CTX: &[&str] = &[
// created_at: Sunday 21 February 2021 10:21:42 // created_at: Sunday 21 February 2021 10:21:42
// expire_at: Thursday 10 February 2180 10:21:42 // expire_at: Thursday 10 February 2180 10:21:42
// is_revoked: false // is_revoked: false
pub const IKML_AES128GCM_SHA256: &str =
"AQAAAA:AQAAAAIAAAAAsPHG8Eyb8uZBAUUyUuxIRdQ5mIO1v1QDBhWOzbCRvzY0MmAAAAAANsk0iwEAAAAA";
// created_at: Sunday 21 February 2021 10:21:42
// expire_at: Thursday 10 February 2180 10:21:42
// is_revoked: false
pub const IKML_XCHACHA20POLY1305_BLAKE3: &str = pub const IKML_XCHACHA20POLY1305_BLAKE3: &str =
"AQAAAA:AwAAAAEAAAAMoNIW9gIGkzegUDEsU3N1Rf_Zz0OMuylUSiQjUzLXqzY0MmAAAAAANsk0iwEAAAAA"; "AQAAAA:AwAAAAEAAAAMoNIW9gIGkzegUDEsU3N1Rf_Zz0OMuylUSiQjUzLXqzY0MmAAAAAANsk0iwEAAAAA";
pub const IKMLS: &[(&str, &str)] = pub const IKMLS: &[(&str, &str)] = &[
&[("XChaCha20Poly1305WithBlake3", IKML_XCHACHA20POLY1305_BLAKE3)]; ("Aes128GcmWithSha256", IKML_AES128GCM_SHA256),
("XChaCha20Poly1305WithBlake3", IKML_XCHACHA20POLY1305_BLAKE3),
];
pub const PLAIN_INPUTS: &[(&str, &str)] = &[ pub const PLAIN_INPUTS: &[(&str, &str)] = &[
("01 - 12 B", include_str!("data/plain_01_xs.txt")), ("01 - 12 B", include_str!("data/plain_01_xs.txt")),
("02 - 60 B", include_str!("data/plain_02_s.txt")), ("02 - 60 B", include_str!("data/plain_02_s.txt")),
@ -18,6 +25,13 @@ pub const PLAIN_INPUTS: &[(&str, &str)] = &[
("04 - 3 KB", include_str!("data/plain_04_l.txt")), ("04 - 3 KB", include_str!("data/plain_04_l.txt")),
("05 - 1 MB", include_str!("data/plain_05_xl.txt")), ("05 - 1 MB", include_str!("data/plain_05_xl.txt")),
]; ];
pub const AES128GCM_SHA256_INPUTS: &[(&str, &str)] = &[
("01 - 12 B", include_str!("data/aes128gcm-sha256_01_xs.txt")),
("02 - 60 B", include_str!("data/aes128gcm-sha256_02_s.txt")),
("03 - 500 B", include_str!("data/aes128gcm-sha256_03_m.txt")),
("04 - 3 KB", include_str!("data/aes128gcm-sha256_04_l.txt")),
("05 - 1 MB", include_str!("data/aes128gcm-sha256_05_xl.txt")),
];
pub const XCHACHA20POLY1305_BLAKE3_INPUTS: &[(&str, &str)] = &[ pub const XCHACHA20POLY1305_BLAKE3_INPUTS: &[(&str, &str)] = &[
( (
"01 - 12 B", "01 - 12 B",

View file

@ -0,0 +1 @@
AQAAAA:R4zK4C5eFBIAhG9y:hiJ1dc9rOHfBuHJwEJmCAq_9PpN7aVsEMUEoFw:NgAAAAAAAAA

View file

@ -0,0 +1 @@
AQAAAA:YD4jWQdLKz-V254H:L9vGvIhZBbohD_fRc1uRxriY4uinIP3IYnLLEl123EvK4w0ICA73sXEWZlHKSW_TZ7MHB7Yk-au1d589gSFyU3ipnXJ72yXMUQV-mQ:NgAAAAAAAAA

View file

@ -0,0 +1 @@
AQAAAA:fXP3E1yV4UYqkarE:NubJ-lawq314h3sCoZWvi54_3jZ7VT41_pazZLXRoqTlbEMyh2eBvypfLZfJbM9E4-6Gl2oFdvQgLC5vM66zt9ZC9Zrj3LREwf6a7lsBgblj1c2lT42tkFCo7E33LftyjMCiz0HlsNg_-my8okJ-3MR1QByeEqPgyaKL5t4lo0apHCWr3K_TYaA40gZM2GMfKMRNpOCA2z_smgttwrrRLkUMCRAxH3Ogfe2inX3HF0iHlm58FV-4kfdCOXheXquOXvGjfigiDfYE9Pj3IcGLgJwpdbZbhnXAsB4ySl3IhEk3v8Tvoij3fHSJFYbAFvUZHt67F_fuO9kHVtVqSjWgeOGuNmcSPjOZUR41emNj_nY1a_TVaDLtg3rDNNZZMPskFXINzMl5t_4eTzfBZ2IaeWwsIX0K9Heseu8QRWoEGXKQB9oueN9WJyDdXtQx-8AqSQiZK_mhTKkr-XpoyRWfsWRwcCJJnO1Dw2mrUJFeVPFGtsvuLo3WbeqVINuiH7FqJzx1HjPTfLs4S-g_b6facEXfdREvtODW1g5dGq7a0mvDTihQpcVsEWa5yK3ftAfEHG0q9ZkVa6RR2GLqgPq6K4wt1S4_UQxKPZzBeYAddMRoih0LT9pB-8vumlastSF4sDJ1I7ZakAOFM9fM-D6MqoigEvF57xG-VaAUhDlc_2BoZV5t:NgAAAAAAAAA

View file

@ -0,0 +1 @@
AQAAAA:toRsFXE59ZYBmbvg:XEaRcc2KpgQmiIhRqeaLs6IIMdhRNYXCFGC5YzwF4OCxgJvg8EyJZg5u_L1eyv9_31Ud4ZjaQWWKYEFXvETepsLXqVVhJItWMJcy4SdCZXDaPak8Dzed4ugGvVB8_sXxUwbedZUv_Hha_IbTrb31On4UEA-KOzg34_P_bf2VMmdSn5W-BD375uZAFUEObJd-FTrgtJYDmzOzK4tDxrKHVPyaW829uRGIFkccwYkb2sFfEz8l1oWMNvWX8G9vTxkfn1O-gTYpDUs6BBeZPWo89zUL0WZ5oLm6fS5VNa46O5pU1Fh95rQYGPG6V0DrFqXGmWFOFjk55nSbgvdlJD_XL2SxwqAWLsG6cWIT3Mb_GqhmYkkUohtnbO6SI0uqAYHZhlN_NR9MbNsyfOPPX2UBZembeqQilfJgR3AKHg2aXazZgWeNNPOCj5OIu7BJFXSyOOjzrrKw18MbPM9Q_HpPr6zLUYWertFJEnhrFU1NzHcRkSs3itjIJoHVkOhnp6nKvBQrJSvL6f5XyziK6mHLzR2z7bHali4eRTDmZmh6K2j_4_efUDoa-qdszX2yF3-HZ4hWCKQCvK6hj_MfIjoBQlROA6NEQqDpoBxrzzpULEVkk7l2Dq66Q8dBY7ixLrcMIniuls8oqCJ63SE9-aFYOLXnb6j7zAz2QHTlHt9hYLoDbT_Gfh6_kefwmi8CRuvHgyyHlCKPFcVbbpTCqZ_0o-A0TVcV_iDPuJ72XHM4FA6fdpJYGspEURI4Tz19vf39oEAs4uyqoN3PmxYpxKy2buH5Y_NpDOulaqM-0bT0KMXEdyN5Y59UGI0239RZTN5DibbmuX22bt-NuaMAuBLo2Zijk6OOQxxlIV2qeT_S7IMS98gQE-eJC27q-tkwS7WK3Xe__x5eSOijzM8yhdiWcaX-lnwqNZBH0-wiyDnCCVzz3QNSrUSRdYGDgJGWJJMUAkeMjVpw9PYA5RMIaCteXQQUZgqxQC6g_QUrjKcPwEQvGEMS7cktwyTdHu5KZxw_tCLQ_D176kMYpxgZO5bjaIgX8c-RXjQf_QwgO64pYziO3SpR_EGNV_eC12agCD3GeHRqdNuNSd6eZBbvMlKbjOFstnTwRA20hrcYrwgpOnWeIgNJNaza4YjVTotImuG2ujcTX8OC16V0KU3o6mKFHg5GP4DJrOCTI0bUxDmtmfV2HlpfMZQjP6wr0S9mhBTX5NgHyovLH2OuHI_Xg4oPETlZc0ZnV3xwkTA1LNuHBHgYGwD5k9LLH-w3Vh_CBp4X5rwoQeRguTzJZ1yu_q966svbS1YwVkB8pFD6vywn0c3fhC6Z3j-tewKqgNPf_9LsHcr7tS08Yi2lwBIwwTzmxrZl2-Gz_5xzDp6oIXlUqI1EEsL9NQLaM9kZxZZU3rFJ2Kx7BdE8jMsOSEr_Ri6zNfSkcV0cyr9n7znpRNiv7XWgFoP7vxKYOcbGQCrIE6VZGyROikeQKbqN_LomSLaVUq_kERgCmNw0vhZJXRW055t8qtx255AY2WXe5Z2XMVZDspyIr8ImXLBhOPubPsYLij2QOSoxbwl8ZHUbmqGG3eARGueIHxlCKhxPVDLCnFYEzN8fHVF379TVPrBRSZwbS_MGZD95WF46rSp6g0ycuJk9QiyqsJff_MUku-uOXO837VB4xSRJSUmVlrbLUcBPGLrGv4puQytVpzMK3T58ujUAzP9zEWcrji5qRSJ9Svi3tEbyCFbCvTIvGh2cLYsqlKs0_iq_LBNJxeEfHGFiqDmgvuICkTxegDZw0rK_38hiIy3Y8Wm_f7YKZYt84IJkNTBVwmX8yRcu2T8u4JCPFdjc-vWxvKnlmoJ9sts7frkgJLelpbq-z9sDJSW7NoqrKUn2tAiAiNtl6p8Keac4sQ_3wiMslani3Fo0TFdg2JMnTxnZVkTbOd345s1ghTgpIAYxM9dwZ-TMy-6QKVW4nWaNhYV4x-oc9g1scprjBsotTriXsQh8KpahWgNT_JJGsRVzKRyh53X7Tcf4gDJiL82r4vuQWYYqte9dmDOd5Dz-k1oVfxgZcgIOtQz8jwZRri7iQ9wbq5tamHv99cNyPoGbdf9VixUAJzCmjmDl30ot8muMl_b6-hL6Ph6K6_nVUdE6fn8NKtDWPToOeStI3swqDEL60Aa12z1EBqTrMRytDn5vwY9wLKpNZdLZRlfbdDCGPhhiVIkqahIWzf09lef8hOFhr98ouzpwChUCoOWzqz5GJdY6kQqAy7rT---sqiXau5aoMLatDJpcJQQtCrFH8ArSwBtY63Kn-YpIZZC85TbeEhQIAJT1PU0_PXCzPmdp8p7dUPAGbfroT0oQWsToF4a3_Aa_1dxY4i_GQrF6yMgMMTCB3ArA9JIc76FZvaeDfapLcaqSFh9eje6YA2Mh91GfQxhE4F6JquoXecyU9yNO4uDowSPGIYudij08UTzaq0UceBxa3mXEk7LuKkGLQBZRCw4eliOViiStrwpZd3cKq0sTQeOYb-lWngXfVv1sivzThFoTKWDDS1mmIw9BB1Z5WNWCiso97HeAl32E7oUyeFf6MyWww-Gkr2gbu7rmxMrJ4ebwOYbBoFX_kLGC2vOA-CYFyHOa1BJz5hxylQqMVU3hiJwO0vL1adNNu4WzX3-9db4ggWm6RcTdFZknfk4RrgEt_JbfNr41wn6VoNFhrjzwvM1WGT39a2RY1y01m1X9lWvh3aZDYu-lmNp55yBqrbMNFeZMY6hwXsI8M6EwH6wfZschd8UrbHMN_S7Dpn66fSqR0abe_flKS45j7l_NTP5lQc9n2AX5PrBYkeFqRIoVtY6hOS14E0DbhB4at9QMkflCO0fhTFEOu8C-UdKvChRCDrl5CQ9L5EZILkXTg62fMgU9B6nCjDULjL7sBAxCSlKy1-R_K25fhCehDrFq41-bcsLfeTwAJu4CdpiiJgmerdTTWiy5FpEewuxwhbLEpa1gaOiqiZ8MpkKeh_wrV5KaaqQwXL39W-U25Rk5bakmRND1xW3-ufWTmzCWGQg5pOak7bsMo6kUuZmuPh9AOJJD_qxjlZYLUPN-_FJ6ICv7EtbAhel53qvxF36xwsAGvJELtl-H6_8bQj03LR8bQlhagqB2Y2Xqjxqst3Mgg2IF24tIDBKcd9b8pA9_eTjnaJ13tER8na_AV9OMkfB68UPMMOB5AKnP3y1KbajL48PPg70fnFJ1WhPW8KzsyncHLF-do0Dgdfl0ORu7BiMZgCPfWGHMZ03s6NKunYQUIyEHJVBUDSlKF7bIviZumbganNSBS3PnTKQM1QOXyRLaq7ozOQ3UepS2EK3k8LUDdLSddmXZuImFOuD9Zbkgz3zguOMgTqPmc8HccVTojDPF3ERQQ57y1Lg27z4DRllscpYCIFmFFPP8GOy5t0smpDKoaWuqTAaCRltTPyBv69eVqfImCIxJyaxBWJMyyqPxAcDrtAzPodG8bnSjOcPMFnlc6WZXZZvNyszSBSF5Q8KzYHnFt6FXhCYqf7ggQ_TMi7hHlAaMDMn-y7sRQXJqGFETnZiAmi1CJqY11Os4iu1YxxzIfnitTLs0s_ftbBvO_DKKcb_cRKZzwpVMmpEHpqaaz9GhGQQLKzngcHYDgRpLnOT0YjXSY_lbU-Lp3B-f2FNzHOh2uIefa5AzyyvcgOuQCWKOOJ_HEP7nppBZG1fEKwl6jRCR5AThqknxOzBS7C_klQuuKZgFHlTlY8BK8RE25tl3g4k9BVoUWyLXrtFgGp2SO9aKwAsMZUAKeABpRyYCT2vr2GOt03ovkzTPxoAz-H835-qzu-Ftd5uHni_Z-KC7cUTODTYjH7qHfPUdNQYhvJMJK3MklG4HdUVq1XwxijuuCN1qEmIPUGQ5f3VSYVzeP1iUg9QfLhsbkZVDz8yKTO8U2_OElWMisb0_JPifObQURyzAASPLuzeNqRdY4NKR_byxNaN21gm9SmK8O1X_Wblp_Ai-X1jN3RptFX086XMqi0QYORptqJHW7XonXMnR5w:NgAAAAAAAAA

File diff suppressed because one or more lines are too long

View file

@ -3,11 +3,22 @@ mod data;
use coffio::{CipherBox, DataContext, InputKeyMaterialList, KeyContext}; use coffio::{CipherBox, DataContext, InputKeyMaterialList, KeyContext};
use criterion::{criterion_group, criterion_main, BenchmarkId, Criterion}; use criterion::{criterion_group, criterion_main, BenchmarkId, Criterion};
use data::{ use data::{
Data, DATA_CTX, IKML_XCHACHA20POLY1305_BLAKE3, KEY_CTX, MEASUREMENT_TIME, Data, AES128GCM_SHA256_INPUTS, DATA_CTX, IKML_AES128GCM_SHA256, IKML_XCHACHA20POLY1305_BLAKE3,
XCHACHA20POLY1305_BLAKE3_INPUTS, KEY_CTX, MEASUREMENT_TIME, XCHACHA20POLY1305_BLAKE3_INPUTS,
}; };
use std::time::Duration; use std::time::Duration;
macro_rules! alg_group {
($group: ident, $name: expr, $inputs: ident, $ikml: ident) => {
for (input_name, input) in $inputs.iter() {
let data = Data { ikml: $ikml, input };
$group.bench_with_input(BenchmarkId::new($name, input_name), &data, |b, i| {
b.iter(|| decrypt_coffio(i.ikml, i.input))
});
}
};
}
fn decrypt_coffio(ikml: &str, input: &str) { fn decrypt_coffio(ikml: &str, input: &str) {
let ikm = InputKeyMaterialList::import(ikml).unwrap(); let ikm = InputKeyMaterialList::import(ikml).unwrap();
let key_ctx = KeyContext::from(KEY_CTX); let key_ctx = KeyContext::from(KEY_CTX);
@ -21,17 +32,18 @@ fn decrypt_coffio(ikml: &str, input: &str) {
pub fn decryption_benchmark(c: &mut Criterion) { pub fn decryption_benchmark(c: &mut Criterion) {
let mut group = c.benchmark_group("Decryption"); let mut group = c.benchmark_group("Decryption");
group.measurement_time(Duration::from_secs(MEASUREMENT_TIME)); group.measurement_time(Duration::from_secs(MEASUREMENT_TIME));
for (input_name, input) in XCHACHA20POLY1305_BLAKE3_INPUTS.iter() { alg_group!(
let data = Data { group,
ikml: IKML_XCHACHA20POLY1305_BLAKE3, "Aes128GcmWithSha256",
input, AES128GCM_SHA256_INPUTS,
}; IKML_AES128GCM_SHA256
group.bench_with_input( );
BenchmarkId::new("XChaCha20Poly1305WithBlake3", input_name), alg_group!(
&data, group,
|b, i| b.iter(|| decrypt_coffio(i.ikml, i.input)), "XChaCha20Poly1305WithBlake3",
); XCHACHA20POLY1305_BLAKE3_INPUTS,
} IKML_XCHACHA20POLY1305_BLAKE3
);
} }
criterion_group!(benches, decryption_benchmark); criterion_group!(benches, decryption_benchmark);