it uses the ascii char val to choose the cipher to use. so if you have a 4 char pin code, this will map to using 4 of the ciphers. I apply it iteratively to the output of the previous cipher.
not sure how even 18 times becomes over 100 times slower, maybe AES is 10 times faster? if you like AES just use a one char pin code that maps to AES. it is up to the user. anyway the code is already done and it didnt bloat things that much.
gnutls-cli --benchmark-ciphers says
3DES-CBC 21.39 MB/sec, AES-128-GCM 1.39 GB/sec
I still have absolutely no idea why someone would want to do it like you are doing.
Maybe you also want to use a key derivation function (KDF), scrypt or better?
https://password-hashing.net/Or was that your code already Final Release? Bummer.
