diff options
author | Jussi Kivilinna <jussi.kivilinna@iki.fi> | 2022-09-28 20:30:33 +0300 |
---|---|---|
committer | Jussi Kivilinna <jussi.kivilinna@iki.fi> | 2022-10-02 16:52:55 +0300 |
commit | 335b8eb1211b3b67541c689da949101db3b669fd (patch) | |
tree | cbfe6e6c441c61ded2869724abfc3d4ff565b61d /tests | |
parent | ce60a68a1172ea20c1ff72e27e4b0115d805bf48 (diff) | |
download | libgcrypt-335b8eb1211b3b67541c689da949101db3b669fd.tar.gz |
tests/bench-slope: remove VLA usage
* tests/bench-slope.c (bench_set_cipher_key): New.
(bench_encrypt_init, bench_xts_encrypt_init): Use
'bench_set_cipher_key' to remove VLA usage.
--
Signed-off-by: Jussi Kivilinna <jussi.kivilinna@iki.fi>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/bench-slope.c | 59 |
1 files changed, 31 insertions, 28 deletions
diff --git a/tests/bench-slope.c b/tests/bench-slope.c index aaddaa85..1cad6813 100644 --- a/tests/bench-slope.c +++ b/tests/bench-slope.c @@ -982,6 +982,35 @@ struct bench_cipher_mode }; +static void +bench_set_cipher_key (gcry_cipher_hd_t hd, int keylen) +{ + char *key; + int err, i; + + key = malloc (keylen); + if (!key) + { + fprintf (stderr, PGM ": couldn't allocate %d bytes\n", keylen); + gcry_cipher_close (hd); + exit (1); + } + + for (i = 0; i < keylen; i++) + key[i] = 0x33 ^ (11 - i); + + err = gcry_cipher_setkey (hd, key, keylen); + free (key); + if (err) + { + fprintf (stderr, PGM ": gcry_cipher_setkey failed: %s\n", + gpg_strerror (err)); + gcry_cipher_close (hd); + exit (1); + } +} + + static int bench_encrypt_init (struct bench_obj *obj) { @@ -1010,20 +1039,7 @@ bench_encrypt_init (struct bench_obj *obj) if (keylen) { - char key[keylen]; - int i; - - for (i = 0; i < keylen; i++) - key[i] = 0x33 ^ (11 - i); - - err = gcry_cipher_setkey (hd, key, keylen); - if (err) - { - fprintf (stderr, PGM ": gcry_cipher_setkey failed: %s\n", - gpg_strerror (err)); - gcry_cipher_close (hd); - exit (1); - } + bench_set_cipher_key (hd, keylen); } else { @@ -1119,20 +1135,7 @@ bench_xts_encrypt_init (struct bench_obj *obj) keylen = gcry_cipher_get_algo_keylen (mode->algo) * 2; if (keylen) { - char key[keylen]; - int i; - - for (i = 0; i < keylen; i++) - key[i] = 0x33 ^ (11 - i); - - err = gcry_cipher_setkey (hd, key, keylen); - if (err) - { - fprintf (stderr, PGM ": gcry_cipher_setkey failed: %s\n", - gpg_strerror (err)); - gcry_cipher_close (hd); - exit (1); - } + bench_set_cipher_key (hd, keylen); } else { |