Add AES128-GCM to the benchmark
This commit is contained in:
parent
747163f433
commit
360917adb8
7 changed files with 46 additions and 15 deletions
|
@ -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",
|
||||||
|
|
1
benches/data/aes128gcm-sha256_01_xs.txt
Normal file
1
benches/data/aes128gcm-sha256_01_xs.txt
Normal file
|
@ -0,0 +1 @@
|
||||||
|
AQAAAA:R4zK4C5eFBIAhG9y:hiJ1dc9rOHfBuHJwEJmCAq_9PpN7aVsEMUEoFw:NgAAAAAAAAA
|
1
benches/data/aes128gcm-sha256_02_s.txt
Normal file
1
benches/data/aes128gcm-sha256_02_s.txt
Normal file
|
@ -0,0 +1 @@
|
||||||
|
AQAAAA:YD4jWQdLKz-V254H:L9vGvIhZBbohD_fRc1uRxriY4uinIP3IYnLLEl123EvK4w0ICA73sXEWZlHKSW_TZ7MHB7Yk-au1d589gSFyU3ipnXJ72yXMUQV-mQ:NgAAAAAAAAA
|
1
benches/data/aes128gcm-sha256_03_m.txt
Normal file
1
benches/data/aes128gcm-sha256_03_m.txt
Normal 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
|
1
benches/data/aes128gcm-sha256_04_l.txt
Normal file
1
benches/data/aes128gcm-sha256_04_l.txt
Normal 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
|
1
benches/data/aes128gcm-sha256_05_xl.txt
Normal file
1
benches/data/aes128gcm-sha256_05_xl.txt
Normal file
File diff suppressed because one or more lines are too long
|
@ -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);
|
||||||
|
|
Loading…
Reference in a new issue