*These are the results from CryptoPP 8.7 vs 8.1 earlier:*
root@imx8mpevk:~/p2p_sockets# ./cryptest.exe b 2 1.8 <!DOCTYPE HTML> <HTML lang="en"> <HEAD> <META charset="UTF-8"> <TITLE>Speed Comparison of Popular Crypto Algorithms</TITLE> <STYLE> table {border-collapse: collapse;} table, th, td, tr {border: 1px solid black;} </STYLE> </HEAD> <BODY> <H1><A href="http://www.cryptopp.com">Crypto++ 8.7.0</A> Benchmarks</H1> <P>Here are speed benchmarks for some commonly used cryptographic algorithms.</P> <P>CPU frequency of the test platform is 1.8 GHz.</P> <TABLE> <COLGROUP><COL style="text-align: left;"><COL style="text-align: right;"><COL style="text-align: right;"> <THEAD style="background: #F0F0F0"> <TR><TH>Algorithm<TH>Provider<TH>MiB/Second<TH>Cycles/Byte <TBODY style="background: white;"> <TR><TD>NonblockingRng<TD>C++<TD>104<TD>16.44 <TR><TD>AutoSeededRandomPool<TD>C++<TD>78<TD>22.13 <TR><TD>AutoSeededX917RNG(AES)<TD>ARMv8<TD>9<TD>198.0 <TR><TD>MT19937<TD>C++<TD>143<TD>11.98 <TR><TD>AES/OFB RNG<TD>ARMv8<TD>300<TD>5.72 <TR><TD>Hash_DRBG(SHA1)<TD>ARMv8<TD>58<TD>29.4 <TR><TD>Hash_DRBG(SHA256)<TD>ARMv8<TD>82<TD>20.92 <TR><TD>HMAC_DRBG(SHA1)<TD>ARMv8<TD>16<TD>106.5 <TR><TD>HMAC_DRBG(SHA256)<TD>ARMv8<TD>23<TD>74.0 <TBODY style="background: yellow;"> <TR><TD>CRC32<TD>ARMv8<TD>3256<TD>0.53 <TR><TD>CRC32C<TD>ARMv8<TD>3256<TD>0.53 <TR><TD>Adler32<TD>C++<TD>801<TD>2.14 <TR><TD>MD5<TD>C++<TD>226<TD>7.59 <TR><TD>SHA-1<TD>ARMv8<TD>762<TD>2.25 <TR><TD>SHA-256<TD>ARMv8<TD>667<TD>2.57 <TR><TD>SHA-512<TD>C++<TD>115<TD>14.95 <TR><TD>SHA3-224<TD>C++<TD>112<TD>15.32 <TR><TD>SHA3-256<TD>C++<TD>106<TD>16.27 <TR><TD>SHA3-384<TD>C++<TD>81<TD>21.09 <TR><TD>SHA3-512<TD>C++<TD>57<TD>30.2 <TR><TD>Keccak-224<TD>C++<TD>112<TD>15.33 <TR><TD>Keccak-256<TD>C++<TD>105<TD>16.28 <TR><TD>Keccak-384<TD>C++<TD>81<TD>21.08 <TR><TD>Keccak-512<TD>C++<TD>57<TD>30.2 <TR><TD>Tiger<TD>C++<TD>179<TD>9.61 <TR><TD>Whirlpool<TD>C++<TD>32<TD>54.0 <TR><TD>RIPEMD-160<TD>C++<TD>117<TD>14.63 <TR><TD>RIPEMD-320<TD>C++<TD>114<TD>15.11 <TR><TD>RIPEMD-128<TD>C++<TD>227<TD>7.55 <TR><TD>RIPEMD-256<TD>C++<TD>214<TD>8.02 <TR><TD>SM3<TD>C++<TD>101<TD>16.94 <TR><TD>BLAKE2s<TD>C++<TD>150<TD>11.48 <TR><TD>BLAKE2b<TD>C++<TD>151<TD>11.37 <TR><TD>LSH-256<TD>C++<TD>35<TD>49.3 <TR><TD>LSH-512<TD>C++<TD>56<TD>30.7 </TABLE> <BR> <TABLE> <COLGROUP><COL style="text-align: left;"><COL style="text-align: right;"><COL style="text-align: right;"><COL style="text-align: right;"><COL style="text-align: right;"> <THEAD style="background: #F0F0F0"> <TR><TH>Algorithm<TH>Provider<TH>MiB/Second<TH>Cycles/Byte<TH>Microseconds to<BR>Setup Key and IV<TH>Cycles to<BR>Setup Key and IV <TBODY style="background: white;"> <TR><TD>GMAC(AES)<TD>ARMv8<TD>1033<TD>1.66<TD>1.556<TD>2801 <TR><TD>VMAC(AES)-64 (128-bit key)<TD>ARMv8<TD>1345<TD>1.28<TD>2.222<TD>4000 <TR><TD>VMAC(AES)-128 (128-bit key)<TD>ARMv8<TD>820<TD>2.09<TD>2.527<TD>4549 <TR><TD>HMAC(SHA-1) (128-bit key)<TD>ARMv8<TD>753<TD>2.28<TD>1.097<TD>1975 <TR><TD>HMAC(SHA-256) (128-bit key)<TD>ARMv8<TD>663<TD>2.59<TD>1.097<TD>1975 <TR><TD>Two-Track-MAC (160-bit key)<TD>C++<TD>140<TD>12.23<TD>0.050<TD>90 <TR><TD>CMAC(AES) (128-bit key)<TD>ARMv8<TD>340<TD>5.05<TD>0.723<TD>1301 <TR><TD>DMAC(AES) (128-bit key)<TD>ARMv8<TD>345<TD>4.98<TD>2.029<TD>3653 <TR><TD>Poly1305(AES) (256-bit key)<TD>ARMv8<TD>300<TD>5.72<TD>0.831<TD>1496 <TR><TD>Poly1305TLS (256-bit key)<TD>C++<TD>300<TD>5.72<TD>0.051<TD>91 <TR><TD>BLAKE2s (256-bit key)<TD>C++<TD>150<TD>11.48<TD>0.597<TD>1074 <TR><TD>BLAKE2b (512-bit key)<TD>C++<TD>151<TD>11.36<TD>0.622<TD>1120 <TR><TD>SipHash-2-4 (128-bit key)<TD>C++<TD>593<TD>2.89<TD>0.054<TD>98 <TR><TD>SipHash-4-8 (128-bit key)<TD>C++<TD>350<TD>4.90<TD>0.054<TD>98 <TBODY style="background: yellow;"> <TR><TD>Panama-LE (256-bit key)<TD>C++<TD>257<TD>6.67<TD>3.810<TD>6859 <TR><TD>Panama-BE (256-bit key)<TD>C++<TD>250<TD>6.86<TD>3.836<TD>6904 <TR><TD>Salsa20<TD>C++<TD>222<TD>7.74<TD>0.485<TD>873 <TR><TD>Salsa20/12<TD>C++<TD>311<TD>5.52<TD>0.602<TD>1084 <TR><TD>Salsa20/8<TD>C++<TD>385<TD>4.46<TD>0.608<TD>1094 <TR><TD>ChaCha20<TD>NEON<TD>253<TD>6.79<TD>0.475<TD>854 <TR><TD>ChaCha12<TD>NEON<TD>396<TD>4.34<TD>0.585<TD>1052 <TR><TD>ChaCha8<TD>NEON<TD>549<TD>3.12<TD>0.591<TD>1064 <TR><TD>ChaChaTLS (256-bit key)<TD>NEON<TD>253<TD>6.80<TD>0.564<TD>1016 <TR><TD>Sosemanuk (128-bit key)<TD>C++<TD>484<TD>3.55<TD>1.393<TD>2507 <TR><TD>Rabbit (128-bit key)<TD>C++<TD>130<TD>13.17<TD>0.599<TD>1079 <TR><TD>RabbitWithIV (128-bit key)<TD>C++<TD>130<TD>13.17<TD>1.285<TD>2313 <TR><TD>HC-128 (128-bit key)<TD>C++<TD>350<TD>4.90<TD>18.160<TD>32688 <TR><TD>HC-256 (256-bit key)<TD>C++<TD>143<TD>12.01<TD>119.603<TD>215285 <TR><TD>MARC4 (128-bit key)<TD>C++<TD>114<TD>15.02<TD>4.447<TD>8004 <TR><TD>SEAL-3.0-LE (160-bit key)<TD>C++<TD>280<TD>6.13<TD>31.427<TD>56569 <TR><TD>WAKE-OFB-LE (256-bit key)<TD>C++<TD>184<TD>9.31<TD>4.016<TD>7229 <TBODY style="background: white;"> <TR><TD>AES/CTR (128-bit key)<TD>ARMv8<TD>598<TD>2.87<TD>1.009<TD>1816 <TR><TD>AES/CTR (192-bit key)<TD>ARMv8<TD>538<TD>3.19<TD>1.018<TD>1832 <TR><TD>AES/CTR (256-bit key)<TD>ARMv8<TD>502<TD>3.42<TD>1.071<TD>1928 <TR><TD>AES/CBC (128-bit key)<TD>ARMv8<TD>341<TD>5.04<TD>0.817<TD>1470 <TR><TD>AES/CBC (192-bit key)<TD>ARMv8<TD>306<TD>5.60<TD>0.830<TD>1493 <TR><TD>AES/CBC (256-bit key)<TD>ARMv8<TD>278<TD>6.17<TD>0.888<TD>1599 <TR><TD>AES/XTS (256-bit key)<TD>ARMv8<TD>298<TD>5.76<TD>1.430<TD>2574 <TR><TD>AES/XTS (384-bit key)<TD>ARMv8<TD>281<TD>6.11<TD>1.474<TD>2654 <TR><TD>AES/XTS (512-bit key)<TD>ARMv8<TD>274<TD>6.26<TD>1.583<TD>2849 <TR><TD>AES/OFB (128-bit key)<TD>ARMv8<TD>317<TD>5.41<TD>0.963<TD>1733 <TR><TD>AES/CFB (128-bit key)<TD>ARMv8<TD>344<TD>4.99<TD>1.135<TD>2044 <TR><TD>AES/ECB (128-bit key)<TD>ARMv8<TD>731<TD>2.35<TD>0.458<TD>825 <TR><TD>ARIA/CTR (128-bit key)<TD>C++<TD>34<TD>50.1<TD>0.753<TD>1356 <TR><TD>ARIA/CTR (256-bit key)<TD>C++<TD>28<TD>62.2<TD>0.772<TD>1390 <TR><TD>HIGHT/CTR (128-bit key)<TD>C++<TD>17<TD>104.0<TD>1.302<TD>2343 <TR><TD>Camellia/CTR (128-bit key)<TD>C++<TD>57<TD>30.4<TD>0.736<TD>1325 <TR><TD>Camellia/CTR (256-bit key)<TD>C++<TD>44<TD>38.9<TD>0.774<TD>1393 <TR><TD>Twofish/CTR (128-bit key)<TD>C++<TD>68<TD>25.3<TD>8.807<TD>15853 <TR><TD>Threefish-256(256)/CTR (256-bit key)<TD>C++<TD>93<TD>18.55<TD>0.759<TD>1366 <TR><TD>Threefish-512(512)/CTR (512-bit key)<TD>C++<TD>106<TD>16.27<TD>0.768<TD>1382 <TR><TD>Threefish-1024(1024)/CTR (1024-bit key)<TD>C++<TD>58<TD>29.6<TD>0.835<TD>1503 <TR><TD>Serpent/CTR (128-bit key)<TD>C++<TD>41<TD>42.0<TD>1.561<TD>2809 <TR><TD>CAST-128/CTR (128-bit key)<TD>C++<TD>46<TD>37.3<TD>1.121<TD>2018 <TR><TD>CAST-256/CTR (256-bit key)<TD>C++<TD>45<TD>38.3<TD>2.417<TD>4351 <TR><TD>RC6/CTR (128-bit key)<TD>C++<TD>86<TD>19.86<TD>2.722<TD>4899 <TR><TD>MARS/CTR (128-bit key)<TD>C++<TD>49<TD>34.7<TD>4.714<TD>8485 <TR><TD>SHACAL-2/CTR (128-bit key)<TD>C++<TD>75<TD>22.96<TD>1.005<TD>1809 <TR><TD>SHACAL-2/CTR (512-bit key)<TD>C++<TD>75<TD>22.98<TD>1.051<TD>1892 <TR><TD>DES/CTR (64-bit key)<TD>C++<TD>31<TD>55.6<TD>14.622<TD>26319 <TR><TD>DES-XEX3/CTR (192-bit key)<TD>C++<TD>26<TD>65.6<TD>14.736<TD>26525 <TR><TD>DES-EDE3/CTR (192-bit key)<TD>C++<TD>12<TD>140.4<TD>43.754<TD>78758 <TR><TD>IDEA/CTR (128-bit key)<TD>C++<TD>32<TD>54.3<TD>0.902<TD>1624 <TR><TD>RC5 (r=16)<TD>C++<TD>79<TD>21.82<TD>2.320<TD>4176 <TR><TD>Blowfish/CTR (128-bit key)<TD>C++<TD>59<TD>29.2<TD>64.819<TD>116674 <TR><TD>SKIPJACK/CTR (80-bit key)<TD>C++<TD>17<TD>99.6<TD>7.781<TD>14006 <TR><TD>SEED/CTR (1/2 K table)<TD>C++<TD>32<TD>52.8<TD>0.842<TD>1516 <TR><TD>SM4/CTR (128-bit key)<TD>C++<TD>38<TD>44.6<TD>1.025<TD>1846 <TR><TD>Kalyna-128(128)/CTR (128-bit key)<TD>C++<TD>57<TD>30.2<TD>1.134<TD>2041 <TR><TD>Kalyna-128(256)/CTR (256-bit key)<TD>C++<TD>39<TD>44.5<TD>1.312<TD>2361 <TR><TD>Kalyna-256(256)/CTR (256-bit key)<TD>C++<TD>36<TD>47.4<TD>1.914<TD>3445 <TR><TD>Kalyna-256(512)/CTR (512-bit key)<TD>C++<TD>29<TD>59.7<TD>2.210<TD>3978 <TR><TD>Kalyna-512(512)/CTR (512-bit key)<TD>C++<TD>30<TD>56.5<TD>3.552<TD>6393 <TBODY style="background: yellow;"> <TR><TD>CHAM-64(128)/CTR (128-bit key)<TD>C++<TD>21<TD>81.4<TD>0.625<TD>1125 <TR><TD>CHAM-128(128)/CTR (128-bit key)<TD>C++<TD>46<TD>37.5<TD>0.617<TD>1110 <TR><TD>CHAM-128(256)/CTR (256-bit key)<TD>C++<TD>40<TD>43.2<TD>0.663<TD>1193 <TR><TD>LEA-128(128)/CTR (128-bit key)<TD>NEON<TD>89<TD>19.28<TD>0.848<TD>1526 <TR><TD>LEA-128(192)/CTR (192-bit key)<TD>NEON<TD>78<TD>22.03<TD>0.967<TD>1741 <TR><TD>LEA-128(256)/CTR (256-bit key)<TD>NEON<TD>69<TD>24.8<TD>1.007<TD>1812 <TR><TD>SIMECK-32(64)/CTR (64-bit key)<TD>C++<TD>20<TD>84.8<TD>0.820<TD>1476 <TR><TD>SIMECK-64(128)/CTR (128-bit key)<TD>C++<TD>44<TD>39.0<TD>0.847<TD>1525 <TR><TD>SIMON-64(96)/CTR (96-bit key)<TD>C++<TD>52<TD>33.1<TD>0.844<TD>1520 <TR><TD>SIMON-64(128)/CTR (128-bit key)<TD>C++<TD>50<TD>34.5<TD>0.882<TD>1587 <TR><TD>SIMON-128(128)/CTR (128-bit key)<TD>NEON<TD>61<TD>27.9<TD>0.916<TD>1648 <TR><TD>SIMON-128(192)/CTR (192-bit key)<TD>NEON<TD>61<TD>28.3<TD>0.916<TD>1649 <TR><TD>SIMON-128(256)/CTR (256-bit key)<TD>NEON<TD>58<TD>29.4<TD>0.963<TD>1734 <TR><TD>SPECK-64(96)/CTR (96-bit key)<TD>C++<TD>75<TD>22.97<TD>0.658<TD>1184 <TR><TD>SPECK-64(128)/CTR (128-bit key)<TD>C++<TD>72<TD>23.72<TD>0.653<TD>1175 <TR><TD>SPECK-128(128)/CTR (128-bit key)<TD>NEON<TD>166<TD>10.35<TD>0.675<TD>1216 <TR><TD>SPECK-128(192)/CTR (192-bit key)<TD>NEON<TD>162<TD>10.61<TD>0.656<TD>1180 <TR><TD>SPECK-128(256)/CTR (256-bit key)<TD>NEON<TD>158<TD>10.88<TD>0.656<TD>1182 <TR><TD>TEA/CTR (128-bit key)<TD>C++<TD>37<TD>46.2<TD>0.735<TD>1323 <TR><TD>XTEA/CTR (128-bit key)<TD>C++<TD>26<TD>65.7<TD>0.746<TD>1343 <TBODY style="background: white;"> <TR><TD>AES/GCM<TD>ARMv8<TD>379<TD>4.53<TD>1.553<TD>2795 <TR><TD>AES/CCM (128-bit key)<TD>ARMv8<TD>218<TD>7.89<TD>1.201<TD>2161 <TR><TD>AES/EAX (128-bit key)<TD>ARMv8<TD>215<TD>7.99<TD>1.844<TD>3319 <TR><TD>ChaCha20/Poly1305 (256-bit key)<TD>NEON<TD>136<TD>12.59<TD>3.307<TD>5952 <TR><TD>XChaCha20/Poly1305 (256-bit key)<TD>NEON<TD>136<TD>12.58<TD>3.945<TD>7100 </TABLE> <BR> <TABLE> <COLGROUP><COL style="text-align: left;"><COL style="text-align: right;"><COL style="text-align: right;"> <THEAD style="background: #F0F0F0"> <TR><TH>Operation<TH>Milliseconds/Operation<TH>Megacycles/Operation <TBODY style="background: white;"> Exception caught: FileStore: error opening file for reading: TestData/rsa1024.dat On Friday, May 12, 2023 at 10:11:01 AM UTC-4 Dwight Kulkarni wrote: > Hi Jeff, > > I am using an ARM64 cross compiler. I source into the sdk using: > > > *source > /opt/fsl-imx-xwayland/5.10-hardknott/environment-setup-cortexa53-crypto-poky-linux* > > I compile it on x86 and the move it to the embedded machine for testing. > > This is the compiler command when I issue the make command : > > *aarch64-poky-linux-g++ -mcpu=cortex-a53 -march=armv8-a+crc+crypto > -fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wformat > -Wformat-security -Werror=format-security > --sysroot=/opt/fsl-imx-xwayland/5.10-hardknott/sysroots/cortexa53-crypto-poky-linux > > -O2 -pipe -g -feliminate-unused-debug-types -DCRYPTOPP_ARM_ACLE_AVAILABLE=0 > -DCRYPTOPP_DISABLE_ASM -fPIC -pthread -pipe -c zlib.cpp* > > I am right now compiling the latest library and will let you know the > results. > > Let me know if you see anything in the compiler flags. > > On Friday, May 12, 2023 at 9:37:50 AM UTC-4 Jeffrey Walton wrote: > >> On Fri, May 12, 2023 at 9:09 AM Dwight Kulkarni <dwi...@realtime-7.com> >> wrote: >> > >> > See below benchmark test results: >> > >> > root@imx8mpevk:~/p2p_sockets# ./cryptest.exe b 2 1.8 >> > [...] >> > <TR><TD>AES/CTR (128-bit key)<TD>C++<TD>63<TD>27.3<TD>0.886<TD>1595 >> > <TR><TD>AES/CTR (192-bit key)<TD>C++<TD>55<TD>31.3<TD>0.882<TD>1587 >> > <TR><TD>AES/CTR (256-bit key)<TD>C++<TD>49<TD>35.2<TD>0.910<TD>1637 >> > <TR><TD>AES/CBC (128-bit key)<TD>C++<TD>56<TD>30.4<TD>0.732<TD>1317 >> > <TR><TD>AES/CBC (192-bit key)<TD>C++<TD>50<TD>34.4<TD>0.728<TD>1311 >> > <TR><TD>AES/CBC (256-bit key)<TD>C++<TD>45<TD>38.3<TD>0.756<TD>1361 >> > <TR><TD>AES/OFB (128-bit key)<TD>C++<TD>59<TD>29.0<TD>0.933<TD>1679 >> > <TR><TD>AES/CFB (128-bit key)<TD>C++<TD>63<TD>27.1<TD>1.135<TD>2043 >> > <TR><TD>AES/ECB (128-bit key)<TD>C++<TD>63<TD>27.4<TD>0.329<TD>592 >> > [...] >> >> For completeness, AES/CFB is 27.1 cycles-per-byte (cpb). Cycles per >> byte is what I am interested in when comparing benchmarks. The other >> number you are probably interested in is 63, which is 63 >> megabytes-per-second (MB/s). >> >> These numbers are software-only implementations. And the provider is >> "C++", which is software only. >> >> Here is what an aarch64 machine looks like, from an early Pine64 board: >> >> <TR><TD>AES/CTR (128-bit key)<TD>ARMv8<TD>428<TD>2.67<TD>1.174<TD>1408 >> <TR><TD>AES/CTR (192-bit key)<TD>ARMv8<TD>376<TD>3.05<TD>1.190<TD>1428 >> <TR><TD>AES/CTR (256-bit key)<TD>ARMv8<TD>343<TD>3.33<TD>1.230<TD>1476 >> <TR><TD>AES/CBC (128-bit key)<TD>ARMv8<TD>280<TD>4.08<TD>0.994<TD>1192 >> <TR><TD>AES/CBC (192-bit key)<TD>ARMv8<TD>245<TD>4.67<TD>1.007<TD>1208 >> <TR><TD>AES/CBC (256-bit key)<TD>ARMv8<TD>218<TD>5.26<TD>1.047<TD>1256 >> <TR><TD>AES/XTS (256-bit key)<TD>ARMv8<TD>225<TD>5.09<TD>1.728<TD>2074 >> <TR><TD>AES/XTS (384-bit key)<TD>ARMv8<TD>210<TD>5.46<TD>1.765<TD>2117 >> <TR><TD>AES/XTS (512-bit key)<TD>ARMv8<TD>199<TD>5.76<TD>1.854<TD>2225 >> <TR><TD>AES/OFB (128-bit key)<TD>ARMv8<TD>226<TD>5.06<TD>1.152<TD>1383 >> <TR><TD>AES/CFB (128-bit key)<TD>ARMv8<TD>249<TD>4.60<TD>1.414<TD>1697 >> <TR><TD>AES/ECB (128-bit key)<TD>ARMv8<TD>604<TD>1.90<TD>0.525<TD>630 >> >> AES/CFB is 4.6 cpb. The provider is "ARMv8." 249 is 249 MB/s. >> >> Modern aarch64 machines can usually get down to 2.5 cpb or so for CFB >> mode. This is from a MacMini M1: >> >> <TR><TD>AES/CTR (128-bit key)<TD>ARMv8<TD>9316<TD>0.33<TD>0.109<TD>349 >> <TR><TD>AES/CTR (192-bit key)<TD>ARMv8<TD>8194<TD>0.37<TD>0.117<TD>376 >> <TR><TD>AES/CTR (256-bit key)<TD>ARMv8<TD>7303<TD>0.42<TD>0.129<TD>412 >> <TR><TD>AES/CBC (128-bit key)<TD>ARMv8<TD>1083<TD>2.82<TD>0.097<TD>310 >> <TR><TD>AES/CBC (192-bit key)<TD>ARMv8<TD>938<TD>3.25<TD>0.106<TD>339 >> <TR><TD>AES/CBC (256-bit key)<TD>ARMv8<TD>834<TD>3.66<TD>0.118<TD>379 >> <TR><TD>AES/XTS (256-bit key)<TD>ARMv8<TD>1807<TD>1.69<TD>0.181<TD>578 >> <TR><TD>AES/XTS (384-bit key)<TD>ARMv8<TD>1768<TD>1.73<TD>0.203<TD>650 >> <TR><TD>AES/XTS (512-bit key)<TD>ARMv8<TD>1712<TD>1.78<TD>0.227<TD>726 >> <TR><TD>AES/OFB (128-bit key)<TD>ARMv8<TD>1133<TD>2.69<TD>0.106<TD>340 >> <TR><TD>AES/CFB (128-bit key)<TD>ARMv8<TD>1121<TD>2.72<TD>0.117<TD>374 >> <TR><TD>AES/ECB (128-bit key)<TD>ARMv8<TD>10883<TD>0.28<TD>0.072<TD>232 >> >> AES/CFB is running at 2.7 cpb. 1121 is 1.12 GB/s. >> >> There's something unusual about your setup. You will need to determine >> why it is not providing ARMv8 acceleration, or why the library is not >> picking it up. >> >> Since your benchmarks are missing AES/XTR results, I know you are >> using an old version of the library. Maybe you should update to >> Crypto++ 8.7 for starters. >> >> Jeff >> >> > On Thursday, May 11, 2023 at 5:30:26 PM UTC-4 Jeffrey Walton wrote: >> >> >> >> On Thu, May 11, 2023 at 4:24 PM Dwight Kulkarni <dwi...@realtime-7.com> >> wrote: >> >> > >> >> > I created a 5 MB message and encrypted it. The message takes 3 >> seconds to encrypt. I needed something around 200 ms, even if the >> encryption is weaker. >> >> > >> >> > My code is below, should I be setting any flags when compiling the >> library to make it fast ? >> >> > >> >> > Got message str at: 05/11/2023 20:21:31.346 >> >> > in encrypt aes >> >> > Encrypted at: 05/11/2023 20:21:33.027 >> >> > >> >> > message_bytes = encrypt_aes(message_bytes, key, iv); >> >> > cout << " Encrypted at: " << get_curr_datetime_str() << endl; >> >> > >> >> > >> >> > std::string encrypt_aes(std::string message, SecByteBlock key, >> SecByteBlock iv) { >> >> > try { >> >> > cout <<" in encrypt aes " <<endl; >> >> > AlgorithmParameters params = MakeParameters(Name::FeedbackSize(), >> 1/*8-bits*/) >> >> > (Name::IV(), ConstByteArrayParameter(iv)); >> >> > CFB_Mode<AES>::Encryption e; >> >> > std::string cipher; >> >> > e.SetKey(key, key.size(), params); >> >> > StringSource ss(message, true, new StreamTransformationFilter(e, new >> StringSink(cipher))); >> >> > cout << " returning cipher " << endl; >> >> > return cipher; >> >> > } >> >> > catch (CryptoPP::Exception e) { >> >> > std::cerr << e.what() << std::endl; >> >> > return ""; >> >> > } >> >> > } >> >> >> >> You should probably avoid multiple resizes on cipher object. Add >> something like: >> >> >> >> std::string cipher; >> >> cipher.reserve(message.size()+16); >> >> >> >> Otherwise, please run the benchmarks and report back: >> >> >> >> cryptest.exe b2 3 <cpufreq in GHz> >> >> >> >> Also see https://cryptopp.com/wiki/Benchmarks . >> > -- You received this message because you are subscribed to the Google Groups "Crypto++ Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to cryptopp-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/cryptopp-users/bff0e34a-a8b7-457c-b6fe-5c85c35dd09cn%40googlegroups.com.