This is not complete. CTR mode is not yet added,
and ECB mode might be worth doingECB mode might be worth doing as well (not part of cryptogams)
libgcrypt's decision to use a 128-bit counter for CTR mode is highly unusual and I can't find that in any RFCs (they either use 64-bit or 32-bit counters), but I implemented it to pass the tests.
However I've been having very slow progress and am going to workI ran all the tests on something else for a little while.ppc64el and amd64
see T4529
AES | nanosecs/byte mebibytes/sec cycles/byte auto Mhz
ECB enc | 2.0784 ns/B 460.4336.1 MiB/s 3.935.38 c/B 1895
ECB dec | 2.1489 ns/B 444.9330.6 MiB/s 4.065.47 c/B 1895
CBC enc | 1.0405 ns/B 917.508.3 MiB/s 1.979 c/B 1895
CBC dec | 0.222221 ns/B 430015 MiB/s 0.42019 c/B 1895
CFB enc | 2.094.41 ns/B 456.5216.4 MiB/s 3.968.35 c/B 1895
CFB dec | 2.094.88 ns/B 456.1195.3 MiB/s 3.99.26 c/B 1895
OFB enc | 2.125.06 ns/B 449.9188.4 MiB/s 4.029.59 c/B 1895
OFB dec | 2.125.07 ns/B 449.9188.2 MiB/s 4.029.60 c/B 1895
CTR enc | 2.090.218 ns/B 457.0374 MiB/s 3.960.413 c/B 1895
CTR dec | 2.00.219 ns/B 456.7 4349 MiB/s 3.90.416 c/B 1895
XTS enc | 0.538681 ns/B 1774400 MiB/s 1.0229 c/B 1895
XTS dec | 0.538687 ns/B 1772387 MiB/s 1.0230 c/B 1895
CCM enc | 4.1721 ns/B 228.76.4 MiB/s 7.915.32 c/B 1895264
CCM dec | 4.21 ns/B 226.57 MiB/s 7.985.32 c/B 1895264
CCM auth | 2.083.99 ns/B 458.0239.2 MiB/s 3.955.04 c/B 1895264
EAX enc | 4.1720 ns/B 228.57.2 MiB/s 7.915.30 c/B 1895264
EAX dec | 4.2021 ns/B 226.85 MiB/s 7.975.32 c/B 1895264
EAX auth | 2.083.97 ns/B 457.6239.9 MiB/s 3.955.02 c/B 1895264
GCM enc | 5.4219.81 ns/B 176.048.14 MiB/s 10.2725.03 c/B 1895264
GCM dec | 5.4219.79 ns/B 176.048.18 MiB/s 10.2725.01 c/B 1895264
GCM auth | 3.3319.55 ns/B 286.248.78 MiB/s 6.3224.71 c/B 1895264
OCB enc | 2.1017.53 ns/B 454.854.41 MiB/s 3.914.77 c/B 1895842.4
OCB dec | 2.1213.89 ns/B 450.468.67 MiB/s 4.0117.55 c/B 1895263
OCB auth | 2.099.14 ns/B 456104.4 MiB/s 3.9611.54 c/B 1895264