diff --git a/BENCHMARKS.md b/BENCHMARKS.md index 00701c24a..f946cce69 100644 --- a/BENCHMARKS.md +++ b/BENCHMARKS.md @@ -9,9 +9,9 @@ How long rind and the usual Rust crypto libraries take for the same operations, | Host | CPU | OS | Measured | |---|---|---|---| | `nixos` | AMD Ryzen 9 5900XT 16-Core Processor | NixOS 26.11 (Zokor) (Linux 6.18.56) | 2026-11-06 at [`f95b91da`](https://github.com/moq-dev/rind/commit/f95b91da886bee265dbd836192a7ade2f9158c47), noisy | -| `desktop` | Intel(R) Core(TM) Ultra 7 270K Plus | Ubuntu 26.04.1 LTS (Linux 7.0.0-42-generic) | 2026-11-06 at [`f95b91da`](https://github.com/moq-dev/rind/commit/f95b91da886bee265dbd836192a7ade2f9158c47), noisy | +| `desktop` | Intel(R) Core(TM) Ultra 7 270K Plus | Ubuntu 26.04.1 LTS (Linux 7.0.0-42-generic) | 2026-11-07 at [`9e7f6a5a`](https://github.com/moq-dev/rind/commit/9e7f6a5a9ea59a0cf1251c24af6c5d4f21c2b0fd) | | `nixos2` | Intel(R) Core(TM) i7-8700 CPU @ 3.20GHz | NixOS 26.11 (Zokor) (Linux 6.18.56) | 2026-11-06 at [`f95b91da`](https://github.com/moq-dev/rind/commit/f95b91da886bee265dbd836192a7ade2f9158c47) | -| `kixtop` | Apple M4 | macOS 26.6.2 (25.6.0) | 2026-11-07 at [`93f91f48`](https://github.com/moq-dev/rind/commit/93f91f48c9b742890a34bb3485071da6f2d241ab) | +| `kixtop` | Apple M4 | macOS 26.6.2 (25.6.0) | 2026-11-07 at [`9e7f6a5a`](https://github.com/moq-dev/rind/commit/9e7f6a5a9ea59a0cf1251c24af6c5d4f21c2b0fd) | | `ovh-iad` | Intel Core Processor (Haswell, no TSX) | NixOS 26.11 (Zokor) (Linux 6.18.40) | 2026-11-06 at [`6b185382`](https://github.com/moq-dev/rind/commit/6b185382a621d6ffe630db4118adc464bc4d158a) | | `ovh-sea` | Intel Core Processor (Haswell, no TSX) | NixOS 26.11 (Zokor) (Linux 6.18.40) | 2026-11-06 at [`6b185382`](https://github.com/moq-dev/rind/commit/6b185382a621d6ffe630db4118adc464bc4d158a) | @@ -21,6 +21,8 @@ Each host builds with the pinned toolchain in the Nix dev shell, and runs `admin Each row is one operation and each column one library. Each cell holds a square per host, colored by that library's time over the fastest library's on the same host, as the legend shows. A ✓ in a square marks verified code. Each square's tooltip, in the SVG opened on its own, gives its time; the tables below each host give them all. A library with no square doesn't offer the operation, or the host didn't time it, as its section says. +rind (DIT held) times rind with `rind::cpu::Dit::hold()` held across the timed loop, as a caller batching calls does, so that DIT is set once rather than around each call. Only a CPU with DIT times it, since elsewhere it runs the same code as rind's own column, and it never counts as the fastest library. + Time over the fastest library's, by operation, library, and host @@ -104,7 +106,7 @@ Measured 2026-11-06 at [`f95b91da`](https://github.com/moq-dev/rind/commit/f95b9 ### `desktop`: Intel(R) Core(TM) Ultra 7 270K Plus -Measured 2026-11-06 at [`f95b91da`](https://github.com/moq-dev/rind/commit/f95b91da886bee265dbd836192a7ade2f9158c47), noisy, on Ubuntu 26.04.1 LTS (Linux 7.0.0-42-generic) with rustc 1.98.1 (48a229cea 2026-09-01). +Measured 2026-11-07 at [`9e7f6a5a`](https://github.com/moq-dev/rind/commit/9e7f6a5a9ea59a0cf1251c24af6c5d4f21c2b0fd), on Ubuntu 26.04.1 LTS (Linux 7.0.0-42-generic) with rustc 1.98.1 (48a229cea 2026-09-01). @@ -116,65 +118,65 @@ Measured 2026-11-06 at [`f95b91da`](https://github.com/moq-dev/rind/commit/f95b9 | Operation | rind | aws-lc-rs | ring | RustCrypto + dalek | graviola | libcrux | OpenSSL | |---|---|---|---|---|---|---|---| -| full handshake, X25519MLKEM768 | 174.97 µs | 235.60 µs | - | - | 191.49 µs | - | 437.46 µs | -| full handshake, X25519 | 152.75 µs | 203.62 µs | 222.88 µs | - | 162.55 µs | - | 367.79 µs | -| full handshake, P-256 | 175.68 µs | 228.85 µs | 221.72 µs | - | 193.10 µs | - | 406.49 µs | -| full handshake, Ed25519 certificate | 123.11 µs | 168.12 µs | 205.53 µs | - | 125.46 µs | - | 373.29 µs | -| full handshake, RSA-2048 certificate | 428.67 µs | 485.87 µs | 493.81 µs | - | 440.23 µs | - | 682.29 µs | -| resumed handshake, X25519 | 54.19 µs | 102.84 µs | 113.00 µs | - | 55.16 µs | - | 231.44 µs | -| 1 MB transfer, AES-128-GCM | 193.36 µs | 241.18 µs | 174.96 µs | - | 294.75 µs | - | 255.72 µs | -| 1 MB transfer, AES-256-GCM | 189.84 µs | 272.23 µs | 192.15 µs | - | 338.97 µs | - | 292.12 µs | -| 1 MB transfer, ChaCha20-Poly1305 | 621.49 µs | 609.72 µs | 594.88 µs | - | 1.17 ms | - | 661.80 µs | -| AES-128-GCM seal, 32 B | 18 ns | 37 ns | 42 ns | 73 ns | 42 ns | 168 ns | 55 ns | -| AES-128-GCM seal, 1350 B | 94 ns | 149 ns | 118 ns | 272 ns | 227 ns | 1.94 µs | 163 ns | -| AES-128-GCM seal, 16 KB | 781 ns | 1.33 µs | 799 ns | 2.49 µs | 2.02 µs | 22.02 µs | 1.34 µs | -| AES-128-GCM open, 32 B | 28 ns | 37 ns | 42 ns | 78 ns | 36 ns | 159 ns | 58 ns | -| AES-128-GCM open, 1350 B | 99 ns | 149 ns | 114 ns | 282 ns | 176 ns | 2.00 µs | 159 ns | -| AES-128-GCM open, 16 KB | 816 ns | 1.28 µs | 829 ns | 2.54 µs | 1.42 µs | 22.31 µs | 1.30 µs | -| AES-256-GCM seal, 32 B | 20 ns | 40 ns | 43 ns | 77 ns | 44 ns | 216 ns | 58 ns | -| AES-256-GCM seal, 1350 B | 106 ns | 173 ns | 133 ns | 313 ns | 258 ns | 2.83 µs | 186 ns | -| AES-256-GCM seal, 16 KB | 925 ns | 1.56 µs | 946 ns | 2.91 µs | 2.46 µs | 32.69 µs | 1.59 µs | -| AES-256-GCM open, 32 B | 28 ns | 38 ns | 45 ns | 82 ns | 38 ns | 218 ns | 62 ns | -| AES-256-GCM open, 1350 B | 107 ns | 173 ns | 124 ns | 322 ns | 203 ns | 2.85 µs | 189 ns | -| AES-256-GCM open, 16 KB | 917 ns | 1.57 µs | 921 ns | 2.96 µs | 1.74 µs | 32.51 µs | 1.60 µs | -| ChaCha20-Poly1305 seal, 32 B | 100 ns | 105 ns | 101 ns | 1.07 µs | 180 ns | 157 ns ✓ | 177 ns | -| ChaCha20-Poly1305 seal, 1350 B | 441 ns | 453 ns | 447 ns | 1.67 µs | 905 ns | 1.78 µs ✓ | 590 ns | -| ChaCha20-Poly1305 seal, 16 KB | 4.17 µs | 4.15 µs | 4.14 µs | 8.14 µs | 8.30 µs | 19.63 µs ✓ | 4.41 µs | -| XChaCha20-Poly1305 seal, 32 B | 188 ns | 199 ns | - | 889 ns | 259 ns | 248 ns | - | -| XChaCha20-Poly1305 seal, 1350 B | 838 ns | 687 ns | - | 1.74 µs | 1.35 µs | 2.56 µs | - | -| XChaCha20-Poly1305 seal, 16 KB | 6.26 µs | 6.27 µs | - | 12.28 µs | 12.79 µs | 27.40 µs | - | +| full handshake, X25519MLKEM768 | 172.30 µs | 233.73 µs | - | - | 188.19 µs | - | 438.88 µs | +| full handshake, X25519 | 151.32 µs | 201.93 µs | 221.01 µs | - | 161.40 µs | - | 366.38 µs | +| full handshake, P-256 | 174.55 µs | 227.86 µs | 219.51 µs | - | 191.81 µs | - | 400.76 µs | +| full handshake, Ed25519 certificate | 121.90 µs | 166.63 µs | 202.04 µs | - | 123.71 µs | - | 368.21 µs | +| full handshake, RSA-2048 certificate | 432.83 µs | 480.43 µs | 488.22 µs | - | 440.42 µs | - | 670.54 µs | +| resumed handshake, X25519 | 54.39 µs | 101.36 µs | 111.29 µs | - | 55.62 µs | - | 232.44 µs | +| 1 MB transfer, AES-128-GCM | 168.21 µs | 233.34 µs | 170.08 µs | - | 289.61 µs | - | 250.85 µs | +| 1 MB transfer, AES-256-GCM | 184.54 µs | 265.29 µs | 188.67 µs | - | 337.96 µs | - | 285.79 µs | +| 1 MB transfer, ChaCha20-Poly1305 | 596.91 µs | 595.41 µs | 590.49 µs | - | 1.16 ms | - | 658.48 µs | +| AES-128-GCM seal, 32 B | 20 ns | 38 ns | 41 ns | 73 ns | 42 ns | 171 ns | 57 ns | +| AES-128-GCM seal, 1350 B | 93 ns | 159 ns | 119 ns | 278 ns | 226 ns | 1.98 µs | 160 ns | +| AES-128-GCM seal, 16 KB | 799 ns | 1.32 µs | 818 ns | 2.49 µs | 2.05 µs | 22.05 µs | 1.35 µs | +| AES-128-GCM open, 32 B | 15 ns | 38 ns | 41 ns | 78 ns | 36 ns | 162 ns | 59 ns | +| AES-128-GCM open, 1350 B | 89 ns | 151 ns | 114 ns | 283 ns | 175 ns | 1.99 µs | 162 ns | +| AES-128-GCM open, 16 KB | 793 ns | 1.26 µs | 814 ns | 2.51 µs | 1.40 µs | 21.94 µs | 1.29 µs | +| AES-256-GCM seal, 32 B | 21 ns | 39 ns | 43 ns | 78 ns | 45 ns | 217 ns | 61 ns | +| AES-256-GCM seal, 1350 B | 107 ns | 175 ns | 134 ns | 313 ns | 257 ns | 2.87 µs | 184 ns | +| AES-256-GCM seal, 16 KB | 954 ns | 1.58 µs | 975 ns | 2.90 µs | 2.46 µs | 32.86 µs | 1.60 µs | +| AES-256-GCM open, 32 B | 16 ns | 38 ns | 43 ns | 82 ns | 38 ns | 215 ns | 61 ns | +| AES-256-GCM open, 1350 B | 99 ns | 172 ns | 121 ns | 318 ns | 201 ns | 2.85 µs | 189 ns | +| AES-256-GCM open, 16 KB | 899 ns | 1.55 µs | 933 ns | 2.92 µs | 1.71 µs | 32.61 µs | 1.58 µs | +| ChaCha20-Poly1305 seal, 32 B | 98 ns | 103 ns | 99 ns | 1.05 µs | 177 ns | 157 ns ✓ | 175 ns | +| ChaCha20-Poly1305 seal, 1350 B | 440 ns | 446 ns | 448 ns | 1.64 µs | 890 ns | 1.77 µs ✓ | 587 ns | +| ChaCha20-Poly1305 seal, 16 KB | 4.19 µs | 4.13 µs | 4.12 µs | 8.03 µs | 8.29 µs | 19.31 µs ✓ | 4.35 µs | +| XChaCha20-Poly1305 seal, 32 B | 186 ns | 199 ns | - | 1.15 µs | 255 ns | 244 ns | - | +| XChaCha20-Poly1305 seal, 1350 B | 529 ns | 539 ns | - | 1.73 µs | 974 ns | 1.83 µs | - | +| XChaCha20-Poly1305 seal, 16 KB | 4.17 µs | 4.23 µs | - | 8.15 µs | 8.40 µs | 19.61 µs | - | | AES-128 header protection | 2 ns | 3 ns | 3 ns | - | - | - | - | | AES-256 header protection | 2 ns | 5 ns | 5 ns | - | - | - | - | -| ChaCha20 header protection | 54 ns ✓ | 69 ns | 61 ns | - | - | - | - | -| X25519 | 19.68 µs ✓ | 19.54 µs | 35.63 µs | 36.52 µs | 18.50 µs | 43.11 µs ✓ | 34.02 µs | -| P-256 ECDH | 29.85 µs | 32.27 µs | 34.14 µs | 123.01 µs | 33.46 µs | 169.87 µs ✓ | 52.91 µs | -| Ed25519 sign | 4.15 µs | 4.56 µs | 13.14 µs | 9.61 µs | 4.39 µs | 28.97 µs ✓ | 13.69 µs | -| Ed25519 verify | 21.75 µs | 21.56 µs | 26.22 µs | 21.88 µs | 21.61 µs | 42.16 µs ✓ | 45.59 µs | -| P-256 ECDSA sign | 6.84 µs | 12.33 µs | 12.24 µs | 31.65 µs | 9.26 µs | 61.34 µs ✓ | 14.33 µs | -| P-256 ECDSA verify | 30.95 µs | 30.08 µs | 33.74 µs | 104.58 µs | 32.89 µs | 147.11 µs ✓ | 46.41 µs | -| SHA-256, 64 B | 28 ns | 57 ns | 58 ns | 40 ns | 41 ns | 211 ns ✓ | 161 ns | -| SHA-256, 1350 B | 279 ns | 312 ns | 304 ns | 296 ns | 297 ns | 2.31 µs ✓ | 415 ns | -| SHA-256, 16 KB | 3.24 µs | 3.28 µs | 3.28 µs | 3.26 µs | 3.27 µs | 26.81 µs ✓ | 3.39 µs | -| SHA-512, 64 B | 60 ns | 136 ns ✓ | 142 ns | 120 ns | 150 ns | 167 ns ✓ | 233 ns | -| SHA-512, 1350 B | 470 ns | 1.27 µs ✓ | 1.26 µs | 1.18 µs | 1.51 µs | 1.69 µs ✓ | 1.20 µs | -| SHA-512, 16 KB | 2.68 µs | 14.32 µs ✓ | 14.36 µs | 13.55 µs | 17.96 µs | 20.01 µs ✓ | 12.51 µs | -| HMAC-SHA256, 64 B | 75 ns | 180 ns | 145 ns | 104 ns | 115 ns | 536 ns ✓ | 1.56 µs | -| HMAC-SHA256, 1350 B | 327 ns | 434 ns | 399 ns | 358 ns | 363 ns | 2.66 µs ✓ | 1.83 µs | -| HKDF-SHA256 extract and expand | 152 ns | 288 ns | 305 ns | 223 ns | - | 965 ns ✓ | 1.76 µs | -| HKDF-SHA256 expand | 47 ns | 126 ns | 122 ns | 85 ns | - | 484 ns ✓ | 1.25 µs | -| RSA-2048 PKCS#1 sign | 348.43 µs | 349.47 µs | 341.11 µs | 588.67 µs | 343.91 µs | - | 397.72 µs | -| RSA-2048 PKCS#1 verify | 8.97 µs | 10.86 µs | 12.70 µs | 29.41 µs | 14.06 µs | - | 15.59 µs | -| RSA-2048 PSS sign | 346.52 µs | 350.45 µs | 341.45 µs | 588.33 µs | 342.67 µs | 4.10 ms ✓ | 395.81 µs | -| RSA-2048 PSS verify | 9.18 µs | 11.17 µs | 13.31 µs | 35.62 µs | 14.44 µs | 252.13 µs ✓ | 16.36 µs | -| ML-KEM-768 key generation | 6.45 µs | 8.27 µs | - | 40.26 µs | 7.67 µs | 15.15 µs | 19.80 µs | -| ML-KEM-768 encapsulate | 6.65 µs | 8.68 µs | - | 41.71 µs | 9.11 µs | 12.94 µs | 18.77 µs | -| ML-KEM-768 decapsulate | 4.69 µs | 9.02 µs | - | 54.19 µs | 6.59 µs | 13.44 µs | 16.05 µs | -| P-384 ECDH | 100.08 µs | 111.11 µs | 369.71 µs | 401.25 µs | 170.94 µs | - | 264.84 µs | -| P-384 ECDSA sign | 23.53 µs | 46.52 µs | 200.86 µs | 86.86 µs | 90.69 µs | - | 89.64 µs | -| P-384 ECDSA verify | 98.87 µs | 116.66 µs | 360.29 µs | 360.21 µs | 167.40 µs | - | 215.86 µs | -| P-521 ECDH | 160.77 µs | 170.98 µs | - | 431.17 µs | - | - | 276.21 µs | -| P-521 ECDSA sign | 40.56 µs | 89.64 µs | - | 95.29 µs | - | - | 129.20 µs | -| P-521 ECDSA verify | 147.09 µs | 186.61 µs | - | 359.57 µs | - | - | 267.51 µs | +| ChaCha20 header protection | 53 ns ✓ | 68 ns | 60 ns | - | - | - | - | +| X25519 | 18.20 µs ✓ | 19.24 µs | 35.63 µs | 36.06 µs | 18.09 µs | 42.68 µs ✓ | 33.95 µs | +| P-256 ECDH | 29.52 µs | 31.77 µs | 33.64 µs | 121.30 µs | 33.67 µs | 171.68 µs ✓ | 52.92 µs | +| Ed25519 sign | 4.11 µs | 4.49 µs | 13.11 µs | 9.60 µs | 4.40 µs | 28.54 µs ✓ | 13.67 µs | +| Ed25519 verify | 21.43 µs | 21.41 µs | 25.93 µs | 21.87 µs | 21.45 µs | 41.83 µs ✓ | 44.79 µs | +| P-256 ECDSA sign | 6.74 µs | 12.25 µs | 12.20 µs | 31.32 µs | 8.97 µs | 61.81 µs ✓ | 14.45 µs | +| P-256 ECDSA verify | 30.59 µs | 29.75 µs | 33.23 µs | 103.24 µs | 32.36 µs | 147.27 µs ✓ | 46.46 µs | +| SHA-256, 64 B | 28 ns | 57 ns | 56 ns | 39 ns | 40 ns | 218 ns ✓ | 158 ns | +| SHA-256, 1350 B | 269 ns | 306 ns | 304 ns | 296 ns | 292 ns | 2.29 µs ✓ | 406 ns | +| SHA-256, 16 KB | 3.19 µs | 3.23 µs | 3.22 µs | 3.22 µs | 3.22 µs | 26.90 µs ✓ | 3.36 µs | +| SHA-512, 64 B | 60 ns | 134 ns ✓ | 140 ns | 120 ns | 148 ns | 166 ns ✓ | 226 ns | +| SHA-512, 1350 B | 249 ns | 1.24 µs ✓ | 1.26 µs | 1.17 µs | 1.49 µs | 1.72 µs ✓ | 1.17 µs | +| SHA-512, 16 KB | 2.63 µs | 14.12 µs ✓ | 14.10 µs | 13.51 µs | 17.50 µs | 20.10 µs ✓ | 12.29 µs | +| HMAC-SHA256, 64 B | 75 ns | 180 ns | 145 ns | 103 ns | 110 ns | 537 ns ✓ | 1.55 µs | +| HMAC-SHA256, 1350 B | 328 ns | 435 ns | 397 ns | 356 ns | 358 ns | 2.68 µs ✓ | 1.81 µs | +| HKDF-SHA256 extract and expand | 158 ns | 285 ns | 303 ns | 223 ns | - | 965 ns ✓ | 1.72 µs | +| HKDF-SHA256 expand | 66 ns | 124 ns | 120 ns | 84 ns | - | 480 ns ✓ | 1.23 µs | +| RSA-2048 PKCS#1 sign | 341.49 µs | 344.24 µs | 336.10 µs | 580.18 µs | 343.75 µs | - | 393.45 µs | +| RSA-2048 PKCS#1 verify | 8.92 µs | 10.96 µs | 12.78 µs | 29.01 µs | 13.98 µs | - | 15.51 µs | +| RSA-2048 PSS sign | 341.45 µs | 346.55 µs | 342.49 µs | 581.16 µs | 344.58 µs | 3.69 ms ✓ | 390.44 µs | +| RSA-2048 PSS verify | 9.15 µs | 11.16 µs | 13.19 µs | 35.27 µs | 14.30 µs | 251.91 µs ✓ | 16.25 µs | +| ML-KEM-768 key generation | 6.35 µs | 8.13 µs | - | 39.63 µs | 7.37 µs | 15.02 µs | 19.81 µs | +| ML-KEM-768 encapsulate | 6.50 µs | 8.48 µs | - | 41.38 µs | 9.00 µs | 12.80 µs | 18.77 µs | +| ML-KEM-768 decapsulate | 4.64 µs | 8.90 µs | - | 54.87 µs | 6.54 µs | 13.44 µs | 15.77 µs | +| P-384 ECDH | 100.20 µs | 109.34 µs | 369.83 µs | 402.09 µs | 174.12 µs | - | 265.21 µs | +| P-384 ECDSA sign | 23.48 µs | 46.55 µs | 197.31 µs | 85.50 µs | 90.29 µs | - | 88.98 µs | +| P-384 ECDSA verify | 100.10 µs | 115.71 µs | 357.26 µs | 359.61 µs | 166.49 µs | - | 216.27 µs | +| P-521 ECDH | 159.57 µs | 171.50 µs | - | 428.27 µs | - | - | 276.64 µs | +| P-521 ECDSA sign | 40.09 µs | 88.28 µs | - | 94.09 µs | - | - | 127.93 µs | +| P-521 ECDSA verify | 145.10 µs | 186.69 µs | - | 352.95 µs | - | - | 261.10 µs | @@ -256,7 +258,7 @@ Measured 2026-11-06 at [`f95b91da`](https://github.com/moq-dev/rind/commit/f95b9 ### `kixtop`: Apple M4 -Measured 2026-11-07 at [`93f91f48`](https://github.com/moq-dev/rind/commit/93f91f48c9b742890a34bb3485071da6f2d241ab), on macOS 26.6.2 (25.6.0) with rustc 1.98.1 (48a229cea 2026-09-01). +Measured 2026-11-07 at [`9e7f6a5a`](https://github.com/moq-dev/rind/commit/9e7f6a5a9ea59a0cf1251c24af6c5d4f21c2b0fd), on macOS 26.6.2 (25.6.0) with rustc 1.98.1 (48a229cea 2026-09-01). The maintainer's MacBook, in daily use. Its cores have DIT, which rind sets around each call that handles a secret and the other libraries never set; Known gaps gives its cost. @@ -268,67 +270,67 @@ The maintainer's MacBook, in daily use. Its cores have DIT, which rind sets arou
Times on kixtop -| Operation | rind | aws-lc-rs | ring | RustCrypto + dalek | graviola | libcrux | OpenSSL | -|---|---|---|---|---|---|---|---| -| full handshake, X25519MLKEM768 | 177.98 µs | 214.67 µs | - | - | 180.42 µs | - | 459.07 µs | -| full handshake, X25519 | 155.39 µs | 184.86 µs | 184.65 µs | - | 159.19 µs | - | 374.65 µs | -| full handshake, P-256 | 176.20 µs | 206.73 µs | 201.44 µs | - | 191.72 µs | - | 400.48 µs | -| full handshake, Ed25519 certificate | 127.23 µs | 150.93 µs | 155.04 µs | - | 124.12 µs | - | 383.83 µs | -| full handshake, RSA-2048 certificate | 371.35 µs | 406.71 µs | 446.94 µs | - | 683.15 µs | - | 643.30 µs | -| resumed handshake, X25519 | 66.29 µs | 92.46 µs | 88.29 µs | - | 61.75 µs | - | 255.12 µs | -| 1 MB transfer, AES-128-GCM | 308.57 µs | 310.78 µs | 372.59 µs | - | 327.11 µs | - | 338.35 µs | -| 1 MB transfer, AES-256-GCM | 343.96 µs | 341.91 µs | 380.26 µs | - | 397.41 µs | - | 371.49 µs | -| 1 MB transfer, ChaCha20-Poly1305 | 1.12 ms | 1.12 ms | 1.11 ms | - | 1.79 ms | - | 1.11 ms | -| AES-128-GCM seal, 32 B | 57 ns | 50 ns | 42 ns | 24 ns | 80 ns | 53 ns | 69 ns | -| AES-128-GCM seal, 1350 B | 212 ns | 180 ns | 212 ns | 213 ns | 215 ns | 619 ns | 197 ns | -| AES-128-GCM seal, 16 KB | 1.49 µs | 1.45 µs | 1.97 µs | 2.36 µs | 1.60 µs | 7.15 µs | 1.52 µs | -| AES-128-GCM open, 32 B | 47 ns | 47 ns | 39 ns | 28 ns | 85 ns | 64 ns | 65 ns | -| AES-128-GCM open, 1350 B | 214 ns | 193 ns | 247 ns | 237 ns | 226 ns | 647 ns | 199 ns | -| AES-128-GCM open, 16 KB | 1.61 µs | 1.57 µs | 2.18 µs | 2.46 µs | 1.71 µs | 6.97 µs | 1.66 µs | -| AES-256-GCM seal, 32 B | 61 ns | 54 ns | 45 ns | 25 ns | 79 ns | 53 ns | 67 ns | -| AES-256-GCM seal, 1350 B | 237 ns | 205 ns | 220 ns | 246 ns | 262 ns | 650 ns | 222 ns | -| AES-256-GCM seal, 16 KB | 1.75 µs | 1.72 µs | 2.04 µs | 2.72 µs | 2.16 µs | 7.20 µs | 1.79 µs | -| AES-256-GCM open, 32 B | 49 ns | 49 ns | 40 ns | 41 ns | 85 ns | 67 ns | 68 ns | -| AES-256-GCM open, 1350 B | 233 ns | 218 ns | 252 ns | 267 ns | 263 ns | 674 ns | 225 ns | -| AES-256-GCM open, 16 KB | 1.86 µs | 1.83 µs | 2.25 µs | 2.89 µs | 2.18 µs | 7.35 µs | 1.94 µs | -| ChaCha20-Poly1305 seal, 32 B | 185 ns | 163 ns | 148 ns | 344 ns | 196 ns | 171 ns ✓ | 215 ns | -| ChaCha20-Poly1305 seal, 1350 B | 792 ns | 771 ns | 755 ns | 1.78 µs | 1.25 µs | 1.98 µs ✓ | 842 ns | -| ChaCha20-Poly1305 seal, 16 KB | 7.70 µs | 7.65 µs | 7.67 µs | 15.21 µs | 12.85 µs | 22.07 µs ✓ | 7.45 µs | -| XChaCha20-Poly1305 seal, 32 B | 1.19 µs | 943 ns | - | 1.53 µs | 1.11 µs | 1.11 µs | - | -| XChaCha20-Poly1305 seal, 1350 B | 2.02 µs | 1.89 µs | - | 3.19 µs | 2.85 µs | 3.80 µs | - | -| XChaCha20-Poly1305 seal, 16 KB | 11.36 µs | 11.43 µs | - | 22.76 µs | 19.24 µs | 34.20 µs | - | -| AES-128 header protection | 35 ns | 3 ns | 3 ns | - | - | - | - | -| AES-256 header protection | 38 ns | 3 ns | 4 ns | - | - | - | - | -| ChaCha20 header protection | 89 ns ✓ | 73 ns | 68 ns | - | - | - | - | -| X25519 | 16.71 µs ✓ | 17.85 µs | 24.48 µs | 29.71 µs | 17.74 µs | 37.77 µs ✓ | 35.77 µs | -| P-256 ECDH | 26.27 µs ✓ | 28.51 µs | 32.31 µs | 180.62 µs | 31.56 µs | 183.72 µs ✓ | 49.96 µs | -| Ed25519 sign | 3.95 µs | 4.06 µs | 7.07 µs | 8.66 µs | 4.17 µs | 22.12 µs ✓ | 16.42 µs | -| Ed25519 verify | 18.66 µs | 18.52 µs | 19.94 µs | 18.42 µs | 18.69 µs | 29.57 µs ✓ | 41.08 µs | -| P-256 ECDSA sign | 7.11 µs ✓ | 11.27 µs | 11.01 µs | 44.33 µs | 8.83 µs | 67.38 µs ✓ | 12.62 µs | -| P-256 ECDSA verify | 27.15 µs ✓ | 27.15 µs | 29.35 µs | 157.87 µs | 28.60 µs | 156.54 µs ✓ | 41.90 µs | -| SHA-256, 64 B | 93 ns | 71 ns | 45 ns | 37 ns | 36 ns | 232 ns ✓ | 162 ns | -| SHA-256, 1350 B | 484 ns | 440 ns | 414 ns | 475 ns | 472 ns | 2.52 µs ✓ | 531 ns | -| SHA-256, 16 KB | 4.94 µs | 4.87 µs | 4.90 µs | 5.69 µs | 5.76 µs | 29.13 µs ✓ | 5.17 µs | -| SHA-512, 64 B | 113 ns | 108 ns | 88 ns | 79 ns | 177 ns | 141 ns ✓ | 211 ns | -| SHA-512, 1350 B | 827 ns | 775 ns | 737 ns | 722 ns | 1.88 µs | 1.58 µs ✓ | 878 ns | -| SHA-512, 16 KB | 8.77 µs | 8.70 µs | 8.69 µs | 8.50 µs | 22.11 µs | 18.41 µs ✓ | 8.88 µs | -| HMAC-SHA256, 64 B | 191 ns | 248 ns | 137 ns | 102 ns | 115 ns | 568 ns ✓ | 2.06 µs | -| HMAC-SHA256, 1350 B | 559 ns | 620 ns | 502 ns | 542 ns | 557 ns | 2.86 µs ✓ | 2.43 µs | -| HKDF-SHA256 extract and expand | 343 ns | 330 ns | 274 ns | 218 ns | - | 942 ns ✓ | 2.14 µs | -| HKDF-SHA256 expand | 109 ns | 154 ns | 94 ns | 70 ns | - | 481 ns ✓ | 1.54 µs | -| RSA-2048 PKCS#1 sign | 275.12 µs | 285.95 µs | 322.84 µs | 586.34 µs | 556.70 µs | - | 341.31 µs | -| RSA-2048 PKCS#1 verify | 8.38 µs | 9.48 µs | 11.05 µs | 30.77 µs | 18.51 µs | - | 16.66 µs | -| RSA-2048 PSS sign | 275.29 µs | 288.58 µs | 324.86 µs | 588.38 µs | 558.57 µs | 4.48 ms ✓ | 342.61 µs | -| RSA-2048 PSS verify | 8.71 µs | 9.84 µs | 11.48 µs | 39.26 µs | 18.79 µs | 299.96 µs ✓ | 17.44 µs | -| ML-KEM-768 key generation | 6.20 µs | 7.46 µs | - | 26.57 µs | 6.22 µs | 12.01 µs | 25.06 µs | -| ML-KEM-768 encapsulate | 6.84 µs | 8.01 µs | - | 27.77 µs | 6.40 µs | 9.39 µs | 24.07 µs | -| ML-KEM-768 decapsulate | 4.17 µs | 7.75 µs | - | 34.06 µs | 4.05 µs | 9.58 µs | 24.43 µs | -| P-384 ECDH | 91.49 µs | 105.75 µs | 412.48 µs | 494.20 µs | 153.84 µs | - | 279.51 µs | -| P-384 ECDSA sign | 22.93 µs | 49.16 µs | 223.72 µs | 112.64 µs | 81.12 µs | - | 104.84 µs | -| P-384 ECDSA verify | 88.12 µs | 111.27 µs | 396.57 µs | 426.43 µs | 151.78 µs | - | 238.33 µs | -| P-521 ECDH | 130.92 µs | 143.20 µs | - | 397.10 µs | - | - | 247.22 µs | -| P-521 ECDSA sign | 36.32 µs | 84.33 µs | - | 79.73 µs | - | - | 132.13 µs | -| P-521 ECDSA verify | 121.06 µs | 167.21 µs | - | 253.06 µs | - | - | 254.80 µs | +| Operation | rind | rind (DIT held) | aws-lc-rs | ring | RustCrypto + dalek | graviola | libcrux | OpenSSL | +|---|---|---|---|---|---|---|---|---| +| full handshake, X25519MLKEM768 | 174.03 µs | - | 212.26 µs | - | - | 179.37 µs | - | 463.38 µs | +| full handshake, X25519 | 151.02 µs | - | 183.41 µs | 183.82 µs | - | 159.11 µs | - | 374.68 µs | +| full handshake, P-256 | 171.99 µs | - | 205.84 µs | 202.42 µs | - | 189.73 µs | - | 401.29 µs | +| full handshake, Ed25519 certificate | 128.51 µs | - | 150.19 µs | 154.50 µs | - | 123.59 µs | - | 383.06 µs | +| full handshake, RSA-2048 certificate | 372.92 µs | - | 409.15 µs | 446.94 µs | - | 674.07 µs | - | 644.46 µs | +| resumed handshake, X25519 | 65.88 µs | - | 89.83 µs | 87.17 µs | - | 61.63 µs | - | 253.42 µs | +| 1 MB transfer, AES-128-GCM | 309.22 µs | - | 313.18 µs | 372.51 µs | - | 333.72 µs | - | 340.26 µs | +| 1 MB transfer, AES-256-GCM | 348.83 µs | - | 347.02 µs | 386.93 µs | - | 400.75 µs | - | 372.29 µs | +| 1 MB transfer, ChaCha20-Poly1305 | 1.11 ms | - | 1.10 ms | 1.10 ms | - | 1.73 ms | - | 1.11 ms | +| AES-128-GCM seal, 32 B | 57 ns | 11 ns | 50 ns | 42 ns | 24 ns | 79 ns | 52 ns | 67 ns | +| AES-128-GCM seal, 1350 B | 209 ns | 161 ns | 181 ns | 210 ns | 212 ns | 216 ns | 600 ns | 196 ns | +| AES-128-GCM seal, 16 KB | 1.48 µs | 1.43 µs | 1.44 µs | 1.94 µs | 2.26 µs | 1.60 µs | 6.78 µs | 1.51 µs | +| AES-128-GCM open, 32 B | 47 ns | 13 ns | 47 ns | 39 ns | 28 ns | 84 ns | 61 ns | 66 ns | +| AES-128-GCM open, 1350 B | 210 ns | 178 ns | 191 ns | 243 ns | 232 ns | 225 ns | 618 ns | 199 ns | +| AES-128-GCM open, 16 KB | 1.58 µs | 1.56 µs | 1.58 µs | 2.16 µs | 2.43 µs | 1.71 µs | 6.82 µs | 1.65 µs | +| AES-256-GCM seal, 32 B | 61 ns | 12 ns | 53 ns | 45 ns | 25 ns | 79 ns | 52 ns | 67 ns | +| AES-256-GCM seal, 1350 B | 232 ns | 188 ns | 201 ns | 219 ns | 239 ns | 258 ns | 630 ns | 220 ns | +| AES-256-GCM seal, 16 KB | 1.73 µs | 1.69 µs | 1.70 µs | 2.03 µs | 2.63 µs | 2.13 µs | 7.08 µs | 1.77 µs | +| AES-256-GCM open, 32 B | 48 ns | 13 ns | 49 ns | 39 ns | 41 ns | 84 ns | 66 ns | 68 ns | +| AES-256-GCM open, 1350 B | 231 ns | 197 ns | 213 ns | 247 ns | 278 ns | 263 ns | 663 ns | 224 ns | +| AES-256-GCM open, 16 KB | 1.84 µs | 1.81 µs | 1.82 µs | 2.23 µs | 2.77 µs | 2.19 µs | 7.06 µs | 1.93 µs | +| ChaCha20-Poly1305 seal, 32 B | 179 ns | 145 ns | 157 ns | 145 ns | 340 ns | 193 ns | 170 ns ✓ | 216 ns | +| ChaCha20-Poly1305 seal, 1350 B | 773 ns | 741 ns | 759 ns | 741 ns | 1.75 µs | 1.21 µs | 1.94 µs ✓ | 826 ns | +| ChaCha20-Poly1305 seal, 16 KB | 7.60 µs | 7.50 µs | 7.50 µs | 7.57 µs | 14.97 µs | 12.56 µs | 22.12 µs ✓ | 7.37 µs | +| XChaCha20-Poly1305 seal, 32 B | 897 ns | - | 871 ns | - | 1.06 µs | 905 ns | 900 ns | - | +| XChaCha20-Poly1305 seal, 1350 B | 1.47 µs | - | 1.45 µs | - | 2.44 µs | 1.94 µs | 2.71 µs | - | +| XChaCha20-Poly1305 seal, 16 KB | 8.23 µs | - | 8.31 µs | - | 15.59 µs | 13.22 µs | 22.43 µs | - | +| AES-128 header protection | 34 ns | 3 ns | 3 ns | 3 ns | - | - | - | - | +| AES-256 header protection | 38 ns | 3 ns | 3 ns | 4 ns | - | - | - | - | +| ChaCha20 header protection | 88 ns ✓ | 58 ns ✓ | 72 ns | 67 ns | - | - | - | - | +| X25519 | 16.53 µs ✓ | - | 18.12 µs | 24.91 µs | 29.73 µs | 16.57 µs | 37.30 µs ✓ | 36.21 µs | +| P-256 ECDH | 26.44 µs ✓ | - | 28.80 µs | 32.16 µs | 178.43 µs | 31.15 µs | 182.72 µs ✓ | 50.38 µs | +| Ed25519 sign | 3.93 µs | - | 4.07 µs | 7.03 µs | 8.65 µs | 4.21 µs | 22.00 µs ✓ | 16.56 µs | +| Ed25519 verify | 18.81 µs | - | 18.48 µs | 20.22 µs | 18.60 µs | 18.94 µs | 29.44 µs ✓ | 41.29 µs | +| P-256 ECDSA sign | 7.13 µs ✓ | - | 11.16 µs | 10.91 µs | 43.98 µs | 8.58 µs | 66.95 µs ✓ | 12.43 µs | +| P-256 ECDSA verify | 26.25 µs ✓ | - | 27.38 µs | 29.22 µs | 151.69 µs | 28.18 µs | 156.18 µs ✓ | 41.90 µs | +| SHA-256, 64 B | 90 ns | 37 ns | 70 ns | 44 ns | 36 ns | 35 ns | 225 ns ✓ | 159 ns | +| SHA-256, 1350 B | 485 ns | 409 ns | 434 ns | 410 ns | 473 ns | 480 ns | 2.46 µs ✓ | 533 ns | +| SHA-256, 16 KB | 4.93 µs | 5.01 µs | 4.86 µs | 4.84 µs | 5.66 µs | 5.79 µs | 29.00 µs ✓ | 4.98 µs | +| SHA-512, 64 B | 108 ns | 75 ns | 105 ns | 84 ns | 77 ns | 175 ns | 142 ns ✓ | 205 ns | +| SHA-512, 1350 B | 810 ns | 730 ns | 768 ns | 743 ns | 723 ns | 1.87 µs | 1.56 µs ✓ | 893 ns | +| SHA-512, 16 KB | 8.85 µs | 8.72 µs | 8.91 µs | 8.70 µs | 8.59 µs | 21.69 µs | 18.39 µs ✓ | 9.33 µs | +| HMAC-SHA256, 64 B | 189 ns | 110 ns | 245 ns | 134 ns | 99 ns | 112 ns | 564 ns ✓ | 2.09 µs | +| HMAC-SHA256, 1350 B | 559 ns | 487 ns | 597 ns | 502 ns | 545 ns | 562 ns | 2.80 µs ✓ | 2.41 µs | +| HKDF-SHA256 extract and expand | 338 ns | 226 ns | 330 ns | 273 ns | 212 ns | - | 936 ns ✓ | 2.16 µs | +| HKDF-SHA256 expand | 107 ns | 74 ns | 154 ns | 93 ns | 69 ns | - | 481 ns ✓ | 1.55 µs | +| RSA-2048 PKCS#1 sign | 275.40 µs | - | 283.82 µs | 323.02 µs | 588.22 µs | 551.44 µs | - | 340.40 µs | +| RSA-2048 PKCS#1 verify | 8.41 µs | - | 9.54 µs | 11.01 µs | 30.97 µs | 18.43 µs | - | 16.81 µs | +| RSA-2048 PSS sign | 275.82 µs | - | 285.36 µs | 323.17 µs | 589.96 µs | 551.49 µs | 4.47 ms ✓ | 341.81 µs | +| RSA-2048 PSS verify | 8.74 µs | - | 9.89 µs | 11.43 µs | 38.88 µs | 18.77 µs | 297.72 µs ✓ | 17.47 µs | +| ML-KEM-768 key generation | 6.11 µs | - | 7.31 µs | - | 26.29 µs | 6.11 µs | 11.77 µs | 24.90 µs | +| ML-KEM-768 encapsulate | 6.77 µs | - | 7.91 µs | - | 27.87 µs | 6.32 µs | 9.25 µs | 23.89 µs | +| ML-KEM-768 decapsulate | 4.12 µs | - | 7.67 µs | - | 33.92 µs | 4.02 µs | 9.48 µs | 24.66 µs | +| P-384 ECDH | 90.11 µs | - | 104.99 µs | 413.70 µs | 488.31 µs | 150.93 µs | - | 280.83 µs | +| P-384 ECDSA sign | 22.30 µs | - | 49.21 µs | 222.34 µs | 111.89 µs | 80.22 µs | - | 102.69 µs | +| P-384 ECDSA verify | 84.01 µs | - | 110.79 µs | 397.21 µs | 422.13 µs | 148.92 µs | - | 237.68 µs | +| P-521 ECDH | 129.82 µs | - | 142.27 µs | - | 396.28 µs | - | - | 247.04 µs | +| P-521 ECDSA sign | 36.25 µs | - | 84.10 µs | - | 80.09 µs | - | - | 132.31 µs | +| P-521 ECDSA verify | 120.99 µs | - | 166.73 µs | - | 251.97 µs | - | - | 254.26 µs |
@@ -502,7 +504,22 @@ Not measured: error: host is busy (load average 8.2 on 32 CPUs) ### `desktop` -Not measured: error: host is busy (load average 49.3 on 24 CPUs) +Measured 2026-11-07 at [`9e7f6a5a`](https://github.com/moq-dev/rind/commit/9e7f6a5a9ea59a0cf1251c24af6c5d4f21c2b0fd), with rustc 1.98.1 (48a229cea 2026-09-01), gcc (GCC) 16.2.0, and 12 jobs. + +| Build | Wall s (range) | CPU s | Stripped MB | Tools needed | Crates | +|---|---|---|---|---|---| +| rind | 3.4 (3.3 to 3.4) | 8 | 0.88 | none | 5 | +| aws-lc-rs | 11.8 (11.8 to 12.1) | 37 | 2.99 | cc | 14 | +| ring | 5.0 (5.0 to 5.0) | 7 | 0.74 | cc | 9 | +| RustCrypto + dalek | 2.8 (2.8 to 2.9) | 16 | 0.54 | none | 57 | +| graviola | 2.1 (2.0 to 2.1) | 4 | 0.91 | none | 5 | +| libcrux | 5.8 (5.7 to 6.4) | 13 | 0.75 | none | 27 | +| OpenSSL, the system's, linked dynamically | 3.4 (3.2 to 3.6) | 9 | 0.38 | cc, pkg-config | 18 | +| OpenSSL, vendored | 24.7 (19.5 to 32.2) | 161 | 5.13 | cc, make, perl | 19 | +| rustls + rind-rustls | 4.2 (4.2 to 7.3) | 21 | 3.00 | none | 14 | +| rustls + rind-rustls, one TLS 1.3 suite, X25519, and P-256 | 4.5 (4.3 to 4.8) | 23 | 1.82 | none | 14 | +| rustls + aws-lc-rs | 16.6 (16.2 to 16.8) | 55 | 4.11 | cc | 20 | +| rustls + ring | 7.8 (7.7 to 7.8) | 19 | 1.94 | cc | 16 | ### `nixos2` @@ -525,7 +542,22 @@ Measured 2026-11-06 at [`f95b91da`](https://github.com/moq-dev/rind/commit/f95b9 ### `kixtop` -Not measured: error: host is busy (6.6 of 10 CPUs busy) +Measured 2026-11-07 at [`9e7f6a5a`](https://github.com/moq-dev/rind/commit/9e7f6a5a9ea59a0cf1251c24af6c5d4f21c2b0fd), with rustc 1.98.1 (48a229cea 2026-09-01), clang version 21.1.8, and 4 jobs. + +| Build | Wall s (range) | CPU s | Stripped MB | Tools needed | Crates | +|---|---|---|---|---|---| +| rind | 4.0 (4.0 to 4.0) | 8 | 0.67 | none | 5 | +| aws-lc-rs | 29.0 (28.6 to 29.1) | 92 | 2.14 | cc | 14 | +| ring | 8.2 (8.2 to 8.2) | 10 | 0.64 | cc | 9 | +| RustCrypto + dalek | 5.1 (5.1 to 5.2) | 16 | 0.46 | none | 52 | +| graviola | 3.1 (3.0 to 3.1) | 6 | 0.82 | none | 5 | +| libcrux | 8.0 (8.0 to 8.1) | 18 | 0.59 | none | 27 | +| OpenSSL, the system's, linked dynamically | 4.6 (4.6 to 4.6) | 10 | 0.36 | cc | 18 | +| OpenSSL, vendored | 131.7 (131.2 to 133.1) | 421 | 3.75 | cc, make, perl | 19 | +| rustls + rind-rustls | 6.5 (6.5 to 6.7) | 22 | 2.17 | none | 14 | +| rustls + rind-rustls, one TLS 1.3 suite, X25519, and P-256 | 6.7 (6.7 to 6.8) | 22 | 1.54 | none | 14 | +| rustls + aws-lc-rs | 34.0 (33.9 to 34.1) | 109 | 3.08 | cc | 20 | +| rustls + ring | 12.2 (12.2 to 12.3) | 23 | 1.60 | cc | 16 | ### `ovh-iad` @@ -789,13 +821,11 @@ Each operation where another library is more than 10% faster than rind, on a hos |---|---|---|---| | SHA-256, 64 B | `nixos` | 1.17× (RustCrypto + dalek) | Narrowed by [#352](https://github.com/moq-dev/rind/pull/352): on the SHA extensions the last block is padded and the digest written in registers, and `digest::Context::finish` takes `&mut self`, so it no longer copies the context. Closed by [#394](https://github.com/moq-dev/rind/pull/394), after this data, which drops the context's wipe on drop: on GitHub's AMD EPYC 9V45 runner it measured rind at 0.84× main's time at 64 B and 0.86× RustCrypto's. The next refresh drops this entry. | | RSA-2048 PKCS#1 sign | `nixos` | 1.10× (graviola) | Noise: other work kept 5 CPUs busy during this run, in which PSS signing, the same exponentiation, measured 0.95× graviola's time. Interleaved runs on `nixos` the same morning measured rind's PKCS#1 signing at 436 to 446 µs against graviola's 432 to 542 µs and ring's 459 to 568 µs. The next refresh rechecks it. | -| 1 MB transfer, AES-128-GCM, XChaCha20-Poly1305 seal, 1350 B | `desktop` | 1.11× to 1.22× (aws-lc-rs, ring) | Noise: other work kept 5 CPUs busy during this run. The run before it measured 0.99× ring's and 0.97× aws-lc-rs's time, and neither shows on another host. The next refresh rechecks both. | | Ed25519 verify | `ovh-iad`, `ovh-sea` | 1.29× to 1.30× (RustCrypto + dalek) | These VPSes' virtual CPUs hide ADX, and there rind ran s2n-bignum's verified `_alt` routines, which RustCrypto's AVX2 backend beats. Closed by [#415](https://github.com/moq-dev/rind/pull/415), after this data, which runs a port of that backend there: its collection measured rind at 1.08× RustCrypto's time on both VPSes. The next refresh drops this entry. | | Ed25519 sign | `ovh-iad` | 1.13× (aws-lc-rs) | Noise from the VPS's other tenants: `ovh-sea`, the same virtual CPU, measured 0.92× aws-lc-rs's time, and no dedicated host shows it. The next refresh rechecks it. | | `p256-ecdsa-verify/*` | no ADX tier | 1.14× (aws-lc-rs) | CPUs older than Broadwell and Zen lack ADX, and so do virtual CPUs that hide it, as `ovh-iad`'s and `ovh-sea`'s do. There rind runs s2n-bignum's verified `_alt` routines, which trail by more than 10% only on the nightly runners: on the VPSes P-256 verification measured 1.05× aws-lc-rs's time. | | `chacha20poly1305/*/16KB`, `xchacha20poly1305/*/16KB` | no AES-NI tier | 1.17× (aws-lc-rs) | Without SSE4.1 rind runs Graviola's scalar Poly1305 rather than port BoringSSL's SSE2 `poly1305_vec.c` for CPUs older than Westmere, as ALGORITHMS.md records. | -| AES-128-GCM seal, 32 B, AES-128-GCM seal, 1350 B, AES-128-GCM open, 32 B, AES-128-GCM open, 1350 B, AES-256-GCM seal, 32 B, AES-256-GCM seal, 1350 B, AES-256-GCM open, 32 B, ChaCha20-Poly1305 seal, 32 B, AES-128 header protection, AES-256 header protection, ChaCha20 header protection, SHA-256, 64 B, SHA-256, 1350 B, SHA-512, 64 B, SHA-512, 1350 B, HMAC-SHA256, 64 B, HMAC-SHA256, 1350 B, HKDF-SHA256 extract and expand, HKDF-SHA256 expand | `kixtop` | 1.11× to 12.62× (RustCrypto + dalek, aws-lc-rs, graviola, ring) | DIT: the M4 has it, and rind turns it on and off around every call that handles a secret, which costs about 35 to 55 ns a call there; the other libraries never set it. Keeping it per call was decided with the maintainer from [#387](https://github.com/moq-dev/rind/pull/387)'s findings. Holding `rind::cpu::Dit::hold()` ([#431](https://github.com/moq-dev/rind/pull/431)) across a batch of calls, as MoQ does, pays it once and closes every one of these gaps: rind-bench's `rind-dit-held` rows time that, and a run at [`ec4b720d`](https://github.com/moq-dev/rind/commit/ec4b720daadd41f8ab7f3669f262c678b1af8c89), noisy with other work on 1.1 CPUs, measured each within 10% of the fastest library, SHA-256 at 1350 B (1.10× ring's) and HMAC-SHA-256 at 64 B (1.10× RustCrypto's) at the edge. | -| XChaCha20-Poly1305 seal, 32 B | `kixtop` | 1.26× (aws-lc-rs) | Noise: a rerun of the row on the same commit measured 1.04× aws-lc-rs's time, as did the run before this one, on a commit that changed only x86_64 code. The next refresh rechecks it. | +| AES-128-GCM seal, 32 B, AES-128-GCM seal, 1350 B, AES-128-GCM open, 32 B, AES-256-GCM seal, 32 B, AES-256-GCM seal, 1350 B, AES-256-GCM open, 32 B, ChaCha20-Poly1305 seal, 32 B, AES-128 header protection, AES-256 header protection, ChaCha20 header protection, SHA-256, 64 B, SHA-256, 1350 B, SHA-512, 64 B, SHA-512, 1350 B, HMAC-SHA256, 64 B, HMAC-SHA256, 1350 B, HKDF-SHA256 extract and expand, HKDF-SHA256 expand | `kixtop` | 1.11× to 12.76× (RustCrypto + dalek, aws-lc-rs, graviola, ring) | DIT: the M4 has it, and rind turns it on and off around every call that handles a secret, which costs about 30 to 55 ns a call there; the other libraries never set it. Keeping it per call was decided with the maintainer from [#387](https://github.com/moq-dev/rind/pull/387)'s findings. Holding `rind::cpu::Dit::hold()` ([#431](https://github.com/moq-dev/rind/pull/431)) across a batch of calls, as MoQ does, pays it once and closes all but one of these gaps: the rind (DIT held) column times that, and on [`9e7f6a5a`](https://github.com/moq-dev/rind/commit/9e7f6a5a9ea59a0cf1251c24af6c5d4f21c2b0fd), the run this report shows, every one measured within 10% of the fastest library except HMAC-SHA-256 at 64 B, at 1.10× RustCrypto's (109.7 ns against 99.4 ns). | ## Verified code diff --git a/benchmarks/data/desktop.json b/benchmarks/data/desktop.json index f938ff1e1..baea82b95 100644 --- a/benchmarks/data/desktop.json +++ b/benchmarks/data/desktop.json @@ -1,8 +1,8 @@ { "schema": 1, "host": "desktop", - "commit": "f95b91da886bee265dbd836192a7ade2f9158c47", - "started": "2026-11-06T15:07:11+00:00", + "commit": "9e7f6a5a9ea59a0cf1251c24af6c5d4f21c2b0fd", + "started": "2026-11-07T13:37:17+00:00", "cpu": { "model": "Intel(R) Core(TM) Ultra 7 270K Plus", "arch": "x86_64", @@ -15,8 +15,8 @@ }, "libraries": { "rind": { - "rind": "0.1.13", - "rind-rustls": "0.1.13" + "rind": "0.2.1", + "rind-rustls": "0.23.0" }, "aws-lc-rs": { "aws-lc-rs": "1.19.0", @@ -41,7 +41,7 @@ "x25519-dalek": "3.0.0" }, "graviola": { - "graviola": "0.4.3", + "graviola": "0.4.4", "rustls-graviola": "0.4.0" }, "libcrux": { @@ -96,8 +96,9 @@ "compatible": 1, "supports_avx512_aes_gcm": 0 }, + "refused": {}, "status": "ok", - "finished": "2026-11-06T15:35:01+00:00", + "finished": "2026-11-07T14:06:19+00:00", "criterion_args": [ "--noplot", "--warm-up-time", @@ -108,19 +109,19 @@ ], "load": { "limit_cpus": 2.4, - "busy_cpus_before_build": 1.33, - "busy_cpus_before_run": 1.18, - "other_busy_cpus_during_run": 5.06, - "noisy": true + "busy_cpus_before_build": 0.87, + "busy_cpus_before_run": 2.27, + "other_busy_cpus_during_run": 1.29, + "noisy": false }, "results": [ { "operation": "rustls-full-handshake-group/x25519mlkem768/{lib}", "library": "aws-lc-rs", "id": "rustls-full-handshake-group/x25519mlkem768/aws-lc-rs", - "ns": 235602.92708635042, - "ns_low": 235421.21473756724, - "ns_high": 235801.31264051996, + "ns": 233731.1471129501, + "ns_low": 233624.10112131794, + "ns_high": 233846.2786771634, "throughput": { "Elements": 1 } @@ -129,9 +130,9 @@ "operation": "rustls-full-handshake-group/x25519mlkem768/{lib}", "library": "graviola", "id": "rustls-full-handshake-group/x25519mlkem768/graviola", - "ns": 191486.0303517068, - "ns_low": 191443.03129367434, - "ns_high": 191533.09950716107, + "ns": 188190.19006132704, + "ns_low": 188127.04203326683, + "ns_high": 188256.39620209901, "throughput": { "Elements": 1 } @@ -140,9 +141,9 @@ "operation": "rustls-full-handshake-group/x25519mlkem768/{lib}", "library": "openssl", "id": "rustls-full-handshake-group/x25519mlkem768/openssl", - "ns": 437458.1804477612, - "ns_low": 436346.2998567796, - "ns_high": 438671.4818288595, + "ns": 438878.9896601153, + "ns_low": 438735.57431535114, + "ns_high": 439032.72966325807, "throughput": { "Elements": 1 } @@ -151,9 +152,9 @@ "operation": "rustls-full-handshake-group/x25519mlkem768/{lib}", "library": "rind", "id": "rustls-full-handshake-group/x25519mlkem768/rind", - "ns": 174971.07030589625, - "ns_low": 174930.5963357798, - "ns_high": 175015.37161486153, + "ns": 172303.64461947687, + "ns_low": 172211.00320035327, + "ns_high": 172405.5979828611, "throughput": { "Elements": 1 } @@ -162,9 +163,9 @@ "operation": "rustls-full-handshake-group/x25519/{lib}", "library": "aws-lc-rs", "id": "rustls-full-handshake-group/x25519/aws-lc-rs", - "ns": 203616.39598837495, - "ns_low": 203473.3954267936, - "ns_high": 203765.58439923386, + "ns": 201934.30900743805, + "ns_low": 201839.3040649832, + "ns_high": 202038.6321150132, "throughput": { "Elements": 1 } @@ -173,9 +174,9 @@ "operation": "rustls-full-handshake-group/x25519/{lib}", "library": "graviola", "id": "rustls-full-handshake-group/x25519/graviola", - "ns": 162548.43032067386, - "ns_low": 162408.5155544094, - "ns_high": 162703.82980717006, + "ns": 161402.26108763114, + "ns_low": 161324.6574971103, + "ns_high": 161500.36259952077, "throughput": { "Elements": 1 } @@ -184,9 +185,9 @@ "operation": "rustls-full-handshake-group/x25519/{lib}", "library": "openssl", "id": "rustls-full-handshake-group/x25519/openssl", - "ns": 367791.4381853111, - "ns_low": 367577.9680065379, - "ns_high": 368010.3993318318, + "ns": 366379.91121915175, + "ns_low": 366191.70479729265, + "ns_high": 366584.8040755442, "throughput": { "Elements": 1 } @@ -195,9 +196,9 @@ "operation": "rustls-full-handshake-group/x25519/{lib}", "library": "rind", "id": "rustls-full-handshake-group/x25519/rind", - "ns": 152748.85797473032, - "ns_low": 152578.3100694156, - "ns_high": 152927.0837224218, + "ns": 151321.32192625978, + "ns_low": 151227.34707058253, + "ns_high": 151427.20377643214, "throughput": { "Elements": 1 } @@ -206,9 +207,9 @@ "operation": "rustls-full-handshake-group/x25519/{lib}", "library": "ring", "id": "rustls-full-handshake-group/x25519/ring", - "ns": 222879.54714053494, - "ns_low": 222690.63957585898, - "ns_high": 223075.82155061787, + "ns": 221013.4437594207, + "ns_low": 220920.9976108319, + "ns_high": 221118.83757171378, "throughput": { "Elements": 1 } @@ -217,9 +218,9 @@ "operation": "rustls-full-handshake-group/secp256r1/{lib}", "library": "aws-lc-rs", "id": "rustls-full-handshake-group/secp256r1/aws-lc-rs", - "ns": 228848.86080094575, - "ns_low": 228679.99219533813, - "ns_high": 229042.02015993057, + "ns": 227862.49803950544, + "ns_low": 227672.11532625987, + "ns_high": 228071.04602805545, "throughput": { "Elements": 1 } @@ -228,9 +229,9 @@ "operation": "rustls-full-handshake-group/secp256r1/{lib}", "library": "graviola", "id": "rustls-full-handshake-group/secp256r1/graviola", - "ns": 193104.86608024235, - "ns_low": 193004.9890188492, - "ns_high": 193213.88703824574, + "ns": 191811.12497266143, + "ns_low": 191736.87505404543, + "ns_high": 191893.50491105055, "throughput": { "Elements": 1 } @@ -239,9 +240,9 @@ "operation": "rustls-full-handshake-group/secp256r1/{lib}", "library": "openssl", "id": "rustls-full-handshake-group/secp256r1/openssl", - "ns": 406490.51852667355, - "ns_low": 406423.81083980185, - "ns_high": 406560.99857856525, + "ns": 400763.1065449978, + "ns_low": 400526.7283077463, + "ns_high": 401035.7940355354, "throughput": { "Elements": 1 } @@ -250,9 +251,9 @@ "operation": "rustls-full-handshake-group/secp256r1/{lib}", "library": "rind", "id": "rustls-full-handshake-group/secp256r1/rind", - "ns": 175679.23618220777, - "ns_low": 175562.2922273777, - "ns_high": 175811.73590845038, + "ns": 174551.25904388947, + "ns_low": 174482.4757167356, + "ns_high": 174621.1179216339, "throughput": { "Elements": 1 } @@ -261,9 +262,9 @@ "operation": "rustls-full-handshake-group/secp256r1/{lib}", "library": "ring", "id": "rustls-full-handshake-group/secp256r1/ring", - "ns": 221715.7746150436, - "ns_low": 221460.35144066092, - "ns_high": 221968.87735789933, + "ns": 219505.20030638884, + "ns_low": 219373.7596999964, + "ns_high": 219654.99345598242, "throughput": { "Elements": 1 } @@ -272,9 +273,9 @@ "operation": "rustls-full-handshake-key/ed25519/{lib}", "library": "aws-lc-rs", "id": "rustls-full-handshake-key/ed25519/aws-lc-rs", - "ns": 168121.74316757795, - "ns_low": 168022.06826874957, - "ns_high": 168230.78069096027, + "ns": 166630.28164917984, + "ns_low": 166549.77270523968, + "ns_high": 166714.44551138257, "throughput": { "Elements": 1 } @@ -283,9 +284,9 @@ "operation": "rustls-full-handshake-key/ed25519/{lib}", "library": "graviola", "id": "rustls-full-handshake-key/ed25519/graviola", - "ns": 125455.12723215605, - "ns_low": 125352.28932162651, - "ns_high": 125548.23572384447, + "ns": 123710.98283552534, + "ns_low": 123598.73490036071, + "ns_high": 123843.40222189712, "throughput": { "Elements": 1 } @@ -294,9 +295,9 @@ "operation": "rustls-full-handshake-key/ed25519/{lib}", "library": "openssl", "id": "rustls-full-handshake-key/ed25519/openssl", - "ns": 373287.1376784395, - "ns_low": 372909.9525661432, - "ns_high": 373670.2361997892, + "ns": 368209.43157233635, + "ns_low": 368060.2053763407, + "ns_high": 368368.552374735, "throughput": { "Elements": 1 } @@ -305,9 +306,9 @@ "operation": "rustls-full-handshake-key/ed25519/{lib}", "library": "rind", "id": "rustls-full-handshake-key/ed25519/rind", - "ns": 123113.35748662628, - "ns_low": 123047.55666193416, - "ns_high": 123176.95589482697, + "ns": 121900.17352800355, + "ns_low": 121740.61606882953, + "ns_high": 122060.81543698626, "throughput": { "Elements": 1 } @@ -316,9 +317,9 @@ "operation": "rustls-full-handshake-key/ed25519/{lib}", "library": "ring", "id": "rustls-full-handshake-key/ed25519/ring", - "ns": 205527.3837860204, - "ns_low": 205454.96492135958, - "ns_high": 205604.98772503852, + "ns": 202036.64412196443, + "ns_low": 201920.77318738113, + "ns_high": 202159.84956587033, "throughput": { "Elements": 1 } @@ -327,9 +328,9 @@ "operation": "rustls-full-handshake-key/rsa-2048/{lib}", "library": "aws-lc-rs", "id": "rustls-full-handshake-key/rsa-2048/aws-lc-rs", - "ns": 485868.7902866854, - "ns_low": 485389.354011263, - "ns_high": 486346.89648195525, + "ns": 480430.2605260825, + "ns_low": 480063.0333335889, + "ns_high": 480829.19542316673, "throughput": { "Elements": 1 } @@ -338,9 +339,9 @@ "operation": "rustls-full-handshake-key/rsa-2048/{lib}", "library": "graviola", "id": "rustls-full-handshake-key/rsa-2048/graviola", - "ns": 440230.67647702084, - "ns_low": 439880.66168531374, - "ns_high": 440601.59658157686, + "ns": 440421.7762849121, + "ns_low": 439770.6261480306, + "ns_high": 441133.30789060955, "throughput": { "Elements": 1 } @@ -349,9 +350,9 @@ "operation": "rustls-full-handshake-key/rsa-2048/{lib}", "library": "openssl", "id": "rustls-full-handshake-key/rsa-2048/openssl", - "ns": 682293.2889315797, - "ns_low": 677909.3538905381, - "ns_high": 686569.95916821, + "ns": 670543.5991813211, + "ns_low": 667172.9484612539, + "ns_high": 674129.8327575525, "throughput": { "Elements": 1 } @@ -360,9 +361,9 @@ "operation": "rustls-full-handshake-key/rsa-2048/{lib}", "library": "rind", "id": "rustls-full-handshake-key/rsa-2048/rind", - "ns": 428667.6114349047, - "ns_low": 428266.80311367277, - "ns_high": 429070.67022099986, + "ns": 432829.6602512192, + "ns_low": 432697.03465112235, + "ns_high": 432975.05619080295, "throughput": { "Elements": 1 } @@ -371,9 +372,9 @@ "operation": "rustls-full-handshake-key/rsa-2048/{lib}", "library": "ring", "id": "rustls-full-handshake-key/rsa-2048/ring", - "ns": 493807.5216373578, - "ns_low": 493458.58881530096, - "ns_high": 494149.40854446386, + "ns": 488218.6892699867, + "ns_low": 487667.0727980741, + "ns_high": 488881.94238864764, "throughput": { "Elements": 1 } @@ -382,9 +383,9 @@ "operation": "rustls-resumed-handshake/x25519/{lib}", "library": "aws-lc-rs", "id": "rustls-resumed-handshake/x25519/aws-lc-rs", - "ns": 102841.16131175804, - "ns_low": 102785.67048822409, - "ns_high": 102920.01172341645, + "ns": 101361.50935865229, + "ns_low": 101295.77611899698, + "ns_high": 101435.66321015678, "throughput": { "Elements": 1 } @@ -393,9 +394,9 @@ "operation": "rustls-resumed-handshake/x25519/{lib}", "library": "graviola", "id": "rustls-resumed-handshake/x25519/graviola", - "ns": 55161.95959375042, - "ns_low": 55104.936303670074, - "ns_high": 55219.508999912796, + "ns": 55618.2704378199, + "ns_low": 55483.734665889424, + "ns_high": 55799.964070204594, "throughput": { "Elements": 1 } @@ -404,9 +405,9 @@ "operation": "rustls-resumed-handshake/x25519/{lib}", "library": "openssl", "id": "rustls-resumed-handshake/x25519/openssl", - "ns": 231440.3615447515, - "ns_low": 231209.46846117338, - "ns_high": 231685.49416123176, + "ns": 232436.5798758682, + "ns_low": 232097.34045891944, + "ns_high": 232760.04879328824, "throughput": { "Elements": 1 } @@ -415,9 +416,9 @@ "operation": "rustls-resumed-handshake/x25519/{lib}", "library": "rind", "id": "rustls-resumed-handshake/x25519/rind", - "ns": 54192.16248451711, - "ns_low": 54176.21957549648, - "ns_high": 54208.49804301909, + "ns": 54393.840452194476, + "ns_low": 54328.837492507664, + "ns_high": 54465.40171289083, "throughput": { "Elements": 1 } @@ -426,9 +427,9 @@ "operation": "rustls-resumed-handshake/x25519/{lib}", "library": "ring", "id": "rustls-resumed-handshake/x25519/ring", - "ns": 112996.7064085513, - "ns_low": 112843.6467149535, - "ns_high": 113157.91913785569, + "ns": 111286.86569233042, + "ns_low": 111197.61301646856, + "ns_high": 111397.76879891191, "throughput": { "Elements": 1 } @@ -437,9 +438,9 @@ "operation": "rustls-bulk/aes128-gcm/{lib}", "library": "aws-lc-rs", "id": "rustls-bulk/aes128-gcm/aws-lc-rs", - "ns": 241180.33499236492, - "ns_low": 240906.34595624768, - "ns_high": 241450.58688349236, + "ns": 233340.55045662777, + "ns_low": 232688.64001226687, + "ns_high": 234052.10316314918, "throughput": { "Bytes": 1048576 } @@ -448,9 +449,9 @@ "operation": "rustls-bulk/aes128-gcm/{lib}", "library": "graviola", "id": "rustls-bulk/aes128-gcm/graviola", - "ns": 294754.695356879, - "ns_low": 294428.7319853283, - "ns_high": 295137.36459647515, + "ns": 289614.6726417418, + "ns_low": 289340.0802831629, + "ns_high": 289900.2383282588, "throughput": { "Bytes": 1048576 } @@ -459,9 +460,9 @@ "operation": "rustls-bulk/aes128-gcm/{lib}", "library": "openssl", "id": "rustls-bulk/aes128-gcm/openssl", - "ns": 255721.77833210188, - "ns_low": 255212.8033206904, - "ns_high": 256427.7595529345, + "ns": 250850.85143293435, + "ns_low": 250683.586730048, + "ns_high": 251021.96587060922, "throughput": { "Bytes": 1048576 } @@ -470,9 +471,9 @@ "operation": "rustls-bulk/aes128-gcm/{lib}", "library": "rind", "id": "rustls-bulk/aes128-gcm/rind", - "ns": 193360.8810418206, - "ns_low": 177061.91269738015, - "ns_high": 213646.87736636706, + "ns": 168209.4705319935, + "ns_low": 167960.3428671121, + "ns_high": 168472.93654024732, "throughput": { "Bytes": 1048576 } @@ -481,9 +482,9 @@ "operation": "rustls-bulk/aes128-gcm/{lib}", "library": "ring", "id": "rustls-bulk/aes128-gcm/ring", - "ns": 174955.8856790306, - "ns_low": 174827.83417937523, - "ns_high": 175077.18575154856, + "ns": 170075.07825328803, + "ns_low": 169953.8947739001, + "ns_high": 170212.45831180294, "throughput": { "Bytes": 1048576 } @@ -492,9 +493,9 @@ "operation": "rustls-bulk/aes256-gcm/{lib}", "library": "aws-lc-rs", "id": "rustls-bulk/aes256-gcm/aws-lc-rs", - "ns": 272229.0678656224, - "ns_low": 272092.13812533923, - "ns_high": 272358.1946205941, + "ns": 265287.4674242648, + "ns_low": 265084.61767712166, + "ns_high": 265517.45327246643, "throughput": { "Bytes": 1048576 } @@ -503,9 +504,9 @@ "operation": "rustls-bulk/aes256-gcm/{lib}", "library": "graviola", "id": "rustls-bulk/aes256-gcm/graviola", - "ns": 338967.50981528003, - "ns_low": 338812.2929754123, - "ns_high": 339142.03839016333, + "ns": 337961.7777907492, + "ns_low": 337744.6565078416, + "ns_high": 338215.67889016704, "throughput": { "Bytes": 1048576 } @@ -514,9 +515,9 @@ "operation": "rustls-bulk/aes256-gcm/{lib}", "library": "openssl", "id": "rustls-bulk/aes256-gcm/openssl", - "ns": 292120.69178858184, - "ns_low": 291676.37032780546, - "ns_high": 292622.3997863412, + "ns": 285785.9151844737, + "ns_low": 285602.48922703543, + "ns_high": 285970.4615855717, "throughput": { "Bytes": 1048576 } @@ -525,9 +526,9 @@ "operation": "rustls-bulk/aes256-gcm/{lib}", "library": "rind", "id": "rustls-bulk/aes256-gcm/rind", - "ns": 189841.74927811438, - "ns_low": 189701.08582108954, - "ns_high": 190010.886035133, + "ns": 184540.8985577065, + "ns_low": 184267.93007364025, + "ns_high": 184809.25378165525, "throughput": { "Bytes": 1048576 } @@ -536,9 +537,9 @@ "operation": "rustls-bulk/aes256-gcm/{lib}", "library": "ring", "id": "rustls-bulk/aes256-gcm/ring", - "ns": 192152.7965479533, - "ns_low": 191484.4673542026, - "ns_high": 193104.49996235067, + "ns": 188671.20969410375, + "ns_low": 188415.52670439632, + "ns_high": 188895.35845446115, "throughput": { "Bytes": 1048576 } @@ -547,9 +548,9 @@ "operation": "rustls-bulk/chacha20poly1305/{lib}", "library": "aws-lc-rs", "id": "rustls-bulk/chacha20poly1305/aws-lc-rs", - "ns": 609723.7432717601, - "ns_low": 603751.9092756098, - "ns_high": 617701.5049881018, + "ns": 595414.4498448352, + "ns_low": 595167.3447463927, + "ns_high": 595692.0987331085, "throughput": { "Bytes": 1048576 } @@ -558,9 +559,9 @@ "operation": "rustls-bulk/chacha20poly1305/{lib}", "library": "graviola", "id": "rustls-bulk/chacha20poly1305/graviola", - "ns": 1173891.1313043474, - "ns_low": 1171249.4498913041, - "ns_high": 1177050.4659130424, + "ns": 1160609.3795238093, + "ns_low": 1159368.113345238, + "ns_high": 1161854.7359642857, "throughput": { "Bytes": 1048576 } @@ -569,9 +570,9 @@ "operation": "rustls-bulk/chacha20poly1305/{lib}", "library": "openssl", "id": "rustls-bulk/chacha20poly1305/openssl", - "ns": 661804.8849859613, - "ns_low": 660654.7149270022, - "ns_high": 663257.1180784971, + "ns": 658480.2192670312, + "ns_low": 658281.7221233723, + "ns_high": 658673.9466439432, "throughput": { "Bytes": 1048576 } @@ -580,9 +581,9 @@ "operation": "rustls-bulk/chacha20poly1305/{lib}", "library": "rind", "id": "rustls-bulk/chacha20poly1305/rind", - "ns": 621494.274975617, - "ns_low": 600668.3023509175, - "ns_high": 650595.5076739981, + "ns": 596912.0600916211, + "ns_low": 593850.6515665697, + "ns_high": 601885.4661939193, "throughput": { "Bytes": 1048576 } @@ -591,9 +592,9 @@ "operation": "rustls-bulk/chacha20poly1305/{lib}", "library": "ring", "id": "rustls-bulk/chacha20poly1305/ring", - "ns": 594879.0071996454, - "ns_low": 593702.6943285555, - "ns_high": 596401.8153062948, + "ns": 590487.3292093986, + "ns_low": 588681.8666235162, + "ns_high": 592866.6788069335, "throughput": { "Bytes": 1048576 } @@ -602,9 +603,9 @@ "operation": "aes128-gcm/{lib}/32B", "library": "aws-lc-rs", "id": "aes128-gcm/aws-lc-rs/32B", - "ns": 36.98073557384887, - "ns_low": 36.939475395360795, - "ns_high": 37.018460769111584, + "ns": 37.53366868712758, + "ns_low": 37.50043116687319, + "ns_high": 37.56682174843407, "throughput": { "Bytes": 32 } @@ -613,9 +614,9 @@ "operation": "aes128-gcm/{lib}/32B", "library": "graviola", "id": "aes128-gcm/graviola/32B", - "ns": 42.4748874952904, - "ns_low": 42.45731397258341, - "ns_high": 42.49267504129732, + "ns": 42.14599664492454, + "ns_low": 42.115941635931215, + "ns_high": 42.185506407693396, "throughput": { "Bytes": 32 } @@ -624,9 +625,9 @@ "operation": "aes128-gcm/{lib}/32B", "library": "libcrux", "id": "aes128-gcm/libcrux/32B", - "ns": 167.71237466382428, - "ns_low": 167.61089224860476, - "ns_high": 167.81301762432912, + "ns": 170.64893360294954, + "ns_low": 170.57365081254767, + "ns_high": 170.72445430959831, "throughput": { "Bytes": 32 } @@ -635,9 +636,9 @@ "operation": "aes128-gcm/{lib}/32B", "library": "openssl", "id": "aes128-gcm/openssl/32B", - "ns": 55.16575239651397, - "ns_low": 55.12020217031518, - "ns_high": 55.209208289092565, + "ns": 56.84287538709346, + "ns_low": 56.743917771831015, + "ns_high": 56.93569418770479, "throughput": { "Bytes": 32 } @@ -646,9 +647,9 @@ "operation": "aes128-gcm/{lib}/32B", "library": "rind", "id": "aes128-gcm/rind/32B", - "ns": 18.23970143589417, - "ns_low": 18.23163151356044, - "ns_high": 18.248100811876178, + "ns": 19.746949580422342, + "ns_low": 19.73594543440421, + "ns_high": 19.757712453591225, "throughput": { "Bytes": 32 } @@ -657,9 +658,9 @@ "operation": "aes128-gcm/{lib}/32B", "library": "ring", "id": "aes128-gcm/ring/32B", - "ns": 41.924871268651515, - "ns_low": 41.75379314299483, - "ns_high": 42.107426598579565, + "ns": 41.07747092267411, + "ns_low": 40.97905415019537, + "ns_high": 41.19515079604858, "throughput": { "Bytes": 32 } @@ -668,9 +669,9 @@ "operation": "aes128-gcm/{lib}/32B", "library": "rustcrypto", "id": "aes128-gcm/rustcrypto/32B", - "ns": 72.57994609216502, - "ns_low": 72.5296973975183, - "ns_high": 72.62802709461245, + "ns": 73.14946279006158, + "ns_low": 73.0973166787067, + "ns_high": 73.21053938399872, "throughput": { "Bytes": 32 } @@ -679,9 +680,9 @@ "operation": "aes128-gcm/{lib}/1350B", "library": "aws-lc-rs", "id": "aes128-gcm/aws-lc-rs/1350B", - "ns": 149.17591551734716, - "ns_low": 149.08895345998175, - "ns_high": 149.2560433144799, + "ns": 158.6357668453869, + "ns_low": 154.56023039676867, + "ns_high": 163.44090183925056, "throughput": { "Bytes": 1350 } @@ -690,9 +691,9 @@ "operation": "aes128-gcm/{lib}/1350B", "library": "graviola", "id": "aes128-gcm/graviola/1350B", - "ns": 226.7114720955343, - "ns_low": 226.45941246414768, - "ns_high": 226.96560375062342, + "ns": 225.69116689643127, + "ns_low": 225.41995929001544, + "ns_high": 225.96192228501846, "throughput": { "Bytes": 1350 } @@ -701,9 +702,9 @@ "operation": "aes128-gcm/{lib}/1350B", "library": "libcrux", "id": "aes128-gcm/libcrux/1350B", - "ns": 1944.6926140986054, - "ns_low": 1943.4930740856285, - "ns_high": 1945.8598557554826, + "ns": 1979.9750792859818, + "ns_low": 1977.3940889481548, + "ns_high": 1983.1720633913312, "throughput": { "Bytes": 1350 } @@ -712,9 +713,9 @@ "operation": "aes128-gcm/{lib}/1350B", "library": "openssl", "id": "aes128-gcm/openssl/1350B", - "ns": 162.82610073434634, - "ns_low": 162.76305926588003, - "ns_high": 162.89429447072462, + "ns": 160.0054391621612, + "ns_low": 159.80689527894756, + "ns_high": 160.28522521992792, "throughput": { "Bytes": 1350 } @@ -723,9 +724,9 @@ "operation": "aes128-gcm/{lib}/1350B", "library": "rind", "id": "aes128-gcm/rind/1350B", - "ns": 93.7683903601383, - "ns_low": 93.75111717849404, - "ns_high": 93.78747247917191, + "ns": 92.65762186486914, + "ns_low": 92.62217158905356, + "ns_high": 92.70830225891437, "throughput": { "Bytes": 1350 } @@ -734,9 +735,9 @@ "operation": "aes128-gcm/{lib}/1350B", "library": "ring", "id": "aes128-gcm/ring/1350B", - "ns": 118.19124436215918, - "ns_low": 117.85612220886777, - "ns_high": 118.56417085817384, + "ns": 119.49365006059759, + "ns_low": 119.18515096198142, + "ns_high": 119.80530392549096, "throughput": { "Bytes": 1350 } @@ -745,9 +746,9 @@ "operation": "aes128-gcm/{lib}/1350B", "library": "rustcrypto", "id": "aes128-gcm/rustcrypto/1350B", - "ns": 272.2636773502971, - "ns_low": 271.9087321296761, - "ns_high": 272.6561369304937, + "ns": 278.3612755111838, + "ns_low": 278.1204656796131, + "ns_high": 278.57758050052377, "throughput": { "Bytes": 1350 } @@ -756,9 +757,9 @@ "operation": "aes128-gcm/{lib}/16KB", "library": "aws-lc-rs", "id": "aes128-gcm/aws-lc-rs/16KB", - "ns": 1327.6159452256957, - "ns_low": 1327.0965207738682, - "ns_high": 1328.145714847404, + "ns": 1322.8225328669594, + "ns_low": 1321.0336898169, + "ns_high": 1324.5679951435923, "throughput": { "Bytes": 16384 } @@ -767,9 +768,9 @@ "operation": "aes128-gcm/{lib}/16KB", "library": "graviola", "id": "aes128-gcm/graviola/16KB", - "ns": 2024.57264928021, - "ns_low": 2023.5734607150766, - "ns_high": 2025.6716781611003, + "ns": 2054.634860932619, + "ns_low": 2054.0267821826023, + "ns_high": 2055.3938605778076, "throughput": { "Bytes": 16384 } @@ -778,9 +779,9 @@ "operation": "aes128-gcm/{lib}/16KB", "library": "libcrux", "id": "aes128-gcm/libcrux/16KB", - "ns": 22015.81098391431, - "ns_low": 22003.134407771253, - "ns_high": 22029.561590743313, + "ns": 22046.322340333536, + "ns_low": 22027.853289661154, + "ns_high": 22069.419721625138, "throughput": { "Bytes": 16384 } @@ -789,9 +790,9 @@ "operation": "aes128-gcm/{lib}/16KB", "library": "openssl", "id": "aes128-gcm/openssl/16KB", - "ns": 1342.4860843403837, - "ns_low": 1342.086413723807, - "ns_high": 1342.9172618660998, + "ns": 1345.0454593726408, + "ns_low": 1344.6909148568923, + "ns_high": 1345.436520862605, "throughput": { "Bytes": 16384 } @@ -800,9 +801,9 @@ "operation": "aes128-gcm/{lib}/16KB", "library": "rind", "id": "aes128-gcm/rind/16KB", - "ns": 780.6828884163251, - "ns_low": 780.4807427319416, - "ns_high": 780.9115245704329, + "ns": 799.0393576206395, + "ns_low": 798.0813770062641, + "ns_high": 800.0011914239495, "throughput": { "Bytes": 16384 } @@ -811,9 +812,9 @@ "operation": "aes128-gcm/{lib}/16KB", "library": "ring", "id": "aes128-gcm/ring/16KB", - "ns": 798.8468728640669, - "ns_low": 798.2985738809638, - "ns_high": 799.5241798965536, + "ns": 817.8716201390074, + "ns_low": 816.7474521035882, + "ns_high": 819.0315970044736, "throughput": { "Bytes": 16384 } @@ -822,9 +823,9 @@ "operation": "aes128-gcm/{lib}/16KB", "library": "rustcrypto", "id": "aes128-gcm/rustcrypto/16KB", - "ns": 2489.58359624884, - "ns_low": 2488.725636434218, - "ns_high": 2490.541878424949, + "ns": 2488.0224065347893, + "ns_low": 2487.6260204329087, + "ns_high": 2488.4575185609674, "throughput": { "Bytes": 16384 } @@ -833,9 +834,9 @@ "operation": "aes128-gcm-open/{lib}/32B", "library": "aws-lc-rs", "id": "aes128-gcm-open/aws-lc-rs/32B", - "ns": 37.236444278161834, - "ns_low": 36.98665646338412, - "ns_high": 37.47870279574663, + "ns": 37.81932226175298, + "ns_low": 37.64423296203792, + "ns_high": 37.98688412336222, "throughput": { "Bytes": 32 } @@ -844,9 +845,9 @@ "operation": "aes128-gcm-open/{lib}/32B", "library": "graviola", "id": "aes128-gcm-open/graviola/32B", - "ns": 35.76347694372817, - "ns_low": 35.75817432014833, - "ns_high": 35.76879868619822, + "ns": 36.27044102098532, + "ns_low": 36.263183209676946, + "ns_high": 36.277762880016084, "throughput": { "Bytes": 32 } @@ -855,9 +856,9 @@ "operation": "aes128-gcm-open/{lib}/32B", "library": "libcrux", "id": "aes128-gcm-open/libcrux/32B", - "ns": 158.97919003153783, - "ns_low": 158.90734162537774, - "ns_high": 159.05003976914463, + "ns": 161.59763873928435, + "ns_low": 161.4183139171494, + "ns_high": 161.761089037144, "throughput": { "Bytes": 32 } @@ -866,9 +867,9 @@ "operation": "aes128-gcm-open/{lib}/32B", "library": "openssl", "id": "aes128-gcm-open/openssl/32B", - "ns": 57.52052201402844, - "ns_low": 57.42556183579976, - "ns_high": 57.62282795632351, + "ns": 58.9664843592685, + "ns_low": 58.91911232855507, + "ns_high": 59.02383594267632, "throughput": { "Bytes": 32 } @@ -877,9 +878,9 @@ "operation": "aes128-gcm-open/{lib}/32B", "library": "rind", "id": "aes128-gcm-open/rind/32B", - "ns": 28.460433899851836, - "ns_low": 28.434124759444163, - "ns_high": 28.48516564375316, + "ns": 15.141390013867618, + "ns_low": 15.121168156655619, + "ns_high": 15.161097431518856, "throughput": { "Bytes": 32 } @@ -888,9 +889,9 @@ "operation": "aes128-gcm-open/{lib}/32B", "library": "ring", "id": "aes128-gcm-open/ring/32B", - "ns": 42.281530953864085, - "ns_low": 41.626390428460304, - "ns_high": 42.87271838615785, + "ns": 41.09339760364453, + "ns_low": 40.445819949568985, + "ns_high": 41.80213256162364, "throughput": { "Bytes": 32 } @@ -899,9 +900,9 @@ "operation": "aes128-gcm-open/{lib}/32B", "library": "rustcrypto", "id": "aes128-gcm-open/rustcrypto/32B", - "ns": 77.71575605472928, - "ns_low": 77.62133988930334, - "ns_high": 77.82112439519923, + "ns": 78.00973588687573, + "ns_low": 77.75319945653526, + "ns_high": 78.28556822379745, "throughput": { "Bytes": 32 } @@ -910,9 +911,9 @@ "operation": "aes128-gcm-open/{lib}/1350B", "library": "aws-lc-rs", "id": "aes128-gcm-open/aws-lc-rs/1350B", - "ns": 149.17999746470358, - "ns_low": 149.04256086952748, - "ns_high": 149.30903475394445, + "ns": 150.8167040522719, + "ns_low": 150.60471804509905, + "ns_high": 151.03420625514008, "throughput": { "Bytes": 1350 } @@ -921,9 +922,9 @@ "operation": "aes128-gcm-open/{lib}/1350B", "library": "graviola", "id": "aes128-gcm-open/graviola/1350B", - "ns": 176.1037068056296, - "ns_low": 175.83987432915296, - "ns_high": 176.3724206074929, + "ns": 174.78753147011918, + "ns_low": 174.67585157629802, + "ns_high": 174.90648842133214, "throughput": { "Bytes": 1350 } @@ -932,9 +933,9 @@ "operation": "aes128-gcm-open/{lib}/1350B", "library": "libcrux", "id": "aes128-gcm-open/libcrux/1350B", - "ns": 1998.383950189646, - "ns_low": 1996.1077284494945, - "ns_high": 2000.4215488014763, + "ns": 1993.7134171626117, + "ns_low": 1992.0758709961312, + "ns_high": 1995.3027897175707, "throughput": { "Bytes": 1350 } @@ -943,9 +944,9 @@ "operation": "aes128-gcm-open/{lib}/1350B", "library": "openssl", "id": "aes128-gcm-open/openssl/1350B", - "ns": 159.37857637500494, - "ns_low": 159.19099909929673, - "ns_high": 159.5249046646009, + "ns": 161.67150940709666, + "ns_low": 161.6213722701094, + "ns_high": 161.72257883981933, "throughput": { "Bytes": 1350 } @@ -954,9 +955,9 @@ "operation": "aes128-gcm-open/{lib}/1350B", "library": "rind", "id": "aes128-gcm-open/rind/1350B", - "ns": 98.50906200161914, - "ns_low": 98.35963552000332, - "ns_high": 98.65473897813392, + "ns": 89.45517059259937, + "ns_low": 89.31925032639693, + "ns_high": 89.59930551313929, "throughput": { "Bytes": 1350 } @@ -965,9 +966,9 @@ "operation": "aes128-gcm-open/{lib}/1350B", "library": "ring", "id": "aes128-gcm-open/ring/1350B", - "ns": 114.01822594565589, - "ns_low": 113.88902776181381, - "ns_high": 114.15958536546067, + "ns": 113.60432726291496, + "ns_low": 113.36651282061054, + "ns_high": 113.82924785944368, "throughput": { "Bytes": 1350 } @@ -976,9 +977,9 @@ "operation": "aes128-gcm-open/{lib}/1350B", "library": "rustcrypto", "id": "aes128-gcm-open/rustcrypto/1350B", - "ns": 282.0999551684646, - "ns_low": 281.59562750500805, - "ns_high": 282.70153348075644, + "ns": 283.1588719945938, + "ns_low": 282.83178187556496, + "ns_high": 283.543522241671, "throughput": { "Bytes": 1350 } @@ -987,9 +988,9 @@ "operation": "aes128-gcm-open/{lib}/16KB", "library": "aws-lc-rs", "id": "aes128-gcm-open/aws-lc-rs/16KB", - "ns": 1276.8691993942773, - "ns_low": 1275.9940632791534, - "ns_high": 1277.6635800021286, + "ns": 1263.4791311844165, + "ns_low": 1262.2903616832969, + "ns_high": 1264.8090926146597, "throughput": { "Bytes": 16384 } @@ -998,9 +999,9 @@ "operation": "aes128-gcm-open/{lib}/16KB", "library": "graviola", "id": "aes128-gcm-open/graviola/16KB", - "ns": 1415.6919337345867, - "ns_low": 1415.5117463426666, - "ns_high": 1415.8798493227114, + "ns": 1398.9231256629973, + "ns_low": 1397.4946863332932, + "ns_high": 1400.3397190512287, "throughput": { "Bytes": 16384 } @@ -1009,9 +1010,9 @@ "operation": "aes128-gcm-open/{lib}/16KB", "library": "libcrux", "id": "aes128-gcm-open/libcrux/16KB", - "ns": 22307.895860740304, - "ns_low": 22296.873130146858, - "ns_high": 22317.286054643733, + "ns": 21935.383362286477, + "ns_low": 21920.400973908614, + "ns_high": 21950.218821803035, "throughput": { "Bytes": 16384 } @@ -1020,9 +1021,9 @@ "operation": "aes128-gcm-open/{lib}/16KB", "library": "openssl", "id": "aes128-gcm-open/openssl/16KB", - "ns": 1301.8178491708538, - "ns_low": 1301.6468678009667, - "ns_high": 1302.0001703196149, + "ns": 1286.7861153335605, + "ns_low": 1286.242824128171, + "ns_high": 1287.374418740802, "throughput": { "Bytes": 16384 } @@ -1031,9 +1032,9 @@ "operation": "aes128-gcm-open/{lib}/16KB", "library": "rind", "id": "aes128-gcm-open/rind/16KB", - "ns": 816.3168456701944, - "ns_low": 816.133010392788, - "ns_high": 816.5109703418568, + "ns": 792.6638107758239, + "ns_low": 792.1898672931511, + "ns_high": 793.1720910131098, "throughput": { "Bytes": 16384 } @@ -1042,9 +1043,9 @@ "operation": "aes128-gcm-open/{lib}/16KB", "library": "ring", "id": "aes128-gcm-open/ring/16KB", - "ns": 829.4961825950107, - "ns_low": 829.2814693313479, - "ns_high": 829.7089375049575, + "ns": 814.2382096527748, + "ns_low": 813.0179884070405, + "ns_high": 815.3890744359969, "throughput": { "Bytes": 16384 } @@ -1053,9 +1054,9 @@ "operation": "aes128-gcm-open/{lib}/16KB", "library": "rustcrypto", "id": "aes128-gcm-open/rustcrypto/16KB", - "ns": 2544.495160185364, - "ns_low": 2544.0370063467612, - "ns_high": 2544.989178281415, + "ns": 2505.4509875487834, + "ns_low": 2504.3278139798763, + "ns_high": 2506.6976205250744, "throughput": { "Bytes": 16384 } @@ -1064,9 +1065,9 @@ "operation": "aes256-gcm/{lib}/32B", "library": "aws-lc-rs", "id": "aes256-gcm/aws-lc-rs/32B", - "ns": 39.50245576063369, - "ns_low": 39.44337471526458, - "ns_high": 39.55889590873332, + "ns": 39.17103225543588, + "ns_low": 39.11909080879798, + "ns_high": 39.22348352279493, "throughput": { "Bytes": 32 } @@ -1075,9 +1076,9 @@ "operation": "aes256-gcm/{lib}/32B", "library": "graviola", "id": "aes256-gcm/graviola/32B", - "ns": 44.128767926969026, - "ns_low": 44.10313124827037, - "ns_high": 44.15746684112628, + "ns": 44.52852253232011, + "ns_low": 44.452721946876295, + "ns_high": 44.60374115457619, "throughput": { "Bytes": 32 } @@ -1086,9 +1087,9 @@ "operation": "aes256-gcm/{lib}/32B", "library": "libcrux", "id": "aes256-gcm/libcrux/32B", - "ns": 215.8492129151775, - "ns_low": 215.59459032025376, - "ns_high": 216.11784187122703, + "ns": 217.07683353305674, + "ns_low": 216.7332065200557, + "ns_high": 217.42818512732418, "throughput": { "Bytes": 32 } @@ -1097,9 +1098,9 @@ "operation": "aes256-gcm/{lib}/32B", "library": "openssl", "id": "aes256-gcm/openssl/32B", - "ns": 58.093471819552725, - "ns_low": 58.0526350273839, - "ns_high": 58.134675360003065, + "ns": 61.24312243208717, + "ns_low": 61.17650969066736, + "ns_high": 61.31232360591396, "throughput": { "Bytes": 32 } @@ -1108,9 +1109,9 @@ "operation": "aes256-gcm/{lib}/32B", "library": "rind", "id": "aes256-gcm/rind/32B", - "ns": 19.83735116263019, - "ns_low": 19.82637375740246, - "ns_high": 19.847135113151623, + "ns": 21.359315212272744, + "ns_low": 21.347763675519136, + "ns_high": 21.368126107250625, "throughput": { "Bytes": 32 } @@ -1119,9 +1120,9 @@ "operation": "aes256-gcm/{lib}/32B", "library": "ring", "id": "aes256-gcm/ring/32B", - "ns": 42.876111869655105, - "ns_low": 42.7332026754612, - "ns_high": 43.01253278772403, + "ns": 43.17524180628785, + "ns_low": 43.0619252899573, + "ns_high": 43.302161463939335, "throughput": { "Bytes": 32 } @@ -1130,9 +1131,9 @@ "operation": "aes256-gcm/{lib}/32B", "library": "rustcrypto", "id": "aes256-gcm/rustcrypto/32B", - "ns": 77.453519644692, - "ns_low": 77.3811263619583, - "ns_high": 77.53150855632327, + "ns": 78.22023256652304, + "ns_low": 78.16012076198999, + "ns_high": 78.2733345384802, "throughput": { "Bytes": 32 } @@ -1141,9 +1142,9 @@ "operation": "aes256-gcm/{lib}/1350B", "library": "aws-lc-rs", "id": "aes256-gcm/aws-lc-rs/1350B", - "ns": 173.2140052908572, - "ns_low": 173.08841613855108, - "ns_high": 173.34635531836386, + "ns": 174.987533132129, + "ns_low": 174.77272861626207, + "ns_high": 175.19427114566304, "throughput": { "Bytes": 1350 } @@ -1152,9 +1153,9 @@ "operation": "aes256-gcm/{lib}/1350B", "library": "graviola", "id": "aes256-gcm/graviola/1350B", - "ns": 257.9806354750448, - "ns_low": 257.81483510220863, - "ns_high": 258.1607009351661, + "ns": 257.31636369740664, + "ns_low": 256.9585764096655, + "ns_high": 257.6642145661775, "throughput": { "Bytes": 1350 } @@ -1163,9 +1164,9 @@ "operation": "aes256-gcm/{lib}/1350B", "library": "libcrux", "id": "aes256-gcm/libcrux/1350B", - "ns": 2825.54704091987, - "ns_low": 2824.5135621782565, - "ns_high": 2826.728378821714, + "ns": 2873.809701833559, + "ns_low": 2871.399319701588, + "ns_high": 2875.9473666489707, "throughput": { "Bytes": 1350 } @@ -1174,9 +1175,9 @@ "operation": "aes256-gcm/{lib}/1350B", "library": "openssl", "id": "aes256-gcm/openssl/1350B", - "ns": 186.02654788566866, - "ns_low": 185.93651430736108, - "ns_high": 186.13251916928067, + "ns": 184.0609176892426, + "ns_low": 183.81553873468653, + "ns_high": 184.3000076535777, "throughput": { "Bytes": 1350 } @@ -1185,9 +1186,9 @@ "operation": "aes256-gcm/{lib}/1350B", "library": "rind", "id": "aes256-gcm/rind/1350B", - "ns": 106.41736314675843, - "ns_low": 106.37828446786463, - "ns_high": 106.46094301253588, + "ns": 107.22592864239105, + "ns_low": 107.17486343146469, + "ns_high": 107.29097876877823, "throughput": { "Bytes": 1350 } @@ -1196,9 +1197,9 @@ "operation": "aes256-gcm/{lib}/1350B", "library": "ring", "id": "aes256-gcm/ring/1350B", - "ns": 133.04838020897634, - "ns_low": 132.5334484396927, - "ns_high": 133.59557333711425, + "ns": 133.53413554806923, + "ns_low": 132.95371890602112, + "ns_high": 134.17985249501186, "throughput": { "Bytes": 1350 } @@ -1207,9 +1208,9 @@ "operation": "aes256-gcm/{lib}/1350B", "library": "rustcrypto", "id": "aes256-gcm/rustcrypto/1350B", - "ns": 313.32401433310196, - "ns_low": 313.2043282981725, - "ns_high": 313.42934356939367, + "ns": 312.7041962871171, + "ns_low": 312.33147525655875, + "ns_high": 313.1606991368798, "throughput": { "Bytes": 1350 } @@ -1218,9 +1219,9 @@ "operation": "aes256-gcm/{lib}/16KB", "library": "aws-lc-rs", "id": "aes256-gcm/aws-lc-rs/16KB", - "ns": 1558.8585711696858, - "ns_low": 1557.558886699665, - "ns_high": 1560.3328022402395, + "ns": 1580.2553137848327, + "ns_low": 1578.2413582737431, + "ns_high": 1582.769190491409, "throughput": { "Bytes": 16384 } @@ -1229,9 +1230,9 @@ "operation": "aes256-gcm/{lib}/16KB", "library": "graviola", "id": "aes256-gcm/graviola/16KB", - "ns": 2457.041471921955, - "ns_low": 2456.8010467687436, - "ns_high": 2457.3132865969255, + "ns": 2457.8666247601695, + "ns_low": 2454.579604798722, + "ns_high": 2462.4316876433268, "throughput": { "Bytes": 16384 } @@ -1240,9 +1241,9 @@ "operation": "aes256-gcm/{lib}/16KB", "library": "libcrux", "id": "aes256-gcm/libcrux/16KB", - "ns": 32690.601109564217, - "ns_low": 32673.678238930643, - "ns_high": 32709.809970801125, + "ns": 32858.19057671518, + "ns_low": 32829.289180971726, + "ns_high": 32892.18743155372, "throughput": { "Bytes": 16384 } @@ -1251,9 +1252,9 @@ "operation": "aes256-gcm/{lib}/16KB", "library": "openssl", "id": "aes256-gcm/openssl/16KB", - "ns": 1587.3355623352418, - "ns_low": 1585.1558621728418, - "ns_high": 1589.8408946925051, + "ns": 1601.9930557594687, + "ns_low": 1601.1606421437505, + "ns_high": 1603.2614030990533, "throughput": { "Bytes": 16384 } @@ -1262,9 +1263,9 @@ "operation": "aes256-gcm/{lib}/16KB", "library": "rind", "id": "aes256-gcm/rind/16KB", - "ns": 925.0648739722983, - "ns_low": 923.8250756012671, - "ns_high": 926.3693680705217, + "ns": 953.6949999304722, + "ns_low": 952.471211919392, + "ns_high": 954.9826772411336, "throughput": { "Bytes": 16384 } @@ -1273,9 +1274,9 @@ "operation": "aes256-gcm/{lib}/16KB", "library": "ring", "id": "aes256-gcm/ring/16KB", - "ns": 945.9778596588748, - "ns_low": 944.8464060053703, - "ns_high": 947.2138781688877, + "ns": 974.6140575405718, + "ns_low": 973.9877570176178, + "ns_high": 975.5006684807187, "throughput": { "Bytes": 16384 } @@ -1284,9 +1285,9 @@ "operation": "aes256-gcm/{lib}/16KB", "library": "rustcrypto", "id": "aes256-gcm/rustcrypto/16KB", - "ns": 2906.6404808846373, - "ns_low": 2906.0706845807954, - "ns_high": 2907.193479148415, + "ns": 2902.3261399114067, + "ns_low": 2899.2543280045747, + "ns_high": 2905.2578915343865, "throughput": { "Bytes": 16384 } @@ -1295,9 +1296,9 @@ "operation": "aes256-gcm-open/{lib}/32B", "library": "aws-lc-rs", "id": "aes256-gcm-open/aws-lc-rs/32B", - "ns": 37.98148943994086, - "ns_low": 37.768190318598805, - "ns_high": 38.187396556101085, + "ns": 37.760775546967544, + "ns_low": 37.58813108927408, + "ns_high": 37.93345996266557, "throughput": { "Bytes": 32 } @@ -1306,9 +1307,9 @@ "operation": "aes256-gcm-open/{lib}/32B", "library": "graviola", "id": "aes256-gcm-open/graviola/32B", - "ns": 37.94642804321241, - "ns_low": 37.93836110177246, - "ns_high": 37.95448556713545, + "ns": 37.742579057354384, + "ns_low": 37.71474083566857, + "ns_high": 37.77273264146464, "throughput": { "Bytes": 32 } @@ -1317,9 +1318,9 @@ "operation": "aes256-gcm-open/{lib}/32B", "library": "libcrux", "id": "aes256-gcm-open/libcrux/32B", - "ns": 217.74916578601295, - "ns_low": 217.5810640360223, - "ns_high": 217.90994352184205, + "ns": 214.64644106485576, + "ns_low": 214.42091285750308, + "ns_high": 214.88724413550003, "throughput": { "Bytes": 32 } @@ -1328,9 +1329,9 @@ "operation": "aes256-gcm-open/{lib}/32B", "library": "openssl", "id": "aes256-gcm-open/openssl/32B", - "ns": 61.56249326982483, - "ns_low": 61.52698531453833, - "ns_high": 61.600762056962544, + "ns": 61.08817197648884, + "ns_low": 61.018729861176354, + "ns_high": 61.15406302155144, "throughput": { "Bytes": 32 } @@ -1339,9 +1340,9 @@ "operation": "aes256-gcm-open/{lib}/32B", "library": "rind", "id": "aes256-gcm-open/rind/32B", - "ns": 27.685864219794748, - "ns_low": 27.647154341764878, - "ns_high": 27.719903213368962, + "ns": 16.36006000273459, + "ns_low": 16.353646663597612, + "ns_high": 16.366754350325962, "throughput": { "Bytes": 32 } @@ -1350,9 +1351,9 @@ "operation": "aes256-gcm-open/{lib}/32B", "library": "ring", "id": "aes256-gcm-open/ring/32B", - "ns": 44.69191235834667, - "ns_low": 43.73179580140448, - "ns_high": 45.565328816484914, + "ns": 43.00458440518072, + "ns_low": 41.82495126602664, + "ns_high": 44.2381499536916, "throughput": { "Bytes": 32 } @@ -1361,9 +1362,9 @@ "operation": "aes256-gcm-open/{lib}/32B", "library": "rustcrypto", "id": "aes256-gcm-open/rustcrypto/32B", - "ns": 82.44277544176032, - "ns_low": 82.35147726579355, - "ns_high": 82.53806780447468, + "ns": 82.27389385816223, + "ns_low": 82.0636457251218, + "ns_high": 82.49690816609575, "throughput": { "Bytes": 32 } @@ -1372,9 +1373,9 @@ "operation": "aes256-gcm-open/{lib}/1350B", "library": "aws-lc-rs", "id": "aes256-gcm-open/aws-lc-rs/1350B", - "ns": 172.95004653163963, - "ns_low": 172.87667033442938, - "ns_high": 173.01781573609253, + "ns": 171.9224988446178, + "ns_low": 171.84392304345465, + "ns_high": 172.00511482131685, "throughput": { "Bytes": 1350 } @@ -1383,9 +1384,9 @@ "operation": "aes256-gcm-open/{lib}/1350B", "library": "graviola", "id": "aes256-gcm-open/graviola/1350B", - "ns": 203.30212090780591, - "ns_low": 203.26899004366567, - "ns_high": 203.3292959032873, + "ns": 200.9636378776052, + "ns_low": 200.85532869086927, + "ns_high": 201.08239253288744, "throughput": { "Bytes": 1350 } @@ -1394,9 +1395,9 @@ "operation": "aes256-gcm-open/{lib}/1350B", "library": "libcrux", "id": "aes256-gcm-open/libcrux/1350B", - "ns": 2850.998414003223, - "ns_low": 2849.6711770420957, - "ns_high": 2852.518231347432, + "ns": 2849.2671763264307, + "ns_low": 2847.931372716513, + "ns_high": 2850.708770646455, "throughput": { "Bytes": 1350 } @@ -1405,9 +1406,9 @@ "operation": "aes256-gcm-open/{lib}/1350B", "library": "openssl", "id": "aes256-gcm-open/openssl/1350B", - "ns": 189.2514325412102, - "ns_low": 189.21025355060306, - "ns_high": 189.292713626926, + "ns": 188.69435557663402, + "ns_low": 188.62461739542715, + "ns_high": 188.76614374212792, "throughput": { "Bytes": 1350 } @@ -1416,9 +1417,9 @@ "operation": "aes256-gcm-open/{lib}/1350B", "library": "rind", "id": "aes256-gcm-open/rind/1350B", - "ns": 106.92343789645086, - "ns_low": 106.77568536118766, - "ns_high": 107.08787458332156, + "ns": 98.86964073378171, + "ns_low": 98.839216854726, + "ns_high": 98.90324641010433, "throughput": { "Bytes": 1350 } @@ -1427,9 +1428,9 @@ "operation": "aes256-gcm-open/{lib}/1350B", "library": "ring", "id": "aes256-gcm-open/ring/1350B", - "ns": 123.70634073726696, - "ns_low": 123.5217748436537, - "ns_high": 123.91176956020846, + "ns": 121.22066060903276, + "ns_low": 121.00375352425884, + "ns_high": 121.43376130683998, "throughput": { "Bytes": 1350 } @@ -1438,9 +1439,9 @@ "operation": "aes256-gcm-open/{lib}/1350B", "library": "rustcrypto", "id": "aes256-gcm-open/rustcrypto/1350B", - "ns": 321.73238666056307, - "ns_low": 321.580001731804, - "ns_high": 321.9040102886727, + "ns": 317.69921186778976, + "ns_low": 317.4742744834938, + "ns_high": 317.9555820912913, "throughput": { "Bytes": 1350 } @@ -1449,9 +1450,9 @@ "operation": "aes256-gcm-open/{lib}/16KB", "library": "aws-lc-rs", "id": "aes256-gcm-open/aws-lc-rs/16KB", - "ns": 1565.7279452394498, - "ns_low": 1563.1030370386422, - "ns_high": 1568.251264165815, + "ns": 1551.3657814204319, + "ns_low": 1550.569937379044, + "ns_high": 1552.2665630582592, "throughput": { "Bytes": 16384 } @@ -1460,9 +1461,9 @@ "operation": "aes256-gcm-open/{lib}/16KB", "library": "graviola", "id": "aes256-gcm-open/graviola/16KB", - "ns": 1741.9265909898138, - "ns_low": 1741.6694952317885, - "ns_high": 1742.1977545246766, + "ns": 1714.1936696010348, + "ns_low": 1713.4645336855622, + "ns_high": 1714.984424991974, "throughput": { "Bytes": 16384 } @@ -1471,9 +1472,9 @@ "operation": "aes256-gcm-open/{lib}/16KB", "library": "libcrux", "id": "aes256-gcm-open/libcrux/16KB", - "ns": 32514.75373663211, - "ns_low": 32499.4306847897, - "ns_high": 32531.42074796922, + "ns": 32612.813677366164, + "ns_low": 32593.44362186319, + "ns_high": 32631.859546851018, "throughput": { "Bytes": 16384 } @@ -1482,9 +1483,9 @@ "operation": "aes256-gcm-open/{lib}/16KB", "library": "openssl", "id": "aes256-gcm-open/openssl/16KB", - "ns": 1601.830980599126, - "ns_low": 1601.558230939015, - "ns_high": 1602.1514526809692, + "ns": 1578.9833448953984, + "ns_low": 1578.0285325134203, + "ns_high": 1580.1097428497792, "throughput": { "Bytes": 16384 } @@ -1493,9 +1494,9 @@ "operation": "aes256-gcm-open/{lib}/16KB", "library": "rind", "id": "aes256-gcm-open/rind/16KB", - "ns": 917.4202588952925, - "ns_low": 917.2114544244398, - "ns_high": 917.698518880632, + "ns": 899.0658232898955, + "ns_low": 898.4385564433926, + "ns_high": 899.9476113802069, "throughput": { "Bytes": 16384 } @@ -1504,9 +1505,9 @@ "operation": "aes256-gcm-open/{lib}/16KB", "library": "ring", "id": "aes256-gcm-open/ring/16KB", - "ns": 921.3379353675073, - "ns_low": 920.589766741947, - "ns_high": 922.2809348432934, + "ns": 932.8564284011692, + "ns_low": 932.5132229324482, + "ns_high": 933.2411385637539, "throughput": { "Bytes": 16384 } @@ -1515,9 +1516,9 @@ "operation": "aes256-gcm-open/{lib}/16KB", "library": "rustcrypto", "id": "aes256-gcm-open/rustcrypto/16KB", - "ns": 2963.076967401797, - "ns_low": 2960.6706782090428, - "ns_high": 2965.2932491717947, + "ns": 2920.919122094826, + "ns_low": 2918.2382847537183, + "ns_high": 2924.209023462705, "throughput": { "Bytes": 16384 } @@ -1526,9 +1527,9 @@ "operation": "chacha20poly1305/{lib}/32B", "library": "aws-lc-rs", "id": "chacha20poly1305/aws-lc-rs/32B", - "ns": 104.91918332957563, - "ns_low": 104.86833947067211, - "ns_high": 104.97401275437407, + "ns": 103.17589039388896, + "ns_low": 103.12243263763798, + "ns_high": 103.23623891417918, "throughput": { "Bytes": 32 } @@ -1537,9 +1538,9 @@ "operation": "chacha20poly1305/{lib}/32B", "library": "graviola", "id": "chacha20poly1305/graviola/32B", - "ns": 179.71047453709087, - "ns_low": 179.66332369160463, - "ns_high": 179.7550352783927, + "ns": 177.4796770221076, + "ns_low": 177.41716327361445, + "ns_high": 177.54347819104674, "throughput": { "Bytes": 32 } @@ -1548,9 +1549,9 @@ "operation": "chacha20poly1305/{lib}/32B", "library": "libcrux", "id": "chacha20poly1305/libcrux/32B", - "ns": 156.59674931189136, - "ns_low": 156.568354177945, - "ns_high": 156.62241463318648, + "ns": 156.8485187765772, + "ns_low": 156.7834600216063, + "ns_high": 156.91616480465007, "throughput": { "Bytes": 32 } @@ -1559,9 +1560,9 @@ "operation": "chacha20poly1305/{lib}/32B", "library": "openssl", "id": "chacha20poly1305/openssl/32B", - "ns": 176.94687757004192, - "ns_low": 176.86566046076206, - "ns_high": 177.03127290461651, + "ns": 174.9169810680925, + "ns_low": 174.80880801264638, + "ns_high": 175.0214751002383, "throughput": { "Bytes": 32 } @@ -1570,9 +1571,9 @@ "operation": "chacha20poly1305/{lib}/32B", "library": "rind", "id": "chacha20poly1305/rind/32B", - "ns": 99.79819436633963, - "ns_low": 99.67619515368987, - "ns_high": 99.90388062657787, + "ns": 98.45560185901977, + "ns_low": 98.40819813742065, + "ns_high": 98.51352441292305, "throughput": { "Bytes": 32 } @@ -1581,9 +1582,9 @@ "operation": "chacha20poly1305/{lib}/32B", "library": "ring", "id": "chacha20poly1305/ring/32B", - "ns": 100.50039371127178, - "ns_low": 100.46903760146712, - "ns_high": 100.53028015328225, + "ns": 98.87613582529383, + "ns_low": 98.83383349887404, + "ns_high": 98.92163925900086, "throughput": { "Bytes": 32 } @@ -1592,9 +1593,9 @@ "operation": "chacha20poly1305/{lib}/32B", "library": "rustcrypto", "id": "chacha20poly1305/rustcrypto/32B", - "ns": 1072.5731378110784, - "ns_low": 1070.9172967054578, - "ns_high": 1074.2065066119515, + "ns": 1051.3328198924767, + "ns_low": 1049.84766826717, + "ns_high": 1052.849207151451, "throughput": { "Bytes": 32 } @@ -1603,9 +1604,9 @@ "operation": "chacha20poly1305/{lib}/1350B", "library": "aws-lc-rs", "id": "chacha20poly1305/aws-lc-rs/1350B", - "ns": 453.4848582522067, - "ns_low": 453.3575736232785, - "ns_high": 453.61776019784054, + "ns": 446.29926025543625, + "ns_low": 446.0963724167992, + "ns_high": 446.51426943903135, "throughput": { "Bytes": 1350 } @@ -1614,9 +1615,9 @@ "operation": "chacha20poly1305/{lib}/1350B", "library": "graviola", "id": "chacha20poly1305/graviola/1350B", - "ns": 905.3520491938787, - "ns_low": 904.6826279662936, - "ns_high": 905.9353914894479, + "ns": 889.8492564117242, + "ns_low": 889.4124690640065, + "ns_high": 890.3199792646675, "throughput": { "Bytes": 1350 } @@ -1625,9 +1626,9 @@ "operation": "chacha20poly1305/{lib}/1350B", "library": "libcrux", "id": "chacha20poly1305/libcrux/1350B", - "ns": 1775.4792532475528, - "ns_low": 1773.6330520700556, - "ns_high": 1777.3644019137107, + "ns": 1769.6891731230692, + "ns_low": 1768.2949183194626, + "ns_high": 1771.2683546153248, "throughput": { "Bytes": 1350 } @@ -1636,9 +1637,9 @@ "operation": "chacha20poly1305/{lib}/1350B", "library": "openssl", "id": "chacha20poly1305/openssl/1350B", - "ns": 590.175206669906, - "ns_low": 590.069785519611, - "ns_high": 590.278745243514, + "ns": 586.5285385043761, + "ns_low": 586.2234459037646, + "ns_high": 586.8599471040327, "throughput": { "Bytes": 1350 } @@ -1647,9 +1648,9 @@ "operation": "chacha20poly1305/{lib}/1350B", "library": "rind", "id": "chacha20poly1305/rind/1350B", - "ns": 440.94336583701545, - "ns_low": 440.38613638753634, - "ns_high": 441.5776867480056, + "ns": 440.27024447133556, + "ns_low": 439.8606942597325, + "ns_high": 440.7713535010562, "throughput": { "Bytes": 1350 } @@ -1658,9 +1659,9 @@ "operation": "chacha20poly1305/{lib}/1350B", "library": "ring", "id": "chacha20poly1305/ring/1350B", - "ns": 446.58885209799723, - "ns_low": 446.4883910443667, - "ns_high": 446.69125877366037, + "ns": 448.024827836542, + "ns_low": 447.19448528501584, + "ns_high": 449.55496318193553, "throughput": { "Bytes": 1350 } @@ -1669,9 +1670,9 @@ "operation": "chacha20poly1305/{lib}/1350B", "library": "rustcrypto", "id": "chacha20poly1305/rustcrypto/1350B", - "ns": 1669.2794535591306, - "ns_low": 1668.5898969129412, - "ns_high": 1670.040402750402, + "ns": 1644.0746638625872, + "ns_low": 1643.2521770361152, + "ns_high": 1644.8331243583298, "throughput": { "Bytes": 1350 } @@ -1680,9 +1681,9 @@ "operation": "chacha20poly1305/{lib}/16KB", "library": "aws-lc-rs", "id": "chacha20poly1305/aws-lc-rs/16KB", - "ns": 4148.901153526746, - "ns_low": 4145.576586646141, - "ns_high": 4153.083811716297, + "ns": 4129.047837175509, + "ns_low": 4127.366170752213, + "ns_high": 4130.887228880338, "throughput": { "Bytes": 16384 } @@ -1691,9 +1692,9 @@ "operation": "chacha20poly1305/{lib}/16KB", "library": "graviola", "id": "chacha20poly1305/graviola/16KB", - "ns": 8303.185347725072, - "ns_low": 8290.60646637206, - "ns_high": 8315.630382957006, + "ns": 8290.059216746302, + "ns_low": 8283.876688501477, + "ns_high": 8296.842002165702, "throughput": { "Bytes": 16384 } @@ -1702,9 +1703,9 @@ "operation": "chacha20poly1305/{lib}/16KB", "library": "libcrux", "id": "chacha20poly1305/libcrux/16KB", - "ns": 19625.697415922623, - "ns_low": 19607.458297158562, - "ns_high": 19642.6441839188, + "ns": 19308.11023563117, + "ns_low": 19297.945487620545, + "ns_high": 19318.45772328676, "throughput": { "Bytes": 16384 } @@ -1713,9 +1714,9 @@ "operation": "chacha20poly1305/{lib}/16KB", "library": "openssl", "id": "chacha20poly1305/openssl/16KB", - "ns": 4405.637384846942, - "ns_low": 4404.951144677062, - "ns_high": 4406.3332981174135, + "ns": 4345.291100413234, + "ns_low": 4343.31498626675, + "ns_high": 4347.300637712958, "throughput": { "Bytes": 16384 } @@ -1724,9 +1725,9 @@ "operation": "chacha20poly1305/{lib}/16KB", "library": "rind", "id": "chacha20poly1305/rind/16KB", - "ns": 4170.520759403151, - "ns_low": 4165.085396069606, - "ns_high": 4175.518803529523, + "ns": 4186.192835508693, + "ns_low": 4184.518329013105, + "ns_high": 4188.195685969755, "throughput": { "Bytes": 16384 } @@ -1735,9 +1736,9 @@ "operation": "chacha20poly1305/{lib}/16KB", "library": "ring", "id": "chacha20poly1305/ring/16KB", - "ns": 4136.488547899566, - "ns_low": 4133.546814665397, - "ns_high": 4140.114213644495, + "ns": 4119.637287668859, + "ns_low": 4117.666908260535, + "ns_high": 4121.860621230002, "throughput": { "Bytes": 16384 } @@ -1746,9 +1747,9 @@ "operation": "chacha20poly1305/{lib}/16KB", "library": "rustcrypto", "id": "chacha20poly1305/rustcrypto/16KB", - "ns": 8136.906802607247, - "ns_low": 8123.040086559136, - "ns_high": 8151.434007864287, + "ns": 8031.7869985517955, + "ns_low": 8020.317376679357, + "ns_high": 8042.239711941288, "throughput": { "Bytes": 16384 } @@ -1757,9 +1758,9 @@ "operation": "xchacha20poly1305/{lib}/32B", "library": "aws-lc-rs", "id": "xchacha20poly1305/aws-lc-rs/32B", - "ns": 199.0385462157128, - "ns_low": 198.89977717096696, - "ns_high": 199.19050221379223, + "ns": 198.93098609933983, + "ns_low": 198.8062468409235, + "ns_high": 199.0647885992464, "throughput": { "Bytes": 32 } @@ -1768,9 +1769,9 @@ "operation": "xchacha20poly1305/{lib}/32B", "library": "graviola", "id": "xchacha20poly1305/graviola/32B", - "ns": 258.9342601030955, - "ns_low": 258.7959366844602, - "ns_high": 259.13737016040795, + "ns": 254.52110751316087, + "ns_low": 254.41928526680448, + "ns_high": 254.62760053103312, "throughput": { "Bytes": 32 } @@ -1779,9 +1780,9 @@ "operation": "xchacha20poly1305/{lib}/32B", "library": "libcrux", "id": "xchacha20poly1305/libcrux/32B", - "ns": 247.96407549798874, - "ns_low": 247.4305176292113, - "ns_high": 248.58586196394566, + "ns": 244.35012286759152, + "ns_low": 242.5231468234253, + "ns_high": 248.29915694084286, "throughput": { "Bytes": 32 } @@ -1790,9 +1791,9 @@ "operation": "xchacha20poly1305/{lib}/32B", "library": "rind", "id": "xchacha20poly1305/rind/32B", - "ns": 188.21683891661027, - "ns_low": 188.14795117603384, - "ns_high": 188.2899980132539, + "ns": 185.85064466169132, + "ns_low": 185.750307519062, + "ns_high": 185.96785843332776, "throughput": { "Bytes": 32 } @@ -1801,9 +1802,9 @@ "operation": "xchacha20poly1305/{lib}/32B", "library": "rustcrypto", "id": "xchacha20poly1305/rustcrypto/32B", - "ns": 888.6649958130141, - "ns_low": 838.5291392313788, - "ns_high": 938.8038022867554, + "ns": 1154.3210407503002, + "ns_low": 1153.046149185765, + "ns_high": 1155.682500125614, "throughput": { "Bytes": 32 } @@ -1812,9 +1813,9 @@ "operation": "xchacha20poly1305/{lib}/1350B", "library": "aws-lc-rs", "id": "xchacha20poly1305/aws-lc-rs/1350B", - "ns": 686.6186121731018, - "ns_low": 644.0660887650865, - "ns_high": 724.9261009430636, + "ns": 539.2512707043926, + "ns_low": 538.9500611157986, + "ns_high": 539.5699670127236, "throughput": { "Bytes": 1350 } @@ -1823,9 +1824,9 @@ "operation": "xchacha20poly1305/{lib}/1350B", "library": "graviola", "id": "xchacha20poly1305/graviola/1350B", - "ns": 1354.6320475561338, - "ns_low": 1354.0715373022765, - "ns_high": 1355.135864685574, + "ns": 973.6021023966356, + "ns_low": 972.8031051364533, + "ns_high": 974.509177614838, "throughput": { "Bytes": 1350 } @@ -1834,9 +1835,9 @@ "operation": "xchacha20poly1305/{lib}/1350B", "library": "libcrux", "id": "xchacha20poly1305/libcrux/1350B", - "ns": 2560.372328149659, - "ns_low": 2559.131620911031, - "ns_high": 2561.687586519028, + "ns": 1834.7060447192825, + "ns_low": 1833.5745588205311, + "ns_high": 1835.8537457407233, "throughput": { "Bytes": 1350 } @@ -1845,9 +1846,9 @@ "operation": "xchacha20poly1305/{lib}/1350B", "library": "rind", "id": "xchacha20poly1305/rind/1350B", - "ns": 838.0470138919894, - "ns_low": 836.8895307196619, - "ns_high": 839.3363592162542, + "ns": 528.6618851485149, + "ns_low": 528.3857919314977, + "ns_high": 528.9598249627728, "throughput": { "Bytes": 1350 } @@ -1856,9 +1857,9 @@ "operation": "xchacha20poly1305/{lib}/1350B", "library": "rustcrypto", "id": "xchacha20poly1305/rustcrypto/1350B", - "ns": 1743.6139997342664, - "ns_low": 1740.9467552248213, - "ns_high": 1746.622235407952, + "ns": 1729.7892493880147, + "ns_low": 1728.9539350577188, + "ns_high": 1730.6457043393686, "throughput": { "Bytes": 1350 } @@ -1867,9 +1868,9 @@ "operation": "xchacha20poly1305/{lib}/16KB", "library": "aws-lc-rs", "id": "xchacha20poly1305/aws-lc-rs/16KB", - "ns": 6266.78690135565, - "ns_low": 6241.384146828425, - "ns_high": 6296.471353231269, + "ns": 4234.980958056076, + "ns_low": 4230.572038268781, + "ns_high": 4239.813882185686, "throughput": { "Bytes": 16384 } @@ -1878,9 +1879,9 @@ "operation": "xchacha20poly1305/{lib}/16KB", "library": "graviola", "id": "xchacha20poly1305/graviola/16KB", - "ns": 12792.448669230213, - "ns_low": 12720.285979314733, - "ns_high": 12905.27334088855, + "ns": 8395.075005047278, + "ns_low": 8384.064142495672, + "ns_high": 8407.580825624107, "throughput": { "Bytes": 16384 } @@ -1889,9 +1890,9 @@ "operation": "xchacha20poly1305/{lib}/16KB", "library": "libcrux", "id": "xchacha20poly1305/libcrux/16KB", - "ns": 27402.972695702407, - "ns_low": 27356.563110697218, - "ns_high": 27482.3131649184, + "ns": 19609.596587995824, + "ns_low": 19601.009487113384, + "ns_high": 19618.720092723768, "throughput": { "Bytes": 16384 } @@ -1900,9 +1901,9 @@ "operation": "xchacha20poly1305/{lib}/16KB", "library": "rind", "id": "xchacha20poly1305/rind/16KB", - "ns": 6264.230768081675, - "ns_low": 6241.383487885265, - "ns_high": 6290.758029882741, + "ns": 4174.40743916642, + "ns_low": 4172.535855843093, + "ns_high": 4176.457746830183, "throughput": { "Bytes": 16384 } @@ -1911,9 +1912,9 @@ "operation": "xchacha20poly1305/{lib}/16KB", "library": "rustcrypto", "id": "xchacha20poly1305/rustcrypto/16KB", - "ns": 12275.179641477398, - "ns_low": 12262.180659608572, - "ns_high": 12292.737803105292, + "ns": 8153.435007648405, + "ns_low": 8141.251088364877, + "ns_high": 8164.849730826541, "throughput": { "Bytes": 16384 } @@ -1922,90 +1923,90 @@ "operation": "quic-header-protection/aes128/{lib}", "library": "aws-lc-rs", "id": "quic-header-protection/aes128/aws-lc-rs", - "ns": 3.2849226379225094, - "ns_low": 3.2824123377854058, - "ns_high": 3.2875679946309515, + "ns": 3.251223987832192, + "ns_low": 3.2430376084359183, + "ns_high": 3.2607383653603828, "throughput": null }, { "operation": "quic-header-protection/aes128/{lib}", "library": "rind", "id": "quic-header-protection/aes128/rind", - "ns": 2.0647221143564978, - "ns_low": 2.062700353203003, - "ns_high": 2.0665228229297576, + "ns": 1.7057217073437445, + "ns_low": 1.7041516547642348, + "ns_high": 1.7074101256258563, "throughput": null }, { "operation": "quic-header-protection/aes128/{lib}", "library": "ring", "id": "quic-header-protection/aes128/ring", - "ns": 3.4586795363554375, - "ns_low": 3.4581953521690547, - "ns_high": 3.4592395855204723, + "ns": 3.457281430100614, + "ns_low": 3.456690424858337, + "ns_high": 3.45796011450218, "throughput": null }, { "operation": "quic-header-protection/aes256/{lib}", "library": "aws-lc-rs", "id": "quic-header-protection/aes256/aws-lc-rs", - "ns": 4.966270656140425, - "ns_low": 4.961734935091905, - "ns_high": 4.972089672706578, + "ns": 5.3155687315201225, + "ns_low": 5.312999304584816, + "ns_high": 5.318392801977918, "throughput": null }, { "operation": "quic-header-protection/aes256/{lib}", "library": "rind", "id": "quic-header-protection/aes256/rind", - "ns": 2.4160309628134593, - "ns_low": 2.411033919194383, - "ns_high": 2.421304827374455, + "ns": 2.0766344986236245, + "ns_low": 2.075112036239794, + "ns_high": 2.078432460897788, "throughput": null }, { "operation": "quic-header-protection/aes256/{lib}", "library": "ring", "id": "quic-header-protection/aes256/ring", - "ns": 5.2112390010865965, - "ns_low": 5.210506429014621, - "ns_high": 5.211871118112404, + "ns": 5.132923075251203, + "ns_low": 5.130282168333798, + "ns_high": 5.136120729383983, "throughput": null }, { "operation": "quic-header-protection/chacha20/{lib}", "library": "aws-lc-rs", "id": "quic-header-protection/chacha20/aws-lc-rs", - "ns": 68.73582007739031, - "ns_low": 68.68645440313031, - "ns_high": 68.79832191458829, + "ns": 68.47819606831247, + "ns_low": 68.45261026451129, + "ns_high": 68.50581199257537, "throughput": null }, { "operation": "quic-header-protection/chacha20/{lib}", "library": "rind", "id": "quic-header-protection/chacha20/rind", - "ns": 53.83298747257399, - "ns_low": 53.819105496568675, - "ns_high": 53.84363934079744, + "ns": 53.09920597377861, + "ns_low": 53.07984414982275, + "ns_high": 53.119193684605676, "throughput": null }, { "operation": "quic-header-protection/chacha20/{lib}", "library": "ring", "id": "quic-header-protection/chacha20/ring", - "ns": 61.365653485366614, - "ns_low": 61.35859778939534, - "ns_high": 61.372462436134185, + "ns": 60.39017214914317, + "ns_low": 60.367370581290906, + "ns_high": 60.417102240577094, "throughput": null }, { "operation": "x25519-ecdh/{lib}", "library": "aws-lc-rs", "id": "x25519-ecdh/aws-lc-rs", - "ns": 19539.07523312851, - "ns_low": 19529.410818747132, - "ns_high": 19549.624432104047, + "ns": 19244.324777454152, + "ns_low": 19234.174078693588, + "ns_high": 19254.93132072805, "throughput": { "Elements": 1 } @@ -2014,9 +2015,9 @@ "operation": "x25519-ecdh/{lib}", "library": "graviola", "id": "x25519-ecdh/graviola", - "ns": 18501.332028605844, - "ns_low": 18485.933949435952, - "ns_high": 18518.730083863447, + "ns": 18091.50587243799, + "ns_low": 18081.433592916943, + "ns_high": 18101.805899222727, "throughput": { "Elements": 1 } @@ -2025,9 +2026,9 @@ "operation": "x25519-ecdh/{lib}", "library": "libcrux", "id": "x25519-ecdh/libcrux", - "ns": 43113.798955646096, - "ns_low": 43051.83638575586, - "ns_high": 43187.79841123523, + "ns": 42676.12114575637, + "ns_low": 42579.9384136572, + "ns_high": 42756.88999299897, "throughput": { "Elements": 1 } @@ -2036,9 +2037,9 @@ "operation": "x25519-ecdh/{lib}", "library": "openssl", "id": "x25519-ecdh/openssl", - "ns": 34024.5442590677, - "ns_low": 34006.790643593515, - "ns_high": 34042.3751392026, + "ns": 33951.030497676635, + "ns_low": 33938.287161694636, + "ns_high": 33965.465632383435, "throughput": { "Elements": 1 } @@ -2047,9 +2048,9 @@ "operation": "x25519-ecdh/{lib}", "library": "rind", "id": "x25519-ecdh/rind", - "ns": 19678.88051569336, - "ns_low": 18952.68522734565, - "ns_high": 20611.426825591097, + "ns": 18203.08785397943, + "ns_low": 18193.242370482407, + "ns_high": 18213.7102541489, "throughput": { "Elements": 1 } @@ -2058,9 +2059,9 @@ "operation": "x25519-ecdh/{lib}", "library": "ring", "id": "x25519-ecdh/ring", - "ns": 35625.81028391459, - "ns_low": 35590.293549810085, - "ns_high": 35671.68112702232, + "ns": 35628.691866236666, + "ns_low": 35603.83255620935, + "ns_high": 35654.1500344885, "throughput": { "Elements": 1 } @@ -2069,9 +2070,9 @@ "operation": "x25519-ecdh/{lib}", "library": "rustcrypto", "id": "x25519-ecdh/dalek", - "ns": 36521.55596936691, - "ns_low": 36457.03349006353, - "ns_high": 36591.702263013, + "ns": 36059.78595485009, + "ns_low": 35996.87314512905, + "ns_high": 36126.51849390338, "throughput": { "Elements": 1 } @@ -2080,9 +2081,9 @@ "operation": "p256-ecdh/{lib}", "library": "aws-lc-rs", "id": "p256-ecdh/aws-lc-rs", - "ns": 32271.02992058986, - "ns_low": 32265.10891500941, - "ns_high": 32277.08901188484, + "ns": 31767.263718043447, + "ns_low": 31751.416250980958, + "ns_high": 31786.244225766575, "throughput": { "Elements": 1 } @@ -2091,9 +2092,9 @@ "operation": "p256-ecdh/{lib}", "library": "graviola", "id": "p256-ecdh/graviola", - "ns": 33457.81835640281, - "ns_low": 33407.59196722123, - "ns_high": 33516.89269547137, + "ns": 33672.66087893864, + "ns_low": 33624.495282013995, + "ns_high": 33717.66433321964, "throughput": { "Elements": 1 } @@ -2102,9 +2103,9 @@ "operation": "p256-ecdh/{lib}", "library": "libcrux", "id": "p256-ecdh/libcrux", - "ns": 169873.68446948426, - "ns_low": 169757.5791468354, - "ns_high": 169997.15367285899, + "ns": 171676.0393837742, + "ns_low": 171576.24884169572, + "ns_high": 171776.10132891964, "throughput": { "Elements": 1 } @@ -2113,9 +2114,9 @@ "operation": "p256-ecdh/{lib}", "library": "openssl", "id": "p256-ecdh/openssl", - "ns": 52909.10165706123, - "ns_low": 52895.90814646757, - "ns_high": 52921.794180116354, + "ns": 52916.597788778876, + "ns_low": 52897.91731027563, + "ns_high": 52936.55553492318, "throughput": { "Elements": 1 } @@ -2124,9 +2125,9 @@ "operation": "p256-ecdh/{lib}", "library": "rind", "id": "p256-ecdh/rind", - "ns": 29851.50953746121, - "ns_low": 29846.40621867361, - "ns_high": 29856.573036248763, + "ns": 29523.557551703998, + "ns_low": 29465.75845704179, + "ns_high": 29579.366206385635, "throughput": { "Elements": 1 } @@ -2135,9 +2136,9 @@ "operation": "p256-ecdh/{lib}", "library": "ring", "id": "p256-ecdh/ring", - "ns": 34142.86827085694, - "ns_low": 34137.08196928248, - "ns_high": 34148.502620533625, + "ns": 33635.4506456168, + "ns_low": 33624.86266657603, + "ns_high": 33647.1274631186, "throughput": { "Elements": 1 } @@ -2146,9 +2147,9 @@ "operation": "p256-ecdh/{lib}", "library": "rustcrypto", "id": "p256-ecdh/p256-rustcrypto", - "ns": 123013.99444953451, - "ns_low": 122902.48899810149, - "ns_high": 123120.46865515188, + "ns": 121298.242327176, + "ns_low": 121174.2518128408, + "ns_high": 121419.28830943706, "throughput": { "Elements": 1 } @@ -2157,9 +2158,9 @@ "operation": "ed25519-sign/{lib}", "library": "aws-lc-rs", "id": "ed25519-sign/aws-lc-rs", - "ns": 4559.71967281723, - "ns_low": 4557.983130516597, - "ns_high": 4561.535691701763, + "ns": 4485.754918745606, + "ns_low": 4483.785234593101, + "ns_high": 4487.886444978805, "throughput": { "Elements": 1 } @@ -2168,9 +2169,9 @@ "operation": "ed25519-sign/{lib}", "library": "graviola", "id": "ed25519-sign/graviola", - "ns": 4389.219670568242, - "ns_low": 4384.481990870854, - "ns_high": 4393.613744969962, + "ns": 4398.692000799729, + "ns_low": 4395.597264229124, + "ns_high": 4401.984821050245, "throughput": { "Elements": 1 } @@ -2179,9 +2180,9 @@ "operation": "ed25519-sign/{lib}", "library": "libcrux", "id": "ed25519-sign/libcrux", - "ns": 28971.245762136983, - "ns_low": 28942.490320735833, - "ns_high": 28997.342978912086, + "ns": 28537.099566242337, + "ns_low": 28524.84320459984, + "ns_high": 28550.54616769089, "throughput": { "Elements": 1 } @@ -2190,9 +2191,9 @@ "operation": "ed25519-sign/{lib}", "library": "openssl", "id": "ed25519-sign/openssl", - "ns": 13689.403496110805, - "ns_low": 13683.254110178561, - "ns_high": 13695.234785547975, + "ns": 13672.03782756186, + "ns_low": 13661.390979038732, + "ns_high": 13683.137289201328, "throughput": { "Elements": 1 } @@ -2201,9 +2202,9 @@ "operation": "ed25519-sign/{lib}", "library": "rind", "id": "ed25519-sign/rind", - "ns": 4154.487217213111, - "ns_low": 4153.6244639645865, - "ns_high": 4155.402495573023, + "ns": 4111.479154925271, + "ns_low": 4109.472173093817, + "ns_high": 4113.655139596615, "throughput": { "Elements": 1 } @@ -2212,9 +2213,9 @@ "operation": "ed25519-sign/{lib}", "library": "ring", "id": "ed25519-sign/ring", - "ns": 13142.536287473524, - "ns_low": 13133.836057271445, - "ns_high": 13153.326046876806, + "ns": 13114.176522831387, + "ns_low": 13106.693071194986, + "ns_high": 13122.570822394053, "throughput": { "Elements": 1 } @@ -2223,9 +2224,9 @@ "operation": "ed25519-sign/{lib}", "library": "rustcrypto", "id": "ed25519-sign/dalek", - "ns": 9611.307830824064, - "ns_low": 9551.147298028834, - "ns_high": 9679.455435569824, + "ns": 9600.99246111029, + "ns_low": 9539.301853294819, + "ns_high": 9670.246958366413, "throughput": { "Elements": 1 } @@ -2234,9 +2235,9 @@ "operation": "ed25519-verify/{lib}", "library": "aws-lc-rs", "id": "ed25519-verify/aws-lc-rs", - "ns": 21557.014412696066, - "ns_low": 21544.428828753575, - "ns_high": 21570.50912144487, + "ns": 21414.2071281851, + "ns_low": 21403.916546567023, + "ns_high": 21424.768035993056, "throughput": { "Elements": 1 } @@ -2245,9 +2246,9 @@ "operation": "ed25519-verify/{lib}", "library": "graviola", "id": "ed25519-verify/graviola", - "ns": 21606.95345911883, - "ns_low": 21592.861468028925, - "ns_high": 21622.26833533975, + "ns": 21450.223807553462, + "ns_low": 21440.332959236715, + "ns_high": 21460.798008023055, "throughput": { "Elements": 1 } @@ -2256,9 +2257,9 @@ "operation": "ed25519-verify/{lib}", "library": "libcrux", "id": "ed25519-verify/libcrux", - "ns": 42158.497070446916, - "ns_low": 42073.35130677657, - "ns_high": 42254.28657823319, + "ns": 41826.85573104773, + "ns_low": 41747.50157531547, + "ns_high": 41913.95827678558, "throughput": { "Elements": 1 } @@ -2267,9 +2268,9 @@ "operation": "ed25519-verify/{lib}", "library": "openssl", "id": "ed25519-verify/openssl", - "ns": 45586.51014207604, - "ns_low": 45532.70859802636, - "ns_high": 45644.30197091045, + "ns": 44788.53066435855, + "ns_low": 44742.55141455258, + "ns_high": 44838.17056722112, "throughput": { "Elements": 1 } @@ -2278,9 +2279,9 @@ "operation": "ed25519-verify/{lib}", "library": "rind", "id": "ed25519-verify/rind", - "ns": 21752.237589035023, - "ns_low": 21723.92394684079, - "ns_high": 21779.269500172133, + "ns": 21428.515593742744, + "ns_low": 21412.029185968728, + "ns_high": 21448.61012866892, "throughput": { "Elements": 1 } @@ -2289,9 +2290,9 @@ "operation": "ed25519-verify/{lib}", "library": "ring", "id": "ed25519-verify/ring", - "ns": 26215.124359905167, - "ns_low": 26168.019510703652, - "ns_high": 26259.218774584755, + "ns": 25925.14302915042, + "ns_low": 25907.22370258318, + "ns_high": 25945.77540758124, "throughput": { "Elements": 1 } @@ -2300,9 +2301,9 @@ "operation": "ed25519-verify/{lib}", "library": "rustcrypto", "id": "ed25519-verify/dalek", - "ns": 21882.835314297598, - "ns_low": 21849.237143501105, - "ns_high": 21914.91843600585, + "ns": 21874.072632417825, + "ns_low": 21829.125994759506, + "ns_high": 21924.131367623773, "throughput": { "Elements": 1 } @@ -2311,9 +2312,9 @@ "operation": "p256-ecdsa-sign/{lib}", "library": "aws-lc-rs", "id": "p256-ecdsa-sign/aws-lc-rs", - "ns": 12332.36324582382, - "ns_low": 12316.212140144853, - "ns_high": 12346.124363495894, + "ns": 12249.17650199196, + "ns_low": 12240.147287290672, + "ns_high": 12258.707810738397, "throughput": { "Elements": 1 } @@ -2322,9 +2323,9 @@ "operation": "p256-ecdsa-sign/{lib}", "library": "graviola", "id": "p256-ecdsa-sign/graviola", - "ns": 9257.151430933205, - "ns_low": 9253.446096115242, - "ns_high": 9261.351256878088, + "ns": 8968.389966761435, + "ns_low": 8962.649328986501, + "ns_high": 8974.828959060012, "throughput": { "Elements": 1 } @@ -2333,9 +2334,9 @@ "operation": "p256-ecdsa-sign/{lib}", "library": "libcrux", "id": "p256-ecdsa-sign/libcrux", - "ns": 61343.790970888134, - "ns_low": 61250.731106093524, - "ns_high": 61444.28125033763, + "ns": 61813.46097088813, + "ns_low": 61785.042189533095, + "ns_high": 61843.026235463345, "throughput": { "Elements": 1 } @@ -2344,9 +2345,9 @@ "operation": "p256-ecdsa-sign/{lib}", "library": "openssl", "id": "p256-ecdsa-sign/openssl", - "ns": 14328.932126636972, - "ns_low": 14307.689034706804, - "ns_high": 14347.6497657631, + "ns": 14452.256443173103, + "ns_low": 14433.83600051133, + "ns_high": 14486.286885987545, "throughput": { "Elements": 1 } @@ -2355,9 +2356,9 @@ "operation": "p256-ecdsa-sign/{lib}", "library": "rind", "id": "p256-ecdsa-sign/rind", - "ns": 6840.185645814581, - "ns_low": 6825.26097255226, - "ns_high": 6853.423030453744, + "ns": 6738.318760831307, + "ns_low": 6732.3454621937735, + "ns_high": 6744.139228350493, "throughput": { "Elements": 1 } @@ -2366,9 +2367,9 @@ "operation": "p256-ecdsa-sign/{lib}", "library": "ring", "id": "p256-ecdsa-sign/ring", - "ns": 12240.63920520654, - "ns_low": 12226.679925387518, - "ns_high": 12257.271526323188, + "ns": 12200.802390894587, + "ns_low": 12193.374112063806, + "ns_high": 12208.454709849155, "throughput": { "Elements": 1 } @@ -2377,9 +2378,9 @@ "operation": "p256-ecdsa-sign/{lib}", "library": "rustcrypto", "id": "p256-ecdsa-sign/rustcrypto", - "ns": 31654.61057928181, - "ns_low": 31626.914260109254, - "ns_high": 31678.138407597206, + "ns": 31315.209107044248, + "ns_low": 31285.47749815908, + "ns_high": 31346.906955950082, "throughput": { "Elements": 1 } @@ -2388,9 +2389,9 @@ "operation": "p256-ecdsa-verify/{lib}", "library": "aws-lc-rs", "id": "p256-ecdsa-verify/aws-lc-rs", - "ns": 30084.66275306635, - "ns_low": 30016.618665199156, - "ns_high": 30159.140540112905, + "ns": 29751.07217792227, + "ns_low": 29730.718567505846, + "ns_high": 29772.21855673263, "throughput": { "Elements": 1 } @@ -2399,9 +2400,9 @@ "operation": "p256-ecdsa-verify/{lib}", "library": "graviola", "id": "p256-ecdsa-verify/graviola", - "ns": 32891.974416712685, - "ns_low": 32875.16349251131, - "ns_high": 32906.44431223083, + "ns": 32359.01470588693, + "ns_low": 32340.616576835466, + "ns_high": 32378.6818948533, "throughput": { "Elements": 1 } @@ -2410,9 +2411,9 @@ "operation": "p256-ecdsa-verify/{lib}", "library": "libcrux", "id": "p256-ecdsa-verify/libcrux", - "ns": 147106.718173489, - "ns_low": 147033.92941888553, - "ns_high": 147172.52405767862, + "ns": 147266.68459760604, + "ns_low": 147208.3477265641, + "ns_high": 147326.40483692702, "throughput": { "Elements": 1 } @@ -2421,9 +2422,9 @@ "operation": "p256-ecdsa-verify/{lib}", "library": "openssl", "id": "p256-ecdsa-verify/openssl", - "ns": 46409.04586306851, - "ns_low": 46372.64329527699, - "ns_high": 46440.39038689084, + "ns": 46462.86099601005, + "ns_low": 46439.95350110146, + "ns_high": 46489.02344765287, "throughput": { "Elements": 1 } @@ -2432,9 +2433,9 @@ "operation": "p256-ecdsa-verify/{lib}", "library": "rind", "id": "p256-ecdsa-verify/rind", - "ns": 30949.83417940003, - "ns_low": 30907.22497757062, - "ns_high": 30993.593756844246, + "ns": 30587.991460174377, + "ns_low": 30576.116227872146, + "ns_high": 30600.666532856198, "throughput": { "Elements": 1 } @@ -2443,9 +2444,9 @@ "operation": "p256-ecdsa-verify/{lib}", "library": "ring", "id": "p256-ecdsa-verify/ring", - "ns": 33740.66733034497, - "ns_low": 33728.36186738411, - "ns_high": 33753.28131004164, + "ns": 33231.94069651741, + "ns_low": 33210.30137895589, + "ns_high": 33255.40914393153, "throughput": { "Elements": 1 } @@ -2454,9 +2455,9 @@ "operation": "p256-ecdsa-verify/{lib}", "library": "rustcrypto", "id": "p256-ecdsa-verify/rustcrypto", - "ns": 104580.64370622137, - "ns_low": 104507.31492770273, - "ns_high": 104650.308853841, + "ns": 103239.12943254027, + "ns_low": 103116.869413853, + "ns_high": 103377.53067193563, "throughput": { "Elements": 1 } @@ -2465,9 +2466,9 @@ "operation": "sha256/{lib}/64B", "library": "aws-lc-rs", "id": "sha256/aws-lc-rs/64B", - "ns": 57.07780498017607, - "ns_low": 57.03924007344737, - "ns_high": 57.122334662770214, + "ns": 57.01276505236001, + "ns_low": 56.99281591222794, + "ns_high": 57.0329218188609, "throughput": { "Bytes": 64 } @@ -2476,9 +2477,9 @@ "operation": "sha256/{lib}/64B", "library": "graviola", "id": "sha256/graviola/64B", - "ns": 40.888094007132246, - "ns_low": 40.82697235690137, - "ns_high": 40.959848187695705, + "ns": 40.08559266443109, + "ns_low": 40.045317451576864, + "ns_high": 40.129435911125704, "throughput": { "Bytes": 64 } @@ -2487,9 +2488,9 @@ "operation": "sha256/{lib}/64B", "library": "libcrux", "id": "sha256/libcrux/64B", - "ns": 211.463824432683, - "ns_low": 211.24841884933582, - "ns_high": 211.6952872519302, + "ns": 217.50730438169248, + "ns_low": 215.60785392792454, + "ns_high": 219.53814235106364, "throughput": { "Bytes": 64 } @@ -2498,9 +2499,9 @@ "operation": "sha256/{lib}/64B", "library": "openssl", "id": "sha256/openssl/64B", - "ns": 161.46531875596597, - "ns_low": 161.3323192163265, - "ns_high": 161.645625905102, + "ns": 158.28726392259222, + "ns_low": 158.1127027313786, + "ns_high": 158.4622089672232, "throughput": { "Bytes": 64 } @@ -2509,9 +2510,9 @@ "operation": "sha256/{lib}/64B", "library": "rind", "id": "sha256/rind/64B", - "ns": 28.205992954074453, - "ns_low": 28.066879994220102, - "ns_high": 28.358531151598367, + "ns": 28.172676969162893, + "ns_low": 26.87496116714168, + "ns_high": 29.772743184319832, "throughput": { "Bytes": 64 } @@ -2520,9 +2521,9 @@ "operation": "sha256/{lib}/64B", "library": "ring", "id": "sha256/ring/64B", - "ns": 57.64047680394514, - "ns_low": 57.446493780869076, - "ns_high": 57.870419151601645, + "ns": 56.31874103195594, + "ns_low": 56.21485920701086, + "ns_high": 56.414816659316905, "throughput": { "Bytes": 64 } @@ -2531,9 +2532,9 @@ "operation": "sha256/{lib}/64B", "library": "rustcrypto", "id": "sha256/rustcrypto/64B", - "ns": 39.82655421676985, - "ns_low": 39.75719985276131, - "ns_high": 39.90312173598696, + "ns": 39.104576234058996, + "ns_low": 39.05144185193484, + "ns_high": 39.15667740692904, "throughput": { "Bytes": 64 } @@ -2542,9 +2543,9 @@ "operation": "sha256/{lib}/1350B", "library": "aws-lc-rs", "id": "sha256/aws-lc-rs/1350B", - "ns": 311.50030013323084, - "ns_low": 311.4391643052842, - "ns_high": 311.5697877423096, + "ns": 306.11777763239104, + "ns_low": 305.9251553496526, + "ns_high": 306.3365158348072, "throughput": { "Bytes": 1350 } @@ -2553,9 +2554,9 @@ "operation": "sha256/{lib}/1350B", "library": "graviola", "id": "sha256/graviola/1350B", - "ns": 297.28542574967105, - "ns_low": 297.2191239313175, - "ns_high": 297.357642170268, + "ns": 292.23294489717057, + "ns_low": 292.060601318478, + "ns_high": 292.4093349990519, "throughput": { "Bytes": 1350 } @@ -2564,9 +2565,9 @@ "operation": "sha256/{lib}/1350B", "library": "libcrux", "id": "sha256/libcrux/1350B", - "ns": 2305.0078034727926, - "ns_low": 2300.979740841767, - "ns_high": 2309.24310840217, + "ns": 2286.170527789329, + "ns_low": 2278.757727661272, + "ns_high": 2293.953761317812, "throughput": { "Bytes": 1350 } @@ -2575,9 +2576,9 @@ "operation": "sha256/{lib}/1350B", "library": "openssl", "id": "sha256/openssl/1350B", - "ns": 414.50699030428865, - "ns_low": 414.1822574660999, - "ns_high": 414.9161904417849, + "ns": 406.15979595595184, + "ns_low": 405.9893659799202, + "ns_high": 406.3438081898103, "throughput": { "Bytes": 1350 } @@ -2586,9 +2587,9 @@ "operation": "sha256/{lib}/1350B", "library": "rind", "id": "sha256/rind/1350B", - "ns": 279.33023365347293, - "ns_low": 279.181897587058, - "ns_high": 279.5214269345492, + "ns": 268.92496881098225, + "ns_low": 268.64974712534007, + "ns_high": 269.226645011836, "throughput": { "Bytes": 1350 } @@ -2597,9 +2598,9 @@ "operation": "sha256/{lib}/1350B", "library": "ring", "id": "sha256/ring/1350B", - "ns": 304.2757826058346, - "ns_low": 304.12858288402794, - "ns_high": 304.44288429327634, + "ns": 304.3367208034221, + "ns_low": 304.2110163414353, + "ns_high": 304.47433969371934, "throughput": { "Bytes": 1350 } @@ -2608,9 +2609,9 @@ "operation": "sha256/{lib}/1350B", "library": "rustcrypto", "id": "sha256/rustcrypto/1350B", - "ns": 296.492608468818, - "ns_low": 296.3904108710414, - "ns_high": 296.6248990647093, + "ns": 295.6638055198604, + "ns_low": 295.1696133926388, + "ns_high": 296.0900177412233, "throughput": { "Bytes": 1350 } @@ -2619,9 +2620,9 @@ "operation": "sha256/{lib}/16KB", "library": "aws-lc-rs", "id": "sha256/aws-lc-rs/16KB", - "ns": 3283.0295457725865, - "ns_low": 3281.7344439904296, - "ns_high": 3284.786733755064, + "ns": 3231.5506677064527, + "ns_low": 3230.4817557622514, + "ns_high": 3232.7617835692313, "throughput": { "Bytes": 16384 } @@ -2630,9 +2631,9 @@ "operation": "sha256/{lib}/16KB", "library": "graviola", "id": "sha256/graviola/16KB", - "ns": 3265.6333773629945, - "ns_low": 3263.9351752677467, - "ns_high": 3267.806741465453, + "ns": 3216.47218129316, + "ns_low": 3214.7843990579195, + "ns_high": 3218.3087058485844, "throughput": { "Bytes": 16384 } @@ -2641,9 +2642,9 @@ "operation": "sha256/{lib}/16KB", "library": "libcrux", "id": "sha256/libcrux/16KB", - "ns": 26811.13259603832, - "ns_low": 26779.51980835993, - "ns_high": 26845.04406403952, + "ns": 26897.549368225595, + "ns_low": 26788.034948351993, + "ns_high": 27012.07551371574, "throughput": { "Bytes": 16384 } @@ -2652,9 +2653,9 @@ "operation": "sha256/{lib}/16KB", "library": "openssl", "id": "sha256/openssl/16KB", - "ns": 3392.394214545378, - "ns_low": 3389.5899201151756, - "ns_high": 3396.129832636286, + "ns": 3355.415052047688, + "ns_low": 3350.3364766648033, + "ns_high": 3361.0223119371235, "throughput": { "Bytes": 16384 } @@ -2663,9 +2664,9 @@ "operation": "sha256/{lib}/16KB", "library": "rind", "id": "sha256/rind/16KB", - "ns": 3242.8920252536286, - "ns_low": 3242.3904644935947, - "ns_high": 3243.5038008749425, + "ns": 3189.9143829800014, + "ns_low": 3188.7162293734314, + "ns_high": 3191.226250458984, "throughput": { "Bytes": 16384 } @@ -2674,9 +2675,9 @@ "operation": "sha256/{lib}/16KB", "library": "ring", "id": "sha256/ring/16KB", - "ns": 3276.5819758784146, - "ns_low": 3275.098823852031, - "ns_high": 3278.240138337619, + "ns": 3223.1275321173102, + "ns_low": 3221.8243162529197, + "ns_high": 3224.535764853507, "throughput": { "Bytes": 16384 } @@ -2685,9 +2686,9 @@ "operation": "sha256/{lib}/16KB", "library": "rustcrypto", "id": "sha256/rustcrypto/16KB", - "ns": 3263.4494344217883, - "ns_low": 3262.1079096121252, - "ns_high": 3265.756119663615, + "ns": 3220.2731376033935, + "ns_low": 3216.903877517933, + "ns_high": 3223.579584596558, "throughput": { "Bytes": 16384 } @@ -2696,9 +2697,9 @@ "operation": "sha512/{lib}/64B", "library": "aws-lc-rs", "id": "sha512/aws-lc-rs/64B", - "ns": 136.2655991208623, - "ns_low": 136.1299679034618, - "ns_high": 136.4049697981706, + "ns": 133.8019829204203, + "ns_low": 133.6831927765179, + "ns_high": 133.92973016864454, "throughput": { "Bytes": 64 } @@ -2707,9 +2708,9 @@ "operation": "sha512/{lib}/64B", "library": "graviola", "id": "sha512/graviola/64B", - "ns": 149.7061188254441, - "ns_low": 149.20822473788772, - "ns_high": 150.319748905392, + "ns": 148.4575746586375, + "ns_low": 148.16370099972895, + "ns_high": 148.74579461342378, "throughput": { "Bytes": 64 } @@ -2718,9 +2719,9 @@ "operation": "sha512/{lib}/64B", "library": "libcrux", "id": "sha512/libcrux/64B", - "ns": 167.17430978333616, - "ns_low": 165.72725270938466, - "ns_high": 168.8867037846744, + "ns": 166.17978856992008, + "ns_low": 165.9969143651312, + "ns_high": 166.36456858747508, "throughput": { "Bytes": 64 } @@ -2729,9 +2730,9 @@ "operation": "sha512/{lib}/64B", "library": "openssl", "id": "sha512/openssl/64B", - "ns": 232.78727189215087, - "ns_low": 232.26529006657455, - "ns_high": 233.51007899749916, + "ns": 225.8325588132335, + "ns_low": 225.6457047097158, + "ns_high": 226.0356286981869, "throughput": { "Bytes": 64 } @@ -2740,9 +2741,9 @@ "operation": "sha512/{lib}/64B", "library": "rind", "id": "sha512/rind/64B", - "ns": 60.14709963910266, - "ns_low": 59.94789265359081, - "ns_high": 60.35184473538463, + "ns": 60.090929140141704, + "ns_low": 60.00040388730218, + "ns_high": 60.1710997889434, "throughput": { "Bytes": 64 } @@ -2751,9 +2752,9 @@ "operation": "sha512/{lib}/64B", "library": "ring", "id": "sha512/ring/64B", - "ns": 141.7260210111771, - "ns_low": 141.3850173604179, - "ns_high": 142.03714113120193, + "ns": 139.97080335000595, + "ns_low": 139.58540752706853, + "ns_high": 140.32737858495767, "throughput": { "Bytes": 64 } @@ -2762,9 +2763,9 @@ "operation": "sha512/{lib}/64B", "library": "rustcrypto", "id": "sha512/rustcrypto/64B", - "ns": 119.66486417325247, - "ns_low": 119.59295205917444, - "ns_high": 119.74559350850211, + "ns": 120.18388287790492, + "ns_low": 120.13099118064582, + "ns_high": 120.24615677394313, "throughput": { "Bytes": 64 } @@ -2773,9 +2774,9 @@ "operation": "sha512/{lib}/1350B", "library": "aws-lc-rs", "id": "sha512/aws-lc-rs/1350B", - "ns": 1266.5752973724175, - "ns_low": 1263.7482848364666, - "ns_high": 1270.620632241901, + "ns": 1243.4708805469318, + "ns_low": 1241.8767836367058, + "ns_high": 1245.359299359576, "throughput": { "Bytes": 1350 } @@ -2784,9 +2785,9 @@ "operation": "sha512/{lib}/1350B", "library": "graviola", "id": "sha512/graviola/1350B", - "ns": 1508.3237133029922, - "ns_low": 1507.3853594131954, - "ns_high": 1509.449740586973, + "ns": 1486.2947918247253, + "ns_low": 1483.3732722970992, + "ns_high": 1489.4669882723929, "throughput": { "Bytes": 1350 } @@ -2795,9 +2796,9 @@ "operation": "sha512/{lib}/1350B", "library": "libcrux", "id": "sha512/libcrux/1350B", - "ns": 1688.1435554561963, - "ns_low": 1680.9787033325974, - "ns_high": 1694.0590923782233, + "ns": 1718.1407062259996, + "ns_low": 1714.3481769417067, + "ns_high": 1721.9899953432741, "throughput": { "Bytes": 1350 } @@ -2806,9 +2807,9 @@ "operation": "sha512/{lib}/1350B", "library": "openssl", "id": "sha512/openssl/1350B", - "ns": 1198.4821694942725, - "ns_low": 1197.893327069669, - "ns_high": 1199.1243746919226, + "ns": 1171.3578442313012, + "ns_low": 1171.0155521122767, + "ns_high": 1171.719266767049, "throughput": { "Bytes": 1350 } @@ -2817,9 +2818,9 @@ "operation": "sha512/{lib}/1350B", "library": "rind", "id": "sha512/rind/1350B", - "ns": 470.24864981801466, - "ns_low": 409.08206027196167, - "ns_high": 526.1629114299801, + "ns": 249.33934868874138, + "ns_low": 249.1685386658306, + "ns_high": 249.51058111734417, "throughput": { "Bytes": 1350 } @@ -2828,9 +2829,9 @@ "operation": "sha512/{lib}/1350B", "library": "ring", "id": "sha512/ring/1350B", - "ns": 1264.6400820225058, - "ns_low": 1263.0291710358488, - "ns_high": 1266.4275746491335, + "ns": 1258.5604929011652, + "ns_low": 1258.1228454628724, + "ns_high": 1259.0379024398105, "throughput": { "Bytes": 1350 } @@ -2839,9 +2840,9 @@ "operation": "sha512/{lib}/1350B", "library": "rustcrypto", "id": "sha512/rustcrypto/1350B", - "ns": 1177.0814654567803, - "ns_low": 1175.705865498065, - "ns_high": 1178.6655036008042, + "ns": 1168.0090951281636, + "ns_low": 1167.4702248518706, + "ns_high": 1168.5915347479472, "throughput": { "Bytes": 1350 } @@ -2850,9 +2851,9 @@ "operation": "sha512/{lib}/16KB", "library": "aws-lc-rs", "id": "sha512/aws-lc-rs/16KB", - "ns": 14324.6124127594, - "ns_low": 14322.068947079335, - "ns_high": 14327.458794272552, + "ns": 14115.311413185053, + "ns_low": 14107.372756823104, + "ns_high": 14124.435450733377, "throughput": { "Bytes": 16384 } @@ -2861,9 +2862,9 @@ "operation": "sha512/{lib}/16KB", "library": "graviola", "id": "sha512/graviola/16KB", - "ns": 17960.455877766883, - "ns_low": 17945.06157671212, - "ns_high": 17976.991053498718, + "ns": 17497.58025191457, + "ns_low": 17486.925814562677, + "ns_high": 17511.351629894998, "throughput": { "Bytes": 16384 } @@ -2872,9 +2873,9 @@ "operation": "sha512/{lib}/16KB", "library": "libcrux", "id": "sha512/libcrux/16KB", - "ns": 20014.21848342446, - "ns_low": 19975.524612208614, - "ns_high": 20055.03547118072, + "ns": 20102.91892271317, + "ns_low": 20086.75429027851, + "ns_high": 20119.157747996884, "throughput": { "Bytes": 16384 } @@ -2883,9 +2884,9 @@ "operation": "sha512/{lib}/16KB", "library": "openssl", "id": "sha512/openssl/16KB", - "ns": 12508.177673821487, - "ns_low": 12505.579143665225, - "ns_high": 12511.403772787979, + "ns": 12288.512652518373, + "ns_low": 12284.361134389035, + "ns_high": 12293.268725292246, "throughput": { "Bytes": 16384 } @@ -2894,9 +2895,9 @@ "operation": "sha512/{lib}/16KB", "library": "rind", "id": "sha512/rind/16KB", - "ns": 2682.4944639142445, - "ns_low": 2682.0680151586207, - "ns_high": 2682.980999425245, + "ns": 2625.8782779607436, + "ns_low": 2624.8208767235433, + "ns_high": 2627.0455703809835, "throughput": { "Bytes": 16384 } @@ -2905,9 +2906,9 @@ "operation": "sha512/{lib}/16KB", "library": "ring", "id": "sha512/ring/16KB", - "ns": 14361.137933036374, - "ns_low": 14345.0517225857, - "ns_high": 14383.467400110318, + "ns": 14096.542254030332, + "ns_low": 14091.1838571038, + "ns_high": 14102.164817632876, "throughput": { "Bytes": 16384 } @@ -2916,9 +2917,9 @@ "operation": "sha512/{lib}/16KB", "library": "rustcrypto", "id": "sha512/rustcrypto/16KB", - "ns": 13545.192540537635, - "ns_low": 13539.043584903971, - "ns_high": 13551.570367094011, + "ns": 13511.495519499711, + "ns_low": 13503.010991371562, + "ns_high": 13521.466944604012, "throughput": { "Bytes": 16384 } @@ -2927,9 +2928,9 @@ "operation": "hmac-sha256/{lib}/64B", "library": "aws-lc-rs", "id": "hmac-sha256/aws-lc-rs/64B", - "ns": 179.52325180261926, - "ns_low": 179.04996476638283, - "ns_high": 179.95122647804195, + "ns": 179.9443864665826, + "ns_low": 179.414001260722, + "ns_high": 180.5121087864548, "throughput": { "Bytes": 64 } @@ -2938,9 +2939,9 @@ "operation": "hmac-sha256/{lib}/64B", "library": "graviola", "id": "hmac-sha256/graviola/64B", - "ns": 114.6121248659075, - "ns_low": 114.36401551181646, - "ns_high": 114.8355854360762, + "ns": 110.00800428550318, + "ns_low": 109.72942451441915, + "ns_high": 110.30841422380001, "throughput": { "Bytes": 64 } @@ -2949,9 +2950,9 @@ "operation": "hmac-sha256/{lib}/64B", "library": "libcrux", "id": "hmac-sha256/libcrux/64B", - "ns": 535.7057888058907, - "ns_low": 534.042470022342, - "ns_high": 537.3795627766356, + "ns": 536.9835110429013, + "ns_low": 535.5751201937911, + "ns_high": 538.3659197426169, "throughput": { "Bytes": 64 } @@ -2960,9 +2961,9 @@ "operation": "hmac-sha256/{lib}/64B", "library": "openssl", "id": "hmac-sha256/openssl/64B", - "ns": 1562.800352892099, - "ns_low": 1560.8820703584079, - "ns_high": 1564.4973883425225, + "ns": 1554.7293078951257, + "ns_low": 1553.5198069787748, + "ns_high": 1556.0147684789324, "throughput": { "Bytes": 64 } @@ -2971,9 +2972,9 @@ "operation": "hmac-sha256/{lib}/64B", "library": "rind", "id": "hmac-sha256/rind/64B", - "ns": 75.27759916225655, - "ns_low": 75.24755736657713, - "ns_high": 75.30460323949843, + "ns": 75.08938428017244, + "ns_low": 75.02234466762171, + "ns_high": 75.16378636377841, "throughput": { "Bytes": 64 } @@ -2982,9 +2983,9 @@ "operation": "hmac-sha256/{lib}/64B", "library": "ring", "id": "hmac-sha256/ring/64B", - "ns": 145.08627766905616, - "ns_low": 144.86466488783432, - "ns_high": 145.29121159645564, + "ns": 145.19689182382092, + "ns_low": 144.90771981524023, + "ns_high": 145.50222106360064, "throughput": { "Bytes": 64 } @@ -2993,9 +2994,9 @@ "operation": "hmac-sha256/{lib}/64B", "library": "rustcrypto", "id": "hmac-sha256/rustcrypto/64B", - "ns": 104.45123825647612, - "ns_low": 104.32206098554813, - "ns_high": 104.59109303195464, + "ns": 103.0704074524284, + "ns_low": 102.9090784652565, + "ns_high": 103.22358283593606, "throughput": { "Bytes": 64 } @@ -3004,9 +3005,9 @@ "operation": "hmac-sha256/{lib}/1350B", "library": "aws-lc-rs", "id": "hmac-sha256/aws-lc-rs/1350B", - "ns": 434.2205046166308, - "ns_low": 433.48499734394835, - "ns_high": 434.8508048814356, + "ns": 434.915899860939, + "ns_low": 434.407798909477, + "ns_high": 435.45339780318824, "throughput": { "Bytes": 1350 } @@ -3015,9 +3016,9 @@ "operation": "hmac-sha256/{lib}/1350B", "library": "graviola", "id": "hmac-sha256/graviola/1350B", - "ns": 362.85941402022263, - "ns_low": 362.3120005509426, - "ns_high": 363.33100025885005, + "ns": 357.83183002336574, + "ns_low": 357.44495921803895, + "ns_high": 358.2504911759211, "throughput": { "Bytes": 1350 } @@ -3026,9 +3027,9 @@ "operation": "hmac-sha256/{lib}/1350B", "library": "libcrux", "id": "hmac-sha256/libcrux/1350B", - "ns": 2663.4009064868374, - "ns_low": 2655.8184536123144, - "ns_high": 2671.7821733021406, + "ns": 2676.179290993419, + "ns_low": 2666.52531309591, + "ns_high": 2685.749256645017, "throughput": { "Bytes": 1350 } @@ -3037,9 +3038,9 @@ "operation": "hmac-sha256/{lib}/1350B", "library": "openssl", "id": "hmac-sha256/openssl/1350B", - "ns": 1831.3069454706665, - "ns_low": 1828.336967734266, - "ns_high": 1833.9888859194004, + "ns": 1809.5311845415522, + "ns_low": 1808.1992898585718, + "ns_high": 1810.9224984412424, "throughput": { "Bytes": 1350 } @@ -3048,9 +3049,9 @@ "operation": "hmac-sha256/{lib}/1350B", "library": "rind", "id": "hmac-sha256/rind/1350B", - "ns": 326.76855909676686, - "ns_low": 326.4023564358526, - "ns_high": 327.05976589095803, + "ns": 328.1901390001888, + "ns_low": 328.07440496633444, + "ns_high": 328.33194031741965, "throughput": { "Bytes": 1350 } @@ -3059,9 +3060,9 @@ "operation": "hmac-sha256/{lib}/1350B", "library": "ring", "id": "hmac-sha256/ring/1350B", - "ns": 399.2343448704809, - "ns_low": 398.7434247279018, - "ns_high": 399.6643116664799, + "ns": 397.25244307629634, + "ns_low": 396.54297038496026, + "ns_high": 398.0075724539022, "throughput": { "Bytes": 1350 } @@ -3070,9 +3071,9 @@ "operation": "hmac-sha256/{lib}/1350B", "library": "rustcrypto", "id": "hmac-sha256/rustcrypto/1350B", - "ns": 357.5070450437354, - "ns_low": 357.13555975802785, - "ns_high": 357.83497562574763, + "ns": 355.56820828978954, + "ns_low": 355.005664886101, + "ns_high": 356.13709540876175, "throughput": { "Bytes": 1350 } @@ -3081,117 +3082,117 @@ "operation": "hkdf-sha256/extract-expand/{lib}", "library": "aws-lc-rs", "id": "hkdf-sha256/extract-expand/aws-lc-rs", - "ns": 287.8098287850376, - "ns_low": 287.612103154488, - "ns_high": 287.9812652649698, + "ns": 284.6538582620157, + "ns_low": 284.4011925065479, + "ns_high": 284.92622488972563, "throughput": null }, { "operation": "hkdf-sha256/extract-expand/{lib}", "library": "libcrux", "id": "hkdf-sha256/extract-expand/libcrux", - "ns": 965.1533975637105, - "ns_low": 962.8532652146317, - "ns_high": 967.3152167857165, + "ns": 965.4921747377815, + "ns_low": 963.0857117114247, + "ns_high": 967.6620430129673, "throughput": null }, { "operation": "hkdf-sha256/extract-expand/{lib}", "library": "openssl", "id": "hkdf-sha256/extract-expand/openssl", - "ns": 1756.538641568291, - "ns_low": 1754.8270512089846, - "ns_high": 1758.1583153590252, + "ns": 1723.0448556606789, + "ns_low": 1721.4737057971088, + "ns_high": 1724.776897272598, "throughput": null }, { "operation": "hkdf-sha256/extract-expand/{lib}", "library": "rind", "id": "hkdf-sha256/extract-expand/rind", - "ns": 151.84234055019724, - "ns_low": 151.73957879381905, - "ns_high": 151.96314350680365, + "ns": 157.76140792685047, + "ns_low": 157.65533870132953, + "ns_high": 157.8722016346316, "throughput": null }, { "operation": "hkdf-sha256/extract-expand/{lib}", "library": "ring", "id": "hkdf-sha256/extract-expand/ring", - "ns": 305.3730538148794, - "ns_low": 304.881731693248, - "ns_high": 305.8615753565893, + "ns": 302.5501807490982, + "ns_low": 301.87809128769396, + "ns_high": 303.1926999772377, "throughput": null }, { "operation": "hkdf-sha256/extract-expand/{lib}", "library": "rustcrypto", "id": "hkdf-sha256/extract-expand/rustcrypto", - "ns": 223.1043449543745, - "ns_low": 222.84408996979568, - "ns_high": 223.35041207485347, + "ns": 222.5832828418161, + "ns_low": 222.31048557670763, + "ns_high": 222.85076841166946, "throughput": null }, { "operation": "hkdf-sha256/expand/{lib}", "library": "aws-lc-rs", "id": "hkdf-sha256/expand/aws-lc-rs", - "ns": 125.89587997148631, - "ns_low": 125.64336264066881, - "ns_high": 126.19959443812142, + "ns": 124.11689168829068, + "ns_low": 124.01818290003133, + "ns_high": 124.21524514406377, "throughput": null }, { "operation": "hkdf-sha256/expand/{lib}", "library": "libcrux", "id": "hkdf-sha256/expand/libcrux", - "ns": 483.73163128306606, - "ns_low": 482.9202939004775, - "ns_high": 484.5982910743078, + "ns": 480.4296643744097, + "ns_low": 479.76435065854514, + "ns_high": 481.0811215647699, "throughput": null }, { "operation": "hkdf-sha256/expand/{lib}", "library": "openssl", "id": "hkdf-sha256/expand/openssl", - "ns": 1247.9604070296657, - "ns_low": 1245.2075502386658, - "ns_high": 1250.9651292340288, + "ns": 1233.1469665631623, + "ns_low": 1231.4737753475117, + "ns_high": 1234.9115459242396, "throughput": null }, { "operation": "hkdf-sha256/expand/{lib}", "library": "rind", "id": "hkdf-sha256/expand/rind", - "ns": 46.59085342610036, - "ns_low": 46.579548282759596, - "ns_high": 46.60067962838439, + "ns": 66.1334910677645, + "ns_low": 65.10425877051851, + "ns_high": 67.25450463817148, "throughput": null }, { "operation": "hkdf-sha256/expand/{lib}", "library": "ring", "id": "hkdf-sha256/expand/ring", - "ns": 122.48199763699388, - "ns_low": 122.12427569598637, - "ns_high": 122.80800794484342, + "ns": 120.39983565531816, + "ns_low": 120.12566956119001, + "ns_high": 120.71623706223278, "throughput": null }, { "operation": "hkdf-sha256/expand/{lib}", "library": "rustcrypto", "id": "hkdf-sha256/expand/rustcrypto", - "ns": 85.31006899480023, - "ns_low": 85.05104558699664, - "ns_high": 85.54341109242, + "ns": 83.8216579873762, + "ns_low": 83.68889293099302, + "ns_high": 83.96669813051712, "throughput": null }, { "operation": "rsa2048-pkcs1-sha256-sign/{lib}", "library": "aws-lc-rs", "id": "rsa2048-pkcs1-sha256-sign/aws-lc-rs", - "ns": 349471.37251366925, - "ns_low": 349316.86468367843, - "ns_high": 349630.3356729338, + "ns": 344239.68309442885, + "ns_low": 344025.5495042453, + "ns_high": 344455.3380266123, "throughput": { "Elements": 1 } @@ -3200,9 +3201,9 @@ "operation": "rsa2048-pkcs1-sha256-sign/{lib}", "library": "graviola", "id": "rsa2048-pkcs1-sha256-sign/graviola", - "ns": 343907.14512043743, - "ns_low": 343855.2297354245, - "ns_high": 343959.18510480097, + "ns": 343747.91087631154, + "ns_low": 343640.41356107395, + "ns_high": 343861.570475513, "throughput": { "Elements": 1 } @@ -3211,9 +3212,9 @@ "operation": "rsa2048-pkcs1-sha256-sign/{lib}", "library": "openssl", "id": "rsa2048-pkcs1-sha256-sign/openssl", - "ns": 397719.5934387469, - "ns_low": 394853.21189945587, - "ns_high": 400585.5395830746, + "ns": 393451.76934091916, + "ns_low": 390560.33560303645, + "ns_high": 396330.56083691306, "throughput": { "Elements": 1 } @@ -3222,9 +3223,9 @@ "operation": "rsa2048-pkcs1-sha256-sign/{lib}", "library": "rind", "id": "rsa2048-pkcs1-sha256-sign/rind", - "ns": 348427.82297325257, - "ns_low": 347732.08002372395, - "ns_high": 349074.92987747607, + "ns": 341491.1479976356, + "ns_low": 341320.8407936996, + "ns_high": 341691.55745021085, "throughput": { "Elements": 1 } @@ -3233,9 +3234,9 @@ "operation": "rsa2048-pkcs1-sha256-sign/{lib}", "library": "ring", "id": "rsa2048-pkcs1-sha256-sign/ring", - "ns": 341114.81477759714, - "ns_low": 340825.6092121954, - "ns_high": 341392.0938189295, + "ns": 336103.55799911334, + "ns_low": 335922.55921454245, + "ns_high": 336293.16388707637, "throughput": { "Elements": 1 } @@ -3244,9 +3245,9 @@ "operation": "rsa2048-pkcs1-sha256-sign/{lib}", "library": "rustcrypto", "id": "rsa2048-pkcs1-sha256-sign/rustcrypto", - "ns": 588672.1972661446, - "ns_low": 587884.7008701479, - "ns_high": 589460.9525866724, + "ns": 580178.2960351707, + "ns_low": 579734.9323068461, + "ns_high": 580619.3310663257, "throughput": { "Elements": 1 } @@ -3255,9 +3256,9 @@ "operation": "rsa2048-pkcs1-sha256-verify/{lib}", "library": "aws-lc-rs", "id": "rsa2048-pkcs1-sha256-verify/aws-lc-rs", - "ns": 10863.22911482193, - "ns_low": 10854.474501447028, - "ns_high": 10872.893361554125, + "ns": 10955.983230812633, + "ns_low": 10948.353431344214, + "ns_high": 10964.42118022023, "throughput": { "Elements": 1 } @@ -3266,9 +3267,9 @@ "operation": "rsa2048-pkcs1-sha256-verify/{lib}", "library": "graviola", "id": "rsa2048-pkcs1-sha256-verify/graviola", - "ns": 14055.037460434743, - "ns_low": 14045.80201515217, - "ns_high": 14065.00693090199, + "ns": 13975.01862307161, + "ns_low": 13962.170399833934, + "ns_high": 13990.223889509338, "throughput": { "Elements": 1 } @@ -3277,9 +3278,9 @@ "operation": "rsa2048-pkcs1-sha256-verify/{lib}", "library": "openssl", "id": "rsa2048-pkcs1-sha256-verify/openssl", - "ns": 15586.432159461641, - "ns_low": 15573.114285913025, - "ns_high": 15599.609695910496, + "ns": 15510.445546449018, + "ns_low": 15499.024959447948, + "ns_high": 15522.673984823914, "throughput": { "Elements": 1 } @@ -3288,9 +3289,9 @@ "operation": "rsa2048-pkcs1-sha256-verify/{lib}", "library": "rind", "id": "rsa2048-pkcs1-sha256-verify/rind", - "ns": 8974.94704174895, - "ns_low": 8967.933090640321, - "ns_high": 8981.217273496757, + "ns": 8920.560531187448, + "ns_low": 8914.997587820231, + "ns_high": 8926.275900763123, "throughput": { "Elements": 1 } @@ -3299,9 +3300,9 @@ "operation": "rsa2048-pkcs1-sha256-verify/{lib}", "library": "ring", "id": "rsa2048-pkcs1-sha256-verify/ring", - "ns": 12695.372112810892, - "ns_low": 12675.518745230123, - "ns_high": 12717.04579012033, + "ns": 12783.959092848285, + "ns_low": 12770.805741952116, + "ns_high": 12798.09761835723, "throughput": { "Elements": 1 } @@ -3310,9 +3311,9 @@ "operation": "rsa2048-pkcs1-sha256-verify/{lib}", "library": "rustcrypto", "id": "rsa2048-pkcs1-sha256-verify/rustcrypto", - "ns": 29408.618592187577, - "ns_low": 29361.4978476053, - "ns_high": 29457.033499895857, + "ns": 29013.88050271978, + "ns_low": 28990.740009502864, + "ns_high": 29038.895350593815, "throughput": { "Elements": 1 } @@ -3321,9 +3322,9 @@ "operation": "rsa2048-pss-sha256-sign/{lib}", "library": "aws-lc-rs", "id": "rsa2048-pss-sha256-sign/aws-lc-rs", - "ns": 350446.18477168615, - "ns_low": 350051.67364664125, - "ns_high": 350826.29209098744, + "ns": 346554.3083242205, + "ns_low": 346368.2816494332, + "ns_high": 346759.7103475752, "throughput": { "Elements": 1 } @@ -3332,9 +3333,9 @@ "operation": "rsa2048-pss-sha256-sign/{lib}", "library": "graviola", "id": "rsa2048-pss-sha256-sign/graviola", - "ns": 342672.6817142013, - "ns_low": 342213.513024391, - "ns_high": 343102.8667975433, + "ns": 344576.23691443773, + "ns_low": 344306.09353020677, + "ns_high": 344851.1213883167, "throughput": { "Elements": 1 } @@ -3343,9 +3344,9 @@ "operation": "rsa2048-pss-sha256-sign/{lib}", "library": "libcrux", "id": "rsa2048-pss-sha256-sign/libcrux", - "ns": 4096068.39125, - "ns_low": 4076535.8080625, - "ns_high": 4115082.67625, + "ns": 3685243.782222224, + "ns_low": 3682875.355555556, + "ns_high": 3687792.507999999, "throughput": { "Elements": 1 } @@ -3354,9 +3355,9 @@ "operation": "rsa2048-pss-sha256-sign/{lib}", "library": "openssl", "id": "rsa2048-pss-sha256-sign/openssl", - "ns": 395808.9218604995, - "ns_low": 392080.9068540782, - "ns_high": 399892.557119577, + "ns": 390435.895467711, + "ns_low": 386827.65677350113, + "ns_high": 394321.83909323596, "throughput": { "Elements": 1 } @@ -3365,9 +3366,9 @@ "operation": "rsa2048-pss-sha256-sign/{lib}", "library": "rind", "id": "rsa2048-pss-sha256-sign/rind", - "ns": 346523.92136988323, - "ns_low": 346072.2410515144, - "ns_high": 346947.9133659231, + "ns": 341450.67879858136, + "ns_low": 341148.6497325243, + "ns_high": 341764.8663391144, "throughput": { "Elements": 1 } @@ -3376,9 +3377,9 @@ "operation": "rsa2048-pss-sha256-sign/{lib}", "library": "ring", "id": "rsa2048-pss-sha256-sign/ring", - "ns": 341453.9093689966, - "ns_low": 341115.8933117001, - "ns_high": 341792.19125520135, + "ns": 342489.2410669425, + "ns_low": 342356.9292298775, + "ns_high": 342624.4966556352, "throughput": { "Elements": 1 } @@ -3387,9 +3388,9 @@ "operation": "rsa2048-pss-sha256-sign/{lib}", "library": "rustcrypto", "id": "rsa2048-pss-sha256-sign/rustcrypto", - "ns": 588327.2374715531, - "ns_low": 587548.3650758908, - "ns_high": 589095.7175974577, + "ns": 581164.5041066943, + "ns_low": 580690.9046820397, + "ns_high": 581632.8948239464, "throughput": { "Elements": 1 } @@ -3398,9 +3399,9 @@ "operation": "rsa2048-pss-sha256-verify/{lib}", "library": "aws-lc-rs", "id": "rsa2048-pss-sha256-verify/aws-lc-rs", - "ns": 11173.085646246216, - "ns_low": 11162.950693542212, - "ns_high": 11183.663827707818, + "ns": 11157.30143244175, + "ns_low": 11146.377806213011, + "ns_high": 11168.011674619629, "throughput": { "Elements": 1 } @@ -3409,9 +3410,9 @@ "operation": "rsa2048-pss-sha256-verify/{lib}", "library": "graviola", "id": "rsa2048-pss-sha256-verify/graviola", - "ns": 14438.124219285468, - "ns_low": 14421.13770669945, - "ns_high": 14457.463335986702, + "ns": 14304.829849901835, + "ns_low": 14293.748136885355, + "ns_high": 14316.505899607397, "throughput": { "Elements": 1 } @@ -3420,9 +3421,9 @@ "operation": "rsa2048-pss-sha256-verify/{lib}", "library": "libcrux", "id": "rsa2048-pss-sha256-verify/libcrux", - "ns": 252126.6352130437, - "ns_low": 251546.91168618453, - "ns_high": 252708.47715054452, + "ns": 251906.13099157676, + "ns_low": 251092.49267802367, + "ns_high": 252622.7473513868, "throughput": { "Elements": 1 } @@ -3431,9 +3432,9 @@ "operation": "rsa2048-pss-sha256-verify/{lib}", "library": "openssl", "id": "rsa2048-pss-sha256-verify/openssl", - "ns": 16361.06484633296, - "ns_low": 16347.031867251353, - "ns_high": 16375.343884722313, + "ns": 16246.727593847727, + "ns_low": 16233.022495750925, + "ns_high": 16262.985386918133, "throughput": { "Elements": 1 } @@ -3442,9 +3443,9 @@ "operation": "rsa2048-pss-sha256-verify/{lib}", "library": "rind", "id": "rsa2048-pss-sha256-verify/rind", - "ns": 9182.862325857384, - "ns_low": 9177.829248422957, - "ns_high": 9188.023014638147, + "ns": 9148.607974528797, + "ns_low": 9140.14372551493, + "ns_high": 9156.760073599738, "throughput": { "Elements": 1 } @@ -3453,9 +3454,9 @@ "operation": "rsa2048-pss-sha256-verify/{lib}", "library": "ring", "id": "rsa2048-pss-sha256-verify/ring", - "ns": 13313.384241958523, - "ns_low": 13290.023077112397, - "ns_high": 13336.695513498396, + "ns": 13192.980341298244, + "ns_low": 13175.10852280133, + "ns_high": 13212.677220945534, "throughput": { "Elements": 1 } @@ -3464,9 +3465,9 @@ "operation": "rsa2048-pss-sha256-verify/{lib}", "library": "rustcrypto", "id": "rsa2048-pss-sha256-verify/rustcrypto", - "ns": 35616.66343240118, - "ns_low": 35581.05452188399, - "ns_high": 35650.083303511994, + "ns": 35269.28881440207, + "ns_low": 35243.528422160234, + "ns_high": 35296.39738306902, "throughput": { "Elements": 1 } @@ -3475,9 +3476,9 @@ "operation": "mlkem768-keygen/{lib}", "library": "aws-lc-rs", "id": "mlkem768-keygen/aws-lc-rs", - "ns": 8265.148158218806, - "ns_low": 8259.681255747319, - "ns_high": 8270.2018677516, + "ns": 8134.450316908607, + "ns_low": 8125.91903363425, + "ns_high": 8145.287394209319, "throughput": { "Elements": 1 } @@ -3486,9 +3487,9 @@ "operation": "mlkem768-keygen/{lib}", "library": "graviola", "id": "mlkem768-keygen/graviola", - "ns": 7665.072191176638, - "ns_low": 7662.503860848224, - "ns_high": 7667.617735785606, + "ns": 7373.593997741399, + "ns_low": 7367.814153234543, + "ns_high": 7379.841868759533, "throughput": { "Elements": 1 } @@ -3497,9 +3498,9 @@ "operation": "mlkem768-keygen/{lib}", "library": "libcrux", "id": "mlkem768-keygen/libcrux-ml-kem", - "ns": 15149.042638096646, - "ns_low": 15145.881563661605, - "ns_high": 15152.113772957668, + "ns": 15015.03885953894, + "ns_low": 15008.55654762232, + "ns_high": 15021.925525439054, "throughput": { "Elements": 1 } @@ -3508,9 +3509,9 @@ "operation": "mlkem768-keygen/{lib}", "library": "openssl", "id": "mlkem768-keygen/openssl", - "ns": 19802.58521787104, - "ns_low": 19795.252067788784, - "ns_high": 19809.537957327775, + "ns": 19808.30902310231, + "ns_low": 19796.98090287946, + "ns_high": 19819.920651324253, "throughput": { "Elements": 1 } @@ -3519,9 +3520,9 @@ "operation": "mlkem768-keygen/{lib}", "library": "rind", "id": "mlkem768-keygen/rind", - "ns": 6447.649032416964, - "ns_low": 6443.634262988912, - "ns_high": 6450.842048856041, + "ns": 6347.784516631085, + "ns_low": 6344.160464754359, + "ns_high": 6351.406015089063, "throughput": { "Elements": 1 } @@ -3530,9 +3531,9 @@ "operation": "mlkem768-keygen/{lib}", "library": "rustcrypto", "id": "mlkem768-keygen/rustcrypto", - "ns": 40262.91637751835, - "ns_low": 40220.90962313832, - "ns_high": 40302.23068334896, + "ns": 39631.83017419092, + "ns_low": 39522.88090752064, + "ns_high": 39755.37458465318, "throughput": { "Elements": 1 } @@ -3541,9 +3542,9 @@ "operation": "mlkem768-encaps/{lib}", "library": "aws-lc-rs", "id": "mlkem768-encaps/aws-lc-rs", - "ns": 8684.44085444936, - "ns_low": 8671.690826433605, - "ns_high": 8702.885433246727, + "ns": 8479.00111768587, + "ns_low": 8460.297564785838, + "ns_high": 8503.710425552626, "throughput": { "Elements": 1 } @@ -3552,9 +3553,9 @@ "operation": "mlkem768-encaps/{lib}", "library": "graviola", "id": "mlkem768-encaps/graviola", - "ns": 9108.873658619594, - "ns_low": 9096.664993918652, - "ns_high": 9124.05004260572, + "ns": 8999.01048040625, + "ns_low": 8992.473782720343, + "ns_high": 9006.830724621774, "throughput": { "Elements": 1 } @@ -3563,9 +3564,9 @@ "operation": "mlkem768-encaps/{lib}", "library": "libcrux", "id": "mlkem768-encaps/libcrux-ml-kem", - "ns": 12937.641372618684, - "ns_low": 12903.135472246802, - "ns_high": 12976.107662482145, + "ns": 12802.52163521973, + "ns_low": 12764.494512691872, + "ns_high": 12842.15649099645, "throughput": { "Elements": 1 } @@ -3574,9 +3575,9 @@ "operation": "mlkem768-encaps/{lib}", "library": "openssl", "id": "mlkem768-encaps/openssl", - "ns": 18772.4593708438, - "ns_low": 18760.61214335281, - "ns_high": 18786.774975292243, + "ns": 18773.77713554751, + "ns_low": 18754.651927206498, + "ns_high": 18793.825109519054, "throughput": { "Elements": 1 } @@ -3585,9 +3586,9 @@ "operation": "mlkem768-encaps/{lib}", "library": "rind", "id": "mlkem768-encaps/rind", - "ns": 6653.2844243793825, - "ns_low": 6640.579424674264, - "ns_high": 6668.4140350940725, + "ns": 6501.104132169544, + "ns_low": 6485.536953657702, + "ns_high": 6519.07388294963, "throughput": { "Elements": 1 } @@ -3596,9 +3597,9 @@ "operation": "mlkem768-encaps/{lib}", "library": "rustcrypto", "id": "mlkem768-encaps/rustcrypto", - "ns": 41709.23723796857, - "ns_low": 41676.82538419804, - "ns_high": 41744.86537242814, + "ns": 41379.01761075809, + "ns_low": 41344.99023129407, + "ns_high": 41413.46782637327, "throughput": { "Elements": 1 } @@ -3607,9 +3608,9 @@ "operation": "mlkem768-decaps/{lib}", "library": "aws-lc-rs", "id": "mlkem768-decaps/aws-lc-rs", - "ns": 9016.780291846517, - "ns_low": 9007.03017474863, - "ns_high": 9029.2557896137, + "ns": 8897.287862942132, + "ns_low": 8871.209949629461, + "ns_high": 8926.890023788807, "throughput": { "Elements": 1 } @@ -3618,9 +3619,9 @@ "operation": "mlkem768-decaps/{lib}", "library": "graviola", "id": "mlkem768-decaps/graviola", - "ns": 6594.560044687454, - "ns_low": 6584.464808730425, - "ns_high": 6605.778609086432, + "ns": 6536.591512316559, + "ns_low": 6532.752816035773, + "ns_high": 6540.195378453018, "throughput": { "Elements": 1 } @@ -3629,9 +3630,9 @@ "operation": "mlkem768-decaps/{lib}", "library": "libcrux", "id": "mlkem768-decaps/libcrux-ml-kem", - "ns": 13439.956664400768, - "ns_low": 13414.258231729564, - "ns_high": 13469.682513683, + "ns": 13436.761811207987, + "ns_low": 13412.484968085955, + "ns_high": 13464.296681315727, "throughput": { "Elements": 1 } @@ -3640,9 +3641,9 @@ "operation": "mlkem768-decaps/{lib}", "library": "openssl", "id": "mlkem768-decaps/openssl", - "ns": 16053.33575991849, - "ns_low": 16048.131003755801, - "ns_high": 16058.248367717293, + "ns": 15774.655110481983, + "ns_low": 15763.851464003184, + "ns_high": 15785.255398100388, "throughput": { "Elements": 1 } @@ -3651,9 +3652,9 @@ "operation": "mlkem768-decaps/{lib}", "library": "rind", "id": "mlkem768-decaps/rind", - "ns": 4690.447911157551, - "ns_low": 4689.604482770144, - "ns_high": 4691.25945602609, + "ns": 4644.475538517406, + "ns_low": 4641.732882959113, + "ns_high": 4647.176656665854, "throughput": { "Elements": 1 } @@ -3662,9 +3663,9 @@ "operation": "mlkem768-decaps/{lib}", "library": "rustcrypto", "id": "mlkem768-decaps/rustcrypto", - "ns": 54185.72527613956, - "ns_low": 54161.838526470725, - "ns_high": 54210.37261286316, + "ns": 54867.5242572914, + "ns_low": 54823.461218506476, + "ns_high": 54915.31754509759, "throughput": { "Elements": 1 } @@ -3673,9 +3674,9 @@ "operation": "p384-ecdh/{lib}", "library": "aws-lc-rs", "id": "p384-ecdh/aws-lc-rs", - "ns": 111112.54473720507, - "ns_low": 111082.72497204003, - "ns_high": 111142.83106814441, + "ns": 109335.57772326487, + "ns_low": 109287.80088933567, + "ns_high": 109384.8951163168, "throughput": { "Elements": 1 } @@ -3684,9 +3685,9 @@ "operation": "p384-ecdh/{lib}", "library": "graviola", "id": "p384-ecdh/graviola", - "ns": 170940.193401064, - "ns_low": 170908.4717956182, - "ns_high": 170970.2218958126, + "ns": 174122.07773163883, + "ns_low": 173594.0938227425, + "ns_high": 174603.96759954677, "throughput": { "Elements": 1 } @@ -3695,9 +3696,9 @@ "operation": "p384-ecdh/{lib}", "library": "openssl", "id": "p384-ecdh/openssl", - "ns": 264836.9701788089, - "ns_low": 264781.9679340953, - "ns_high": 264888.83373608266, + "ns": 265210.4507846904, + "ns_low": 265130.64077489777, + "ns_high": 265288.89812763926, "throughput": { "Elements": 1 } @@ -3706,9 +3707,9 @@ "operation": "p384-ecdh/{lib}", "library": "rind", "id": "p384-ecdh/rind", - "ns": 100076.41059258164, - "ns_low": 100064.67950652246, - "ns_high": 100089.01577712123, + "ns": 100196.45363184079, + "ns_low": 100170.23498896393, + "ns_high": 100225.6844363618, "throughput": { "Elements": 1 } @@ -3717,9 +3718,9 @@ "operation": "p384-ecdh/{lib}", "library": "ring", "id": "p384-ecdh/ring", - "ns": 369713.2053687011, - "ns_low": 369611.4118523345, - "ns_high": 369822.372703505, + "ns": 369833.1951588592, + "ns_low": 369683.9792578019, + "ns_high": 369977.1566001754, "throughput": { "Elements": 1 } @@ -3728,9 +3729,9 @@ "operation": "p384-ecdh/{lib}", "library": "rustcrypto", "id": "p384-ecdh/p384-rustcrypto", - "ns": 401246.5336441555, - "ns_low": 400743.0058652763, - "ns_high": 401656.15162661194, + "ns": 402094.8987734594, + "ns_low": 401374.1485502853, + "ns_high": 402705.9135018757, "throughput": { "Elements": 1 } @@ -3739,9 +3740,9 @@ "operation": "p384-ecdsa-sign/{lib}", "library": "aws-lc-rs", "id": "p384-ecdsa-sign/aws-lc-rs", - "ns": 46523.36476338794, - "ns_low": 46513.91750173771, - "ns_high": 46533.835907776556, + "ns": 46549.82471905514, + "ns_low": 46499.41461832121, + "ns_high": 46625.18849680763, "throughput": { "Elements": 1 } @@ -3750,9 +3751,9 @@ "operation": "p384-ecdsa-sign/{lib}", "library": "graviola", "id": "p384-ecdsa-sign/graviola", - "ns": 90691.14776372733, - "ns_low": 90660.41398600079, - "ns_high": 90726.17291567942, + "ns": 90285.52533386814, + "ns_low": 90142.21085140781, + "ns_high": 90418.28082903936, "throughput": { "Elements": 1 } @@ -3761,9 +3762,9 @@ "operation": "p384-ecdsa-sign/{lib}", "library": "openssl", "id": "p384-ecdsa-sign/openssl", - "ns": 89640.11803880175, - "ns_low": 89458.88804367381, - "ns_high": 89823.1472857155, + "ns": 88979.82968777049, + "ns_low": 88945.22788491337, + "ns_high": 89018.13644787783, "throughput": { "Elements": 1 } @@ -3772,9 +3773,9 @@ "operation": "p384-ecdsa-sign/{lib}", "library": "rind", "id": "p384-ecdsa-sign/rind", - "ns": 23532.841626481455, - "ns_low": 23529.310978235357, - "ns_high": 23536.536806759224, + "ns": 23479.4017040843, + "ns_low": 23464.88524875097, + "ns_high": 23492.83089402318, "throughput": { "Elements": 1 } @@ -3783,9 +3784,9 @@ "operation": "p384-ecdsa-sign/{lib}", "library": "ring", "id": "p384-ecdsa-sign/ring", - "ns": 200860.55754002265, - "ns_low": 200796.743535713, - "ns_high": 200928.55351307808, + "ns": 197307.8084340673, + "ns_low": 197180.6047817006, + "ns_high": 197447.70101737897, "throughput": { "Elements": 1 } @@ -3794,9 +3795,9 @@ "operation": "p384-ecdsa-sign/{lib}", "library": "rustcrypto", "id": "p384-ecdsa-sign/rustcrypto", - "ns": 86859.22535202348, - "ns_low": 86806.25905373588, - "ns_high": 86917.89572616793, + "ns": 85504.70672760667, + "ns_low": 85456.09419967285, + "ns_high": 85556.86464759031, "throughput": { "Elements": 1 } @@ -3805,9 +3806,9 @@ "operation": "p384-ecdsa-verify/{lib}", "library": "aws-lc-rs", "id": "p384-ecdsa-verify/aws-lc-rs", - "ns": 116664.50149894094, - "ns_low": 116447.63104985475, - "ns_high": 116910.59845820241, + "ns": 115713.21065464756, + "ns_low": 115540.25711196892, + "ns_high": 115873.3922188938, "throughput": { "Elements": 1 } @@ -3816,9 +3817,9 @@ "operation": "p384-ecdsa-verify/{lib}", "library": "graviola", "id": "p384-ecdsa-verify/graviola", - "ns": 167400.5453413625, - "ns_low": 167061.86848277372, - "ns_high": 167756.21804984525, + "ns": 166485.45916802128, + "ns_low": 166302.47490712153, + "ns_high": 166697.33287260163, "throughput": { "Elements": 1 } @@ -3827,9 +3828,9 @@ "operation": "p384-ecdsa-verify/{lib}", "library": "openssl", "id": "p384-ecdsa-verify/openssl", - "ns": 215860.8751716664, - "ns_low": 215725.219453323, - "ns_high": 216015.32353011402, + "ns": 216274.25298359687, + "ns_low": 216132.59625761866, + "ns_high": 216411.9992560387, "throughput": { "Elements": 1 } @@ -3838,9 +3839,9 @@ "operation": "p384-ecdsa-verify/{lib}", "library": "rind", "id": "p384-ecdsa-verify/rind", - "ns": 98873.51736789884, - "ns_low": 98742.99198511348, - "ns_high": 99017.517874549, + "ns": 100098.30340131027, + "ns_low": 100067.0156795942, + "ns_high": 100131.00603018074, "throughput": { "Elements": 1 } @@ -3849,9 +3850,9 @@ "operation": "p384-ecdsa-verify/{lib}", "library": "ring", "id": "p384-ecdsa-verify/ring", - "ns": 360290.5599734003, - "ns_low": 360175.7763259107, - "ns_high": 360404.5230590583, + "ns": 357263.16896704596, + "ns_low": 356861.9119455651, + "ns_high": 357673.1184882155, "throughput": { "Elements": 1 } @@ -3860,9 +3861,9 @@ "operation": "p384-ecdsa-verify/{lib}", "library": "rustcrypto", "id": "p384-ecdsa-verify/rustcrypto", - "ns": 360209.773800798, - "ns_low": 360061.02291593567, - "ns_high": 360356.4025148006, + "ns": 359612.70368257724, + "ns_low": 358694.5776500375, + "ns_high": 361411.7702195059, "throughput": { "Elements": 1 } @@ -3871,9 +3872,9 @@ "operation": "p521-ecdh/{lib}", "library": "aws-lc-rs", "id": "p521-ecdh/aws-lc-rs", - "ns": 170982.07579060146, - "ns_low": 170942.3601221515, - "ns_high": 171022.4744781196, + "ns": 171503.9195825329, + "ns_low": 171457.50608644195, + "ns_high": 171552.90393730413, "throughput": { "Elements": 1 } @@ -3882,9 +3883,9 @@ "operation": "p521-ecdh/{lib}", "library": "openssl", "id": "p521-ecdh/openssl", - "ns": 276213.5319728092, - "ns_low": 276061.71337665094, - "ns_high": 276390.66785646696, + "ns": 276636.70270528545, + "ns_low": 276546.8851866741, + "ns_high": 276731.4713969679, "throughput": { "Elements": 1 } @@ -3893,9 +3894,9 @@ "operation": "p521-ecdh/{lib}", "library": "rind", "id": "p521-ecdh/rind", - "ns": 160772.09262967343, - "ns_low": 160732.57691165735, - "ns_high": 160809.67910625951, + "ns": 159566.10430545293, + "ns_low": 159416.18057693163, + "ns_high": 159703.94456113447, "throughput": { "Elements": 1 } @@ -3904,9 +3905,9 @@ "operation": "p521-ecdh/{lib}", "library": "rustcrypto", "id": "p521-ecdh/rustcrypto", - "ns": 431173.9486315945, - "ns_low": 430258.2369634522, - "ns_high": 432133.80920722656, + "ns": 428265.5645603665, + "ns_low": 427759.53431936266, + "ns_high": 428772.9298995684, "throughput": { "Elements": 1 } @@ -3915,9 +3916,9 @@ "operation": "p521-ecdsa-sign/{lib}", "library": "aws-lc-rs", "id": "p521-ecdsa-sign/aws-lc-rs", - "ns": 89636.54670016255, - "ns_low": 89589.81063376021, - "ns_high": 89686.68292762616, + "ns": 88283.11231987165, + "ns_low": 88209.60609444027, + "ns_high": 88358.0813331288, "throughput": { "Elements": 1 } @@ -3926,9 +3927,9 @@ "operation": "p521-ecdsa-sign/{lib}", "library": "openssl", "id": "p521-ecdsa-sign/openssl", - "ns": 129198.29790808335, - "ns_low": 129037.88774074469, - "ns_high": 129367.30651919413, + "ns": 127934.59818176445, + "ns_low": 127856.43359636707, + "ns_high": 128013.81374537507, "throughput": { "Elements": 1 } @@ -3937,9 +3938,9 @@ "operation": "p521-ecdsa-sign/{lib}", "library": "rind", "id": "p521-ecdsa-sign/rind", - "ns": 40562.80853928378, - "ns_low": 40554.24524344455, - "ns_high": 40571.77120543821, + "ns": 40088.58121196, + "ns_low": 40060.38819668895, + "ns_high": 40120.565018714326, "throughput": { "Elements": 1 } @@ -3948,9 +3949,9 @@ "operation": "p521-ecdsa-sign/{lib}", "library": "rustcrypto", "id": "p521-ecdsa-sign/rustcrypto", - "ns": 95288.62726171124, - "ns_low": 95185.91152952994, - "ns_high": 95389.30020358416, + "ns": 94088.23866832738, + "ns_low": 94024.09764190904, + "ns_high": 94156.3254987241, "throughput": { "Elements": 1 } @@ -3959,9 +3960,9 @@ "operation": "p521-ecdsa-verify/{lib}", "library": "aws-lc-rs", "id": "p521-ecdsa-verify/aws-lc-rs", - "ns": 186609.34451307816, - "ns_low": 186348.98829260454, - "ns_high": 186866.90681257145, + "ns": 186691.45868774937, + "ns_low": 186380.58226061278, + "ns_high": 186960.63880878888, "throughput": { "Elements": 1 } @@ -3970,9 +3971,9 @@ "operation": "p521-ecdsa-verify/{lib}", "library": "openssl", "id": "p521-ecdsa-verify/openssl", - "ns": 267513.57741884637, - "ns_low": 266872.40934669354, - "ns_high": 268100.1779812826, + "ns": 261102.6577331166, + "ns_low": 260993.20398932922, + "ns_high": 261216.59651861127, "throughput": { "Elements": 1 } @@ -3981,9 +3982,9 @@ "operation": "p521-ecdsa-verify/{lib}", "library": "rind", "id": "p521-ecdsa-verify/rind", - "ns": 147092.33831121618, - "ns_low": 146941.6190741018, - "ns_high": 147232.47607141943, + "ns": 145100.1962293483, + "ns_low": 145035.7165238754, + "ns_high": 145171.225922164, "throughput": { "Elements": 1 } @@ -3992,17 +3993,490 @@ "operation": "p521-ecdsa-verify/{lib}", "library": "rustcrypto", "id": "p521-ecdsa-verify/rustcrypto", - "ns": 359568.4772099897, - "ns_low": 359370.02151455474, - "ns_high": 359778.2525503691, + "ns": 352950.0369661593, + "ns_low": 352716.1985300962, + "ns_high": 353188.1876496075, "throughput": { "Elements": 1 } } ], "build_cost": { - "status": "failed", - "started": "2026-11-06T15:35:01+00:00", - "reason": "error: host is busy (load average 49.3 on 24 CPUs)" + "status": "ok", + "started": "2026-11-07T14:06:19+00:00", + "host": { + "hostname": "desktop", + "os": "Linux 7.0.0-42-generic", + "arch": "x86_64", + "cpu": "Intel(R) Core(TM) Ultra 7 270K Plus", + "cpus": 24, + "jobs": "12", + "rustc": "rustc 1.98.1 (48a229cea 2026-09-01)", + "cc": "gcc (GCC) 16.2.0" + }, + "runs": 3, + "builds": [ + { + "name": "rind", + "seconds": [ + 3.37, + 3.37, + 3.34 + ], + "median_seconds": 3.37, + "cpu_seconds": [ + 7.98, + 8.02, + 7.97 + ], + "median_cpu_seconds": 7.98, + "stripped_bytes": 880496, + "tools": [], + "packages": [ + "build-cost-rind@0.0.0", + "cfg-if@1.0.5", + "getrandom@0.4.3", + "libc@0.2.191", + "rind@0.2.1" + ] + }, + { + "name": "aws-lc-rs", + "seconds": [ + 12.09, + 11.84, + 11.8 + ], + "median_seconds": 11.84, + "cpu_seconds": [ + 38.55, + 36.8, + 37.09 + ], + "median_cpu_seconds": 37.09, + "stripped_bytes": 2991408, + "tools": [ + "cc" + ], + "packages": [ + "aws-lc-rs@1.19.0", + "aws-lc-sys@0.47.0", + "build-cost-aws-lc-rs@0.0.0", + "cc@1.11.1", + "cmake@0.1.58", + "dunce@1.0.5", + "find-msvc-tools@0.1.15", + "fs_extra@1.3.0", + "jobserver@0.1.35", + "libc@0.2.191", + "pkg-config@0.3.34", + "shlex@2.0.1", + "untrusted@0.7.1", + "zeroize@1.9.1" + ] + }, + { + "name": "ring", + "seconds": [ + 4.95, + 4.95, + 4.95 + ], + "median_seconds": 4.95, + "cpu_seconds": [ + 7.27, + 7.29, + 7.27 + ], + "median_cpu_seconds": 7.27, + "stripped_bytes": 744328, + "tools": [ + "cc" + ], + "packages": [ + "build-cost-ring@0.0.0", + "cc@1.11.1", + "cfg-if@1.0.5", + "find-msvc-tools@0.1.15", + "getrandom@0.2.17", + "libc@0.2.191", + "ring@0.17.14", + "shlex@2.0.1", + "untrusted@0.9.0" + ] + }, + { + "name": "rustcrypto", + "seconds": [ + 2.85, + 2.81, + 2.8 + ], + "median_seconds": 2.81, + "cpu_seconds": [ + 15.77, + 15.81, + 15.75 + ], + "median_cpu_seconds": 15.77, + "stripped_bytes": 540256, + "tools": [], + "packages": [ + "aead@0.6.1", + "aes-gcm@0.11.1", + "aes@0.9.4", + "autocfg@1.5.1", + "base16ct@1.0.0", + "base64ct@1.8.3", + "block-buffer@0.12.1", + "build-cost-rustcrypto@0.0.0", + "cfg-if@1.0.5", + "cipher@0.5.2", + "cmov@0.5.4", + "const-oid@0.10.2", + "cpubits@0.1.1", + "cpufeatures@0.3.1", + "crypto-bigint@0.7.10", + "crypto-common@0.2.2", + "ctr@0.10.1", + "ctutils@0.4.8", + "curve25519-dalek-derive@0.1.1", + "curve25519-dalek@5.0.0", + "der@0.8.3", + "digest@0.11.3", + "ecdsa@0.17.0", + "elliptic-curve@0.14.3", + "ff@0.14.0", + "getrandom@0.4.3", + "ghash@0.6.0", + "group@0.14.0", + "hmac@0.13.0", + "hybrid-array@0.4.15", + "inout@0.2.6", + "libc@0.2.191", + "num-traits@0.2.19", + "p256@0.14.0", + "pem-rfc7468@1.0.0", + "pkcs8@0.11.0", + "polyval@0.7.3", + "primefield@0.14.0", + "primeorder@0.14.0", + "proc-macro2@1.0.107", + "quote@1.0.47", + "rand_core@0.10.1", + "rfc6979@0.6.0", + "rustc_version@0.4.1", + "sec1@0.8.1", + "semver@1.0.28", + "sha2@0.11.1", + "signature@3.0.0", + "spki@0.8.1", + "subtle@2.6.1", + "syn@2.0.119", + "typenum@1.20.1", + "unicode-ident@1.0.27", + "universal-hash@0.6.1", + "wnaf@0.14.1", + "x25519-dalek@3.0.0", + "zeroize@1.9.1" + ] + }, + { + "name": "graviola", + "seconds": [ + 1.98, + 2.09, + 2.15 + ], + "median_seconds": 2.09, + "cpu_seconds": [ + 4.23, + 4.45, + 4.6 + ], + "median_cpu_seconds": 4.45, + "stripped_bytes": 912944, + "tools": [], + "packages": [ + "build-cost-graviola@0.0.0", + "cfg-if@1.0.5", + "getrandom@0.4.3", + "graviola@0.4.4", + "libc@0.2.191" + ] + }, + { + "name": "libcrux", + "seconds": [ + 5.73, + 5.8, + 6.4 + ], + "median_seconds": 5.8, + "cpu_seconds": [ + 13.41, + 13.11, + 15.23 + ], + "median_cpu_seconds": 13.41, + "stripped_bytes": 745648, + "tools": [], + "packages": [ + "build-cost-libcrux@0.0.0", + "cfg-if@1.0.5", + "getrandom@0.4.3", + "hax-lib-macros@0.3.6", + "hax-lib@0.3.6", + "libc@0.2.191", + "libcrux-aesgcm@0.0.8", + "libcrux-curve25519@0.0.9", + "libcrux-ecdh@0.0.9", + "libcrux-ecdsa@0.0.9", + "libcrux-hacl-rs@0.0.6", + "libcrux-intrinsics@0.0.7", + "libcrux-macros@0.0.4", + "libcrux-p256@0.0.9", + "libcrux-platform@0.0.3", + "libcrux-secrets@0.0.5", + "libcrux-secrets@0.0.7", + "libcrux-sha2@0.0.9", + "libcrux-traits@0.0.7", + "libcrux-traits@0.0.9", + "proc-macro2@1.0.107", + "quote@1.0.47", + "rand@0.10.3", + "rand_core@0.10.1", + "syn@2.0.119", + "syn@3.0.9", + "unicode-ident@1.0.27" + ] + }, + { + "name": "openssl", + "seconds": [ + 3.57, + 3.35, + 3.16 + ], + "median_seconds": 3.35, + "cpu_seconds": [ + 8.87, + 8.72, + 8.19 + ], + "median_cpu_seconds": 8.72, + "stripped_bytes": 377848, + "tools": [ + "cc", + "pkg-config" + ], + "packages": [ + "bitflags@2.13.2", + "build-cost-openssl@0.0.0", + "cc@1.11.1", + "cfg-if@1.0.5", + "find-msvc-tools@0.1.15", + "foreign-types-shared@0.1.1", + "foreign-types@0.3.2", + "libc@0.2.191", + "openssl-macros@0.1.1", + "openssl-sys@0.9.118", + "openssl@0.10.82", + "pkg-config@0.3.34", + "proc-macro2@1.0.107", + "quote@1.0.47", + "shlex@2.0.1", + "syn@2.0.119", + "unicode-ident@1.0.27", + "vcpkg@0.2.15" + ] + }, + { + "name": "openssl-vendored", + "seconds": [ + 19.5, + 24.66, + 32.24 + ], + "median_seconds": 24.66, + "cpu_seconds": [ + 150.75, + 161.42, + 164.38 + ], + "median_cpu_seconds": 161.42, + "stripped_bytes": 5133408, + "tools": [ + "cc", + "make", + "perl" + ], + "packages": [ + "bitflags@2.13.2", + "build-cost-openssl@0.0.0", + "cc@1.11.1", + "cfg-if@1.0.5", + "find-msvc-tools@0.1.15", + "foreign-types-shared@0.1.1", + "foreign-types@0.3.2", + "libc@0.2.191", + "openssl-macros@0.1.1", + "openssl-src@300.6.1+3.6.3", + "openssl-sys@0.9.118", + "openssl@0.10.82", + "pkg-config@0.3.34", + "proc-macro2@1.0.107", + "quote@1.0.47", + "shlex@2.0.1", + "syn@2.0.119", + "unicode-ident@1.0.27", + "vcpkg@0.2.15" + ] + }, + { + "name": "rustls-rind", + "seconds": [ + 4.19, + 7.26, + 4.21 + ], + "median_seconds": 4.21, + "cpu_seconds": [ + 20.91, + 21.13, + 21.6 + ], + "median_cpu_seconds": 21.13, + "stripped_bytes": 2998240, + "tools": [], + "packages": [ + "build-cost-rustls@0.0.0", + "cfg-if@1.0.5", + "getrandom@0.4.3", + "libc@0.2.191", + "once_cell@1.21.4", + "rind-rustls@0.23.0", + "rind@0.2.1", + "rustls-pki-types@1.15.1", + "rustls-webpki@0.103.16", + "rustls@0.23.46", + "subtle@2.6.1", + "untrusted@0.9.0", + "webpki-roots@1.0.11", + "zeroize@1.9.1" + ] + }, + { + "name": "rustls-rind-lean", + "seconds": [ + 4.31, + 4.83, + 4.5 + ], + "median_seconds": 4.5, + "cpu_seconds": [ + 22.28, + 23.86, + 23.23 + ], + "median_cpu_seconds": 23.23, + "stripped_bytes": 1824096, + "tools": [], + "packages": [ + "build-cost-rustls@0.0.0", + "cfg-if@1.0.5", + "getrandom@0.4.3", + "libc@0.2.191", + "once_cell@1.21.4", + "rind-rustls@0.23.0", + "rind@0.2.1", + "rustls-pki-types@1.15.1", + "rustls-webpki@0.103.16", + "rustls@0.23.46", + "subtle@2.6.1", + "untrusted@0.9.0", + "webpki-roots@1.0.11", + "zeroize@1.9.1" + ] + }, + { + "name": "rustls-aws-lc-rs", + "seconds": [ + 16.77, + 16.56, + 16.16 + ], + "median_seconds": 16.56, + "cpu_seconds": [ + 55.79, + 55.22, + 53.56 + ], + "median_cpu_seconds": 55.22, + "stripped_bytes": 4114504, + "tools": [ + "cc" + ], + "packages": [ + "aws-lc-rs@1.19.0", + "aws-lc-sys@0.47.0", + "build-cost-rustls@0.0.0", + "cc@1.11.1", + "cmake@0.1.58", + "dunce@1.0.5", + "find-msvc-tools@0.1.15", + "fs_extra@1.3.0", + "jobserver@0.1.35", + "libc@0.2.191", + "once_cell@1.21.4", + "pkg-config@0.3.34", + "rustls-pki-types@1.15.1", + "rustls-webpki@0.103.16", + "rustls@0.23.46", + "shlex@2.0.1", + "subtle@2.6.1", + "untrusted@0.9.0", + "webpki-roots@1.0.11", + "zeroize@1.9.1" + ] + }, + { + "name": "rustls-ring", + "seconds": [ + 7.71, + 7.78, + 7.85 + ], + "median_seconds": 7.78, + "cpu_seconds": [ + 19.29, + 19.34, + 19.67 + ], + "median_cpu_seconds": 19.34, + "stripped_bytes": 1943808, + "tools": [ + "cc" + ], + "packages": [ + "build-cost-rustls@0.0.0", + "cc@1.11.1", + "cfg-if@1.0.5", + "find-msvc-tools@0.1.15", + "getrandom@0.2.17", + "libc@0.2.191", + "once_cell@1.21.4", + "ring@0.17.14", + "rustls-pki-types@1.15.1", + "rustls-webpki@0.103.16", + "rustls@0.23.46", + "shlex@2.0.1", + "subtle@2.6.1", + "untrusted@0.9.0", + "webpki-roots@1.0.11", + "zeroize@1.9.1" + ] + } + ] } } diff --git a/benchmarks/data/kixtop.json b/benchmarks/data/kixtop.json index 231b72505..3cd584915 100644 --- a/benchmarks/data/kixtop.json +++ b/benchmarks/data/kixtop.json @@ -1,8 +1,8 @@ { "schema": 1, "host": "kixtop", - "commit": "93f91f48c9b742890a34bb3485071da6f2d241ab", - "started": "2026-11-07T02:52:36+00:00", + "commit": "9e7f6a5a9ea59a0cf1251c24af6c5d4f21c2b0fd", + "started": "2026-11-07T14:13:32+00:00", "cpu": { "model": "Apple M4", "arch": "arm64", @@ -15,8 +15,8 @@ }, "libraries": { "rind": { - "rind": "0.2.0", - "rind-rustls": "0.2.0" + "rind": "0.2.1", + "rind-rustls": "0.23.0" }, "aws-lc-rs": { "aws-lc-rs": "1.19.0", @@ -80,7 +80,7 @@ }, "refused": {}, "status": "ok", - "finished": "2026-11-07T03:24:20+00:00", + "finished": "2026-11-07T14:47:14+00:00", "criterion_args": [ "--noplot", "--warm-up-time", @@ -91,9 +91,9 @@ ], "load": { "limit_cpus": 1.0, - "busy_cpus_before_build": 0.51, - "busy_cpus_before_run": 0.51, - "other_busy_cpus_during_run": 0.68, + "busy_cpus_before_build": 0.56, + "busy_cpus_before_run": 0.36, + "other_busy_cpus_during_run": 0.43, "noisy": false }, "results": [ @@ -101,9 +101,9 @@ "operation": "rustls-full-handshake-group/x25519mlkem768/{lib}", "library": "aws-lc-rs", "id": "rustls-full-handshake-group/x25519mlkem768/aws-lc-rs", - "ns": 214670.70124230333, - "ns_low": 212734.53389792985, - "ns_high": 217363.39585806534, + "ns": 212262.18444904193, + "ns_low": 211345.63489254666, + "ns_high": 213308.42853530202, "throughput": { "Elements": 1 } @@ -112,9 +112,9 @@ "operation": "rustls-full-handshake-group/x25519mlkem768/{lib}", "library": "graviola", "id": "rustls-full-handshake-group/x25519mlkem768/graviola", - "ns": 180421.9094790897, - "ns_low": 179436.06487298128, - "ns_high": 182141.3505800823, + "ns": 179369.13915767695, + "ns_low": 178755.18921505462, + "ns_high": 180064.2309388044, "throughput": { "Elements": 1 } @@ -123,9 +123,9 @@ "operation": "rustls-full-handshake-group/x25519mlkem768/{lib}", "library": "openssl", "id": "rustls-full-handshake-group/x25519mlkem768/openssl", - "ns": 459074.77035170683, - "ns_low": 456710.50876807765, - "ns_high": 461767.6304588975, + "ns": 463381.0460529038, + "ns_low": 457534.74708407733, + "ns_high": 472254.5663343844, "throughput": { "Elements": 1 } @@ -134,9 +134,9 @@ "operation": "rustls-full-handshake-group/x25519mlkem768/{lib}", "library": "rind", "id": "rustls-full-handshake-group/x25519mlkem768/rind", - "ns": 177977.065110832, - "ns_low": 177396.16542958558, - "ns_high": 178550.14238776732, + "ns": 174033.21890941332, + "ns_low": 172850.2046238313, + "ns_high": 175784.70519398048, "throughput": { "Elements": 1 } @@ -145,9 +145,9 @@ "operation": "rustls-full-handshake-group/x25519/{lib}", "library": "aws-lc-rs", "id": "rustls-full-handshake-group/x25519/aws-lc-rs", - "ns": 184860.00728609427, - "ns_low": 184355.25178620394, - "ns_high": 185416.11138546062, + "ns": 183413.85142973252, + "ns_low": 182868.4941492795, + "ns_high": 184005.8886568017, "throughput": { "Elements": 1 } @@ -156,9 +156,9 @@ "operation": "rustls-full-handshake-group/x25519/{lib}", "library": "graviola", "id": "rustls-full-handshake-group/x25519/graviola", - "ns": 159186.6617245456, - "ns_low": 158746.9183107693, - "ns_high": 159692.74606348772, + "ns": 159109.4461157086, + "ns_low": 158236.55766879368, + "ns_high": 160322.8081214015, "throughput": { "Elements": 1 } @@ -167,9 +167,9 @@ "operation": "rustls-full-handshake-group/x25519/{lib}", "library": "openssl", "id": "rustls-full-handshake-group/x25519/openssl", - "ns": 374649.39355992316, - "ns_low": 373360.9369508007, - "ns_high": 375967.7128768089, + "ns": 374683.41672971775, + "ns_low": 373081.5185346124, + "ns_high": 376386.9808223127, "throughput": { "Elements": 1 } @@ -178,9 +178,9 @@ "operation": "rustls-full-handshake-group/x25519/{lib}", "library": "rind", "id": "rustls-full-handshake-group/x25519/rind", - "ns": 155391.24526969114, - "ns_low": 154913.44763054716, - "ns_high": 155862.12893543203, + "ns": 151020.41778483818, + "ns_low": 150461.06922114777, + "ns_high": 151555.8240811032, "throughput": { "Elements": 1 } @@ -189,9 +189,9 @@ "operation": "rustls-full-handshake-group/x25519/{lib}", "library": "ring", "id": "rustls-full-handshake-group/x25519/ring", - "ns": 184645.65049431063, - "ns_low": 184233.04996071558, - "ns_high": 185123.89009077605, + "ns": 183823.73128491206, + "ns_low": 183272.0321404661, + "ns_high": 184404.13781742557, "throughput": { "Elements": 1 } @@ -200,9 +200,9 @@ "operation": "rustls-full-handshake-group/secp256r1/{lib}", "library": "aws-lc-rs", "id": "rustls-full-handshake-group/secp256r1/aws-lc-rs", - "ns": 206726.95669572928, - "ns_low": 206075.518870867, - "ns_high": 207470.49302057715, + "ns": 205844.57167233143, + "ns_low": 205201.6385515658, + "ns_high": 206565.683425515, "throughput": { "Elements": 1 } @@ -211,9 +211,9 @@ "operation": "rustls-full-handshake-group/secp256r1/{lib}", "library": "graviola", "id": "rustls-full-handshake-group/secp256r1/graviola", - "ns": 191723.06850746268, - "ns_low": 190605.18326785727, - "ns_high": 193280.63906046774, + "ns": 189729.42507314912, + "ns_low": 189022.31887092564, + "ns_high": 190497.45708841234, "throughput": { "Elements": 1 } @@ -222,9 +222,9 @@ "operation": "rustls-full-handshake-group/secp256r1/{lib}", "library": "openssl", "id": "rustls-full-handshake-group/secp256r1/openssl", - "ns": 400477.21395152947, - "ns_low": 399156.9983847531, - "ns_high": 401900.89742650534, + "ns": 401286.7365568199, + "ns_low": 399000.56667251873, + "ns_high": 404622.2463813497, "throughput": { "Elements": 1 } @@ -233,9 +233,9 @@ "operation": "rustls-full-handshake-group/secp256r1/{lib}", "library": "rind", "id": "rustls-full-handshake-group/secp256r1/rind", - "ns": 176204.12778927147, - "ns_low": 175582.40596241513, - "ns_high": 176808.97963948932, + "ns": 171986.33371878232, + "ns_low": 170877.39636056474, + "ns_high": 173632.78120967824, "throughput": { "Elements": 1 } @@ -244,9 +244,9 @@ "operation": "rustls-full-handshake-group/secp256r1/{lib}", "library": "ring", "id": "rustls-full-handshake-group/secp256r1/ring", - "ns": 201438.41722969312, - "ns_low": 200189.0241699, - "ns_high": 203480.72583577718, + "ns": 202418.7225171174, + "ns_low": 200087.63203540773, + "ns_high": 205842.53070179274, "throughput": { "Elements": 1 } @@ -255,9 +255,9 @@ "operation": "rustls-full-handshake-key/ed25519/{lib}", "library": "aws-lc-rs", "id": "rustls-full-handshake-key/ed25519/aws-lc-rs", - "ns": 150928.2760928033, - "ns_low": 150462.4736171076, - "ns_high": 151473.9308306628, + "ns": 150186.0182503325, + "ns_low": 149607.64796215936, + "ns_high": 150949.94638967357, "throughput": { "Elements": 1 } @@ -266,9 +266,9 @@ "operation": "rustls-full-handshake-key/ed25519/{lib}", "library": "graviola", "id": "rustls-full-handshake-key/ed25519/graviola", - "ns": 124116.8585854884, - "ns_low": 123264.49992247345, - "ns_high": 125502.66912186865, + "ns": 123587.1002133885, + "ns_low": 123103.15786493728, + "ns_high": 124156.06603062263, "throughput": { "Elements": 1 } @@ -277,9 +277,9 @@ "operation": "rustls-full-handshake-key/ed25519/{lib}", "library": "openssl", "id": "rustls-full-handshake-key/ed25519/openssl", - "ns": 383827.4255356879, - "ns_low": 382442.6100015725, - "ns_high": 385346.5484152613, + "ns": 383062.41485444066, + "ns_low": 380249.0447227591, + "ns_high": 387558.0220953662, "throughput": { "Elements": 1 } @@ -288,9 +288,9 @@ "operation": "rustls-full-handshake-key/ed25519/{lib}", "library": "rind", "id": "rustls-full-handshake-key/ed25519/rind", - "ns": 127231.658463721, - "ns_low": 126632.7262351605, - "ns_high": 127956.81766263032, + "ns": 128510.92569587706, + "ns_low": 126115.59697093176, + "ns_high": 133064.98640930012, "throughput": { "Elements": 1 } @@ -299,9 +299,9 @@ "operation": "rustls-full-handshake-key/ed25519/{lib}", "library": "ring", "id": "rustls-full-handshake-key/ed25519/ring", - "ns": 155037.62873651544, - "ns_low": 154404.35186733434, - "ns_high": 155890.27157268068, + "ns": 154500.49780035467, + "ns_low": 153997.82773176432, + "ns_high": 155024.34226345987, "throughput": { "Elements": 1 } @@ -310,9 +310,9 @@ "operation": "rustls-full-handshake-key/rsa-2048/{lib}", "library": "aws-lc-rs", "id": "rustls-full-handshake-key/rsa-2048/aws-lc-rs", - "ns": 406706.82046844985, - "ns_low": 405513.91412015224, - "ns_high": 408108.8574283564, + "ns": 409148.6252046697, + "ns_low": 406591.71738077106, + "ns_high": 412667.68044985726, "throughput": { "Elements": 1 } @@ -321,9 +321,9 @@ "operation": "rustls-full-handshake-key/rsa-2048/{lib}", "library": "graviola", "id": "rustls-full-handshake-key/rsa-2048/graviola", - "ns": 683150.6391990542, - "ns_low": 678767.0931289573, - "ns_high": 689638.8631377588, + "ns": 674071.2139057189, + "ns_low": 671707.3582730606, + "ns_high": 676574.1203862003, "throughput": { "Elements": 1 } @@ -332,9 +332,9 @@ "operation": "rustls-full-handshake-key/rsa-2048/{lib}", "library": "openssl", "id": "rustls-full-handshake-key/rsa-2048/openssl", - "ns": 643300.1733293927, - "ns_low": 641098.8793215863, - "ns_high": 645786.6465499077, + "ns": 644460.8051278262, + "ns_low": 639522.8022674228, + "ns_high": 652386.8448912088, "throughput": { "Elements": 1 } @@ -343,9 +343,9 @@ "operation": "rustls-full-handshake-key/rsa-2048/{lib}", "library": "rind", "id": "rustls-full-handshake-key/rsa-2048/rind", - "ns": 371347.6830737402, - "ns_low": 370244.45707218174, - "ns_high": 372540.66086443426, + "ns": 372918.13626126794, + "ns_low": 370387.9007601938, + "ns_high": 376404.29088027246, "throughput": { "Elements": 1 } @@ -354,9 +354,9 @@ "operation": "rustls-full-handshake-key/rsa-2048/{lib}", "library": "ring", "id": "rustls-full-handshake-key/rsa-2048/ring", - "ns": 446944.1473666322, - "ns_low": 444562.3602969627, - "ns_high": 450852.9355564261, + "ns": 446942.2951440816, + "ns_low": 445443.72150183434, + "ns_high": 448682.797123726, "throughput": { "Elements": 1 } @@ -365,9 +365,9 @@ "operation": "rustls-resumed-handshake/x25519/{lib}", "library": "aws-lc-rs", "id": "rustls-resumed-handshake/x25519/aws-lc-rs", - "ns": 92464.03515168148, - "ns_low": 91918.9935288164, - "ns_high": 93037.01937360466, + "ns": 89831.04277734383, + "ns_low": 89237.61937170629, + "ns_high": 90606.65265687493, "throughput": { "Elements": 1 } @@ -376,9 +376,9 @@ "operation": "rustls-resumed-handshake/x25519/{lib}", "library": "graviola", "id": "rustls-resumed-handshake/x25519/graviola", - "ns": 61745.54290025122, - "ns_low": 61575.55566010297, - "ns_high": 61927.65347093232, + "ns": 61633.712907640016, + "ns_low": 61421.714965924984, + "ns_high": 61850.6571588253, "throughput": { "Elements": 1 } @@ -387,9 +387,9 @@ "operation": "rustls-resumed-handshake/x25519/{lib}", "library": "openssl", "id": "rustls-resumed-handshake/x25519/openssl", - "ns": 255116.20131225063, - "ns_low": 254226.95012841083, - "ns_high": 255982.13796536296, + "ns": 253423.33819417763, + "ns_low": 251552.88653614593, + "ns_high": 255896.34994795572, "throughput": { "Elements": 1 } @@ -398,9 +398,9 @@ "operation": "rustls-resumed-handshake/x25519/{lib}", "library": "rind", "id": "rustls-resumed-handshake/x25519/rind", - "ns": 66291.9701870187, - "ns_low": 65917.15457747292, - "ns_high": 66698.88959008608, + "ns": 65878.3720542502, + "ns_low": 65672.99624726926, + "ns_high": 66091.2198944795, "throughput": { "Elements": 1 } @@ -409,9 +409,9 @@ "operation": "rustls-resumed-handshake/x25519/{lib}", "library": "ring", "id": "rustls-resumed-handshake/x25519/ring", - "ns": 88286.06266376744, - "ns_low": 87572.68998420854, - "ns_high": 89325.87477820979, + "ns": 87174.24632185607, + "ns_low": 86799.02978521469, + "ns_high": 87546.09032786595, "throughput": { "Elements": 1 } @@ -420,9 +420,9 @@ "operation": "rustls-bulk/aes128-gcm/{lib}", "library": "aws-lc-rs", "id": "rustls-bulk/aes128-gcm/aws-lc-rs", - "ns": 310775.0835436678, - "ns_low": 309355.40389215644, - "ns_high": 312358.3113820762, + "ns": 313177.59536131227, + "ns_low": 310778.6869924336, + "ns_high": 316694.7155353457, "throughput": { "Bytes": 1048576 } @@ -431,9 +431,9 @@ "operation": "rustls-bulk/aes128-gcm/{lib}", "library": "graviola", "id": "rustls-bulk/aes128-gcm/graviola", - "ns": 327108.56207773014, - "ns_low": 325378.0377545567, - "ns_high": 329298.6325039636, + "ns": 333720.4794931284, + "ns_low": 328672.68493521825, + "ns_high": 341151.8706252974, "throughput": { "Bytes": 1048576 } @@ -442,9 +442,9 @@ "operation": "rustls-bulk/aes128-gcm/{lib}", "library": "openssl", "id": "rustls-bulk/aes128-gcm/openssl", - "ns": 338345.2325683464, - "ns_low": 336635.71174632385, - "ns_high": 340434.94974932907, + "ns": 340262.9024619477, + "ns_low": 336925.8916846146, + "ns_high": 344689.1048837788, "throughput": { "Bytes": 1048576 } @@ -453,9 +453,9 @@ "operation": "rustls-bulk/aes128-gcm/{lib}", "library": "rind", "id": "rustls-bulk/aes128-gcm/rind", - "ns": 308566.37457957736, - "ns_low": 307691.1531382107, - "ns_high": 309563.35437925323, + "ns": 309220.27200384217, + "ns_low": 308095.71176873724, + "ns_high": 310507.77445008326, "throughput": { "Bytes": 1048576 } @@ -464,9 +464,9 @@ "operation": "rustls-bulk/aes128-gcm/{lib}", "library": "ring", "id": "rustls-bulk/aes128-gcm/ring", - "ns": 372585.1681690557, - "ns_low": 368853.4138997409, - "ns_high": 378195.77252326213, + "ns": 372508.70211467415, + "ns_low": 371248.99869189755, + "ns_high": 373826.69482997735, "throughput": { "Bytes": 1048576 } @@ -475,9 +475,9 @@ "operation": "rustls-bulk/aes256-gcm/{lib}", "library": "aws-lc-rs", "id": "rustls-bulk/aes256-gcm/aws-lc-rs", - "ns": 341913.4178395153, - "ns_low": 340195.9940562084, - "ns_high": 343976.91465869854, + "ns": 347022.7329407418, + "ns_low": 345381.9888355501, + "ns_high": 348703.7995929128, "throughput": { "Bytes": 1048576 } @@ -486,9 +486,9 @@ "operation": "rustls-bulk/aes256-gcm/{lib}", "library": "graviola", "id": "rustls-bulk/aes256-gcm/graviola", - "ns": 397408.6469395596, - "ns_low": 395530.58668117865, - "ns_high": 399629.58577679074, + "ns": 400753.09469779814, + "ns_low": 398609.4116833003, + "ns_high": 403412.85817186366, "throughput": { "Bytes": 1048576 } @@ -497,9 +497,9 @@ "operation": "rustls-bulk/aes256-gcm/{lib}", "library": "openssl", "id": "rustls-bulk/aes256-gcm/openssl", - "ns": 371492.9850938377, - "ns_low": 369658.03424764593, - "ns_high": 374302.5408522081, + "ns": 372289.42911777744, + "ns_low": 370795.455077324, + "ns_high": 373925.70755359513, "throughput": { "Bytes": 1048576 } @@ -508,9 +508,9 @@ "operation": "rustls-bulk/aes256-gcm/{lib}", "library": "rind", "id": "rustls-bulk/aes256-gcm/rind", - "ns": 343959.3999689671, - "ns_low": 342369.0632123827, - "ns_high": 345616.5106875045, + "ns": 348826.2975602187, + "ns_low": 347349.5959707477, + "ns_high": 350350.02048699406, "throughput": { "Bytes": 1048576 } @@ -519,9 +519,9 @@ "operation": "rustls-bulk/aes256-gcm/{lib}", "library": "ring", "id": "rustls-bulk/aes256-gcm/ring", - "ns": 380259.3430560071, - "ns_low": 378894.9166728107, - "ns_high": 381808.6125906871, + "ns": 386926.76666469633, + "ns_low": 384255.7745666038, + "ns_high": 391264.2682194347, "throughput": { "Bytes": 1048576 } @@ -530,9 +530,9 @@ "operation": "rustls-bulk/chacha20poly1305/{lib}", "library": "aws-lc-rs", "id": "rustls-bulk/chacha20poly1305/aws-lc-rs", - "ns": 1117461.8769203487, - "ns_low": 1110078.8438208462, - "ns_high": 1127578.9012635201, + "ns": 1098046.0654322447, + "ns_low": 1093135.033178272, + "ns_high": 1103402.6813917498, "throughput": { "Bytes": 1048576 } @@ -541,9 +541,9 @@ "operation": "rustls-bulk/chacha20poly1305/{lib}", "library": "graviola", "id": "rustls-bulk/chacha20poly1305/graviola", - "ns": 1790665.0511764705, - "ns_low": 1779622.3262058822, - "ns_high": 1805310.1971764704, + "ns": 1733516.064999999, + "ns_low": 1727322.1968194447, + "ns_high": 1740980.217541666, "throughput": { "Bytes": 1048576 } @@ -552,9 +552,9 @@ "operation": "rustls-bulk/chacha20poly1305/{lib}", "library": "openssl", "id": "rustls-bulk/chacha20poly1305/openssl", - "ns": 1106168.757029703, - "ns_low": 1102261.4972604944, - "ns_high": 1110399.5328705583, + "ns": 1105978.1896970593, + "ns_low": 1095756.1835753128, + "ns_high": 1120156.365604082, "throughput": { "Bytes": 1048576 } @@ -563,9 +563,9 @@ "operation": "rustls-bulk/chacha20poly1305/{lib}", "library": "rind", "id": "rustls-bulk/chacha20poly1305/rind", - "ns": 1117213.9074981527, - "ns_low": 1112565.8847098371, - "ns_high": 1122326.4123632284, + "ns": 1108861.0560839367, + "ns_low": 1098209.5844133045, + "ns_high": 1123136.1544051415, "throughput": { "Bytes": 1048576 } @@ -574,9 +574,9 @@ "operation": "rustls-bulk/chacha20poly1305/{lib}", "library": "ring", "id": "rustls-bulk/chacha20poly1305/ring", - "ns": 1114476.349717748, - "ns_low": 1110091.8214222197, - "ns_high": 1119410.8848856308, + "ns": 1096055.1032747156, + "ns_low": 1089821.8802336021, + "ns_high": 1103577.9375696485, "throughput": { "Bytes": 1048576 } @@ -585,9 +585,9 @@ "operation": "aes128-gcm/{lib}/32B", "library": "aws-lc-rs", "id": "aes128-gcm/aws-lc-rs/32B", - "ns": 49.752491058825754, - "ns_low": 49.40787443745903, - "ns_high": 50.11237918351562, + "ns": 49.69372809937211, + "ns_low": 49.44053481611328, + "ns_high": 49.942584033451126, "throughput": { "Bytes": 32 } @@ -596,9 +596,9 @@ "operation": "aes128-gcm/{lib}/32B", "library": "graviola", "id": "aes128-gcm/graviola/32B", - "ns": 79.86419301681406, - "ns_low": 79.14707386307197, - "ns_high": 80.87819369823305, + "ns": 78.97332920353509, + "ns_low": 78.4479077486326, + "ns_high": 79.66614332644448, "throughput": { "Bytes": 32 } @@ -607,9 +607,9 @@ "operation": "aes128-gcm/{lib}/32B", "library": "libcrux", "id": "aes128-gcm/libcrux/32B", - "ns": 52.7669670136078, - "ns_low": 52.479199359666225, - "ns_high": 53.108609625080035, + "ns": 51.85918551305852, + "ns_low": 51.528986335336086, + "ns_high": 52.28573682615625, "throughput": { "Bytes": 32 } @@ -618,9 +618,9 @@ "operation": "aes128-gcm/{lib}/32B", "library": "openssl", "id": "aes128-gcm/openssl/32B", - "ns": 68.89243369901709, - "ns_low": 67.46442141219333, - "ns_high": 70.80404554644977, + "ns": 66.82372152013478, + "ns_low": 66.09170548815219, + "ns_high": 67.61943540893067, "throughput": { "Bytes": 32 } @@ -629,9 +629,20 @@ "operation": "aes128-gcm/{lib}/32B", "library": "rind", "id": "aes128-gcm/rind/32B", - "ns": 56.79981342983798, - "ns_low": 56.53159631839321, - "ns_high": 57.10649184778805, + "ns": 56.94128791913582, + "ns_low": 56.68247619854369, + "ns_high": 57.22120160095418, + "throughput": { + "Bytes": 32 + } + }, + { + "operation": "aes128-gcm/{lib}/32B", + "library": "rind-dit-held", + "id": "aes128-gcm/rind-dit-held/32B", + "ns": 10.821127131276178, + "ns_low": 10.777278746289324, + "ns_high": 10.87392129738074, "throughput": { "Bytes": 32 } @@ -640,9 +651,9 @@ "operation": "aes128-gcm/{lib}/32B", "library": "ring", "id": "aes128-gcm/ring/32B", - "ns": 41.86707629331381, - "ns_low": 41.7661558884458, - "ns_high": 41.98272897276245, + "ns": 41.77351649528646, + "ns_low": 41.64146693255169, + "ns_high": 41.916280787210184, "throughput": { "Bytes": 32 } @@ -651,9 +662,9 @@ "operation": "aes128-gcm/{lib}/32B", "library": "rustcrypto", "id": "aes128-gcm/rustcrypto/32B", - "ns": 23.694000865523126, - "ns_low": 23.631690976704107, - "ns_high": 23.765213103922765, + "ns": 23.948854736693, + "ns_low": 23.86412311468622, + "ns_high": 24.05384478506612, "throughput": { "Bytes": 32 } @@ -662,9 +673,9 @@ "operation": "aes128-gcm/{lib}/1350B", "library": "aws-lc-rs", "id": "aes128-gcm/aws-lc-rs/1350B", - "ns": 180.05605907344466, - "ns_low": 179.32516371733982, - "ns_high": 180.73108775943703, + "ns": 181.14486627588735, + "ns_low": 179.78606338028456, + "ns_high": 182.79150688783506, "throughput": { "Bytes": 1350 } @@ -673,9 +684,9 @@ "operation": "aes128-gcm/{lib}/1350B", "library": "graviola", "id": "aes128-gcm/graviola/1350B", - "ns": 215.17983429073715, - "ns_low": 214.55769102876548, - "ns_high": 215.84500149959814, + "ns": 215.6740227989241, + "ns_low": 214.66616235317844, + "ns_high": 216.86828239704602, "throughput": { "Bytes": 1350 } @@ -684,9 +695,9 @@ "operation": "aes128-gcm/{lib}/1350B", "library": "libcrux", "id": "aes128-gcm/libcrux/1350B", - "ns": 619.2008113515918, - "ns_low": 615.8323107748063, - "ns_high": 622.7250954590972, + "ns": 600.2737791776905, + "ns_low": 595.5862964459583, + "ns_high": 605.9871804200851, "throughput": { "Bytes": 1350 } @@ -695,9 +706,9 @@ "operation": "aes128-gcm/{lib}/1350B", "library": "openssl", "id": "aes128-gcm/openssl/1350B", - "ns": 197.02904676373842, - "ns_low": 196.31032335916984, - "ns_high": 197.84240573017374, + "ns": 195.70850925735513, + "ns_low": 194.7634521584802, + "ns_high": 196.82488500050025, "throughput": { "Bytes": 1350 } @@ -706,9 +717,20 @@ "operation": "aes128-gcm/{lib}/1350B", "library": "rind", "id": "aes128-gcm/rind/1350B", - "ns": 211.61339714610597, - "ns_low": 211.07463150401702, - "ns_high": 212.15265995010242, + "ns": 209.31560275504896, + "ns_low": 208.29065241480862, + "ns_high": 210.71668438919005, + "throughput": { + "Bytes": 1350 + } + }, + { + "operation": "aes128-gcm/{lib}/1350B", + "library": "rind-dit-held", + "id": "aes128-gcm/rind-dit-held/1350B", + "ns": 161.4692060946662, + "ns_low": 160.91119612956214, + "ns_high": 162.12561976226644, "throughput": { "Bytes": 1350 } @@ -717,9 +739,9 @@ "operation": "aes128-gcm/{lib}/1350B", "library": "ring", "id": "aes128-gcm/ring/1350B", - "ns": 211.93856436831143, - "ns_low": 210.65624543290076, - "ns_high": 213.53490904464246, + "ns": 210.49577164208878, + "ns_low": 209.76666217395461, + "ns_high": 211.18779006276455, "throughput": { "Bytes": 1350 } @@ -728,9 +750,9 @@ "operation": "aes128-gcm/{lib}/1350B", "library": "rustcrypto", "id": "aes128-gcm/rustcrypto/1350B", - "ns": 213.2295573593783, - "ns_low": 212.76491051300707, - "ns_high": 213.79921008217724, + "ns": 212.31663126694232, + "ns_low": 211.8062868225751, + "ns_high": 212.9512208137607, "throughput": { "Bytes": 1350 } @@ -739,9 +761,9 @@ "operation": "aes128-gcm/{lib}/16KB", "library": "aws-lc-rs", "id": "aes128-gcm/aws-lc-rs/16KB", - "ns": 1453.7599790465838, - "ns_low": 1446.0272270194494, - "ns_high": 1465.0639355138258, + "ns": 1443.190547188644, + "ns_low": 1438.5186655947032, + "ns_high": 1447.8421153850525, "throughput": { "Bytes": 16384 } @@ -750,9 +772,9 @@ "operation": "aes128-gcm/{lib}/16KB", "library": "graviola", "id": "aes128-gcm/graviola/16KB", - "ns": 1599.8308109527695, - "ns_low": 1595.2842972278127, - "ns_high": 1604.5657889615536, + "ns": 1599.8570436429068, + "ns_low": 1585.8841154191653, + "ns_high": 1622.8411971908727, "throughput": { "Bytes": 16384 } @@ -761,9 +783,9 @@ "operation": "aes128-gcm/{lib}/16KB", "library": "libcrux", "id": "aes128-gcm/libcrux/16KB", - "ns": 7146.175328203396, - "ns_low": 7065.851164961102, - "ns_high": 7259.192890534237, + "ns": 6780.588489580134, + "ns_low": 6701.553205748254, + "ns_high": 6904.53631545604, "throughput": { "Bytes": 16384 } @@ -772,9 +794,9 @@ "operation": "aes128-gcm/{lib}/16KB", "library": "openssl", "id": "aes128-gcm/openssl/16KB", - "ns": 1516.3662623083812, - "ns_low": 1512.7069457943824, - "ns_high": 1520.440330310697, + "ns": 1513.8319413310687, + "ns_low": 1507.3472617178365, + "ns_high": 1520.9586821985206, "throughput": { "Bytes": 16384 } @@ -783,9 +805,20 @@ "operation": "aes128-gcm/{lib}/16KB", "library": "rind", "id": "aes128-gcm/rind/16KB", - "ns": 1492.620335676252, - "ns_low": 1490.1085221676663, - "ns_high": 1495.714219846836, + "ns": 1479.4761069544256, + "ns_low": 1474.9448425596536, + "ns_high": 1484.1144945529607, + "throughput": { + "Bytes": 16384 + } + }, + { + "operation": "aes128-gcm/{lib}/16KB", + "library": "rind-dit-held", + "id": "aes128-gcm/rind-dit-held/16KB", + "ns": 1432.566521599921, + "ns_low": 1422.0959585234095, + "ns_high": 1451.6064897501942, "throughput": { "Bytes": 16384 } @@ -794,9 +827,9 @@ "operation": "aes128-gcm/{lib}/16KB", "library": "ring", "id": "aes128-gcm/ring/16KB", - "ns": 1966.1870751526164, - "ns_low": 1956.8525402806229, - "ns_high": 1976.7120596230975, + "ns": 1936.6302916368395, + "ns_low": 1930.4023784968651, + "ns_high": 1943.7306019303128, "throughput": { "Bytes": 16384 } @@ -805,9 +838,9 @@ "operation": "aes128-gcm/{lib}/16KB", "library": "rustcrypto", "id": "aes128-gcm/rustcrypto/16KB", - "ns": 2361.1127429031026, - "ns_low": 2339.6888776777355, - "ns_high": 2393.68806953613, + "ns": 2264.6464119768475, + "ns_low": 2257.7522151662383, + "ns_high": 2272.37039744782, "throughput": { "Bytes": 16384 } @@ -816,9 +849,9 @@ "operation": "aes128-gcm-open/{lib}/32B", "library": "aws-lc-rs", "id": "aes128-gcm-open/aws-lc-rs/32B", - "ns": 47.160351043867756, - "ns_low": 46.53453281600477, - "ns_high": 47.9948695157278, + "ns": 47.003136652778146, + "ns_low": 46.52121228041451, + "ns_high": 47.45456619345843, "throughput": { "Bytes": 32 } @@ -827,9 +860,9 @@ "operation": "aes128-gcm-open/{lib}/32B", "library": "graviola", "id": "aes128-gcm-open/graviola/32B", - "ns": 84.8415395683634, - "ns_low": 84.56979887993288, - "ns_high": 85.10201922112563, + "ns": 83.92069452651016, + "ns_low": 83.54691251044146, + "ns_high": 84.34210062833907, "throughput": { "Bytes": 32 } @@ -838,9 +871,9 @@ "operation": "aes128-gcm-open/{lib}/32B", "library": "libcrux", "id": "aes128-gcm-open/libcrux/32B", - "ns": 63.57760146858742, - "ns_low": 63.28163260983879, - "ns_high": 63.90363650274374, + "ns": 61.38884540124786, + "ns_low": 61.15268808580377, + "ns_high": 61.65719362690309, "throughput": { "Bytes": 32 } @@ -849,9 +882,9 @@ "operation": "aes128-gcm-open/{lib}/32B", "library": "openssl", "id": "aes128-gcm-open/openssl/32B", - "ns": 65.41951379086953, - "ns_low": 65.16798086140334, - "ns_high": 65.68159117426107, + "ns": 65.60177198686354, + "ns_low": 65.06973470274292, + "ns_high": 66.11265419911776, "throughput": { "Bytes": 32 } @@ -860,9 +893,20 @@ "operation": "aes128-gcm-open/{lib}/32B", "library": "rind", "id": "aes128-gcm-open/rind/32B", - "ns": 47.28415879333341, - "ns_low": 47.072135238829595, - "ns_high": 47.538082893075696, + "ns": 46.71826285326437, + "ns_low": 46.47259161407363, + "ns_high": 47.06405316299705, + "throughput": { + "Bytes": 32 + } + }, + { + "operation": "aes128-gcm-open/{lib}/32B", + "library": "rind-dit-held", + "id": "aes128-gcm-open/rind-dit-held/32B", + "ns": 12.624156350940789, + "ns_low": 12.541639958108371, + "ns_high": 12.714548696925059, "throughput": { "Bytes": 32 } @@ -871,9 +915,9 @@ "operation": "aes128-gcm-open/{lib}/32B", "library": "ring", "id": "aes128-gcm-open/ring/32B", - "ns": 39.30862404832825, - "ns_low": 39.133619113582064, - "ns_high": 39.484999243610396, + "ns": 39.2085871220502, + "ns_low": 38.99850351027391, + "ns_high": 39.49439945384537, "throughput": { "Bytes": 32 } @@ -882,9 +926,9 @@ "operation": "aes128-gcm-open/{lib}/32B", "library": "rustcrypto", "id": "aes128-gcm-open/rustcrypto/32B", - "ns": 27.695461550498976, - "ns_low": 27.44200537365188, - "ns_high": 28.128300468865426, + "ns": 27.56240754679712, + "ns_low": 27.46498254935142, + "ns_high": 27.6870929931888, "throughput": { "Bytes": 32 } @@ -893,9 +937,9 @@ "operation": "aes128-gcm-open/{lib}/1350B", "library": "aws-lc-rs", "id": "aes128-gcm-open/aws-lc-rs/1350B", - "ns": 192.89812590225839, - "ns_low": 192.24181327085037, - "ns_high": 193.70524644989098, + "ns": 190.64512582261838, + "ns_low": 189.78565220227176, + "ns_high": 191.55512296297144, "throughput": { "Bytes": 1350 } @@ -904,9 +948,9 @@ "operation": "aes128-gcm-open/{lib}/1350B", "library": "graviola", "id": "aes128-gcm-open/graviola/1350B", - "ns": 225.98569034369228, - "ns_low": 225.23339410601955, - "ns_high": 227.0473031861718, + "ns": 224.74059517980626, + "ns_low": 224.02326607641228, + "ns_high": 225.45868240723775, "throughput": { "Bytes": 1350 } @@ -915,9 +959,9 @@ "operation": "aes128-gcm-open/{lib}/1350B", "library": "libcrux", "id": "aes128-gcm-open/libcrux/1350B", - "ns": 647.0519700374145, - "ns_low": 638.4202385557528, - "ns_high": 661.078828197932, + "ns": 617.6156645292963, + "ns_low": 613.9025217135949, + "ns_high": 622.1404964065131, "throughput": { "Bytes": 1350 } @@ -926,9 +970,9 @@ "operation": "aes128-gcm-open/{lib}/1350B", "library": "openssl", "id": "aes128-gcm-open/openssl/1350B", - "ns": 198.6049704634742, - "ns_low": 197.66763347184283, - "ns_high": 199.64412161353175, + "ns": 199.3018164868559, + "ns_low": 198.43473363490548, + "ns_high": 200.1829179530329, "throughput": { "Bytes": 1350 } @@ -937,9 +981,20 @@ "operation": "aes128-gcm-open/{lib}/1350B", "library": "rind", "id": "aes128-gcm-open/rind/1350B", - "ns": 213.99268724022429, - "ns_low": 212.81094726297584, - "ns_high": 215.59053534696707, + "ns": 209.6750371275296, + "ns_low": 208.86956476729964, + "ns_high": 210.56596976303578, + "throughput": { + "Bytes": 1350 + } + }, + { + "operation": "aes128-gcm-open/{lib}/1350B", + "library": "rind-dit-held", + "id": "aes128-gcm-open/rind-dit-held/1350B", + "ns": 177.83539937583888, + "ns_low": 176.36268939168733, + "ns_high": 179.96378573940282, "throughput": { "Bytes": 1350 } @@ -948,9 +1003,9 @@ "operation": "aes128-gcm-open/{lib}/1350B", "library": "ring", "id": "aes128-gcm-open/ring/1350B", - "ns": 246.64884894041074, - "ns_low": 245.45782975859797, - "ns_high": 248.23214710871738, + "ns": 243.23338506305714, + "ns_low": 240.18150133185733, + "ns_high": 247.40494775708476, "throughput": { "Bytes": 1350 } @@ -959,9 +1014,9 @@ "operation": "aes128-gcm-open/{lib}/1350B", "library": "rustcrypto", "id": "aes128-gcm-open/rustcrypto/1350B", - "ns": 237.0192313679129, - "ns_low": 233.57326752782674, - "ns_high": 242.81705405985684, + "ns": 231.7425914327465, + "ns_low": 229.6516900943613, + "ns_high": 234.8352306257534, "throughput": { "Bytes": 1350 } @@ -970,9 +1025,9 @@ "operation": "aes128-gcm-open/{lib}/16KB", "library": "aws-lc-rs", "id": "aes128-gcm-open/aws-lc-rs/16KB", - "ns": 1571.7503575433755, - "ns_low": 1568.2571997887076, - "ns_high": 1575.9505510008782, + "ns": 1576.9297863990446, + "ns_low": 1568.3617181662835, + "ns_high": 1589.7116682690835, "throughput": { "Bytes": 16384 } @@ -981,9 +1036,9 @@ "operation": "aes128-gcm-open/{lib}/16KB", "library": "graviola", "id": "aes128-gcm-open/graviola/16KB", - "ns": 1706.639684318344, - "ns_low": 1697.9354538983584, - "ns_high": 1718.8901827891336, + "ns": 1712.1391089277797, + "ns_low": 1704.7824267573208, + "ns_high": 1721.8988254490646, "throughput": { "Bytes": 16384 } @@ -992,9 +1047,9 @@ "operation": "aes128-gcm-open/{lib}/16KB", "library": "libcrux", "id": "aes128-gcm-open/libcrux/16KB", - "ns": 6974.73252357896, - "ns_low": 6941.209158798741, - "ns_high": 7008.907930653137, + "ns": 6819.108200037708, + "ns_low": 6743.793862631885, + "ns_high": 6914.796182553239, "throughput": { "Bytes": 16384 } @@ -1003,9 +1058,9 @@ "operation": "aes128-gcm-open/{lib}/16KB", "library": "openssl", "id": "aes128-gcm-open/openssl/16KB", - "ns": 1661.1711458696207, - "ns_low": 1653.3933358345032, - "ns_high": 1672.2422034300425, + "ns": 1652.8317757636764, + "ns_low": 1649.2580649486556, + "ns_high": 1656.7251360271816, "throughput": { "Bytes": 16384 } @@ -1014,9 +1069,20 @@ "operation": "aes128-gcm-open/{lib}/16KB", "library": "rind", "id": "aes128-gcm-open/rind/16KB", - "ns": 1605.32326072818, - "ns_low": 1582.8704104652277, - "ns_high": 1649.1551702529205, + "ns": 1581.4613907090857, + "ns_low": 1575.210647666508, + "ns_high": 1587.8006338241385, + "throughput": { + "Bytes": 16384 + } + }, + { + "operation": "aes128-gcm-open/{lib}/16KB", + "library": "rind-dit-held", + "id": "aes128-gcm-open/rind-dit-held/16KB", + "ns": 1563.0712752137915, + "ns_low": 1550.9770873060118, + "ns_high": 1581.5020113307905, "throughput": { "Bytes": 16384 } @@ -1025,9 +1091,9 @@ "operation": "aes128-gcm-open/{lib}/16KB", "library": "ring", "id": "aes128-gcm-open/ring/16KB", - "ns": 2178.062625057461, - "ns_low": 2171.14108188634, - "ns_high": 2184.8545614870036, + "ns": 2159.982375633808, + "ns_low": 2136.897806627075, + "ns_high": 2199.9933350542506, "throughput": { "Bytes": 16384 } @@ -1036,9 +1102,9 @@ "operation": "aes128-gcm-open/{lib}/16KB", "library": "rustcrypto", "id": "aes128-gcm-open/rustcrypto/16KB", - "ns": 2460.4811221486993, - "ns_low": 2451.8852092158722, - "ns_high": 2470.8858849303756, + "ns": 2430.9244152697033, + "ns_low": 2414.208333533407, + "ns_high": 2450.2546553348257, "throughput": { "Bytes": 16384 } @@ -1047,9 +1113,9 @@ "operation": "aes256-gcm/{lib}/32B", "library": "aws-lc-rs", "id": "aes256-gcm/aws-lc-rs/32B", - "ns": 53.961141826597405, - "ns_low": 53.567469025651945, - "ns_high": 54.36804342592058, + "ns": 53.39496385912569, + "ns_low": 52.92439433974864, + "ns_high": 53.91014335374189, "throughput": { "Bytes": 32 } @@ -1058,9 +1124,9 @@ "operation": "aes256-gcm/{lib}/32B", "library": "graviola", "id": "aes256-gcm/graviola/32B", - "ns": 78.93770185385497, - "ns_low": 78.53166441816059, - "ns_high": 79.37965021614696, + "ns": 78.9991022185664, + "ns_low": 78.70447957077418, + "ns_high": 79.34169193783443, "throughput": { "Bytes": 32 } @@ -1069,9 +1135,9 @@ "operation": "aes256-gcm/{lib}/32B", "library": "libcrux", "id": "aes256-gcm/libcrux/32B", - "ns": 53.3477545864119, - "ns_low": 52.97565178075652, - "ns_high": 53.909021415589564, + "ns": 51.81110376903908, + "ns_low": 51.46539751041927, + "ns_high": 52.17751460315202, "throughput": { "Bytes": 32 } @@ -1080,9 +1146,9 @@ "operation": "aes256-gcm/{lib}/32B", "library": "openssl", "id": "aes256-gcm/openssl/32B", - "ns": 67.49499495663419, - "ns_low": 66.65291416053101, - "ns_high": 68.85075385850372, + "ns": 67.0972119067129, + "ns_low": 66.06954929398859, + "ns_high": 68.52537193912802, "throughput": { "Bytes": 32 } @@ -1091,9 +1157,20 @@ "operation": "aes256-gcm/{lib}/32B", "library": "rind", "id": "aes256-gcm/rind/32B", - "ns": 60.57044534695226, - "ns_low": 60.359698755277385, - "ns_high": 60.83606432917204, + "ns": 61.28502042374313, + "ns_low": 60.907815276205746, + "ns_high": 61.69259972195398, + "throughput": { + "Bytes": 32 + } + }, + { + "operation": "aes256-gcm/{lib}/32B", + "library": "rind-dit-held", + "id": "aes256-gcm/rind-dit-held/32B", + "ns": 11.880715452945985, + "ns_low": 11.825258233583048, + "ns_high": 11.93325261410709, "throughput": { "Bytes": 32 } @@ -1102,9 +1179,9 @@ "operation": "aes256-gcm/{lib}/32B", "library": "ring", "id": "aes256-gcm/ring/32B", - "ns": 45.23535057960282, - "ns_low": 44.64820652312105, - "ns_high": 46.13312914053249, + "ns": 44.83910384543195, + "ns_low": 44.4968253310172, + "ns_high": 45.21432139761429, "throughput": { "Bytes": 32 } @@ -1113,9 +1190,9 @@ "operation": "aes256-gcm/{lib}/32B", "library": "rustcrypto", "id": "aes256-gcm/rustcrypto/32B", - "ns": 24.79531539420785, - "ns_low": 24.60952177740821, - "ns_high": 25.00730494287996, + "ns": 24.919444617749757, + "ns_low": 24.805027216402323, + "ns_high": 25.025623818359705, "throughput": { "Bytes": 32 } @@ -1124,9 +1201,9 @@ "operation": "aes256-gcm/{lib}/1350B", "library": "aws-lc-rs", "id": "aes256-gcm/aws-lc-rs/1350B", - "ns": 204.61603250071926, - "ns_low": 202.0211072758506, - "ns_high": 209.15067374147964, + "ns": 200.97604078913855, + "ns_low": 199.20181735737137, + "ns_high": 203.6311410624504, "throughput": { "Bytes": 1350 } @@ -1135,9 +1212,9 @@ "operation": "aes256-gcm/{lib}/1350B", "library": "graviola", "id": "aes256-gcm/graviola/1350B", - "ns": 262.2793586458413, - "ns_low": 260.4394082181937, - "ns_high": 265.45177757910653, + "ns": 258.09425442053987, + "ns_low": 257.17467734401674, + "ns_high": 259.2271035384697, "throughput": { "Bytes": 1350 } @@ -1146,9 +1223,9 @@ "operation": "aes256-gcm/{lib}/1350B", "library": "libcrux", "id": "aes256-gcm/libcrux/1350B", - "ns": 650.226496583791, - "ns_low": 642.5287491898015, - "ns_high": 659.7659404328737, + "ns": 629.6147367318457, + "ns_low": 626.2921622747535, + "ns_high": 633.1833678000244, "throughput": { "Bytes": 1350 } @@ -1157,9 +1234,9 @@ "operation": "aes256-gcm/{lib}/1350B", "library": "openssl", "id": "aes256-gcm/openssl/1350B", - "ns": 221.6374042280511, - "ns_low": 219.60160611511267, - "ns_high": 224.68927199451645, + "ns": 220.47736031831877, + "ns_low": 218.9936179315727, + "ns_high": 222.51739026352882, "throughput": { "Bytes": 1350 } @@ -1168,9 +1245,20 @@ "operation": "aes256-gcm/{lib}/1350B", "library": "rind", "id": "aes256-gcm/rind/1350B", - "ns": 236.91603802752581, - "ns_low": 236.16108750017008, - "ns_high": 237.67208841748123, + "ns": 232.4025735555477, + "ns_low": 231.7258234318531, + "ns_high": 233.14083169239967, + "throughput": { + "Bytes": 1350 + } + }, + { + "operation": "aes256-gcm/{lib}/1350B", + "library": "rind-dit-held", + "id": "aes256-gcm/rind-dit-held/1350B", + "ns": 188.0371769951236, + "ns_low": 187.0424167036006, + "ns_high": 189.13086283097323, "throughput": { "Bytes": 1350 } @@ -1179,9 +1267,9 @@ "operation": "aes256-gcm/{lib}/1350B", "library": "ring", "id": "aes256-gcm/ring/1350B", - "ns": 219.60429992297867, - "ns_low": 218.5870730483345, - "ns_high": 220.5569257126271, + "ns": 218.6426749137293, + "ns_low": 216.52429728413207, + "ns_high": 220.87914303708524, "throughput": { "Bytes": 1350 } @@ -1190,9 +1278,9 @@ "operation": "aes256-gcm/{lib}/1350B", "library": "rustcrypto", "id": "aes256-gcm/rustcrypto/1350B", - "ns": 245.58690692521134, - "ns_low": 244.96524730071735, - "ns_high": 246.3379041832574, + "ns": 239.1404731163125, + "ns_low": 238.1418179802731, + "ns_high": 240.0565499986298, "throughput": { "Bytes": 1350 } @@ -1201,9 +1289,9 @@ "operation": "aes256-gcm/{lib}/16KB", "library": "aws-lc-rs", "id": "aes256-gcm/aws-lc-rs/16KB", - "ns": 1718.3689144309376, - "ns_low": 1707.6857450973853, - "ns_high": 1737.190104682408, + "ns": 1697.3073911345302, + "ns_low": 1690.5982490520203, + "ns_high": 1706.3738480134582, "throughput": { "Bytes": 16384 } @@ -1212,9 +1300,9 @@ "operation": "aes256-gcm/{lib}/16KB", "library": "graviola", "id": "aes256-gcm/graviola/16KB", - "ns": 2162.225192439244, - "ns_low": 2155.298096132623, - "ns_high": 2169.303902135473, + "ns": 2132.9593811962086, + "ns_low": 2126.1114160912234, + "ns_high": 2140.377658659798, "throughput": { "Bytes": 16384 } @@ -1223,9 +1311,9 @@ "operation": "aes256-gcm/{lib}/16KB", "library": "libcrux", "id": "aes256-gcm/libcrux/16KB", - "ns": 7201.903871303152, - "ns_low": 7170.762973720663, - "ns_high": 7235.43614191704, + "ns": 7077.705491882877, + "ns_low": 7004.749383493622, + "ns_high": 7190.447055174128, "throughput": { "Bytes": 16384 } @@ -1234,9 +1322,9 @@ "operation": "aes256-gcm/{lib}/16KB", "library": "openssl", "id": "aes256-gcm/openssl/16KB", - "ns": 1792.2607360386892, - "ns_low": 1773.4295183036807, - "ns_high": 1821.7433266518983, + "ns": 1767.2597432128607, + "ns_low": 1760.6565457768804, + "ns_high": 1773.4816859015598, "throughput": { "Bytes": 16384 } @@ -1245,9 +1333,20 @@ "operation": "aes256-gcm/{lib}/16KB", "library": "rind", "id": "aes256-gcm/rind/16KB", - "ns": 1746.183372561533, - "ns_low": 1741.3409231402904, - "ns_high": 1751.451577446347, + "ns": 1731.6734088449768, + "ns_low": 1725.182152667187, + "ns_high": 1738.7761889522415, + "throughput": { + "Bytes": 16384 + } + }, + { + "operation": "aes256-gcm/{lib}/16KB", + "library": "rind-dit-held", + "id": "aes256-gcm/rind-dit-held/16KB", + "ns": 1686.1855233507147, + "ns_low": 1681.0745676432048, + "ns_high": 1691.6367759275006, "throughput": { "Bytes": 16384 } @@ -1256,9 +1355,9 @@ "operation": "aes256-gcm/{lib}/16KB", "library": "ring", "id": "aes256-gcm/ring/16KB", - "ns": 2044.1494107651963, - "ns_low": 2037.2841570788319, - "ns_high": 2050.7608632997662, + "ns": 2033.1607276881534, + "ns_low": 2020.0468740120216, + "ns_high": 2049.678798633566, "throughput": { "Bytes": 16384 } @@ -1267,9 +1366,9 @@ "operation": "aes256-gcm/{lib}/16KB", "library": "rustcrypto", "id": "aes256-gcm/rustcrypto/16KB", - "ns": 2723.6037731720935, - "ns_low": 2715.0950210280303, - "ns_high": 2731.85150468369, + "ns": 2628.3458472577004, + "ns_low": 2615.2626706357055, + "ns_high": 2641.4442717135594, "throughput": { "Bytes": 16384 } @@ -1278,9 +1377,9 @@ "operation": "aes256-gcm-open/{lib}/32B", "library": "aws-lc-rs", "id": "aes256-gcm-open/aws-lc-rs/32B", - "ns": 49.009109932569025, - "ns_low": 48.28592287324862, - "ns_high": 49.76166410934057, + "ns": 48.59086319267663, + "ns_low": 47.84986629485738, + "ns_high": 49.378208724857366, "throughput": { "Bytes": 32 } @@ -1289,9 +1388,9 @@ "operation": "aes256-gcm-open/{lib}/32B", "library": "graviola", "id": "aes256-gcm-open/graviola/32B", - "ns": 85.1328870501833, - "ns_low": 84.78519223345278, - "ns_high": 85.51168750358875, + "ns": 84.25999275576032, + "ns_low": 83.79504577047969, + "ns_high": 84.8183934928196, "throughput": { "Bytes": 32 } @@ -1300,9 +1399,9 @@ "operation": "aes256-gcm-open/{lib}/32B", "library": "libcrux", "id": "aes256-gcm-open/libcrux/32B", - "ns": 66.70972567089404, - "ns_low": 66.28657754131919, - "ns_high": 67.3058309105358, + "ns": 65.65592334119015, + "ns_low": 64.99766296368546, + "ns_high": 66.6235746225362, "throughput": { "Bytes": 32 } @@ -1311,9 +1410,9 @@ "operation": "aes256-gcm-open/{lib}/32B", "library": "openssl", "id": "aes256-gcm-open/openssl/32B", - "ns": 67.52023526524894, - "ns_low": 67.15820833878212, - "ns_high": 67.87762387852909, + "ns": 67.59167122786005, + "ns_low": 67.29202602650308, + "ns_high": 67.9434410162606, "throughput": { "Bytes": 32 } @@ -1322,9 +1421,20 @@ "operation": "aes256-gcm-open/{lib}/32B", "library": "rind", "id": "aes256-gcm-open/rind/32B", - "ns": 48.93616947311986, - "ns_low": 48.79872889300323, - "ns_high": 49.06152391047, + "ns": 48.064866197070124, + "ns_low": 47.82179915517928, + "ns_high": 48.31182815553251, + "throughput": { + "Bytes": 32 + } + }, + { + "operation": "aes256-gcm-open/{lib}/32B", + "library": "rind-dit-held", + "id": "aes256-gcm-open/rind-dit-held/32B", + "ns": 13.132106547340127, + "ns_low": 13.09534699289215, + "ns_high": 13.168203647351227, "throughput": { "Bytes": 32 } @@ -1333,9 +1443,9 @@ "operation": "aes256-gcm-open/{lib}/32B", "library": "ring", "id": "aes256-gcm-open/ring/32B", - "ns": 39.5669595271058, - "ns_low": 39.379875806742966, - "ns_high": 39.755857784868915, + "ns": 39.39127515955627, + "ns_low": 39.23930884800144, + "ns_high": 39.540832042917486, "throughput": { "Bytes": 32 } @@ -1344,9 +1454,9 @@ "operation": "aes256-gcm-open/{lib}/32B", "library": "rustcrypto", "id": "aes256-gcm-open/rustcrypto/32B", - "ns": 40.96368158039554, - "ns_low": 40.85379497797888, - "ns_high": 41.091008413602175, + "ns": 40.837209550139896, + "ns_low": 40.55591702179662, + "ns_high": 41.21557123446086, "throughput": { "Bytes": 32 } @@ -1355,9 +1465,9 @@ "operation": "aes256-gcm-open/{lib}/1350B", "library": "aws-lc-rs", "id": "aes256-gcm-open/aws-lc-rs/1350B", - "ns": 218.20847044658157, - "ns_low": 216.47597479444434, - "ns_high": 220.74081160246078, + "ns": 212.84715434676622, + "ns_low": 212.1648198851256, + "ns_high": 213.6062786954357, "throughput": { "Bytes": 1350 } @@ -1366,9 +1476,9 @@ "operation": "aes256-gcm-open/{lib}/1350B", "library": "graviola", "id": "aes256-gcm-open/graviola/1350B", - "ns": 262.7193795854595, - "ns_low": 261.97992970465907, - "ns_high": 263.5205260155963, + "ns": 263.0104723684277, + "ns_low": 262.03330494942855, + "ns_high": 264.2437635788397, "throughput": { "Bytes": 1350 } @@ -1377,9 +1487,9 @@ "operation": "aes256-gcm-open/{lib}/1350B", "library": "libcrux", "id": "aes256-gcm-open/libcrux/1350B", - "ns": 673.9022383066589, - "ns_low": 671.1638100917415, - "ns_high": 676.8636670625406, + "ns": 663.2257057224188, + "ns_low": 650.7343036482562, + "ns_high": 679.9771766330341, "throughput": { "Bytes": 1350 } @@ -1388,9 +1498,9 @@ "operation": "aes256-gcm-open/{lib}/1350B", "library": "openssl", "id": "aes256-gcm-open/openssl/1350B", - "ns": 225.05885655444112, - "ns_low": 224.23257160737532, - "ns_high": 226.03353048692918, + "ns": 223.72659071522145, + "ns_low": 221.6969387721822, + "ns_high": 227.15322523842516, "throughput": { "Bytes": 1350 } @@ -1399,9 +1509,20 @@ "operation": "aes256-gcm-open/{lib}/1350B", "library": "rind", "id": "aes256-gcm-open/rind/1350B", - "ns": 233.44670650900895, - "ns_low": 232.47968183642647, - "ns_high": 234.61554521437475, + "ns": 230.5043286352889, + "ns_low": 229.618578188076, + "ns_high": 231.39204515383568, + "throughput": { + "Bytes": 1350 + } + }, + { + "operation": "aes256-gcm-open/{lib}/1350B", + "library": "rind-dit-held", + "id": "aes256-gcm-open/rind-dit-held/1350B", + "ns": 196.68958369341146, + "ns_low": 195.98257341065076, + "ns_high": 197.4414058241363, "throughput": { "Bytes": 1350 } @@ -1410,9 +1531,9 @@ "operation": "aes256-gcm-open/{lib}/1350B", "library": "ring", "id": "aes256-gcm-open/ring/1350B", - "ns": 251.67222411423862, - "ns_low": 250.47859060326672, - "ns_high": 253.23893513968807, + "ns": 246.73622717744198, + "ns_low": 245.52738349997298, + "ns_high": 247.89088981613017, "throughput": { "Bytes": 1350 } @@ -1421,9 +1542,9 @@ "operation": "aes256-gcm-open/{lib}/1350B", "library": "rustcrypto", "id": "aes256-gcm-open/rustcrypto/1350B", - "ns": 267.1556515169751, - "ns_low": 266.22539261437424, - "ns_high": 268.01441120301143, + "ns": 277.79445373680284, + "ns_low": 272.29150254511785, + "ns_high": 284.90765710933624, "throughput": { "Bytes": 1350 } @@ -1432,9 +1553,9 @@ "operation": "aes256-gcm-open/{lib}/16KB", "library": "aws-lc-rs", "id": "aes256-gcm-open/aws-lc-rs/16KB", - "ns": 1834.376588759416, - "ns_low": 1828.7939762234041, - "ns_high": 1841.3100267646535, + "ns": 1816.3197159097053, + "ns_low": 1811.7780663249393, + "ns_high": 1821.29200784918, "throughput": { "Bytes": 16384 } @@ -1443,9 +1564,9 @@ "operation": "aes256-gcm-open/{lib}/16KB", "library": "graviola", "id": "aes256-gcm-open/graviola/16KB", - "ns": 2175.7322785424944, - "ns_low": 2168.773680519793, - "ns_high": 2182.4291987245124, + "ns": 2194.2861302289434, + "ns_low": 2183.2055040763094, + "ns_high": 2208.3880928564317, "throughput": { "Bytes": 16384 } @@ -1454,9 +1575,9 @@ "operation": "aes256-gcm-open/{lib}/16KB", "library": "libcrux", "id": "aes256-gcm-open/libcrux/16KB", - "ns": 7352.989459340627, - "ns_low": 7318.1193231802445, - "ns_high": 7394.130570761572, + "ns": 7061.0055906605585, + "ns_low": 7024.792038322341, + "ns_high": 7111.463098780894, "throughput": { "Bytes": 16384 } @@ -1465,9 +1586,9 @@ "operation": "aes256-gcm-open/{lib}/16KB", "library": "openssl", "id": "aes256-gcm-open/openssl/16KB", - "ns": 1942.997508952559, - "ns_low": 1920.6352989143104, - "ns_high": 1980.7872048093539, + "ns": 1934.9325615429348, + "ns_low": 1913.310283355018, + "ns_high": 1965.2174257922113, "throughput": { "Bytes": 16384 } @@ -1476,9 +1597,20 @@ "operation": "aes256-gcm-open/{lib}/16KB", "library": "rind", "id": "aes256-gcm-open/rind/16KB", - "ns": 1860.2439324429026, - "ns_low": 1844.876489310154, - "ns_high": 1884.1800629961758, + "ns": 1844.097860424218, + "ns_low": 1828.5760624720913, + "ns_high": 1864.8511104357633, + "throughput": { + "Bytes": 16384 + } + }, + { + "operation": "aes256-gcm-open/{lib}/16KB", + "library": "rind-dit-held", + "id": "aes256-gcm-open/rind-dit-held/16KB", + "ns": 1810.1057757052654, + "ns_low": 1803.4919883809182, + "ns_high": 1816.2703986644724, "throughput": { "Bytes": 16384 } @@ -1487,9 +1619,9 @@ "operation": "aes256-gcm-open/{lib}/16KB", "library": "ring", "id": "aes256-gcm-open/ring/16KB", - "ns": 2251.528392816415, - "ns_low": 2231.0530900255567, - "ns_high": 2285.926365095903, + "ns": 2226.9540700569632, + "ns_low": 2218.793709132568, + "ns_high": 2234.341172171038, "throughput": { "Bytes": 16384 } @@ -1498,9 +1630,9 @@ "operation": "aes256-gcm-open/{lib}/16KB", "library": "rustcrypto", "id": "aes256-gcm-open/rustcrypto/16KB", - "ns": 2893.0536353525376, - "ns_low": 2863.1643791353135, - "ns_high": 2943.819177600657, + "ns": 2774.2571486281004, + "ns_low": 2765.4130832040128, + "ns_high": 2784.0746374451346, "throughput": { "Bytes": 16384 } @@ -1509,9 +1641,9 @@ "operation": "chacha20poly1305/{lib}/32B", "library": "aws-lc-rs", "id": "chacha20poly1305/aws-lc-rs/32B", - "ns": 162.991821342259, - "ns_low": 160.72018090461313, - "ns_high": 166.03150187631948, + "ns": 156.82502414329343, + "ns_low": 155.97297541825614, + "ns_high": 157.88232681708513, "throughput": { "Bytes": 32 } @@ -1520,9 +1652,9 @@ "operation": "chacha20poly1305/{lib}/32B", "library": "graviola", "id": "chacha20poly1305/graviola/32B", - "ns": 195.76796670680667, - "ns_low": 194.09893572642153, - "ns_high": 198.8834867006896, + "ns": 193.4348438899373, + "ns_low": 192.4129325644396, + "ns_high": 194.95405407185956, "throughput": { "Bytes": 32 } @@ -1531,9 +1663,9 @@ "operation": "chacha20poly1305/{lib}/32B", "library": "libcrux", "id": "chacha20poly1305/libcrux/32B", - "ns": 171.2280512389261, - "ns_low": 170.56247197849504, - "ns_high": 172.0471560584482, + "ns": 169.92397716752737, + "ns_low": 169.15278995012585, + "ns_high": 170.83467223975478, "throughput": { "Bytes": 32 } @@ -1542,9 +1674,9 @@ "operation": "chacha20poly1305/{lib}/32B", "library": "openssl", "id": "chacha20poly1305/openssl/32B", - "ns": 215.43670294614083, - "ns_low": 212.88037383708976, - "ns_high": 219.08203808360264, + "ns": 216.07736604064993, + "ns_low": 215.24860083742365, + "ns_high": 216.90909649770208, "throughput": { "Bytes": 32 } @@ -1553,9 +1685,20 @@ "operation": "chacha20poly1305/{lib}/32B", "library": "rind", "id": "chacha20poly1305/rind/32B", - "ns": 184.67323354791637, - "ns_low": 183.36753525956223, - "ns_high": 186.1404414282724, + "ns": 178.54641414229792, + "ns_low": 177.7703764102701, + "ns_high": 179.57161605680182, + "throughput": { + "Bytes": 32 + } + }, + { + "operation": "chacha20poly1305/{lib}/32B", + "library": "rind-dit-held", + "id": "chacha20poly1305/rind-dit-held/32B", + "ns": 144.99661678277585, + "ns_low": 144.57330989731378, + "ns_high": 145.53602336456072, "throughput": { "Bytes": 32 } @@ -1564,9 +1707,9 @@ "operation": "chacha20poly1305/{lib}/32B", "library": "ring", "id": "chacha20poly1305/ring/32B", - "ns": 147.9772804291643, - "ns_low": 147.4869490640836, - "ns_high": 148.5365937793471, + "ns": 144.98987540053835, + "ns_low": 144.18703517144084, + "ns_high": 146.24128488521237, "throughput": { "Bytes": 32 } @@ -1575,9 +1718,9 @@ "operation": "chacha20poly1305/{lib}/32B", "library": "rustcrypto", "id": "chacha20poly1305/rustcrypto/32B", - "ns": 344.4724409877305, - "ns_low": 343.1796064021236, - "ns_high": 346.1706944451044, + "ns": 340.18897981571126, + "ns_low": 339.29561497410623, + "ns_high": 341.3190251001768, "throughput": { "Bytes": 32 } @@ -1586,9 +1729,9 @@ "operation": "chacha20poly1305/{lib}/1350B", "library": "aws-lc-rs", "id": "chacha20poly1305/aws-lc-rs/1350B", - "ns": 770.5555734432091, - "ns_low": 767.2616611538327, - "ns_high": 773.6077061185625, + "ns": 758.6948909874541, + "ns_low": 751.2419544759316, + "ns_high": 768.443569805824, "throughput": { "Bytes": 1350 } @@ -1597,9 +1740,9 @@ "operation": "chacha20poly1305/{lib}/1350B", "library": "graviola", "id": "chacha20poly1305/graviola/1350B", - "ns": 1246.4698513826538, - "ns_low": 1235.7590595286333, - "ns_high": 1262.944808761669, + "ns": 1206.8867446099468, + "ns_low": 1200.5556974718174, + "ns_high": 1213.8313251178643, "throughput": { "Bytes": 1350 } @@ -1608,9 +1751,9 @@ "operation": "chacha20poly1305/{lib}/1350B", "library": "libcrux", "id": "chacha20poly1305/libcrux/1350B", - "ns": 1978.8333837325433, - "ns_low": 1967.3678683444402, - "ns_high": 1993.8445091662231, + "ns": 1938.72502933449, + "ns_low": 1927.5484146872366, + "ns_high": 1955.7886303494554, "throughput": { "Bytes": 1350 } @@ -1619,9 +1762,9 @@ "operation": "chacha20poly1305/{lib}/1350B", "library": "openssl", "id": "chacha20poly1305/openssl/1350B", - "ns": 841.7634158498398, - "ns_low": 836.1829051791889, - "ns_high": 849.7656090790592, + "ns": 826.046659979804, + "ns_low": 822.2343472599634, + "ns_high": 830.1408027475729, "throughput": { "Bytes": 1350 } @@ -1630,9 +1773,20 @@ "operation": "chacha20poly1305/{lib}/1350B", "library": "rind", "id": "chacha20poly1305/rind/1350B", - "ns": 791.5826534980527, - "ns_low": 788.5373590909071, - "ns_high": 794.7361943244749, + "ns": 772.8405989543643, + "ns_low": 769.1532360810575, + "ns_high": 776.6267700048768, + "throughput": { + "Bytes": 1350 + } + }, + { + "operation": "chacha20poly1305/{lib}/1350B", + "library": "rind-dit-held", + "id": "chacha20poly1305/rind-dit-held/1350B", + "ns": 741.085964002363, + "ns_low": 735.0155408244957, + "ns_high": 749.9327396831483, "throughput": { "Bytes": 1350 } @@ -1641,9 +1795,9 @@ "operation": "chacha20poly1305/{lib}/1350B", "library": "ring", "id": "chacha20poly1305/ring/1350B", - "ns": 754.5402989045286, - "ns_low": 751.9528401165477, - "ns_high": 757.2720823870424, + "ns": 740.7987260163288, + "ns_low": 735.0482430173347, + "ns_high": 749.3517682581838, "throughput": { "Bytes": 1350 } @@ -1652,9 +1806,9 @@ "operation": "chacha20poly1305/{lib}/1350B", "library": "rustcrypto", "id": "chacha20poly1305/rustcrypto/1350B", - "ns": 1779.6406622493632, - "ns_low": 1774.4829714353882, - "ns_high": 1785.2459960639667, + "ns": 1754.1719231168581, + "ns_low": 1734.3571496633976, + "ns_high": 1784.6377689554222, "throughput": { "Bytes": 1350 } @@ -1663,9 +1817,9 @@ "operation": "chacha20poly1305/{lib}/16KB", "library": "aws-lc-rs", "id": "chacha20poly1305/aws-lc-rs/16KB", - "ns": 7650.583873928151, - "ns_low": 7625.627811457704, - "ns_high": 7676.102818337311, + "ns": 7498.869139980789, + "ns_low": 7461.643676292302, + "ns_high": 7543.843656988863, "throughput": { "Bytes": 16384 } @@ -1674,9 +1828,9 @@ "operation": "chacha20poly1305/{lib}/16KB", "library": "graviola", "id": "chacha20poly1305/graviola/16KB", - "ns": 12845.190994783823, - "ns_low": 12719.588663373823, - "ns_high": 13037.736909227306, + "ns": 12562.722587372544, + "ns_low": 12450.58593142377, + "ns_high": 12716.535859693504, "throughput": { "Bytes": 16384 } @@ -1685,9 +1839,9 @@ "operation": "chacha20poly1305/{lib}/16KB", "library": "libcrux", "id": "chacha20poly1305/libcrux/16KB", - "ns": 22068.70410784362, - "ns_low": 21973.64633254594, - "ns_high": 22165.31570459187, + "ns": 22123.0659329316, + "ns_low": 22002.589229924826, + "ns_high": 22256.40939369907, "throughput": { "Bytes": 16384 } @@ -1696,9 +1850,9 @@ "operation": "chacha20poly1305/{lib}/16KB", "library": "openssl", "id": "chacha20poly1305/openssl/16KB", - "ns": 7453.47947479325, - "ns_low": 7421.320057537435, - "ns_high": 7491.687790423887, + "ns": 7367.829055526821, + "ns_low": 7334.721815092229, + "ns_high": 7403.597569043632, "throughput": { "Bytes": 16384 } @@ -1707,9 +1861,20 @@ "operation": "chacha20poly1305/{lib}/16KB", "library": "rind", "id": "chacha20poly1305/rind/16KB", - "ns": 7704.975628436763, - "ns_low": 7675.365843622123, - "ns_high": 7732.83775930118, + "ns": 7600.775702342249, + "ns_low": 7509.057118771347, + "ns_high": 7730.4067051951415, + "throughput": { + "Bytes": 16384 + } + }, + { + "operation": "chacha20poly1305/{lib}/16KB", + "library": "rind-dit-held", + "id": "chacha20poly1305/rind-dit-held/16KB", + "ns": 7500.009003435792, + "ns_low": 7465.43133816917, + "ns_high": 7540.813641714237, "throughput": { "Bytes": 16384 } @@ -1718,9 +1883,9 @@ "operation": "chacha20poly1305/{lib}/16KB", "library": "ring", "id": "chacha20poly1305/ring/16KB", - "ns": 7671.631469871934, - "ns_low": 7625.414399023004, - "ns_high": 7721.35045969946, + "ns": 7566.627792079208, + "ns_low": 7483.981953830072, + "ns_high": 7673.800455631189, "throughput": { "Bytes": 16384 } @@ -1729,9 +1894,9 @@ "operation": "chacha20poly1305/{lib}/16KB", "library": "rustcrypto", "id": "chacha20poly1305/rustcrypto/16KB", - "ns": 15207.060886201134, - "ns_low": 15137.947174247794, - "ns_high": 15294.725937935695, + "ns": 14970.944335894783, + "ns_low": 14883.447352270778, + "ns_high": 15067.342382492612, "throughput": { "Bytes": 16384 } @@ -1740,9 +1905,9 @@ "operation": "xchacha20poly1305/{lib}/32B", "library": "aws-lc-rs", "id": "xchacha20poly1305/aws-lc-rs/32B", - "ns": 942.9103345922407, - "ns_low": 936.077340038374, - "ns_high": 949.8060845520748, + "ns": 870.5694572603763, + "ns_low": 861.5281444814103, + "ns_high": 881.5070868489429, "throughput": { "Bytes": 32 } @@ -1751,9 +1916,9 @@ "operation": "xchacha20poly1305/{lib}/32B", "library": "graviola", "id": "xchacha20poly1305/graviola/32B", - "ns": 1107.6796025102065, - "ns_low": 1085.3427154627814, - "ns_high": 1129.706645825177, + "ns": 905.4052495597368, + "ns_low": 898.9013628626668, + "ns_high": 914.3491698398738, "throughput": { "Bytes": 32 } @@ -1762,9 +1927,9 @@ "operation": "xchacha20poly1305/{lib}/32B", "library": "libcrux", "id": "xchacha20poly1305/libcrux/32B", - "ns": 1109.941822577766, - "ns_low": 1095.67119015643, - "ns_high": 1123.9262737159015, + "ns": 899.69902584193, + "ns_low": 892.9241269181293, + "ns_high": 908.854086556695, "throughput": { "Bytes": 32 } @@ -1773,9 +1938,9 @@ "operation": "xchacha20poly1305/{lib}/32B", "library": "rind", "id": "xchacha20poly1305/rind/32B", - "ns": 1188.0896045919696, - "ns_low": 1160.3480451252874, - "ns_high": 1217.2634757672079, + "ns": 896.8087247809358, + "ns_low": 881.5094498684407, + "ns_high": 916.9204274939342, "throughput": { "Bytes": 32 } @@ -1784,9 +1949,9 @@ "operation": "xchacha20poly1305/{lib}/32B", "library": "rustcrypto", "id": "xchacha20poly1305/rustcrypto/32B", - "ns": 1526.8386402342949, - "ns_low": 1493.2363498417646, - "ns_high": 1565.5073486770243, + "ns": 1056.9760977064277, + "ns_low": 1050.2397023271142, + "ns_high": 1064.8227079957574, "throughput": { "Bytes": 32 } @@ -1795,9 +1960,9 @@ "operation": "xchacha20poly1305/{lib}/1350B", "library": "aws-lc-rs", "id": "xchacha20poly1305/aws-lc-rs/1350B", - "ns": 1885.652252337613, - "ns_low": 1849.949957478523, - "ns_high": 1924.1551901428745, + "ns": 1446.5773162934868, + "ns_low": 1439.0949586284194, + "ns_high": 1454.4679988538337, "throughput": { "Bytes": 1350 } @@ -1806,9 +1971,9 @@ "operation": "xchacha20poly1305/{lib}/1350B", "library": "graviola", "id": "xchacha20poly1305/graviola/1350B", - "ns": 2848.489052326365, - "ns_low": 2791.8806743335476, - "ns_high": 2899.6627436170193, + "ns": 1939.3436331998216, + "ns_low": 1925.4184785585353, + "ns_high": 1955.9392464358439, "throughput": { "Bytes": 1350 } @@ -1817,9 +1982,9 @@ "operation": "xchacha20poly1305/{lib}/1350B", "library": "libcrux", "id": "xchacha20poly1305/libcrux/1350B", - "ns": 3801.668788786456, - "ns_low": 3708.8213345489526, - "ns_high": 3898.9822982208616, + "ns": 2707.9441152790046, + "ns_low": 2684.3753633602305, + "ns_high": 2745.120115341089, "throughput": { "Bytes": 1350 } @@ -1828,9 +1993,9 @@ "operation": "xchacha20poly1305/{lib}/1350B", "library": "rind", "id": "xchacha20poly1305/rind/1350B", - "ns": 2021.6717667109995, - "ns_low": 1978.3296469593815, - "ns_high": 2073.6686883514026, + "ns": 1474.1792574479089, + "ns_low": 1463.8111329627295, + "ns_high": 1485.861964447879, "throughput": { "Bytes": 1350 } @@ -1839,9 +2004,9 @@ "operation": "xchacha20poly1305/{lib}/1350B", "library": "rustcrypto", "id": "xchacha20poly1305/rustcrypto/1350B", - "ns": 3190.2587966982624, - "ns_low": 3130.8878928986965, - "ns_high": 3252.9789110618485, + "ns": 2444.4468967415396, + "ns_low": 2435.117340112757, + "ns_high": 2454.9023979502836, "throughput": { "Bytes": 1350 } @@ -1850,9 +2015,9 @@ "operation": "xchacha20poly1305/{lib}/16KB", "library": "aws-lc-rs", "id": "xchacha20poly1305/aws-lc-rs/16KB", - "ns": 11425.678757510783, - "ns_low": 11262.969774222594, - "ns_high": 11595.033062341745, + "ns": 8308.035252395115, + "ns_low": 8246.817327515118, + "ns_high": 8373.979609167807, "throughput": { "Bytes": 16384 } @@ -1861,9 +2026,9 @@ "operation": "xchacha20poly1305/{lib}/16KB", "library": "graviola", "id": "xchacha20poly1305/graviola/16KB", - "ns": 19236.636271981675, - "ns_low": 18947.374206952376, - "ns_high": 19547.948083646213, + "ns": 13217.856057672932, + "ns_low": 13156.550890870782, + "ns_high": 13301.016230307772, "throughput": { "Bytes": 16384 } @@ -1872,9 +2037,9 @@ "operation": "xchacha20poly1305/{lib}/16KB", "library": "libcrux", "id": "xchacha20poly1305/libcrux/16KB", - "ns": 34196.44834852142, - "ns_low": 33397.36557085185, - "ns_high": 35016.50252914924, + "ns": 22434.145641101422, + "ns_low": 22360.05139272447, + "ns_high": 22507.619641240097, "throughput": { "Bytes": 16384 } @@ -1883,9 +2048,9 @@ "operation": "xchacha20poly1305/{lib}/16KB", "library": "rind", "id": "xchacha20poly1305/rind/16KB", - "ns": 11364.070626399609, - "ns_low": 11182.935168919546, - "ns_high": 11543.348188153997, + "ns": 8230.331355688439, + "ns_low": 8193.918615728573, + "ns_high": 8269.094729455986, "throughput": { "Bytes": 16384 } @@ -1894,9 +2059,9 @@ "operation": "xchacha20poly1305/{lib}/16KB", "library": "rustcrypto", "id": "xchacha20poly1305/rustcrypto/16KB", - "ns": 22757.862373623127, - "ns_low": 22259.557019573145, - "ns_high": 23248.556470185682, + "ns": 15592.31772106717, + "ns_low": 15525.110786754602, + "ns_high": 15661.442121419665, "throughput": { "Bytes": 16384 } @@ -1905,90 +2070,117 @@ "operation": "quic-header-protection/aes128/{lib}", "library": "aws-lc-rs", "id": "quic-header-protection/aes128/aws-lc-rs", - "ns": 2.8422866829984748, - "ns_low": 2.8280073433085753, - "ns_high": 2.8590071276409295, + "ns": 2.8224564945106345, + "ns_low": 2.817124893208115, + "ns_high": 2.829085508256552, "throughput": null }, { "operation": "quic-header-protection/aes128/{lib}", "library": "rind", "id": "quic-header-protection/aes128/rind", - "ns": 34.800469413175875, - "ns_low": 34.68926765568297, - "ns_high": 34.9184163852948, + "ns": 34.39457205341077, + "ns_low": 34.2606304088051, + "ns_high": 34.51742641674354, + "throughput": null + }, + { + "operation": "quic-header-protection/aes128/{lib}", + "library": "rind-dit-held", + "id": "quic-header-protection/aes128/rind-dit-held", + "ns": 2.8124206844376203, + "ns_low": 2.7850677270309476, + "ns_high": 2.8422808214930355, "throughput": null }, { "operation": "quic-header-protection/aes128/{lib}", "library": "ring", "id": "quic-header-protection/aes128/ring", - "ns": 3.27532262860637, - "ns_low": 3.2351014879907, - "ns_high": 3.3166742052765312, + "ns": 3.174105868077328, + "ns_low": 3.1367079544137266, + "ns_high": 3.233156966843456, "throughput": null }, { "operation": "quic-header-protection/aes256/{lib}", "library": "aws-lc-rs", "id": "quic-header-protection/aes256/aws-lc-rs", - "ns": 2.9954737140824856, - "ns_low": 2.987108629182992, - "ns_high": 3.004566124396791, + "ns": 3.002865201930444, + "ns_low": 2.990700481225502, + "ns_high": 3.018494795373697, "throughput": null }, { "operation": "quic-header-protection/aes256/{lib}", "library": "rind", "id": "quic-header-protection/aes256/rind", - "ns": 37.81433898139269, - "ns_low": 37.69965380064352, - "ns_high": 37.939520553142565, + "ns": 38.302004906346035, + "ns_low": 38.05926060515305, + "ns_high": 38.631903342506035, + "throughput": null + }, + { + "operation": "quic-header-protection/aes256/{lib}", + "library": "rind-dit-held", + "id": "quic-header-protection/aes256/rind-dit-held", + "ns": 2.9116757067702506, + "ns_low": 2.875707916487725, + "ns_high": 2.9459061591670945, "throughput": null }, { "operation": "quic-header-protection/aes256/{lib}", "library": "ring", "id": "quic-header-protection/aes256/ring", - "ns": 3.9194014562356223, - "ns_low": 3.8863814118147255, - "ns_high": 3.9506646036152944, + "ns": 3.885372834716827, + "ns_low": 3.815763343233347, + "ns_high": 3.9878777447801514, "throughput": null }, { "operation": "quic-header-protection/chacha20/{lib}", "library": "aws-lc-rs", "id": "quic-header-protection/chacha20/aws-lc-rs", - "ns": 73.05233030515828, - "ns_low": 72.79720129360071, - "ns_high": 73.37888344731886, + "ns": 72.45433722586256, + "ns_low": 72.1931799057521, + "ns_high": 72.71024168838727, "throughput": null }, { "operation": "quic-header-protection/chacha20/{lib}", "library": "rind", "id": "quic-header-protection/chacha20/rind", - "ns": 88.58194004489343, - "ns_low": 87.66862240363868, - "ns_high": 90.08315150880857, + "ns": 87.52567755238984, + "ns_low": 86.93266724507326, + "ns_high": 88.2438452836332, + "throughput": null + }, + { + "operation": "quic-header-protection/chacha20/{lib}", + "library": "rind-dit-held", + "id": "quic-header-protection/chacha20/rind-dit-held", + "ns": 57.81215656633907, + "ns_low": 57.59283824486023, + "ns_high": 58.02992065514514, "throughput": null }, { "operation": "quic-header-protection/chacha20/{lib}", "library": "ring", "id": "quic-header-protection/chacha20/ring", - "ns": 68.49958967736826, - "ns_low": 67.95632888927472, - "ns_high": 69.40151316801492, + "ns": 67.37909630635097, + "ns_low": 67.13123258194837, + "ns_high": 67.65795983211655, "throughput": null }, { "operation": "x25519-ecdh/{lib}", "library": "aws-lc-rs", "id": "x25519-ecdh/aws-lc-rs", - "ns": 17847.035085866795, - "ns_low": 17790.416689325495, - "ns_high": 17905.350853074175, + "ns": 18119.87452261644, + "ns_low": 18007.456837555088, + "ns_high": 18245.814428329348, "throughput": { "Elements": 1 } @@ -1997,9 +2189,9 @@ "operation": "x25519-ecdh/{lib}", "library": "graviola", "id": "x25519-ecdh/graviola", - "ns": 17738.382542813983, - "ns_low": 17409.46241633493, - "ns_high": 18130.434112091734, + "ns": 16574.89651544259, + "ns_low": 16486.103441632116, + "ns_high": 16703.737648667782, "throughput": { "Elements": 1 } @@ -2008,9 +2200,9 @@ "operation": "x25519-ecdh/{lib}", "library": "libcrux", "id": "x25519-ecdh/libcrux", - "ns": 37773.05962447518, - "ns_low": 37223.45567192131, - "ns_high": 38559.37230196979, + "ns": 37295.65352205557, + "ns_low": 37161.86075943699, + "ns_high": 37444.041910851956, "throughput": { "Elements": 1 } @@ -2019,9 +2211,9 @@ "operation": "x25519-ecdh/{lib}", "library": "openssl", "id": "x25519-ecdh/openssl", - "ns": 35770.01568650632, - "ns_low": 35682.2067277902, - "ns_high": 35865.83904393075, + "ns": 36212.28886673215, + "ns_low": 36000.7265026789, + "ns_high": 36542.273676483506, "throughput": { "Elements": 1 } @@ -2030,9 +2222,9 @@ "operation": "x25519-ecdh/{lib}", "library": "rind", "id": "x25519-ecdh/rind", - "ns": 16713.53999265114, - "ns_low": 16678.812710743678, - "ns_high": 16749.651799773434, + "ns": 16534.54398313712, + "ns_low": 16489.50769375757, + "ns_high": 16586.82480624599, "throughput": { "Elements": 1 } @@ -2041,9 +2233,9 @@ "operation": "x25519-ecdh/{lib}", "library": "ring", "id": "x25519-ecdh/ring", - "ns": 24483.406164844095, - "ns_low": 24405.21458796733, - "ns_high": 24554.10698764622, + "ns": 24913.90538684794, + "ns_low": 24473.84336206533, + "ns_high": 25574.37992010535, "throughput": { "Elements": 1 } @@ -2052,9 +2244,9 @@ "operation": "x25519-ecdh/{lib}", "library": "rustcrypto", "id": "x25519-ecdh/dalek", - "ns": 29713.58137594207, - "ns_low": 29605.300188465775, - "ns_high": 29821.335693935074, + "ns": 29732.679532732378, + "ns_low": 29624.021096028056, + "ns_high": 29840.61183689088, "throughput": { "Elements": 1 } @@ -2063,9 +2255,9 @@ "operation": "p256-ecdh/{lib}", "library": "aws-lc-rs", "id": "p256-ecdh/aws-lc-rs", - "ns": 28513.197731849945, - "ns_low": 28431.86005362472, - "ns_high": 28604.89065710132, + "ns": 28797.671124434404, + "ns_low": 28588.888107521718, + "ns_high": 29140.68637947338, "throughput": { "Elements": 1 } @@ -2074,9 +2266,9 @@ "operation": "p256-ecdh/{lib}", "library": "graviola", "id": "p256-ecdh/graviola", - "ns": 31558.947381409784, - "ns_low": 31120.53554986409, - "ns_high": 32389.889063433184, + "ns": 31153.248730604402, + "ns_low": 31031.869064676586, + "ns_high": 31270.533225988427, "throughput": { "Elements": 1 } @@ -2085,9 +2277,9 @@ "operation": "p256-ecdh/{lib}", "library": "libcrux", "id": "p256-ecdh/libcrux", - "ns": 183715.65243534802, - "ns_low": 183016.99654356076, - "ns_high": 184496.52893254682, + "ns": 182720.63488104034, + "ns_low": 181812.87100920835, + "ns_high": 184106.4868136786, "throughput": { "Elements": 1 } @@ -2096,9 +2288,9 @@ "operation": "p256-ecdh/{lib}", "library": "openssl", "id": "p256-ecdh/openssl", - "ns": 49960.12465346535, - "ns_low": 49847.431369262355, - "ns_high": 50099.81438854653, + "ns": 50383.4029641397, + "ns_low": 49968.061858102046, + "ns_high": 51011.73258194615, "throughput": { "Elements": 1 } @@ -2107,9 +2299,9 @@ "operation": "p256-ecdh/{lib}", "library": "rind", "id": "p256-ecdh/rind", - "ns": 26267.222099703806, - "ns_low": 26183.425316072346, - "ns_high": 26347.0436547808, + "ns": 26442.616846846267, + "ns_low": 26171.420907044052, + "ns_high": 26974.615909067867, "throughput": { "Elements": 1 } @@ -2118,9 +2310,9 @@ "operation": "p256-ecdh/{lib}", "library": "ring", "id": "p256-ecdh/ring", - "ns": 32314.551384349747, - "ns_low": 32208.720763317466, - "ns_high": 32415.221475054786, + "ns": 32157.90606908138, + "ns_low": 32080.457159797174, + "ns_high": 32245.884245771584, "throughput": { "Elements": 1 } @@ -2129,9 +2321,9 @@ "operation": "p256-ecdh/{lib}", "library": "rustcrypto", "id": "p256-ecdh/p256-rustcrypto", - "ns": 180623.0017940003, - "ns_low": 180121.28497105194, - "ns_high": 181183.68102372086, + "ns": 178427.96274124426, + "ns_low": 177652.949958634, + "ns_high": 179206.22487917775, "throughput": { "Elements": 1 } @@ -2140,9 +2332,9 @@ "operation": "ed25519-sign/{lib}", "library": "aws-lc-rs", "id": "ed25519-sign/aws-lc-rs", - "ns": 4060.201678875777, - "ns_low": 4053.738907144377, - "ns_high": 4068.2990083484146, + "ns": 4073.116638933698, + "ns_low": 4056.403388605122, + "ns_high": 4089.179462204966, "throughput": { "Elements": 1 } @@ -2151,9 +2343,9 @@ "operation": "ed25519-sign/{lib}", "library": "graviola", "id": "ed25519-sign/graviola", - "ns": 4170.564090852254, - "ns_low": 4142.753201553414, - "ns_high": 4215.177404100929, + "ns": 4206.7317206611915, + "ns_low": 4152.625326710686, + "ns_high": 4296.765832903652, "throughput": { "Elements": 1 } @@ -2162,9 +2354,9 @@ "operation": "ed25519-sign/{lib}", "library": "libcrux", "id": "ed25519-sign/libcrux", - "ns": 22115.205362406887, - "ns_low": 22033.719313461264, - "ns_high": 22211.563313093226, + "ns": 22002.144452912242, + "ns_low": 21956.677713063968, + "ns_high": 22058.473456778607, "throughput": { "Elements": 1 } @@ -2173,9 +2365,9 @@ "operation": "ed25519-sign/{lib}", "library": "openssl", "id": "ed25519-sign/openssl", - "ns": 16419.561462982118, - "ns_low": 16339.180559057173, - "ns_high": 16523.875283630612, + "ns": 16559.542641495493, + "ns_low": 16466.08768833643, + "ns_high": 16651.476271928008, "throughput": { "Elements": 1 } @@ -2184,9 +2376,9 @@ "operation": "ed25519-sign/{lib}", "library": "rind", "id": "ed25519-sign/rind", - "ns": 3946.105340098621, - "ns_low": 3935.7523700162947, - "ns_high": 3957.8310895214727, + "ns": 3928.3367340926943, + "ns_low": 3915.6210469341254, + "ns_high": 3945.1356395510766, "throughput": { "Elements": 1 } @@ -2195,9 +2387,9 @@ "operation": "ed25519-sign/{lib}", "library": "ring", "id": "ed25519-sign/ring", - "ns": 7065.520089721125, - "ns_low": 7035.104301235173, - "ns_high": 7103.374001942051, + "ns": 7029.313147645581, + "ns_low": 7012.950065451764, + "ns_high": 7048.039980650953, "throughput": { "Elements": 1 } @@ -2206,9 +2398,9 @@ "operation": "ed25519-sign/{lib}", "library": "rustcrypto", "id": "ed25519-sign/dalek", - "ns": 8656.258643807752, - "ns_low": 8626.222907143729, - "ns_high": 8684.058275678832, + "ns": 8646.604429479195, + "ns_low": 8606.861961701316, + "ns_high": 8692.367791365903, "throughput": { "Elements": 1 } @@ -2217,9 +2409,9 @@ "operation": "ed25519-verify/{lib}", "library": "aws-lc-rs", "id": "ed25519-verify/aws-lc-rs", - "ns": 18516.080874556672, - "ns_low": 18457.541958843027, - "ns_high": 18573.546999816394, + "ns": 18480.606487365156, + "ns_low": 18415.048431986343, + "ns_high": 18553.371508507724, "throughput": { "Elements": 1 } @@ -2228,9 +2420,9 @@ "operation": "ed25519-verify/{lib}", "library": "graviola", "id": "ed25519-verify/graviola", - "ns": 18686.402625128183, - "ns_low": 18621.027223235607, - "ns_high": 18766.679464164292, + "ns": 18943.19942191887, + "ns_low": 18842.313254958895, + "ns_high": 19058.850279750244, "throughput": { "Elements": 1 } @@ -2239,9 +2431,9 @@ "operation": "ed25519-verify/{lib}", "library": "libcrux", "id": "ed25519-verify/libcrux", - "ns": 29566.412671719198, - "ns_low": 29399.023987826964, - "ns_high": 29803.286294272482, + "ns": 29437.374682598325, + "ns_low": 29356.230709026197, + "ns_high": 29526.849034704217, "throughput": { "Elements": 1 } @@ -2250,9 +2442,9 @@ "operation": "ed25519-verify/{lib}", "library": "openssl", "id": "ed25519-verify/openssl", - "ns": 41080.35388956209, - "ns_low": 40958.54557819315, - "ns_high": 41255.450882590194, + "ns": 41286.17418077927, + "ns_low": 40981.6831090505, + "ns_high": 41775.81427286373, "throughput": { "Elements": 1 } @@ -2261,9 +2453,9 @@ "operation": "ed25519-verify/{lib}", "library": "rind", "id": "ed25519-verify/rind", - "ns": 18663.494043704744, - "ns_low": 18575.251889852956, - "ns_high": 18770.364270168222, + "ns": 18807.69500729644, + "ns_low": 18572.467188137147, + "ns_high": 19206.121454032447, "throughput": { "Elements": 1 } @@ -2272,9 +2464,9 @@ "operation": "ed25519-verify/{lib}", "library": "ring", "id": "ed25519-verify/ring", - "ns": 19942.853384562335, - "ns_low": 19901.176253140955, - "ns_high": 19993.717908432463, + "ns": 20224.85665110093, + "ns_low": 20025.903151315353, + "ns_high": 20528.022778479582, "throughput": { "Elements": 1 } @@ -2283,9 +2475,9 @@ "operation": "ed25519-verify/{lib}", "library": "rustcrypto", "id": "ed25519-verify/dalek", - "ns": 18416.52753648499, - "ns_low": 18379.084260125514, - "ns_high": 18462.493525059996, + "ns": 18596.90135738947, + "ns_low": 18410.12373749231, + "ns_high": 18859.006054446036, "throughput": { "Elements": 1 } @@ -2294,9 +2486,9 @@ "operation": "p256-ecdsa-sign/{lib}", "library": "aws-lc-rs", "id": "p256-ecdsa-sign/aws-lc-rs", - "ns": 11268.719351012543, - "ns_low": 11240.422347770855, - "ns_high": 11299.85484433575, + "ns": 11160.390583550892, + "ns_low": 11119.425525936846, + "ns_high": 11204.54162788056, "throughput": { "Elements": 1 } @@ -2305,9 +2497,9 @@ "operation": "p256-ecdsa-sign/{lib}", "library": "graviola", "id": "p256-ecdsa-sign/graviola", - "ns": 8827.71912729596, - "ns_low": 8721.32899537612, - "ns_high": 8979.714958983448, + "ns": 8581.422315004256, + "ns_low": 8552.111506665062, + "ns_high": 8610.987372021818, "throughput": { "Elements": 1 } @@ -2316,9 +2508,9 @@ "operation": "p256-ecdsa-sign/{lib}", "library": "libcrux", "id": "p256-ecdsa-sign/libcrux", - "ns": 67377.40285962925, - "ns_low": 67111.4607987868, - "ns_high": 67700.55011959252, + "ns": 66945.7074065317, + "ns_low": 66524.9985327012, + "ns_high": 67640.51819897252, "throughput": { "Elements": 1 } @@ -2327,9 +2519,9 @@ "operation": "p256-ecdsa-sign/{lib}", "library": "openssl", "id": "p256-ecdsa-sign/openssl", - "ns": 12617.513320218215, - "ns_low": 12484.64051093225, - "ns_high": 12842.23863122576, + "ns": 12433.656889044372, + "ns_low": 12298.71529557298, + "ns_high": 12658.274727446129, "throughput": { "Elements": 1 } @@ -2338,9 +2530,9 @@ "operation": "p256-ecdsa-sign/{lib}", "library": "rind", "id": "p256-ecdsa-sign/rind", - "ns": 7114.70330430591, - "ns_low": 7101.186248652128, - "ns_high": 7131.300165060538, + "ns": 7133.358027101757, + "ns_low": 7106.812880218977, + "ns_high": 7158.2817218579585, "throughput": { "Elements": 1 } @@ -2349,9 +2541,9 @@ "operation": "p256-ecdsa-sign/{lib}", "library": "ring", "id": "p256-ecdsa-sign/ring", - "ns": 11013.241418594596, - "ns_low": 10978.956826522359, - "ns_high": 11046.228933939516, + "ns": 10913.984308126335, + "ns_low": 10862.70489256418, + "ns_high": 10969.835255665821, "throughput": { "Elements": 1 } @@ -2360,9 +2552,9 @@ "operation": "p256-ecdsa-sign/{lib}", "library": "rustcrypto", "id": "p256-ecdsa-sign/rustcrypto", - "ns": 44328.30509995989, - "ns_low": 44164.709980550164, - "ns_high": 44480.07042907031, + "ns": 43982.78809537883, + "ns_low": 43697.20811675601, + "ns_high": 44228.01370296496, "throughput": { "Elements": 1 } @@ -2371,9 +2563,9 @@ "operation": "p256-ecdsa-verify/{lib}", "library": "aws-lc-rs", "id": "p256-ecdsa-verify/aws-lc-rs", - "ns": 27150.10686862716, - "ns_low": 27081.99278985686, - "ns_high": 27238.775584954845, + "ns": 27375.722103389442, + "ns_low": 27206.55130088049, + "ns_high": 27597.36351017881, "throughput": { "Elements": 1 } @@ -2382,9 +2574,9 @@ "operation": "p256-ecdsa-verify/{lib}", "library": "graviola", "id": "p256-ecdsa-verify/graviola", - "ns": 28603.44931593799, - "ns_low": 28232.034642139308, - "ns_high": 29226.623183405325, + "ns": 28178.997641226808, + "ns_low": 28034.869383918303, + "ns_high": 28409.38604906355, "throughput": { "Elements": 1 } @@ -2393,9 +2585,9 @@ "operation": "p256-ecdsa-verify/{lib}", "library": "libcrux", "id": "p256-ecdsa-verify/libcrux", - "ns": 156536.36874390426, - "ns_low": 155372.09597937818, - "ns_high": 158195.85154570593, + "ns": 156181.1296586375, + "ns_low": 154172.73051737138, + "ns_high": 159348.79546368867, "throughput": { "Elements": 1 } @@ -2404,9 +2596,9 @@ "operation": "p256-ecdsa-verify/{lib}", "library": "openssl", "id": "p256-ecdsa-verify/openssl", - "ns": 41899.98518043446, - "ns_low": 41777.39353692064, - "ns_high": 42034.08235534894, + "ns": 41897.571019949755, + "ns_low": 41545.8905052633, + "ns_high": 42498.43039108171, "throughput": { "Elements": 1 } @@ -2415,9 +2607,9 @@ "operation": "p256-ecdsa-verify/{lib}", "library": "rind", "id": "p256-ecdsa-verify/rind", - "ns": 27147.981669734138, - "ns_low": 27062.84179290198, - "ns_high": 27254.648097906316, + "ns": 26252.33116518141, + "ns_low": 25917.679216119486, + "ns_high": 26829.18133237747, "throughput": { "Elements": 1 } @@ -2426,9 +2618,9 @@ "operation": "p256-ecdsa-verify/{lib}", "library": "ring", "id": "p256-ecdsa-verify/ring", - "ns": 29354.205991260107, - "ns_low": 29175.810577174587, - "ns_high": 29613.464463181797, + "ns": 29221.09328083768, + "ns_low": 29056.71525256282, + "ns_high": 29482.62472936085, "throughput": { "Elements": 1 } @@ -2437,9 +2629,9 @@ "operation": "p256-ecdsa-verify/{lib}", "library": "rustcrypto", "id": "p256-ecdsa-verify/rustcrypto", - "ns": 157868.30212206295, - "ns_low": 154440.8300658364, - "ns_high": 162191.72138299907, + "ns": 151686.60569306932, + "ns_low": 150987.8555814126, + "ns_high": 152451.287081969, "throughput": { "Elements": 1 } @@ -2448,9 +2640,9 @@ "operation": "sha256/{lib}/64B", "library": "aws-lc-rs", "id": "sha256/aws-lc-rs/64B", - "ns": 70.73842218488807, - "ns_low": 70.55410366993561, - "ns_high": 70.9476002282405, + "ns": 70.32415830089113, + "ns_low": 70.08974345336438, + "ns_high": 70.58153702395104, "throughput": { "Bytes": 64 } @@ -2459,9 +2651,9 @@ "operation": "sha256/{lib}/64B", "library": "graviola", "id": "sha256/graviola/64B", - "ns": 35.98746023834901, - "ns_low": 35.504532986039706, - "ns_high": 36.772105440121706, + "ns": 35.29174549586164, + "ns_low": 35.111727938229926, + "ns_high": 35.485146786046805, "throughput": { "Bytes": 64 } @@ -2470,9 +2662,9 @@ "operation": "sha256/{lib}/64B", "library": "libcrux", "id": "sha256/libcrux/64B", - "ns": 232.02830810248616, - "ns_low": 229.41240312867635, - "ns_high": 235.62489402813543, + "ns": 224.69178580259438, + "ns_low": 223.81190698059032, + "ns_high": 225.54331973565675, "throughput": { "Bytes": 64 } @@ -2481,9 +2673,9 @@ "operation": "sha256/{lib}/64B", "library": "openssl", "id": "sha256/openssl/64B", - "ns": 161.9148860005248, - "ns_low": 161.1224760298243, - "ns_high": 162.74171364033646, + "ns": 159.1140555437038, + "ns_low": 158.54540519198804, + "ns_high": 159.6806048716859, "throughput": { "Bytes": 64 } @@ -2492,9 +2684,20 @@ "operation": "sha256/{lib}/64B", "library": "rind", "id": "sha256/rind/64B", - "ns": 92.90723485387264, - "ns_low": 92.34609384304315, - "ns_high": 93.61863641024027, + "ns": 89.75554212129019, + "ns_low": 89.37961185670108, + "ns_high": 90.19113678952708, + "throughput": { + "Bytes": 64 + } + }, + { + "operation": "sha256/{lib}/64B", + "library": "rind-dit-held", + "id": "sha256/rind-dit-held/64B", + "ns": 36.57131204369449, + "ns_low": 36.34004570365997, + "ns_high": 36.84702291389983, "throughput": { "Bytes": 64 } @@ -2503,9 +2706,9 @@ "operation": "sha256/{lib}/64B", "library": "ring", "id": "sha256/ring/64B", - "ns": 44.82657034898283, - "ns_low": 44.635158959123785, - "ns_high": 45.01693409720784, + "ns": 44.0059054981848, + "ns_low": 43.83553627008385, + "ns_high": 44.169208765965486, "throughput": { "Bytes": 64 } @@ -2514,9 +2717,9 @@ "operation": "sha256/{lib}/64B", "library": "rustcrypto", "id": "sha256/rustcrypto/64B", - "ns": 37.22892961515555, - "ns_low": 36.9627482743486, - "ns_high": 37.48143312959618, + "ns": 36.215021213239375, + "ns_low": 35.9608973370633, + "ns_high": 36.55142984379784, "throughput": { "Bytes": 64 } @@ -2525,9 +2728,9 @@ "operation": "sha256/{lib}/1350B", "library": "aws-lc-rs", "id": "sha256/aws-lc-rs/1350B", - "ns": 439.6155401970144, - "ns_low": 435.5252037253867, - "ns_high": 445.0350395395323, + "ns": 433.7925322901324, + "ns_low": 433.4009986341338, + "ns_high": 434.3275642108427, "throughput": { "Bytes": 1350 } @@ -2536,9 +2739,9 @@ "operation": "sha256/{lib}/1350B", "library": "graviola", "id": "sha256/graviola/1350B", - "ns": 471.7116786198718, - "ns_low": 471.59122607013, - "ns_high": 471.8727539724247, + "ns": 480.237689733539, + "ns_low": 476.4952657802395, + "ns_high": 484.60700300592964, "throughput": { "Bytes": 1350 } @@ -2547,9 +2750,9 @@ "operation": "sha256/{lib}/1350B", "library": "libcrux", "id": "sha256/libcrux/1350B", - "ns": 2517.1567940002956, - "ns_low": 2507.345639557344, - "ns_high": 2526.981789809229, + "ns": 2457.191230657615, + "ns_low": 2444.1568374569597, + "ns_high": 2473.3236991374997, "throughput": { "Bytes": 1350 } @@ -2558,9 +2761,9 @@ "operation": "sha256/{lib}/1350B", "library": "openssl", "id": "sha256/openssl/1350B", - "ns": 531.0113109925707, - "ns_low": 528.5698271124846, - "ns_high": 533.8160596104116, + "ns": 533.0974161064853, + "ns_low": 524.5610139430144, + "ns_high": 545.060770438903, "throughput": { "Bytes": 1350 } @@ -2569,9 +2772,20 @@ "operation": "sha256/{lib}/1350B", "library": "rind", "id": "sha256/rind/1350B", - "ns": 484.46593281688297, - "ns_low": 483.66209286704486, - "ns_high": 485.8512072986412, + "ns": 484.8992011903775, + "ns_low": 483.6451382641039, + "ns_high": 486.6370323028739, + "throughput": { + "Bytes": 1350 + } + }, + { + "operation": "sha256/{lib}/1350B", + "library": "rind-dit-held", + "id": "sha256/rind-dit-held/1350B", + "ns": 408.75800563142957, + "ns_low": 407.3991459400362, + "ns_high": 410.62683238353685, "throughput": { "Bytes": 1350 } @@ -2580,9 +2794,9 @@ "operation": "sha256/{lib}/1350B", "library": "ring", "id": "sha256/ring/1350B", - "ns": 413.8743984346498, - "ns_low": 410.6897543415085, - "ns_high": 417.61040640918173, + "ns": 409.5397643251492, + "ns_low": 408.57718026393445, + "ns_high": 410.5739011371109, "throughput": { "Bytes": 1350 } @@ -2591,9 +2805,9 @@ "operation": "sha256/{lib}/1350B", "library": "rustcrypto", "id": "sha256/rustcrypto/1350B", - "ns": 475.10802624576854, - "ns_low": 471.360548066692, - "ns_high": 479.56282241880297, + "ns": 473.4798320161379, + "ns_low": 469.96492638664705, + "ns_high": 480.2303989770561, "throughput": { "Bytes": 1350 } @@ -2602,9 +2816,9 @@ "operation": "sha256/{lib}/16KB", "library": "aws-lc-rs", "id": "sha256/aws-lc-rs/16KB", - "ns": 4869.595753718019, - "ns_low": 4859.454330579071, - "ns_high": 4884.663915560097, + "ns": 4860.7042243336155, + "ns_low": 4857.6360540846845, + "ns_high": 4865.239394536105, "throughput": { "Bytes": 16384 } @@ -2613,9 +2827,9 @@ "operation": "sha256/{lib}/16KB", "library": "graviola", "id": "sha256/graviola/16KB", - "ns": 5761.664022007252, - "ns_low": 5734.466271004576, - "ns_high": 5799.414277846623, + "ns": 5793.031021274056, + "ns_low": 5756.122419319045, + "ns_high": 5855.472528386913, "throughput": { "Bytes": 16384 } @@ -2624,9 +2838,9 @@ "operation": "sha256/{lib}/16KB", "library": "libcrux", "id": "sha256/libcrux/16KB", - "ns": 29126.840613059172, - "ns_low": 29027.531805713745, - "ns_high": 29238.384444108226, + "ns": 28996.3705642931, + "ns_low": 28573.746705595895, + "ns_high": 29704.27092913084, "throughput": { "Bytes": 16384 } @@ -2635,9 +2849,9 @@ "operation": "sha256/{lib}/16KB", "library": "openssl", "id": "sha256/openssl/16KB", - "ns": 5165.81749706911, - "ns_low": 5049.583972514792, - "ns_high": 5310.483407316797, + "ns": 4980.656088504373, + "ns_low": 4949.942332588766, + "ns_high": 5032.21862229407, "throughput": { "Bytes": 16384 } @@ -2646,9 +2860,20 @@ "operation": "sha256/{lib}/16KB", "library": "rind", "id": "sha256/rind/16KB", - "ns": 4940.518503364698, - "ns_low": 4921.861774685062, - "ns_high": 4963.539288576333, + "ns": 4933.674193421789, + "ns_low": 4911.259282088627, + "ns_high": 4972.062489636178, + "throughput": { + "Bytes": 16384 + } + }, + { + "operation": "sha256/{lib}/16KB", + "library": "rind-dit-held", + "id": "sha256/rind-dit-held/16KB", + "ns": 5008.42772515111, + "ns_low": 4943.815084218252, + "ns_high": 5074.70059838844, "throughput": { "Bytes": 16384 } @@ -2657,9 +2882,9 @@ "operation": "sha256/{lib}/16KB", "library": "ring", "id": "sha256/ring/16KB", - "ns": 4904.774499658193, - "ns_low": 4845.407979014307, - "ns_high": 5011.609458257092, + "ns": 4836.97662563781, + "ns_low": 4831.795431296681, + "ns_high": 4846.378533072107, "throughput": { "Bytes": 16384 } @@ -2668,9 +2893,9 @@ "operation": "sha256/{lib}/16KB", "library": "rustcrypto", "id": "sha256/rustcrypto/16KB", - "ns": 5688.402077588069, - "ns_low": 5660.937824222838, - "ns_high": 5726.894046988665, + "ns": 5664.698465090769, + "ns_low": 5655.4659434682535, + "ns_high": 5676.053766986538, "throughput": { "Bytes": 16384 } @@ -2679,9 +2904,9 @@ "operation": "sha512/{lib}/64B", "library": "aws-lc-rs", "id": "sha512/aws-lc-rs/64B", - "ns": 107.5604368598598, - "ns_low": 106.86602384927434, - "ns_high": 108.36983742275012, + "ns": 104.75911972741461, + "ns_low": 104.2467374928382, + "ns_high": 105.33279882671731, "throughput": { "Bytes": 64 } @@ -2690,9 +2915,9 @@ "operation": "sha512/{lib}/64B", "library": "graviola", "id": "sha512/graviola/64B", - "ns": 177.3074688624344, - "ns_low": 174.32733084160586, - "ns_high": 182.32986344747243, + "ns": 174.55049129561593, + "ns_low": 173.99579584507944, + "ns_high": 175.1824976209857, "throughput": { "Bytes": 64 } @@ -2701,9 +2926,9 @@ "operation": "sha512/{lib}/64B", "library": "libcrux", "id": "sha512/libcrux/64B", - "ns": 140.82650396295816, - "ns_low": 140.3540246022659, - "ns_high": 141.3168056929639, + "ns": 141.6309418697323, + "ns_low": 140.29467112369184, + "ns_high": 143.71679333125923, "throughput": { "Bytes": 64 } @@ -2712,9 +2937,9 @@ "operation": "sha512/{lib}/64B", "library": "openssl", "id": "sha512/openssl/64B", - "ns": 211.16607187129716, - "ns_low": 210.30737816461894, - "ns_high": 212.13039470148584, + "ns": 205.1409422183589, + "ns_low": 204.11565188062107, + "ns_high": 206.2472787082357, "throughput": { "Bytes": 64 } @@ -2723,9 +2948,20 @@ "operation": "sha512/{lib}/64B", "library": "rind", "id": "sha512/rind/64B", - "ns": 112.9258025448513, - "ns_low": 112.15216802010237, - "ns_high": 113.80593569363256, + "ns": 108.23639756152028, + "ns_low": 107.89797168818289, + "ns_high": 108.62817501852328, + "throughput": { + "Bytes": 64 + } + }, + { + "operation": "sha512/{lib}/64B", + "library": "rind-dit-held", + "id": "sha512/rind-dit-held/64B", + "ns": 75.08930666847348, + "ns_low": 74.85250441166019, + "ns_high": 75.37764309039773, "throughput": { "Bytes": 64 } @@ -2734,9 +2970,9 @@ "operation": "sha512/{lib}/64B", "library": "ring", "id": "sha512/ring/64B", - "ns": 87.61243301168022, - "ns_low": 86.988780864019, - "ns_high": 88.3627778317888, + "ns": 84.3027763773294, + "ns_low": 83.86544797550971, + "ns_high": 84.76326620340362, "throughput": { "Bytes": 64 } @@ -2745,9 +2981,9 @@ "operation": "sha512/{lib}/64B", "library": "rustcrypto", "id": "sha512/rustcrypto/64B", - "ns": 78.67749427620619, - "ns_low": 78.20134862167947, - "ns_high": 79.31742905365255, + "ns": 76.89690215187275, + "ns_low": 76.52535661203143, + "ns_high": 77.35786423451516, "throughput": { "Bytes": 64 } @@ -2756,9 +2992,9 @@ "operation": "sha512/{lib}/1350B", "library": "aws-lc-rs", "id": "sha512/aws-lc-rs/1350B", - "ns": 774.5393817897781, - "ns_low": 771.0785456514917, - "ns_high": 778.410362625961, + "ns": 768.3241811440939, + "ns_low": 764.640132732388, + "ns_high": 772.7192571029636, "throughput": { "Bytes": 1350 } @@ -2767,9 +3003,9 @@ "operation": "sha512/{lib}/1350B", "library": "graviola", "id": "sha512/graviola/1350B", - "ns": 1878.4555215870312, - "ns_low": 1859.1919452889329, - "ns_high": 1914.5879589711312, + "ns": 1865.7716823478572, + "ns_low": 1858.9237803129945, + "ns_high": 1872.5161456091662, "throughput": { "Bytes": 1350 } @@ -2778,9 +3014,9 @@ "operation": "sha512/{lib}/1350B", "library": "libcrux", "id": "sha512/libcrux/1350B", - "ns": 1575.8379452806687, - "ns_low": 1565.759702450602, - "ns_high": 1590.9967191099618, + "ns": 1562.976879539553, + "ns_low": 1550.1869888763101, + "ns_high": 1582.6518521906228, "throughput": { "Bytes": 1350 } @@ -2789,9 +3025,9 @@ "operation": "sha512/{lib}/1350B", "library": "openssl", "id": "sha512/openssl/1350B", - "ns": 877.944340943142, - "ns_low": 872.3188981462666, - "ns_high": 885.1534700486383, + "ns": 892.6857567065447, + "ns_low": 883.7760939228986, + "ns_high": 901.6749725012991, "throughput": { "Bytes": 1350 } @@ -2800,9 +3036,20 @@ "operation": "sha512/{lib}/1350B", "library": "rind", "id": "sha512/rind/1350B", - "ns": 827.2957418148532, - "ns_low": 820.1022846904131, - "ns_high": 836.8091190653689, + "ns": 810.0695215849206, + "ns_low": 808.2460343705701, + "ns_high": 812.5159696396722, + "throughput": { + "Bytes": 1350 + } + }, + { + "operation": "sha512/{lib}/1350B", + "library": "rind-dit-held", + "id": "sha512/rind-dit-held/1350B", + "ns": 730.1034595779082, + "ns_low": 728.7644604289387, + "ns_high": 731.8764402129159, "throughput": { "Bytes": 1350 } @@ -2811,9 +3058,9 @@ "operation": "sha512/{lib}/1350B", "library": "ring", "id": "sha512/ring/1350B", - "ns": 737.3467728258972, - "ns_low": 734.9415057463513, - "ns_high": 740.5352592672191, + "ns": 742.7614440667948, + "ns_low": 734.7962468698162, + "ns_high": 754.2998798985944, "throughput": { "Bytes": 1350 } @@ -2822,9 +3069,9 @@ "operation": "sha512/{lib}/1350B", "library": "rustcrypto", "id": "sha512/rustcrypto/1350B", - "ns": 722.377793084228, - "ns_low": 718.780445187092, - "ns_high": 727.268990685837, + "ns": 723.0342101015636, + "ns_low": 716.4275342954942, + "ns_high": 736.3865794671166, "throughput": { "Bytes": 1350 } @@ -2833,9 +3080,9 @@ "operation": "sha512/{lib}/16KB", "library": "aws-lc-rs", "id": "sha512/aws-lc-rs/16KB", - "ns": 8697.930877137318, - "ns_low": 8682.354427348166, - "ns_high": 8725.963996562341, + "ns": 8911.650822894844, + "ns_low": 8768.468998043703, + "ns_high": 9109.073478306955, "throughput": { "Bytes": 16384 } @@ -2844,9 +3091,9 @@ "operation": "sha512/{lib}/16KB", "library": "graviola", "id": "sha512/graviola/16KB", - "ns": 22109.755024171925, - "ns_low": 21746.091345795445, - "ns_high": 22654.90366402623, + "ns": 21687.2184971731, + "ns_low": 21626.86065123663, + "ns_high": 21752.911251561534, "throughput": { "Bytes": 16384 } @@ -2855,9 +3102,9 @@ "operation": "sha512/{lib}/16KB", "library": "libcrux", "id": "sha512/libcrux/16KB", - "ns": 18405.63718948014, - "ns_low": 18337.84127494249, - "ns_high": 18488.195130571617, + "ns": 18393.899450452507, + "ns_low": 18299.5948067322, + "ns_high": 18512.69523922805, "throughput": { "Bytes": 16384 } @@ -2866,9 +3113,9 @@ "operation": "sha512/{lib}/16KB", "library": "openssl", "id": "sha512/openssl/16KB", - "ns": 8875.222486243796, - "ns_low": 8809.462745530598, - "ns_high": 8960.840442221896, + "ns": 9332.47374029677, + "ns_low": 9196.051023856591, + "ns_high": 9484.238800956235, "throughput": { "Bytes": 16384 } @@ -2877,9 +3124,20 @@ "operation": "sha512/{lib}/16KB", "library": "rind", "id": "sha512/rind/16KB", - "ns": 8773.953978750244, - "ns_low": 8746.268628764026, - "ns_high": 8812.294962986352, + "ns": 8845.975713287748, + "ns_low": 8782.381994440204, + "ns_high": 8923.99576914789, + "throughput": { + "Bytes": 16384 + } + }, + { + "operation": "sha512/{lib}/16KB", + "library": "rind-dit-held", + "id": "sha512/rind-dit-held/16KB", + "ns": 8723.8825048475, + "ns_low": 8669.007767519663, + "ns_high": 8791.032751569996, "throughput": { "Bytes": 16384 } @@ -2888,9 +3146,9 @@ "operation": "sha512/{lib}/16KB", "library": "ring", "id": "sha512/ring/16KB", - "ns": 8691.230595879835, - "ns_low": 8658.294307084521, - "ns_high": 8736.798730234985, + "ns": 8701.448911755011, + "ns_low": 8662.484811382432, + "ns_high": 8750.153154669912, "throughput": { "Bytes": 16384 } @@ -2899,9 +3157,9 @@ "operation": "sha512/{lib}/16KB", "library": "rustcrypto", "id": "sha512/rustcrypto/16KB", - "ns": 8497.22073679361, - "ns_low": 8482.306517359328, - "ns_high": 8514.053979223165, + "ns": 8589.75311976187, + "ns_low": 8525.20398931926, + "ns_high": 8673.839519333536, "throughput": { "Bytes": 16384 } @@ -2910,9 +3168,9 @@ "operation": "hmac-sha256/{lib}/64B", "library": "aws-lc-rs", "id": "hmac-sha256/aws-lc-rs/64B", - "ns": 248.0592037369573, - "ns_low": 246.97378798081914, - "ns_high": 249.4091259838436, + "ns": 245.26224879132326, + "ns_low": 243.99024586181434, + "ns_high": 246.45197975058932, "throughput": { "Bytes": 64 } @@ -2921,9 +3179,9 @@ "operation": "hmac-sha256/{lib}/64B", "library": "graviola", "id": "hmac-sha256/graviola/64B", - "ns": 114.5013940376956, - "ns_low": 113.97583604308919, - "ns_high": 115.08448611816421, + "ns": 111.56371001464255, + "ns_low": 111.06268862125782, + "ns_high": 112.13361849160681, "throughput": { "Bytes": 64 } @@ -2932,9 +3190,9 @@ "operation": "hmac-sha256/{lib}/64B", "library": "libcrux", "id": "hmac-sha256/libcrux/64B", - "ns": 568.4098015110234, - "ns_low": 566.6169438013638, - "ns_high": 570.6382753655339, + "ns": 563.6307050445498, + "ns_low": 560.8339580605402, + "ns_high": 566.362772294518, "throughput": { "Bytes": 64 } @@ -2943,9 +3201,9 @@ "operation": "hmac-sha256/{lib}/64B", "library": "openssl", "id": "hmac-sha256/openssl/64B", - "ns": 2063.203904397272, - "ns_low": 2056.0513072769477, - "ns_high": 2071.3506726213677, + "ns": 2094.635672060225, + "ns_low": 2081.2176302127727, + "ns_high": 2107.4765614451094, "throughput": { "Bytes": 64 } @@ -2954,9 +3212,20 @@ "operation": "hmac-sha256/{lib}/64B", "library": "rind", "id": "hmac-sha256/rind/64B", - "ns": 191.27047315275928, - "ns_low": 190.5605669980721, - "ns_high": 191.99669010850664, + "ns": 189.28173303909784, + "ns_low": 187.3326085329693, + "ns_high": 192.67426517948914, + "throughput": { + "Bytes": 64 + } + }, + { + "operation": "hmac-sha256/{lib}/64B", + "library": "rind-dit-held", + "id": "hmac-sha256/rind-dit-held/64B", + "ns": 109.74123639577842, + "ns_low": 109.0690377103227, + "ns_high": 110.50507662288545, "throughput": { "Bytes": 64 } @@ -2965,9 +3234,9 @@ "operation": "hmac-sha256/{lib}/64B", "library": "ring", "id": "hmac-sha256/ring/64B", - "ns": 136.61023036961836, - "ns_low": 136.0361484628694, - "ns_high": 137.20219545740505, + "ns": 134.0873994885313, + "ns_low": 133.6493950382599, + "ns_high": 134.54406877328344, "throughput": { "Bytes": 64 } @@ -2976,9 +3245,9 @@ "operation": "hmac-sha256/{lib}/64B", "library": "rustcrypto", "id": "hmac-sha256/rustcrypto/64B", - "ns": 101.96073593193124, - "ns_low": 101.22911854585824, - "ns_high": 102.98123781055702, + "ns": 99.42204211376522, + "ns_low": 99.23548957761423, + "ns_high": 99.66944361766956, "throughput": { "Bytes": 64 } @@ -2987,9 +3256,9 @@ "operation": "hmac-sha256/{lib}/1350B", "library": "aws-lc-rs", "id": "hmac-sha256/aws-lc-rs/1350B", - "ns": 619.8677593930101, - "ns_low": 615.1181180308747, - "ns_high": 626.0049931473964, + "ns": 597.0221645466498, + "ns_low": 595.5928495621222, + "ns_high": 598.6665158921971, "throughput": { "Bytes": 1350 } @@ -2998,9 +3267,9 @@ "operation": "hmac-sha256/{lib}/1350B", "library": "graviola", "id": "hmac-sha256/graviola/1350B", - "ns": 556.9399128025182, - "ns_low": 556.2517816354638, - "ns_high": 558.0306175895508, + "ns": 561.8963335065688, + "ns_low": 557.8409878625873, + "ns_high": 567.8436146446764, "throughput": { "Bytes": 1350 } @@ -3009,9 +3278,9 @@ "operation": "hmac-sha256/{lib}/1350B", "library": "libcrux", "id": "hmac-sha256/libcrux/1350B", - "ns": 2860.095617305703, - "ns_low": 2845.388963058907, - "ns_high": 2877.778805173485, + "ns": 2796.4507769616566, + "ns_low": 2784.7927986645172, + "ns_high": 2808.3604277882396, "throughput": { "Bytes": 1350 } @@ -3020,9 +3289,9 @@ "operation": "hmac-sha256/{lib}/1350B", "library": "openssl", "id": "hmac-sha256/openssl/1350B", - "ns": 2429.107230424785, - "ns_low": 2420.2395760081085, - "ns_high": 2437.7460427584438, + "ns": 2410.3365230935706, + "ns_low": 2392.634747080194, + "ns_high": 2431.561200053737, "throughput": { "Bytes": 1350 } @@ -3031,9 +3300,20 @@ "operation": "hmac-sha256/{lib}/1350B", "library": "rind", "id": "hmac-sha256/rind/1350B", - "ns": 559.2917610637388, - "ns_low": 557.8062459753309, - "ns_high": 560.994469786413, + "ns": 559.1974882918098, + "ns_low": 558.1555597883571, + "ns_high": 560.6709553375052, + "throughput": { + "Bytes": 1350 + } + }, + { + "operation": "hmac-sha256/{lib}/1350B", + "library": "rind-dit-held", + "id": "hmac-sha256/rind-dit-held/1350B", + "ns": 487.068294570858, + "ns_low": 486.59066090561623, + "ns_high": 487.7322411127489, "throughput": { "Bytes": 1350 } @@ -3042,9 +3322,9 @@ "operation": "hmac-sha256/{lib}/1350B", "library": "ring", "id": "hmac-sha256/ring/1350B", - "ns": 501.7380164023802, - "ns_low": 500.6948993948034, - "ns_high": 502.96348651094735, + "ns": 502.1719248680047, + "ns_low": 501.1520674185121, + "ns_high": 503.5299973300726, "throughput": { "Bytes": 1350 } @@ -3053,9 +3333,9 @@ "operation": "hmac-sha256/{lib}/1350B", "library": "rustcrypto", "id": "hmac-sha256/rustcrypto/1350B", - "ns": 542.4556122106171, - "ns_low": 540.4479773047259, - "ns_high": 545.1349922047926, + "ns": 544.7066881230398, + "ns_low": 541.0793864147132, + "ns_high": 549.2860194096546, "throughput": { "Bytes": 1350 } @@ -3064,117 +3344,135 @@ "operation": "hkdf-sha256/extract-expand/{lib}", "library": "aws-lc-rs", "id": "hkdf-sha256/extract-expand/aws-lc-rs", - "ns": 330.446551750792, - "ns_low": 329.4796538898032, - "ns_high": 331.51964036612264, + "ns": 329.65862900862766, + "ns_low": 328.57222870973783, + "ns_high": 330.7084337758639, "throughput": null }, { "operation": "hkdf-sha256/extract-expand/{lib}", "library": "libcrux", "id": "hkdf-sha256/extract-expand/libcrux", - "ns": 941.6692975676817, - "ns_low": 933.6641579218402, - "ns_high": 955.8046821025029, + "ns": 936.1168095769948, + "ns_low": 928.2831783335073, + "ns_high": 948.2910815453823, "throughput": null }, { "operation": "hkdf-sha256/extract-expand/{lib}", "library": "openssl", "id": "hkdf-sha256/extract-expand/openssl", - "ns": 2144.9664683196593, - "ns_low": 2135.3517076023772, - "ns_high": 2154.7072828047535, + "ns": 2160.7328722971083, + "ns_low": 2149.6858845604115, + "ns_high": 2172.1453396620923, "throughput": null }, { "operation": "hkdf-sha256/extract-expand/{lib}", "library": "rind", "id": "hkdf-sha256/extract-expand/rind", - "ns": 343.3007871642758, - "ns_low": 341.9725822072688, - "ns_high": 344.71963882298803, + "ns": 338.0450473133294, + "ns_low": 336.38115274289413, + "ns_high": 340.0734334488863, + "throughput": null + }, + { + "operation": "hkdf-sha256/extract-expand/{lib}", + "library": "rind-dit-held", + "id": "hkdf-sha256/extract-expand/rind-dit-held", + "ns": 225.988738336724, + "ns_low": 224.42850421788208, + "ns_high": 228.13196130114508, "throughput": null }, { "operation": "hkdf-sha256/extract-expand/{lib}", "library": "ring", "id": "hkdf-sha256/extract-expand/ring", - "ns": 274.12577411478685, - "ns_low": 272.835730229773, - "ns_high": 275.5123079518952, + "ns": 272.6824267478671, + "ns_low": 271.7943341647275, + "ns_high": 273.7180471258185, "throughput": null }, { "operation": "hkdf-sha256/extract-expand/{lib}", "library": "rustcrypto", "id": "hkdf-sha256/extract-expand/rustcrypto", - "ns": 217.88432531715483, - "ns_low": 215.93869698136157, - "ns_high": 220.98532710630099, + "ns": 211.8131456265796, + "ns_low": 210.90919006787178, + "ns_high": 212.9596550509629, "throughput": null }, { "operation": "hkdf-sha256/expand/{lib}", "library": "aws-lc-rs", "id": "hkdf-sha256/expand/aws-lc-rs", - "ns": 154.3664995694114, - "ns_low": 153.76814085278428, - "ns_high": 154.98947075523293, + "ns": 153.67865599993996, + "ns_low": 152.3875040932256, + "ns_high": 155.5439631886021, "throughput": null }, { "operation": "hkdf-sha256/expand/{lib}", "library": "libcrux", "id": "hkdf-sha256/expand/libcrux", - "ns": 481.42720451325204, - "ns_low": 479.7777586734313, - "ns_high": 483.0303826275618, + "ns": 481.19385488637937, + "ns_low": 477.219067383852, + "ns_high": 487.5995900720644, "throughput": null }, { "operation": "hkdf-sha256/expand/{lib}", "library": "openssl", "id": "hkdf-sha256/expand/openssl", - "ns": 1539.5780745791465, - "ns_low": 1535.2978824528293, - "ns_high": 1544.0068415154637, + "ns": 1548.2686113032798, + "ns_low": 1537.8547145881373, + "ns_high": 1559.077527039363, "throughput": null }, { "operation": "hkdf-sha256/expand/{lib}", "library": "rind", "id": "hkdf-sha256/expand/rind", - "ns": 108.716867907227, - "ns_low": 108.30569016413759, - "ns_high": 109.14323848742129, + "ns": 107.08432410060567, + "ns_low": 106.72689168999979, + "ns_high": 107.46039336119917, + "throughput": null + }, + { + "operation": "hkdf-sha256/expand/{lib}", + "library": "rind-dit-held", + "id": "hkdf-sha256/expand/rind-dit-held", + "ns": 74.11873825998634, + "ns_low": 73.81341268018316, + "ns_high": 74.41628641481304, "throughput": null }, { "operation": "hkdf-sha256/expand/{lib}", "library": "ring", "id": "hkdf-sha256/expand/ring", - "ns": 93.71910115582627, - "ns_low": 93.34097592967879, - "ns_high": 94.12235107106738, + "ns": 92.57386320707919, + "ns_low": 92.20078864222333, + "ns_high": 93.02170940297219, "throughput": null }, { "operation": "hkdf-sha256/expand/{lib}", "library": "rustcrypto", "id": "hkdf-sha256/expand/rustcrypto", - "ns": 70.21676368182439, - "ns_low": 69.57091671667767, - "ns_high": 71.0655217807377, + "ns": 68.77316440431991, + "ns_low": 68.51213932220838, + "ns_high": 69.0616019333118, "throughput": null }, { "operation": "rsa2048-pkcs1-sha256-sign/{lib}", "library": "aws-lc-rs", "id": "rsa2048-pkcs1-sha256-sign/aws-lc-rs", - "ns": 285950.6153371755, - "ns_low": 283202.99721253844, - "ns_high": 290893.3213596697, + "ns": 283822.6210176839, + "ns_low": 282359.13561797293, + "ns_high": 285743.0715005848, "throughput": { "Elements": 1 } @@ -3183,9 +3481,9 @@ "operation": "rsa2048-pkcs1-sha256-sign/{lib}", "library": "graviola", "id": "rsa2048-pkcs1-sha256-sign/graviola", - "ns": 556698.0795581498, - "ns_low": 554480.1910730707, - "ns_high": 559518.6194302478, + "ns": 551435.2627220334, + "ns_low": 549239.4110737029, + "ns_high": 553771.0799501038, "throughput": { "Elements": 1 } @@ -3194,9 +3492,9 @@ "operation": "rsa2048-pkcs1-sha256-sign/{lib}", "library": "openssl", "id": "rsa2048-pkcs1-sha256-sign/openssl", - "ns": 341307.70224619476, - "ns_low": 340192.3706406857, - "ns_high": 342528.9585623864, + "ns": 340402.00488104037, + "ns_low": 339494.41897752794, + "ns_high": 341424.41367945826, "throughput": { "Elements": 1 } @@ -3205,9 +3503,9 @@ "operation": "rsa2048-pkcs1-sha256-sign/{lib}", "library": "rind", "id": "rsa2048-pkcs1-sha256-sign/rind", - "ns": 275121.06581941777, - "ns_low": 273918.8167172235, - "ns_high": 276507.0447781048, + "ns": 275397.47840204916, + "ns_low": 274170.9544849218, + "ns_high": 277055.2024182295, "throughput": { "Elements": 1 } @@ -3216,9 +3514,9 @@ "operation": "rsa2048-pkcs1-sha256-sign/{lib}", "library": "ring", "id": "rsa2048-pkcs1-sha256-sign/ring", - "ns": 322837.10114378604, - "ns_low": 322011.4490747814, - "ns_high": 323702.532368568, + "ns": 323015.9733190483, + "ns_low": 321567.7253031466, + "ns_high": 324869.14152224583, "throughput": { "Elements": 1 } @@ -3227,9 +3525,9 @@ "operation": "rsa2048-pkcs1-sha256-sign/{lib}", "library": "rustcrypto", "id": "rsa2048-pkcs1-sha256-sign/rustcrypto", - "ns": 586341.2654617999, - "ns_low": 584217.6879383405, - "ns_high": 588993.7594862664, + "ns": 588222.4770400473, + "ns_low": 586119.1204588964, + "ns_high": 590508.9361305436, "throughput": { "Elements": 1 } @@ -3238,9 +3536,9 @@ "operation": "rsa2048-pkcs1-sha256-verify/{lib}", "library": "aws-lc-rs", "id": "rsa2048-pkcs1-sha256-verify/aws-lc-rs", - "ns": 9478.200839510528, - "ns_low": 9442.946190585208, - "ns_high": 9514.595901734127, + "ns": 9538.817489825742, + "ns_low": 9507.592119197667, + "ns_high": 9575.202149573506, "throughput": { "Elements": 1 } @@ -3249,9 +3547,9 @@ "operation": "rsa2048-pkcs1-sha256-verify/{lib}", "library": "graviola", "id": "rsa2048-pkcs1-sha256-verify/graviola", - "ns": 18508.133512542485, - "ns_low": 18449.619089096464, - "ns_high": 18567.509442775474, + "ns": 18434.44488704374, + "ns_low": 18365.583951793094, + "ns_high": 18498.894898216306, "throughput": { "Elements": 1 } @@ -3260,9 +3558,9 @@ "operation": "rsa2048-pkcs1-sha256-verify/{lib}", "library": "openssl", "id": "rsa2048-pkcs1-sha256-verify/openssl", - "ns": 16664.569021066287, - "ns_low": 16610.411897698814, - "ns_high": 16723.099417285455, + "ns": 16810.763400735595, + "ns_low": 16607.157489093617, + "ns_high": 17075.89687190522, "throughput": { "Elements": 1 } @@ -3271,9 +3569,9 @@ "operation": "rsa2048-pkcs1-sha256-verify/{lib}", "library": "rind", "id": "rsa2048-pkcs1-sha256-verify/rind", - "ns": 8379.928772802654, - "ns_low": 8358.019308119125, - "ns_high": 8404.840583992373, + "ns": 8409.532015500057, + "ns_low": 8355.167579060915, + "ns_high": 8512.883387144431, "throughput": { "Elements": 1 } @@ -3282,9 +3580,9 @@ "operation": "rsa2048-pkcs1-sha256-verify/{lib}", "library": "ring", "id": "rsa2048-pkcs1-sha256-verify/ring", - "ns": 11045.785739016688, - "ns_low": 10980.541165811024, - "ns_high": 11131.069916752025, + "ns": 11009.06330453941, + "ns_low": 10967.775139190098, + "ns_high": 11059.139647282613, "throughput": { "Elements": 1 } @@ -3293,9 +3591,9 @@ "operation": "rsa2048-pkcs1-sha256-verify/{lib}", "library": "rustcrypto", "id": "rsa2048-pkcs1-sha256-verify/rustcrypto", - "ns": 30773.740343431356, - "ns_low": 30652.004038836563, - "ns_high": 30890.222854332886, + "ns": 30967.695657159747, + "ns_low": 30655.634541152616, + "ns_high": 31465.329301653477, "throughput": { "Elements": 1 } @@ -3304,9 +3602,9 @@ "operation": "rsa2048-pss-sha256-sign/{lib}", "library": "aws-lc-rs", "id": "rsa2048-pss-sha256-sign/aws-lc-rs", - "ns": 288576.60732180683, - "ns_low": 285134.1103280227, - "ns_high": 294179.89632405224, + "ns": 285360.42448746366, + "ns_low": 284503.5087655991, + "ns_high": 286249.27021217014, "throughput": { "Elements": 1 } @@ -3315,9 +3613,9 @@ "operation": "rsa2048-pss-sha256-sign/{lib}", "library": "graviola", "id": "rsa2048-pss-sha256-sign/graviola", - "ns": 558566.9758977391, - "ns_low": 556370.2034577085, - "ns_high": 561198.5495016302, + "ns": 551491.2202231417, + "ns_low": 548996.7065387924, + "ns_high": 554741.5337152662, "throughput": { "Elements": 1 } @@ -3326,9 +3624,9 @@ "operation": "rsa2048-pss-sha256-sign/{lib}", "library": "libcrux", "id": "rsa2048-pss-sha256-sign/libcrux", - "ns": 4482541.961428572, - "ns_low": 4462534.073428573, - "ns_high": 4511536.617750002, + "ns": 4467537.258571428, + "ns_low": 4455564.784214284, + "ns_high": 4480841.2347142855, "throughput": { "Elements": 1 } @@ -3337,9 +3635,9 @@ "operation": "rsa2048-pss-sha256-sign/{lib}", "library": "openssl", "id": "rsa2048-pss-sha256-sign/openssl", - "ns": 342610.8552135363, - "ns_low": 341230.0242431014, - "ns_high": 344182.6252258543, + "ns": 341811.2497546919, + "ns_low": 340283.5707847026, + "ns_high": 344163.66693452257, "throughput": { "Elements": 1 } @@ -3348,9 +3646,9 @@ "operation": "rsa2048-pss-sha256-sign/{lib}", "library": "rind", "id": "rsa2048-pss-sha256-sign/rind", - "ns": 275288.9187931629, - "ns_low": 274552.0246351682, - "ns_high": 276118.43303847685, + "ns": 275822.7496280971, + "ns_low": 274941.7773661112, + "ns_high": 276706.0824793661, "throughput": { "Elements": 1 } @@ -3359,9 +3657,9 @@ "operation": "rsa2048-pss-sha256-sign/{lib}", "library": "ring", "id": "rsa2048-pss-sha256-sign/ring", - "ns": 324862.87911925523, - "ns_low": 323721.0683300785, - "ns_high": 326061.8424778098, + "ns": 323170.4740904389, + "ns_low": 322229.03692775435, + "ns_high": 324149.1039501775, "throughput": { "Elements": 1 } @@ -3370,9 +3668,9 @@ "operation": "rsa2048-pss-sha256-sign/{lib}", "library": "rustcrypto", "id": "rsa2048-pss-sha256-sign/rustcrypto", - "ns": 588377.2218235555, - "ns_low": 585895.866874921, - "ns_high": 591240.8012737636, + "ns": 589957.4370858578, + "ns_low": 587309.3202233526, + "ns_high": 593120.8930004863, "throughput": { "Elements": 1 } @@ -3381,9 +3679,9 @@ "operation": "rsa2048-pss-sha256-verify/{lib}", "library": "aws-lc-rs", "id": "rsa2048-pss-sha256-verify/aws-lc-rs", - "ns": 9843.506951817766, - "ns_low": 9802.829693201791, - "ns_high": 9889.791274979469, + "ns": 9889.631911130922, + "ns_low": 9842.503984326398, + "ns_high": 9952.754603168427, "throughput": { "Elements": 1 } @@ -3392,9 +3690,9 @@ "operation": "rsa2048-pss-sha256-verify/{lib}", "library": "graviola", "id": "rsa2048-pss-sha256-verify/graviola", - "ns": 18794.98291488104, - "ns_low": 18756.893026521306, - "ns_high": 18841.40453998714, + "ns": 18774.058877364416, + "ns_low": 18617.852092996873, + "ns_high": 19073.79757795002, "throughput": { "Elements": 1 } @@ -3403,9 +3701,9 @@ "operation": "rsa2048-pss-sha256-verify/{lib}", "library": "libcrux", "id": "rsa2048-pss-sha256-verify/libcrux", - "ns": 299958.5162405793, - "ns_low": 298953.6751752861, - "ns_high": 300846.5470855981, + "ns": 297718.9191606325, + "ns_low": 296772.2852429509, + "ns_high": 298635.63271011907, "throughput": { "Elements": 1 } @@ -3414,9 +3712,9 @@ "operation": "rsa2048-pss-sha256-verify/{lib}", "library": "openssl", "id": "rsa2048-pss-sha256-verify/openssl", - "ns": 17443.715759927378, - "ns_low": 17365.354290773226, - "ns_high": 17546.022850240366, + "ns": 17465.844719457873, + "ns_low": 17412.10303868046, + "ns_high": 17529.77338883786, "throughput": { "Elements": 1 } @@ -3425,9 +3723,9 @@ "operation": "rsa2048-pss-sha256-verify/{lib}", "library": "rind", "id": "rsa2048-pss-sha256-verify/rind", - "ns": 8710.53774609518, - "ns_low": 8682.614855041722, - "ns_high": 8746.570905822502, + "ns": 8742.133543346548, + "ns_low": 8689.22141967824, + "ns_high": 8818.262738336653, "throughput": { "Elements": 1 } @@ -3436,9 +3734,9 @@ "operation": "rsa2048-pss-sha256-verify/{lib}", "library": "ring", "id": "rsa2048-pss-sha256-verify/ring", - "ns": 11476.344666653655, - "ns_low": 11392.219805467827, - "ns_high": 11614.030129212984, + "ns": 11431.395340680452, + "ns_low": 11390.998517083484, + "ns_high": 11472.14198444555, "throughput": { "Elements": 1 } @@ -3447,9 +3745,9 @@ "operation": "rsa2048-pss-sha256-verify/{lib}", "library": "rustcrypto", "id": "rsa2048-pss-sha256-verify/rustcrypto", - "ns": 39259.44720740357, - "ns_low": 38815.14621815398, - "ns_high": 40074.86305369196, + "ns": 38875.21373873208, + "ns_low": 38757.360389900256, + "ns_high": 38995.9924165327, "throughput": { "Elements": 1 } @@ -3458,9 +3756,9 @@ "operation": "mlkem768-keygen/{lib}", "library": "aws-lc-rs", "id": "mlkem768-keygen/aws-lc-rs", - "ns": 7457.927221493735, - "ns_low": 7421.661420079343, - "ns_high": 7492.721332695631, + "ns": 7310.531183426925, + "ns_low": 7275.912151398319, + "ns_high": 7345.292858404003, "throughput": { "Elements": 1 } @@ -3469,9 +3767,9 @@ "operation": "mlkem768-keygen/{lib}", "library": "graviola", "id": "mlkem768-keygen/graviola", - "ns": 6220.5500850635435, - "ns_low": 6184.892941594129, - "ns_high": 6266.431878737287, + "ns": 6110.241329199627, + "ns_low": 6088.044110120676, + "ns_high": 6135.220350778823, "throughput": { "Elements": 1 } @@ -3480,9 +3778,9 @@ "operation": "mlkem768-keygen/{lib}", "library": "libcrux", "id": "mlkem768-keygen/libcrux-ml-kem", - "ns": 12014.163751677257, - "ns_low": 11976.327378212092, - "ns_high": 12053.973991708846, + "ns": 11766.910832510714, + "ns_low": 11727.002005493616, + "ns_high": 11807.671674011512, "throughput": { "Elements": 1 } @@ -3491,9 +3789,9 @@ "operation": "mlkem768-keygen/{lib}", "library": "openssl", "id": "mlkem768-keygen/openssl", - "ns": 25056.32156630215, - "ns_low": 24971.88404415623, - "ns_high": 25143.794529767314, + "ns": 24902.130620043346, + "ns_low": 24842.562547828762, + "ns_high": 24971.71146936303, "throughput": { "Elements": 1 } @@ -3502,9 +3800,9 @@ "operation": "mlkem768-keygen/{lib}", "library": "rind", "id": "mlkem768-keygen/rind", - "ns": 6197.6894108309125, - "ns_low": 6180.9578066060085, - "ns_high": 6216.531481057873, + "ns": 6110.127456215535, + "ns_low": 6082.875029242968, + "ns_high": 6137.375036191781, "throughput": { "Elements": 1 } @@ -3513,9 +3811,9 @@ "operation": "mlkem768-keygen/{lib}", "library": "rustcrypto", "id": "mlkem768-keygen/rustcrypto", - "ns": 26572.111129072673, - "ns_low": 26490.49518979583, - "ns_high": 26649.498115009694, + "ns": 26285.603558445397, + "ns_low": 26179.639829345757, + "ns_high": 26394.781804219132, "throughput": { "Elements": 1 } @@ -3524,9 +3822,9 @@ "operation": "mlkem768-encaps/{lib}", "library": "aws-lc-rs", "id": "mlkem768-encaps/aws-lc-rs", - "ns": 8012.388847529611, - "ns_low": 7966.256139688243, - "ns_high": 8061.279275310415, + "ns": 7908.032642739922, + "ns_low": 7841.006407055412, + "ns_high": 7994.714316230845, "throughput": { "Elements": 1 } @@ -3535,9 +3833,9 @@ "operation": "mlkem768-encaps/{lib}", "library": "graviola", "id": "mlkem768-encaps/graviola", - "ns": 6403.783334747533, - "ns_low": 6381.5343012163985, - "ns_high": 6426.863207919315, + "ns": 6320.086300192737, + "ns_low": 6299.337501530433, + "ns_high": 6343.718965309716, "throughput": { "Elements": 1 } @@ -3546,9 +3844,9 @@ "operation": "mlkem768-encaps/{lib}", "library": "libcrux", "id": "mlkem768-encaps/libcrux-ml-kem", - "ns": 9390.819004262768, - "ns_low": 9304.928661738204, - "ns_high": 9505.656573568049, + "ns": 9246.160567412819, + "ns_low": 9193.427460226283, + "ns_high": 9308.653917867825, "throughput": { "Elements": 1 } @@ -3557,9 +3855,9 @@ "operation": "mlkem768-encaps/{lib}", "library": "openssl", "id": "mlkem768-encaps/openssl", - "ns": 24066.242088842915, - "ns_low": 23936.541831654744, - "ns_high": 24192.555684437535, + "ns": 23886.640800354664, + "ns_low": 23781.473204310347, + "ns_high": 23993.77869526002, "throughput": { "Elements": 1 } @@ -3568,9 +3866,9 @@ "operation": "mlkem768-encaps/{lib}", "library": "rind", "id": "mlkem768-encaps/rind", - "ns": 6838.6622822724885, - "ns_low": 6812.49359523521, - "ns_high": 6864.277414423983, + "ns": 6770.324432036487, + "ns_low": 6731.253711850454, + "ns_high": 6808.489142735139, "throughput": { "Elements": 1 } @@ -3579,9 +3877,9 @@ "operation": "mlkem768-encaps/{lib}", "library": "rustcrypto", "id": "mlkem768-encaps/rustcrypto", - "ns": 27770.834500584388, - "ns_low": 27672.787948311412, - "ns_high": 27878.807727590618, + "ns": 27873.441733949516, + "ns_low": 27645.931248523564, + "ns_high": 28263.99852291175, "throughput": { "Elements": 1 } @@ -3590,9 +3888,9 @@ "operation": "mlkem768-decaps/{lib}", "library": "aws-lc-rs", "id": "mlkem768-decaps/aws-lc-rs", - "ns": 7745.985914154142, - "ns_low": 7692.910427478518, - "ns_high": 7808.770122283336, + "ns": 7666.82423372547, + "ns_low": 7618.816617143508, + "ns_high": 7719.935898329941, "throughput": { "Elements": 1 } @@ -3601,9 +3899,9 @@ "operation": "mlkem768-decaps/{lib}", "library": "graviola", "id": "mlkem768-decaps/graviola", - "ns": 4050.658025881906, - "ns_low": 4034.6711827487366, - "ns_high": 4064.936531610453, + "ns": 4022.8164635568032, + "ns_low": 4000.838471551579, + "ns_high": 4049.2414942373016, "throughput": { "Elements": 1 } @@ -3612,9 +3910,9 @@ "operation": "mlkem768-decaps/{lib}", "library": "libcrux", "id": "mlkem768-decaps/libcrux-ml-kem", - "ns": 9576.993598814039, - "ns_low": 9500.988628355055, - "ns_high": 9696.350724455313, + "ns": 9475.755352609887, + "ns_low": 9433.50700482104, + "ns_high": 9519.457476966516, "throughput": { "Elements": 1 } @@ -3623,9 +3921,9 @@ "operation": "mlkem768-decaps/{lib}", "library": "openssl", "id": "mlkem768-decaps/openssl", - "ns": 24432.869558386286, - "ns_low": 24350.496095511426, - "ns_high": 24507.49955721615, + "ns": 24662.710449534505, + "ns_low": 24339.036989027474, + "ns_high": 25246.14808588208, "throughput": { "Elements": 1 } @@ -3634,9 +3932,9 @@ "operation": "mlkem768-decaps/{lib}", "library": "rind", "id": "mlkem768-decaps/rind", - "ns": 4169.226445091035, - "ns_low": 4130.954574093383, - "ns_high": 4233.961221928273, + "ns": 4118.2416762962175, + "ns_low": 4099.705582177264, + "ns_high": 4136.265388251773, "throughput": { "Elements": 1 } @@ -3645,9 +3943,9 @@ "operation": "mlkem768-decaps/{lib}", "library": "rustcrypto", "id": "mlkem768-decaps/rustcrypto", - "ns": 34060.834756251745, - "ns_low": 33930.88137777045, - "ns_high": 34204.93643357876, + "ns": 33919.741991691706, + "ns_low": 33752.65513602167, + "ns_high": 34195.31813447989, "throughput": { "Elements": 1 } @@ -3656,9 +3954,9 @@ "operation": "p384-ecdh/{lib}", "library": "aws-lc-rs", "id": "p384-ecdh/aws-lc-rs", - "ns": 105754.00631545244, - "ns_low": 104347.55400001715, - "ns_high": 107708.61881157817, + "ns": 104988.2257923255, + "ns_low": 103770.75787511344, + "ns_high": 106949.90544888545, "throughput": { "Elements": 1 } @@ -3667,9 +3965,9 @@ "operation": "p384-ecdh/{lib}", "library": "graviola", "id": "p384-ecdh/graviola", - "ns": 153839.92527560217, - "ns_low": 152975.71711449782, - "ns_high": 155007.51852600605, + "ns": 150929.4916580464, + "ns_low": 150380.39887195322, + "ns_high": 151516.87213028877, "throughput": { "Elements": 1 } @@ -3678,9 +3976,9 @@ "operation": "p384-ecdh/{lib}", "library": "openssl", "id": "p384-ecdh/openssl", - "ns": 279510.5114831782, - "ns_low": 278538.1455098878, - "ns_high": 280838.90272988396, + "ns": 280830.4326900153, + "ns_low": 279765.37271187094, + "ns_high": 281978.77247592184, "throughput": { "Elements": 1 } @@ -3689,9 +3987,9 @@ "operation": "p384-ecdh/{lib}", "library": "rind", "id": "p384-ecdh/rind", - "ns": 91485.10000379995, - "ns_low": 91193.37463666798, - "ns_high": 91813.40340843369, + "ns": 90114.90617576896, + "ns_low": 89672.4856731403, + "ns_high": 90526.64610018251, "throughput": { "Elements": 1 } @@ -3700,9 +3998,9 @@ "operation": "p384-ecdh/{lib}", "library": "ring", "id": "p384-ecdh/ring", - "ns": 412476.9824131816, - "ns_low": 411188.45212049613, - "ns_high": 413785.10743395216, + "ns": 413703.04707846907, + "ns_low": 411788.57770033, + "ns_high": 415926.62766374607, "throughput": { "Elements": 1 } @@ -3711,9 +4009,9 @@ "operation": "p384-ecdh/{lib}", "library": "rustcrypto", "id": "p384-ecdh/p384-rustcrypto", - "ns": 494197.38824146596, - "ns_low": 491904.6824259468, - "ns_high": 497302.6938056767, + "ns": 488307.11447761196, + "ns_low": 486678.5228886085, + "ns_high": 490128.9869304601, "throughput": { "Elements": 1 } @@ -3722,9 +4020,9 @@ "operation": "p384-ecdsa-sign/{lib}", "library": "aws-lc-rs", "id": "p384-ecdsa-sign/aws-lc-rs", - "ns": 49161.94829091405, - "ns_low": 49032.724861964714, - "ns_high": 49331.94745446585, + "ns": 49209.360792571795, + "ns_low": 49053.83402579208, + "ns_high": 49358.95594423625, "throughput": { "Elements": 1 } @@ -3733,9 +4031,9 @@ "operation": "p384-ecdsa-sign/{lib}", "library": "graviola", "id": "p384-ecdsa-sign/graviola", - "ns": 81121.9397048175, - "ns_low": 80843.90970870088, - "ns_high": 81457.56729956761, + "ns": 80216.9928062657, + "ns_low": 79868.23191301794, + "ns_high": 80545.36746728275, "throughput": { "Elements": 1 } @@ -3744,9 +4042,9 @@ "operation": "p384-ecdsa-sign/{lib}", "library": "openssl", "id": "p384-ecdsa-sign/openssl", - "ns": 104841.90729914783, - "ns_low": 103906.085870834, - "ns_high": 106272.62094814128, + "ns": 102688.5455282991, + "ns_low": 102447.4097669732, + "ns_high": 102981.36245622124, "throughput": { "Elements": 1 } @@ -3755,9 +4053,9 @@ "operation": "p384-ecdsa-sign/{lib}", "library": "rind", "id": "p384-ecdsa-sign/rind", - "ns": 22933.01759056962, - "ns_low": 22855.733097120577, - "ns_high": 23010.107238523364, + "ns": 22302.40167796879, + "ns_low": 22208.421375836293, + "ns_high": 22409.462919404315, "throughput": { "Elements": 1 } @@ -3766,9 +4064,9 @@ "operation": "p384-ecdsa-sign/{lib}", "library": "ring", "id": "p384-ecdsa-sign/ring", - "ns": 223717.99831830943, - "ns_low": 222962.20921053775, - "ns_high": 224502.32340723136, + "ns": 222336.7691010295, + "ns_low": 221817.9498347383, + "ns_high": 222931.3713733078, "throughput": { "Elements": 1 } @@ -3777,9 +4075,9 @@ "operation": "p384-ecdsa-sign/{lib}", "library": "rustcrypto", "id": "p384-ecdsa-sign/rustcrypto", - "ns": 112641.95977341017, - "ns_low": 112280.1661165374, - "ns_high": 113075.93404289242, + "ns": 111888.78847101128, + "ns_low": 111513.71131750268, + "ns_high": 112274.09604368123, "throughput": { "Elements": 1 } @@ -3788,9 +4086,9 @@ "operation": "p384-ecdsa-verify/{lib}", "library": "aws-lc-rs", "id": "p384-ecdsa-verify/aws-lc-rs", - "ns": 111268.97887296192, - "ns_low": 110697.03408650003, - "ns_high": 112119.56362455184, + "ns": 110786.01632530417, + "ns_low": 110224.93553606354, + "ns_high": 111476.56719220849, "throughput": { "Elements": 1 } @@ -3799,9 +4097,9 @@ "operation": "p384-ecdsa-verify/{lib}", "library": "graviola", "id": "p384-ecdsa-verify/graviola", - "ns": 151781.94423895376, - "ns_low": 151202.09958415775, - "ns_high": 152451.38142722612, + "ns": 148924.5971863455, + "ns_low": 148207.64309248628, + "ns_high": 149588.5283640637, "throughput": { "Elements": 1 } @@ -3810,9 +4108,9 @@ "operation": "p384-ecdsa-verify/{lib}", "library": "openssl", "id": "p384-ecdsa-verify/openssl", - "ns": 238325.14094872173, - "ns_low": 236751.47366189587, - "ns_high": 240317.24791323702, + "ns": 237682.0304221467, + "ns_low": 235830.76539229884, + "ns_high": 241043.30247657828, "throughput": { "Elements": 1 } @@ -3821,9 +4119,9 @@ "operation": "p384-ecdsa-verify/{lib}", "library": "rind", "id": "p384-ecdsa-verify/rind", - "ns": 88121.62098503241, - "ns_low": 87218.64451691655, - "ns_high": 89690.14557320211, + "ns": 84012.40322594946, + "ns_low": 83724.32717491996, + "ns_high": 84332.74133148309, "throughput": { "Elements": 1 } @@ -3832,9 +4130,9 @@ "operation": "p384-ecdsa-verify/{lib}", "library": "ring", "id": "p384-ecdsa-verify/ring", - "ns": 396568.4749475395, - "ns_low": 395289.2973696234, - "ns_high": 398093.7629589674, + "ns": 397214.2813610167, + "ns_low": 396016.1364536689, + "ns_high": 398427.43174009543, "throughput": { "Elements": 1 } @@ -3843,9 +4141,9 @@ "operation": "p384-ecdsa-verify/{lib}", "library": "rustcrypto", "id": "p384-ecdsa-verify/rustcrypto", - "ns": 426431.690873356, - "ns_low": 425171.9479945168, - "ns_high": 427740.85670219787, + "ns": 422125.95016403135, + "ns_low": 419927.437532937, + "ns_high": 424536.7256091645, "throughput": { "Elements": 1 } @@ -3854,9 +4152,9 @@ "operation": "p521-ecdh/{lib}", "library": "aws-lc-rs", "id": "p521-ecdh/aws-lc-rs", - "ns": 143202.77908970002, - "ns_low": 142539.35000848284, - "ns_high": 143977.10288909034, + "ns": 142271.85765095314, + "ns_low": 141667.99835120508, + "ns_high": 143091.33816101548, "throughput": { "Elements": 1 } @@ -3865,9 +4163,9 @@ "operation": "p521-ecdh/{lib}", "library": "openssl", "id": "p521-ecdh/openssl", - "ns": 247223.86034284026, - "ns_low": 246289.21111287762, - "ns_high": 248344.46338666652, + "ns": 247042.07350475347, + "ns_low": 245980.66617103558, + "ns_high": 248426.42748344285, "throughput": { "Elements": 1 } @@ -3876,9 +4174,9 @@ "operation": "p521-ecdh/{lib}", "library": "rind", "id": "p521-ecdh/rind", - "ns": 130918.80929156199, - "ns_low": 129810.35198514564, - "ns_high": 132732.68484097364, + "ns": 129817.85132555047, + "ns_low": 129367.65108215349, + "ns_high": 130312.81005596936, "throughput": { "Elements": 1 } @@ -3887,9 +4185,9 @@ "operation": "p521-ecdh/{lib}", "library": "rustcrypto", "id": "p521-ecdh/rustcrypto", - "ns": 397101.2647125757, - "ns_low": 394464.76814599073, - "ns_high": 399726.03525750426, + "ns": 396279.48286389833, + "ns_low": 393814.0329760329, + "ns_high": 398844.1899964646, "throughput": { "Elements": 1 } @@ -3898,9 +4196,9 @@ "operation": "p521-ecdsa-sign/{lib}", "library": "aws-lc-rs", "id": "p521-ecdsa-sign/aws-lc-rs", - "ns": 84325.9635141126, - "ns_low": 83924.29574493854, - "ns_high": 84779.64494621879, + "ns": 84102.4548825181, + "ns_low": 83401.36136334372, + "ns_high": 85301.33661405591, "throughput": { "Elements": 1 } @@ -3909,9 +4207,9 @@ "operation": "p521-ecdsa-sign/{lib}", "library": "openssl", "id": "p521-ecdsa-sign/openssl", - "ns": 132130.129325846, - "ns_low": 131823.93921538335, - "ns_high": 132474.9777185792, + "ns": 132306.58407979904, + "ns_low": 131878.7796692247, + "ns_high": 132715.1565138147, "throughput": { "Elements": 1 } @@ -3920,9 +4218,9 @@ "operation": "p521-ecdsa-sign/{lib}", "library": "rind", "id": "p521-ecdsa-sign/rind", - "ns": 36321.745301332594, - "ns_low": 36233.11610419715, - "ns_high": 36422.178459927716, + "ns": 36251.69397908535, + "ns_low": 35982.50476037184, + "ns_high": 36653.33686914514, "throughput": { "Elements": 1 } @@ -3931,9 +4229,9 @@ "operation": "p521-ecdsa-sign/{lib}", "library": "rustcrypto", "id": "p521-ecdsa-sign/rustcrypto", - "ns": 79728.57842766366, - "ns_low": 79466.38934803421, - "ns_high": 79971.82040938266, + "ns": 80093.55418907935, + "ns_low": 79378.25614479235, + "ns_high": 81252.157646428, "throughput": { "Elements": 1 } @@ -3942,9 +4240,9 @@ "operation": "p521-ecdsa-verify/{lib}", "library": "aws-lc-rs", "id": "p521-ecdsa-verify/aws-lc-rs", - "ns": 167213.53114526378, - "ns_low": 166194.61368345196, - "ns_high": 168683.6492850656, + "ns": 166726.05441185163, + "ns_low": 166192.4714698137, + "ns_high": 167272.10331973268, "throughput": { "Elements": 1 } @@ -3953,9 +4251,9 @@ "operation": "p521-ecdsa-verify/{lib}", "library": "openssl", "id": "p521-ecdsa-verify/openssl", - "ns": 254801.01109896065, - "ns_low": 253525.0858063459, - "ns_high": 256285.80829784332, + "ns": 254262.76397024776, + "ns_low": 253485.25961948748, + "ns_high": 255077.18743794877, "throughput": { "Elements": 1 } @@ -3964,9 +4262,9 @@ "operation": "p521-ecdsa-verify/{lib}", "library": "rind", "id": "p521-ecdsa-verify/rind", - "ns": 121063.00617644451, - "ns_low": 120375.05570057791, - "ns_high": 121918.86988025444, + "ns": 120989.28014777598, + "ns_low": 119775.43862631902, + "ns_high": 122979.54995202283, "throughput": { "Elements": 1 } @@ -3975,17 +4273,484 @@ "operation": "p521-ecdsa-verify/{lib}", "library": "rustcrypto", "id": "p521-ecdsa-verify/rustcrypto", - "ns": 253061.37536279002, - "ns_low": 251200.85690792042, - "ns_high": 255881.20026495843, + "ns": 251972.30457711444, + "ns_low": 250842.29691739962, + "ns_high": 253275.9310734658, "throughput": { "Elements": 1 } } ], "build_cost": { - "status": "failed", - "started": "2026-11-07T03:24:20+00:00", - "reason": "error: host is busy (6.6 of 10 CPUs busy)" + "status": "ok", + "started": "2026-11-07T14:47:14+00:00", + "host": { + "hostname": "kixtop-2.local", + "os": "Darwin 25.6.0", + "arch": "arm64", + "cpu": "Apple M4", + "cpus": 10, + "jobs": "4", + "rustc": "rustc 1.98.1 (48a229cea 2026-09-01)", + "cc": "clang version 21.1.8" + }, + "runs": 3, + "builds": [ + { + "name": "rind", + "seconds": [ + 3.99, + 4.01, + 4.01 + ], + "median_seconds": 4.01, + "cpu_seconds": [ + 7.54, + 7.54, + 7.53 + ], + "median_cpu_seconds": 7.54, + "stripped_bytes": 674336, + "tools": [], + "packages": [ + "build-cost-rind@0.0.0", + "cfg-if@1.0.5", + "getrandom@0.4.3", + "libc@0.2.191", + "rind@0.2.1" + ] + }, + { + "name": "aws-lc-rs", + "seconds": [ + 28.61, + 29.06, + 29.03 + ], + "median_seconds": 29.03, + "cpu_seconds": [ + 90.4, + 92.13, + 92.07 + ], + "median_cpu_seconds": 92.07, + "stripped_bytes": 2143280, + "tools": [ + "cc" + ], + "packages": [ + "aws-lc-rs@1.19.0", + "aws-lc-sys@0.47.0", + "build-cost-aws-lc-rs@0.0.0", + "cc@1.11.1", + "cmake@0.1.58", + "dunce@1.0.5", + "find-msvc-tools@0.1.15", + "fs_extra@1.3.0", + "jobserver@0.1.35", + "libc@0.2.191", + "pkg-config@0.3.34", + "shlex@2.0.1", + "untrusted@0.7.1", + "zeroize@1.9.1" + ] + }, + { + "name": "ring", + "seconds": [ + 8.22, + 8.22, + 8.16 + ], + "median_seconds": 8.22, + "cpu_seconds": [ + 10.22, + 10.21, + 10.15 + ], + "median_cpu_seconds": 10.21, + "stripped_bytes": 640592, + "tools": [ + "cc" + ], + "packages": [ + "build-cost-ring@0.0.0", + "cc@1.11.1", + "cfg-if@1.0.5", + "find-msvc-tools@0.1.15", + "getrandom@0.2.17", + "libc@0.2.191", + "ring@0.17.14", + "shlex@2.0.1", + "untrusted@0.9.0" + ] + }, + { + "name": "rustcrypto", + "seconds": [ + 5.09, + 5.11, + 5.17 + ], + "median_seconds": 5.11, + "cpu_seconds": [ + 15.99, + 16.02, + 16.16 + ], + "median_cpu_seconds": 16.02, + "stripped_bytes": 461696, + "tools": [], + "packages": [ + "aead@0.6.1", + "aes-gcm@0.11.1", + "aes@0.9.4", + "autocfg@1.5.1", + "base16ct@1.0.0", + "base64ct@1.8.3", + "block-buffer@0.12.1", + "build-cost-rustcrypto@0.0.0", + "cfg-if@1.0.5", + "cipher@0.5.2", + "cmov@0.5.4", + "const-oid@0.10.2", + "cpubits@0.1.1", + "cpufeatures@0.3.1", + "crypto-bigint@0.7.10", + "crypto-common@0.2.2", + "ctr@0.10.1", + "ctutils@0.4.8", + "curve25519-dalek@5.0.0", + "der@0.8.3", + "digest@0.11.3", + "ecdsa@0.17.0", + "elliptic-curve@0.14.3", + "ff@0.14.0", + "getrandom@0.4.3", + "ghash@0.6.0", + "group@0.14.0", + "hmac@0.13.0", + "hybrid-array@0.4.15", + "inout@0.2.6", + "libc@0.2.191", + "num-traits@0.2.19", + "p256@0.14.0", + "pem-rfc7468@1.0.0", + "pkcs8@0.11.0", + "polyval@0.7.3", + "primefield@0.14.0", + "primeorder@0.14.0", + "rand_core@0.10.1", + "rfc6979@0.6.0", + "rustc_version@0.4.1", + "sec1@0.8.1", + "semver@1.0.28", + "sha2@0.11.1", + "signature@3.0.0", + "spki@0.8.1", + "subtle@2.6.1", + "typenum@1.20.1", + "universal-hash@0.6.1", + "wnaf@0.14.1", + "x25519-dalek@3.0.0", + "zeroize@1.9.1" + ] + }, + { + "name": "graviola", + "seconds": [ + 3.05, + 3.06, + 3.06 + ], + "median_seconds": 3.06, + "cpu_seconds": [ + 5.53, + 5.53, + 5.54 + ], + "median_cpu_seconds": 5.53, + "stripped_bytes": 821088, + "tools": [], + "packages": [ + "build-cost-graviola@0.0.0", + "cfg-if@1.0.5", + "getrandom@0.4.3", + "graviola@0.4.4", + "libc@0.2.191" + ] + }, + { + "name": "libcrux", + "seconds": [ + 8.02, + 8.09, + 8.04 + ], + "median_seconds": 8.04, + "cpu_seconds": [ + 17.72, + 17.75, + 17.73 + ], + "median_cpu_seconds": 17.73, + "stripped_bytes": 589552, + "tools": [], + "packages": [ + "build-cost-libcrux@0.0.0", + "cfg-if@1.0.5", + "getrandom@0.4.3", + "hax-lib-macros@0.3.6", + "hax-lib@0.3.6", + "libc@0.2.191", + "libcrux-aesgcm@0.0.8", + "libcrux-curve25519@0.0.9", + "libcrux-ecdh@0.0.9", + "libcrux-ecdsa@0.0.9", + "libcrux-hacl-rs@0.0.6", + "libcrux-intrinsics@0.0.7", + "libcrux-macros@0.0.4", + "libcrux-p256@0.0.9", + "libcrux-platform@0.0.3", + "libcrux-secrets@0.0.5", + "libcrux-secrets@0.0.7", + "libcrux-sha2@0.0.9", + "libcrux-traits@0.0.7", + "libcrux-traits@0.0.9", + "proc-macro2@1.0.107", + "quote@1.0.47", + "rand@0.10.3", + "rand_core@0.10.1", + "syn@2.0.119", + "syn@3.0.9", + "unicode-ident@1.0.27" + ] + }, + { + "name": "openssl", + "seconds": [ + 4.56, + 4.57, + 4.59 + ], + "median_seconds": 4.57, + "cpu_seconds": [ + 10.15, + 10.21, + 10.2 + ], + "median_cpu_seconds": 10.2, + "stripped_bytes": 361648, + "tools": [ + "cc" + ], + "packages": [ + "bitflags@2.13.2", + "build-cost-openssl@0.0.0", + "cc@1.11.1", + "cfg-if@1.0.5", + "find-msvc-tools@0.1.15", + "foreign-types-shared@0.1.1", + "foreign-types@0.3.2", + "libc@0.2.191", + "openssl-macros@0.1.1", + "openssl-sys@0.9.118", + "openssl@0.10.82", + "pkg-config@0.3.34", + "proc-macro2@1.0.107", + "quote@1.0.47", + "shlex@2.0.1", + "syn@2.0.119", + "unicode-ident@1.0.27", + "vcpkg@0.2.15" + ] + }, + { + "name": "openssl-vendored", + "seconds": [ + 131.18, + 131.72, + 133.09 + ], + "median_seconds": 131.72, + "cpu_seconds": [ + 419.66, + 420.87, + 424.82 + ], + "median_cpu_seconds": 420.87, + "stripped_bytes": 3751488, + "tools": [ + "cc", + "make", + "perl" + ], + "packages": [ + "bitflags@2.13.2", + "build-cost-openssl@0.0.0", + "cc@1.11.1", + "cfg-if@1.0.5", + "find-msvc-tools@0.1.15", + "foreign-types-shared@0.1.1", + "foreign-types@0.3.2", + "libc@0.2.191", + "openssl-macros@0.1.1", + "openssl-src@300.6.1+3.6.3", + "openssl-sys@0.9.118", + "openssl@0.10.82", + "pkg-config@0.3.34", + "proc-macro2@1.0.107", + "quote@1.0.47", + "shlex@2.0.1", + "syn@2.0.119", + "unicode-ident@1.0.27", + "vcpkg@0.2.15" + ] + }, + { + "name": "rustls-rind", + "seconds": [ + 6.52, + 6.51, + 6.68 + ], + "median_seconds": 6.52, + "cpu_seconds": [ + 21.5, + 21.58, + 22.03 + ], + "median_cpu_seconds": 21.58, + "stripped_bytes": 2171632, + "tools": [], + "packages": [ + "build-cost-rustls@0.0.0", + "cfg-if@1.0.5", + "getrandom@0.4.3", + "libc@0.2.191", + "once_cell@1.21.4", + "rind-rustls@0.23.0", + "rind@0.2.1", + "rustls-pki-types@1.15.1", + "rustls-webpki@0.103.16", + "rustls@0.23.46", + "subtle@2.6.1", + "untrusted@0.9.0", + "webpki-roots@1.0.11", + "zeroize@1.9.1" + ] + }, + { + "name": "rustls-rind-lean", + "seconds": [ + 6.83, + 6.65, + 6.7 + ], + "median_seconds": 6.7, + "cpu_seconds": [ + 22.62, + 22.12, + 21.99 + ], + "median_cpu_seconds": 22.12, + "stripped_bytes": 1536256, + "tools": [], + "packages": [ + "build-cost-rustls@0.0.0", + "cfg-if@1.0.5", + "getrandom@0.4.3", + "libc@0.2.191", + "once_cell@1.21.4", + "rind-rustls@0.23.0", + "rind@0.2.1", + "rustls-pki-types@1.15.1", + "rustls-webpki@0.103.16", + "rustls@0.23.46", + "subtle@2.6.1", + "untrusted@0.9.0", + "webpki-roots@1.0.11", + "zeroize@1.9.1" + ] + }, + { + "name": "rustls-aws-lc-rs", + "seconds": [ + 33.89, + 34.06, + 34.04 + ], + "median_seconds": 34.04, + "cpu_seconds": [ + 108.46, + 109.08, + 109.04 + ], + "median_cpu_seconds": 109.04, + "stripped_bytes": 3077120, + "tools": [ + "cc" + ], + "packages": [ + "aws-lc-rs@1.19.0", + "aws-lc-sys@0.47.0", + "build-cost-rustls@0.0.0", + "cc@1.11.1", + "cmake@0.1.58", + "dunce@1.0.5", + "find-msvc-tools@0.1.15", + "fs_extra@1.3.0", + "jobserver@0.1.35", + "libc@0.2.191", + "once_cell@1.21.4", + "pkg-config@0.3.34", + "rustls-pki-types@1.15.1", + "rustls-webpki@0.103.16", + "rustls@0.23.46", + "shlex@2.0.1", + "subtle@2.6.1", + "untrusted@0.9.0", + "webpki-roots@1.0.11", + "zeroize@1.9.1" + ] + }, + { + "name": "rustls-ring", + "seconds": [ + 12.18, + 12.17, + 12.28 + ], + "median_seconds": 12.18, + "cpu_seconds": [ + 22.86, + 22.79, + 22.94 + ], + "median_cpu_seconds": 22.86, + "stripped_bytes": 1604896, + "tools": [ + "cc" + ], + "packages": [ + "build-cost-rustls@0.0.0", + "cc@1.11.1", + "cfg-if@1.0.5", + "find-msvc-tools@0.1.15", + "getrandom@0.2.17", + "libc@0.2.191", + "once_cell@1.21.4", + "ring@0.17.14", + "rustls-pki-types@1.15.1", + "rustls-webpki@0.103.16", + "rustls@0.23.46", + "shlex@2.0.1", + "subtle@2.6.1", + "untrusted@0.9.0", + "webpki-roots@1.0.11", + "zeroize@1.9.1" + ] + } + ] } } diff --git a/benchmarks/desktop-dark.svg b/benchmarks/desktop-dark.svg index 5a042ea60..0e228a97c 100644 --- a/benchmarks/desktop-dark.svg +++ b/benchmarks/desktop-dark.svg @@ -28,479 +28,479 @@ TLS 1.3 with rustls full handshake, X25519MLKEM768 -full handshake, X25519MLKEM768, rind: 174.97 µs, 1.00× the fastest -174.97 µs -full handshake, X25519MLKEM768, aws-lc-rs: 235.60 µs, 1.35× the fastest -235.60 µs -full handshake, X25519MLKEM768, graviola: 191.49 µs, 1.09× the fastest -191.49 µs -full handshake, X25519MLKEM768, OpenSSL: 437.46 µs, 2.50× the fastest -437.46 µs +full handshake, X25519MLKEM768, rind: 172.30 µs, 1.00× the fastest +172.30 µs +full handshake, X25519MLKEM768, aws-lc-rs: 233.73 µs, 1.36× the fastest +233.73 µs +full handshake, X25519MLKEM768, graviola: 188.19 µs, 1.09× the fastest +188.19 µs +full handshake, X25519MLKEM768, OpenSSL: 438.88 µs, 2.55× the fastest +438.88 µs full handshake, X25519 -full handshake, X25519, rind: 152.75 µs, 1.00× the fastest -152.75 µs -full handshake, X25519, aws-lc-rs: 203.62 µs, 1.33× the fastest -203.62 µs -full handshake, X25519, ring: 222.88 µs, 1.46× the fastest -222.88 µs -full handshake, X25519, graviola: 162.55 µs, 1.06× the fastest -162.55 µs -full handshake, X25519, OpenSSL: 367.79 µs, 2.41× the fastest -367.79 µs +full handshake, X25519, rind: 151.32 µs, 1.00× the fastest +151.32 µs +full handshake, X25519, aws-lc-rs: 201.93 µs, 1.33× the fastest +201.93 µs +full handshake, X25519, ring: 221.01 µs, 1.46× the fastest +221.01 µs +full handshake, X25519, graviola: 161.40 µs, 1.07× the fastest +161.40 µs +full handshake, X25519, OpenSSL: 366.38 µs, 2.42× the fastest +366.38 µs full handshake, P-256 -full handshake, P-256, rind: 175.68 µs, 1.00× the fastest -175.68 µs -full handshake, P-256, aws-lc-rs: 228.85 µs, 1.30× the fastest -228.85 µs -full handshake, P-256, ring: 221.72 µs, 1.26× the fastest -221.72 µs -full handshake, P-256, graviola: 193.10 µs, 1.10× the fastest -193.10 µs -full handshake, P-256, OpenSSL: 406.49 µs, 2.31× the fastest -406.49 µs +full handshake, P-256, rind: 174.55 µs, 1.00× the fastest +174.55 µs +full handshake, P-256, aws-lc-rs: 227.86 µs, 1.31× the fastest +227.86 µs +full handshake, P-256, ring: 219.51 µs, 1.26× the fastest +219.51 µs +full handshake, P-256, graviola: 191.81 µs, 1.10× the fastest +191.81 µs +full handshake, P-256, OpenSSL: 400.76 µs, 2.30× the fastest +400.76 µs full handshake, Ed25519 certificate -full handshake, Ed25519 certificate, rind: 123.11 µs, 1.00× the fastest -123.11 µs -full handshake, Ed25519 certificate, aws-lc-rs: 168.12 µs, 1.37× the fastest -168.12 µs -full handshake, Ed25519 certificate, ring: 205.53 µs, 1.67× the fastest -205.53 µs -full handshake, Ed25519 certificate, graviola: 125.46 µs, 1.02× the fastest -125.46 µs -full handshake, Ed25519 certificate, OpenSSL: 373.29 µs, 3.03× the fastest -373.29 µs +full handshake, Ed25519 certificate, rind: 121.90 µs, 1.00× the fastest +121.90 µs +full handshake, Ed25519 certificate, aws-lc-rs: 166.63 µs, 1.37× the fastest +166.63 µs +full handshake, Ed25519 certificate, ring: 202.04 µs, 1.66× the fastest +202.04 µs +full handshake, Ed25519 certificate, graviola: 123.71 µs, 1.01× the fastest +123.71 µs +full handshake, Ed25519 certificate, OpenSSL: 368.21 µs, 3.02× the fastest +368.21 µs full handshake, RSA-2048 certificate -full handshake, RSA-2048 certificate, rind: 428.67 µs, 1.00× the fastest -428.67 µs -full handshake, RSA-2048 certificate, aws-lc-rs: 485.87 µs, 1.13× the fastest -485.87 µs -full handshake, RSA-2048 certificate, ring: 493.81 µs, 1.15× the fastest -493.81 µs -full handshake, RSA-2048 certificate, graviola: 440.23 µs, 1.03× the fastest -440.23 µs -full handshake, RSA-2048 certificate, OpenSSL: 682.29 µs, 1.59× the fastest -682.29 µs +full handshake, RSA-2048 certificate, rind: 432.83 µs, 1.00× the fastest +432.83 µs +full handshake, RSA-2048 certificate, aws-lc-rs: 480.43 µs, 1.11× the fastest +480.43 µs +full handshake, RSA-2048 certificate, ring: 488.22 µs, 1.13× the fastest +488.22 µs +full handshake, RSA-2048 certificate, graviola: 440.42 µs, 1.02× the fastest +440.42 µs +full handshake, RSA-2048 certificate, OpenSSL: 670.54 µs, 1.55× the fastest +670.54 µs resumed handshake, X25519 -resumed handshake, X25519, rind: 54.19 µs, 1.00× the fastest -54.19 µs -resumed handshake, X25519, aws-lc-rs: 102.84 µs, 1.90× the fastest -102.84 µs -resumed handshake, X25519, ring: 113.00 µs, 2.09× the fastest -113.00 µs -resumed handshake, X25519, graviola: 55.16 µs, 1.02× the fastest -55.16 µs -resumed handshake, X25519, OpenSSL: 231.44 µs, 4.27× the fastest -231.44 µs +resumed handshake, X25519, rind: 54.39 µs, 1.00× the fastest +54.39 µs +resumed handshake, X25519, aws-lc-rs: 101.36 µs, 1.86× the fastest +101.36 µs +resumed handshake, X25519, ring: 111.29 µs, 2.05× the fastest +111.29 µs +resumed handshake, X25519, graviola: 55.62 µs, 1.02× the fastest +55.62 µs +resumed handshake, X25519, OpenSSL: 232.44 µs, 4.27× the fastest +232.44 µs 1 MB transfer, AES-128-GCM -1 MB transfer, AES-128-GCM, rind: 193.36 µs, 1.11× the fastest -193.36 µs -1 MB transfer, AES-128-GCM, aws-lc-rs: 241.18 µs, 1.38× the fastest -241.18 µs -1 MB transfer, AES-128-GCM, ring: 174.96 µs, 1.00× the fastest -174.96 µs -1 MB transfer, AES-128-GCM, graviola: 294.75 µs, 1.68× the fastest -294.75 µs -1 MB transfer, AES-128-GCM, OpenSSL: 255.72 µs, 1.46× the fastest -255.72 µs +1 MB transfer, AES-128-GCM, rind: 168.21 µs, 1.00× the fastest +168.21 µs +1 MB transfer, AES-128-GCM, aws-lc-rs: 233.34 µs, 1.39× the fastest +233.34 µs +1 MB transfer, AES-128-GCM, ring: 170.08 µs, 1.01× the fastest +170.08 µs +1 MB transfer, AES-128-GCM, graviola: 289.61 µs, 1.72× the fastest +289.61 µs +1 MB transfer, AES-128-GCM, OpenSSL: 250.85 µs, 1.49× the fastest +250.85 µs 1 MB transfer, AES-256-GCM -1 MB transfer, AES-256-GCM, rind: 189.84 µs, 1.00× the fastest -189.84 µs -1 MB transfer, AES-256-GCM, aws-lc-rs: 272.23 µs, 1.43× the fastest -272.23 µs -1 MB transfer, AES-256-GCM, ring: 192.15 µs, 1.01× the fastest -192.15 µs -1 MB transfer, AES-256-GCM, graviola: 338.97 µs, 1.79× the fastest -338.97 µs -1 MB transfer, AES-256-GCM, OpenSSL: 292.12 µs, 1.54× the fastest -292.12 µs +1 MB transfer, AES-256-GCM, rind: 184.54 µs, 1.00× the fastest +184.54 µs +1 MB transfer, AES-256-GCM, aws-lc-rs: 265.29 µs, 1.44× the fastest +265.29 µs +1 MB transfer, AES-256-GCM, ring: 188.67 µs, 1.02× the fastest +188.67 µs +1 MB transfer, AES-256-GCM, graviola: 337.96 µs, 1.83× the fastest +337.96 µs +1 MB transfer, AES-256-GCM, OpenSSL: 285.79 µs, 1.55× the fastest +285.79 µs 1 MB transfer, ChaCha20-Poly1305 -1 MB transfer, ChaCha20-Poly1305, rind: 621.49 µs, 1.04× the fastest -621.49 µs -1 MB transfer, ChaCha20-Poly1305, aws-lc-rs: 609.72 µs, 1.02× the fastest -609.72 µs -1 MB transfer, ChaCha20-Poly1305, ring: 594.88 µs, 1.00× the fastest -594.88 µs -1 MB transfer, ChaCha20-Poly1305, graviola: 1.17 ms, 1.97× the fastest -1.17 ms -1 MB transfer, ChaCha20-Poly1305, OpenSSL: 661.80 µs, 1.11× the fastest -661.80 µs +1 MB transfer, ChaCha20-Poly1305, rind: 596.91 µs, 1.01× the fastest +596.91 µs +1 MB transfer, ChaCha20-Poly1305, aws-lc-rs: 595.41 µs, 1.01× the fastest +595.41 µs +1 MB transfer, ChaCha20-Poly1305, ring: 590.49 µs, 1.00× the fastest +590.49 µs +1 MB transfer, ChaCha20-Poly1305, graviola: 1.16 ms, 1.97× the fastest +1.16 ms +1 MB transfer, ChaCha20-Poly1305, OpenSSL: 658.48 µs, 1.12× the fastest +658.48 µs AEADs AES-128-GCM seal, 32 B -AES-128-GCM seal, 32 B, rind: 18 ns, 1.00× the fastest -18 ns -AES-128-GCM seal, 32 B, aws-lc-rs: 37 ns, 2.03× the fastest -37 ns -AES-128-GCM seal, 32 B, ring: 42 ns, 2.30× the fastest -42 ns -AES-128-GCM seal, 32 B, RustCrypto + dalek: 73 ns, 3.98× the fastest +AES-128-GCM seal, 32 B, rind: 20 ns, 1.00× the fastest +20 ns +AES-128-GCM seal, 32 B, aws-lc-rs: 38 ns, 1.90× the fastest +38 ns +AES-128-GCM seal, 32 B, ring: 41 ns, 2.08× the fastest +41 ns +AES-128-GCM seal, 32 B, RustCrypto + dalek: 73 ns, 3.70× the fastest 73 ns -AES-128-GCM seal, 32 B, graviola: 42 ns, 2.33× the fastest +AES-128-GCM seal, 32 B, graviola: 42 ns, 2.13× the fastest 42 ns -AES-128-GCM seal, 32 B, libcrux: 168 ns, 9.19× the fastest -168 ns -AES-128-GCM seal, 32 B, OpenSSL: 55 ns, 3.02× the fastest -55 ns +AES-128-GCM seal, 32 B, libcrux: 171 ns, 8.64× the fastest +171 ns +AES-128-GCM seal, 32 B, OpenSSL: 57 ns, 2.88× the fastest +57 ns AES-128-GCM seal, 1350 B -AES-128-GCM seal, 1350 B, rind: 94 ns, 1.00× the fastest -94 ns -AES-128-GCM seal, 1350 B, aws-lc-rs: 149 ns, 1.59× the fastest -149 ns -AES-128-GCM seal, 1350 B, ring: 118 ns, 1.26× the fastest -118 ns -AES-128-GCM seal, 1350 B, RustCrypto + dalek: 272 ns, 2.90× the fastest -272 ns -AES-128-GCM seal, 1350 B, graviola: 227 ns, 2.42× the fastest -227 ns -AES-128-GCM seal, 1350 B, libcrux: 1.94 µs, 20.74× the fastest -1.94 µs -AES-128-GCM seal, 1350 B, OpenSSL: 163 ns, 1.74× the fastest -163 ns +AES-128-GCM seal, 1350 B, rind: 93 ns, 1.00× the fastest +93 ns +AES-128-GCM seal, 1350 B, aws-lc-rs: 159 ns, 1.71× the fastest +159 ns +AES-128-GCM seal, 1350 B, ring: 119 ns, 1.29× the fastest +119 ns +AES-128-GCM seal, 1350 B, RustCrypto + dalek: 278 ns, 3.00× the fastest +278 ns +AES-128-GCM seal, 1350 B, graviola: 226 ns, 2.44× the fastest +226 ns +AES-128-GCM seal, 1350 B, libcrux: 1.98 µs, 21.37× the fastest +1.98 µs +AES-128-GCM seal, 1350 B, OpenSSL: 160 ns, 1.73× the fastest +160 ns AES-128-GCM seal, 16 KB -AES-128-GCM seal, 16 KB, rind: 781 ns, 1.00× the fastest -781 ns -AES-128-GCM seal, 16 KB, aws-lc-rs: 1.33 µs, 1.70× the fastest -1.33 µs -AES-128-GCM seal, 16 KB, ring: 799 ns, 1.02× the fastest -799 ns -AES-128-GCM seal, 16 KB, RustCrypto + dalek: 2.49 µs, 3.19× the fastest +AES-128-GCM seal, 16 KB, rind: 799 ns, 1.00× the fastest +799 ns +AES-128-GCM seal, 16 KB, aws-lc-rs: 1.32 µs, 1.66× the fastest +1.32 µs +AES-128-GCM seal, 16 KB, ring: 818 ns, 1.02× the fastest +818 ns +AES-128-GCM seal, 16 KB, RustCrypto + dalek: 2.49 µs, 3.11× the fastest 2.49 µs -AES-128-GCM seal, 16 KB, graviola: 2.02 µs, 2.59× the fastest -2.02 µs -AES-128-GCM seal, 16 KB, libcrux: 22.02 µs, 28.20× the fastest -22.02 µs -AES-128-GCM seal, 16 KB, OpenSSL: 1.34 µs, 1.72× the fastest -1.34 µs +AES-128-GCM seal, 16 KB, graviola: 2.05 µs, 2.57× the fastest +2.05 µs +AES-128-GCM seal, 16 KB, libcrux: 22.05 µs, 27.59× the fastest +22.05 µs +AES-128-GCM seal, 16 KB, OpenSSL: 1.35 µs, 1.68× the fastest +1.35 µs AES-128-GCM open, 32 B -AES-128-GCM open, 32 B, rind: 28 ns, 1.00× the fastest -28 ns -AES-128-GCM open, 32 B, aws-lc-rs: 37 ns, 1.31× the fastest -37 ns -AES-128-GCM open, 32 B, ring: 42 ns, 1.49× the fastest -42 ns -AES-128-GCM open, 32 B, RustCrypto + dalek: 78 ns, 2.73× the fastest -78 ns -AES-128-GCM open, 32 B, graviola: 36 ns, 1.26× the fastest +AES-128-GCM open, 32 B, rind: 15 ns, 1.00× the fastest +15 ns +AES-128-GCM open, 32 B, aws-lc-rs: 38 ns, 2.50× the fastest +38 ns +AES-128-GCM open, 32 B, ring: 41 ns, 2.71× the fastest +41 ns +AES-128-GCM open, 32 B, RustCrypto + dalek: 78 ns, 5.15× the fastest +78 ns +AES-128-GCM open, 32 B, graviola: 36 ns, 2.40× the fastest 36 ns -AES-128-GCM open, 32 B, libcrux: 159 ns, 5.59× the fastest -159 ns -AES-128-GCM open, 32 B, OpenSSL: 58 ns, 2.02× the fastest -58 ns +AES-128-GCM open, 32 B, libcrux: 162 ns, 10.67× the fastest +162 ns +AES-128-GCM open, 32 B, OpenSSL: 59 ns, 3.89× the fastest +59 ns AES-128-GCM open, 1350 B -AES-128-GCM open, 1350 B, rind: 99 ns, 1.00× the fastest -99 ns -AES-128-GCM open, 1350 B, aws-lc-rs: 149 ns, 1.51× the fastest -149 ns -AES-128-GCM open, 1350 B, ring: 114 ns, 1.16× the fastest +AES-128-GCM open, 1350 B, rind: 89 ns, 1.00× the fastest +89 ns +AES-128-GCM open, 1350 B, aws-lc-rs: 151 ns, 1.69× the fastest +151 ns +AES-128-GCM open, 1350 B, ring: 114 ns, 1.27× the fastest 114 ns -AES-128-GCM open, 1350 B, RustCrypto + dalek: 282 ns, 2.86× the fastest -282 ns -AES-128-GCM open, 1350 B, graviola: 176 ns, 1.79× the fastest -176 ns -AES-128-GCM open, 1350 B, libcrux: 2.00 µs, 20.29× the fastest -2.00 µs -AES-128-GCM open, 1350 B, OpenSSL: 159 ns, 1.62× the fastest -159 ns +AES-128-GCM open, 1350 B, RustCrypto + dalek: 283 ns, 3.17× the fastest +283 ns +AES-128-GCM open, 1350 B, graviola: 175 ns, 1.95× the fastest +175 ns +AES-128-GCM open, 1350 B, libcrux: 1.99 µs, 22.29× the fastest +1.99 µs +AES-128-GCM open, 1350 B, OpenSSL: 162 ns, 1.81× the fastest +162 ns AES-128-GCM open, 16 KB -AES-128-GCM open, 16 KB, rind: 816 ns, 1.00× the fastest -816 ns -AES-128-GCM open, 16 KB, aws-lc-rs: 1.28 µs, 1.56× the fastest -1.28 µs -AES-128-GCM open, 16 KB, ring: 829 ns, 1.02× the fastest -829 ns -AES-128-GCM open, 16 KB, RustCrypto + dalek: 2.54 µs, 3.12× the fastest -2.54 µs -AES-128-GCM open, 16 KB, graviola: 1.42 µs, 1.73× the fastest -1.42 µs -AES-128-GCM open, 16 KB, libcrux: 22.31 µs, 27.33× the fastest -22.31 µs -AES-128-GCM open, 16 KB, OpenSSL: 1.30 µs, 1.59× the fastest -1.30 µs +AES-128-GCM open, 16 KB, rind: 793 ns, 1.00× the fastest +793 ns +AES-128-GCM open, 16 KB, aws-lc-rs: 1.26 µs, 1.59× the fastest +1.26 µs +AES-128-GCM open, 16 KB, ring: 814 ns, 1.03× the fastest +814 ns +AES-128-GCM open, 16 KB, RustCrypto + dalek: 2.51 µs, 3.16× the fastest +2.51 µs +AES-128-GCM open, 16 KB, graviola: 1.40 µs, 1.76× the fastest +1.40 µs +AES-128-GCM open, 16 KB, libcrux: 21.94 µs, 27.67× the fastest +21.94 µs +AES-128-GCM open, 16 KB, OpenSSL: 1.29 µs, 1.62× the fastest +1.29 µs AES-256-GCM seal, 32 B -AES-256-GCM seal, 32 B, rind: 20 ns, 1.00× the fastest -20 ns -AES-256-GCM seal, 32 B, aws-lc-rs: 40 ns, 1.99× the fastest -40 ns -AES-256-GCM seal, 32 B, ring: 43 ns, 2.16× the fastest +AES-256-GCM seal, 32 B, rind: 21 ns, 1.00× the fastest +21 ns +AES-256-GCM seal, 32 B, aws-lc-rs: 39 ns, 1.83× the fastest +39 ns +AES-256-GCM seal, 32 B, ring: 43 ns, 2.02× the fastest 43 ns -AES-256-GCM seal, 32 B, RustCrypto + dalek: 77 ns, 3.90× the fastest -77 ns -AES-256-GCM seal, 32 B, graviola: 44 ns, 2.22× the fastest -44 ns -AES-256-GCM seal, 32 B, libcrux: 216 ns, 10.88× the fastest -216 ns -AES-256-GCM seal, 32 B, OpenSSL: 58 ns, 2.93× the fastest -58 ns +AES-256-GCM seal, 32 B, RustCrypto + dalek: 78 ns, 3.66× the fastest +78 ns +AES-256-GCM seal, 32 B, graviola: 45 ns, 2.08× the fastest +45 ns +AES-256-GCM seal, 32 B, libcrux: 217 ns, 10.16× the fastest +217 ns +AES-256-GCM seal, 32 B, OpenSSL: 61 ns, 2.87× the fastest +61 ns AES-256-GCM seal, 1350 B -AES-256-GCM seal, 1350 B, rind: 106 ns, 1.00× the fastest -106 ns -AES-256-GCM seal, 1350 B, aws-lc-rs: 173 ns, 1.63× the fastest -173 ns -AES-256-GCM seal, 1350 B, ring: 133 ns, 1.25× the fastest -133 ns -AES-256-GCM seal, 1350 B, RustCrypto + dalek: 313 ns, 2.94× the fastest +AES-256-GCM seal, 1350 B, rind: 107 ns, 1.00× the fastest +107 ns +AES-256-GCM seal, 1350 B, aws-lc-rs: 175 ns, 1.63× the fastest +175 ns +AES-256-GCM seal, 1350 B, ring: 134 ns, 1.25× the fastest +134 ns +AES-256-GCM seal, 1350 B, RustCrypto + dalek: 313 ns, 2.92× the fastest 313 ns -AES-256-GCM seal, 1350 B, graviola: 258 ns, 2.42× the fastest -258 ns -AES-256-GCM seal, 1350 B, libcrux: 2.83 µs, 26.55× the fastest -2.83 µs -AES-256-GCM seal, 1350 B, OpenSSL: 186 ns, 1.75× the fastest -186 ns +AES-256-GCM seal, 1350 B, graviola: 257 ns, 2.40× the fastest +257 ns +AES-256-GCM seal, 1350 B, libcrux: 2.87 µs, 26.80× the fastest +2.87 µs +AES-256-GCM seal, 1350 B, OpenSSL: 184 ns, 1.72× the fastest +184 ns AES-256-GCM seal, 16 KB -AES-256-GCM seal, 16 KB, rind: 925 ns, 1.00× the fastest -925 ns -AES-256-GCM seal, 16 KB, aws-lc-rs: 1.56 µs, 1.69× the fastest -1.56 µs -AES-256-GCM seal, 16 KB, ring: 946 ns, 1.02× the fastest -946 ns -AES-256-GCM seal, 16 KB, RustCrypto + dalek: 2.91 µs, 3.14× the fastest -2.91 µs -AES-256-GCM seal, 16 KB, graviola: 2.46 µs, 2.66× the fastest +AES-256-GCM seal, 16 KB, rind: 954 ns, 1.00× the fastest +954 ns +AES-256-GCM seal, 16 KB, aws-lc-rs: 1.58 µs, 1.66× the fastest +1.58 µs +AES-256-GCM seal, 16 KB, ring: 975 ns, 1.02× the fastest +975 ns +AES-256-GCM seal, 16 KB, RustCrypto + dalek: 2.90 µs, 3.04× the fastest +2.90 µs +AES-256-GCM seal, 16 KB, graviola: 2.46 µs, 2.58× the fastest 2.46 µs -AES-256-GCM seal, 16 KB, libcrux: 32.69 µs, 35.34× the fastest -32.69 µs -AES-256-GCM seal, 16 KB, OpenSSL: 1.59 µs, 1.72× the fastest -1.59 µs +AES-256-GCM seal, 16 KB, libcrux: 32.86 µs, 34.45× the fastest +32.86 µs +AES-256-GCM seal, 16 KB, OpenSSL: 1.60 µs, 1.68× the fastest +1.60 µs AES-256-GCM open, 32 B -AES-256-GCM open, 32 B, rind: 28 ns, 1.00× the fastest -28 ns -AES-256-GCM open, 32 B, aws-lc-rs: 38 ns, 1.37× the fastest +AES-256-GCM open, 32 B, rind: 16 ns, 1.00× the fastest +16 ns +AES-256-GCM open, 32 B, aws-lc-rs: 38 ns, 2.31× the fastest 38 ns -AES-256-GCM open, 32 B, ring: 45 ns, 1.61× the fastest -45 ns -AES-256-GCM open, 32 B, RustCrypto + dalek: 82 ns, 2.98× the fastest -82 ns -AES-256-GCM open, 32 B, graviola: 38 ns, 1.37× the fastest +AES-256-GCM open, 32 B, ring: 43 ns, 2.63× the fastest +43 ns +AES-256-GCM open, 32 B, RustCrypto + dalek: 82 ns, 5.03× the fastest +82 ns +AES-256-GCM open, 32 B, graviola: 38 ns, 2.31× the fastest 38 ns -AES-256-GCM open, 32 B, libcrux: 218 ns, 7.86× the fastest -218 ns -AES-256-GCM open, 32 B, OpenSSL: 62 ns, 2.22× the fastest -62 ns +AES-256-GCM open, 32 B, libcrux: 215 ns, 13.12× the fastest +215 ns +AES-256-GCM open, 32 B, OpenSSL: 61 ns, 3.73× the fastest +61 ns AES-256-GCM open, 1350 B -AES-256-GCM open, 1350 B, rind: 107 ns, 1.00× the fastest -107 ns -AES-256-GCM open, 1350 B, aws-lc-rs: 173 ns, 1.62× the fastest -173 ns -AES-256-GCM open, 1350 B, ring: 124 ns, 1.16× the fastest -124 ns -AES-256-GCM open, 1350 B, RustCrypto + dalek: 322 ns, 3.01× the fastest -322 ns -AES-256-GCM open, 1350 B, graviola: 203 ns, 1.90× the fastest -203 ns -AES-256-GCM open, 1350 B, libcrux: 2.85 µs, 26.66× the fastest +AES-256-GCM open, 1350 B, rind: 99 ns, 1.00× the fastest +99 ns +AES-256-GCM open, 1350 B, aws-lc-rs: 172 ns, 1.74× the fastest +172 ns +AES-256-GCM open, 1350 B, ring: 121 ns, 1.23× the fastest +121 ns +AES-256-GCM open, 1350 B, RustCrypto + dalek: 318 ns, 3.21× the fastest +318 ns +AES-256-GCM open, 1350 B, graviola: 201 ns, 2.03× the fastest +201 ns +AES-256-GCM open, 1350 B, libcrux: 2.85 µs, 28.82× the fastest 2.85 µs -AES-256-GCM open, 1350 B, OpenSSL: 189 ns, 1.77× the fastest +AES-256-GCM open, 1350 B, OpenSSL: 189 ns, 1.91× the fastest 189 ns AES-256-GCM open, 16 KB -AES-256-GCM open, 16 KB, rind: 917 ns, 1.00× the fastest -917 ns -AES-256-GCM open, 16 KB, aws-lc-rs: 1.57 µs, 1.71× the fastest -1.57 µs -AES-256-GCM open, 16 KB, ring: 921 ns, 1.00× the fastest -921 ns -AES-256-GCM open, 16 KB, RustCrypto + dalek: 2.96 µs, 3.23× the fastest -2.96 µs -AES-256-GCM open, 16 KB, graviola: 1.74 µs, 1.90× the fastest -1.74 µs -AES-256-GCM open, 16 KB, libcrux: 32.51 µs, 35.44× the fastest -32.51 µs -AES-256-GCM open, 16 KB, OpenSSL: 1.60 µs, 1.75× the fastest -1.60 µs +AES-256-GCM open, 16 KB, rind: 899 ns, 1.00× the fastest +899 ns +AES-256-GCM open, 16 KB, aws-lc-rs: 1.55 µs, 1.73× the fastest +1.55 µs +AES-256-GCM open, 16 KB, ring: 933 ns, 1.04× the fastest +933 ns +AES-256-GCM open, 16 KB, RustCrypto + dalek: 2.92 µs, 3.25× the fastest +2.92 µs +AES-256-GCM open, 16 KB, graviola: 1.71 µs, 1.91× the fastest +1.71 µs +AES-256-GCM open, 16 KB, libcrux: 32.61 µs, 36.27× the fastest +32.61 µs +AES-256-GCM open, 16 KB, OpenSSL: 1.58 µs, 1.76× the fastest +1.58 µs ChaCha20-Poly1305 seal, 32 B -ChaCha20-Poly1305 seal, 32 B, rind: 100 ns, 1.00× the fastest -100 ns -ChaCha20-Poly1305 seal, 32 B, aws-lc-rs: 105 ns, 1.05× the fastest -105 ns -ChaCha20-Poly1305 seal, 32 B, ring: 101 ns, 1.01× the fastest -101 ns -ChaCha20-Poly1305 seal, 32 B, RustCrypto + dalek: 1.07 µs, 10.75× the fastest -1.07 µs -ChaCha20-Poly1305 seal, 32 B, graviola: 180 ns, 1.80× the fastest -180 ns -ChaCha20-Poly1305 seal, 32 B, libcrux: 157 ns, 1.57× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step +ChaCha20-Poly1305 seal, 32 B, rind: 98 ns, 1.00× the fastest +98 ns +ChaCha20-Poly1305 seal, 32 B, aws-lc-rs: 103 ns, 1.05× the fastest +103 ns +ChaCha20-Poly1305 seal, 32 B, ring: 99 ns, 1.00× the fastest +99 ns +ChaCha20-Poly1305 seal, 32 B, RustCrypto + dalek: 1.05 µs, 10.68× the fastest +1.05 µs +ChaCha20-Poly1305 seal, 32 B, graviola: 177 ns, 1.80× the fastest +177 ns +ChaCha20-Poly1305 seal, 32 B, libcrux: 157 ns, 1.59× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step 157 ns ✓ -ChaCha20-Poly1305 seal, 32 B, OpenSSL: 177 ns, 1.77× the fastest -177 ns +ChaCha20-Poly1305 seal, 32 B, OpenSSL: 175 ns, 1.78× the fastest +175 ns ChaCha20-Poly1305 seal, 1350 B -ChaCha20-Poly1305 seal, 1350 B, rind: 441 ns, 1.00× the fastest -441 ns -ChaCha20-Poly1305 seal, 1350 B, aws-lc-rs: 453 ns, 1.03× the fastest -453 ns -ChaCha20-Poly1305 seal, 1350 B, ring: 447 ns, 1.01× the fastest -447 ns -ChaCha20-Poly1305 seal, 1350 B, RustCrypto + dalek: 1.67 µs, 3.79× the fastest -1.67 µs -ChaCha20-Poly1305 seal, 1350 B, graviola: 905 ns, 2.05× the fastest -905 ns -ChaCha20-Poly1305 seal, 1350 B, libcrux: 1.78 µs, 4.03× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step -1.78 µs ✓ -ChaCha20-Poly1305 seal, 1350 B, OpenSSL: 590 ns, 1.34× the fastest -590 ns +ChaCha20-Poly1305 seal, 1350 B, rind: 440 ns, 1.00× the fastest +440 ns +ChaCha20-Poly1305 seal, 1350 B, aws-lc-rs: 446 ns, 1.01× the fastest +446 ns +ChaCha20-Poly1305 seal, 1350 B, ring: 448 ns, 1.02× the fastest +448 ns +ChaCha20-Poly1305 seal, 1350 B, RustCrypto + dalek: 1.64 µs, 3.73× the fastest +1.64 µs +ChaCha20-Poly1305 seal, 1350 B, graviola: 890 ns, 2.02× the fastest +890 ns +ChaCha20-Poly1305 seal, 1350 B, libcrux: 1.77 µs, 4.02× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step +1.77 µs ✓ +ChaCha20-Poly1305 seal, 1350 B, OpenSSL: 587 ns, 1.33× the fastest +587 ns ChaCha20-Poly1305 seal, 16 KB -ChaCha20-Poly1305 seal, 16 KB, rind: 4.17 µs, 1.01× the fastest -4.17 µs -ChaCha20-Poly1305 seal, 16 KB, aws-lc-rs: 4.15 µs, 1.00× the fastest -4.15 µs -ChaCha20-Poly1305 seal, 16 KB, ring: 4.14 µs, 1.00× the fastest -4.14 µs -ChaCha20-Poly1305 seal, 16 KB, RustCrypto + dalek: 8.14 µs, 1.97× the fastest -8.14 µs -ChaCha20-Poly1305 seal, 16 KB, graviola: 8.30 µs, 2.01× the fastest -8.30 µs -ChaCha20-Poly1305 seal, 16 KB, libcrux: 19.63 µs, 4.74× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step -19.63 µs ✓ -ChaCha20-Poly1305 seal, 16 KB, OpenSSL: 4.41 µs, 1.07× the fastest -4.41 µs +ChaCha20-Poly1305 seal, 16 KB, rind: 4.19 µs, 1.02× the fastest +4.19 µs +ChaCha20-Poly1305 seal, 16 KB, aws-lc-rs: 4.13 µs, 1.00× the fastest +4.13 µs +ChaCha20-Poly1305 seal, 16 KB, ring: 4.12 µs, 1.00× the fastest +4.12 µs +ChaCha20-Poly1305 seal, 16 KB, RustCrypto + dalek: 8.03 µs, 1.95× the fastest +8.03 µs +ChaCha20-Poly1305 seal, 16 KB, graviola: 8.29 µs, 2.01× the fastest +8.29 µs +ChaCha20-Poly1305 seal, 16 KB, libcrux: 19.31 µs, 4.69× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step +19.31 µs ✓ +ChaCha20-Poly1305 seal, 16 KB, OpenSSL: 4.35 µs, 1.05× the fastest +4.35 µs XChaCha20-Poly1305 seal, 32 B -XChaCha20-Poly1305 seal, 32 B, rind: 188 ns, 1.00× the fastest -188 ns -XChaCha20-Poly1305 seal, 32 B, aws-lc-rs: 199 ns, 1.06× the fastest +XChaCha20-Poly1305 seal, 32 B, rind: 186 ns, 1.00× the fastest +186 ns +XChaCha20-Poly1305 seal, 32 B, aws-lc-rs: 199 ns, 1.07× the fastest 199 ns -XChaCha20-Poly1305 seal, 32 B, RustCrypto + dalek: 889 ns, 4.72× the fastest -889 ns -XChaCha20-Poly1305 seal, 32 B, graviola: 259 ns, 1.38× the fastest -259 ns -XChaCha20-Poly1305 seal, 32 B, libcrux: 248 ns, 1.32× the fastest -248 ns +XChaCha20-Poly1305 seal, 32 B, RustCrypto + dalek: 1.15 µs, 6.21× the fastest +1.15 µs +XChaCha20-Poly1305 seal, 32 B, graviola: 255 ns, 1.37× the fastest +255 ns +XChaCha20-Poly1305 seal, 32 B, libcrux: 244 ns, 1.31× the fastest +244 ns XChaCha20-Poly1305 seal, 1350 B -XChaCha20-Poly1305 seal, 1350 B, rind: 838 ns, 1.22× the fastest -838 ns -XChaCha20-Poly1305 seal, 1350 B, aws-lc-rs: 687 ns, 1.00× the fastest -687 ns -XChaCha20-Poly1305 seal, 1350 B, RustCrypto + dalek: 1.74 µs, 2.54× the fastest -1.74 µs -XChaCha20-Poly1305 seal, 1350 B, graviola: 1.35 µs, 1.97× the fastest -1.35 µs -XChaCha20-Poly1305 seal, 1350 B, libcrux: 2.56 µs, 3.73× the fastest -2.56 µs +XChaCha20-Poly1305 seal, 1350 B, rind: 529 ns, 1.00× the fastest +529 ns +XChaCha20-Poly1305 seal, 1350 B, aws-lc-rs: 539 ns, 1.02× the fastest +539 ns +XChaCha20-Poly1305 seal, 1350 B, RustCrypto + dalek: 1.73 µs, 3.27× the fastest +1.73 µs +XChaCha20-Poly1305 seal, 1350 B, graviola: 974 ns, 1.84× the fastest +974 ns +XChaCha20-Poly1305 seal, 1350 B, libcrux: 1.83 µs, 3.47× the fastest +1.83 µs XChaCha20-Poly1305 seal, 16 KB -XChaCha20-Poly1305 seal, 16 KB, rind: 6.26 µs, 1.00× the fastest -6.26 µs -XChaCha20-Poly1305 seal, 16 KB, aws-lc-rs: 6.27 µs, 1.00× the fastest -6.27 µs -XChaCha20-Poly1305 seal, 16 KB, RustCrypto + dalek: 12.28 µs, 1.96× the fastest -12.28 µs -XChaCha20-Poly1305 seal, 16 KB, graviola: 12.79 µs, 2.04× the fastest -12.79 µs -XChaCha20-Poly1305 seal, 16 KB, libcrux: 27.40 µs, 4.37× the fastest -27.40 µs +XChaCha20-Poly1305 seal, 16 KB, rind: 4.17 µs, 1.00× the fastest +4.17 µs +XChaCha20-Poly1305 seal, 16 KB, aws-lc-rs: 4.23 µs, 1.01× the fastest +4.23 µs +XChaCha20-Poly1305 seal, 16 KB, RustCrypto + dalek: 8.15 µs, 1.95× the fastest +8.15 µs +XChaCha20-Poly1305 seal, 16 KB, graviola: 8.40 µs, 2.01× the fastest +8.40 µs +XChaCha20-Poly1305 seal, 16 KB, libcrux: 19.61 µs, 4.70× the fastest +19.61 µs QUIC header protection AES-128 header protection AES-128 header protection, rind: 2 ns, 1.00× the fastest 2 ns -AES-128 header protection, aws-lc-rs: 3 ns, 1.59× the fastest +AES-128 header protection, aws-lc-rs: 3 ns, 1.91× the fastest 3 ns -AES-128 header protection, ring: 3 ns, 1.68× the fastest +AES-128 header protection, ring: 3 ns, 2.03× the fastest 3 ns AES-256 header protection AES-256 header protection, rind: 2 ns, 1.00× the fastest 2 ns -AES-256 header protection, aws-lc-rs: 5 ns, 2.06× the fastest +AES-256 header protection, aws-lc-rs: 5 ns, 2.56× the fastest 5 ns -AES-256 header protection, ring: 5 ns, 2.16× the fastest +AES-256 header protection, ring: 5 ns, 2.47× the fastest 5 ns ChaCha20 header protection -ChaCha20 header protection, rind: 54 ns, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and a hand model of the function-pointer dispatch Aeneas cannot translate, which assumes each key's mask is its own cipher's, the only one rind builds, of its header-protection API's ChaCha20 against RFC 9001 and RFC 8439, HACL*'s rounds included -54 ns ✓ -ChaCha20 header protection, aws-lc-rs: 69 ns, 1.28× the fastest -69 ns -ChaCha20 header protection, ring: 61 ns, 1.14× the fastest -61 ns +ChaCha20 header protection, rind: 53 ns, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and a hand model of the function-pointer dispatch Aeneas cannot translate, which assumes each key's mask is its own cipher's, the only one rind builds, of its header-protection API's ChaCha20 against RFC 9001 and RFC 8439, HACL*'s rounds included +53 ns ✓ +ChaCha20 header protection, aws-lc-rs: 68 ns, 1.29× the fastest +68 ns +ChaCha20 header protection, ring: 60 ns, 1.14× the fastest +60 ns Key agreement X25519 -X25519, rind: 19.68 µs, 1.06× the fastest; verified: rind's Lean proof, through Aeneas and a hand model of the function-pointer dispatch Aeneas cannot translate, which assumes each key's dispatch table holds its own curve's functions, the only table rind builds, of its agreement API's X25519 down to s2n-bignum's routines, composed with s2n-bignum's HOL Light proofs of curve25519_x25519, curve25519_x25519base, their _alt forms without BMI2 and ADX, and bignum_eq, of s2n-bignum's own object code, which rind transliterates -19.68 µs ✓ -X25519, aws-lc-rs: 19.54 µs, 1.06× the fastest -19.54 µs -X25519, ring: 35.63 µs, 1.93× the fastest +X25519, rind: 18.20 µs, 1.01× the fastest; verified: rind's Lean proof, through Aeneas and a hand model of the function-pointer dispatch Aeneas cannot translate, which assumes each key's dispatch table holds its own curve's functions, the only table rind builds, of its agreement API's X25519 down to s2n-bignum's routines, composed with s2n-bignum's HOL Light proofs of curve25519_x25519, curve25519_x25519base, their _alt forms without BMI2 and ADX, and bignum_eq, of s2n-bignum's own object code, which rind transliterates +18.20 µs ✓ +X25519, aws-lc-rs: 19.24 µs, 1.06× the fastest +19.24 µs +X25519, ring: 35.63 µs, 1.97× the fastest 35.63 µs -X25519, RustCrypto + dalek: 36.52 µs, 1.97× the fastest -36.52 µs -X25519, graviola: 18.50 µs, 1.00× the fastest -18.50 µs -X25519, libcrux: 43.11 µs, 2.33× the fastest; verified: HACL*'s F* proof of Hacl.Curve25519_51's secret_to_public and ecdh, compiled to Rust by an unverified step -43.11 µs ✓ -X25519, OpenSSL: 34.02 µs, 1.84× the fastest -34.02 µs +X25519, RustCrypto + dalek: 36.06 µs, 1.99× the fastest +36.06 µs +X25519, graviola: 18.09 µs, 1.00× the fastest +18.09 µs +X25519, libcrux: 42.68 µs, 2.36× the fastest; verified: HACL*'s F* proof of Hacl.Curve25519_51's secret_to_public and ecdh, compiled to Rust by an unverified step +42.68 µs ✓ +X25519, OpenSSL: 33.95 µs, 1.88× the fastest +33.95 µs P-256 ECDH -P-256 ECDH, rind: 29.85 µs, 1.00× the fastest -29.85 µs -P-256 ECDH, aws-lc-rs: 32.27 µs, 1.08× the fastest -32.27 µs -P-256 ECDH, ring: 34.14 µs, 1.14× the fastest -34.14 µs -P-256 ECDH, RustCrypto + dalek: 123.01 µs, 4.12× the fastest -123.01 µs -P-256 ECDH, graviola: 33.46 µs, 1.12× the fastest -33.46 µs -P-256 ECDH, libcrux: 169.87 µs, 5.69× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step -169.87 µs ✓ -P-256 ECDH, OpenSSL: 52.91 µs, 1.77× the fastest -52.91 µs +P-256 ECDH, rind: 29.52 µs, 1.00× the fastest +29.52 µs +P-256 ECDH, aws-lc-rs: 31.77 µs, 1.08× the fastest +31.77 µs +P-256 ECDH, ring: 33.64 µs, 1.14× the fastest +33.64 µs +P-256 ECDH, RustCrypto + dalek: 121.30 µs, 4.11× the fastest +121.30 µs +P-256 ECDH, graviola: 33.67 µs, 1.14× the fastest +33.67 µs +P-256 ECDH, libcrux: 171.68 µs, 5.81× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step +171.68 µs ✓ +P-256 ECDH, OpenSSL: 52.92 µs, 1.79× the fastest +52.92 µs Signatures Ed25519 sign -Ed25519 sign, rind: 4.15 µs, 1.00× the fastest -4.15 µs -Ed25519 sign, aws-lc-rs: 4.56 µs, 1.10× the fastest -4.56 µs -Ed25519 sign, ring: 13.14 µs, 3.16× the fastest -13.14 µs -Ed25519 sign, RustCrypto + dalek: 9.61 µs, 2.31× the fastest -9.61 µs -Ed25519 sign, graviola: 4.39 µs, 1.06× the fastest -4.39 µs -Ed25519 sign, libcrux: 28.97 µs, 6.97× the fastest; verified: HACL*'s F* proof of Hacl.Ed25519's sign and verify, compiled to Rust by an unverified step -28.97 µs ✓ -Ed25519 sign, OpenSSL: 13.69 µs, 3.30× the fastest -13.69 µs +Ed25519 sign, rind: 4.11 µs, 1.00× the fastest +4.11 µs +Ed25519 sign, aws-lc-rs: 4.49 µs, 1.09× the fastest +4.49 µs +Ed25519 sign, ring: 13.11 µs, 3.19× the fastest +13.11 µs +Ed25519 sign, RustCrypto + dalek: 9.60 µs, 2.34× the fastest +9.60 µs +Ed25519 sign, graviola: 4.40 µs, 1.07× the fastest +4.40 µs +Ed25519 sign, libcrux: 28.54 µs, 6.94× the fastest; verified: HACL*'s F* proof of Hacl.Ed25519's sign and verify, compiled to Rust by an unverified step +28.54 µs ✓ +Ed25519 sign, OpenSSL: 13.67 µs, 3.33× the fastest +13.67 µs Ed25519 verify -Ed25519 verify, rind: 21.75 µs, 1.01× the fastest -21.75 µs -Ed25519 verify, aws-lc-rs: 21.56 µs, 1.00× the fastest -21.56 µs -Ed25519 verify, ring: 26.22 µs, 1.22× the fastest -26.22 µs -Ed25519 verify, RustCrypto + dalek: 21.88 µs, 1.02× the fastest -21.88 µs -Ed25519 verify, graviola: 21.61 µs, 1.00× the fastest -21.61 µs -Ed25519 verify, libcrux: 42.16 µs, 1.96× the fastest; verified: HACL*'s F* proof of Hacl.Ed25519's sign and verify, compiled to Rust by an unverified step -42.16 µs ✓ -Ed25519 verify, OpenSSL: 45.59 µs, 2.11× the fastest -45.59 µs +Ed25519 verify, rind: 21.43 µs, 1.00× the fastest +21.43 µs +Ed25519 verify, aws-lc-rs: 21.41 µs, 1.00× the fastest +21.41 µs +Ed25519 verify, ring: 25.93 µs, 1.21× the fastest +25.93 µs +Ed25519 verify, RustCrypto + dalek: 21.87 µs, 1.02× the fastest +21.87 µs +Ed25519 verify, graviola: 21.45 µs, 1.00× the fastest +21.45 µs +Ed25519 verify, libcrux: 41.83 µs, 1.95× the fastest; verified: HACL*'s F* proof of Hacl.Ed25519's sign and verify, compiled to Rust by an unverified step +41.83 µs ✓ +Ed25519 verify, OpenSSL: 44.79 µs, 2.09× the fastest +44.79 µs P-256 ECDSA sign -P-256 ECDSA sign, rind: 6.84 µs, 1.00× the fastest -6.84 µs -P-256 ECDSA sign, aws-lc-rs: 12.33 µs, 1.80× the fastest -12.33 µs -P-256 ECDSA sign, ring: 12.24 µs, 1.79× the fastest -12.24 µs -P-256 ECDSA sign, RustCrypto + dalek: 31.65 µs, 4.63× the fastest -31.65 µs -P-256 ECDSA sign, graviola: 9.26 µs, 1.35× the fastest -9.26 µs -P-256 ECDSA sign, libcrux: 61.34 µs, 8.97× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step -61.34 µs ✓ -P-256 ECDSA sign, OpenSSL: 14.33 µs, 2.09× the fastest -14.33 µs +P-256 ECDSA sign, rind: 6.74 µs, 1.00× the fastest +6.74 µs +P-256 ECDSA sign, aws-lc-rs: 12.25 µs, 1.82× the fastest +12.25 µs +P-256 ECDSA sign, ring: 12.20 µs, 1.81× the fastest +12.20 µs +P-256 ECDSA sign, RustCrypto + dalek: 31.32 µs, 4.65× the fastest +31.32 µs +P-256 ECDSA sign, graviola: 8.97 µs, 1.33× the fastest +8.97 µs +P-256 ECDSA sign, libcrux: 61.81 µs, 9.17× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step +61.81 µs ✓ +P-256 ECDSA sign, OpenSSL: 14.45 µs, 2.14× the fastest +14.45 µs P-256 ECDSA verify -P-256 ECDSA verify, rind: 30.95 µs, 1.03× the fastest -30.95 µs -P-256 ECDSA verify, aws-lc-rs: 30.08 µs, 1.00× the fastest -30.08 µs -P-256 ECDSA verify, ring: 33.74 µs, 1.12× the fastest -33.74 µs -P-256 ECDSA verify, RustCrypto + dalek: 104.58 µs, 3.48× the fastest -104.58 µs -P-256 ECDSA verify, graviola: 32.89 µs, 1.09× the fastest -32.89 µs -P-256 ECDSA verify, libcrux: 147.11 µs, 4.89× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step -147.11 µs ✓ -P-256 ECDSA verify, OpenSSL: 46.41 µs, 1.54× the fastest -46.41 µs +P-256 ECDSA verify, rind: 30.59 µs, 1.03× the fastest +30.59 µs +P-256 ECDSA verify, aws-lc-rs: 29.75 µs, 1.00× the fastest +29.75 µs +P-256 ECDSA verify, ring: 33.23 µs, 1.12× the fastest +33.23 µs +P-256 ECDSA verify, RustCrypto + dalek: 103.24 µs, 3.47× the fastest +103.24 µs +P-256 ECDSA verify, graviola: 32.36 µs, 1.09× the fastest +32.36 µs +P-256 ECDSA verify, libcrux: 147.27 µs, 4.95× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step +147.27 µs ✓ +P-256 ECDSA verify, OpenSSL: 46.46 µs, 1.56× the fastest +46.46 µs Hashes and KDFs SHA-256, 64 B @@ -508,312 +508,312 @@ 28 ns SHA-256, 64 B, aws-lc-rs: 57 ns, 2.02× the fastest 57 ns -SHA-256, 64 B, ring: 58 ns, 2.04× the fastest -58 ns -SHA-256, 64 B, RustCrypto + dalek: 40 ns, 1.41× the fastest -40 ns -SHA-256, 64 B, graviola: 41 ns, 1.45× the fastest -41 ns -SHA-256, 64 B, libcrux: 211 ns, 7.50× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -211 ns ✓ -SHA-256, 64 B, OpenSSL: 161 ns, 5.72× the fastest -161 ns +SHA-256, 64 B, ring: 56 ns, 2.00× the fastest +56 ns +SHA-256, 64 B, RustCrypto + dalek: 39 ns, 1.39× the fastest +39 ns +SHA-256, 64 B, graviola: 40 ns, 1.42× the fastest +40 ns +SHA-256, 64 B, libcrux: 218 ns, 7.72× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +218 ns ✓ +SHA-256, 64 B, OpenSSL: 158 ns, 5.62× the fastest +158 ns SHA-256, 1350 B -SHA-256, 1350 B, rind: 279 ns, 1.00× the fastest -279 ns -SHA-256, 1350 B, aws-lc-rs: 312 ns, 1.12× the fastest -312 ns -SHA-256, 1350 B, ring: 304 ns, 1.09× the fastest +SHA-256, 1350 B, rind: 269 ns, 1.00× the fastest +269 ns +SHA-256, 1350 B, aws-lc-rs: 306 ns, 1.14× the fastest +306 ns +SHA-256, 1350 B, ring: 304 ns, 1.13× the fastest 304 ns -SHA-256, 1350 B, RustCrypto + dalek: 296 ns, 1.06× the fastest +SHA-256, 1350 B, RustCrypto + dalek: 296 ns, 1.10× the fastest 296 ns -SHA-256, 1350 B, graviola: 297 ns, 1.06× the fastest -297 ns -SHA-256, 1350 B, libcrux: 2.31 µs, 8.25× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -2.31 µs ✓ -SHA-256, 1350 B, OpenSSL: 415 ns, 1.48× the fastest -415 ns +SHA-256, 1350 B, graviola: 292 ns, 1.09× the fastest +292 ns +SHA-256, 1350 B, libcrux: 2.29 µs, 8.50× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +2.29 µs ✓ +SHA-256, 1350 B, OpenSSL: 406 ns, 1.51× the fastest +406 ns SHA-256, 16 KB -SHA-256, 16 KB, rind: 3.24 µs, 1.00× the fastest -3.24 µs -SHA-256, 16 KB, aws-lc-rs: 3.28 µs, 1.01× the fastest -3.28 µs -SHA-256, 16 KB, ring: 3.28 µs, 1.01× the fastest -3.28 µs -SHA-256, 16 KB, RustCrypto + dalek: 3.26 µs, 1.01× the fastest -3.26 µs -SHA-256, 16 KB, graviola: 3.27 µs, 1.01× the fastest -3.27 µs -SHA-256, 16 KB, libcrux: 26.81 µs, 8.27× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -26.81 µs ✓ -SHA-256, 16 KB, OpenSSL: 3.39 µs, 1.05× the fastest -3.39 µs +SHA-256, 16 KB, rind: 3.19 µs, 1.00× the fastest +3.19 µs +SHA-256, 16 KB, aws-lc-rs: 3.23 µs, 1.01× the fastest +3.23 µs +SHA-256, 16 KB, ring: 3.22 µs, 1.01× the fastest +3.22 µs +SHA-256, 16 KB, RustCrypto + dalek: 3.22 µs, 1.01× the fastest +3.22 µs +SHA-256, 16 KB, graviola: 3.22 µs, 1.01× the fastest +3.22 µs +SHA-256, 16 KB, libcrux: 26.90 µs, 8.43× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +26.90 µs ✓ +SHA-256, 16 KB, OpenSSL: 3.36 µs, 1.05× the fastest +3.36 µs SHA-512, 64 B SHA-512, 64 B, rind: 60 ns, 1.00× the fastest 60 ns -SHA-512, 64 B, aws-lc-rs: 136 ns, 2.27× the fastest; verified: aws-lc-verification's SAW proof of SHA-512 through EVP_Digest, padding included, over sha512_block_data_order_avx, which aws-lc runs only on Intel; of aws-lc c21d40da, whose SHA-512 code 5.12.0 keeps -136 ns ✓ -SHA-512, 64 B, ring: 142 ns, 2.36× the fastest -142 ns -SHA-512, 64 B, RustCrypto + dalek: 120 ns, 1.99× the fastest +SHA-512, 64 B, aws-lc-rs: 134 ns, 2.23× the fastest; verified: aws-lc-verification's SAW proof of SHA-512 through EVP_Digest, padding included, over sha512_block_data_order_avx, which aws-lc runs only on Intel; of aws-lc c21d40da, whose SHA-512 code 5.12.0 keeps +134 ns ✓ +SHA-512, 64 B, ring: 140 ns, 2.33× the fastest +140 ns +SHA-512, 64 B, RustCrypto + dalek: 120 ns, 2.00× the fastest 120 ns -SHA-512, 64 B, graviola: 150 ns, 2.49× the fastest -150 ns -SHA-512, 64 B, libcrux: 167 ns, 2.78× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -167 ns ✓ -SHA-512, 64 B, OpenSSL: 233 ns, 3.87× the fastest -233 ns +SHA-512, 64 B, graviola: 148 ns, 2.47× the fastest +148 ns +SHA-512, 64 B, libcrux: 166 ns, 2.77× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +166 ns ✓ +SHA-512, 64 B, OpenSSL: 226 ns, 3.76× the fastest +226 ns SHA-512, 1350 B -SHA-512, 1350 B, rind: 470 ns, 1.00× the fastest -470 ns -SHA-512, 1350 B, aws-lc-rs: 1.27 µs, 2.69× the fastest; verified: aws-lc-verification's SAW proof of SHA-512 through EVP_Digest, padding included, over sha512_block_data_order_avx, which aws-lc runs only on Intel; of aws-lc c21d40da, whose SHA-512 code 5.12.0 keeps -1.27 µs ✓ -SHA-512, 1350 B, ring: 1.26 µs, 2.69× the fastest -1.26 µs -SHA-512, 1350 B, RustCrypto + dalek: 1.18 µs, 2.50× the fastest -1.18 µs -SHA-512, 1350 B, graviola: 1.51 µs, 3.21× the fastest -1.51 µs -SHA-512, 1350 B, libcrux: 1.69 µs, 3.59× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -1.69 µs ✓ -SHA-512, 1350 B, OpenSSL: 1.20 µs, 2.55× the fastest -1.20 µs +SHA-512, 1350 B, rind: 249 ns, 1.00× the fastest +249 ns +SHA-512, 1350 B, aws-lc-rs: 1.24 µs, 4.99× the fastest; verified: aws-lc-verification's SAW proof of SHA-512 through EVP_Digest, padding included, over sha512_block_data_order_avx, which aws-lc runs only on Intel; of aws-lc c21d40da, whose SHA-512 code 5.12.0 keeps +1.24 µs ✓ +SHA-512, 1350 B, ring: 1.26 µs, 5.05× the fastest +1.26 µs +SHA-512, 1350 B, RustCrypto + dalek: 1.17 µs, 4.68× the fastest +1.17 µs +SHA-512, 1350 B, graviola: 1.49 µs, 5.96× the fastest +1.49 µs +SHA-512, 1350 B, libcrux: 1.72 µs, 6.89× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +1.72 µs ✓ +SHA-512, 1350 B, OpenSSL: 1.17 µs, 4.70× the fastest +1.17 µs SHA-512, 16 KB -SHA-512, 16 KB, rind: 2.68 µs, 1.00× the fastest -2.68 µs -SHA-512, 16 KB, aws-lc-rs: 14.32 µs, 5.34× the fastest; verified: aws-lc-verification's SAW proof of SHA-512 through EVP_Digest, padding included, over sha512_block_data_order_avx, which aws-lc runs only on Intel; of aws-lc c21d40da, whose SHA-512 code 5.12.0 keeps -14.32 µs ✓ -SHA-512, 16 KB, ring: 14.36 µs, 5.35× the fastest -14.36 µs -SHA-512, 16 KB, RustCrypto + dalek: 13.55 µs, 5.05× the fastest -13.55 µs -SHA-512, 16 KB, graviola: 17.96 µs, 6.70× the fastest -17.96 µs -SHA-512, 16 KB, libcrux: 20.01 µs, 7.46× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -20.01 µs ✓ -SHA-512, 16 KB, OpenSSL: 12.51 µs, 4.66× the fastest -12.51 µs +SHA-512, 16 KB, rind: 2.63 µs, 1.00× the fastest +2.63 µs +SHA-512, 16 KB, aws-lc-rs: 14.12 µs, 5.38× the fastest; verified: aws-lc-verification's SAW proof of SHA-512 through EVP_Digest, padding included, over sha512_block_data_order_avx, which aws-lc runs only on Intel; of aws-lc c21d40da, whose SHA-512 code 5.12.0 keeps +14.12 µs ✓ +SHA-512, 16 KB, ring: 14.10 µs, 5.37× the fastest +14.10 µs +SHA-512, 16 KB, RustCrypto + dalek: 13.51 µs, 5.15× the fastest +13.51 µs +SHA-512, 16 KB, graviola: 17.50 µs, 6.66× the fastest +17.50 µs +SHA-512, 16 KB, libcrux: 20.10 µs, 7.66× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +20.10 µs ✓ +SHA-512, 16 KB, OpenSSL: 12.29 µs, 4.68× the fastest +12.29 µs HMAC-SHA256, 64 B HMAC-SHA256, 64 B, rind: 75 ns, 1.00× the fastest 75 ns -HMAC-SHA256, 64 B, aws-lc-rs: 180 ns, 2.38× the fastest +HMAC-SHA256, 64 B, aws-lc-rs: 180 ns, 2.40× the fastest 180 ns HMAC-SHA256, 64 B, ring: 145 ns, 1.93× the fastest 145 ns -HMAC-SHA256, 64 B, RustCrypto + dalek: 104 ns, 1.39× the fastest -104 ns -HMAC-SHA256, 64 B, graviola: 115 ns, 1.52× the fastest -115 ns -HMAC-SHA256, 64 B, libcrux: 536 ns, 7.12× the fastest; verified: HACL*'s F* proof of Hacl.HMAC's compute_sha2_256, compiled to Rust by an unverified step -536 ns ✓ -HMAC-SHA256, 64 B, OpenSSL: 1.56 µs, 20.76× the fastest -1.56 µs +HMAC-SHA256, 64 B, RustCrypto + dalek: 103 ns, 1.37× the fastest +103 ns +HMAC-SHA256, 64 B, graviola: 110 ns, 1.47× the fastest +110 ns +HMAC-SHA256, 64 B, libcrux: 537 ns, 7.15× the fastest; verified: HACL*'s F* proof of Hacl.HMAC's compute_sha2_256, compiled to Rust by an unverified step +537 ns ✓ +HMAC-SHA256, 64 B, OpenSSL: 1.55 µs, 20.71× the fastest +1.55 µs HMAC-SHA256, 1350 B -HMAC-SHA256, 1350 B, rind: 327 ns, 1.00× the fastest -327 ns -HMAC-SHA256, 1350 B, aws-lc-rs: 434 ns, 1.33× the fastest -434 ns -HMAC-SHA256, 1350 B, ring: 399 ns, 1.22× the fastest -399 ns -HMAC-SHA256, 1350 B, RustCrypto + dalek: 358 ns, 1.09× the fastest -358 ns -HMAC-SHA256, 1350 B, graviola: 363 ns, 1.11× the fastest -363 ns -HMAC-SHA256, 1350 B, libcrux: 2.66 µs, 8.15× the fastest; verified: HACL*'s F* proof of Hacl.HMAC's compute_sha2_256, compiled to Rust by an unverified step -2.66 µs ✓ -HMAC-SHA256, 1350 B, OpenSSL: 1.83 µs, 5.60× the fastest -1.83 µs +HMAC-SHA256, 1350 B, rind: 328 ns, 1.00× the fastest +328 ns +HMAC-SHA256, 1350 B, aws-lc-rs: 435 ns, 1.33× the fastest +435 ns +HMAC-SHA256, 1350 B, ring: 397 ns, 1.21× the fastest +397 ns +HMAC-SHA256, 1350 B, RustCrypto + dalek: 356 ns, 1.08× the fastest +356 ns +HMAC-SHA256, 1350 B, graviola: 358 ns, 1.09× the fastest +358 ns +HMAC-SHA256, 1350 B, libcrux: 2.68 µs, 8.15× the fastest; verified: HACL*'s F* proof of Hacl.HMAC's compute_sha2_256, compiled to Rust by an unverified step +2.68 µs ✓ +HMAC-SHA256, 1350 B, OpenSSL: 1.81 µs, 5.51× the fastest +1.81 µs HKDF-SHA256 extract and expand -HKDF-SHA256 extract and expand, rind: 152 ns, 1.00× the fastest -152 ns -HKDF-SHA256 extract and expand, aws-lc-rs: 288 ns, 1.90× the fastest -288 ns -HKDF-SHA256 extract and expand, ring: 305 ns, 2.01× the fastest -305 ns -HKDF-SHA256 extract and expand, RustCrypto + dalek: 223 ns, 1.47× the fastest +HKDF-SHA256 extract and expand, rind: 158 ns, 1.00× the fastest +158 ns +HKDF-SHA256 extract and expand, aws-lc-rs: 285 ns, 1.80× the fastest +285 ns +HKDF-SHA256 extract and expand, ring: 303 ns, 1.92× the fastest +303 ns +HKDF-SHA256 extract and expand, RustCrypto + dalek: 223 ns, 1.41× the fastest 223 ns -HKDF-SHA256 extract and expand, libcrux: 965 ns, 6.36× the fastest; verified: HACL*'s F* proof of Hacl.HKDF's extract_sha2_256 and expand_sha2_256, compiled to Rust by an unverified step +HKDF-SHA256 extract and expand, libcrux: 965 ns, 6.12× the fastest; verified: HACL*'s F* proof of Hacl.HKDF's extract_sha2_256 and expand_sha2_256, compiled to Rust by an unverified step 965 ns ✓ -HKDF-SHA256 extract and expand, OpenSSL: 1.76 µs, 11.57× the fastest -1.76 µs +HKDF-SHA256 extract and expand, OpenSSL: 1.72 µs, 10.92× the fastest +1.72 µs HKDF-SHA256 expand -HKDF-SHA256 expand, rind: 47 ns, 1.00× the fastest -47 ns -HKDF-SHA256 expand, aws-lc-rs: 126 ns, 2.70× the fastest -126 ns -HKDF-SHA256 expand, ring: 122 ns, 2.63× the fastest -122 ns -HKDF-SHA256 expand, RustCrypto + dalek: 85 ns, 1.83× the fastest -85 ns -HKDF-SHA256 expand, libcrux: 484 ns, 10.38× the fastest; verified: HACL*'s F* proof of Hacl.HKDF's extract_sha2_256 and expand_sha2_256, compiled to Rust by an unverified step -484 ns ✓ -HKDF-SHA256 expand, OpenSSL: 1.25 µs, 26.79× the fastest -1.25 µs +HKDF-SHA256 expand, rind: 66 ns, 1.00× the fastest +66 ns +HKDF-SHA256 expand, aws-lc-rs: 124 ns, 1.88× the fastest +124 ns +HKDF-SHA256 expand, ring: 120 ns, 1.82× the fastest +120 ns +HKDF-SHA256 expand, RustCrypto + dalek: 84 ns, 1.27× the fastest +84 ns +HKDF-SHA256 expand, libcrux: 480 ns, 7.26× the fastest; verified: HACL*'s F* proof of Hacl.HKDF's extract_sha2_256 and expand_sha2_256, compiled to Rust by an unverified step +480 ns ✓ +HKDF-SHA256 expand, OpenSSL: 1.23 µs, 18.65× the fastest +1.23 µs RSA RSA-2048 PKCS#1 sign -RSA-2048 PKCS#1 sign, rind: 348.43 µs, 1.02× the fastest -348.43 µs -RSA-2048 PKCS#1 sign, aws-lc-rs: 349.47 µs, 1.02× the fastest -349.47 µs -RSA-2048 PKCS#1 sign, ring: 341.11 µs, 1.00× the fastest -341.11 µs -RSA-2048 PKCS#1 sign, RustCrypto + dalek: 588.67 µs, 1.73× the fastest -588.67 µs -RSA-2048 PKCS#1 sign, graviola: 343.91 µs, 1.01× the fastest -343.91 µs -RSA-2048 PKCS#1 sign, OpenSSL: 397.72 µs, 1.17× the fastest -397.72 µs +RSA-2048 PKCS#1 sign, rind: 341.49 µs, 1.02× the fastest +341.49 µs +RSA-2048 PKCS#1 sign, aws-lc-rs: 344.24 µs, 1.02× the fastest +344.24 µs +RSA-2048 PKCS#1 sign, ring: 336.10 µs, 1.00× the fastest +336.10 µs +RSA-2048 PKCS#1 sign, RustCrypto + dalek: 580.18 µs, 1.73× the fastest +580.18 µs +RSA-2048 PKCS#1 sign, graviola: 343.75 µs, 1.02× the fastest +343.75 µs +RSA-2048 PKCS#1 sign, OpenSSL: 393.45 µs, 1.17× the fastest +393.45 µs RSA-2048 PKCS#1 verify -RSA-2048 PKCS#1 verify, rind: 8.97 µs, 1.00× the fastest -8.97 µs -RSA-2048 PKCS#1 verify, aws-lc-rs: 10.86 µs, 1.21× the fastest -10.86 µs -RSA-2048 PKCS#1 verify, ring: 12.70 µs, 1.41× the fastest -12.70 µs -RSA-2048 PKCS#1 verify, RustCrypto + dalek: 29.41 µs, 3.28× the fastest -29.41 µs -RSA-2048 PKCS#1 verify, graviola: 14.06 µs, 1.57× the fastest -14.06 µs -RSA-2048 PKCS#1 verify, OpenSSL: 15.59 µs, 1.74× the fastest -15.59 µs +RSA-2048 PKCS#1 verify, rind: 8.92 µs, 1.00× the fastest +8.92 µs +RSA-2048 PKCS#1 verify, aws-lc-rs: 10.96 µs, 1.23× the fastest +10.96 µs +RSA-2048 PKCS#1 verify, ring: 12.78 µs, 1.43× the fastest +12.78 µs +RSA-2048 PKCS#1 verify, RustCrypto + dalek: 29.01 µs, 3.25× the fastest +29.01 µs +RSA-2048 PKCS#1 verify, graviola: 13.98 µs, 1.57× the fastest +13.98 µs +RSA-2048 PKCS#1 verify, OpenSSL: 15.51 µs, 1.74× the fastest +15.51 µs RSA-2048 PSS sign -RSA-2048 PSS sign, rind: 346.52 µs, 1.01× the fastest -346.52 µs -RSA-2048 PSS sign, aws-lc-rs: 350.45 µs, 1.03× the fastest -350.45 µs -RSA-2048 PSS sign, ring: 341.45 µs, 1.00× the fastest -341.45 µs -RSA-2048 PSS sign, RustCrypto + dalek: 588.33 µs, 1.72× the fastest -588.33 µs -RSA-2048 PSS sign, graviola: 342.67 µs, 1.00× the fastest -342.67 µs -RSA-2048 PSS sign, libcrux: 4.10 ms, 12.00× the fastest; verified: HACL*'s F* proof of Hacl.RSAPSS's rsapss_skey_sign and rsapss_pkey_verify, signing without the CRT, compiled to Rust by an unverified step -4.10 ms ✓ -RSA-2048 PSS sign, OpenSSL: 395.81 µs, 1.16× the fastest -395.81 µs +RSA-2048 PSS sign, rind: 341.45 µs, 1.00× the fastest +341.45 µs +RSA-2048 PSS sign, aws-lc-rs: 346.55 µs, 1.01× the fastest +346.55 µs +RSA-2048 PSS sign, ring: 342.49 µs, 1.00× the fastest +342.49 µs +RSA-2048 PSS sign, RustCrypto + dalek: 581.16 µs, 1.70× the fastest +581.16 µs +RSA-2048 PSS sign, graviola: 344.58 µs, 1.01× the fastest +344.58 µs +RSA-2048 PSS sign, libcrux: 3.69 ms, 10.79× the fastest; verified: HACL*'s F* proof of Hacl.RSAPSS's rsapss_skey_sign and rsapss_pkey_verify, signing without the CRT, compiled to Rust by an unverified step +3.69 ms ✓ +RSA-2048 PSS sign, OpenSSL: 390.44 µs, 1.14× the fastest +390.44 µs RSA-2048 PSS verify -RSA-2048 PSS verify, rind: 9.18 µs, 1.00× the fastest -9.18 µs -RSA-2048 PSS verify, aws-lc-rs: 11.17 µs, 1.22× the fastest -11.17 µs -RSA-2048 PSS verify, ring: 13.31 µs, 1.45× the fastest -13.31 µs -RSA-2048 PSS verify, RustCrypto + dalek: 35.62 µs, 3.88× the fastest -35.62 µs -RSA-2048 PSS verify, graviola: 14.44 µs, 1.57× the fastest -14.44 µs -RSA-2048 PSS verify, libcrux: 252.13 µs, 27.46× the fastest; verified: HACL*'s F* proof of Hacl.RSAPSS's rsapss_skey_sign and rsapss_pkey_verify, signing without the CRT, compiled to Rust by an unverified step -252.13 µs ✓ -RSA-2048 PSS verify, OpenSSL: 16.36 µs, 1.78× the fastest -16.36 µs +RSA-2048 PSS verify, rind: 9.15 µs, 1.00× the fastest +9.15 µs +RSA-2048 PSS verify, aws-lc-rs: 11.16 µs, 1.22× the fastest +11.16 µs +RSA-2048 PSS verify, ring: 13.19 µs, 1.44× the fastest +13.19 µs +RSA-2048 PSS verify, RustCrypto + dalek: 35.27 µs, 3.86× the fastest +35.27 µs +RSA-2048 PSS verify, graviola: 14.30 µs, 1.56× the fastest +14.30 µs +RSA-2048 PSS verify, libcrux: 251.91 µs, 27.53× the fastest; verified: HACL*'s F* proof of Hacl.RSAPSS's rsapss_skey_sign and rsapss_pkey_verify, signing without the CRT, compiled to Rust by an unverified step +251.91 µs ✓ +RSA-2048 PSS verify, OpenSSL: 16.25 µs, 1.78× the fastest +16.25 µs ML-KEM ML-KEM-768 key generation -ML-KEM-768 key generation, rind: 6.45 µs, 1.00× the fastest -6.45 µs -ML-KEM-768 key generation, aws-lc-rs: 8.27 µs, 1.28× the fastest -8.27 µs -ML-KEM-768 key generation, RustCrypto + dalek: 40.26 µs, 6.24× the fastest -40.26 µs -ML-KEM-768 key generation, graviola: 7.67 µs, 1.19× the fastest -7.67 µs -ML-KEM-768 key generation, libcrux: 15.15 µs, 2.35× the fastest -15.15 µs -ML-KEM-768 key generation, OpenSSL: 19.80 µs, 3.07× the fastest -19.80 µs +ML-KEM-768 key generation, rind: 6.35 µs, 1.00× the fastest +6.35 µs +ML-KEM-768 key generation, aws-lc-rs: 8.13 µs, 1.28× the fastest +8.13 µs +ML-KEM-768 key generation, RustCrypto + dalek: 39.63 µs, 6.24× the fastest +39.63 µs +ML-KEM-768 key generation, graviola: 7.37 µs, 1.16× the fastest +7.37 µs +ML-KEM-768 key generation, libcrux: 15.02 µs, 2.37× the fastest +15.02 µs +ML-KEM-768 key generation, OpenSSL: 19.81 µs, 3.12× the fastest +19.81 µs ML-KEM-768 encapsulate -ML-KEM-768 encapsulate, rind: 6.65 µs, 1.00× the fastest -6.65 µs -ML-KEM-768 encapsulate, aws-lc-rs: 8.68 µs, 1.31× the fastest -8.68 µs -ML-KEM-768 encapsulate, RustCrypto + dalek: 41.71 µs, 6.27× the fastest -41.71 µs -ML-KEM-768 encapsulate, graviola: 9.11 µs, 1.37× the fastest -9.11 µs -ML-KEM-768 encapsulate, libcrux: 12.94 µs, 1.94× the fastest -12.94 µs -ML-KEM-768 encapsulate, OpenSSL: 18.77 µs, 2.82× the fastest +ML-KEM-768 encapsulate, rind: 6.50 µs, 1.00× the fastest +6.50 µs +ML-KEM-768 encapsulate, aws-lc-rs: 8.48 µs, 1.30× the fastest +8.48 µs +ML-KEM-768 encapsulate, RustCrypto + dalek: 41.38 µs, 6.36× the fastest +41.38 µs +ML-KEM-768 encapsulate, graviola: 9.00 µs, 1.38× the fastest +9.00 µs +ML-KEM-768 encapsulate, libcrux: 12.80 µs, 1.97× the fastest +12.80 µs +ML-KEM-768 encapsulate, OpenSSL: 18.77 µs, 2.89× the fastest 18.77 µs ML-KEM-768 decapsulate -ML-KEM-768 decapsulate, rind: 4.69 µs, 1.00× the fastest -4.69 µs -ML-KEM-768 decapsulate, aws-lc-rs: 9.02 µs, 1.92× the fastest -9.02 µs -ML-KEM-768 decapsulate, RustCrypto + dalek: 54.19 µs, 11.55× the fastest -54.19 µs -ML-KEM-768 decapsulate, graviola: 6.59 µs, 1.41× the fastest -6.59 µs -ML-KEM-768 decapsulate, libcrux: 13.44 µs, 2.87× the fastest +ML-KEM-768 decapsulate, rind: 4.64 µs, 1.00× the fastest +4.64 µs +ML-KEM-768 decapsulate, aws-lc-rs: 8.90 µs, 1.92× the fastest +8.90 µs +ML-KEM-768 decapsulate, RustCrypto + dalek: 54.87 µs, 11.81× the fastest +54.87 µs +ML-KEM-768 decapsulate, graviola: 6.54 µs, 1.41× the fastest +6.54 µs +ML-KEM-768 decapsulate, libcrux: 13.44 µs, 2.89× the fastest 13.44 µs -ML-KEM-768 decapsulate, OpenSSL: 16.05 µs, 3.42× the fastest -16.05 µs +ML-KEM-768 decapsulate, OpenSSL: 15.77 µs, 3.40× the fastest +15.77 µs P-384 and P-521 P-384 ECDH -P-384 ECDH, rind: 100.08 µs, 1.00× the fastest -100.08 µs -P-384 ECDH, aws-lc-rs: 111.11 µs, 1.11× the fastest -111.11 µs -P-384 ECDH, ring: 369.71 µs, 3.69× the fastest -369.71 µs -P-384 ECDH, RustCrypto + dalek: 401.25 µs, 4.01× the fastest -401.25 µs -P-384 ECDH, graviola: 170.94 µs, 1.71× the fastest -170.94 µs -P-384 ECDH, OpenSSL: 264.84 µs, 2.65× the fastest -264.84 µs +P-384 ECDH, rind: 100.20 µs, 1.00× the fastest +100.20 µs +P-384 ECDH, aws-lc-rs: 109.34 µs, 1.09× the fastest +109.34 µs +P-384 ECDH, ring: 369.83 µs, 3.69× the fastest +369.83 µs +P-384 ECDH, RustCrypto + dalek: 402.09 µs, 4.01× the fastest +402.09 µs +P-384 ECDH, graviola: 174.12 µs, 1.74× the fastest +174.12 µs +P-384 ECDH, OpenSSL: 265.21 µs, 2.65× the fastest +265.21 µs P-384 ECDSA sign -P-384 ECDSA sign, rind: 23.53 µs, 1.00× the fastest -23.53 µs -P-384 ECDSA sign, aws-lc-rs: 46.52 µs, 1.98× the fastest -46.52 µs -P-384 ECDSA sign, ring: 200.86 µs, 8.54× the fastest -200.86 µs -P-384 ECDSA sign, RustCrypto + dalek: 86.86 µs, 3.69× the fastest -86.86 µs -P-384 ECDSA sign, graviola: 90.69 µs, 3.85× the fastest -90.69 µs -P-384 ECDSA sign, OpenSSL: 89.64 µs, 3.81× the fastest -89.64 µs +P-384 ECDSA sign, rind: 23.48 µs, 1.00× the fastest +23.48 µs +P-384 ECDSA sign, aws-lc-rs: 46.55 µs, 1.98× the fastest +46.55 µs +P-384 ECDSA sign, ring: 197.31 µs, 8.40× the fastest +197.31 µs +P-384 ECDSA sign, RustCrypto + dalek: 85.50 µs, 3.64× the fastest +85.50 µs +P-384 ECDSA sign, graviola: 90.29 µs, 3.85× the fastest +90.29 µs +P-384 ECDSA sign, OpenSSL: 88.98 µs, 3.79× the fastest +88.98 µs P-384 ECDSA verify -P-384 ECDSA verify, rind: 98.87 µs, 1.00× the fastest -98.87 µs -P-384 ECDSA verify, aws-lc-rs: 116.66 µs, 1.18× the fastest -116.66 µs -P-384 ECDSA verify, ring: 360.29 µs, 3.64× the fastest -360.29 µs -P-384 ECDSA verify, RustCrypto + dalek: 360.21 µs, 3.64× the fastest -360.21 µs -P-384 ECDSA verify, graviola: 167.40 µs, 1.69× the fastest -167.40 µs -P-384 ECDSA verify, OpenSSL: 215.86 µs, 2.18× the fastest -215.86 µs +P-384 ECDSA verify, rind: 100.10 µs, 1.00× the fastest +100.10 µs +P-384 ECDSA verify, aws-lc-rs: 115.71 µs, 1.16× the fastest +115.71 µs +P-384 ECDSA verify, ring: 357.26 µs, 3.57× the fastest +357.26 µs +P-384 ECDSA verify, RustCrypto + dalek: 359.61 µs, 3.59× the fastest +359.61 µs +P-384 ECDSA verify, graviola: 166.49 µs, 1.66× the fastest +166.49 µs +P-384 ECDSA verify, OpenSSL: 216.27 µs, 2.16× the fastest +216.27 µs P-521 ECDH -P-521 ECDH, rind: 160.77 µs, 1.00× the fastest -160.77 µs -P-521 ECDH, aws-lc-rs: 170.98 µs, 1.06× the fastest -170.98 µs -P-521 ECDH, RustCrypto + dalek: 431.17 µs, 2.68× the fastest -431.17 µs -P-521 ECDH, OpenSSL: 276.21 µs, 1.72× the fastest -276.21 µs +P-521 ECDH, rind: 159.57 µs, 1.00× the fastest +159.57 µs +P-521 ECDH, aws-lc-rs: 171.50 µs, 1.07× the fastest +171.50 µs +P-521 ECDH, RustCrypto + dalek: 428.27 µs, 2.68× the fastest +428.27 µs +P-521 ECDH, OpenSSL: 276.64 µs, 1.73× the fastest +276.64 µs P-521 ECDSA sign -P-521 ECDSA sign, rind: 40.56 µs, 1.00× the fastest -40.56 µs -P-521 ECDSA sign, aws-lc-rs: 89.64 µs, 2.21× the fastest -89.64 µs -P-521 ECDSA sign, RustCrypto + dalek: 95.29 µs, 2.35× the fastest -95.29 µs -P-521 ECDSA sign, OpenSSL: 129.20 µs, 3.19× the fastest -129.20 µs +P-521 ECDSA sign, rind: 40.09 µs, 1.00× the fastest +40.09 µs +P-521 ECDSA sign, aws-lc-rs: 88.28 µs, 2.20× the fastest +88.28 µs +P-521 ECDSA sign, RustCrypto + dalek: 94.09 µs, 2.35× the fastest +94.09 µs +P-521 ECDSA sign, OpenSSL: 127.93 µs, 3.19× the fastest +127.93 µs P-521 ECDSA verify -P-521 ECDSA verify, rind: 147.09 µs, 1.00× the fastest -147.09 µs -P-521 ECDSA verify, aws-lc-rs: 186.61 µs, 1.27× the fastest -186.61 µs -P-521 ECDSA verify, RustCrypto + dalek: 359.57 µs, 2.44× the fastest -359.57 µs -P-521 ECDSA verify, OpenSSL: 267.51 µs, 1.82× the fastest -267.51 µs +P-521 ECDSA verify, rind: 145.10 µs, 1.00× the fastest +145.10 µs +P-521 ECDSA verify, aws-lc-rs: 186.69 µs, 1.29× the fastest +186.69 µs +P-521 ECDSA verify, RustCrypto + dalek: 352.95 µs, 2.43× the fastest +352.95 µs +P-521 ECDSA verify, OpenSSL: 261.10 µs, 1.80× the fastest +261.10 µs diff --git a/benchmarks/desktop.svg b/benchmarks/desktop.svg index aade5ced5..15f5d9821 100644 --- a/benchmarks/desktop.svg +++ b/benchmarks/desktop.svg @@ -28,479 +28,479 @@ TLS 1.3 with rustls full handshake, X25519MLKEM768 -full handshake, X25519MLKEM768, rind: 174.97 µs, 1.00× the fastest -174.97 µs -full handshake, X25519MLKEM768, aws-lc-rs: 235.60 µs, 1.35× the fastest -235.60 µs -full handshake, X25519MLKEM768, graviola: 191.49 µs, 1.09× the fastest -191.49 µs -full handshake, X25519MLKEM768, OpenSSL: 437.46 µs, 2.50× the fastest -437.46 µs +full handshake, X25519MLKEM768, rind: 172.30 µs, 1.00× the fastest +172.30 µs +full handshake, X25519MLKEM768, aws-lc-rs: 233.73 µs, 1.36× the fastest +233.73 µs +full handshake, X25519MLKEM768, graviola: 188.19 µs, 1.09× the fastest +188.19 µs +full handshake, X25519MLKEM768, OpenSSL: 438.88 µs, 2.55× the fastest +438.88 µs full handshake, X25519 -full handshake, X25519, rind: 152.75 µs, 1.00× the fastest -152.75 µs -full handshake, X25519, aws-lc-rs: 203.62 µs, 1.33× the fastest -203.62 µs -full handshake, X25519, ring: 222.88 µs, 1.46× the fastest -222.88 µs -full handshake, X25519, graviola: 162.55 µs, 1.06× the fastest -162.55 µs -full handshake, X25519, OpenSSL: 367.79 µs, 2.41× the fastest -367.79 µs +full handshake, X25519, rind: 151.32 µs, 1.00× the fastest +151.32 µs +full handshake, X25519, aws-lc-rs: 201.93 µs, 1.33× the fastest +201.93 µs +full handshake, X25519, ring: 221.01 µs, 1.46× the fastest +221.01 µs +full handshake, X25519, graviola: 161.40 µs, 1.07× the fastest +161.40 µs +full handshake, X25519, OpenSSL: 366.38 µs, 2.42× the fastest +366.38 µs full handshake, P-256 -full handshake, P-256, rind: 175.68 µs, 1.00× the fastest -175.68 µs -full handshake, P-256, aws-lc-rs: 228.85 µs, 1.30× the fastest -228.85 µs -full handshake, P-256, ring: 221.72 µs, 1.26× the fastest -221.72 µs -full handshake, P-256, graviola: 193.10 µs, 1.10× the fastest -193.10 µs -full handshake, P-256, OpenSSL: 406.49 µs, 2.31× the fastest -406.49 µs +full handshake, P-256, rind: 174.55 µs, 1.00× the fastest +174.55 µs +full handshake, P-256, aws-lc-rs: 227.86 µs, 1.31× the fastest +227.86 µs +full handshake, P-256, ring: 219.51 µs, 1.26× the fastest +219.51 µs +full handshake, P-256, graviola: 191.81 µs, 1.10× the fastest +191.81 µs +full handshake, P-256, OpenSSL: 400.76 µs, 2.30× the fastest +400.76 µs full handshake, Ed25519 certificate -full handshake, Ed25519 certificate, rind: 123.11 µs, 1.00× the fastest -123.11 µs -full handshake, Ed25519 certificate, aws-lc-rs: 168.12 µs, 1.37× the fastest -168.12 µs -full handshake, Ed25519 certificate, ring: 205.53 µs, 1.67× the fastest -205.53 µs -full handshake, Ed25519 certificate, graviola: 125.46 µs, 1.02× the fastest -125.46 µs -full handshake, Ed25519 certificate, OpenSSL: 373.29 µs, 3.03× the fastest -373.29 µs +full handshake, Ed25519 certificate, rind: 121.90 µs, 1.00× the fastest +121.90 µs +full handshake, Ed25519 certificate, aws-lc-rs: 166.63 µs, 1.37× the fastest +166.63 µs +full handshake, Ed25519 certificate, ring: 202.04 µs, 1.66× the fastest +202.04 µs +full handshake, Ed25519 certificate, graviola: 123.71 µs, 1.01× the fastest +123.71 µs +full handshake, Ed25519 certificate, OpenSSL: 368.21 µs, 3.02× the fastest +368.21 µs full handshake, RSA-2048 certificate -full handshake, RSA-2048 certificate, rind: 428.67 µs, 1.00× the fastest -428.67 µs -full handshake, RSA-2048 certificate, aws-lc-rs: 485.87 µs, 1.13× the fastest -485.87 µs -full handshake, RSA-2048 certificate, ring: 493.81 µs, 1.15× the fastest -493.81 µs -full handshake, RSA-2048 certificate, graviola: 440.23 µs, 1.03× the fastest -440.23 µs -full handshake, RSA-2048 certificate, OpenSSL: 682.29 µs, 1.59× the fastest -682.29 µs +full handshake, RSA-2048 certificate, rind: 432.83 µs, 1.00× the fastest +432.83 µs +full handshake, RSA-2048 certificate, aws-lc-rs: 480.43 µs, 1.11× the fastest +480.43 µs +full handshake, RSA-2048 certificate, ring: 488.22 µs, 1.13× the fastest +488.22 µs +full handshake, RSA-2048 certificate, graviola: 440.42 µs, 1.02× the fastest +440.42 µs +full handshake, RSA-2048 certificate, OpenSSL: 670.54 µs, 1.55× the fastest +670.54 µs resumed handshake, X25519 -resumed handshake, X25519, rind: 54.19 µs, 1.00× the fastest -54.19 µs -resumed handshake, X25519, aws-lc-rs: 102.84 µs, 1.90× the fastest -102.84 µs -resumed handshake, X25519, ring: 113.00 µs, 2.09× the fastest -113.00 µs -resumed handshake, X25519, graviola: 55.16 µs, 1.02× the fastest -55.16 µs -resumed handshake, X25519, OpenSSL: 231.44 µs, 4.27× the fastest -231.44 µs +resumed handshake, X25519, rind: 54.39 µs, 1.00× the fastest +54.39 µs +resumed handshake, X25519, aws-lc-rs: 101.36 µs, 1.86× the fastest +101.36 µs +resumed handshake, X25519, ring: 111.29 µs, 2.05× the fastest +111.29 µs +resumed handshake, X25519, graviola: 55.62 µs, 1.02× the fastest +55.62 µs +resumed handshake, X25519, OpenSSL: 232.44 µs, 4.27× the fastest +232.44 µs 1 MB transfer, AES-128-GCM -1 MB transfer, AES-128-GCM, rind: 193.36 µs, 1.11× the fastest -193.36 µs -1 MB transfer, AES-128-GCM, aws-lc-rs: 241.18 µs, 1.38× the fastest -241.18 µs -1 MB transfer, AES-128-GCM, ring: 174.96 µs, 1.00× the fastest -174.96 µs -1 MB transfer, AES-128-GCM, graviola: 294.75 µs, 1.68× the fastest -294.75 µs -1 MB transfer, AES-128-GCM, OpenSSL: 255.72 µs, 1.46× the fastest -255.72 µs +1 MB transfer, AES-128-GCM, rind: 168.21 µs, 1.00× the fastest +168.21 µs +1 MB transfer, AES-128-GCM, aws-lc-rs: 233.34 µs, 1.39× the fastest +233.34 µs +1 MB transfer, AES-128-GCM, ring: 170.08 µs, 1.01× the fastest +170.08 µs +1 MB transfer, AES-128-GCM, graviola: 289.61 µs, 1.72× the fastest +289.61 µs +1 MB transfer, AES-128-GCM, OpenSSL: 250.85 µs, 1.49× the fastest +250.85 µs 1 MB transfer, AES-256-GCM -1 MB transfer, AES-256-GCM, rind: 189.84 µs, 1.00× the fastest -189.84 µs -1 MB transfer, AES-256-GCM, aws-lc-rs: 272.23 µs, 1.43× the fastest -272.23 µs -1 MB transfer, AES-256-GCM, ring: 192.15 µs, 1.01× the fastest -192.15 µs -1 MB transfer, AES-256-GCM, graviola: 338.97 µs, 1.79× the fastest -338.97 µs -1 MB transfer, AES-256-GCM, OpenSSL: 292.12 µs, 1.54× the fastest -292.12 µs +1 MB transfer, AES-256-GCM, rind: 184.54 µs, 1.00× the fastest +184.54 µs +1 MB transfer, AES-256-GCM, aws-lc-rs: 265.29 µs, 1.44× the fastest +265.29 µs +1 MB transfer, AES-256-GCM, ring: 188.67 µs, 1.02× the fastest +188.67 µs +1 MB transfer, AES-256-GCM, graviola: 337.96 µs, 1.83× the fastest +337.96 µs +1 MB transfer, AES-256-GCM, OpenSSL: 285.79 µs, 1.55× the fastest +285.79 µs 1 MB transfer, ChaCha20-Poly1305 -1 MB transfer, ChaCha20-Poly1305, rind: 621.49 µs, 1.04× the fastest -621.49 µs -1 MB transfer, ChaCha20-Poly1305, aws-lc-rs: 609.72 µs, 1.02× the fastest -609.72 µs -1 MB transfer, ChaCha20-Poly1305, ring: 594.88 µs, 1.00× the fastest -594.88 µs -1 MB transfer, ChaCha20-Poly1305, graviola: 1.17 ms, 1.97× the fastest -1.17 ms -1 MB transfer, ChaCha20-Poly1305, OpenSSL: 661.80 µs, 1.11× the fastest -661.80 µs +1 MB transfer, ChaCha20-Poly1305, rind: 596.91 µs, 1.01× the fastest +596.91 µs +1 MB transfer, ChaCha20-Poly1305, aws-lc-rs: 595.41 µs, 1.01× the fastest +595.41 µs +1 MB transfer, ChaCha20-Poly1305, ring: 590.49 µs, 1.00× the fastest +590.49 µs +1 MB transfer, ChaCha20-Poly1305, graviola: 1.16 ms, 1.97× the fastest +1.16 ms +1 MB transfer, ChaCha20-Poly1305, OpenSSL: 658.48 µs, 1.12× the fastest +658.48 µs AEADs AES-128-GCM seal, 32 B -AES-128-GCM seal, 32 B, rind: 18 ns, 1.00× the fastest -18 ns -AES-128-GCM seal, 32 B, aws-lc-rs: 37 ns, 2.03× the fastest -37 ns -AES-128-GCM seal, 32 B, ring: 42 ns, 2.30× the fastest -42 ns -AES-128-GCM seal, 32 B, RustCrypto + dalek: 73 ns, 3.98× the fastest +AES-128-GCM seal, 32 B, rind: 20 ns, 1.00× the fastest +20 ns +AES-128-GCM seal, 32 B, aws-lc-rs: 38 ns, 1.90× the fastest +38 ns +AES-128-GCM seal, 32 B, ring: 41 ns, 2.08× the fastest +41 ns +AES-128-GCM seal, 32 B, RustCrypto + dalek: 73 ns, 3.70× the fastest 73 ns -AES-128-GCM seal, 32 B, graviola: 42 ns, 2.33× the fastest +AES-128-GCM seal, 32 B, graviola: 42 ns, 2.13× the fastest 42 ns -AES-128-GCM seal, 32 B, libcrux: 168 ns, 9.19× the fastest -168 ns -AES-128-GCM seal, 32 B, OpenSSL: 55 ns, 3.02× the fastest -55 ns +AES-128-GCM seal, 32 B, libcrux: 171 ns, 8.64× the fastest +171 ns +AES-128-GCM seal, 32 B, OpenSSL: 57 ns, 2.88× the fastest +57 ns AES-128-GCM seal, 1350 B -AES-128-GCM seal, 1350 B, rind: 94 ns, 1.00× the fastest -94 ns -AES-128-GCM seal, 1350 B, aws-lc-rs: 149 ns, 1.59× the fastest -149 ns -AES-128-GCM seal, 1350 B, ring: 118 ns, 1.26× the fastest -118 ns -AES-128-GCM seal, 1350 B, RustCrypto + dalek: 272 ns, 2.90× the fastest -272 ns -AES-128-GCM seal, 1350 B, graviola: 227 ns, 2.42× the fastest -227 ns -AES-128-GCM seal, 1350 B, libcrux: 1.94 µs, 20.74× the fastest -1.94 µs -AES-128-GCM seal, 1350 B, OpenSSL: 163 ns, 1.74× the fastest -163 ns +AES-128-GCM seal, 1350 B, rind: 93 ns, 1.00× the fastest +93 ns +AES-128-GCM seal, 1350 B, aws-lc-rs: 159 ns, 1.71× the fastest +159 ns +AES-128-GCM seal, 1350 B, ring: 119 ns, 1.29× the fastest +119 ns +AES-128-GCM seal, 1350 B, RustCrypto + dalek: 278 ns, 3.00× the fastest +278 ns +AES-128-GCM seal, 1350 B, graviola: 226 ns, 2.44× the fastest +226 ns +AES-128-GCM seal, 1350 B, libcrux: 1.98 µs, 21.37× the fastest +1.98 µs +AES-128-GCM seal, 1350 B, OpenSSL: 160 ns, 1.73× the fastest +160 ns AES-128-GCM seal, 16 KB -AES-128-GCM seal, 16 KB, rind: 781 ns, 1.00× the fastest -781 ns -AES-128-GCM seal, 16 KB, aws-lc-rs: 1.33 µs, 1.70× the fastest -1.33 µs -AES-128-GCM seal, 16 KB, ring: 799 ns, 1.02× the fastest -799 ns -AES-128-GCM seal, 16 KB, RustCrypto + dalek: 2.49 µs, 3.19× the fastest +AES-128-GCM seal, 16 KB, rind: 799 ns, 1.00× the fastest +799 ns +AES-128-GCM seal, 16 KB, aws-lc-rs: 1.32 µs, 1.66× the fastest +1.32 µs +AES-128-GCM seal, 16 KB, ring: 818 ns, 1.02× the fastest +818 ns +AES-128-GCM seal, 16 KB, RustCrypto + dalek: 2.49 µs, 3.11× the fastest 2.49 µs -AES-128-GCM seal, 16 KB, graviola: 2.02 µs, 2.59× the fastest -2.02 µs -AES-128-GCM seal, 16 KB, libcrux: 22.02 µs, 28.20× the fastest -22.02 µs -AES-128-GCM seal, 16 KB, OpenSSL: 1.34 µs, 1.72× the fastest -1.34 µs +AES-128-GCM seal, 16 KB, graviola: 2.05 µs, 2.57× the fastest +2.05 µs +AES-128-GCM seal, 16 KB, libcrux: 22.05 µs, 27.59× the fastest +22.05 µs +AES-128-GCM seal, 16 KB, OpenSSL: 1.35 µs, 1.68× the fastest +1.35 µs AES-128-GCM open, 32 B -AES-128-GCM open, 32 B, rind: 28 ns, 1.00× the fastest -28 ns -AES-128-GCM open, 32 B, aws-lc-rs: 37 ns, 1.31× the fastest -37 ns -AES-128-GCM open, 32 B, ring: 42 ns, 1.49× the fastest -42 ns -AES-128-GCM open, 32 B, RustCrypto + dalek: 78 ns, 2.73× the fastest +AES-128-GCM open, 32 B, rind: 15 ns, 1.00× the fastest +15 ns +AES-128-GCM open, 32 B, aws-lc-rs: 38 ns, 2.50× the fastest +38 ns +AES-128-GCM open, 32 B, ring: 41 ns, 2.71× the fastest +41 ns +AES-128-GCM open, 32 B, RustCrypto + dalek: 78 ns, 5.15× the fastest 78 ns -AES-128-GCM open, 32 B, graviola: 36 ns, 1.26× the fastest -36 ns -AES-128-GCM open, 32 B, libcrux: 159 ns, 5.59× the fastest -159 ns -AES-128-GCM open, 32 B, OpenSSL: 58 ns, 2.02× the fastest -58 ns +AES-128-GCM open, 32 B, graviola: 36 ns, 2.40× the fastest +36 ns +AES-128-GCM open, 32 B, libcrux: 162 ns, 10.67× the fastest +162 ns +AES-128-GCM open, 32 B, OpenSSL: 59 ns, 3.89× the fastest +59 ns AES-128-GCM open, 1350 B -AES-128-GCM open, 1350 B, rind: 99 ns, 1.00× the fastest -99 ns -AES-128-GCM open, 1350 B, aws-lc-rs: 149 ns, 1.51× the fastest -149 ns -AES-128-GCM open, 1350 B, ring: 114 ns, 1.16× the fastest +AES-128-GCM open, 1350 B, rind: 89 ns, 1.00× the fastest +89 ns +AES-128-GCM open, 1350 B, aws-lc-rs: 151 ns, 1.69× the fastest +151 ns +AES-128-GCM open, 1350 B, ring: 114 ns, 1.27× the fastest 114 ns -AES-128-GCM open, 1350 B, RustCrypto + dalek: 282 ns, 2.86× the fastest -282 ns -AES-128-GCM open, 1350 B, graviola: 176 ns, 1.79× the fastest -176 ns -AES-128-GCM open, 1350 B, libcrux: 2.00 µs, 20.29× the fastest -2.00 µs -AES-128-GCM open, 1350 B, OpenSSL: 159 ns, 1.62× the fastest -159 ns +AES-128-GCM open, 1350 B, RustCrypto + dalek: 283 ns, 3.17× the fastest +283 ns +AES-128-GCM open, 1350 B, graviola: 175 ns, 1.95× the fastest +175 ns +AES-128-GCM open, 1350 B, libcrux: 1.99 µs, 22.29× the fastest +1.99 µs +AES-128-GCM open, 1350 B, OpenSSL: 162 ns, 1.81× the fastest +162 ns AES-128-GCM open, 16 KB -AES-128-GCM open, 16 KB, rind: 816 ns, 1.00× the fastest -816 ns -AES-128-GCM open, 16 KB, aws-lc-rs: 1.28 µs, 1.56× the fastest -1.28 µs -AES-128-GCM open, 16 KB, ring: 829 ns, 1.02× the fastest -829 ns -AES-128-GCM open, 16 KB, RustCrypto + dalek: 2.54 µs, 3.12× the fastest -2.54 µs -AES-128-GCM open, 16 KB, graviola: 1.42 µs, 1.73× the fastest -1.42 µs -AES-128-GCM open, 16 KB, libcrux: 22.31 µs, 27.33× the fastest -22.31 µs -AES-128-GCM open, 16 KB, OpenSSL: 1.30 µs, 1.59× the fastest -1.30 µs +AES-128-GCM open, 16 KB, rind: 793 ns, 1.00× the fastest +793 ns +AES-128-GCM open, 16 KB, aws-lc-rs: 1.26 µs, 1.59× the fastest +1.26 µs +AES-128-GCM open, 16 KB, ring: 814 ns, 1.03× the fastest +814 ns +AES-128-GCM open, 16 KB, RustCrypto + dalek: 2.51 µs, 3.16× the fastest +2.51 µs +AES-128-GCM open, 16 KB, graviola: 1.40 µs, 1.76× the fastest +1.40 µs +AES-128-GCM open, 16 KB, libcrux: 21.94 µs, 27.67× the fastest +21.94 µs +AES-128-GCM open, 16 KB, OpenSSL: 1.29 µs, 1.62× the fastest +1.29 µs AES-256-GCM seal, 32 B -AES-256-GCM seal, 32 B, rind: 20 ns, 1.00× the fastest -20 ns -AES-256-GCM seal, 32 B, aws-lc-rs: 40 ns, 1.99× the fastest -40 ns -AES-256-GCM seal, 32 B, ring: 43 ns, 2.16× the fastest +AES-256-GCM seal, 32 B, rind: 21 ns, 1.00× the fastest +21 ns +AES-256-GCM seal, 32 B, aws-lc-rs: 39 ns, 1.83× the fastest +39 ns +AES-256-GCM seal, 32 B, ring: 43 ns, 2.02× the fastest 43 ns -AES-256-GCM seal, 32 B, RustCrypto + dalek: 77 ns, 3.90× the fastest -77 ns -AES-256-GCM seal, 32 B, graviola: 44 ns, 2.22× the fastest -44 ns -AES-256-GCM seal, 32 B, libcrux: 216 ns, 10.88× the fastest -216 ns -AES-256-GCM seal, 32 B, OpenSSL: 58 ns, 2.93× the fastest -58 ns +AES-256-GCM seal, 32 B, RustCrypto + dalek: 78 ns, 3.66× the fastest +78 ns +AES-256-GCM seal, 32 B, graviola: 45 ns, 2.08× the fastest +45 ns +AES-256-GCM seal, 32 B, libcrux: 217 ns, 10.16× the fastest +217 ns +AES-256-GCM seal, 32 B, OpenSSL: 61 ns, 2.87× the fastest +61 ns AES-256-GCM seal, 1350 B -AES-256-GCM seal, 1350 B, rind: 106 ns, 1.00× the fastest -106 ns -AES-256-GCM seal, 1350 B, aws-lc-rs: 173 ns, 1.63× the fastest -173 ns -AES-256-GCM seal, 1350 B, ring: 133 ns, 1.25× the fastest -133 ns -AES-256-GCM seal, 1350 B, RustCrypto + dalek: 313 ns, 2.94× the fastest +AES-256-GCM seal, 1350 B, rind: 107 ns, 1.00× the fastest +107 ns +AES-256-GCM seal, 1350 B, aws-lc-rs: 175 ns, 1.63× the fastest +175 ns +AES-256-GCM seal, 1350 B, ring: 134 ns, 1.25× the fastest +134 ns +AES-256-GCM seal, 1350 B, RustCrypto + dalek: 313 ns, 2.92× the fastest 313 ns -AES-256-GCM seal, 1350 B, graviola: 258 ns, 2.42× the fastest -258 ns -AES-256-GCM seal, 1350 B, libcrux: 2.83 µs, 26.55× the fastest -2.83 µs -AES-256-GCM seal, 1350 B, OpenSSL: 186 ns, 1.75× the fastest -186 ns +AES-256-GCM seal, 1350 B, graviola: 257 ns, 2.40× the fastest +257 ns +AES-256-GCM seal, 1350 B, libcrux: 2.87 µs, 26.80× the fastest +2.87 µs +AES-256-GCM seal, 1350 B, OpenSSL: 184 ns, 1.72× the fastest +184 ns AES-256-GCM seal, 16 KB -AES-256-GCM seal, 16 KB, rind: 925 ns, 1.00× the fastest -925 ns -AES-256-GCM seal, 16 KB, aws-lc-rs: 1.56 µs, 1.69× the fastest -1.56 µs -AES-256-GCM seal, 16 KB, ring: 946 ns, 1.02× the fastest -946 ns -AES-256-GCM seal, 16 KB, RustCrypto + dalek: 2.91 µs, 3.14× the fastest -2.91 µs -AES-256-GCM seal, 16 KB, graviola: 2.46 µs, 2.66× the fastest +AES-256-GCM seal, 16 KB, rind: 954 ns, 1.00× the fastest +954 ns +AES-256-GCM seal, 16 KB, aws-lc-rs: 1.58 µs, 1.66× the fastest +1.58 µs +AES-256-GCM seal, 16 KB, ring: 975 ns, 1.02× the fastest +975 ns +AES-256-GCM seal, 16 KB, RustCrypto + dalek: 2.90 µs, 3.04× the fastest +2.90 µs +AES-256-GCM seal, 16 KB, graviola: 2.46 µs, 2.58× the fastest 2.46 µs -AES-256-GCM seal, 16 KB, libcrux: 32.69 µs, 35.34× the fastest -32.69 µs -AES-256-GCM seal, 16 KB, OpenSSL: 1.59 µs, 1.72× the fastest -1.59 µs +AES-256-GCM seal, 16 KB, libcrux: 32.86 µs, 34.45× the fastest +32.86 µs +AES-256-GCM seal, 16 KB, OpenSSL: 1.60 µs, 1.68× the fastest +1.60 µs AES-256-GCM open, 32 B -AES-256-GCM open, 32 B, rind: 28 ns, 1.00× the fastest -28 ns -AES-256-GCM open, 32 B, aws-lc-rs: 38 ns, 1.37× the fastest -38 ns -AES-256-GCM open, 32 B, ring: 45 ns, 1.61× the fastest -45 ns -AES-256-GCM open, 32 B, RustCrypto + dalek: 82 ns, 2.98× the fastest +AES-256-GCM open, 32 B, rind: 16 ns, 1.00× the fastest +16 ns +AES-256-GCM open, 32 B, aws-lc-rs: 38 ns, 2.31× the fastest +38 ns +AES-256-GCM open, 32 B, ring: 43 ns, 2.63× the fastest +43 ns +AES-256-GCM open, 32 B, RustCrypto + dalek: 82 ns, 5.03× the fastest 82 ns -AES-256-GCM open, 32 B, graviola: 38 ns, 1.37× the fastest -38 ns -AES-256-GCM open, 32 B, libcrux: 218 ns, 7.86× the fastest -218 ns -AES-256-GCM open, 32 B, OpenSSL: 62 ns, 2.22× the fastest -62 ns +AES-256-GCM open, 32 B, graviola: 38 ns, 2.31× the fastest +38 ns +AES-256-GCM open, 32 B, libcrux: 215 ns, 13.12× the fastest +215 ns +AES-256-GCM open, 32 B, OpenSSL: 61 ns, 3.73× the fastest +61 ns AES-256-GCM open, 1350 B -AES-256-GCM open, 1350 B, rind: 107 ns, 1.00× the fastest -107 ns -AES-256-GCM open, 1350 B, aws-lc-rs: 173 ns, 1.62× the fastest -173 ns -AES-256-GCM open, 1350 B, ring: 124 ns, 1.16× the fastest -124 ns -AES-256-GCM open, 1350 B, RustCrypto + dalek: 322 ns, 3.01× the fastest -322 ns -AES-256-GCM open, 1350 B, graviola: 203 ns, 1.90× the fastest -203 ns -AES-256-GCM open, 1350 B, libcrux: 2.85 µs, 26.66× the fastest +AES-256-GCM open, 1350 B, rind: 99 ns, 1.00× the fastest +99 ns +AES-256-GCM open, 1350 B, aws-lc-rs: 172 ns, 1.74× the fastest +172 ns +AES-256-GCM open, 1350 B, ring: 121 ns, 1.23× the fastest +121 ns +AES-256-GCM open, 1350 B, RustCrypto + dalek: 318 ns, 3.21× the fastest +318 ns +AES-256-GCM open, 1350 B, graviola: 201 ns, 2.03× the fastest +201 ns +AES-256-GCM open, 1350 B, libcrux: 2.85 µs, 28.82× the fastest 2.85 µs -AES-256-GCM open, 1350 B, OpenSSL: 189 ns, 1.77× the fastest +AES-256-GCM open, 1350 B, OpenSSL: 189 ns, 1.91× the fastest 189 ns AES-256-GCM open, 16 KB -AES-256-GCM open, 16 KB, rind: 917 ns, 1.00× the fastest -917 ns -AES-256-GCM open, 16 KB, aws-lc-rs: 1.57 µs, 1.71× the fastest -1.57 µs -AES-256-GCM open, 16 KB, ring: 921 ns, 1.00× the fastest -921 ns -AES-256-GCM open, 16 KB, RustCrypto + dalek: 2.96 µs, 3.23× the fastest -2.96 µs -AES-256-GCM open, 16 KB, graviola: 1.74 µs, 1.90× the fastest -1.74 µs -AES-256-GCM open, 16 KB, libcrux: 32.51 µs, 35.44× the fastest -32.51 µs -AES-256-GCM open, 16 KB, OpenSSL: 1.60 µs, 1.75× the fastest -1.60 µs +AES-256-GCM open, 16 KB, rind: 899 ns, 1.00× the fastest +899 ns +AES-256-GCM open, 16 KB, aws-lc-rs: 1.55 µs, 1.73× the fastest +1.55 µs +AES-256-GCM open, 16 KB, ring: 933 ns, 1.04× the fastest +933 ns +AES-256-GCM open, 16 KB, RustCrypto + dalek: 2.92 µs, 3.25× the fastest +2.92 µs +AES-256-GCM open, 16 KB, graviola: 1.71 µs, 1.91× the fastest +1.71 µs +AES-256-GCM open, 16 KB, libcrux: 32.61 µs, 36.27× the fastest +32.61 µs +AES-256-GCM open, 16 KB, OpenSSL: 1.58 µs, 1.76× the fastest +1.58 µs ChaCha20-Poly1305 seal, 32 B -ChaCha20-Poly1305 seal, 32 B, rind: 100 ns, 1.00× the fastest -100 ns -ChaCha20-Poly1305 seal, 32 B, aws-lc-rs: 105 ns, 1.05× the fastest -105 ns -ChaCha20-Poly1305 seal, 32 B, ring: 101 ns, 1.01× the fastest -101 ns -ChaCha20-Poly1305 seal, 32 B, RustCrypto + dalek: 1.07 µs, 10.75× the fastest -1.07 µs -ChaCha20-Poly1305 seal, 32 B, graviola: 180 ns, 1.80× the fastest -180 ns -ChaCha20-Poly1305 seal, 32 B, libcrux: 157 ns, 1.57× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step +ChaCha20-Poly1305 seal, 32 B, rind: 98 ns, 1.00× the fastest +98 ns +ChaCha20-Poly1305 seal, 32 B, aws-lc-rs: 103 ns, 1.05× the fastest +103 ns +ChaCha20-Poly1305 seal, 32 B, ring: 99 ns, 1.00× the fastest +99 ns +ChaCha20-Poly1305 seal, 32 B, RustCrypto + dalek: 1.05 µs, 10.68× the fastest +1.05 µs +ChaCha20-Poly1305 seal, 32 B, graviola: 177 ns, 1.80× the fastest +177 ns +ChaCha20-Poly1305 seal, 32 B, libcrux: 157 ns, 1.59× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step 157 ns ✓ -ChaCha20-Poly1305 seal, 32 B, OpenSSL: 177 ns, 1.77× the fastest -177 ns +ChaCha20-Poly1305 seal, 32 B, OpenSSL: 175 ns, 1.78× the fastest +175 ns ChaCha20-Poly1305 seal, 1350 B -ChaCha20-Poly1305 seal, 1350 B, rind: 441 ns, 1.00× the fastest -441 ns -ChaCha20-Poly1305 seal, 1350 B, aws-lc-rs: 453 ns, 1.03× the fastest -453 ns -ChaCha20-Poly1305 seal, 1350 B, ring: 447 ns, 1.01× the fastest -447 ns -ChaCha20-Poly1305 seal, 1350 B, RustCrypto + dalek: 1.67 µs, 3.79× the fastest -1.67 µs -ChaCha20-Poly1305 seal, 1350 B, graviola: 905 ns, 2.05× the fastest -905 ns -ChaCha20-Poly1305 seal, 1350 B, libcrux: 1.78 µs, 4.03× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step -1.78 µs ✓ -ChaCha20-Poly1305 seal, 1350 B, OpenSSL: 590 ns, 1.34× the fastest -590 ns +ChaCha20-Poly1305 seal, 1350 B, rind: 440 ns, 1.00× the fastest +440 ns +ChaCha20-Poly1305 seal, 1350 B, aws-lc-rs: 446 ns, 1.01× the fastest +446 ns +ChaCha20-Poly1305 seal, 1350 B, ring: 448 ns, 1.02× the fastest +448 ns +ChaCha20-Poly1305 seal, 1350 B, RustCrypto + dalek: 1.64 µs, 3.73× the fastest +1.64 µs +ChaCha20-Poly1305 seal, 1350 B, graviola: 890 ns, 2.02× the fastest +890 ns +ChaCha20-Poly1305 seal, 1350 B, libcrux: 1.77 µs, 4.02× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step +1.77 µs ✓ +ChaCha20-Poly1305 seal, 1350 B, OpenSSL: 587 ns, 1.33× the fastest +587 ns ChaCha20-Poly1305 seal, 16 KB -ChaCha20-Poly1305 seal, 16 KB, rind: 4.17 µs, 1.01× the fastest -4.17 µs -ChaCha20-Poly1305 seal, 16 KB, aws-lc-rs: 4.15 µs, 1.00× the fastest -4.15 µs -ChaCha20-Poly1305 seal, 16 KB, ring: 4.14 µs, 1.00× the fastest -4.14 µs -ChaCha20-Poly1305 seal, 16 KB, RustCrypto + dalek: 8.14 µs, 1.97× the fastest -8.14 µs -ChaCha20-Poly1305 seal, 16 KB, graviola: 8.30 µs, 2.01× the fastest -8.30 µs -ChaCha20-Poly1305 seal, 16 KB, libcrux: 19.63 µs, 4.74× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step -19.63 µs ✓ -ChaCha20-Poly1305 seal, 16 KB, OpenSSL: 4.41 µs, 1.07× the fastest -4.41 µs +ChaCha20-Poly1305 seal, 16 KB, rind: 4.19 µs, 1.02× the fastest +4.19 µs +ChaCha20-Poly1305 seal, 16 KB, aws-lc-rs: 4.13 µs, 1.00× the fastest +4.13 µs +ChaCha20-Poly1305 seal, 16 KB, ring: 4.12 µs, 1.00× the fastest +4.12 µs +ChaCha20-Poly1305 seal, 16 KB, RustCrypto + dalek: 8.03 µs, 1.95× the fastest +8.03 µs +ChaCha20-Poly1305 seal, 16 KB, graviola: 8.29 µs, 2.01× the fastest +8.29 µs +ChaCha20-Poly1305 seal, 16 KB, libcrux: 19.31 µs, 4.69× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step +19.31 µs ✓ +ChaCha20-Poly1305 seal, 16 KB, OpenSSL: 4.35 µs, 1.05× the fastest +4.35 µs XChaCha20-Poly1305 seal, 32 B -XChaCha20-Poly1305 seal, 32 B, rind: 188 ns, 1.00× the fastest -188 ns -XChaCha20-Poly1305 seal, 32 B, aws-lc-rs: 199 ns, 1.06× the fastest +XChaCha20-Poly1305 seal, 32 B, rind: 186 ns, 1.00× the fastest +186 ns +XChaCha20-Poly1305 seal, 32 B, aws-lc-rs: 199 ns, 1.07× the fastest 199 ns -XChaCha20-Poly1305 seal, 32 B, RustCrypto + dalek: 889 ns, 4.72× the fastest -889 ns -XChaCha20-Poly1305 seal, 32 B, graviola: 259 ns, 1.38× the fastest -259 ns -XChaCha20-Poly1305 seal, 32 B, libcrux: 248 ns, 1.32× the fastest -248 ns +XChaCha20-Poly1305 seal, 32 B, RustCrypto + dalek: 1.15 µs, 6.21× the fastest +1.15 µs +XChaCha20-Poly1305 seal, 32 B, graviola: 255 ns, 1.37× the fastest +255 ns +XChaCha20-Poly1305 seal, 32 B, libcrux: 244 ns, 1.31× the fastest +244 ns XChaCha20-Poly1305 seal, 1350 B -XChaCha20-Poly1305 seal, 1350 B, rind: 838 ns, 1.22× the fastest -838 ns -XChaCha20-Poly1305 seal, 1350 B, aws-lc-rs: 687 ns, 1.00× the fastest -687 ns -XChaCha20-Poly1305 seal, 1350 B, RustCrypto + dalek: 1.74 µs, 2.54× the fastest -1.74 µs -XChaCha20-Poly1305 seal, 1350 B, graviola: 1.35 µs, 1.97× the fastest -1.35 µs -XChaCha20-Poly1305 seal, 1350 B, libcrux: 2.56 µs, 3.73× the fastest -2.56 µs +XChaCha20-Poly1305 seal, 1350 B, rind: 529 ns, 1.00× the fastest +529 ns +XChaCha20-Poly1305 seal, 1350 B, aws-lc-rs: 539 ns, 1.02× the fastest +539 ns +XChaCha20-Poly1305 seal, 1350 B, RustCrypto + dalek: 1.73 µs, 3.27× the fastest +1.73 µs +XChaCha20-Poly1305 seal, 1350 B, graviola: 974 ns, 1.84× the fastest +974 ns +XChaCha20-Poly1305 seal, 1350 B, libcrux: 1.83 µs, 3.47× the fastest +1.83 µs XChaCha20-Poly1305 seal, 16 KB -XChaCha20-Poly1305 seal, 16 KB, rind: 6.26 µs, 1.00× the fastest -6.26 µs -XChaCha20-Poly1305 seal, 16 KB, aws-lc-rs: 6.27 µs, 1.00× the fastest -6.27 µs -XChaCha20-Poly1305 seal, 16 KB, RustCrypto + dalek: 12.28 µs, 1.96× the fastest -12.28 µs -XChaCha20-Poly1305 seal, 16 KB, graviola: 12.79 µs, 2.04× the fastest -12.79 µs -XChaCha20-Poly1305 seal, 16 KB, libcrux: 27.40 µs, 4.37× the fastest -27.40 µs +XChaCha20-Poly1305 seal, 16 KB, rind: 4.17 µs, 1.00× the fastest +4.17 µs +XChaCha20-Poly1305 seal, 16 KB, aws-lc-rs: 4.23 µs, 1.01× the fastest +4.23 µs +XChaCha20-Poly1305 seal, 16 KB, RustCrypto + dalek: 8.15 µs, 1.95× the fastest +8.15 µs +XChaCha20-Poly1305 seal, 16 KB, graviola: 8.40 µs, 2.01× the fastest +8.40 µs +XChaCha20-Poly1305 seal, 16 KB, libcrux: 19.61 µs, 4.70× the fastest +19.61 µs QUIC header protection AES-128 header protection AES-128 header protection, rind: 2 ns, 1.00× the fastest 2 ns -AES-128 header protection, aws-lc-rs: 3 ns, 1.59× the fastest +AES-128 header protection, aws-lc-rs: 3 ns, 1.91× the fastest 3 ns -AES-128 header protection, ring: 3 ns, 1.68× the fastest +AES-128 header protection, ring: 3 ns, 2.03× the fastest 3 ns AES-256 header protection AES-256 header protection, rind: 2 ns, 1.00× the fastest 2 ns -AES-256 header protection, aws-lc-rs: 5 ns, 2.06× the fastest +AES-256 header protection, aws-lc-rs: 5 ns, 2.56× the fastest 5 ns -AES-256 header protection, ring: 5 ns, 2.16× the fastest +AES-256 header protection, ring: 5 ns, 2.47× the fastest 5 ns ChaCha20 header protection -ChaCha20 header protection, rind: 54 ns, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and a hand model of the function-pointer dispatch Aeneas cannot translate, which assumes each key's mask is its own cipher's, the only one rind builds, of its header-protection API's ChaCha20 against RFC 9001 and RFC 8439, HACL*'s rounds included -54 ns ✓ -ChaCha20 header protection, aws-lc-rs: 69 ns, 1.28× the fastest -69 ns -ChaCha20 header protection, ring: 61 ns, 1.14× the fastest -61 ns +ChaCha20 header protection, rind: 53 ns, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and a hand model of the function-pointer dispatch Aeneas cannot translate, which assumes each key's mask is its own cipher's, the only one rind builds, of its header-protection API's ChaCha20 against RFC 9001 and RFC 8439, HACL*'s rounds included +53 ns ✓ +ChaCha20 header protection, aws-lc-rs: 68 ns, 1.29× the fastest +68 ns +ChaCha20 header protection, ring: 60 ns, 1.14× the fastest +60 ns Key agreement X25519 -X25519, rind: 19.68 µs, 1.06× the fastest; verified: rind's Lean proof, through Aeneas and a hand model of the function-pointer dispatch Aeneas cannot translate, which assumes each key's dispatch table holds its own curve's functions, the only table rind builds, of its agreement API's X25519 down to s2n-bignum's routines, composed with s2n-bignum's HOL Light proofs of curve25519_x25519, curve25519_x25519base, their _alt forms without BMI2 and ADX, and bignum_eq, of s2n-bignum's own object code, which rind transliterates -19.68 µs ✓ -X25519, aws-lc-rs: 19.54 µs, 1.06× the fastest -19.54 µs -X25519, ring: 35.63 µs, 1.93× the fastest +X25519, rind: 18.20 µs, 1.01× the fastest; verified: rind's Lean proof, through Aeneas and a hand model of the function-pointer dispatch Aeneas cannot translate, which assumes each key's dispatch table holds its own curve's functions, the only table rind builds, of its agreement API's X25519 down to s2n-bignum's routines, composed with s2n-bignum's HOL Light proofs of curve25519_x25519, curve25519_x25519base, their _alt forms without BMI2 and ADX, and bignum_eq, of s2n-bignum's own object code, which rind transliterates +18.20 µs ✓ +X25519, aws-lc-rs: 19.24 µs, 1.06× the fastest +19.24 µs +X25519, ring: 35.63 µs, 1.97× the fastest 35.63 µs -X25519, RustCrypto + dalek: 36.52 µs, 1.97× the fastest -36.52 µs -X25519, graviola: 18.50 µs, 1.00× the fastest -18.50 µs -X25519, libcrux: 43.11 µs, 2.33× the fastest; verified: HACL*'s F* proof of Hacl.Curve25519_51's secret_to_public and ecdh, compiled to Rust by an unverified step -43.11 µs ✓ -X25519, OpenSSL: 34.02 µs, 1.84× the fastest -34.02 µs +X25519, RustCrypto + dalek: 36.06 µs, 1.99× the fastest +36.06 µs +X25519, graviola: 18.09 µs, 1.00× the fastest +18.09 µs +X25519, libcrux: 42.68 µs, 2.36× the fastest; verified: HACL*'s F* proof of Hacl.Curve25519_51's secret_to_public and ecdh, compiled to Rust by an unverified step +42.68 µs ✓ +X25519, OpenSSL: 33.95 µs, 1.88× the fastest +33.95 µs P-256 ECDH -P-256 ECDH, rind: 29.85 µs, 1.00× the fastest -29.85 µs -P-256 ECDH, aws-lc-rs: 32.27 µs, 1.08× the fastest -32.27 µs -P-256 ECDH, ring: 34.14 µs, 1.14× the fastest -34.14 µs -P-256 ECDH, RustCrypto + dalek: 123.01 µs, 4.12× the fastest -123.01 µs -P-256 ECDH, graviola: 33.46 µs, 1.12× the fastest -33.46 µs -P-256 ECDH, libcrux: 169.87 µs, 5.69× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step -169.87 µs ✓ -P-256 ECDH, OpenSSL: 52.91 µs, 1.77× the fastest -52.91 µs +P-256 ECDH, rind: 29.52 µs, 1.00× the fastest +29.52 µs +P-256 ECDH, aws-lc-rs: 31.77 µs, 1.08× the fastest +31.77 µs +P-256 ECDH, ring: 33.64 µs, 1.14× the fastest +33.64 µs +P-256 ECDH, RustCrypto + dalek: 121.30 µs, 4.11× the fastest +121.30 µs +P-256 ECDH, graviola: 33.67 µs, 1.14× the fastest +33.67 µs +P-256 ECDH, libcrux: 171.68 µs, 5.81× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step +171.68 µs ✓ +P-256 ECDH, OpenSSL: 52.92 µs, 1.79× the fastest +52.92 µs Signatures Ed25519 sign -Ed25519 sign, rind: 4.15 µs, 1.00× the fastest -4.15 µs -Ed25519 sign, aws-lc-rs: 4.56 µs, 1.10× the fastest -4.56 µs -Ed25519 sign, ring: 13.14 µs, 3.16× the fastest -13.14 µs -Ed25519 sign, RustCrypto + dalek: 9.61 µs, 2.31× the fastest -9.61 µs -Ed25519 sign, graviola: 4.39 µs, 1.06× the fastest -4.39 µs -Ed25519 sign, libcrux: 28.97 µs, 6.97× the fastest; verified: HACL*'s F* proof of Hacl.Ed25519's sign and verify, compiled to Rust by an unverified step -28.97 µs ✓ -Ed25519 sign, OpenSSL: 13.69 µs, 3.30× the fastest -13.69 µs +Ed25519 sign, rind: 4.11 µs, 1.00× the fastest +4.11 µs +Ed25519 sign, aws-lc-rs: 4.49 µs, 1.09× the fastest +4.49 µs +Ed25519 sign, ring: 13.11 µs, 3.19× the fastest +13.11 µs +Ed25519 sign, RustCrypto + dalek: 9.60 µs, 2.34× the fastest +9.60 µs +Ed25519 sign, graviola: 4.40 µs, 1.07× the fastest +4.40 µs +Ed25519 sign, libcrux: 28.54 µs, 6.94× the fastest; verified: HACL*'s F* proof of Hacl.Ed25519's sign and verify, compiled to Rust by an unverified step +28.54 µs ✓ +Ed25519 sign, OpenSSL: 13.67 µs, 3.33× the fastest +13.67 µs Ed25519 verify -Ed25519 verify, rind: 21.75 µs, 1.01× the fastest -21.75 µs -Ed25519 verify, aws-lc-rs: 21.56 µs, 1.00× the fastest -21.56 µs -Ed25519 verify, ring: 26.22 µs, 1.22× the fastest -26.22 µs -Ed25519 verify, RustCrypto + dalek: 21.88 µs, 1.02× the fastest -21.88 µs -Ed25519 verify, graviola: 21.61 µs, 1.00× the fastest -21.61 µs -Ed25519 verify, libcrux: 42.16 µs, 1.96× the fastest; verified: HACL*'s F* proof of Hacl.Ed25519's sign and verify, compiled to Rust by an unverified step -42.16 µs ✓ -Ed25519 verify, OpenSSL: 45.59 µs, 2.11× the fastest -45.59 µs +Ed25519 verify, rind: 21.43 µs, 1.00× the fastest +21.43 µs +Ed25519 verify, aws-lc-rs: 21.41 µs, 1.00× the fastest +21.41 µs +Ed25519 verify, ring: 25.93 µs, 1.21× the fastest +25.93 µs +Ed25519 verify, RustCrypto + dalek: 21.87 µs, 1.02× the fastest +21.87 µs +Ed25519 verify, graviola: 21.45 µs, 1.00× the fastest +21.45 µs +Ed25519 verify, libcrux: 41.83 µs, 1.95× the fastest; verified: HACL*'s F* proof of Hacl.Ed25519's sign and verify, compiled to Rust by an unverified step +41.83 µs ✓ +Ed25519 verify, OpenSSL: 44.79 µs, 2.09× the fastest +44.79 µs P-256 ECDSA sign -P-256 ECDSA sign, rind: 6.84 µs, 1.00× the fastest -6.84 µs -P-256 ECDSA sign, aws-lc-rs: 12.33 µs, 1.80× the fastest -12.33 µs -P-256 ECDSA sign, ring: 12.24 µs, 1.79× the fastest -12.24 µs -P-256 ECDSA sign, RustCrypto + dalek: 31.65 µs, 4.63× the fastest -31.65 µs -P-256 ECDSA sign, graviola: 9.26 µs, 1.35× the fastest -9.26 µs -P-256 ECDSA sign, libcrux: 61.34 µs, 8.97× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step -61.34 µs ✓ -P-256 ECDSA sign, OpenSSL: 14.33 µs, 2.09× the fastest -14.33 µs +P-256 ECDSA sign, rind: 6.74 µs, 1.00× the fastest +6.74 µs +P-256 ECDSA sign, aws-lc-rs: 12.25 µs, 1.82× the fastest +12.25 µs +P-256 ECDSA sign, ring: 12.20 µs, 1.81× the fastest +12.20 µs +P-256 ECDSA sign, RustCrypto + dalek: 31.32 µs, 4.65× the fastest +31.32 µs +P-256 ECDSA sign, graviola: 8.97 µs, 1.33× the fastest +8.97 µs +P-256 ECDSA sign, libcrux: 61.81 µs, 9.17× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step +61.81 µs ✓ +P-256 ECDSA sign, OpenSSL: 14.45 µs, 2.14× the fastest +14.45 µs P-256 ECDSA verify -P-256 ECDSA verify, rind: 30.95 µs, 1.03× the fastest -30.95 µs -P-256 ECDSA verify, aws-lc-rs: 30.08 µs, 1.00× the fastest -30.08 µs -P-256 ECDSA verify, ring: 33.74 µs, 1.12× the fastest -33.74 µs -P-256 ECDSA verify, RustCrypto + dalek: 104.58 µs, 3.48× the fastest -104.58 µs -P-256 ECDSA verify, graviola: 32.89 µs, 1.09× the fastest -32.89 µs -P-256 ECDSA verify, libcrux: 147.11 µs, 4.89× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step -147.11 µs ✓ -P-256 ECDSA verify, OpenSSL: 46.41 µs, 1.54× the fastest -46.41 µs +P-256 ECDSA verify, rind: 30.59 µs, 1.03× the fastest +30.59 µs +P-256 ECDSA verify, aws-lc-rs: 29.75 µs, 1.00× the fastest +29.75 µs +P-256 ECDSA verify, ring: 33.23 µs, 1.12× the fastest +33.23 µs +P-256 ECDSA verify, RustCrypto + dalek: 103.24 µs, 3.47× the fastest +103.24 µs +P-256 ECDSA verify, graviola: 32.36 µs, 1.09× the fastest +32.36 µs +P-256 ECDSA verify, libcrux: 147.27 µs, 4.95× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step +147.27 µs ✓ +P-256 ECDSA verify, OpenSSL: 46.46 µs, 1.56× the fastest +46.46 µs Hashes and KDFs SHA-256, 64 B @@ -508,312 +508,312 @@ 28 ns SHA-256, 64 B, aws-lc-rs: 57 ns, 2.02× the fastest 57 ns -SHA-256, 64 B, ring: 58 ns, 2.04× the fastest -58 ns -SHA-256, 64 B, RustCrypto + dalek: 40 ns, 1.41× the fastest -40 ns -SHA-256, 64 B, graviola: 41 ns, 1.45× the fastest -41 ns -SHA-256, 64 B, libcrux: 211 ns, 7.50× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -211 ns ✓ -SHA-256, 64 B, OpenSSL: 161 ns, 5.72× the fastest -161 ns +SHA-256, 64 B, ring: 56 ns, 2.00× the fastest +56 ns +SHA-256, 64 B, RustCrypto + dalek: 39 ns, 1.39× the fastest +39 ns +SHA-256, 64 B, graviola: 40 ns, 1.42× the fastest +40 ns +SHA-256, 64 B, libcrux: 218 ns, 7.72× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +218 ns ✓ +SHA-256, 64 B, OpenSSL: 158 ns, 5.62× the fastest +158 ns SHA-256, 1350 B -SHA-256, 1350 B, rind: 279 ns, 1.00× the fastest -279 ns -SHA-256, 1350 B, aws-lc-rs: 312 ns, 1.12× the fastest -312 ns -SHA-256, 1350 B, ring: 304 ns, 1.09× the fastest +SHA-256, 1350 B, rind: 269 ns, 1.00× the fastest +269 ns +SHA-256, 1350 B, aws-lc-rs: 306 ns, 1.14× the fastest +306 ns +SHA-256, 1350 B, ring: 304 ns, 1.13× the fastest 304 ns -SHA-256, 1350 B, RustCrypto + dalek: 296 ns, 1.06× the fastest +SHA-256, 1350 B, RustCrypto + dalek: 296 ns, 1.10× the fastest 296 ns -SHA-256, 1350 B, graviola: 297 ns, 1.06× the fastest -297 ns -SHA-256, 1350 B, libcrux: 2.31 µs, 8.25× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -2.31 µs ✓ -SHA-256, 1350 B, OpenSSL: 415 ns, 1.48× the fastest -415 ns +SHA-256, 1350 B, graviola: 292 ns, 1.09× the fastest +292 ns +SHA-256, 1350 B, libcrux: 2.29 µs, 8.50× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +2.29 µs ✓ +SHA-256, 1350 B, OpenSSL: 406 ns, 1.51× the fastest +406 ns SHA-256, 16 KB -SHA-256, 16 KB, rind: 3.24 µs, 1.00× the fastest -3.24 µs -SHA-256, 16 KB, aws-lc-rs: 3.28 µs, 1.01× the fastest -3.28 µs -SHA-256, 16 KB, ring: 3.28 µs, 1.01× the fastest -3.28 µs -SHA-256, 16 KB, RustCrypto + dalek: 3.26 µs, 1.01× the fastest -3.26 µs -SHA-256, 16 KB, graviola: 3.27 µs, 1.01× the fastest -3.27 µs -SHA-256, 16 KB, libcrux: 26.81 µs, 8.27× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -26.81 µs ✓ -SHA-256, 16 KB, OpenSSL: 3.39 µs, 1.05× the fastest -3.39 µs +SHA-256, 16 KB, rind: 3.19 µs, 1.00× the fastest +3.19 µs +SHA-256, 16 KB, aws-lc-rs: 3.23 µs, 1.01× the fastest +3.23 µs +SHA-256, 16 KB, ring: 3.22 µs, 1.01× the fastest +3.22 µs +SHA-256, 16 KB, RustCrypto + dalek: 3.22 µs, 1.01× the fastest +3.22 µs +SHA-256, 16 KB, graviola: 3.22 µs, 1.01× the fastest +3.22 µs +SHA-256, 16 KB, libcrux: 26.90 µs, 8.43× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +26.90 µs ✓ +SHA-256, 16 KB, OpenSSL: 3.36 µs, 1.05× the fastest +3.36 µs SHA-512, 64 B SHA-512, 64 B, rind: 60 ns, 1.00× the fastest 60 ns -SHA-512, 64 B, aws-lc-rs: 136 ns, 2.27× the fastest; verified: aws-lc-verification's SAW proof of SHA-512 through EVP_Digest, padding included, over sha512_block_data_order_avx, which aws-lc runs only on Intel; of aws-lc c21d40da, whose SHA-512 code 5.12.0 keeps -136 ns ✓ -SHA-512, 64 B, ring: 142 ns, 2.36× the fastest -142 ns -SHA-512, 64 B, RustCrypto + dalek: 120 ns, 1.99× the fastest +SHA-512, 64 B, aws-lc-rs: 134 ns, 2.23× the fastest; verified: aws-lc-verification's SAW proof of SHA-512 through EVP_Digest, padding included, over sha512_block_data_order_avx, which aws-lc runs only on Intel; of aws-lc c21d40da, whose SHA-512 code 5.12.0 keeps +134 ns ✓ +SHA-512, 64 B, ring: 140 ns, 2.33× the fastest +140 ns +SHA-512, 64 B, RustCrypto + dalek: 120 ns, 2.00× the fastest 120 ns -SHA-512, 64 B, graviola: 150 ns, 2.49× the fastest -150 ns -SHA-512, 64 B, libcrux: 167 ns, 2.78× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -167 ns ✓ -SHA-512, 64 B, OpenSSL: 233 ns, 3.87× the fastest -233 ns +SHA-512, 64 B, graviola: 148 ns, 2.47× the fastest +148 ns +SHA-512, 64 B, libcrux: 166 ns, 2.77× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +166 ns ✓ +SHA-512, 64 B, OpenSSL: 226 ns, 3.76× the fastest +226 ns SHA-512, 1350 B -SHA-512, 1350 B, rind: 470 ns, 1.00× the fastest -470 ns -SHA-512, 1350 B, aws-lc-rs: 1.27 µs, 2.69× the fastest; verified: aws-lc-verification's SAW proof of SHA-512 through EVP_Digest, padding included, over sha512_block_data_order_avx, which aws-lc runs only on Intel; of aws-lc c21d40da, whose SHA-512 code 5.12.0 keeps -1.27 µs ✓ -SHA-512, 1350 B, ring: 1.26 µs, 2.69× the fastest +SHA-512, 1350 B, rind: 249 ns, 1.00× the fastest +249 ns +SHA-512, 1350 B, aws-lc-rs: 1.24 µs, 4.99× the fastest; verified: aws-lc-verification's SAW proof of SHA-512 through EVP_Digest, padding included, over sha512_block_data_order_avx, which aws-lc runs only on Intel; of aws-lc c21d40da, whose SHA-512 code 5.12.0 keeps +1.24 µs ✓ +SHA-512, 1350 B, ring: 1.26 µs, 5.05× the fastest 1.26 µs -SHA-512, 1350 B, RustCrypto + dalek: 1.18 µs, 2.50× the fastest -1.18 µs -SHA-512, 1350 B, graviola: 1.51 µs, 3.21× the fastest -1.51 µs -SHA-512, 1350 B, libcrux: 1.69 µs, 3.59× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -1.69 µs ✓ -SHA-512, 1350 B, OpenSSL: 1.20 µs, 2.55× the fastest -1.20 µs +SHA-512, 1350 B, RustCrypto + dalek: 1.17 µs, 4.68× the fastest +1.17 µs +SHA-512, 1350 B, graviola: 1.49 µs, 5.96× the fastest +1.49 µs +SHA-512, 1350 B, libcrux: 1.72 µs, 6.89× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +1.72 µs ✓ +SHA-512, 1350 B, OpenSSL: 1.17 µs, 4.70× the fastest +1.17 µs SHA-512, 16 KB -SHA-512, 16 KB, rind: 2.68 µs, 1.00× the fastest -2.68 µs -SHA-512, 16 KB, aws-lc-rs: 14.32 µs, 5.34× the fastest; verified: aws-lc-verification's SAW proof of SHA-512 through EVP_Digest, padding included, over sha512_block_data_order_avx, which aws-lc runs only on Intel; of aws-lc c21d40da, whose SHA-512 code 5.12.0 keeps -14.32 µs ✓ -SHA-512, 16 KB, ring: 14.36 µs, 5.35× the fastest -14.36 µs -SHA-512, 16 KB, RustCrypto + dalek: 13.55 µs, 5.05× the fastest -13.55 µs -SHA-512, 16 KB, graviola: 17.96 µs, 6.70× the fastest -17.96 µs -SHA-512, 16 KB, libcrux: 20.01 µs, 7.46× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -20.01 µs ✓ -SHA-512, 16 KB, OpenSSL: 12.51 µs, 4.66× the fastest -12.51 µs +SHA-512, 16 KB, rind: 2.63 µs, 1.00× the fastest +2.63 µs +SHA-512, 16 KB, aws-lc-rs: 14.12 µs, 5.38× the fastest; verified: aws-lc-verification's SAW proof of SHA-512 through EVP_Digest, padding included, over sha512_block_data_order_avx, which aws-lc runs only on Intel; of aws-lc c21d40da, whose SHA-512 code 5.12.0 keeps +14.12 µs ✓ +SHA-512, 16 KB, ring: 14.10 µs, 5.37× the fastest +14.10 µs +SHA-512, 16 KB, RustCrypto + dalek: 13.51 µs, 5.15× the fastest +13.51 µs +SHA-512, 16 KB, graviola: 17.50 µs, 6.66× the fastest +17.50 µs +SHA-512, 16 KB, libcrux: 20.10 µs, 7.66× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +20.10 µs ✓ +SHA-512, 16 KB, OpenSSL: 12.29 µs, 4.68× the fastest +12.29 µs HMAC-SHA256, 64 B HMAC-SHA256, 64 B, rind: 75 ns, 1.00× the fastest 75 ns -HMAC-SHA256, 64 B, aws-lc-rs: 180 ns, 2.38× the fastest +HMAC-SHA256, 64 B, aws-lc-rs: 180 ns, 2.40× the fastest 180 ns HMAC-SHA256, 64 B, ring: 145 ns, 1.93× the fastest 145 ns -HMAC-SHA256, 64 B, RustCrypto + dalek: 104 ns, 1.39× the fastest -104 ns -HMAC-SHA256, 64 B, graviola: 115 ns, 1.52× the fastest -115 ns -HMAC-SHA256, 64 B, libcrux: 536 ns, 7.12× the fastest; verified: HACL*'s F* proof of Hacl.HMAC's compute_sha2_256, compiled to Rust by an unverified step -536 ns ✓ -HMAC-SHA256, 64 B, OpenSSL: 1.56 µs, 20.76× the fastest -1.56 µs +HMAC-SHA256, 64 B, RustCrypto + dalek: 103 ns, 1.37× the fastest +103 ns +HMAC-SHA256, 64 B, graviola: 110 ns, 1.47× the fastest +110 ns +HMAC-SHA256, 64 B, libcrux: 537 ns, 7.15× the fastest; verified: HACL*'s F* proof of Hacl.HMAC's compute_sha2_256, compiled to Rust by an unverified step +537 ns ✓ +HMAC-SHA256, 64 B, OpenSSL: 1.55 µs, 20.71× the fastest +1.55 µs HMAC-SHA256, 1350 B -HMAC-SHA256, 1350 B, rind: 327 ns, 1.00× the fastest -327 ns -HMAC-SHA256, 1350 B, aws-lc-rs: 434 ns, 1.33× the fastest -434 ns -HMAC-SHA256, 1350 B, ring: 399 ns, 1.22× the fastest -399 ns -HMAC-SHA256, 1350 B, RustCrypto + dalek: 358 ns, 1.09× the fastest -358 ns -HMAC-SHA256, 1350 B, graviola: 363 ns, 1.11× the fastest -363 ns -HMAC-SHA256, 1350 B, libcrux: 2.66 µs, 8.15× the fastest; verified: HACL*'s F* proof of Hacl.HMAC's compute_sha2_256, compiled to Rust by an unverified step -2.66 µs ✓ -HMAC-SHA256, 1350 B, OpenSSL: 1.83 µs, 5.60× the fastest -1.83 µs +HMAC-SHA256, 1350 B, rind: 328 ns, 1.00× the fastest +328 ns +HMAC-SHA256, 1350 B, aws-lc-rs: 435 ns, 1.33× the fastest +435 ns +HMAC-SHA256, 1350 B, ring: 397 ns, 1.21× the fastest +397 ns +HMAC-SHA256, 1350 B, RustCrypto + dalek: 356 ns, 1.08× the fastest +356 ns +HMAC-SHA256, 1350 B, graviola: 358 ns, 1.09× the fastest +358 ns +HMAC-SHA256, 1350 B, libcrux: 2.68 µs, 8.15× the fastest; verified: HACL*'s F* proof of Hacl.HMAC's compute_sha2_256, compiled to Rust by an unverified step +2.68 µs ✓ +HMAC-SHA256, 1350 B, OpenSSL: 1.81 µs, 5.51× the fastest +1.81 µs HKDF-SHA256 extract and expand -HKDF-SHA256 extract and expand, rind: 152 ns, 1.00× the fastest -152 ns -HKDF-SHA256 extract and expand, aws-lc-rs: 288 ns, 1.90× the fastest -288 ns -HKDF-SHA256 extract and expand, ring: 305 ns, 2.01× the fastest -305 ns -HKDF-SHA256 extract and expand, RustCrypto + dalek: 223 ns, 1.47× the fastest +HKDF-SHA256 extract and expand, rind: 158 ns, 1.00× the fastest +158 ns +HKDF-SHA256 extract and expand, aws-lc-rs: 285 ns, 1.80× the fastest +285 ns +HKDF-SHA256 extract and expand, ring: 303 ns, 1.92× the fastest +303 ns +HKDF-SHA256 extract and expand, RustCrypto + dalek: 223 ns, 1.41× the fastest 223 ns -HKDF-SHA256 extract and expand, libcrux: 965 ns, 6.36× the fastest; verified: HACL*'s F* proof of Hacl.HKDF's extract_sha2_256 and expand_sha2_256, compiled to Rust by an unverified step +HKDF-SHA256 extract and expand, libcrux: 965 ns, 6.12× the fastest; verified: HACL*'s F* proof of Hacl.HKDF's extract_sha2_256 and expand_sha2_256, compiled to Rust by an unverified step 965 ns ✓ -HKDF-SHA256 extract and expand, OpenSSL: 1.76 µs, 11.57× the fastest -1.76 µs +HKDF-SHA256 extract and expand, OpenSSL: 1.72 µs, 10.92× the fastest +1.72 µs HKDF-SHA256 expand -HKDF-SHA256 expand, rind: 47 ns, 1.00× the fastest -47 ns -HKDF-SHA256 expand, aws-lc-rs: 126 ns, 2.70× the fastest -126 ns -HKDF-SHA256 expand, ring: 122 ns, 2.63× the fastest -122 ns -HKDF-SHA256 expand, RustCrypto + dalek: 85 ns, 1.83× the fastest -85 ns -HKDF-SHA256 expand, libcrux: 484 ns, 10.38× the fastest; verified: HACL*'s F* proof of Hacl.HKDF's extract_sha2_256 and expand_sha2_256, compiled to Rust by an unverified step -484 ns ✓ -HKDF-SHA256 expand, OpenSSL: 1.25 µs, 26.79× the fastest -1.25 µs +HKDF-SHA256 expand, rind: 66 ns, 1.00× the fastest +66 ns +HKDF-SHA256 expand, aws-lc-rs: 124 ns, 1.88× the fastest +124 ns +HKDF-SHA256 expand, ring: 120 ns, 1.82× the fastest +120 ns +HKDF-SHA256 expand, RustCrypto + dalek: 84 ns, 1.27× the fastest +84 ns +HKDF-SHA256 expand, libcrux: 480 ns, 7.26× the fastest; verified: HACL*'s F* proof of Hacl.HKDF's extract_sha2_256 and expand_sha2_256, compiled to Rust by an unverified step +480 ns ✓ +HKDF-SHA256 expand, OpenSSL: 1.23 µs, 18.65× the fastest +1.23 µs RSA RSA-2048 PKCS#1 sign -RSA-2048 PKCS#1 sign, rind: 348.43 µs, 1.02× the fastest -348.43 µs -RSA-2048 PKCS#1 sign, aws-lc-rs: 349.47 µs, 1.02× the fastest -349.47 µs -RSA-2048 PKCS#1 sign, ring: 341.11 µs, 1.00× the fastest -341.11 µs -RSA-2048 PKCS#1 sign, RustCrypto + dalek: 588.67 µs, 1.73× the fastest -588.67 µs -RSA-2048 PKCS#1 sign, graviola: 343.91 µs, 1.01× the fastest -343.91 µs -RSA-2048 PKCS#1 sign, OpenSSL: 397.72 µs, 1.17× the fastest -397.72 µs +RSA-2048 PKCS#1 sign, rind: 341.49 µs, 1.02× the fastest +341.49 µs +RSA-2048 PKCS#1 sign, aws-lc-rs: 344.24 µs, 1.02× the fastest +344.24 µs +RSA-2048 PKCS#1 sign, ring: 336.10 µs, 1.00× the fastest +336.10 µs +RSA-2048 PKCS#1 sign, RustCrypto + dalek: 580.18 µs, 1.73× the fastest +580.18 µs +RSA-2048 PKCS#1 sign, graviola: 343.75 µs, 1.02× the fastest +343.75 µs +RSA-2048 PKCS#1 sign, OpenSSL: 393.45 µs, 1.17× the fastest +393.45 µs RSA-2048 PKCS#1 verify -RSA-2048 PKCS#1 verify, rind: 8.97 µs, 1.00× the fastest -8.97 µs -RSA-2048 PKCS#1 verify, aws-lc-rs: 10.86 µs, 1.21× the fastest -10.86 µs -RSA-2048 PKCS#1 verify, ring: 12.70 µs, 1.41× the fastest -12.70 µs -RSA-2048 PKCS#1 verify, RustCrypto + dalek: 29.41 µs, 3.28× the fastest -29.41 µs -RSA-2048 PKCS#1 verify, graviola: 14.06 µs, 1.57× the fastest -14.06 µs -RSA-2048 PKCS#1 verify, OpenSSL: 15.59 µs, 1.74× the fastest -15.59 µs +RSA-2048 PKCS#1 verify, rind: 8.92 µs, 1.00× the fastest +8.92 µs +RSA-2048 PKCS#1 verify, aws-lc-rs: 10.96 µs, 1.23× the fastest +10.96 µs +RSA-2048 PKCS#1 verify, ring: 12.78 µs, 1.43× the fastest +12.78 µs +RSA-2048 PKCS#1 verify, RustCrypto + dalek: 29.01 µs, 3.25× the fastest +29.01 µs +RSA-2048 PKCS#1 verify, graviola: 13.98 µs, 1.57× the fastest +13.98 µs +RSA-2048 PKCS#1 verify, OpenSSL: 15.51 µs, 1.74× the fastest +15.51 µs RSA-2048 PSS sign -RSA-2048 PSS sign, rind: 346.52 µs, 1.01× the fastest -346.52 µs -RSA-2048 PSS sign, aws-lc-rs: 350.45 µs, 1.03× the fastest -350.45 µs -RSA-2048 PSS sign, ring: 341.45 µs, 1.00× the fastest -341.45 µs -RSA-2048 PSS sign, RustCrypto + dalek: 588.33 µs, 1.72× the fastest -588.33 µs -RSA-2048 PSS sign, graviola: 342.67 µs, 1.00× the fastest -342.67 µs -RSA-2048 PSS sign, libcrux: 4.10 ms, 12.00× the fastest; verified: HACL*'s F* proof of Hacl.RSAPSS's rsapss_skey_sign and rsapss_pkey_verify, signing without the CRT, compiled to Rust by an unverified step -4.10 ms ✓ -RSA-2048 PSS sign, OpenSSL: 395.81 µs, 1.16× the fastest -395.81 µs +RSA-2048 PSS sign, rind: 341.45 µs, 1.00× the fastest +341.45 µs +RSA-2048 PSS sign, aws-lc-rs: 346.55 µs, 1.01× the fastest +346.55 µs +RSA-2048 PSS sign, ring: 342.49 µs, 1.00× the fastest +342.49 µs +RSA-2048 PSS sign, RustCrypto + dalek: 581.16 µs, 1.70× the fastest +581.16 µs +RSA-2048 PSS sign, graviola: 344.58 µs, 1.01× the fastest +344.58 µs +RSA-2048 PSS sign, libcrux: 3.69 ms, 10.79× the fastest; verified: HACL*'s F* proof of Hacl.RSAPSS's rsapss_skey_sign and rsapss_pkey_verify, signing without the CRT, compiled to Rust by an unverified step +3.69 ms ✓ +RSA-2048 PSS sign, OpenSSL: 390.44 µs, 1.14× the fastest +390.44 µs RSA-2048 PSS verify -RSA-2048 PSS verify, rind: 9.18 µs, 1.00× the fastest -9.18 µs -RSA-2048 PSS verify, aws-lc-rs: 11.17 µs, 1.22× the fastest -11.17 µs -RSA-2048 PSS verify, ring: 13.31 µs, 1.45× the fastest -13.31 µs -RSA-2048 PSS verify, RustCrypto + dalek: 35.62 µs, 3.88× the fastest -35.62 µs -RSA-2048 PSS verify, graviola: 14.44 µs, 1.57× the fastest -14.44 µs -RSA-2048 PSS verify, libcrux: 252.13 µs, 27.46× the fastest; verified: HACL*'s F* proof of Hacl.RSAPSS's rsapss_skey_sign and rsapss_pkey_verify, signing without the CRT, compiled to Rust by an unverified step -252.13 µs ✓ -RSA-2048 PSS verify, OpenSSL: 16.36 µs, 1.78× the fastest -16.36 µs +RSA-2048 PSS verify, rind: 9.15 µs, 1.00× the fastest +9.15 µs +RSA-2048 PSS verify, aws-lc-rs: 11.16 µs, 1.22× the fastest +11.16 µs +RSA-2048 PSS verify, ring: 13.19 µs, 1.44× the fastest +13.19 µs +RSA-2048 PSS verify, RustCrypto + dalek: 35.27 µs, 3.86× the fastest +35.27 µs +RSA-2048 PSS verify, graviola: 14.30 µs, 1.56× the fastest +14.30 µs +RSA-2048 PSS verify, libcrux: 251.91 µs, 27.53× the fastest; verified: HACL*'s F* proof of Hacl.RSAPSS's rsapss_skey_sign and rsapss_pkey_verify, signing without the CRT, compiled to Rust by an unverified step +251.91 µs ✓ +RSA-2048 PSS verify, OpenSSL: 16.25 µs, 1.78× the fastest +16.25 µs ML-KEM ML-KEM-768 key generation -ML-KEM-768 key generation, rind: 6.45 µs, 1.00× the fastest -6.45 µs -ML-KEM-768 key generation, aws-lc-rs: 8.27 µs, 1.28× the fastest -8.27 µs -ML-KEM-768 key generation, RustCrypto + dalek: 40.26 µs, 6.24× the fastest -40.26 µs -ML-KEM-768 key generation, graviola: 7.67 µs, 1.19× the fastest -7.67 µs -ML-KEM-768 key generation, libcrux: 15.15 µs, 2.35× the fastest -15.15 µs -ML-KEM-768 key generation, OpenSSL: 19.80 µs, 3.07× the fastest -19.80 µs +ML-KEM-768 key generation, rind: 6.35 µs, 1.00× the fastest +6.35 µs +ML-KEM-768 key generation, aws-lc-rs: 8.13 µs, 1.28× the fastest +8.13 µs +ML-KEM-768 key generation, RustCrypto + dalek: 39.63 µs, 6.24× the fastest +39.63 µs +ML-KEM-768 key generation, graviola: 7.37 µs, 1.16× the fastest +7.37 µs +ML-KEM-768 key generation, libcrux: 15.02 µs, 2.37× the fastest +15.02 µs +ML-KEM-768 key generation, OpenSSL: 19.81 µs, 3.12× the fastest +19.81 µs ML-KEM-768 encapsulate -ML-KEM-768 encapsulate, rind: 6.65 µs, 1.00× the fastest -6.65 µs -ML-KEM-768 encapsulate, aws-lc-rs: 8.68 µs, 1.31× the fastest -8.68 µs -ML-KEM-768 encapsulate, RustCrypto + dalek: 41.71 µs, 6.27× the fastest -41.71 µs -ML-KEM-768 encapsulate, graviola: 9.11 µs, 1.37× the fastest -9.11 µs -ML-KEM-768 encapsulate, libcrux: 12.94 µs, 1.94× the fastest -12.94 µs -ML-KEM-768 encapsulate, OpenSSL: 18.77 µs, 2.82× the fastest +ML-KEM-768 encapsulate, rind: 6.50 µs, 1.00× the fastest +6.50 µs +ML-KEM-768 encapsulate, aws-lc-rs: 8.48 µs, 1.30× the fastest +8.48 µs +ML-KEM-768 encapsulate, RustCrypto + dalek: 41.38 µs, 6.36× the fastest +41.38 µs +ML-KEM-768 encapsulate, graviola: 9.00 µs, 1.38× the fastest +9.00 µs +ML-KEM-768 encapsulate, libcrux: 12.80 µs, 1.97× the fastest +12.80 µs +ML-KEM-768 encapsulate, OpenSSL: 18.77 µs, 2.89× the fastest 18.77 µs ML-KEM-768 decapsulate -ML-KEM-768 decapsulate, rind: 4.69 µs, 1.00× the fastest -4.69 µs -ML-KEM-768 decapsulate, aws-lc-rs: 9.02 µs, 1.92× the fastest -9.02 µs -ML-KEM-768 decapsulate, RustCrypto + dalek: 54.19 µs, 11.55× the fastest -54.19 µs -ML-KEM-768 decapsulate, graviola: 6.59 µs, 1.41× the fastest -6.59 µs -ML-KEM-768 decapsulate, libcrux: 13.44 µs, 2.87× the fastest +ML-KEM-768 decapsulate, rind: 4.64 µs, 1.00× the fastest +4.64 µs +ML-KEM-768 decapsulate, aws-lc-rs: 8.90 µs, 1.92× the fastest +8.90 µs +ML-KEM-768 decapsulate, RustCrypto + dalek: 54.87 µs, 11.81× the fastest +54.87 µs +ML-KEM-768 decapsulate, graviola: 6.54 µs, 1.41× the fastest +6.54 µs +ML-KEM-768 decapsulate, libcrux: 13.44 µs, 2.89× the fastest 13.44 µs -ML-KEM-768 decapsulate, OpenSSL: 16.05 µs, 3.42× the fastest -16.05 µs +ML-KEM-768 decapsulate, OpenSSL: 15.77 µs, 3.40× the fastest +15.77 µs P-384 and P-521 P-384 ECDH -P-384 ECDH, rind: 100.08 µs, 1.00× the fastest -100.08 µs -P-384 ECDH, aws-lc-rs: 111.11 µs, 1.11× the fastest -111.11 µs -P-384 ECDH, ring: 369.71 µs, 3.69× the fastest -369.71 µs -P-384 ECDH, RustCrypto + dalek: 401.25 µs, 4.01× the fastest -401.25 µs -P-384 ECDH, graviola: 170.94 µs, 1.71× the fastest -170.94 µs -P-384 ECDH, OpenSSL: 264.84 µs, 2.65× the fastest -264.84 µs +P-384 ECDH, rind: 100.20 µs, 1.00× the fastest +100.20 µs +P-384 ECDH, aws-lc-rs: 109.34 µs, 1.09× the fastest +109.34 µs +P-384 ECDH, ring: 369.83 µs, 3.69× the fastest +369.83 µs +P-384 ECDH, RustCrypto + dalek: 402.09 µs, 4.01× the fastest +402.09 µs +P-384 ECDH, graviola: 174.12 µs, 1.74× the fastest +174.12 µs +P-384 ECDH, OpenSSL: 265.21 µs, 2.65× the fastest +265.21 µs P-384 ECDSA sign -P-384 ECDSA sign, rind: 23.53 µs, 1.00× the fastest -23.53 µs -P-384 ECDSA sign, aws-lc-rs: 46.52 µs, 1.98× the fastest -46.52 µs -P-384 ECDSA sign, ring: 200.86 µs, 8.54× the fastest -200.86 µs -P-384 ECDSA sign, RustCrypto + dalek: 86.86 µs, 3.69× the fastest -86.86 µs -P-384 ECDSA sign, graviola: 90.69 µs, 3.85× the fastest -90.69 µs -P-384 ECDSA sign, OpenSSL: 89.64 µs, 3.81× the fastest -89.64 µs +P-384 ECDSA sign, rind: 23.48 µs, 1.00× the fastest +23.48 µs +P-384 ECDSA sign, aws-lc-rs: 46.55 µs, 1.98× the fastest +46.55 µs +P-384 ECDSA sign, ring: 197.31 µs, 8.40× the fastest +197.31 µs +P-384 ECDSA sign, RustCrypto + dalek: 85.50 µs, 3.64× the fastest +85.50 µs +P-384 ECDSA sign, graviola: 90.29 µs, 3.85× the fastest +90.29 µs +P-384 ECDSA sign, OpenSSL: 88.98 µs, 3.79× the fastest +88.98 µs P-384 ECDSA verify -P-384 ECDSA verify, rind: 98.87 µs, 1.00× the fastest -98.87 µs -P-384 ECDSA verify, aws-lc-rs: 116.66 µs, 1.18× the fastest -116.66 µs -P-384 ECDSA verify, ring: 360.29 µs, 3.64× the fastest -360.29 µs -P-384 ECDSA verify, RustCrypto + dalek: 360.21 µs, 3.64× the fastest -360.21 µs -P-384 ECDSA verify, graviola: 167.40 µs, 1.69× the fastest -167.40 µs -P-384 ECDSA verify, OpenSSL: 215.86 µs, 2.18× the fastest -215.86 µs +P-384 ECDSA verify, rind: 100.10 µs, 1.00× the fastest +100.10 µs +P-384 ECDSA verify, aws-lc-rs: 115.71 µs, 1.16× the fastest +115.71 µs +P-384 ECDSA verify, ring: 357.26 µs, 3.57× the fastest +357.26 µs +P-384 ECDSA verify, RustCrypto + dalek: 359.61 µs, 3.59× the fastest +359.61 µs +P-384 ECDSA verify, graviola: 166.49 µs, 1.66× the fastest +166.49 µs +P-384 ECDSA verify, OpenSSL: 216.27 µs, 2.16× the fastest +216.27 µs P-521 ECDH -P-521 ECDH, rind: 160.77 µs, 1.00× the fastest -160.77 µs -P-521 ECDH, aws-lc-rs: 170.98 µs, 1.06× the fastest -170.98 µs -P-521 ECDH, RustCrypto + dalek: 431.17 µs, 2.68× the fastest -431.17 µs -P-521 ECDH, OpenSSL: 276.21 µs, 1.72× the fastest -276.21 µs +P-521 ECDH, rind: 159.57 µs, 1.00× the fastest +159.57 µs +P-521 ECDH, aws-lc-rs: 171.50 µs, 1.07× the fastest +171.50 µs +P-521 ECDH, RustCrypto + dalek: 428.27 µs, 2.68× the fastest +428.27 µs +P-521 ECDH, OpenSSL: 276.64 µs, 1.73× the fastest +276.64 µs P-521 ECDSA sign -P-521 ECDSA sign, rind: 40.56 µs, 1.00× the fastest -40.56 µs -P-521 ECDSA sign, aws-lc-rs: 89.64 µs, 2.21× the fastest -89.64 µs -P-521 ECDSA sign, RustCrypto + dalek: 95.29 µs, 2.35× the fastest -95.29 µs -P-521 ECDSA sign, OpenSSL: 129.20 µs, 3.19× the fastest -129.20 µs +P-521 ECDSA sign, rind: 40.09 µs, 1.00× the fastest +40.09 µs +P-521 ECDSA sign, aws-lc-rs: 88.28 µs, 2.20× the fastest +88.28 µs +P-521 ECDSA sign, RustCrypto + dalek: 94.09 µs, 2.35× the fastest +94.09 µs +P-521 ECDSA sign, OpenSSL: 127.93 µs, 3.19× the fastest +127.93 µs P-521 ECDSA verify -P-521 ECDSA verify, rind: 147.09 µs, 1.00× the fastest -147.09 µs -P-521 ECDSA verify, aws-lc-rs: 186.61 µs, 1.27× the fastest -186.61 µs -P-521 ECDSA verify, RustCrypto + dalek: 359.57 µs, 2.44× the fastest -359.57 µs -P-521 ECDSA verify, OpenSSL: 267.51 µs, 1.82× the fastest -267.51 µs +P-521 ECDSA verify, rind: 145.10 µs, 1.00× the fastest +145.10 µs +P-521 ECDSA verify, aws-lc-rs: 186.69 µs, 1.29× the fastest +186.69 µs +P-521 ECDSA verify, RustCrypto + dalek: 352.95 µs, 2.43× the fastest +352.95 µs +P-521 ECDSA verify, OpenSSL: 261.10 µs, 1.80× the fastest +261.10 µs diff --git a/benchmarks/gaps.toml b/benchmarks/gaps.toml index 94dde98d5..01fd12c31 100644 --- a/benchmarks/gaps.toml +++ b/benchmarks/gaps.toml @@ -23,11 +23,6 @@ operations = ["rsa2048-pkcs1-sha256-sign"] on = ["nixos"] reason = "Noise: other work kept 5 CPUs busy during this run, in which PSS signing, the same exponentiation, measured 0.95× graviola's time. Interleaved runs on `nixos` the same morning measured rind's PKCS#1 signing at 436 to 446 µs against graviola's 432 to 542 µs and ring's 459 to 568 µs. The next refresh rechecks it." -[[gap]] -operations = ["rustls-bulk/aes128-gcm", "xchacha20poly1305/1350B"] -on = ["desktop"] -reason = "Noise: other work kept 5 CPUs busy during this run. The run before it measured 0.99× ring's and 0.97× aws-lc-rs's time, and neither shows on another host. The next refresh rechecks both." - [[gap]] operations = ["ed25519-verify"] on = ["ovh-iad", "ovh-sea"] @@ -53,7 +48,6 @@ operations = [ "aes128-gcm/32B", "aes128-gcm/1350B", "aes128-gcm-open/32B", - "aes128-gcm-open/1350B", "aes256-gcm/32B", "aes256-gcm/1350B", "aes256-gcm-open/32B", @@ -71,9 +65,4 @@ operations = [ "hkdf-sha256/expand", ] on = ["kixtop"] -reason = "DIT: the M4 has it, and rind turns it on and off around every call that handles a secret, which costs about 35 to 55 ns a call there; the other libraries never set it. Keeping it per call was decided with the maintainer from [#387](https://github.com/moq-dev/rind/pull/387)'s findings. Holding `rind::cpu::Dit::hold()` ([#431](https://github.com/moq-dev/rind/pull/431)) across a batch of calls, as MoQ does, pays it once and closes every one of these gaps: rind-bench's `rind-dit-held` rows time that, and a run at [`ec4b720d`](https://github.com/moq-dev/rind/commit/ec4b720daadd41f8ab7f3669f262c678b1af8c89), noisy with other work on 1.1 CPUs, measured each within 10% of the fastest library, SHA-256 at 1350 B (1.10× ring's) and HMAC-SHA-256 at 64 B (1.10× RustCrypto's) at the edge." - -[[gap]] -operations = ["xchacha20poly1305/32B"] -on = ["kixtop"] -reason = "Noise: a rerun of the row on the same commit measured 1.04× aws-lc-rs's time, as did the run before this one, on a commit that changed only x86_64 code. The next refresh rechecks it." +reason = "DIT: the M4 has it, and rind turns it on and off around every call that handles a secret, which costs about 30 to 55 ns a call there; the other libraries never set it. Keeping it per call was decided with the maintainer from [#387](https://github.com/moq-dev/rind/pull/387)'s findings. Holding `rind::cpu::Dit::hold()` ([#431](https://github.com/moq-dev/rind/pull/431)) across a batch of calls, as MoQ does, pays it once and closes all but one of these gaps: the rind (DIT held) column times that, and on [`9e7f6a5a`](https://github.com/moq-dev/rind/commit/9e7f6a5a9ea59a0cf1251c24af6c5d4f21c2b0fd), the run this report shows, every one measured within 10% of the fastest library except HMAC-SHA-256 at 64 B, at 1.10× RustCrypto's (109.7 ns against 99.4 ns)." diff --git a/benchmarks/headline-dark.svg b/benchmarks/headline-dark.svg index 1330f8a7c..5993d5907 100644 --- a/benchmarks/headline-dark.svg +++ b/benchmarks/headline-dark.svg @@ -5,10 +5,10 @@ full handshake, X25519MLKEM768 rind -full handshake, X25519MLKEM768, rind: nixos 260.78 µs, 1.00× rind's; desktop 174.97 µs, 1.00× rind's; nixos2 302.43 µs, 1.00× rind's; kixtop 177.98 µs, 1.00× rind's; ovh-iad 625.81 µs, 1.00× rind's; ovh-sea 580.07 µs, 1.00× rind's +full handshake, X25519MLKEM768, rind: nixos 260.78 µs, 1.00× rind's; desktop 172.30 µs, 1.00× rind's; nixos2 302.43 µs, 1.00× rind's; kixtop 174.03 µs, 1.00× rind's; ovh-iad 625.81 µs, 1.00× rind's; ovh-sea 580.07 µs, 1.00× rind's 1× aws-lc-rs -full handshake, X25519MLKEM768, aws-lc-rs: nixos 331.87 µs, 1.27× rind's; desktop 235.60 µs, 1.35× rind's; nixos2 458.06 µs, 1.51× rind's; kixtop 214.67 µs, 1.21× rind's; ovh-iad 731.87 µs, 1.17× rind's; ovh-sea 697.59 µs, 1.20× rind's +full handshake, X25519MLKEM768, aws-lc-rs: nixos 331.87 µs, 1.27× rind's; desktop 233.73 µs, 1.36× rind's; nixos2 458.06 µs, 1.51× rind's; kixtop 212.26 µs, 1.22× rind's; ovh-iad 731.87 µs, 1.17× rind's; ovh-sea 697.59 µs, 1.20× rind's @@ -18,84 +18,84 @@ AES-128-GCM seal, 1350 B rind -AES-128-GCM seal, 1350 B, rind: nixos 165 ns, 1.00× rind's; desktop 94 ns, 1.00× rind's; nixos2 246 ns, 1.00× rind's; kixtop 212 ns, 1.00× rind's; ovh-iad 398 ns, 1.00× rind's; ovh-sea 380 ns, 1.00× rind's +AES-128-GCM seal, 1350 B, rind: nixos 165 ns, 1.00× rind's; desktop 93 ns, 1.00× rind's; nixos2 246 ns, 1.00× rind's; kixtop 209 ns, 1.00× rind's; ovh-iad 398 ns, 1.00× rind's; ovh-sea 380 ns, 1.00× rind's 1× aws-lc-rs -AES-128-GCM seal, 1350 B, aws-lc-rs: nixos 291 ns, 1.77× rind's; desktop 149 ns, 1.59× rind's; nixos2 285 ns, 1.16× rind's; kixtop 180 ns, 0.85× rind's; ovh-iad 460 ns, 1.15× rind's; ovh-sea 439 ns, 1.15× rind's - - +AES-128-GCM seal, 1350 B, aws-lc-rs: nixos 291 ns, 1.77× rind's; desktop 159 ns, 1.71× rind's; nixos2 285 ns, 1.16× rind's; kixtop 181 ns, 0.87× rind's; ovh-iad 460 ns, 1.15× rind's; ovh-sea 439 ns, 1.15× rind's + + -1.24× +1.26× ring -AES-128-GCM seal, 1350 B, ring: nixos 191 ns, 1.16× rind's; desktop 118 ns, 1.26× rind's; nixos2 277 ns, 1.13× rind's; kixtop 212 ns, 1.00× rind's; ovh-iad 475 ns, 1.19× rind's; ovh-sea 438 ns, 1.15× rind's - - - -1.15× +AES-128-GCM seal, 1350 B, ring: nixos 191 ns, 1.16× rind's; desktop 119 ns, 1.29× rind's; nixos2 277 ns, 1.13× rind's; kixtop 210 ns, 1.01× rind's; ovh-iad 475 ns, 1.19× rind's; ovh-sea 438 ns, 1.15× rind's + + + +1.15× ChaCha20-Poly1305 seal, 1350 B rind -ChaCha20-Poly1305 seal, 1350 B, rind: nixos 533 ns, 1.00× rind's; desktop 441 ns, 1.00× rind's; nixos2 718 ns, 1.00× rind's; kixtop 792 ns, 1.00× rind's; ovh-iad 1.07 µs, 1.00× rind's; ovh-sea 1.04 µs, 1.00× rind's +ChaCha20-Poly1305 seal, 1350 B, rind: nixos 533 ns, 1.00× rind's; desktop 440 ns, 1.00× rind's; nixos2 718 ns, 1.00× rind's; kixtop 773 ns, 1.00× rind's; ovh-iad 1.07 µs, 1.00× rind's; ovh-sea 1.04 µs, 1.00× rind's 1× aws-lc-rs -ChaCha20-Poly1305 seal, 1350 B, aws-lc-rs: nixos 532 ns, 1.00× rind's; desktop 453 ns, 1.03× rind's; nixos2 755 ns, 1.05× rind's; kixtop 771 ns, 0.97× rind's; ovh-iad 1.10 µs, 1.03× rind's; ovh-sea 1.05 µs, 1.02× rind's - - +ChaCha20-Poly1305 seal, 1350 B, aws-lc-rs: nixos 532 ns, 1.00× rind's; desktop 446 ns, 1.01× rind's; nixos2 755 ns, 1.05× rind's; kixtop 759 ns, 0.98× rind's; ovh-iad 1.10 µs, 1.03× rind's; ovh-sea 1.05 µs, 1.02× rind's + + -1.02× +1.01× ring -ChaCha20-Poly1305 seal, 1350 B, ring: nixos 527 ns, 0.99× rind's; desktop 447 ns, 1.01× rind's; nixos2 714 ns, 1.00× rind's; kixtop 755 ns, 0.95× rind's; ovh-iad 1.08 µs, 1.00× rind's; ovh-sea 1.04 µs, 1.00× rind's - - - -0.99× +ChaCha20-Poly1305 seal, 1350 B, ring: nixos 527 ns, 0.99× rind's; desktop 448 ns, 1.02× rind's; nixos2 714 ns, 1.00× rind's; kixtop 741 ns, 0.96× rind's; ovh-iad 1.08 µs, 1.00× rind's; ovh-sea 1.04 µs, 1.00× rind's + + + +0.99× X25519 rind -X25519, rind: nixos 23.97 µs, 1.00× rind's; desktop 19.68 µs, 1.00× rind's; nixos2 25.00 µs, 1.00× rind's; kixtop 16.71 µs, 1.00× rind's; ovh-iad 51.79 µs, 1.00× rind's; ovh-sea 51.10 µs, 1.00× rind's +X25519, rind: nixos 23.97 µs, 1.00× rind's; desktop 18.20 µs, 1.00× rind's; nixos2 25.00 µs, 1.00× rind's; kixtop 16.53 µs, 1.00× rind's; ovh-iad 51.79 µs, 1.00× rind's; ovh-sea 51.10 µs, 1.00× rind's 1× aws-lc-rs -X25519, aws-lc-rs: nixos 24.61 µs, 1.03× rind's; desktop 19.54 µs, 0.99× rind's; nixos2 30.89 µs, 1.24× rind's; kixtop 17.85 µs, 1.07× rind's; ovh-iad 55.09 µs, 1.06× rind's; ovh-sea 51.15 µs, 1.00× rind's - - +X25519, aws-lc-rs: nixos 24.61 µs, 1.03× rind's; desktop 19.24 µs, 1.06× rind's; nixos2 30.89 µs, 1.24× rind's; kixtop 18.12 µs, 1.10× rind's; ovh-iad 55.09 µs, 1.06× rind's; ovh-sea 51.15 µs, 1.00× rind's + + -1.06× +1.08× ring -X25519, ring: nixos 46.72 µs, 1.95× rind's; desktop 35.63 µs, 1.81× rind's; nixos2 53.60 µs, 2.14× rind's; kixtop 24.48 µs, 1.46× rind's; ovh-iad 79.18 µs, 1.53× rind's; ovh-sea 76.22 µs, 1.49× rind's - - +X25519, ring: nixos 46.72 µs, 1.95× rind's; desktop 35.63 µs, 1.96× rind's; nixos2 53.60 µs, 2.14× rind's; kixtop 24.91 µs, 1.51× rind's; ovh-iad 79.18 µs, 1.53× rind's; ovh-sea 76.22 µs, 1.49× rind's + + -1.71× +1.74× P-256 ECDSA sign rind -P-256 ECDSA sign, rind: nixos 9.62 µs, 1.00× rind's; desktop 6.84 µs, 1.00× rind's; nixos2 13.11 µs, 1.00× rind's; kixtop 7.11 µs, 1.00× rind's; ovh-iad 22.42 µs, 1.00× rind's; ovh-sea 21.44 µs, 1.00× rind's -1× +P-256 ECDSA sign, rind: nixos 9.62 µs, 1.00× rind's; desktop 6.74 µs, 1.00× rind's; nixos2 13.11 µs, 1.00× rind's; kixtop 7.13 µs, 1.00× rind's; ovh-iad 22.42 µs, 1.00× rind's; ovh-sea 21.44 µs, 1.00× rind's +1× aws-lc-rs -P-256 ECDSA sign, aws-lc-rs: nixos 12.66 µs, 1.32× rind's; desktop 12.33 µs, 1.80× rind's; nixos2 19.80 µs, 1.51× rind's; kixtop 11.27 µs, 1.58× rind's; ovh-iad 24.53 µs, 1.09× rind's; ovh-sea 23.93 µs, 1.12× rind's - - +P-256 ECDSA sign, aws-lc-rs: nixos 12.66 µs, 1.32× rind's; desktop 12.25 µs, 1.82× rind's; nixos2 19.80 µs, 1.51× rind's; kixtop 11.16 µs, 1.56× rind's; ovh-iad 24.53 µs, 1.09× rind's; ovh-sea 23.93 µs, 1.12× rind's + + 1.38× ring -P-256 ECDSA sign, ring: nixos 13.68 µs, 1.42× rind's; desktop 12.24 µs, 1.79× rind's; nixos2 14.86 µs, 1.13× rind's; kixtop 11.01 µs, 1.55× rind's; ovh-iad 26.21 µs, 1.17× rind's; ovh-sea 24.84 µs, 1.16× rind's - - - -1.35× +P-256 ECDSA sign, ring: nixos 13.68 µs, 1.42× rind's; desktop 12.20 µs, 1.81× rind's; nixos2 14.86 µs, 1.13× rind's; kixtop 10.91 µs, 1.53× rind's; ovh-iad 26.21 µs, 1.17× rind's; ovh-sea 24.84 µs, 1.16× rind's + + + +1.35× RSA-2048 PSS sign rind -RSA-2048 PSS sign, rind: nixos 424.30 µs, 1.00× rind's; desktop 346.52 µs, 1.00× rind's; nixos2 445.92 µs, 1.00× rind's; kixtop 275.29 µs, 1.00× rind's; ovh-iad 819.13 µs, 1.00× rind's; ovh-sea 743.95 µs, 1.00× rind's +RSA-2048 PSS sign, rind: nixos 424.30 µs, 1.00× rind's; desktop 341.45 µs, 1.00× rind's; nixos2 445.92 µs, 1.00× rind's; kixtop 275.82 µs, 1.00× rind's; ovh-iad 819.13 µs, 1.00× rind's; ovh-sea 743.95 µs, 1.00× rind's 1× aws-lc-rs -RSA-2048 PSS sign, aws-lc-rs: nixos 481.00 µs, 1.13× rind's; desktop 350.45 µs, 1.01× rind's; nixos2 461.87 µs, 1.04× rind's; kixtop 288.58 µs, 1.05× rind's; ovh-iad 807.21 µs, 0.99× rind's; ovh-sea 772.15 µs, 1.04× rind's +RSA-2048 PSS sign, aws-lc-rs: nixos 481.00 µs, 1.13× rind's; desktop 346.55 µs, 1.01× rind's; nixos2 461.87 µs, 1.04× rind's; kixtop 285.36 µs, 1.03× rind's; ovh-iad 807.21 µs, 0.99× rind's; ovh-sea 772.15 µs, 1.04× rind's 1.04× ring -RSA-2048 PSS sign, ring: nixos 471.53 µs, 1.11× rind's; desktop 341.45 µs, 0.99× rind's; nixos2 437.28 µs, 0.98× rind's; kixtop 324.86 µs, 1.18× rind's; ovh-iad 1.04 ms, 1.27× rind's; ovh-sea 987.95 µs, 1.33× rind's +RSA-2048 PSS sign, ring: nixos 471.53 µs, 1.11× rind's; desktop 342.49 µs, 1.00× rind's; nixos2 437.28 µs, 0.98× rind's; kixtop 323.17 µs, 1.17× rind's; ovh-iad 1.04 ms, 1.27× rind's; ovh-sea 987.95 µs, 1.33× rind's @@ -103,18 +103,18 @@ cold build of a rustls client rind -cold build of a rustls client, rind: nixos2 11.3 s, 1.00× rind's; ovh-iad 16.6 s, 1.00× rind's; ovh-sea 14.7 s, 1.00× rind's -1× +cold build of a rustls client, rind: desktop 4.2 s, 1.00× rind's; nixos2 11.3 s, 1.00× rind's; kixtop 6.5 s, 1.00× rind's; ovh-iad 16.6 s, 1.00× rind's; ovh-sea 14.7 s, 1.00× rind's +1× aws-lc-rs -cold build of a rustls client, aws-lc-rs: nixos2 36.6 s, 3.23× rind's; ovh-iad 54.0 s, 3.25× rind's; ovh-sea 47.6 s, 3.24× rind's - - +cold build of a rustls client, aws-lc-rs: desktop 16.6 s, 3.93× rind's; nixos2 36.6 s, 3.23× rind's; kixtop 34.0 s, 5.22× rind's; ovh-iad 54.0 s, 3.25× rind's; ovh-sea 47.6 s, 3.24× rind's + + -3.24×, needs cc +3.71×, needs cc ring -cold build of a rustls client, ring: nixos2 16.4 s, 1.45× rind's; ovh-iad 27.3 s, 1.65× rind's; ovh-sea 24.4 s, 1.66× rind's - - - -1.58×, needs cc +cold build of a rustls client, ring: desktop 7.8 s, 1.85× rind's; nixos2 16.4 s, 1.45× rind's; kixtop 12.2 s, 1.87× rind's; ovh-iad 27.3 s, 1.65× rind's; ovh-sea 24.4 s, 1.66× rind's + + + +1.69×, needs cc diff --git a/benchmarks/headline.svg b/benchmarks/headline.svg index c21b79d35..a700f7a0e 100644 --- a/benchmarks/headline.svg +++ b/benchmarks/headline.svg @@ -5,10 +5,10 @@ full handshake, X25519MLKEM768 rind -full handshake, X25519MLKEM768, rind: nixos 260.78 µs, 1.00× rind's; desktop 174.97 µs, 1.00× rind's; nixos2 302.43 µs, 1.00× rind's; kixtop 177.98 µs, 1.00× rind's; ovh-iad 625.81 µs, 1.00× rind's; ovh-sea 580.07 µs, 1.00× rind's +full handshake, X25519MLKEM768, rind: nixos 260.78 µs, 1.00× rind's; desktop 172.30 µs, 1.00× rind's; nixos2 302.43 µs, 1.00× rind's; kixtop 174.03 µs, 1.00× rind's; ovh-iad 625.81 µs, 1.00× rind's; ovh-sea 580.07 µs, 1.00× rind's 1× aws-lc-rs -full handshake, X25519MLKEM768, aws-lc-rs: nixos 331.87 µs, 1.27× rind's; desktop 235.60 µs, 1.35× rind's; nixos2 458.06 µs, 1.51× rind's; kixtop 214.67 µs, 1.21× rind's; ovh-iad 731.87 µs, 1.17× rind's; ovh-sea 697.59 µs, 1.20× rind's +full handshake, X25519MLKEM768, aws-lc-rs: nixos 331.87 µs, 1.27× rind's; desktop 233.73 µs, 1.36× rind's; nixos2 458.06 µs, 1.51× rind's; kixtop 212.26 µs, 1.22× rind's; ovh-iad 731.87 µs, 1.17× rind's; ovh-sea 697.59 µs, 1.20× rind's @@ -18,84 +18,84 @@ AES-128-GCM seal, 1350 B rind -AES-128-GCM seal, 1350 B, rind: nixos 165 ns, 1.00× rind's; desktop 94 ns, 1.00× rind's; nixos2 246 ns, 1.00× rind's; kixtop 212 ns, 1.00× rind's; ovh-iad 398 ns, 1.00× rind's; ovh-sea 380 ns, 1.00× rind's +AES-128-GCM seal, 1350 B, rind: nixos 165 ns, 1.00× rind's; desktop 93 ns, 1.00× rind's; nixos2 246 ns, 1.00× rind's; kixtop 209 ns, 1.00× rind's; ovh-iad 398 ns, 1.00× rind's; ovh-sea 380 ns, 1.00× rind's 1× aws-lc-rs -AES-128-GCM seal, 1350 B, aws-lc-rs: nixos 291 ns, 1.77× rind's; desktop 149 ns, 1.59× rind's; nixos2 285 ns, 1.16× rind's; kixtop 180 ns, 0.85× rind's; ovh-iad 460 ns, 1.15× rind's; ovh-sea 439 ns, 1.15× rind's - - +AES-128-GCM seal, 1350 B, aws-lc-rs: nixos 291 ns, 1.77× rind's; desktop 159 ns, 1.71× rind's; nixos2 285 ns, 1.16× rind's; kixtop 181 ns, 0.87× rind's; ovh-iad 460 ns, 1.15× rind's; ovh-sea 439 ns, 1.15× rind's + + -1.24× +1.26× ring -AES-128-GCM seal, 1350 B, ring: nixos 191 ns, 1.16× rind's; desktop 118 ns, 1.26× rind's; nixos2 277 ns, 1.13× rind's; kixtop 212 ns, 1.00× rind's; ovh-iad 475 ns, 1.19× rind's; ovh-sea 438 ns, 1.15× rind's - - - -1.15× +AES-128-GCM seal, 1350 B, ring: nixos 191 ns, 1.16× rind's; desktop 119 ns, 1.29× rind's; nixos2 277 ns, 1.13× rind's; kixtop 210 ns, 1.01× rind's; ovh-iad 475 ns, 1.19× rind's; ovh-sea 438 ns, 1.15× rind's + + + +1.15× ChaCha20-Poly1305 seal, 1350 B rind -ChaCha20-Poly1305 seal, 1350 B, rind: nixos 533 ns, 1.00× rind's; desktop 441 ns, 1.00× rind's; nixos2 718 ns, 1.00× rind's; kixtop 792 ns, 1.00× rind's; ovh-iad 1.07 µs, 1.00× rind's; ovh-sea 1.04 µs, 1.00× rind's +ChaCha20-Poly1305 seal, 1350 B, rind: nixos 533 ns, 1.00× rind's; desktop 440 ns, 1.00× rind's; nixos2 718 ns, 1.00× rind's; kixtop 773 ns, 1.00× rind's; ovh-iad 1.07 µs, 1.00× rind's; ovh-sea 1.04 µs, 1.00× rind's 1× aws-lc-rs -ChaCha20-Poly1305 seal, 1350 B, aws-lc-rs: nixos 532 ns, 1.00× rind's; desktop 453 ns, 1.03× rind's; nixos2 755 ns, 1.05× rind's; kixtop 771 ns, 0.97× rind's; ovh-iad 1.10 µs, 1.03× rind's; ovh-sea 1.05 µs, 1.02× rind's - - +ChaCha20-Poly1305 seal, 1350 B, aws-lc-rs: nixos 532 ns, 1.00× rind's; desktop 446 ns, 1.01× rind's; nixos2 755 ns, 1.05× rind's; kixtop 759 ns, 0.98× rind's; ovh-iad 1.10 µs, 1.03× rind's; ovh-sea 1.05 µs, 1.02× rind's + + -1.02× +1.01× ring -ChaCha20-Poly1305 seal, 1350 B, ring: nixos 527 ns, 0.99× rind's; desktop 447 ns, 1.01× rind's; nixos2 714 ns, 1.00× rind's; kixtop 755 ns, 0.95× rind's; ovh-iad 1.08 µs, 1.00× rind's; ovh-sea 1.04 µs, 1.00× rind's - - - -0.99× +ChaCha20-Poly1305 seal, 1350 B, ring: nixos 527 ns, 0.99× rind's; desktop 448 ns, 1.02× rind's; nixos2 714 ns, 1.00× rind's; kixtop 741 ns, 0.96× rind's; ovh-iad 1.08 µs, 1.00× rind's; ovh-sea 1.04 µs, 1.00× rind's + + + +0.99× X25519 rind -X25519, rind: nixos 23.97 µs, 1.00× rind's; desktop 19.68 µs, 1.00× rind's; nixos2 25.00 µs, 1.00× rind's; kixtop 16.71 µs, 1.00× rind's; ovh-iad 51.79 µs, 1.00× rind's; ovh-sea 51.10 µs, 1.00× rind's +X25519, rind: nixos 23.97 µs, 1.00× rind's; desktop 18.20 µs, 1.00× rind's; nixos2 25.00 µs, 1.00× rind's; kixtop 16.53 µs, 1.00× rind's; ovh-iad 51.79 µs, 1.00× rind's; ovh-sea 51.10 µs, 1.00× rind's 1× aws-lc-rs -X25519, aws-lc-rs: nixos 24.61 µs, 1.03× rind's; desktop 19.54 µs, 0.99× rind's; nixos2 30.89 µs, 1.24× rind's; kixtop 17.85 µs, 1.07× rind's; ovh-iad 55.09 µs, 1.06× rind's; ovh-sea 51.15 µs, 1.00× rind's - - +X25519, aws-lc-rs: nixos 24.61 µs, 1.03× rind's; desktop 19.24 µs, 1.06× rind's; nixos2 30.89 µs, 1.24× rind's; kixtop 18.12 µs, 1.10× rind's; ovh-iad 55.09 µs, 1.06× rind's; ovh-sea 51.15 µs, 1.00× rind's + + -1.06× +1.08× ring -X25519, ring: nixos 46.72 µs, 1.95× rind's; desktop 35.63 µs, 1.81× rind's; nixos2 53.60 µs, 2.14× rind's; kixtop 24.48 µs, 1.46× rind's; ovh-iad 79.18 µs, 1.53× rind's; ovh-sea 76.22 µs, 1.49× rind's - - +X25519, ring: nixos 46.72 µs, 1.95× rind's; desktop 35.63 µs, 1.96× rind's; nixos2 53.60 µs, 2.14× rind's; kixtop 24.91 µs, 1.51× rind's; ovh-iad 79.18 µs, 1.53× rind's; ovh-sea 76.22 µs, 1.49× rind's + + -1.71× +1.74× P-256 ECDSA sign rind -P-256 ECDSA sign, rind: nixos 9.62 µs, 1.00× rind's; desktop 6.84 µs, 1.00× rind's; nixos2 13.11 µs, 1.00× rind's; kixtop 7.11 µs, 1.00× rind's; ovh-iad 22.42 µs, 1.00× rind's; ovh-sea 21.44 µs, 1.00× rind's -1× +P-256 ECDSA sign, rind: nixos 9.62 µs, 1.00× rind's; desktop 6.74 µs, 1.00× rind's; nixos2 13.11 µs, 1.00× rind's; kixtop 7.13 µs, 1.00× rind's; ovh-iad 22.42 µs, 1.00× rind's; ovh-sea 21.44 µs, 1.00× rind's +1× aws-lc-rs -P-256 ECDSA sign, aws-lc-rs: nixos 12.66 µs, 1.32× rind's; desktop 12.33 µs, 1.80× rind's; nixos2 19.80 µs, 1.51× rind's; kixtop 11.27 µs, 1.58× rind's; ovh-iad 24.53 µs, 1.09× rind's; ovh-sea 23.93 µs, 1.12× rind's - - +P-256 ECDSA sign, aws-lc-rs: nixos 12.66 µs, 1.32× rind's; desktop 12.25 µs, 1.82× rind's; nixos2 19.80 µs, 1.51× rind's; kixtop 11.16 µs, 1.56× rind's; ovh-iad 24.53 µs, 1.09× rind's; ovh-sea 23.93 µs, 1.12× rind's + + 1.38× ring -P-256 ECDSA sign, ring: nixos 13.68 µs, 1.42× rind's; desktop 12.24 µs, 1.79× rind's; nixos2 14.86 µs, 1.13× rind's; kixtop 11.01 µs, 1.55× rind's; ovh-iad 26.21 µs, 1.17× rind's; ovh-sea 24.84 µs, 1.16× rind's - - - -1.35× +P-256 ECDSA sign, ring: nixos 13.68 µs, 1.42× rind's; desktop 12.20 µs, 1.81× rind's; nixos2 14.86 µs, 1.13× rind's; kixtop 10.91 µs, 1.53× rind's; ovh-iad 26.21 µs, 1.17× rind's; ovh-sea 24.84 µs, 1.16× rind's + + + +1.35× RSA-2048 PSS sign rind -RSA-2048 PSS sign, rind: nixos 424.30 µs, 1.00× rind's; desktop 346.52 µs, 1.00× rind's; nixos2 445.92 µs, 1.00× rind's; kixtop 275.29 µs, 1.00× rind's; ovh-iad 819.13 µs, 1.00× rind's; ovh-sea 743.95 µs, 1.00× rind's +RSA-2048 PSS sign, rind: nixos 424.30 µs, 1.00× rind's; desktop 341.45 µs, 1.00× rind's; nixos2 445.92 µs, 1.00× rind's; kixtop 275.82 µs, 1.00× rind's; ovh-iad 819.13 µs, 1.00× rind's; ovh-sea 743.95 µs, 1.00× rind's 1× aws-lc-rs -RSA-2048 PSS sign, aws-lc-rs: nixos 481.00 µs, 1.13× rind's; desktop 350.45 µs, 1.01× rind's; nixos2 461.87 µs, 1.04× rind's; kixtop 288.58 µs, 1.05× rind's; ovh-iad 807.21 µs, 0.99× rind's; ovh-sea 772.15 µs, 1.04× rind's +RSA-2048 PSS sign, aws-lc-rs: nixos 481.00 µs, 1.13× rind's; desktop 346.55 µs, 1.01× rind's; nixos2 461.87 µs, 1.04× rind's; kixtop 285.36 µs, 1.03× rind's; ovh-iad 807.21 µs, 0.99× rind's; ovh-sea 772.15 µs, 1.04× rind's 1.04× ring -RSA-2048 PSS sign, ring: nixos 471.53 µs, 1.11× rind's; desktop 341.45 µs, 0.99× rind's; nixos2 437.28 µs, 0.98× rind's; kixtop 324.86 µs, 1.18× rind's; ovh-iad 1.04 ms, 1.27× rind's; ovh-sea 987.95 µs, 1.33× rind's +RSA-2048 PSS sign, ring: nixos 471.53 µs, 1.11× rind's; desktop 342.49 µs, 1.00× rind's; nixos2 437.28 µs, 0.98× rind's; kixtop 323.17 µs, 1.17× rind's; ovh-iad 1.04 ms, 1.27× rind's; ovh-sea 987.95 µs, 1.33× rind's @@ -103,18 +103,18 @@ cold build of a rustls client rind -cold build of a rustls client, rind: nixos2 11.3 s, 1.00× rind's; ovh-iad 16.6 s, 1.00× rind's; ovh-sea 14.7 s, 1.00× rind's -1× +cold build of a rustls client, rind: desktop 4.2 s, 1.00× rind's; nixos2 11.3 s, 1.00× rind's; kixtop 6.5 s, 1.00× rind's; ovh-iad 16.6 s, 1.00× rind's; ovh-sea 14.7 s, 1.00× rind's +1× aws-lc-rs -cold build of a rustls client, aws-lc-rs: nixos2 36.6 s, 3.23× rind's; ovh-iad 54.0 s, 3.25× rind's; ovh-sea 47.6 s, 3.24× rind's - - +cold build of a rustls client, aws-lc-rs: desktop 16.6 s, 3.93× rind's; nixos2 36.6 s, 3.23× rind's; kixtop 34.0 s, 5.22× rind's; ovh-iad 54.0 s, 3.25× rind's; ovh-sea 47.6 s, 3.24× rind's + + -3.24×, needs cc +3.71×, needs cc ring -cold build of a rustls client, ring: nixos2 16.4 s, 1.45× rind's; ovh-iad 27.3 s, 1.65× rind's; ovh-sea 24.4 s, 1.66× rind's - - - -1.58×, needs cc +cold build of a rustls client, ring: desktop 7.8 s, 1.85× rind's; nixos2 16.4 s, 1.45× rind's; kixtop 12.2 s, 1.87× rind's; ovh-iad 27.3 s, 1.65× rind's; ovh-sea 24.4 s, 1.66× rind's + + + +1.69×, needs cc diff --git a/benchmarks/kixtop-dark.svg b/benchmarks/kixtop-dark.svg index 1ae10ca99..b28ecebfc 100644 --- a/benchmarks/kixtop-dark.svg +++ b/benchmarks/kixtop-dark.svg @@ -1,4 +1,4 @@ - + Times on kixtop, by operation and library fastest, or within 10% @@ -18,802 +18,860 @@ verified code kixtop: Apple M4 rind -aws-lc-rs -ring -RustCrypto -+ dalek -graviola -libcrux -OpenSSL +rind +(DIT held) +aws-lc-rs +ring +RustCrypto ++ dalek +graviola +libcrux +OpenSSL TLS 1.3 with rustls - + full handshake, X25519MLKEM768 -full handshake, X25519MLKEM768, rind: 177.98 µs, 1.00× the fastest -177.98 µs -full handshake, X25519MLKEM768, aws-lc-rs: 214.67 µs, 1.21× the fastest -214.67 µs -full handshake, X25519MLKEM768, graviola: 180.42 µs, 1.01× the fastest -180.42 µs -full handshake, X25519MLKEM768, OpenSSL: 459.07 µs, 2.58× the fastest -459.07 µs +full handshake, X25519MLKEM768, rind: 174.03 µs, 1.00× the fastest +174.03 µs +full handshake, X25519MLKEM768, aws-lc-rs: 212.26 µs, 1.22× the fastest +212.26 µs +full handshake, X25519MLKEM768, graviola: 179.37 µs, 1.03× the fastest +179.37 µs +full handshake, X25519MLKEM768, OpenSSL: 463.38 µs, 2.66× the fastest +463.38 µs full handshake, X25519 -full handshake, X25519, rind: 155.39 µs, 1.00× the fastest -155.39 µs -full handshake, X25519, aws-lc-rs: 184.86 µs, 1.19× the fastest -184.86 µs -full handshake, X25519, ring: 184.65 µs, 1.19× the fastest -184.65 µs -full handshake, X25519, graviola: 159.19 µs, 1.02× the fastest -159.19 µs -full handshake, X25519, OpenSSL: 374.65 µs, 2.41× the fastest -374.65 µs +full handshake, X25519, rind: 151.02 µs, 1.00× the fastest +151.02 µs +full handshake, X25519, aws-lc-rs: 183.41 µs, 1.21× the fastest +183.41 µs +full handshake, X25519, ring: 183.82 µs, 1.22× the fastest +183.82 µs +full handshake, X25519, graviola: 159.11 µs, 1.05× the fastest +159.11 µs +full handshake, X25519, OpenSSL: 374.68 µs, 2.48× the fastest +374.68 µs full handshake, P-256 -full handshake, P-256, rind: 176.20 µs, 1.00× the fastest -176.20 µs -full handshake, P-256, aws-lc-rs: 206.73 µs, 1.17× the fastest -206.73 µs -full handshake, P-256, ring: 201.44 µs, 1.14× the fastest -201.44 µs -full handshake, P-256, graviola: 191.72 µs, 1.09× the fastest -191.72 µs -full handshake, P-256, OpenSSL: 400.48 µs, 2.27× the fastest -400.48 µs +full handshake, P-256, rind: 171.99 µs, 1.00× the fastest +171.99 µs +full handshake, P-256, aws-lc-rs: 205.84 µs, 1.20× the fastest +205.84 µs +full handshake, P-256, ring: 202.42 µs, 1.18× the fastest +202.42 µs +full handshake, P-256, graviola: 189.73 µs, 1.10× the fastest +189.73 µs +full handshake, P-256, OpenSSL: 401.29 µs, 2.33× the fastest +401.29 µs full handshake, Ed25519 certificate -full handshake, Ed25519 certificate, rind: 127.23 µs, 1.03× the fastest -127.23 µs -full handshake, Ed25519 certificate, aws-lc-rs: 150.93 µs, 1.22× the fastest -150.93 µs -full handshake, Ed25519 certificate, ring: 155.04 µs, 1.25× the fastest -155.04 µs -full handshake, Ed25519 certificate, graviola: 124.12 µs, 1.00× the fastest -124.12 µs -full handshake, Ed25519 certificate, OpenSSL: 383.83 µs, 3.09× the fastest -383.83 µs +full handshake, Ed25519 certificate, rind: 128.51 µs, 1.04× the fastest +128.51 µs +full handshake, Ed25519 certificate, aws-lc-rs: 150.19 µs, 1.22× the fastest +150.19 µs +full handshake, Ed25519 certificate, ring: 154.50 µs, 1.25× the fastest +154.50 µs +full handshake, Ed25519 certificate, graviola: 123.59 µs, 1.00× the fastest +123.59 µs +full handshake, Ed25519 certificate, OpenSSL: 383.06 µs, 3.10× the fastest +383.06 µs full handshake, RSA-2048 certificate -full handshake, RSA-2048 certificate, rind: 371.35 µs, 1.00× the fastest -371.35 µs -full handshake, RSA-2048 certificate, aws-lc-rs: 406.71 µs, 1.10× the fastest -406.71 µs -full handshake, RSA-2048 certificate, ring: 446.94 µs, 1.20× the fastest -446.94 µs -full handshake, RSA-2048 certificate, graviola: 683.15 µs, 1.84× the fastest -683.15 µs -full handshake, RSA-2048 certificate, OpenSSL: 643.30 µs, 1.73× the fastest -643.30 µs +full handshake, RSA-2048 certificate, rind: 372.92 µs, 1.00× the fastest +372.92 µs +full handshake, RSA-2048 certificate, aws-lc-rs: 409.15 µs, 1.10× the fastest +409.15 µs +full handshake, RSA-2048 certificate, ring: 446.94 µs, 1.20× the fastest +446.94 µs +full handshake, RSA-2048 certificate, graviola: 674.07 µs, 1.81× the fastest +674.07 µs +full handshake, RSA-2048 certificate, OpenSSL: 644.46 µs, 1.73× the fastest +644.46 µs resumed handshake, X25519 -resumed handshake, X25519, rind: 66.29 µs, 1.07× the fastest -66.29 µs -resumed handshake, X25519, aws-lc-rs: 92.46 µs, 1.50× the fastest -92.46 µs -resumed handshake, X25519, ring: 88.29 µs, 1.43× the fastest -88.29 µs -resumed handshake, X25519, graviola: 61.75 µs, 1.00× the fastest -61.75 µs -resumed handshake, X25519, OpenSSL: 255.12 µs, 4.13× the fastest -255.12 µs +resumed handshake, X25519, rind: 65.88 µs, 1.07× the fastest +65.88 µs +resumed handshake, X25519, aws-lc-rs: 89.83 µs, 1.46× the fastest +89.83 µs +resumed handshake, X25519, ring: 87.17 µs, 1.41× the fastest +87.17 µs +resumed handshake, X25519, graviola: 61.63 µs, 1.00× the fastest +61.63 µs +resumed handshake, X25519, OpenSSL: 253.42 µs, 4.11× the fastest +253.42 µs 1 MB transfer, AES-128-GCM -1 MB transfer, AES-128-GCM, rind: 308.57 µs, 1.00× the fastest -308.57 µs -1 MB transfer, AES-128-GCM, aws-lc-rs: 310.78 µs, 1.01× the fastest -310.78 µs -1 MB transfer, AES-128-GCM, ring: 372.59 µs, 1.21× the fastest -372.59 µs -1 MB transfer, AES-128-GCM, graviola: 327.11 µs, 1.06× the fastest -327.11 µs -1 MB transfer, AES-128-GCM, OpenSSL: 338.35 µs, 1.10× the fastest -338.35 µs +1 MB transfer, AES-128-GCM, rind: 309.22 µs, 1.00× the fastest +309.22 µs +1 MB transfer, AES-128-GCM, aws-lc-rs: 313.18 µs, 1.01× the fastest +313.18 µs +1 MB transfer, AES-128-GCM, ring: 372.51 µs, 1.20× the fastest +372.51 µs +1 MB transfer, AES-128-GCM, graviola: 333.72 µs, 1.08× the fastest +333.72 µs +1 MB transfer, AES-128-GCM, OpenSSL: 340.26 µs, 1.10× the fastest +340.26 µs 1 MB transfer, AES-256-GCM -1 MB transfer, AES-256-GCM, rind: 343.96 µs, 1.01× the fastest -343.96 µs -1 MB transfer, AES-256-GCM, aws-lc-rs: 341.91 µs, 1.00× the fastest -341.91 µs -1 MB transfer, AES-256-GCM, ring: 380.26 µs, 1.11× the fastest -380.26 µs -1 MB transfer, AES-256-GCM, graviola: 397.41 µs, 1.16× the fastest -397.41 µs -1 MB transfer, AES-256-GCM, OpenSSL: 371.49 µs, 1.09× the fastest -371.49 µs +1 MB transfer, AES-256-GCM, rind: 348.83 µs, 1.01× the fastest +348.83 µs +1 MB transfer, AES-256-GCM, aws-lc-rs: 347.02 µs, 1.00× the fastest +347.02 µs +1 MB transfer, AES-256-GCM, ring: 386.93 µs, 1.11× the fastest +386.93 µs +1 MB transfer, AES-256-GCM, graviola: 400.75 µs, 1.15× the fastest +400.75 µs +1 MB transfer, AES-256-GCM, OpenSSL: 372.29 µs, 1.07× the fastest +372.29 µs 1 MB transfer, ChaCha20-Poly1305 -1 MB transfer, ChaCha20-Poly1305, rind: 1.12 ms, 1.01× the fastest -1.12 ms -1 MB transfer, ChaCha20-Poly1305, aws-lc-rs: 1.12 ms, 1.01× the fastest -1.12 ms -1 MB transfer, ChaCha20-Poly1305, ring: 1.11 ms, 1.01× the fastest -1.11 ms -1 MB transfer, ChaCha20-Poly1305, graviola: 1.79 ms, 1.62× the fastest -1.79 ms -1 MB transfer, ChaCha20-Poly1305, OpenSSL: 1.11 ms, 1.00× the fastest -1.11 ms +1 MB transfer, ChaCha20-Poly1305, rind: 1.11 ms, 1.01× the fastest +1.11 ms +1 MB transfer, ChaCha20-Poly1305, aws-lc-rs: 1.10 ms, 1.00× the fastest +1.10 ms +1 MB transfer, ChaCha20-Poly1305, ring: 1.10 ms, 1.00× the fastest +1.10 ms +1 MB transfer, ChaCha20-Poly1305, graviola: 1.73 ms, 1.58× the fastest +1.73 ms +1 MB transfer, ChaCha20-Poly1305, OpenSSL: 1.11 ms, 1.01× the fastest +1.11 ms AEADs - + AES-128-GCM seal, 32 B -AES-128-GCM seal, 32 B, rind: 57 ns, 2.40× the fastest +AES-128-GCM seal, 32 B, rind: 57 ns, 2.38× the fastest 57 ns -AES-128-GCM seal, 32 B, aws-lc-rs: 50 ns, 2.10× the fastest -50 ns -AES-128-GCM seal, 32 B, ring: 42 ns, 1.77× the fastest -42 ns -AES-128-GCM seal, 32 B, RustCrypto + dalek: 24 ns, 1.00× the fastest -24 ns -AES-128-GCM seal, 32 B, graviola: 80 ns, 3.37× the fastest -80 ns -AES-128-GCM seal, 32 B, libcrux: 53 ns, 2.23× the fastest -53 ns -AES-128-GCM seal, 32 B, OpenSSL: 69 ns, 2.91× the fastest -69 ns +AES-128-GCM seal, 32 B, rind (DIT held): 11 ns, 0.45× the fastest +11 ns +AES-128-GCM seal, 32 B, aws-lc-rs: 50 ns, 2.07× the fastest +50 ns +AES-128-GCM seal, 32 B, ring: 42 ns, 1.74× the fastest +42 ns +AES-128-GCM seal, 32 B, RustCrypto + dalek: 24 ns, 1.00× the fastest +24 ns +AES-128-GCM seal, 32 B, graviola: 79 ns, 3.30× the fastest +79 ns +AES-128-GCM seal, 32 B, libcrux: 52 ns, 2.17× the fastest +52 ns +AES-128-GCM seal, 32 B, OpenSSL: 67 ns, 2.79× the fastest +67 ns AES-128-GCM seal, 1350 B -AES-128-GCM seal, 1350 B, rind: 212 ns, 1.18× the fastest -212 ns -AES-128-GCM seal, 1350 B, aws-lc-rs: 180 ns, 1.00× the fastest -180 ns -AES-128-GCM seal, 1350 B, ring: 212 ns, 1.18× the fastest -212 ns -AES-128-GCM seal, 1350 B, RustCrypto + dalek: 213 ns, 1.18× the fastest -213 ns -AES-128-GCM seal, 1350 B, graviola: 215 ns, 1.20× the fastest -215 ns -AES-128-GCM seal, 1350 B, libcrux: 619 ns, 3.44× the fastest -619 ns -AES-128-GCM seal, 1350 B, OpenSSL: 197 ns, 1.09× the fastest -197 ns +AES-128-GCM seal, 1350 B, rind: 209 ns, 1.16× the fastest +209 ns +AES-128-GCM seal, 1350 B, rind (DIT held): 161 ns, 0.89× the fastest +161 ns +AES-128-GCM seal, 1350 B, aws-lc-rs: 181 ns, 1.00× the fastest +181 ns +AES-128-GCM seal, 1350 B, ring: 210 ns, 1.16× the fastest +210 ns +AES-128-GCM seal, 1350 B, RustCrypto + dalek: 212 ns, 1.17× the fastest +212 ns +AES-128-GCM seal, 1350 B, graviola: 216 ns, 1.19× the fastest +216 ns +AES-128-GCM seal, 1350 B, libcrux: 600 ns, 3.31× the fastest +600 ns +AES-128-GCM seal, 1350 B, OpenSSL: 196 ns, 1.08× the fastest +196 ns AES-128-GCM seal, 16 KB -AES-128-GCM seal, 16 KB, rind: 1.49 µs, 1.03× the fastest -1.49 µs -AES-128-GCM seal, 16 KB, aws-lc-rs: 1.45 µs, 1.00× the fastest -1.45 µs -AES-128-GCM seal, 16 KB, ring: 1.97 µs, 1.35× the fastest -1.97 µs -AES-128-GCM seal, 16 KB, RustCrypto + dalek: 2.36 µs, 1.62× the fastest -2.36 µs -AES-128-GCM seal, 16 KB, graviola: 1.60 µs, 1.10× the fastest -1.60 µs -AES-128-GCM seal, 16 KB, libcrux: 7.15 µs, 4.92× the fastest -7.15 µs -AES-128-GCM seal, 16 KB, OpenSSL: 1.52 µs, 1.04× the fastest -1.52 µs +AES-128-GCM seal, 16 KB, rind: 1.48 µs, 1.03× the fastest +1.48 µs +AES-128-GCM seal, 16 KB, rind (DIT held): 1.43 µs, 0.99× the fastest +1.43 µs +AES-128-GCM seal, 16 KB, aws-lc-rs: 1.44 µs, 1.00× the fastest +1.44 µs +AES-128-GCM seal, 16 KB, ring: 1.94 µs, 1.34× the fastest +1.94 µs +AES-128-GCM seal, 16 KB, RustCrypto + dalek: 2.26 µs, 1.57× the fastest +2.26 µs +AES-128-GCM seal, 16 KB, graviola: 1.60 µs, 1.11× the fastest +1.60 µs +AES-128-GCM seal, 16 KB, libcrux: 6.78 µs, 4.70× the fastest +6.78 µs +AES-128-GCM seal, 16 KB, OpenSSL: 1.51 µs, 1.05× the fastest +1.51 µs AES-128-GCM open, 32 B -AES-128-GCM open, 32 B, rind: 47 ns, 1.71× the fastest +AES-128-GCM open, 32 B, rind: 47 ns, 1.69× the fastest 47 ns -AES-128-GCM open, 32 B, aws-lc-rs: 47 ns, 1.70× the fastest -47 ns -AES-128-GCM open, 32 B, ring: 39 ns, 1.42× the fastest -39 ns -AES-128-GCM open, 32 B, RustCrypto + dalek: 28 ns, 1.00× the fastest -28 ns -AES-128-GCM open, 32 B, graviola: 85 ns, 3.06× the fastest -85 ns -AES-128-GCM open, 32 B, libcrux: 64 ns, 2.30× the fastest -64 ns -AES-128-GCM open, 32 B, OpenSSL: 65 ns, 2.36× the fastest -65 ns +AES-128-GCM open, 32 B, rind (DIT held): 13 ns, 0.46× the fastest +13 ns +AES-128-GCM open, 32 B, aws-lc-rs: 47 ns, 1.71× the fastest +47 ns +AES-128-GCM open, 32 B, ring: 39 ns, 1.42× the fastest +39 ns +AES-128-GCM open, 32 B, RustCrypto + dalek: 28 ns, 1.00× the fastest +28 ns +AES-128-GCM open, 32 B, graviola: 84 ns, 3.04× the fastest +84 ns +AES-128-GCM open, 32 B, libcrux: 61 ns, 2.23× the fastest +61 ns +AES-128-GCM open, 32 B, OpenSSL: 66 ns, 2.38× the fastest +66 ns AES-128-GCM open, 1350 B -AES-128-GCM open, 1350 B, rind: 214 ns, 1.11× the fastest -214 ns -AES-128-GCM open, 1350 B, aws-lc-rs: 193 ns, 1.00× the fastest -193 ns -AES-128-GCM open, 1350 B, ring: 247 ns, 1.28× the fastest -247 ns -AES-128-GCM open, 1350 B, RustCrypto + dalek: 237 ns, 1.23× the fastest -237 ns -AES-128-GCM open, 1350 B, graviola: 226 ns, 1.17× the fastest -226 ns -AES-128-GCM open, 1350 B, libcrux: 647 ns, 3.35× the fastest -647 ns -AES-128-GCM open, 1350 B, OpenSSL: 199 ns, 1.03× the fastest -199 ns +AES-128-GCM open, 1350 B, rind: 210 ns, 1.10× the fastest +210 ns +AES-128-GCM open, 1350 B, rind (DIT held): 178 ns, 0.93× the fastest +178 ns +AES-128-GCM open, 1350 B, aws-lc-rs: 191 ns, 1.00× the fastest +191 ns +AES-128-GCM open, 1350 B, ring: 243 ns, 1.28× the fastest +243 ns +AES-128-GCM open, 1350 B, RustCrypto + dalek: 232 ns, 1.22× the fastest +232 ns +AES-128-GCM open, 1350 B, graviola: 225 ns, 1.18× the fastest +225 ns +AES-128-GCM open, 1350 B, libcrux: 618 ns, 3.24× the fastest +618 ns +AES-128-GCM open, 1350 B, OpenSSL: 199 ns, 1.05× the fastest +199 ns AES-128-GCM open, 16 KB -AES-128-GCM open, 16 KB, rind: 1.61 µs, 1.02× the fastest -1.61 µs -AES-128-GCM open, 16 KB, aws-lc-rs: 1.57 µs, 1.00× the fastest -1.57 µs -AES-128-GCM open, 16 KB, ring: 2.18 µs, 1.39× the fastest -2.18 µs -AES-128-GCM open, 16 KB, RustCrypto + dalek: 2.46 µs, 1.57× the fastest -2.46 µs -AES-128-GCM open, 16 KB, graviola: 1.71 µs, 1.09× the fastest -1.71 µs -AES-128-GCM open, 16 KB, libcrux: 6.97 µs, 4.44× the fastest -6.97 µs -AES-128-GCM open, 16 KB, OpenSSL: 1.66 µs, 1.06× the fastest -1.66 µs +AES-128-GCM open, 16 KB, rind: 1.58 µs, 1.00× the fastest +1.58 µs +AES-128-GCM open, 16 KB, rind (DIT held): 1.56 µs, 0.99× the fastest +1.56 µs +AES-128-GCM open, 16 KB, aws-lc-rs: 1.58 µs, 1.00× the fastest +1.58 µs +AES-128-GCM open, 16 KB, ring: 2.16 µs, 1.37× the fastest +2.16 µs +AES-128-GCM open, 16 KB, RustCrypto + dalek: 2.43 µs, 1.54× the fastest +2.43 µs +AES-128-GCM open, 16 KB, graviola: 1.71 µs, 1.09× the fastest +1.71 µs +AES-128-GCM open, 16 KB, libcrux: 6.82 µs, 4.32× the fastest +6.82 µs +AES-128-GCM open, 16 KB, OpenSSL: 1.65 µs, 1.05× the fastest +1.65 µs AES-256-GCM seal, 32 B -AES-256-GCM seal, 32 B, rind: 61 ns, 2.44× the fastest +AES-256-GCM seal, 32 B, rind: 61 ns, 2.46× the fastest 61 ns -AES-256-GCM seal, 32 B, aws-lc-rs: 54 ns, 2.18× the fastest -54 ns -AES-256-GCM seal, 32 B, ring: 45 ns, 1.82× the fastest -45 ns -AES-256-GCM seal, 32 B, RustCrypto + dalek: 25 ns, 1.00× the fastest -25 ns -AES-256-GCM seal, 32 B, graviola: 79 ns, 3.18× the fastest -79 ns -AES-256-GCM seal, 32 B, libcrux: 53 ns, 2.15× the fastest -53 ns -AES-256-GCM seal, 32 B, OpenSSL: 67 ns, 2.72× the fastest -67 ns +AES-256-GCM seal, 32 B, rind (DIT held): 12 ns, 0.48× the fastest +12 ns +AES-256-GCM seal, 32 B, aws-lc-rs: 53 ns, 2.14× the fastest +53 ns +AES-256-GCM seal, 32 B, ring: 45 ns, 1.80× the fastest +45 ns +AES-256-GCM seal, 32 B, RustCrypto + dalek: 25 ns, 1.00× the fastest +25 ns +AES-256-GCM seal, 32 B, graviola: 79 ns, 3.17× the fastest +79 ns +AES-256-GCM seal, 32 B, libcrux: 52 ns, 2.08× the fastest +52 ns +AES-256-GCM seal, 32 B, OpenSSL: 67 ns, 2.69× the fastest +67 ns AES-256-GCM seal, 1350 B -AES-256-GCM seal, 1350 B, rind: 237 ns, 1.16× the fastest -237 ns -AES-256-GCM seal, 1350 B, aws-lc-rs: 205 ns, 1.00× the fastest -205 ns -AES-256-GCM seal, 1350 B, ring: 220 ns, 1.07× the fastest -220 ns -AES-256-GCM seal, 1350 B, RustCrypto + dalek: 246 ns, 1.20× the fastest -246 ns -AES-256-GCM seal, 1350 B, graviola: 262 ns, 1.28× the fastest -262 ns -AES-256-GCM seal, 1350 B, libcrux: 650 ns, 3.18× the fastest -650 ns -AES-256-GCM seal, 1350 B, OpenSSL: 222 ns, 1.08× the fastest -222 ns +AES-256-GCM seal, 1350 B, rind: 232 ns, 1.16× the fastest +232 ns +AES-256-GCM seal, 1350 B, rind (DIT held): 188 ns, 0.94× the fastest +188 ns +AES-256-GCM seal, 1350 B, aws-lc-rs: 201 ns, 1.00× the fastest +201 ns +AES-256-GCM seal, 1350 B, ring: 219 ns, 1.09× the fastest +219 ns +AES-256-GCM seal, 1350 B, RustCrypto + dalek: 239 ns, 1.19× the fastest +239 ns +AES-256-GCM seal, 1350 B, graviola: 258 ns, 1.28× the fastest +258 ns +AES-256-GCM seal, 1350 B, libcrux: 630 ns, 3.13× the fastest +630 ns +AES-256-GCM seal, 1350 B, OpenSSL: 220 ns, 1.10× the fastest +220 ns AES-256-GCM seal, 16 KB -AES-256-GCM seal, 16 KB, rind: 1.75 µs, 1.02× the fastest -1.75 µs -AES-256-GCM seal, 16 KB, aws-lc-rs: 1.72 µs, 1.00× the fastest -1.72 µs -AES-256-GCM seal, 16 KB, ring: 2.04 µs, 1.19× the fastest -2.04 µs -AES-256-GCM seal, 16 KB, RustCrypto + dalek: 2.72 µs, 1.58× the fastest -2.72 µs -AES-256-GCM seal, 16 KB, graviola: 2.16 µs, 1.26× the fastest -2.16 µs -AES-256-GCM seal, 16 KB, libcrux: 7.20 µs, 4.19× the fastest -7.20 µs -AES-256-GCM seal, 16 KB, OpenSSL: 1.79 µs, 1.04× the fastest -1.79 µs +AES-256-GCM seal, 16 KB, rind: 1.73 µs, 1.02× the fastest +1.73 µs +AES-256-GCM seal, 16 KB, rind (DIT held): 1.69 µs, 0.99× the fastest +1.69 µs +AES-256-GCM seal, 16 KB, aws-lc-rs: 1.70 µs, 1.00× the fastest +1.70 µs +AES-256-GCM seal, 16 KB, ring: 2.03 µs, 1.20× the fastest +2.03 µs +AES-256-GCM seal, 16 KB, RustCrypto + dalek: 2.63 µs, 1.55× the fastest +2.63 µs +AES-256-GCM seal, 16 KB, graviola: 2.13 µs, 1.26× the fastest +2.13 µs +AES-256-GCM seal, 16 KB, libcrux: 7.08 µs, 4.17× the fastest +7.08 µs +AES-256-GCM seal, 16 KB, OpenSSL: 1.77 µs, 1.04× the fastest +1.77 µs AES-256-GCM open, 32 B -AES-256-GCM open, 32 B, rind: 49 ns, 1.24× the fastest -49 ns -AES-256-GCM open, 32 B, aws-lc-rs: 49 ns, 1.24× the fastest -49 ns -AES-256-GCM open, 32 B, ring: 40 ns, 1.00× the fastest -40 ns -AES-256-GCM open, 32 B, RustCrypto + dalek: 41 ns, 1.04× the fastest -41 ns -AES-256-GCM open, 32 B, graviola: 85 ns, 2.15× the fastest -85 ns -AES-256-GCM open, 32 B, libcrux: 67 ns, 1.69× the fastest -67 ns -AES-256-GCM open, 32 B, OpenSSL: 68 ns, 1.71× the fastest -68 ns +AES-256-GCM open, 32 B, rind: 48 ns, 1.22× the fastest +48 ns +AES-256-GCM open, 32 B, rind (DIT held): 13 ns, 0.33× the fastest +13 ns +AES-256-GCM open, 32 B, aws-lc-rs: 49 ns, 1.23× the fastest +49 ns +AES-256-GCM open, 32 B, ring: 39 ns, 1.00× the fastest +39 ns +AES-256-GCM open, 32 B, RustCrypto + dalek: 41 ns, 1.04× the fastest +41 ns +AES-256-GCM open, 32 B, graviola: 84 ns, 2.14× the fastest +84 ns +AES-256-GCM open, 32 B, libcrux: 66 ns, 1.67× the fastest +66 ns +AES-256-GCM open, 32 B, OpenSSL: 68 ns, 1.72× the fastest +68 ns AES-256-GCM open, 1350 B -AES-256-GCM open, 1350 B, rind: 233 ns, 1.07× the fastest -233 ns -AES-256-GCM open, 1350 B, aws-lc-rs: 218 ns, 1.00× the fastest -218 ns -AES-256-GCM open, 1350 B, ring: 252 ns, 1.15× the fastest -252 ns -AES-256-GCM open, 1350 B, RustCrypto + dalek: 267 ns, 1.22× the fastest -267 ns -AES-256-GCM open, 1350 B, graviola: 263 ns, 1.20× the fastest -263 ns -AES-256-GCM open, 1350 B, libcrux: 674 ns, 3.09× the fastest -674 ns -AES-256-GCM open, 1350 B, OpenSSL: 225 ns, 1.03× the fastest -225 ns +AES-256-GCM open, 1350 B, rind: 231 ns, 1.08× the fastest +231 ns +AES-256-GCM open, 1350 B, rind (DIT held): 197 ns, 0.92× the fastest +197 ns +AES-256-GCM open, 1350 B, aws-lc-rs: 213 ns, 1.00× the fastest +213 ns +AES-256-GCM open, 1350 B, ring: 247 ns, 1.16× the fastest +247 ns +AES-256-GCM open, 1350 B, RustCrypto + dalek: 278 ns, 1.31× the fastest +278 ns +AES-256-GCM open, 1350 B, graviola: 263 ns, 1.24× the fastest +263 ns +AES-256-GCM open, 1350 B, libcrux: 663 ns, 3.12× the fastest +663 ns +AES-256-GCM open, 1350 B, OpenSSL: 224 ns, 1.05× the fastest +224 ns AES-256-GCM open, 16 KB -AES-256-GCM open, 16 KB, rind: 1.86 µs, 1.01× the fastest -1.86 µs -AES-256-GCM open, 16 KB, aws-lc-rs: 1.83 µs, 1.00× the fastest -1.83 µs -AES-256-GCM open, 16 KB, ring: 2.25 µs, 1.23× the fastest -2.25 µs -AES-256-GCM open, 16 KB, RustCrypto + dalek: 2.89 µs, 1.58× the fastest -2.89 µs -AES-256-GCM open, 16 KB, graviola: 2.18 µs, 1.19× the fastest -2.18 µs -AES-256-GCM open, 16 KB, libcrux: 7.35 µs, 4.01× the fastest -7.35 µs -AES-256-GCM open, 16 KB, OpenSSL: 1.94 µs, 1.06× the fastest -1.94 µs +AES-256-GCM open, 16 KB, rind: 1.84 µs, 1.02× the fastest +1.84 µs +AES-256-GCM open, 16 KB, rind (DIT held): 1.81 µs, 1.00× the fastest +1.81 µs +AES-256-GCM open, 16 KB, aws-lc-rs: 1.82 µs, 1.00× the fastest +1.82 µs +AES-256-GCM open, 16 KB, ring: 2.23 µs, 1.23× the fastest +2.23 µs +AES-256-GCM open, 16 KB, RustCrypto + dalek: 2.77 µs, 1.53× the fastest +2.77 µs +AES-256-GCM open, 16 KB, graviola: 2.19 µs, 1.21× the fastest +2.19 µs +AES-256-GCM open, 16 KB, libcrux: 7.06 µs, 3.89× the fastest +7.06 µs +AES-256-GCM open, 16 KB, OpenSSL: 1.93 µs, 1.07× the fastest +1.93 µs ChaCha20-Poly1305 seal, 32 B -ChaCha20-Poly1305 seal, 32 B, rind: 185 ns, 1.25× the fastest -185 ns -ChaCha20-Poly1305 seal, 32 B, aws-lc-rs: 163 ns, 1.10× the fastest -163 ns -ChaCha20-Poly1305 seal, 32 B, ring: 148 ns, 1.00× the fastest -148 ns -ChaCha20-Poly1305 seal, 32 B, RustCrypto + dalek: 344 ns, 2.33× the fastest -344 ns -ChaCha20-Poly1305 seal, 32 B, graviola: 196 ns, 1.32× the fastest -196 ns -ChaCha20-Poly1305 seal, 32 B, libcrux: 171 ns, 1.16× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step -171 ns ✓ -ChaCha20-Poly1305 seal, 32 B, OpenSSL: 215 ns, 1.46× the fastest -215 ns +ChaCha20-Poly1305 seal, 32 B, rind: 179 ns, 1.23× the fastest +179 ns +ChaCha20-Poly1305 seal, 32 B, rind (DIT held): 145 ns, 1.00× the fastest +145 ns +ChaCha20-Poly1305 seal, 32 B, aws-lc-rs: 157 ns, 1.08× the fastest +157 ns +ChaCha20-Poly1305 seal, 32 B, ring: 145 ns, 1.00× the fastest +145 ns +ChaCha20-Poly1305 seal, 32 B, RustCrypto + dalek: 340 ns, 2.35× the fastest +340 ns +ChaCha20-Poly1305 seal, 32 B, graviola: 193 ns, 1.33× the fastest +193 ns +ChaCha20-Poly1305 seal, 32 B, libcrux: 170 ns, 1.17× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step +170 ns ✓ +ChaCha20-Poly1305 seal, 32 B, OpenSSL: 216 ns, 1.49× the fastest +216 ns ChaCha20-Poly1305 seal, 1350 B -ChaCha20-Poly1305 seal, 1350 B, rind: 792 ns, 1.05× the fastest -792 ns -ChaCha20-Poly1305 seal, 1350 B, aws-lc-rs: 771 ns, 1.02× the fastest -771 ns -ChaCha20-Poly1305 seal, 1350 B, ring: 755 ns, 1.00× the fastest -755 ns -ChaCha20-Poly1305 seal, 1350 B, RustCrypto + dalek: 1.78 µs, 2.36× the fastest -1.78 µs -ChaCha20-Poly1305 seal, 1350 B, graviola: 1.25 µs, 1.65× the fastest -1.25 µs -ChaCha20-Poly1305 seal, 1350 B, libcrux: 1.98 µs, 2.62× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step -1.98 µs ✓ -ChaCha20-Poly1305 seal, 1350 B, OpenSSL: 842 ns, 1.12× the fastest -842 ns +ChaCha20-Poly1305 seal, 1350 B, rind: 773 ns, 1.04× the fastest +773 ns +ChaCha20-Poly1305 seal, 1350 B, rind (DIT held): 741 ns, 1.00× the fastest +741 ns +ChaCha20-Poly1305 seal, 1350 B, aws-lc-rs: 759 ns, 1.02× the fastest +759 ns +ChaCha20-Poly1305 seal, 1350 B, ring: 741 ns, 1.00× the fastest +741 ns +ChaCha20-Poly1305 seal, 1350 B, RustCrypto + dalek: 1.75 µs, 2.37× the fastest +1.75 µs +ChaCha20-Poly1305 seal, 1350 B, graviola: 1.21 µs, 1.63× the fastest +1.21 µs +ChaCha20-Poly1305 seal, 1350 B, libcrux: 1.94 µs, 2.62× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step +1.94 µs ✓ +ChaCha20-Poly1305 seal, 1350 B, OpenSSL: 826 ns, 1.12× the fastest +826 ns ChaCha20-Poly1305 seal, 16 KB -ChaCha20-Poly1305 seal, 16 KB, rind: 7.70 µs, 1.03× the fastest -7.70 µs -ChaCha20-Poly1305 seal, 16 KB, aws-lc-rs: 7.65 µs, 1.03× the fastest -7.65 µs -ChaCha20-Poly1305 seal, 16 KB, ring: 7.67 µs, 1.03× the fastest -7.67 µs -ChaCha20-Poly1305 seal, 16 KB, RustCrypto + dalek: 15.21 µs, 2.04× the fastest -15.21 µs -ChaCha20-Poly1305 seal, 16 KB, graviola: 12.85 µs, 1.72× the fastest -12.85 µs -ChaCha20-Poly1305 seal, 16 KB, libcrux: 22.07 µs, 2.96× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step -22.07 µs ✓ -ChaCha20-Poly1305 seal, 16 KB, OpenSSL: 7.45 µs, 1.00× the fastest -7.45 µs +ChaCha20-Poly1305 seal, 16 KB, rind: 7.60 µs, 1.03× the fastest +7.60 µs +ChaCha20-Poly1305 seal, 16 KB, rind (DIT held): 7.50 µs, 1.02× the fastest +7.50 µs +ChaCha20-Poly1305 seal, 16 KB, aws-lc-rs: 7.50 µs, 1.02× the fastest +7.50 µs +ChaCha20-Poly1305 seal, 16 KB, ring: 7.57 µs, 1.03× the fastest +7.57 µs +ChaCha20-Poly1305 seal, 16 KB, RustCrypto + dalek: 14.97 µs, 2.03× the fastest +14.97 µs +ChaCha20-Poly1305 seal, 16 KB, graviola: 12.56 µs, 1.71× the fastest +12.56 µs +ChaCha20-Poly1305 seal, 16 KB, libcrux: 22.12 µs, 3.00× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step +22.12 µs ✓ +ChaCha20-Poly1305 seal, 16 KB, OpenSSL: 7.37 µs, 1.00× the fastest +7.37 µs XChaCha20-Poly1305 seal, 32 B -XChaCha20-Poly1305 seal, 32 B, rind: 1.19 µs, 1.26× the fastest -1.19 µs -XChaCha20-Poly1305 seal, 32 B, aws-lc-rs: 943 ns, 1.00× the fastest -943 ns -XChaCha20-Poly1305 seal, 32 B, RustCrypto + dalek: 1.53 µs, 1.62× the fastest -1.53 µs -XChaCha20-Poly1305 seal, 32 B, graviola: 1.11 µs, 1.17× the fastest -1.11 µs -XChaCha20-Poly1305 seal, 32 B, libcrux: 1.11 µs, 1.18× the fastest -1.11 µs +XChaCha20-Poly1305 seal, 32 B, rind: 897 ns, 1.03× the fastest +897 ns +XChaCha20-Poly1305 seal, 32 B, aws-lc-rs: 871 ns, 1.00× the fastest +871 ns +XChaCha20-Poly1305 seal, 32 B, RustCrypto + dalek: 1.06 µs, 1.21× the fastest +1.06 µs +XChaCha20-Poly1305 seal, 32 B, graviola: 905 ns, 1.04× the fastest +905 ns +XChaCha20-Poly1305 seal, 32 B, libcrux: 900 ns, 1.03× the fastest +900 ns XChaCha20-Poly1305 seal, 1350 B -XChaCha20-Poly1305 seal, 1350 B, rind: 2.02 µs, 1.07× the fastest -2.02 µs -XChaCha20-Poly1305 seal, 1350 B, aws-lc-rs: 1.89 µs, 1.00× the fastest -1.89 µs -XChaCha20-Poly1305 seal, 1350 B, RustCrypto + dalek: 3.19 µs, 1.69× the fastest -3.19 µs -XChaCha20-Poly1305 seal, 1350 B, graviola: 2.85 µs, 1.51× the fastest -2.85 µs -XChaCha20-Poly1305 seal, 1350 B, libcrux: 3.80 µs, 2.02× the fastest -3.80 µs +XChaCha20-Poly1305 seal, 1350 B, rind: 1.47 µs, 1.02× the fastest +1.47 µs +XChaCha20-Poly1305 seal, 1350 B, aws-lc-rs: 1.45 µs, 1.00× the fastest +1.45 µs +XChaCha20-Poly1305 seal, 1350 B, RustCrypto + dalek: 2.44 µs, 1.69× the fastest +2.44 µs +XChaCha20-Poly1305 seal, 1350 B, graviola: 1.94 µs, 1.34× the fastest +1.94 µs +XChaCha20-Poly1305 seal, 1350 B, libcrux: 2.71 µs, 1.87× the fastest +2.71 µs XChaCha20-Poly1305 seal, 16 KB -XChaCha20-Poly1305 seal, 16 KB, rind: 11.36 µs, 1.00× the fastest -11.36 µs -XChaCha20-Poly1305 seal, 16 KB, aws-lc-rs: 11.43 µs, 1.01× the fastest -11.43 µs -XChaCha20-Poly1305 seal, 16 KB, RustCrypto + dalek: 22.76 µs, 2.00× the fastest -22.76 µs -XChaCha20-Poly1305 seal, 16 KB, graviola: 19.24 µs, 1.69× the fastest -19.24 µs -XChaCha20-Poly1305 seal, 16 KB, libcrux: 34.20 µs, 3.01× the fastest -34.20 µs +XChaCha20-Poly1305 seal, 16 KB, rind: 8.23 µs, 1.00× the fastest +8.23 µs +XChaCha20-Poly1305 seal, 16 KB, aws-lc-rs: 8.31 µs, 1.01× the fastest +8.31 µs +XChaCha20-Poly1305 seal, 16 KB, RustCrypto + dalek: 15.59 µs, 1.89× the fastest +15.59 µs +XChaCha20-Poly1305 seal, 16 KB, graviola: 13.22 µs, 1.61× the fastest +13.22 µs +XChaCha20-Poly1305 seal, 16 KB, libcrux: 22.43 µs, 2.73× the fastest +22.43 µs QUIC header protection - + AES-128 header protection -AES-128 header protection, rind: 35 ns, 12.24× the fastest -35 ns -AES-128 header protection, aws-lc-rs: 3 ns, 1.00× the fastest +AES-128 header protection, rind: 34 ns, 12.19× the fastest +34 ns +AES-128 header protection, rind (DIT held): 3 ns, 1.00× the fastest 3 ns -AES-128 header protection, ring: 3 ns, 1.15× the fastest +AES-128 header protection, aws-lc-rs: 3 ns, 1.00× the fastest 3 ns +AES-128 header protection, ring: 3 ns, 1.12× the fastest +3 ns AES-256 header protection -AES-256 header protection, rind: 38 ns, 12.62× the fastest +AES-256 header protection, rind: 38 ns, 12.76× the fastest 38 ns -AES-256 header protection, aws-lc-rs: 3 ns, 1.00× the fastest +AES-256 header protection, rind (DIT held): 3 ns, 0.97× the fastest 3 ns -AES-256 header protection, ring: 4 ns, 1.31× the fastest -4 ns +AES-256 header protection, aws-lc-rs: 3 ns, 1.00× the fastest +3 ns +AES-256 header protection, ring: 4 ns, 1.29× the fastest +4 ns ChaCha20 header protection -ChaCha20 header protection, rind: 89 ns, 1.29× the fastest; verified: rind's Lean proof, through Aeneas and a hand model of the function-pointer dispatch Aeneas cannot translate, which assumes each key's mask is its own cipher's, the only one rind builds, of its header-protection API's ChaCha20 against RFC 9001 and RFC 8439, HACL*'s rounds included -89 ns ✓ -ChaCha20 header protection, aws-lc-rs: 73 ns, 1.07× the fastest -73 ns -ChaCha20 header protection, ring: 68 ns, 1.00× the fastest -68 ns +ChaCha20 header protection, rind: 88 ns, 1.30× the fastest; verified: rind's Lean proof, through Aeneas and a hand model of the function-pointer dispatch Aeneas cannot translate, which assumes each key's mask is its own cipher's, the only one rind builds, of its header-protection API's ChaCha20 against RFC 9001 and RFC 8439, HACL*'s rounds included +88 ns ✓ +ChaCha20 header protection, rind (DIT held): 58 ns, 0.86× the fastest; verified: rind's Lean proof, through Aeneas and a hand model of the function-pointer dispatch Aeneas cannot translate, which assumes each key's mask is its own cipher's, the only one rind builds, of its header-protection API's ChaCha20 against RFC 9001 and RFC 8439, HACL*'s rounds included +58 ns ✓ +ChaCha20 header protection, aws-lc-rs: 72 ns, 1.08× the fastest +72 ns +ChaCha20 header protection, ring: 67 ns, 1.00× the fastest +67 ns Key agreement - + X25519 -X25519, rind: 16.71 µs, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and a hand model of the function-pointer dispatch Aeneas cannot translate, which assumes each key's dispatch table holds its own curve's functions, the only table rind builds, of its agreement API's X25519 down to s2n-bignum's routines, composed with s2n-bignum's HOL Light proofs of curve25519_x25519_alt, curve25519_x25519base_alt, and bignum_eq, of s2n-bignum's own object code, which rind transliterates -16.71 µs ✓ -X25519, aws-lc-rs: 17.85 µs, 1.07× the fastest -17.85 µs -X25519, ring: 24.48 µs, 1.46× the fastest -24.48 µs -X25519, RustCrypto + dalek: 29.71 µs, 1.78× the fastest -29.71 µs -X25519, graviola: 17.74 µs, 1.06× the fastest -17.74 µs -X25519, libcrux: 37.77 µs, 2.26× the fastest; verified: HACL*'s F* proof of Hacl.Curve25519_51's secret_to_public and ecdh, compiled to Rust by an unverified step -37.77 µs ✓ -X25519, OpenSSL: 35.77 µs, 2.14× the fastest -35.77 µs +X25519, rind: 16.53 µs, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and a hand model of the function-pointer dispatch Aeneas cannot translate, which assumes each key's dispatch table holds its own curve's functions, the only table rind builds, of its agreement API's X25519 down to s2n-bignum's routines, composed with s2n-bignum's HOL Light proofs of curve25519_x25519_alt, curve25519_x25519base_alt, and bignum_eq, of s2n-bignum's own object code, which rind transliterates +16.53 µs ✓ +X25519, aws-lc-rs: 18.12 µs, 1.10× the fastest +18.12 µs +X25519, ring: 24.91 µs, 1.51× the fastest +24.91 µs +X25519, RustCrypto + dalek: 29.73 µs, 1.80× the fastest +29.73 µs +X25519, graviola: 16.57 µs, 1.00× the fastest +16.57 µs +X25519, libcrux: 37.30 µs, 2.26× the fastest; verified: HACL*'s F* proof of Hacl.Curve25519_51's secret_to_public and ecdh, compiled to Rust by an unverified step +37.30 µs ✓ +X25519, OpenSSL: 36.21 µs, 2.19× the fastest +36.21 µs P-256 ECDH -P-256 ECDH, rind: 26.27 µs, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch and of key generation's draws through a dyn RandomSource, which Aeneas cannot translate, of its agreement API's P-256 key generation, public key, and agreement down to s2n-bignum's routines, composed with s2n-bignum's HOL Light proofs of p256_scalarmulbase_alt, p256_scalarmul_alt, bignum_tomont_p256, bignum_demont_p256, bignum_add_p256, bignum_montmul_p256, bignum_montsqr_p256, bignum_mod_n256_4, and bignum_eq, of s2n-bignum's own object code, which rind transliterates, with rind's generator table proven to hold the multiples of G that s2n-bignum's proof assumes -26.27 µs ✓ -P-256 ECDH, aws-lc-rs: 28.51 µs, 1.09× the fastest -28.51 µs -P-256 ECDH, ring: 32.31 µs, 1.23× the fastest -32.31 µs -P-256 ECDH, RustCrypto + dalek: 180.62 µs, 6.88× the fastest -180.62 µs -P-256 ECDH, graviola: 31.56 µs, 1.20× the fastest -31.56 µs -P-256 ECDH, libcrux: 183.72 µs, 6.99× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step -183.72 µs ✓ -P-256 ECDH, OpenSSL: 49.96 µs, 1.90× the fastest -49.96 µs +P-256 ECDH, rind: 26.44 µs, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch and of key generation's draws through a dyn RandomSource, which Aeneas cannot translate, of its agreement API's P-256 key generation, public key, and agreement down to s2n-bignum's routines, composed with s2n-bignum's HOL Light proofs of p256_scalarmulbase_alt, p256_scalarmul_alt, bignum_tomont_p256, bignum_demont_p256, bignum_add_p256, bignum_montmul_p256, bignum_montsqr_p256, bignum_mod_n256_4, and bignum_eq, of s2n-bignum's own object code, which rind transliterates, with rind's generator table proven to hold the multiples of G that s2n-bignum's proof assumes +26.44 µs ✓ +P-256 ECDH, aws-lc-rs: 28.80 µs, 1.09× the fastest +28.80 µs +P-256 ECDH, ring: 32.16 µs, 1.22× the fastest +32.16 µs +P-256 ECDH, RustCrypto + dalek: 178.43 µs, 6.75× the fastest +178.43 µs +P-256 ECDH, graviola: 31.15 µs, 1.18× the fastest +31.15 µs +P-256 ECDH, libcrux: 182.72 µs, 6.91× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step +182.72 µs ✓ +P-256 ECDH, OpenSSL: 50.38 µs, 1.91× the fastest +50.38 µs Signatures - + Ed25519 sign -Ed25519 sign, rind: 3.95 µs, 1.00× the fastest -3.95 µs -Ed25519 sign, aws-lc-rs: 4.06 µs, 1.03× the fastest -4.06 µs -Ed25519 sign, ring: 7.07 µs, 1.79× the fastest -7.07 µs -Ed25519 sign, RustCrypto + dalek: 8.66 µs, 2.19× the fastest -8.66 µs -Ed25519 sign, graviola: 4.17 µs, 1.06× the fastest -4.17 µs -Ed25519 sign, libcrux: 22.12 µs, 5.60× the fastest; verified: HACL*'s F* proof of Hacl.Ed25519's sign and verify, compiled to Rust by an unverified step -22.12 µs ✓ -Ed25519 sign, OpenSSL: 16.42 µs, 4.16× the fastest -16.42 µs +Ed25519 sign, rind: 3.93 µs, 1.00× the fastest +3.93 µs +Ed25519 sign, aws-lc-rs: 4.07 µs, 1.04× the fastest +4.07 µs +Ed25519 sign, ring: 7.03 µs, 1.79× the fastest +7.03 µs +Ed25519 sign, RustCrypto + dalek: 8.65 µs, 2.20× the fastest +8.65 µs +Ed25519 sign, graviola: 4.21 µs, 1.07× the fastest +4.21 µs +Ed25519 sign, libcrux: 22.00 µs, 5.60× the fastest; verified: HACL*'s F* proof of Hacl.Ed25519's sign and verify, compiled to Rust by an unverified step +22.00 µs ✓ +Ed25519 sign, OpenSSL: 16.56 µs, 4.22× the fastest +16.56 µs Ed25519 verify -Ed25519 verify, rind: 18.66 µs, 1.01× the fastest -18.66 µs -Ed25519 verify, aws-lc-rs: 18.52 µs, 1.01× the fastest -18.52 µs -Ed25519 verify, ring: 19.94 µs, 1.08× the fastest -19.94 µs -Ed25519 verify, RustCrypto + dalek: 18.42 µs, 1.00× the fastest -18.42 µs -Ed25519 verify, graviola: 18.69 µs, 1.01× the fastest -18.69 µs -Ed25519 verify, libcrux: 29.57 µs, 1.61× the fastest; verified: HACL*'s F* proof of Hacl.Ed25519's sign and verify, compiled to Rust by an unverified step -29.57 µs ✓ -Ed25519 verify, OpenSSL: 41.08 µs, 2.23× the fastest -41.08 µs +Ed25519 verify, rind: 18.81 µs, 1.02× the fastest +18.81 µs +Ed25519 verify, aws-lc-rs: 18.48 µs, 1.00× the fastest +18.48 µs +Ed25519 verify, ring: 20.22 µs, 1.09× the fastest +20.22 µs +Ed25519 verify, RustCrypto + dalek: 18.60 µs, 1.01× the fastest +18.60 µs +Ed25519 verify, graviola: 18.94 µs, 1.03× the fastest +18.94 µs +Ed25519 verify, libcrux: 29.44 µs, 1.59× the fastest; verified: HACL*'s F* proof of Hacl.Ed25519's sign and verify, compiled to Rust by an unverified step +29.44 µs ✓ +Ed25519 verify, OpenSSL: 41.29 µs, 2.23× the fastest +41.29 µs P-256 ECDSA sign -P-256 ECDSA sign, rind: 7.11 µs, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch and of the nonces' draws through a dyn RandomSource, which Aeneas cannot translate, of its signature API's P-256 ECDSA with SHA-256 and fixed-length signatures, key generation and loading, signing, and verification, down to s2n-bignum's routines, composed with s2n-bignum's HOL Light proofs of p256_scalarmulbase_alt, p256_montjadd_alt, p256_montjdouble_alt, p256_montjmixadd_alt, bignum_inv_p256, bignum_neg_p256, bignum_tomont_p256, bignum_demont_p256, bignum_add_p256, bignum_montmul_p256, bignum_montsqr_p256, bignum_mod_n256_4, bignum_modadd, bignum_montmul, bignum_demont, bignum_modinv, and bignum_eq, of s2n-bignum's own object code, which rind transliterates, with the group laws its twin multiplication relies on proven from Mathlib's and the generator's order n proven, assuming HOL Light's P256_GROUP_ELEMENT_ORDER, that a point has order n, only for verification with a parsed public key, and proving a signature right when signing returns, as its nonce loop has no bound -7.11 µs ✓ -P-256 ECDSA sign, aws-lc-rs: 11.27 µs, 1.58× the fastest -11.27 µs -P-256 ECDSA sign, ring: 11.01 µs, 1.55× the fastest -11.01 µs -P-256 ECDSA sign, RustCrypto + dalek: 44.33 µs, 6.23× the fastest -44.33 µs -P-256 ECDSA sign, graviola: 8.83 µs, 1.24× the fastest -8.83 µs -P-256 ECDSA sign, libcrux: 67.38 µs, 9.47× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step -67.38 µs ✓ -P-256 ECDSA sign, OpenSSL: 12.62 µs, 1.77× the fastest -12.62 µs +P-256 ECDSA sign, rind: 7.13 µs, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch and of the nonces' draws through a dyn RandomSource, which Aeneas cannot translate, of its signature API's P-256 ECDSA with SHA-256 and fixed-length signatures, key generation and loading, signing, and verification, down to s2n-bignum's routines, composed with s2n-bignum's HOL Light proofs of p256_scalarmulbase_alt, p256_montjadd_alt, p256_montjdouble_alt, p256_montjmixadd_alt, bignum_inv_p256, bignum_neg_p256, bignum_tomont_p256, bignum_demont_p256, bignum_add_p256, bignum_montmul_p256, bignum_montsqr_p256, bignum_mod_n256_4, bignum_modadd, bignum_montmul, bignum_demont, bignum_modinv, and bignum_eq, of s2n-bignum's own object code, which rind transliterates, with the group laws its twin multiplication relies on proven from Mathlib's and the generator's order n proven, assuming HOL Light's P256_GROUP_ELEMENT_ORDER, that a point has order n, only for verification with a parsed public key, and proving a signature right when signing returns, as its nonce loop has no bound +7.13 µs ✓ +P-256 ECDSA sign, aws-lc-rs: 11.16 µs, 1.56× the fastest +11.16 µs +P-256 ECDSA sign, ring: 10.91 µs, 1.53× the fastest +10.91 µs +P-256 ECDSA sign, RustCrypto + dalek: 43.98 µs, 6.17× the fastest +43.98 µs +P-256 ECDSA sign, graviola: 8.58 µs, 1.20× the fastest +8.58 µs +P-256 ECDSA sign, libcrux: 66.95 µs, 9.38× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step +66.95 µs ✓ +P-256 ECDSA sign, OpenSSL: 12.43 µs, 1.74× the fastest +12.43 µs P-256 ECDSA verify -P-256 ECDSA verify, rind: 27.15 µs, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch and of the nonces' draws through a dyn RandomSource, which Aeneas cannot translate, of its signature API's P-256 ECDSA with SHA-256 and fixed-length signatures, key generation and loading, signing, and verification, down to s2n-bignum's routines, composed with s2n-bignum's HOL Light proofs of p256_scalarmulbase_alt, p256_montjadd_alt, p256_montjdouble_alt, p256_montjmixadd_alt, bignum_inv_p256, bignum_neg_p256, bignum_tomont_p256, bignum_demont_p256, bignum_add_p256, bignum_montmul_p256, bignum_montsqr_p256, bignum_mod_n256_4, bignum_modadd, bignum_montmul, bignum_demont, bignum_modinv, and bignum_eq, of s2n-bignum's own object code, which rind transliterates, with the group laws its twin multiplication relies on proven from Mathlib's and the generator's order n proven, assuming HOL Light's P256_GROUP_ELEMENT_ORDER, that a point has order n, only for verification with a parsed public key, and proving a signature right when signing returns, as its nonce loop has no bound -27.15 µs ✓ -P-256 ECDSA verify, aws-lc-rs: 27.15 µs, 1.00× the fastest -27.15 µs -P-256 ECDSA verify, ring: 29.35 µs, 1.08× the fastest -29.35 µs -P-256 ECDSA verify, RustCrypto + dalek: 157.87 µs, 5.82× the fastest -157.87 µs -P-256 ECDSA verify, graviola: 28.60 µs, 1.05× the fastest -28.60 µs -P-256 ECDSA verify, libcrux: 156.54 µs, 5.77× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step -156.54 µs ✓ -P-256 ECDSA verify, OpenSSL: 41.90 µs, 1.54× the fastest -41.90 µs +P-256 ECDSA verify, rind: 26.25 µs, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch and of the nonces' draws through a dyn RandomSource, which Aeneas cannot translate, of its signature API's P-256 ECDSA with SHA-256 and fixed-length signatures, key generation and loading, signing, and verification, down to s2n-bignum's routines, composed with s2n-bignum's HOL Light proofs of p256_scalarmulbase_alt, p256_montjadd_alt, p256_montjdouble_alt, p256_montjmixadd_alt, bignum_inv_p256, bignum_neg_p256, bignum_tomont_p256, bignum_demont_p256, bignum_add_p256, bignum_montmul_p256, bignum_montsqr_p256, bignum_mod_n256_4, bignum_modadd, bignum_montmul, bignum_demont, bignum_modinv, and bignum_eq, of s2n-bignum's own object code, which rind transliterates, with the group laws its twin multiplication relies on proven from Mathlib's and the generator's order n proven, assuming HOL Light's P256_GROUP_ELEMENT_ORDER, that a point has order n, only for verification with a parsed public key, and proving a signature right when signing returns, as its nonce loop has no bound +26.25 µs ✓ +P-256 ECDSA verify, aws-lc-rs: 27.38 µs, 1.04× the fastest +27.38 µs +P-256 ECDSA verify, ring: 29.22 µs, 1.11× the fastest +29.22 µs +P-256 ECDSA verify, RustCrypto + dalek: 151.69 µs, 5.78× the fastest +151.69 µs +P-256 ECDSA verify, graviola: 28.18 µs, 1.07× the fastest +28.18 µs +P-256 ECDSA verify, libcrux: 156.18 µs, 5.95× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step +156.18 µs ✓ +P-256 ECDSA verify, OpenSSL: 41.90 µs, 1.60× the fastest +41.90 µs Hashes and KDFs - + SHA-256, 64 B -SHA-256, 64 B, rind: 93 ns, 2.58× the fastest -93 ns -SHA-256, 64 B, aws-lc-rs: 71 ns, 1.97× the fastest -71 ns -SHA-256, 64 B, ring: 45 ns, 1.25× the fastest -45 ns -SHA-256, 64 B, RustCrypto + dalek: 37 ns, 1.03× the fastest -37 ns -SHA-256, 64 B, graviola: 36 ns, 1.00× the fastest +SHA-256, 64 B, rind: 90 ns, 2.54× the fastest +90 ns +SHA-256, 64 B, rind (DIT held): 37 ns, 1.04× the fastest +37 ns +SHA-256, 64 B, aws-lc-rs: 70 ns, 1.99× the fastest +70 ns +SHA-256, 64 B, ring: 44 ns, 1.25× the fastest +44 ns +SHA-256, 64 B, RustCrypto + dalek: 36 ns, 1.03× the fastest 36 ns -SHA-256, 64 B, libcrux: 232 ns, 6.45× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -232 ns ✓ -SHA-256, 64 B, OpenSSL: 162 ns, 4.50× the fastest -162 ns +SHA-256, 64 B, graviola: 35 ns, 1.00× the fastest +35 ns +SHA-256, 64 B, libcrux: 225 ns, 6.37× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +225 ns ✓ +SHA-256, 64 B, OpenSSL: 159 ns, 4.51× the fastest +159 ns SHA-256, 1350 B -SHA-256, 1350 B, rind: 484 ns, 1.17× the fastest -484 ns -SHA-256, 1350 B, aws-lc-rs: 440 ns, 1.06× the fastest -440 ns -SHA-256, 1350 B, ring: 414 ns, 1.00× the fastest -414 ns -SHA-256, 1350 B, RustCrypto + dalek: 475 ns, 1.15× the fastest -475 ns -SHA-256, 1350 B, graviola: 472 ns, 1.14× the fastest -472 ns -SHA-256, 1350 B, libcrux: 2.52 µs, 6.08× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -2.52 µs ✓ -SHA-256, 1350 B, OpenSSL: 531 ns, 1.28× the fastest -531 ns +SHA-256, 1350 B, rind: 485 ns, 1.18× the fastest +485 ns +SHA-256, 1350 B, rind (DIT held): 409 ns, 1.00× the fastest +409 ns +SHA-256, 1350 B, aws-lc-rs: 434 ns, 1.06× the fastest +434 ns +SHA-256, 1350 B, ring: 410 ns, 1.00× the fastest +410 ns +SHA-256, 1350 B, RustCrypto + dalek: 473 ns, 1.16× the fastest +473 ns +SHA-256, 1350 B, graviola: 480 ns, 1.17× the fastest +480 ns +SHA-256, 1350 B, libcrux: 2.46 µs, 6.00× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +2.46 µs ✓ +SHA-256, 1350 B, OpenSSL: 533 ns, 1.30× the fastest +533 ns SHA-256, 16 KB -SHA-256, 16 KB, rind: 4.94 µs, 1.01× the fastest -4.94 µs -SHA-256, 16 KB, aws-lc-rs: 4.87 µs, 1.00× the fastest -4.87 µs -SHA-256, 16 KB, ring: 4.90 µs, 1.01× the fastest -4.90 µs -SHA-256, 16 KB, RustCrypto + dalek: 5.69 µs, 1.17× the fastest -5.69 µs -SHA-256, 16 KB, graviola: 5.76 µs, 1.18× the fastest -5.76 µs -SHA-256, 16 KB, libcrux: 29.13 µs, 5.98× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -29.13 µs ✓ -SHA-256, 16 KB, OpenSSL: 5.17 µs, 1.06× the fastest -5.17 µs +SHA-256, 16 KB, rind: 4.93 µs, 1.02× the fastest +4.93 µs +SHA-256, 16 KB, rind (DIT held): 5.01 µs, 1.04× the fastest +5.01 µs +SHA-256, 16 KB, aws-lc-rs: 4.86 µs, 1.00× the fastest +4.86 µs +SHA-256, 16 KB, ring: 4.84 µs, 1.00× the fastest +4.84 µs +SHA-256, 16 KB, RustCrypto + dalek: 5.66 µs, 1.17× the fastest +5.66 µs +SHA-256, 16 KB, graviola: 5.79 µs, 1.20× the fastest +5.79 µs +SHA-256, 16 KB, libcrux: 29.00 µs, 5.99× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +29.00 µs ✓ +SHA-256, 16 KB, OpenSSL: 4.98 µs, 1.03× the fastest +4.98 µs SHA-512, 64 B -SHA-512, 64 B, rind: 113 ns, 1.44× the fastest -113 ns -SHA-512, 64 B, aws-lc-rs: 108 ns, 1.37× the fastest -108 ns -SHA-512, 64 B, ring: 88 ns, 1.11× the fastest -88 ns -SHA-512, 64 B, RustCrypto + dalek: 79 ns, 1.00× the fastest -79 ns -SHA-512, 64 B, graviola: 177 ns, 2.25× the fastest -177 ns -SHA-512, 64 B, libcrux: 141 ns, 1.79× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -141 ns ✓ -SHA-512, 64 B, OpenSSL: 211 ns, 2.68× the fastest -211 ns +SHA-512, 64 B, rind: 108 ns, 1.41× the fastest +108 ns +SHA-512, 64 B, rind (DIT held): 75 ns, 0.98× the fastest +75 ns +SHA-512, 64 B, aws-lc-rs: 105 ns, 1.36× the fastest +105 ns +SHA-512, 64 B, ring: 84 ns, 1.10× the fastest +84 ns +SHA-512, 64 B, RustCrypto + dalek: 77 ns, 1.00× the fastest +77 ns +SHA-512, 64 B, graviola: 175 ns, 2.27× the fastest +175 ns +SHA-512, 64 B, libcrux: 142 ns, 1.84× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +142 ns ✓ +SHA-512, 64 B, OpenSSL: 205 ns, 2.67× the fastest +205 ns SHA-512, 1350 B -SHA-512, 1350 B, rind: 827 ns, 1.15× the fastest -827 ns -SHA-512, 1350 B, aws-lc-rs: 775 ns, 1.07× the fastest -775 ns -SHA-512, 1350 B, ring: 737 ns, 1.02× the fastest -737 ns -SHA-512, 1350 B, RustCrypto + dalek: 722 ns, 1.00× the fastest -722 ns -SHA-512, 1350 B, graviola: 1.88 µs, 2.60× the fastest -1.88 µs -SHA-512, 1350 B, libcrux: 1.58 µs, 2.18× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -1.58 µs ✓ -SHA-512, 1350 B, OpenSSL: 878 ns, 1.22× the fastest -878 ns +SHA-512, 1350 B, rind: 810 ns, 1.12× the fastest +810 ns +SHA-512, 1350 B, rind (DIT held): 730 ns, 1.01× the fastest +730 ns +SHA-512, 1350 B, aws-lc-rs: 768 ns, 1.06× the fastest +768 ns +SHA-512, 1350 B, ring: 743 ns, 1.03× the fastest +743 ns +SHA-512, 1350 B, RustCrypto + dalek: 723 ns, 1.00× the fastest +723 ns +SHA-512, 1350 B, graviola: 1.87 µs, 2.58× the fastest +1.87 µs +SHA-512, 1350 B, libcrux: 1.56 µs, 2.16× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +1.56 µs ✓ +SHA-512, 1350 B, OpenSSL: 893 ns, 1.23× the fastest +893 ns SHA-512, 16 KB -SHA-512, 16 KB, rind: 8.77 µs, 1.03× the fastest -8.77 µs -SHA-512, 16 KB, aws-lc-rs: 8.70 µs, 1.02× the fastest -8.70 µs -SHA-512, 16 KB, ring: 8.69 µs, 1.02× the fastest -8.69 µs -SHA-512, 16 KB, RustCrypto + dalek: 8.50 µs, 1.00× the fastest -8.50 µs -SHA-512, 16 KB, graviola: 22.11 µs, 2.60× the fastest -22.11 µs -SHA-512, 16 KB, libcrux: 18.41 µs, 2.17× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -18.41 µs ✓ -SHA-512, 16 KB, OpenSSL: 8.88 µs, 1.04× the fastest -8.88 µs +SHA-512, 16 KB, rind: 8.85 µs, 1.03× the fastest +8.85 µs +SHA-512, 16 KB, rind (DIT held): 8.72 µs, 1.02× the fastest +8.72 µs +SHA-512, 16 KB, aws-lc-rs: 8.91 µs, 1.04× the fastest +8.91 µs +SHA-512, 16 KB, ring: 8.70 µs, 1.01× the fastest +8.70 µs +SHA-512, 16 KB, RustCrypto + dalek: 8.59 µs, 1.00× the fastest +8.59 µs +SHA-512, 16 KB, graviola: 21.69 µs, 2.52× the fastest +21.69 µs +SHA-512, 16 KB, libcrux: 18.39 µs, 2.14× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +18.39 µs ✓ +SHA-512, 16 KB, OpenSSL: 9.33 µs, 1.09× the fastest +9.33 µs HMAC-SHA256, 64 B -HMAC-SHA256, 64 B, rind: 191 ns, 1.88× the fastest -191 ns -HMAC-SHA256, 64 B, aws-lc-rs: 248 ns, 2.43× the fastest -248 ns -HMAC-SHA256, 64 B, ring: 137 ns, 1.34× the fastest -137 ns -HMAC-SHA256, 64 B, RustCrypto + dalek: 102 ns, 1.00× the fastest -102 ns -HMAC-SHA256, 64 B, graviola: 115 ns, 1.12× the fastest -115 ns -HMAC-SHA256, 64 B, libcrux: 568 ns, 5.57× the fastest; verified: HACL*'s F* proof of Hacl.HMAC's compute_sha2_256, compiled to Rust by an unverified step -568 ns ✓ -HMAC-SHA256, 64 B, OpenSSL: 2.06 µs, 20.24× the fastest -2.06 µs +HMAC-SHA256, 64 B, rind: 189 ns, 1.90× the fastest +189 ns +HMAC-SHA256, 64 B, rind (DIT held): 110 ns, 1.10× the fastest +110 ns +HMAC-SHA256, 64 B, aws-lc-rs: 245 ns, 2.47× the fastest +245 ns +HMAC-SHA256, 64 B, ring: 134 ns, 1.35× the fastest +134 ns +HMAC-SHA256, 64 B, RustCrypto + dalek: 99 ns, 1.00× the fastest +99 ns +HMAC-SHA256, 64 B, graviola: 112 ns, 1.12× the fastest +112 ns +HMAC-SHA256, 64 B, libcrux: 564 ns, 5.67× the fastest; verified: HACL*'s F* proof of Hacl.HMAC's compute_sha2_256, compiled to Rust by an unverified step +564 ns ✓ +HMAC-SHA256, 64 B, OpenSSL: 2.09 µs, 21.07× the fastest +2.09 µs HMAC-SHA256, 1350 B HMAC-SHA256, 1350 B, rind: 559 ns, 1.11× the fastest 559 ns -HMAC-SHA256, 1350 B, aws-lc-rs: 620 ns, 1.24× the fastest -620 ns -HMAC-SHA256, 1350 B, ring: 502 ns, 1.00× the fastest -502 ns -HMAC-SHA256, 1350 B, RustCrypto + dalek: 542 ns, 1.08× the fastest -542 ns -HMAC-SHA256, 1350 B, graviola: 557 ns, 1.11× the fastest -557 ns -HMAC-SHA256, 1350 B, libcrux: 2.86 µs, 5.70× the fastest; verified: HACL*'s F* proof of Hacl.HMAC's compute_sha2_256, compiled to Rust by an unverified step -2.86 µs ✓ -HMAC-SHA256, 1350 B, OpenSSL: 2.43 µs, 4.84× the fastest -2.43 µs +HMAC-SHA256, 1350 B, rind (DIT held): 487 ns, 0.97× the fastest +487 ns +HMAC-SHA256, 1350 B, aws-lc-rs: 597 ns, 1.19× the fastest +597 ns +HMAC-SHA256, 1350 B, ring: 502 ns, 1.00× the fastest +502 ns +HMAC-SHA256, 1350 B, RustCrypto + dalek: 545 ns, 1.08× the fastest +545 ns +HMAC-SHA256, 1350 B, graviola: 562 ns, 1.12× the fastest +562 ns +HMAC-SHA256, 1350 B, libcrux: 2.80 µs, 5.57× the fastest; verified: HACL*'s F* proof of Hacl.HMAC's compute_sha2_256, compiled to Rust by an unverified step +2.80 µs ✓ +HMAC-SHA256, 1350 B, OpenSSL: 2.41 µs, 4.80× the fastest +2.41 µs HKDF-SHA256 extract and expand -HKDF-SHA256 extract and expand, rind: 343 ns, 1.58× the fastest -343 ns -HKDF-SHA256 extract and expand, aws-lc-rs: 330 ns, 1.52× the fastest -330 ns -HKDF-SHA256 extract and expand, ring: 274 ns, 1.26× the fastest -274 ns -HKDF-SHA256 extract and expand, RustCrypto + dalek: 218 ns, 1.00× the fastest -218 ns -HKDF-SHA256 extract and expand, libcrux: 942 ns, 4.32× the fastest; verified: HACL*'s F* proof of Hacl.HKDF's extract_sha2_256 and expand_sha2_256, compiled to Rust by an unverified step -942 ns ✓ -HKDF-SHA256 extract and expand, OpenSSL: 2.14 µs, 9.84× the fastest -2.14 µs +HKDF-SHA256 extract and expand, rind: 338 ns, 1.60× the fastest +338 ns +HKDF-SHA256 extract and expand, rind (DIT held): 226 ns, 1.07× the fastest +226 ns +HKDF-SHA256 extract and expand, aws-lc-rs: 330 ns, 1.56× the fastest +330 ns +HKDF-SHA256 extract and expand, ring: 273 ns, 1.29× the fastest +273 ns +HKDF-SHA256 extract and expand, RustCrypto + dalek: 212 ns, 1.00× the fastest +212 ns +HKDF-SHA256 extract and expand, libcrux: 936 ns, 4.42× the fastest; verified: HACL*'s F* proof of Hacl.HKDF's extract_sha2_256 and expand_sha2_256, compiled to Rust by an unverified step +936 ns ✓ +HKDF-SHA256 extract and expand, OpenSSL: 2.16 µs, 10.20× the fastest +2.16 µs HKDF-SHA256 expand -HKDF-SHA256 expand, rind: 109 ns, 1.55× the fastest -109 ns -HKDF-SHA256 expand, aws-lc-rs: 154 ns, 2.20× the fastest -154 ns -HKDF-SHA256 expand, ring: 94 ns, 1.33× the fastest -94 ns -HKDF-SHA256 expand, RustCrypto + dalek: 70 ns, 1.00× the fastest -70 ns -HKDF-SHA256 expand, libcrux: 481 ns, 6.86× the fastest; verified: HACL*'s F* proof of Hacl.HKDF's extract_sha2_256 and expand_sha2_256, compiled to Rust by an unverified step -481 ns ✓ -HKDF-SHA256 expand, OpenSSL: 1.54 µs, 21.93× the fastest -1.54 µs +HKDF-SHA256 expand, rind: 107 ns, 1.56× the fastest +107 ns +HKDF-SHA256 expand, rind (DIT held): 74 ns, 1.08× the fastest +74 ns +HKDF-SHA256 expand, aws-lc-rs: 154 ns, 2.23× the fastest +154 ns +HKDF-SHA256 expand, ring: 93 ns, 1.35× the fastest +93 ns +HKDF-SHA256 expand, RustCrypto + dalek: 69 ns, 1.00× the fastest +69 ns +HKDF-SHA256 expand, libcrux: 481 ns, 7.00× the fastest; verified: HACL*'s F* proof of Hacl.HKDF's extract_sha2_256 and expand_sha2_256, compiled to Rust by an unverified step +481 ns ✓ +HKDF-SHA256 expand, OpenSSL: 1.55 µs, 22.51× the fastest +1.55 µs RSA - + RSA-2048 PKCS#1 sign -RSA-2048 PKCS#1 sign, rind: 275.12 µs, 1.00× the fastest -275.12 µs -RSA-2048 PKCS#1 sign, aws-lc-rs: 285.95 µs, 1.04× the fastest -285.95 µs -RSA-2048 PKCS#1 sign, ring: 322.84 µs, 1.17× the fastest -322.84 µs -RSA-2048 PKCS#1 sign, RustCrypto + dalek: 586.34 µs, 2.13× the fastest -586.34 µs -RSA-2048 PKCS#1 sign, graviola: 556.70 µs, 2.02× the fastest -556.70 µs -RSA-2048 PKCS#1 sign, OpenSSL: 341.31 µs, 1.24× the fastest -341.31 µs +RSA-2048 PKCS#1 sign, rind: 275.40 µs, 1.00× the fastest +275.40 µs +RSA-2048 PKCS#1 sign, aws-lc-rs: 283.82 µs, 1.03× the fastest +283.82 µs +RSA-2048 PKCS#1 sign, ring: 323.02 µs, 1.17× the fastest +323.02 µs +RSA-2048 PKCS#1 sign, RustCrypto + dalek: 588.22 µs, 2.14× the fastest +588.22 µs +RSA-2048 PKCS#1 sign, graviola: 551.44 µs, 2.00× the fastest +551.44 µs +RSA-2048 PKCS#1 sign, OpenSSL: 340.40 µs, 1.24× the fastest +340.40 µs RSA-2048 PKCS#1 verify -RSA-2048 PKCS#1 verify, rind: 8.38 µs, 1.00× the fastest -8.38 µs -RSA-2048 PKCS#1 verify, aws-lc-rs: 9.48 µs, 1.13× the fastest -9.48 µs -RSA-2048 PKCS#1 verify, ring: 11.05 µs, 1.32× the fastest -11.05 µs -RSA-2048 PKCS#1 verify, RustCrypto + dalek: 30.77 µs, 3.67× the fastest -30.77 µs -RSA-2048 PKCS#1 verify, graviola: 18.51 µs, 2.21× the fastest -18.51 µs -RSA-2048 PKCS#1 verify, OpenSSL: 16.66 µs, 1.99× the fastest -16.66 µs +RSA-2048 PKCS#1 verify, rind: 8.41 µs, 1.00× the fastest +8.41 µs +RSA-2048 PKCS#1 verify, aws-lc-rs: 9.54 µs, 1.13× the fastest +9.54 µs +RSA-2048 PKCS#1 verify, ring: 11.01 µs, 1.31× the fastest +11.01 µs +RSA-2048 PKCS#1 verify, RustCrypto + dalek: 30.97 µs, 3.68× the fastest +30.97 µs +RSA-2048 PKCS#1 verify, graviola: 18.43 µs, 2.19× the fastest +18.43 µs +RSA-2048 PKCS#1 verify, OpenSSL: 16.81 µs, 2.00× the fastest +16.81 µs RSA-2048 PSS sign -RSA-2048 PSS sign, rind: 275.29 µs, 1.00× the fastest -275.29 µs -RSA-2048 PSS sign, aws-lc-rs: 288.58 µs, 1.05× the fastest -288.58 µs -RSA-2048 PSS sign, ring: 324.86 µs, 1.18× the fastest -324.86 µs -RSA-2048 PSS sign, RustCrypto + dalek: 588.38 µs, 2.14× the fastest -588.38 µs -RSA-2048 PSS sign, graviola: 558.57 µs, 2.03× the fastest -558.57 µs -RSA-2048 PSS sign, libcrux: 4.48 ms, 16.28× the fastest; verified: HACL*'s F* proof of Hacl.RSAPSS's rsapss_skey_sign and rsapss_pkey_verify, signing without the CRT, compiled to Rust by an unverified step -4.48 ms ✓ -RSA-2048 PSS sign, OpenSSL: 342.61 µs, 1.24× the fastest -342.61 µs +RSA-2048 PSS sign, rind: 275.82 µs, 1.00× the fastest +275.82 µs +RSA-2048 PSS sign, aws-lc-rs: 285.36 µs, 1.03× the fastest +285.36 µs +RSA-2048 PSS sign, ring: 323.17 µs, 1.17× the fastest +323.17 µs +RSA-2048 PSS sign, RustCrypto + dalek: 589.96 µs, 2.14× the fastest +589.96 µs +RSA-2048 PSS sign, graviola: 551.49 µs, 2.00× the fastest +551.49 µs +RSA-2048 PSS sign, libcrux: 4.47 ms, 16.20× the fastest; verified: HACL*'s F* proof of Hacl.RSAPSS's rsapss_skey_sign and rsapss_pkey_verify, signing without the CRT, compiled to Rust by an unverified step +4.47 ms ✓ +RSA-2048 PSS sign, OpenSSL: 341.81 µs, 1.24× the fastest +341.81 µs RSA-2048 PSS verify -RSA-2048 PSS verify, rind: 8.71 µs, 1.00× the fastest -8.71 µs -RSA-2048 PSS verify, aws-lc-rs: 9.84 µs, 1.13× the fastest -9.84 µs -RSA-2048 PSS verify, ring: 11.48 µs, 1.32× the fastest -11.48 µs -RSA-2048 PSS verify, RustCrypto + dalek: 39.26 µs, 4.51× the fastest -39.26 µs -RSA-2048 PSS verify, graviola: 18.79 µs, 2.16× the fastest -18.79 µs -RSA-2048 PSS verify, libcrux: 299.96 µs, 34.44× the fastest; verified: HACL*'s F* proof of Hacl.RSAPSS's rsapss_skey_sign and rsapss_pkey_verify, signing without the CRT, compiled to Rust by an unverified step -299.96 µs ✓ -RSA-2048 PSS verify, OpenSSL: 17.44 µs, 2.00× the fastest -17.44 µs +RSA-2048 PSS verify, rind: 8.74 µs, 1.00× the fastest +8.74 µs +RSA-2048 PSS verify, aws-lc-rs: 9.89 µs, 1.13× the fastest +9.89 µs +RSA-2048 PSS verify, ring: 11.43 µs, 1.31× the fastest +11.43 µs +RSA-2048 PSS verify, RustCrypto + dalek: 38.88 µs, 4.45× the fastest +38.88 µs +RSA-2048 PSS verify, graviola: 18.77 µs, 2.15× the fastest +18.77 µs +RSA-2048 PSS verify, libcrux: 297.72 µs, 34.06× the fastest; verified: HACL*'s F* proof of Hacl.RSAPSS's rsapss_skey_sign and rsapss_pkey_verify, signing without the CRT, compiled to Rust by an unverified step +297.72 µs ✓ +RSA-2048 PSS verify, OpenSSL: 17.47 µs, 2.00× the fastest +17.47 µs ML-KEM - + ML-KEM-768 key generation -ML-KEM-768 key generation, rind: 6.20 µs, 1.00× the fastest -6.20 µs -ML-KEM-768 key generation, aws-lc-rs: 7.46 µs, 1.20× the fastest -7.46 µs -ML-KEM-768 key generation, RustCrypto + dalek: 26.57 µs, 4.29× the fastest -26.57 µs -ML-KEM-768 key generation, graviola: 6.22 µs, 1.00× the fastest -6.22 µs -ML-KEM-768 key generation, libcrux: 12.01 µs, 1.94× the fastest -12.01 µs -ML-KEM-768 key generation, OpenSSL: 25.06 µs, 4.04× the fastest -25.06 µs +ML-KEM-768 key generation, rind: 6.11 µs, 1.00× the fastest +6.11 µs +ML-KEM-768 key generation, aws-lc-rs: 7.31 µs, 1.20× the fastest +7.31 µs +ML-KEM-768 key generation, RustCrypto + dalek: 26.29 µs, 4.30× the fastest +26.29 µs +ML-KEM-768 key generation, graviola: 6.11 µs, 1.00× the fastest +6.11 µs +ML-KEM-768 key generation, libcrux: 11.77 µs, 1.93× the fastest +11.77 µs +ML-KEM-768 key generation, OpenSSL: 24.90 µs, 4.08× the fastest +24.90 µs ML-KEM-768 encapsulate -ML-KEM-768 encapsulate, rind: 6.84 µs, 1.07× the fastest -6.84 µs -ML-KEM-768 encapsulate, aws-lc-rs: 8.01 µs, 1.25× the fastest -8.01 µs -ML-KEM-768 encapsulate, RustCrypto + dalek: 27.77 µs, 4.34× the fastest -27.77 µs -ML-KEM-768 encapsulate, graviola: 6.40 µs, 1.00× the fastest -6.40 µs -ML-KEM-768 encapsulate, libcrux: 9.39 µs, 1.47× the fastest -9.39 µs -ML-KEM-768 encapsulate, OpenSSL: 24.07 µs, 3.76× the fastest -24.07 µs +ML-KEM-768 encapsulate, rind: 6.77 µs, 1.07× the fastest +6.77 µs +ML-KEM-768 encapsulate, aws-lc-rs: 7.91 µs, 1.25× the fastest +7.91 µs +ML-KEM-768 encapsulate, RustCrypto + dalek: 27.87 µs, 4.41× the fastest +27.87 µs +ML-KEM-768 encapsulate, graviola: 6.32 µs, 1.00× the fastest +6.32 µs +ML-KEM-768 encapsulate, libcrux: 9.25 µs, 1.46× the fastest +9.25 µs +ML-KEM-768 encapsulate, OpenSSL: 23.89 µs, 3.78× the fastest +23.89 µs ML-KEM-768 decapsulate -ML-KEM-768 decapsulate, rind: 4.17 µs, 1.03× the fastest -4.17 µs -ML-KEM-768 decapsulate, aws-lc-rs: 7.75 µs, 1.91× the fastest -7.75 µs -ML-KEM-768 decapsulate, RustCrypto + dalek: 34.06 µs, 8.41× the fastest -34.06 µs -ML-KEM-768 decapsulate, graviola: 4.05 µs, 1.00× the fastest -4.05 µs -ML-KEM-768 decapsulate, libcrux: 9.58 µs, 2.36× the fastest -9.58 µs -ML-KEM-768 decapsulate, OpenSSL: 24.43 µs, 6.03× the fastest -24.43 µs +ML-KEM-768 decapsulate, rind: 4.12 µs, 1.02× the fastest +4.12 µs +ML-KEM-768 decapsulate, aws-lc-rs: 7.67 µs, 1.91× the fastest +7.67 µs +ML-KEM-768 decapsulate, RustCrypto + dalek: 33.92 µs, 8.43× the fastest +33.92 µs +ML-KEM-768 decapsulate, graviola: 4.02 µs, 1.00× the fastest +4.02 µs +ML-KEM-768 decapsulate, libcrux: 9.48 µs, 2.36× the fastest +9.48 µs +ML-KEM-768 decapsulate, OpenSSL: 24.66 µs, 6.13× the fastest +24.66 µs P-384 and P-521 - + P-384 ECDH -P-384 ECDH, rind: 91.49 µs, 1.00× the fastest -91.49 µs -P-384 ECDH, aws-lc-rs: 105.75 µs, 1.16× the fastest -105.75 µs -P-384 ECDH, ring: 412.48 µs, 4.51× the fastest -412.48 µs -P-384 ECDH, RustCrypto + dalek: 494.20 µs, 5.40× the fastest -494.20 µs -P-384 ECDH, graviola: 153.84 µs, 1.68× the fastest -153.84 µs -P-384 ECDH, OpenSSL: 279.51 µs, 3.06× the fastest -279.51 µs +P-384 ECDH, rind: 90.11 µs, 1.00× the fastest +90.11 µs +P-384 ECDH, aws-lc-rs: 104.99 µs, 1.17× the fastest +104.99 µs +P-384 ECDH, ring: 413.70 µs, 4.59× the fastest +413.70 µs +P-384 ECDH, RustCrypto + dalek: 488.31 µs, 5.42× the fastest +488.31 µs +P-384 ECDH, graviola: 150.93 µs, 1.67× the fastest +150.93 µs +P-384 ECDH, OpenSSL: 280.83 µs, 3.12× the fastest +280.83 µs P-384 ECDSA sign -P-384 ECDSA sign, rind: 22.93 µs, 1.00× the fastest -22.93 µs -P-384 ECDSA sign, aws-lc-rs: 49.16 µs, 2.14× the fastest -49.16 µs -P-384 ECDSA sign, ring: 223.72 µs, 9.76× the fastest -223.72 µs -P-384 ECDSA sign, RustCrypto + dalek: 112.64 µs, 4.91× the fastest -112.64 µs -P-384 ECDSA sign, graviola: 81.12 µs, 3.54× the fastest -81.12 µs -P-384 ECDSA sign, OpenSSL: 104.84 µs, 4.57× the fastest -104.84 µs +P-384 ECDSA sign, rind: 22.30 µs, 1.00× the fastest +22.30 µs +P-384 ECDSA sign, aws-lc-rs: 49.21 µs, 2.21× the fastest +49.21 µs +P-384 ECDSA sign, ring: 222.34 µs, 9.97× the fastest +222.34 µs +P-384 ECDSA sign, RustCrypto + dalek: 111.89 µs, 5.02× the fastest +111.89 µs +P-384 ECDSA sign, graviola: 80.22 µs, 3.60× the fastest +80.22 µs +P-384 ECDSA sign, OpenSSL: 102.69 µs, 4.60× the fastest +102.69 µs P-384 ECDSA verify -P-384 ECDSA verify, rind: 88.12 µs, 1.00× the fastest -88.12 µs -P-384 ECDSA verify, aws-lc-rs: 111.27 µs, 1.26× the fastest -111.27 µs -P-384 ECDSA verify, ring: 396.57 µs, 4.50× the fastest -396.57 µs -P-384 ECDSA verify, RustCrypto + dalek: 426.43 µs, 4.84× the fastest -426.43 µs -P-384 ECDSA verify, graviola: 151.78 µs, 1.72× the fastest -151.78 µs -P-384 ECDSA verify, OpenSSL: 238.33 µs, 2.70× the fastest -238.33 µs +P-384 ECDSA verify, rind: 84.01 µs, 1.00× the fastest +84.01 µs +P-384 ECDSA verify, aws-lc-rs: 110.79 µs, 1.32× the fastest +110.79 µs +P-384 ECDSA verify, ring: 397.21 µs, 4.73× the fastest +397.21 µs +P-384 ECDSA verify, RustCrypto + dalek: 422.13 µs, 5.02× the fastest +422.13 µs +P-384 ECDSA verify, graviola: 148.92 µs, 1.77× the fastest +148.92 µs +P-384 ECDSA verify, OpenSSL: 237.68 µs, 2.83× the fastest +237.68 µs P-521 ECDH -P-521 ECDH, rind: 130.92 µs, 1.00× the fastest -130.92 µs -P-521 ECDH, aws-lc-rs: 143.20 µs, 1.09× the fastest -143.20 µs -P-521 ECDH, RustCrypto + dalek: 397.10 µs, 3.03× the fastest -397.10 µs -P-521 ECDH, OpenSSL: 247.22 µs, 1.89× the fastest -247.22 µs +P-521 ECDH, rind: 129.82 µs, 1.00× the fastest +129.82 µs +P-521 ECDH, aws-lc-rs: 142.27 µs, 1.10× the fastest +142.27 µs +P-521 ECDH, RustCrypto + dalek: 396.28 µs, 3.05× the fastest +396.28 µs +P-521 ECDH, OpenSSL: 247.04 µs, 1.90× the fastest +247.04 µs P-521 ECDSA sign -P-521 ECDSA sign, rind: 36.32 µs, 1.00× the fastest -36.32 µs -P-521 ECDSA sign, aws-lc-rs: 84.33 µs, 2.32× the fastest -84.33 µs -P-521 ECDSA sign, RustCrypto + dalek: 79.73 µs, 2.20× the fastest -79.73 µs -P-521 ECDSA sign, OpenSSL: 132.13 µs, 3.64× the fastest -132.13 µs +P-521 ECDSA sign, rind: 36.25 µs, 1.00× the fastest +36.25 µs +P-521 ECDSA sign, aws-lc-rs: 84.10 µs, 2.32× the fastest +84.10 µs +P-521 ECDSA sign, RustCrypto + dalek: 80.09 µs, 2.21× the fastest +80.09 µs +P-521 ECDSA sign, OpenSSL: 132.31 µs, 3.65× the fastest +132.31 µs P-521 ECDSA verify -P-521 ECDSA verify, rind: 121.06 µs, 1.00× the fastest -121.06 µs -P-521 ECDSA verify, aws-lc-rs: 167.21 µs, 1.38× the fastest -167.21 µs -P-521 ECDSA verify, RustCrypto + dalek: 253.06 µs, 2.09× the fastest -253.06 µs -P-521 ECDSA verify, OpenSSL: 254.80 µs, 2.10× the fastest -254.80 µs +P-521 ECDSA verify, rind: 120.99 µs, 1.00× the fastest +120.99 µs +P-521 ECDSA verify, aws-lc-rs: 166.73 µs, 1.38× the fastest +166.73 µs +P-521 ECDSA verify, RustCrypto + dalek: 251.97 µs, 2.08× the fastest +251.97 µs +P-521 ECDSA verify, OpenSSL: 254.26 µs, 2.10× the fastest +254.26 µs diff --git a/benchmarks/kixtop.svg b/benchmarks/kixtop.svg index de08e3493..aa23f79b5 100644 --- a/benchmarks/kixtop.svg +++ b/benchmarks/kixtop.svg @@ -1,4 +1,4 @@ - + Times on kixtop, by operation and library fastest, or within 10% @@ -18,802 +18,860 @@ verified code kixtop: Apple M4 rind -aws-lc-rs -ring -RustCrypto -+ dalek -graviola -libcrux -OpenSSL +rind +(DIT held) +aws-lc-rs +ring +RustCrypto ++ dalek +graviola +libcrux +OpenSSL TLS 1.3 with rustls - + full handshake, X25519MLKEM768 -full handshake, X25519MLKEM768, rind: 177.98 µs, 1.00× the fastest -177.98 µs -full handshake, X25519MLKEM768, aws-lc-rs: 214.67 µs, 1.21× the fastest -214.67 µs -full handshake, X25519MLKEM768, graviola: 180.42 µs, 1.01× the fastest -180.42 µs -full handshake, X25519MLKEM768, OpenSSL: 459.07 µs, 2.58× the fastest -459.07 µs +full handshake, X25519MLKEM768, rind: 174.03 µs, 1.00× the fastest +174.03 µs +full handshake, X25519MLKEM768, aws-lc-rs: 212.26 µs, 1.22× the fastest +212.26 µs +full handshake, X25519MLKEM768, graviola: 179.37 µs, 1.03× the fastest +179.37 µs +full handshake, X25519MLKEM768, OpenSSL: 463.38 µs, 2.66× the fastest +463.38 µs full handshake, X25519 -full handshake, X25519, rind: 155.39 µs, 1.00× the fastest -155.39 µs -full handshake, X25519, aws-lc-rs: 184.86 µs, 1.19× the fastest -184.86 µs -full handshake, X25519, ring: 184.65 µs, 1.19× the fastest -184.65 µs -full handshake, X25519, graviola: 159.19 µs, 1.02× the fastest -159.19 µs -full handshake, X25519, OpenSSL: 374.65 µs, 2.41× the fastest -374.65 µs +full handshake, X25519, rind: 151.02 µs, 1.00× the fastest +151.02 µs +full handshake, X25519, aws-lc-rs: 183.41 µs, 1.21× the fastest +183.41 µs +full handshake, X25519, ring: 183.82 µs, 1.22× the fastest +183.82 µs +full handshake, X25519, graviola: 159.11 µs, 1.05× the fastest +159.11 µs +full handshake, X25519, OpenSSL: 374.68 µs, 2.48× the fastest +374.68 µs full handshake, P-256 -full handshake, P-256, rind: 176.20 µs, 1.00× the fastest -176.20 µs -full handshake, P-256, aws-lc-rs: 206.73 µs, 1.17× the fastest -206.73 µs -full handshake, P-256, ring: 201.44 µs, 1.14× the fastest -201.44 µs -full handshake, P-256, graviola: 191.72 µs, 1.09× the fastest -191.72 µs -full handshake, P-256, OpenSSL: 400.48 µs, 2.27× the fastest -400.48 µs +full handshake, P-256, rind: 171.99 µs, 1.00× the fastest +171.99 µs +full handshake, P-256, aws-lc-rs: 205.84 µs, 1.20× the fastest +205.84 µs +full handshake, P-256, ring: 202.42 µs, 1.18× the fastest +202.42 µs +full handshake, P-256, graviola: 189.73 µs, 1.10× the fastest +189.73 µs +full handshake, P-256, OpenSSL: 401.29 µs, 2.33× the fastest +401.29 µs full handshake, Ed25519 certificate -full handshake, Ed25519 certificate, rind: 127.23 µs, 1.03× the fastest -127.23 µs -full handshake, Ed25519 certificate, aws-lc-rs: 150.93 µs, 1.22× the fastest -150.93 µs -full handshake, Ed25519 certificate, ring: 155.04 µs, 1.25× the fastest -155.04 µs -full handshake, Ed25519 certificate, graviola: 124.12 µs, 1.00× the fastest -124.12 µs -full handshake, Ed25519 certificate, OpenSSL: 383.83 µs, 3.09× the fastest -383.83 µs +full handshake, Ed25519 certificate, rind: 128.51 µs, 1.04× the fastest +128.51 µs +full handshake, Ed25519 certificate, aws-lc-rs: 150.19 µs, 1.22× the fastest +150.19 µs +full handshake, Ed25519 certificate, ring: 154.50 µs, 1.25× the fastest +154.50 µs +full handshake, Ed25519 certificate, graviola: 123.59 µs, 1.00× the fastest +123.59 µs +full handshake, Ed25519 certificate, OpenSSL: 383.06 µs, 3.10× the fastest +383.06 µs full handshake, RSA-2048 certificate -full handshake, RSA-2048 certificate, rind: 371.35 µs, 1.00× the fastest -371.35 µs -full handshake, RSA-2048 certificate, aws-lc-rs: 406.71 µs, 1.10× the fastest -406.71 µs -full handshake, RSA-2048 certificate, ring: 446.94 µs, 1.20× the fastest -446.94 µs -full handshake, RSA-2048 certificate, graviola: 683.15 µs, 1.84× the fastest -683.15 µs -full handshake, RSA-2048 certificate, OpenSSL: 643.30 µs, 1.73× the fastest -643.30 µs +full handshake, RSA-2048 certificate, rind: 372.92 µs, 1.00× the fastest +372.92 µs +full handshake, RSA-2048 certificate, aws-lc-rs: 409.15 µs, 1.10× the fastest +409.15 µs +full handshake, RSA-2048 certificate, ring: 446.94 µs, 1.20× the fastest +446.94 µs +full handshake, RSA-2048 certificate, graviola: 674.07 µs, 1.81× the fastest +674.07 µs +full handshake, RSA-2048 certificate, OpenSSL: 644.46 µs, 1.73× the fastest +644.46 µs resumed handshake, X25519 -resumed handshake, X25519, rind: 66.29 µs, 1.07× the fastest -66.29 µs -resumed handshake, X25519, aws-lc-rs: 92.46 µs, 1.50× the fastest -92.46 µs -resumed handshake, X25519, ring: 88.29 µs, 1.43× the fastest -88.29 µs -resumed handshake, X25519, graviola: 61.75 µs, 1.00× the fastest -61.75 µs -resumed handshake, X25519, OpenSSL: 255.12 µs, 4.13× the fastest -255.12 µs +resumed handshake, X25519, rind: 65.88 µs, 1.07× the fastest +65.88 µs +resumed handshake, X25519, aws-lc-rs: 89.83 µs, 1.46× the fastest +89.83 µs +resumed handshake, X25519, ring: 87.17 µs, 1.41× the fastest +87.17 µs +resumed handshake, X25519, graviola: 61.63 µs, 1.00× the fastest +61.63 µs +resumed handshake, X25519, OpenSSL: 253.42 µs, 4.11× the fastest +253.42 µs 1 MB transfer, AES-128-GCM -1 MB transfer, AES-128-GCM, rind: 308.57 µs, 1.00× the fastest -308.57 µs -1 MB transfer, AES-128-GCM, aws-lc-rs: 310.78 µs, 1.01× the fastest -310.78 µs -1 MB transfer, AES-128-GCM, ring: 372.59 µs, 1.21× the fastest -372.59 µs -1 MB transfer, AES-128-GCM, graviola: 327.11 µs, 1.06× the fastest -327.11 µs -1 MB transfer, AES-128-GCM, OpenSSL: 338.35 µs, 1.10× the fastest -338.35 µs +1 MB transfer, AES-128-GCM, rind: 309.22 µs, 1.00× the fastest +309.22 µs +1 MB transfer, AES-128-GCM, aws-lc-rs: 313.18 µs, 1.01× the fastest +313.18 µs +1 MB transfer, AES-128-GCM, ring: 372.51 µs, 1.20× the fastest +372.51 µs +1 MB transfer, AES-128-GCM, graviola: 333.72 µs, 1.08× the fastest +333.72 µs +1 MB transfer, AES-128-GCM, OpenSSL: 340.26 µs, 1.10× the fastest +340.26 µs 1 MB transfer, AES-256-GCM -1 MB transfer, AES-256-GCM, rind: 343.96 µs, 1.01× the fastest -343.96 µs -1 MB transfer, AES-256-GCM, aws-lc-rs: 341.91 µs, 1.00× the fastest -341.91 µs -1 MB transfer, AES-256-GCM, ring: 380.26 µs, 1.11× the fastest -380.26 µs -1 MB transfer, AES-256-GCM, graviola: 397.41 µs, 1.16× the fastest -397.41 µs -1 MB transfer, AES-256-GCM, OpenSSL: 371.49 µs, 1.09× the fastest -371.49 µs +1 MB transfer, AES-256-GCM, rind: 348.83 µs, 1.01× the fastest +348.83 µs +1 MB transfer, AES-256-GCM, aws-lc-rs: 347.02 µs, 1.00× the fastest +347.02 µs +1 MB transfer, AES-256-GCM, ring: 386.93 µs, 1.11× the fastest +386.93 µs +1 MB transfer, AES-256-GCM, graviola: 400.75 µs, 1.15× the fastest +400.75 µs +1 MB transfer, AES-256-GCM, OpenSSL: 372.29 µs, 1.07× the fastest +372.29 µs 1 MB transfer, ChaCha20-Poly1305 -1 MB transfer, ChaCha20-Poly1305, rind: 1.12 ms, 1.01× the fastest -1.12 ms -1 MB transfer, ChaCha20-Poly1305, aws-lc-rs: 1.12 ms, 1.01× the fastest -1.12 ms -1 MB transfer, ChaCha20-Poly1305, ring: 1.11 ms, 1.01× the fastest -1.11 ms -1 MB transfer, ChaCha20-Poly1305, graviola: 1.79 ms, 1.62× the fastest -1.79 ms -1 MB transfer, ChaCha20-Poly1305, OpenSSL: 1.11 ms, 1.00× the fastest -1.11 ms +1 MB transfer, ChaCha20-Poly1305, rind: 1.11 ms, 1.01× the fastest +1.11 ms +1 MB transfer, ChaCha20-Poly1305, aws-lc-rs: 1.10 ms, 1.00× the fastest +1.10 ms +1 MB transfer, ChaCha20-Poly1305, ring: 1.10 ms, 1.00× the fastest +1.10 ms +1 MB transfer, ChaCha20-Poly1305, graviola: 1.73 ms, 1.58× the fastest +1.73 ms +1 MB transfer, ChaCha20-Poly1305, OpenSSL: 1.11 ms, 1.01× the fastest +1.11 ms AEADs - + AES-128-GCM seal, 32 B -AES-128-GCM seal, 32 B, rind: 57 ns, 2.40× the fastest +AES-128-GCM seal, 32 B, rind: 57 ns, 2.38× the fastest 57 ns -AES-128-GCM seal, 32 B, aws-lc-rs: 50 ns, 2.10× the fastest -50 ns -AES-128-GCM seal, 32 B, ring: 42 ns, 1.77× the fastest -42 ns -AES-128-GCM seal, 32 B, RustCrypto + dalek: 24 ns, 1.00× the fastest -24 ns -AES-128-GCM seal, 32 B, graviola: 80 ns, 3.37× the fastest -80 ns -AES-128-GCM seal, 32 B, libcrux: 53 ns, 2.23× the fastest -53 ns -AES-128-GCM seal, 32 B, OpenSSL: 69 ns, 2.91× the fastest -69 ns +AES-128-GCM seal, 32 B, rind (DIT held): 11 ns, 0.45× the fastest +11 ns +AES-128-GCM seal, 32 B, aws-lc-rs: 50 ns, 2.07× the fastest +50 ns +AES-128-GCM seal, 32 B, ring: 42 ns, 1.74× the fastest +42 ns +AES-128-GCM seal, 32 B, RustCrypto + dalek: 24 ns, 1.00× the fastest +24 ns +AES-128-GCM seal, 32 B, graviola: 79 ns, 3.30× the fastest +79 ns +AES-128-GCM seal, 32 B, libcrux: 52 ns, 2.17× the fastest +52 ns +AES-128-GCM seal, 32 B, OpenSSL: 67 ns, 2.79× the fastest +67 ns AES-128-GCM seal, 1350 B -AES-128-GCM seal, 1350 B, rind: 212 ns, 1.18× the fastest -212 ns -AES-128-GCM seal, 1350 B, aws-lc-rs: 180 ns, 1.00× the fastest -180 ns -AES-128-GCM seal, 1350 B, ring: 212 ns, 1.18× the fastest -212 ns -AES-128-GCM seal, 1350 B, RustCrypto + dalek: 213 ns, 1.18× the fastest -213 ns -AES-128-GCM seal, 1350 B, graviola: 215 ns, 1.20× the fastest -215 ns -AES-128-GCM seal, 1350 B, libcrux: 619 ns, 3.44× the fastest -619 ns -AES-128-GCM seal, 1350 B, OpenSSL: 197 ns, 1.09× the fastest -197 ns +AES-128-GCM seal, 1350 B, rind: 209 ns, 1.16× the fastest +209 ns +AES-128-GCM seal, 1350 B, rind (DIT held): 161 ns, 0.89× the fastest +161 ns +AES-128-GCM seal, 1350 B, aws-lc-rs: 181 ns, 1.00× the fastest +181 ns +AES-128-GCM seal, 1350 B, ring: 210 ns, 1.16× the fastest +210 ns +AES-128-GCM seal, 1350 B, RustCrypto + dalek: 212 ns, 1.17× the fastest +212 ns +AES-128-GCM seal, 1350 B, graviola: 216 ns, 1.19× the fastest +216 ns +AES-128-GCM seal, 1350 B, libcrux: 600 ns, 3.31× the fastest +600 ns +AES-128-GCM seal, 1350 B, OpenSSL: 196 ns, 1.08× the fastest +196 ns AES-128-GCM seal, 16 KB -AES-128-GCM seal, 16 KB, rind: 1.49 µs, 1.03× the fastest -1.49 µs -AES-128-GCM seal, 16 KB, aws-lc-rs: 1.45 µs, 1.00× the fastest -1.45 µs -AES-128-GCM seal, 16 KB, ring: 1.97 µs, 1.35× the fastest -1.97 µs -AES-128-GCM seal, 16 KB, RustCrypto + dalek: 2.36 µs, 1.62× the fastest -2.36 µs -AES-128-GCM seal, 16 KB, graviola: 1.60 µs, 1.10× the fastest -1.60 µs -AES-128-GCM seal, 16 KB, libcrux: 7.15 µs, 4.92× the fastest -7.15 µs -AES-128-GCM seal, 16 KB, OpenSSL: 1.52 µs, 1.04× the fastest -1.52 µs +AES-128-GCM seal, 16 KB, rind: 1.48 µs, 1.03× the fastest +1.48 µs +AES-128-GCM seal, 16 KB, rind (DIT held): 1.43 µs, 0.99× the fastest +1.43 µs +AES-128-GCM seal, 16 KB, aws-lc-rs: 1.44 µs, 1.00× the fastest +1.44 µs +AES-128-GCM seal, 16 KB, ring: 1.94 µs, 1.34× the fastest +1.94 µs +AES-128-GCM seal, 16 KB, RustCrypto + dalek: 2.26 µs, 1.57× the fastest +2.26 µs +AES-128-GCM seal, 16 KB, graviola: 1.60 µs, 1.11× the fastest +1.60 µs +AES-128-GCM seal, 16 KB, libcrux: 6.78 µs, 4.70× the fastest +6.78 µs +AES-128-GCM seal, 16 KB, OpenSSL: 1.51 µs, 1.05× the fastest +1.51 µs AES-128-GCM open, 32 B -AES-128-GCM open, 32 B, rind: 47 ns, 1.71× the fastest +AES-128-GCM open, 32 B, rind: 47 ns, 1.69× the fastest 47 ns -AES-128-GCM open, 32 B, aws-lc-rs: 47 ns, 1.70× the fastest -47 ns -AES-128-GCM open, 32 B, ring: 39 ns, 1.42× the fastest -39 ns -AES-128-GCM open, 32 B, RustCrypto + dalek: 28 ns, 1.00× the fastest -28 ns -AES-128-GCM open, 32 B, graviola: 85 ns, 3.06× the fastest -85 ns -AES-128-GCM open, 32 B, libcrux: 64 ns, 2.30× the fastest -64 ns -AES-128-GCM open, 32 B, OpenSSL: 65 ns, 2.36× the fastest -65 ns +AES-128-GCM open, 32 B, rind (DIT held): 13 ns, 0.46× the fastest +13 ns +AES-128-GCM open, 32 B, aws-lc-rs: 47 ns, 1.71× the fastest +47 ns +AES-128-GCM open, 32 B, ring: 39 ns, 1.42× the fastest +39 ns +AES-128-GCM open, 32 B, RustCrypto + dalek: 28 ns, 1.00× the fastest +28 ns +AES-128-GCM open, 32 B, graviola: 84 ns, 3.04× the fastest +84 ns +AES-128-GCM open, 32 B, libcrux: 61 ns, 2.23× the fastest +61 ns +AES-128-GCM open, 32 B, OpenSSL: 66 ns, 2.38× the fastest +66 ns AES-128-GCM open, 1350 B -AES-128-GCM open, 1350 B, rind: 214 ns, 1.11× the fastest -214 ns -AES-128-GCM open, 1350 B, aws-lc-rs: 193 ns, 1.00× the fastest -193 ns -AES-128-GCM open, 1350 B, ring: 247 ns, 1.28× the fastest -247 ns -AES-128-GCM open, 1350 B, RustCrypto + dalek: 237 ns, 1.23× the fastest -237 ns -AES-128-GCM open, 1350 B, graviola: 226 ns, 1.17× the fastest -226 ns -AES-128-GCM open, 1350 B, libcrux: 647 ns, 3.35× the fastest -647 ns -AES-128-GCM open, 1350 B, OpenSSL: 199 ns, 1.03× the fastest -199 ns +AES-128-GCM open, 1350 B, rind: 210 ns, 1.10× the fastest +210 ns +AES-128-GCM open, 1350 B, rind (DIT held): 178 ns, 0.93× the fastest +178 ns +AES-128-GCM open, 1350 B, aws-lc-rs: 191 ns, 1.00× the fastest +191 ns +AES-128-GCM open, 1350 B, ring: 243 ns, 1.28× the fastest +243 ns +AES-128-GCM open, 1350 B, RustCrypto + dalek: 232 ns, 1.22× the fastest +232 ns +AES-128-GCM open, 1350 B, graviola: 225 ns, 1.18× the fastest +225 ns +AES-128-GCM open, 1350 B, libcrux: 618 ns, 3.24× the fastest +618 ns +AES-128-GCM open, 1350 B, OpenSSL: 199 ns, 1.05× the fastest +199 ns AES-128-GCM open, 16 KB -AES-128-GCM open, 16 KB, rind: 1.61 µs, 1.02× the fastest -1.61 µs -AES-128-GCM open, 16 KB, aws-lc-rs: 1.57 µs, 1.00× the fastest -1.57 µs -AES-128-GCM open, 16 KB, ring: 2.18 µs, 1.39× the fastest -2.18 µs -AES-128-GCM open, 16 KB, RustCrypto + dalek: 2.46 µs, 1.57× the fastest -2.46 µs -AES-128-GCM open, 16 KB, graviola: 1.71 µs, 1.09× the fastest -1.71 µs -AES-128-GCM open, 16 KB, libcrux: 6.97 µs, 4.44× the fastest -6.97 µs -AES-128-GCM open, 16 KB, OpenSSL: 1.66 µs, 1.06× the fastest -1.66 µs +AES-128-GCM open, 16 KB, rind: 1.58 µs, 1.00× the fastest +1.58 µs +AES-128-GCM open, 16 KB, rind (DIT held): 1.56 µs, 0.99× the fastest +1.56 µs +AES-128-GCM open, 16 KB, aws-lc-rs: 1.58 µs, 1.00× the fastest +1.58 µs +AES-128-GCM open, 16 KB, ring: 2.16 µs, 1.37× the fastest +2.16 µs +AES-128-GCM open, 16 KB, RustCrypto + dalek: 2.43 µs, 1.54× the fastest +2.43 µs +AES-128-GCM open, 16 KB, graviola: 1.71 µs, 1.09× the fastest +1.71 µs +AES-128-GCM open, 16 KB, libcrux: 6.82 µs, 4.32× the fastest +6.82 µs +AES-128-GCM open, 16 KB, OpenSSL: 1.65 µs, 1.05× the fastest +1.65 µs AES-256-GCM seal, 32 B -AES-256-GCM seal, 32 B, rind: 61 ns, 2.44× the fastest +AES-256-GCM seal, 32 B, rind: 61 ns, 2.46× the fastest 61 ns -AES-256-GCM seal, 32 B, aws-lc-rs: 54 ns, 2.18× the fastest -54 ns -AES-256-GCM seal, 32 B, ring: 45 ns, 1.82× the fastest -45 ns -AES-256-GCM seal, 32 B, RustCrypto + dalek: 25 ns, 1.00× the fastest -25 ns -AES-256-GCM seal, 32 B, graviola: 79 ns, 3.18× the fastest -79 ns -AES-256-GCM seal, 32 B, libcrux: 53 ns, 2.15× the fastest -53 ns -AES-256-GCM seal, 32 B, OpenSSL: 67 ns, 2.72× the fastest -67 ns +AES-256-GCM seal, 32 B, rind (DIT held): 12 ns, 0.48× the fastest +12 ns +AES-256-GCM seal, 32 B, aws-lc-rs: 53 ns, 2.14× the fastest +53 ns +AES-256-GCM seal, 32 B, ring: 45 ns, 1.80× the fastest +45 ns +AES-256-GCM seal, 32 B, RustCrypto + dalek: 25 ns, 1.00× the fastest +25 ns +AES-256-GCM seal, 32 B, graviola: 79 ns, 3.17× the fastest +79 ns +AES-256-GCM seal, 32 B, libcrux: 52 ns, 2.08× the fastest +52 ns +AES-256-GCM seal, 32 B, OpenSSL: 67 ns, 2.69× the fastest +67 ns AES-256-GCM seal, 1350 B -AES-256-GCM seal, 1350 B, rind: 237 ns, 1.16× the fastest -237 ns -AES-256-GCM seal, 1350 B, aws-lc-rs: 205 ns, 1.00× the fastest -205 ns -AES-256-GCM seal, 1350 B, ring: 220 ns, 1.07× the fastest -220 ns -AES-256-GCM seal, 1350 B, RustCrypto + dalek: 246 ns, 1.20× the fastest -246 ns -AES-256-GCM seal, 1350 B, graviola: 262 ns, 1.28× the fastest -262 ns -AES-256-GCM seal, 1350 B, libcrux: 650 ns, 3.18× the fastest -650 ns -AES-256-GCM seal, 1350 B, OpenSSL: 222 ns, 1.08× the fastest -222 ns +AES-256-GCM seal, 1350 B, rind: 232 ns, 1.16× the fastest +232 ns +AES-256-GCM seal, 1350 B, rind (DIT held): 188 ns, 0.94× the fastest +188 ns +AES-256-GCM seal, 1350 B, aws-lc-rs: 201 ns, 1.00× the fastest +201 ns +AES-256-GCM seal, 1350 B, ring: 219 ns, 1.09× the fastest +219 ns +AES-256-GCM seal, 1350 B, RustCrypto + dalek: 239 ns, 1.19× the fastest +239 ns +AES-256-GCM seal, 1350 B, graviola: 258 ns, 1.28× the fastest +258 ns +AES-256-GCM seal, 1350 B, libcrux: 630 ns, 3.13× the fastest +630 ns +AES-256-GCM seal, 1350 B, OpenSSL: 220 ns, 1.10× the fastest +220 ns AES-256-GCM seal, 16 KB -AES-256-GCM seal, 16 KB, rind: 1.75 µs, 1.02× the fastest -1.75 µs -AES-256-GCM seal, 16 KB, aws-lc-rs: 1.72 µs, 1.00× the fastest -1.72 µs -AES-256-GCM seal, 16 KB, ring: 2.04 µs, 1.19× the fastest -2.04 µs -AES-256-GCM seal, 16 KB, RustCrypto + dalek: 2.72 µs, 1.58× the fastest -2.72 µs -AES-256-GCM seal, 16 KB, graviola: 2.16 µs, 1.26× the fastest -2.16 µs -AES-256-GCM seal, 16 KB, libcrux: 7.20 µs, 4.19× the fastest -7.20 µs -AES-256-GCM seal, 16 KB, OpenSSL: 1.79 µs, 1.04× the fastest -1.79 µs +AES-256-GCM seal, 16 KB, rind: 1.73 µs, 1.02× the fastest +1.73 µs +AES-256-GCM seal, 16 KB, rind (DIT held): 1.69 µs, 0.99× the fastest +1.69 µs +AES-256-GCM seal, 16 KB, aws-lc-rs: 1.70 µs, 1.00× the fastest +1.70 µs +AES-256-GCM seal, 16 KB, ring: 2.03 µs, 1.20× the fastest +2.03 µs +AES-256-GCM seal, 16 KB, RustCrypto + dalek: 2.63 µs, 1.55× the fastest +2.63 µs +AES-256-GCM seal, 16 KB, graviola: 2.13 µs, 1.26× the fastest +2.13 µs +AES-256-GCM seal, 16 KB, libcrux: 7.08 µs, 4.17× the fastest +7.08 µs +AES-256-GCM seal, 16 KB, OpenSSL: 1.77 µs, 1.04× the fastest +1.77 µs AES-256-GCM open, 32 B -AES-256-GCM open, 32 B, rind: 49 ns, 1.24× the fastest -49 ns -AES-256-GCM open, 32 B, aws-lc-rs: 49 ns, 1.24× the fastest -49 ns -AES-256-GCM open, 32 B, ring: 40 ns, 1.00× the fastest -40 ns -AES-256-GCM open, 32 B, RustCrypto + dalek: 41 ns, 1.04× the fastest -41 ns -AES-256-GCM open, 32 B, graviola: 85 ns, 2.15× the fastest -85 ns -AES-256-GCM open, 32 B, libcrux: 67 ns, 1.69× the fastest -67 ns -AES-256-GCM open, 32 B, OpenSSL: 68 ns, 1.71× the fastest -68 ns +AES-256-GCM open, 32 B, rind: 48 ns, 1.22× the fastest +48 ns +AES-256-GCM open, 32 B, rind (DIT held): 13 ns, 0.33× the fastest +13 ns +AES-256-GCM open, 32 B, aws-lc-rs: 49 ns, 1.23× the fastest +49 ns +AES-256-GCM open, 32 B, ring: 39 ns, 1.00× the fastest +39 ns +AES-256-GCM open, 32 B, RustCrypto + dalek: 41 ns, 1.04× the fastest +41 ns +AES-256-GCM open, 32 B, graviola: 84 ns, 2.14× the fastest +84 ns +AES-256-GCM open, 32 B, libcrux: 66 ns, 1.67× the fastest +66 ns +AES-256-GCM open, 32 B, OpenSSL: 68 ns, 1.72× the fastest +68 ns AES-256-GCM open, 1350 B -AES-256-GCM open, 1350 B, rind: 233 ns, 1.07× the fastest -233 ns -AES-256-GCM open, 1350 B, aws-lc-rs: 218 ns, 1.00× the fastest -218 ns -AES-256-GCM open, 1350 B, ring: 252 ns, 1.15× the fastest -252 ns -AES-256-GCM open, 1350 B, RustCrypto + dalek: 267 ns, 1.22× the fastest -267 ns -AES-256-GCM open, 1350 B, graviola: 263 ns, 1.20× the fastest -263 ns -AES-256-GCM open, 1350 B, libcrux: 674 ns, 3.09× the fastest -674 ns -AES-256-GCM open, 1350 B, OpenSSL: 225 ns, 1.03× the fastest -225 ns +AES-256-GCM open, 1350 B, rind: 231 ns, 1.08× the fastest +231 ns +AES-256-GCM open, 1350 B, rind (DIT held): 197 ns, 0.92× the fastest +197 ns +AES-256-GCM open, 1350 B, aws-lc-rs: 213 ns, 1.00× the fastest +213 ns +AES-256-GCM open, 1350 B, ring: 247 ns, 1.16× the fastest +247 ns +AES-256-GCM open, 1350 B, RustCrypto + dalek: 278 ns, 1.31× the fastest +278 ns +AES-256-GCM open, 1350 B, graviola: 263 ns, 1.24× the fastest +263 ns +AES-256-GCM open, 1350 B, libcrux: 663 ns, 3.12× the fastest +663 ns +AES-256-GCM open, 1350 B, OpenSSL: 224 ns, 1.05× the fastest +224 ns AES-256-GCM open, 16 KB -AES-256-GCM open, 16 KB, rind: 1.86 µs, 1.01× the fastest -1.86 µs -AES-256-GCM open, 16 KB, aws-lc-rs: 1.83 µs, 1.00× the fastest -1.83 µs -AES-256-GCM open, 16 KB, ring: 2.25 µs, 1.23× the fastest -2.25 µs -AES-256-GCM open, 16 KB, RustCrypto + dalek: 2.89 µs, 1.58× the fastest -2.89 µs -AES-256-GCM open, 16 KB, graviola: 2.18 µs, 1.19× the fastest -2.18 µs -AES-256-GCM open, 16 KB, libcrux: 7.35 µs, 4.01× the fastest -7.35 µs -AES-256-GCM open, 16 KB, OpenSSL: 1.94 µs, 1.06× the fastest -1.94 µs +AES-256-GCM open, 16 KB, rind: 1.84 µs, 1.02× the fastest +1.84 µs +AES-256-GCM open, 16 KB, rind (DIT held): 1.81 µs, 1.00× the fastest +1.81 µs +AES-256-GCM open, 16 KB, aws-lc-rs: 1.82 µs, 1.00× the fastest +1.82 µs +AES-256-GCM open, 16 KB, ring: 2.23 µs, 1.23× the fastest +2.23 µs +AES-256-GCM open, 16 KB, RustCrypto + dalek: 2.77 µs, 1.53× the fastest +2.77 µs +AES-256-GCM open, 16 KB, graviola: 2.19 µs, 1.21× the fastest +2.19 µs +AES-256-GCM open, 16 KB, libcrux: 7.06 µs, 3.89× the fastest +7.06 µs +AES-256-GCM open, 16 KB, OpenSSL: 1.93 µs, 1.07× the fastest +1.93 µs ChaCha20-Poly1305 seal, 32 B -ChaCha20-Poly1305 seal, 32 B, rind: 185 ns, 1.25× the fastest -185 ns -ChaCha20-Poly1305 seal, 32 B, aws-lc-rs: 163 ns, 1.10× the fastest -163 ns -ChaCha20-Poly1305 seal, 32 B, ring: 148 ns, 1.00× the fastest -148 ns -ChaCha20-Poly1305 seal, 32 B, RustCrypto + dalek: 344 ns, 2.33× the fastest -344 ns -ChaCha20-Poly1305 seal, 32 B, graviola: 196 ns, 1.32× the fastest -196 ns -ChaCha20-Poly1305 seal, 32 B, libcrux: 171 ns, 1.16× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step -171 ns ✓ -ChaCha20-Poly1305 seal, 32 B, OpenSSL: 215 ns, 1.46× the fastest -215 ns +ChaCha20-Poly1305 seal, 32 B, rind: 179 ns, 1.23× the fastest +179 ns +ChaCha20-Poly1305 seal, 32 B, rind (DIT held): 145 ns, 1.00× the fastest +145 ns +ChaCha20-Poly1305 seal, 32 B, aws-lc-rs: 157 ns, 1.08× the fastest +157 ns +ChaCha20-Poly1305 seal, 32 B, ring: 145 ns, 1.00× the fastest +145 ns +ChaCha20-Poly1305 seal, 32 B, RustCrypto + dalek: 340 ns, 2.35× the fastest +340 ns +ChaCha20-Poly1305 seal, 32 B, graviola: 193 ns, 1.33× the fastest +193 ns +ChaCha20-Poly1305 seal, 32 B, libcrux: 170 ns, 1.17× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step +170 ns ✓ +ChaCha20-Poly1305 seal, 32 B, OpenSSL: 216 ns, 1.49× the fastest +216 ns ChaCha20-Poly1305 seal, 1350 B -ChaCha20-Poly1305 seal, 1350 B, rind: 792 ns, 1.05× the fastest -792 ns -ChaCha20-Poly1305 seal, 1350 B, aws-lc-rs: 771 ns, 1.02× the fastest -771 ns -ChaCha20-Poly1305 seal, 1350 B, ring: 755 ns, 1.00× the fastest -755 ns -ChaCha20-Poly1305 seal, 1350 B, RustCrypto + dalek: 1.78 µs, 2.36× the fastest -1.78 µs -ChaCha20-Poly1305 seal, 1350 B, graviola: 1.25 µs, 1.65× the fastest -1.25 µs -ChaCha20-Poly1305 seal, 1350 B, libcrux: 1.98 µs, 2.62× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step -1.98 µs ✓ -ChaCha20-Poly1305 seal, 1350 B, OpenSSL: 842 ns, 1.12× the fastest -842 ns +ChaCha20-Poly1305 seal, 1350 B, rind: 773 ns, 1.04× the fastest +773 ns +ChaCha20-Poly1305 seal, 1350 B, rind (DIT held): 741 ns, 1.00× the fastest +741 ns +ChaCha20-Poly1305 seal, 1350 B, aws-lc-rs: 759 ns, 1.02× the fastest +759 ns +ChaCha20-Poly1305 seal, 1350 B, ring: 741 ns, 1.00× the fastest +741 ns +ChaCha20-Poly1305 seal, 1350 B, RustCrypto + dalek: 1.75 µs, 2.37× the fastest +1.75 µs +ChaCha20-Poly1305 seal, 1350 B, graviola: 1.21 µs, 1.63× the fastest +1.21 µs +ChaCha20-Poly1305 seal, 1350 B, libcrux: 1.94 µs, 2.62× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step +1.94 µs ✓ +ChaCha20-Poly1305 seal, 1350 B, OpenSSL: 826 ns, 1.12× the fastest +826 ns ChaCha20-Poly1305 seal, 16 KB -ChaCha20-Poly1305 seal, 16 KB, rind: 7.70 µs, 1.03× the fastest -7.70 µs -ChaCha20-Poly1305 seal, 16 KB, aws-lc-rs: 7.65 µs, 1.03× the fastest -7.65 µs -ChaCha20-Poly1305 seal, 16 KB, ring: 7.67 µs, 1.03× the fastest -7.67 µs -ChaCha20-Poly1305 seal, 16 KB, RustCrypto + dalek: 15.21 µs, 2.04× the fastest -15.21 µs -ChaCha20-Poly1305 seal, 16 KB, graviola: 12.85 µs, 1.72× the fastest -12.85 µs -ChaCha20-Poly1305 seal, 16 KB, libcrux: 22.07 µs, 2.96× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step -22.07 µs ✓ -ChaCha20-Poly1305 seal, 16 KB, OpenSSL: 7.45 µs, 1.00× the fastest -7.45 µs +ChaCha20-Poly1305 seal, 16 KB, rind: 7.60 µs, 1.03× the fastest +7.60 µs +ChaCha20-Poly1305 seal, 16 KB, rind (DIT held): 7.50 µs, 1.02× the fastest +7.50 µs +ChaCha20-Poly1305 seal, 16 KB, aws-lc-rs: 7.50 µs, 1.02× the fastest +7.50 µs +ChaCha20-Poly1305 seal, 16 KB, ring: 7.57 µs, 1.03× the fastest +7.57 µs +ChaCha20-Poly1305 seal, 16 KB, RustCrypto + dalek: 14.97 µs, 2.03× the fastest +14.97 µs +ChaCha20-Poly1305 seal, 16 KB, graviola: 12.56 µs, 1.71× the fastest +12.56 µs +ChaCha20-Poly1305 seal, 16 KB, libcrux: 22.12 µs, 3.00× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step +22.12 µs ✓ +ChaCha20-Poly1305 seal, 16 KB, OpenSSL: 7.37 µs, 1.00× the fastest +7.37 µs XChaCha20-Poly1305 seal, 32 B -XChaCha20-Poly1305 seal, 32 B, rind: 1.19 µs, 1.26× the fastest -1.19 µs -XChaCha20-Poly1305 seal, 32 B, aws-lc-rs: 943 ns, 1.00× the fastest -943 ns -XChaCha20-Poly1305 seal, 32 B, RustCrypto + dalek: 1.53 µs, 1.62× the fastest -1.53 µs -XChaCha20-Poly1305 seal, 32 B, graviola: 1.11 µs, 1.17× the fastest -1.11 µs -XChaCha20-Poly1305 seal, 32 B, libcrux: 1.11 µs, 1.18× the fastest -1.11 µs +XChaCha20-Poly1305 seal, 32 B, rind: 897 ns, 1.03× the fastest +897 ns +XChaCha20-Poly1305 seal, 32 B, aws-lc-rs: 871 ns, 1.00× the fastest +871 ns +XChaCha20-Poly1305 seal, 32 B, RustCrypto + dalek: 1.06 µs, 1.21× the fastest +1.06 µs +XChaCha20-Poly1305 seal, 32 B, graviola: 905 ns, 1.04× the fastest +905 ns +XChaCha20-Poly1305 seal, 32 B, libcrux: 900 ns, 1.03× the fastest +900 ns XChaCha20-Poly1305 seal, 1350 B -XChaCha20-Poly1305 seal, 1350 B, rind: 2.02 µs, 1.07× the fastest -2.02 µs -XChaCha20-Poly1305 seal, 1350 B, aws-lc-rs: 1.89 µs, 1.00× the fastest -1.89 µs -XChaCha20-Poly1305 seal, 1350 B, RustCrypto + dalek: 3.19 µs, 1.69× the fastest -3.19 µs -XChaCha20-Poly1305 seal, 1350 B, graviola: 2.85 µs, 1.51× the fastest -2.85 µs -XChaCha20-Poly1305 seal, 1350 B, libcrux: 3.80 µs, 2.02× the fastest -3.80 µs +XChaCha20-Poly1305 seal, 1350 B, rind: 1.47 µs, 1.02× the fastest +1.47 µs +XChaCha20-Poly1305 seal, 1350 B, aws-lc-rs: 1.45 µs, 1.00× the fastest +1.45 µs +XChaCha20-Poly1305 seal, 1350 B, RustCrypto + dalek: 2.44 µs, 1.69× the fastest +2.44 µs +XChaCha20-Poly1305 seal, 1350 B, graviola: 1.94 µs, 1.34× the fastest +1.94 µs +XChaCha20-Poly1305 seal, 1350 B, libcrux: 2.71 µs, 1.87× the fastest +2.71 µs XChaCha20-Poly1305 seal, 16 KB -XChaCha20-Poly1305 seal, 16 KB, rind: 11.36 µs, 1.00× the fastest -11.36 µs -XChaCha20-Poly1305 seal, 16 KB, aws-lc-rs: 11.43 µs, 1.01× the fastest -11.43 µs -XChaCha20-Poly1305 seal, 16 KB, RustCrypto + dalek: 22.76 µs, 2.00× the fastest -22.76 µs -XChaCha20-Poly1305 seal, 16 KB, graviola: 19.24 µs, 1.69× the fastest -19.24 µs -XChaCha20-Poly1305 seal, 16 KB, libcrux: 34.20 µs, 3.01× the fastest -34.20 µs +XChaCha20-Poly1305 seal, 16 KB, rind: 8.23 µs, 1.00× the fastest +8.23 µs +XChaCha20-Poly1305 seal, 16 KB, aws-lc-rs: 8.31 µs, 1.01× the fastest +8.31 µs +XChaCha20-Poly1305 seal, 16 KB, RustCrypto + dalek: 15.59 µs, 1.89× the fastest +15.59 µs +XChaCha20-Poly1305 seal, 16 KB, graviola: 13.22 µs, 1.61× the fastest +13.22 µs +XChaCha20-Poly1305 seal, 16 KB, libcrux: 22.43 µs, 2.73× the fastest +22.43 µs QUIC header protection - + AES-128 header protection -AES-128 header protection, rind: 35 ns, 12.24× the fastest -35 ns -AES-128 header protection, aws-lc-rs: 3 ns, 1.00× the fastest +AES-128 header protection, rind: 34 ns, 12.19× the fastest +34 ns +AES-128 header protection, rind (DIT held): 3 ns, 1.00× the fastest 3 ns -AES-128 header protection, ring: 3 ns, 1.15× the fastest +AES-128 header protection, aws-lc-rs: 3 ns, 1.00× the fastest 3 ns +AES-128 header protection, ring: 3 ns, 1.12× the fastest +3 ns AES-256 header protection -AES-256 header protection, rind: 38 ns, 12.62× the fastest +AES-256 header protection, rind: 38 ns, 12.76× the fastest 38 ns -AES-256 header protection, aws-lc-rs: 3 ns, 1.00× the fastest +AES-256 header protection, rind (DIT held): 3 ns, 0.97× the fastest 3 ns -AES-256 header protection, ring: 4 ns, 1.31× the fastest -4 ns +AES-256 header protection, aws-lc-rs: 3 ns, 1.00× the fastest +3 ns +AES-256 header protection, ring: 4 ns, 1.29× the fastest +4 ns ChaCha20 header protection -ChaCha20 header protection, rind: 89 ns, 1.29× the fastest; verified: rind's Lean proof, through Aeneas and a hand model of the function-pointer dispatch Aeneas cannot translate, which assumes each key's mask is its own cipher's, the only one rind builds, of its header-protection API's ChaCha20 against RFC 9001 and RFC 8439, HACL*'s rounds included -89 ns ✓ -ChaCha20 header protection, aws-lc-rs: 73 ns, 1.07× the fastest -73 ns -ChaCha20 header protection, ring: 68 ns, 1.00× the fastest -68 ns +ChaCha20 header protection, rind: 88 ns, 1.30× the fastest; verified: rind's Lean proof, through Aeneas and a hand model of the function-pointer dispatch Aeneas cannot translate, which assumes each key's mask is its own cipher's, the only one rind builds, of its header-protection API's ChaCha20 against RFC 9001 and RFC 8439, HACL*'s rounds included +88 ns ✓ +ChaCha20 header protection, rind (DIT held): 58 ns, 0.86× the fastest; verified: rind's Lean proof, through Aeneas and a hand model of the function-pointer dispatch Aeneas cannot translate, which assumes each key's mask is its own cipher's, the only one rind builds, of its header-protection API's ChaCha20 against RFC 9001 and RFC 8439, HACL*'s rounds included +58 ns ✓ +ChaCha20 header protection, aws-lc-rs: 72 ns, 1.08× the fastest +72 ns +ChaCha20 header protection, ring: 67 ns, 1.00× the fastest +67 ns Key agreement - + X25519 -X25519, rind: 16.71 µs, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and a hand model of the function-pointer dispatch Aeneas cannot translate, which assumes each key's dispatch table holds its own curve's functions, the only table rind builds, of its agreement API's X25519 down to s2n-bignum's routines, composed with s2n-bignum's HOL Light proofs of curve25519_x25519_alt, curve25519_x25519base_alt, and bignum_eq, of s2n-bignum's own object code, which rind transliterates -16.71 µs ✓ -X25519, aws-lc-rs: 17.85 µs, 1.07× the fastest -17.85 µs -X25519, ring: 24.48 µs, 1.46× the fastest -24.48 µs -X25519, RustCrypto + dalek: 29.71 µs, 1.78× the fastest -29.71 µs -X25519, graviola: 17.74 µs, 1.06× the fastest -17.74 µs -X25519, libcrux: 37.77 µs, 2.26× the fastest; verified: HACL*'s F* proof of Hacl.Curve25519_51's secret_to_public and ecdh, compiled to Rust by an unverified step -37.77 µs ✓ -X25519, OpenSSL: 35.77 µs, 2.14× the fastest -35.77 µs +X25519, rind: 16.53 µs, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and a hand model of the function-pointer dispatch Aeneas cannot translate, which assumes each key's dispatch table holds its own curve's functions, the only table rind builds, of its agreement API's X25519 down to s2n-bignum's routines, composed with s2n-bignum's HOL Light proofs of curve25519_x25519_alt, curve25519_x25519base_alt, and bignum_eq, of s2n-bignum's own object code, which rind transliterates +16.53 µs ✓ +X25519, aws-lc-rs: 18.12 µs, 1.10× the fastest +18.12 µs +X25519, ring: 24.91 µs, 1.51× the fastest +24.91 µs +X25519, RustCrypto + dalek: 29.73 µs, 1.80× the fastest +29.73 µs +X25519, graviola: 16.57 µs, 1.00× the fastest +16.57 µs +X25519, libcrux: 37.30 µs, 2.26× the fastest; verified: HACL*'s F* proof of Hacl.Curve25519_51's secret_to_public and ecdh, compiled to Rust by an unverified step +37.30 µs ✓ +X25519, OpenSSL: 36.21 µs, 2.19× the fastest +36.21 µs P-256 ECDH -P-256 ECDH, rind: 26.27 µs, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch and of key generation's draws through a dyn RandomSource, which Aeneas cannot translate, of its agreement API's P-256 key generation, public key, and agreement down to s2n-bignum's routines, composed with s2n-bignum's HOL Light proofs of p256_scalarmulbase_alt, p256_scalarmul_alt, bignum_tomont_p256, bignum_demont_p256, bignum_add_p256, bignum_montmul_p256, bignum_montsqr_p256, bignum_mod_n256_4, and bignum_eq, of s2n-bignum's own object code, which rind transliterates, with rind's generator table proven to hold the multiples of G that s2n-bignum's proof assumes -26.27 µs ✓ -P-256 ECDH, aws-lc-rs: 28.51 µs, 1.09× the fastest -28.51 µs -P-256 ECDH, ring: 32.31 µs, 1.23× the fastest -32.31 µs -P-256 ECDH, RustCrypto + dalek: 180.62 µs, 6.88× the fastest -180.62 µs -P-256 ECDH, graviola: 31.56 µs, 1.20× the fastest -31.56 µs -P-256 ECDH, libcrux: 183.72 µs, 6.99× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step -183.72 µs ✓ -P-256 ECDH, OpenSSL: 49.96 µs, 1.90× the fastest -49.96 µs +P-256 ECDH, rind: 26.44 µs, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch and of key generation's draws through a dyn RandomSource, which Aeneas cannot translate, of its agreement API's P-256 key generation, public key, and agreement down to s2n-bignum's routines, composed with s2n-bignum's HOL Light proofs of p256_scalarmulbase_alt, p256_scalarmul_alt, bignum_tomont_p256, bignum_demont_p256, bignum_add_p256, bignum_montmul_p256, bignum_montsqr_p256, bignum_mod_n256_4, and bignum_eq, of s2n-bignum's own object code, which rind transliterates, with rind's generator table proven to hold the multiples of G that s2n-bignum's proof assumes +26.44 µs ✓ +P-256 ECDH, aws-lc-rs: 28.80 µs, 1.09× the fastest +28.80 µs +P-256 ECDH, ring: 32.16 µs, 1.22× the fastest +32.16 µs +P-256 ECDH, RustCrypto + dalek: 178.43 µs, 6.75× the fastest +178.43 µs +P-256 ECDH, graviola: 31.15 µs, 1.18× the fastest +31.15 µs +P-256 ECDH, libcrux: 182.72 µs, 6.91× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step +182.72 µs ✓ +P-256 ECDH, OpenSSL: 50.38 µs, 1.91× the fastest +50.38 µs Signatures - + Ed25519 sign -Ed25519 sign, rind: 3.95 µs, 1.00× the fastest -3.95 µs -Ed25519 sign, aws-lc-rs: 4.06 µs, 1.03× the fastest -4.06 µs -Ed25519 sign, ring: 7.07 µs, 1.79× the fastest -7.07 µs -Ed25519 sign, RustCrypto + dalek: 8.66 µs, 2.19× the fastest -8.66 µs -Ed25519 sign, graviola: 4.17 µs, 1.06× the fastest -4.17 µs -Ed25519 sign, libcrux: 22.12 µs, 5.60× the fastest; verified: HACL*'s F* proof of Hacl.Ed25519's sign and verify, compiled to Rust by an unverified step -22.12 µs ✓ -Ed25519 sign, OpenSSL: 16.42 µs, 4.16× the fastest -16.42 µs +Ed25519 sign, rind: 3.93 µs, 1.00× the fastest +3.93 µs +Ed25519 sign, aws-lc-rs: 4.07 µs, 1.04× the fastest +4.07 µs +Ed25519 sign, ring: 7.03 µs, 1.79× the fastest +7.03 µs +Ed25519 sign, RustCrypto + dalek: 8.65 µs, 2.20× the fastest +8.65 µs +Ed25519 sign, graviola: 4.21 µs, 1.07× the fastest +4.21 µs +Ed25519 sign, libcrux: 22.00 µs, 5.60× the fastest; verified: HACL*'s F* proof of Hacl.Ed25519's sign and verify, compiled to Rust by an unverified step +22.00 µs ✓ +Ed25519 sign, OpenSSL: 16.56 µs, 4.22× the fastest +16.56 µs Ed25519 verify -Ed25519 verify, rind: 18.66 µs, 1.01× the fastest -18.66 µs -Ed25519 verify, aws-lc-rs: 18.52 µs, 1.01× the fastest -18.52 µs -Ed25519 verify, ring: 19.94 µs, 1.08× the fastest -19.94 µs -Ed25519 verify, RustCrypto + dalek: 18.42 µs, 1.00× the fastest -18.42 µs -Ed25519 verify, graviola: 18.69 µs, 1.01× the fastest -18.69 µs -Ed25519 verify, libcrux: 29.57 µs, 1.61× the fastest; verified: HACL*'s F* proof of Hacl.Ed25519's sign and verify, compiled to Rust by an unverified step -29.57 µs ✓ -Ed25519 verify, OpenSSL: 41.08 µs, 2.23× the fastest -41.08 µs +Ed25519 verify, rind: 18.81 µs, 1.02× the fastest +18.81 µs +Ed25519 verify, aws-lc-rs: 18.48 µs, 1.00× the fastest +18.48 µs +Ed25519 verify, ring: 20.22 µs, 1.09× the fastest +20.22 µs +Ed25519 verify, RustCrypto + dalek: 18.60 µs, 1.01× the fastest +18.60 µs +Ed25519 verify, graviola: 18.94 µs, 1.03× the fastest +18.94 µs +Ed25519 verify, libcrux: 29.44 µs, 1.59× the fastest; verified: HACL*'s F* proof of Hacl.Ed25519's sign and verify, compiled to Rust by an unverified step +29.44 µs ✓ +Ed25519 verify, OpenSSL: 41.29 µs, 2.23× the fastest +41.29 µs P-256 ECDSA sign -P-256 ECDSA sign, rind: 7.11 µs, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch and of the nonces' draws through a dyn RandomSource, which Aeneas cannot translate, of its signature API's P-256 ECDSA with SHA-256 and fixed-length signatures, key generation and loading, signing, and verification, down to s2n-bignum's routines, composed with s2n-bignum's HOL Light proofs of p256_scalarmulbase_alt, p256_montjadd_alt, p256_montjdouble_alt, p256_montjmixadd_alt, bignum_inv_p256, bignum_neg_p256, bignum_tomont_p256, bignum_demont_p256, bignum_add_p256, bignum_montmul_p256, bignum_montsqr_p256, bignum_mod_n256_4, bignum_modadd, bignum_montmul, bignum_demont, bignum_modinv, and bignum_eq, of s2n-bignum's own object code, which rind transliterates, with the group laws its twin multiplication relies on proven from Mathlib's and the generator's order n proven, assuming HOL Light's P256_GROUP_ELEMENT_ORDER, that a point has order n, only for verification with a parsed public key, and proving a signature right when signing returns, as its nonce loop has no bound -7.11 µs ✓ -P-256 ECDSA sign, aws-lc-rs: 11.27 µs, 1.58× the fastest -11.27 µs -P-256 ECDSA sign, ring: 11.01 µs, 1.55× the fastest -11.01 µs -P-256 ECDSA sign, RustCrypto + dalek: 44.33 µs, 6.23× the fastest -44.33 µs -P-256 ECDSA sign, graviola: 8.83 µs, 1.24× the fastest -8.83 µs -P-256 ECDSA sign, libcrux: 67.38 µs, 9.47× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step -67.38 µs ✓ -P-256 ECDSA sign, OpenSSL: 12.62 µs, 1.77× the fastest -12.62 µs +P-256 ECDSA sign, rind: 7.13 µs, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch and of the nonces' draws through a dyn RandomSource, which Aeneas cannot translate, of its signature API's P-256 ECDSA with SHA-256 and fixed-length signatures, key generation and loading, signing, and verification, down to s2n-bignum's routines, composed with s2n-bignum's HOL Light proofs of p256_scalarmulbase_alt, p256_montjadd_alt, p256_montjdouble_alt, p256_montjmixadd_alt, bignum_inv_p256, bignum_neg_p256, bignum_tomont_p256, bignum_demont_p256, bignum_add_p256, bignum_montmul_p256, bignum_montsqr_p256, bignum_mod_n256_4, bignum_modadd, bignum_montmul, bignum_demont, bignum_modinv, and bignum_eq, of s2n-bignum's own object code, which rind transliterates, with the group laws its twin multiplication relies on proven from Mathlib's and the generator's order n proven, assuming HOL Light's P256_GROUP_ELEMENT_ORDER, that a point has order n, only for verification with a parsed public key, and proving a signature right when signing returns, as its nonce loop has no bound +7.13 µs ✓ +P-256 ECDSA sign, aws-lc-rs: 11.16 µs, 1.56× the fastest +11.16 µs +P-256 ECDSA sign, ring: 10.91 µs, 1.53× the fastest +10.91 µs +P-256 ECDSA sign, RustCrypto + dalek: 43.98 µs, 6.17× the fastest +43.98 µs +P-256 ECDSA sign, graviola: 8.58 µs, 1.20× the fastest +8.58 µs +P-256 ECDSA sign, libcrux: 66.95 µs, 9.38× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step +66.95 µs ✓ +P-256 ECDSA sign, OpenSSL: 12.43 µs, 1.74× the fastest +12.43 µs P-256 ECDSA verify -P-256 ECDSA verify, rind: 27.15 µs, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch and of the nonces' draws through a dyn RandomSource, which Aeneas cannot translate, of its signature API's P-256 ECDSA with SHA-256 and fixed-length signatures, key generation and loading, signing, and verification, down to s2n-bignum's routines, composed with s2n-bignum's HOL Light proofs of p256_scalarmulbase_alt, p256_montjadd_alt, p256_montjdouble_alt, p256_montjmixadd_alt, bignum_inv_p256, bignum_neg_p256, bignum_tomont_p256, bignum_demont_p256, bignum_add_p256, bignum_montmul_p256, bignum_montsqr_p256, bignum_mod_n256_4, bignum_modadd, bignum_montmul, bignum_demont, bignum_modinv, and bignum_eq, of s2n-bignum's own object code, which rind transliterates, with the group laws its twin multiplication relies on proven from Mathlib's and the generator's order n proven, assuming HOL Light's P256_GROUP_ELEMENT_ORDER, that a point has order n, only for verification with a parsed public key, and proving a signature right when signing returns, as its nonce loop has no bound -27.15 µs ✓ -P-256 ECDSA verify, aws-lc-rs: 27.15 µs, 1.00× the fastest -27.15 µs -P-256 ECDSA verify, ring: 29.35 µs, 1.08× the fastest -29.35 µs -P-256 ECDSA verify, RustCrypto + dalek: 157.87 µs, 5.82× the fastest -157.87 µs -P-256 ECDSA verify, graviola: 28.60 µs, 1.05× the fastest -28.60 µs -P-256 ECDSA verify, libcrux: 156.54 µs, 5.77× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step -156.54 µs ✓ -P-256 ECDSA verify, OpenSSL: 41.90 µs, 1.54× the fastest -41.90 µs +P-256 ECDSA verify, rind: 26.25 µs, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch and of the nonces' draws through a dyn RandomSource, which Aeneas cannot translate, of its signature API's P-256 ECDSA with SHA-256 and fixed-length signatures, key generation and loading, signing, and verification, down to s2n-bignum's routines, composed with s2n-bignum's HOL Light proofs of p256_scalarmulbase_alt, p256_montjadd_alt, p256_montjdouble_alt, p256_montjmixadd_alt, bignum_inv_p256, bignum_neg_p256, bignum_tomont_p256, bignum_demont_p256, bignum_add_p256, bignum_montmul_p256, bignum_montsqr_p256, bignum_mod_n256_4, bignum_modadd, bignum_montmul, bignum_demont, bignum_modinv, and bignum_eq, of s2n-bignum's own object code, which rind transliterates, with the group laws its twin multiplication relies on proven from Mathlib's and the generator's order n proven, assuming HOL Light's P256_GROUP_ELEMENT_ORDER, that a point has order n, only for verification with a parsed public key, and proving a signature right when signing returns, as its nonce loop has no bound +26.25 µs ✓ +P-256 ECDSA verify, aws-lc-rs: 27.38 µs, 1.04× the fastest +27.38 µs +P-256 ECDSA verify, ring: 29.22 µs, 1.11× the fastest +29.22 µs +P-256 ECDSA verify, RustCrypto + dalek: 151.69 µs, 5.78× the fastest +151.69 µs +P-256 ECDSA verify, graviola: 28.18 µs, 1.07× the fastest +28.18 µs +P-256 ECDSA verify, libcrux: 156.18 µs, 5.95× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step +156.18 µs ✓ +P-256 ECDSA verify, OpenSSL: 41.90 µs, 1.60× the fastest +41.90 µs Hashes and KDFs - + SHA-256, 64 B -SHA-256, 64 B, rind: 93 ns, 2.58× the fastest -93 ns -SHA-256, 64 B, aws-lc-rs: 71 ns, 1.97× the fastest -71 ns -SHA-256, 64 B, ring: 45 ns, 1.25× the fastest -45 ns -SHA-256, 64 B, RustCrypto + dalek: 37 ns, 1.03× the fastest -37 ns -SHA-256, 64 B, graviola: 36 ns, 1.00× the fastest +SHA-256, 64 B, rind: 90 ns, 2.54× the fastest +90 ns +SHA-256, 64 B, rind (DIT held): 37 ns, 1.04× the fastest +37 ns +SHA-256, 64 B, aws-lc-rs: 70 ns, 1.99× the fastest +70 ns +SHA-256, 64 B, ring: 44 ns, 1.25× the fastest +44 ns +SHA-256, 64 B, RustCrypto + dalek: 36 ns, 1.03× the fastest 36 ns -SHA-256, 64 B, libcrux: 232 ns, 6.45× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -232 ns ✓ -SHA-256, 64 B, OpenSSL: 162 ns, 4.50× the fastest -162 ns +SHA-256, 64 B, graviola: 35 ns, 1.00× the fastest +35 ns +SHA-256, 64 B, libcrux: 225 ns, 6.37× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +225 ns ✓ +SHA-256, 64 B, OpenSSL: 159 ns, 4.51× the fastest +159 ns SHA-256, 1350 B -SHA-256, 1350 B, rind: 484 ns, 1.17× the fastest -484 ns -SHA-256, 1350 B, aws-lc-rs: 440 ns, 1.06× the fastest -440 ns -SHA-256, 1350 B, ring: 414 ns, 1.00× the fastest -414 ns -SHA-256, 1350 B, RustCrypto + dalek: 475 ns, 1.15× the fastest -475 ns -SHA-256, 1350 B, graviola: 472 ns, 1.14× the fastest -472 ns -SHA-256, 1350 B, libcrux: 2.52 µs, 6.08× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -2.52 µs ✓ -SHA-256, 1350 B, OpenSSL: 531 ns, 1.28× the fastest -531 ns +SHA-256, 1350 B, rind: 485 ns, 1.18× the fastest +485 ns +SHA-256, 1350 B, rind (DIT held): 409 ns, 1.00× the fastest +409 ns +SHA-256, 1350 B, aws-lc-rs: 434 ns, 1.06× the fastest +434 ns +SHA-256, 1350 B, ring: 410 ns, 1.00× the fastest +410 ns +SHA-256, 1350 B, RustCrypto + dalek: 473 ns, 1.16× the fastest +473 ns +SHA-256, 1350 B, graviola: 480 ns, 1.17× the fastest +480 ns +SHA-256, 1350 B, libcrux: 2.46 µs, 6.00× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +2.46 µs ✓ +SHA-256, 1350 B, OpenSSL: 533 ns, 1.30× the fastest +533 ns SHA-256, 16 KB -SHA-256, 16 KB, rind: 4.94 µs, 1.01× the fastest -4.94 µs -SHA-256, 16 KB, aws-lc-rs: 4.87 µs, 1.00× the fastest -4.87 µs -SHA-256, 16 KB, ring: 4.90 µs, 1.01× the fastest -4.90 µs -SHA-256, 16 KB, RustCrypto + dalek: 5.69 µs, 1.17× the fastest -5.69 µs -SHA-256, 16 KB, graviola: 5.76 µs, 1.18× the fastest -5.76 µs -SHA-256, 16 KB, libcrux: 29.13 µs, 5.98× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -29.13 µs ✓ -SHA-256, 16 KB, OpenSSL: 5.17 µs, 1.06× the fastest -5.17 µs +SHA-256, 16 KB, rind: 4.93 µs, 1.02× the fastest +4.93 µs +SHA-256, 16 KB, rind (DIT held): 5.01 µs, 1.04× the fastest +5.01 µs +SHA-256, 16 KB, aws-lc-rs: 4.86 µs, 1.00× the fastest +4.86 µs +SHA-256, 16 KB, ring: 4.84 µs, 1.00× the fastest +4.84 µs +SHA-256, 16 KB, RustCrypto + dalek: 5.66 µs, 1.17× the fastest +5.66 µs +SHA-256, 16 KB, graviola: 5.79 µs, 1.20× the fastest +5.79 µs +SHA-256, 16 KB, libcrux: 29.00 µs, 5.99× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +29.00 µs ✓ +SHA-256, 16 KB, OpenSSL: 4.98 µs, 1.03× the fastest +4.98 µs SHA-512, 64 B -SHA-512, 64 B, rind: 113 ns, 1.44× the fastest -113 ns -SHA-512, 64 B, aws-lc-rs: 108 ns, 1.37× the fastest -108 ns -SHA-512, 64 B, ring: 88 ns, 1.11× the fastest -88 ns -SHA-512, 64 B, RustCrypto + dalek: 79 ns, 1.00× the fastest -79 ns -SHA-512, 64 B, graviola: 177 ns, 2.25× the fastest -177 ns -SHA-512, 64 B, libcrux: 141 ns, 1.79× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -141 ns ✓ -SHA-512, 64 B, OpenSSL: 211 ns, 2.68× the fastest -211 ns +SHA-512, 64 B, rind: 108 ns, 1.41× the fastest +108 ns +SHA-512, 64 B, rind (DIT held): 75 ns, 0.98× the fastest +75 ns +SHA-512, 64 B, aws-lc-rs: 105 ns, 1.36× the fastest +105 ns +SHA-512, 64 B, ring: 84 ns, 1.10× the fastest +84 ns +SHA-512, 64 B, RustCrypto + dalek: 77 ns, 1.00× the fastest +77 ns +SHA-512, 64 B, graviola: 175 ns, 2.27× the fastest +175 ns +SHA-512, 64 B, libcrux: 142 ns, 1.84× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +142 ns ✓ +SHA-512, 64 B, OpenSSL: 205 ns, 2.67× the fastest +205 ns SHA-512, 1350 B -SHA-512, 1350 B, rind: 827 ns, 1.15× the fastest -827 ns -SHA-512, 1350 B, aws-lc-rs: 775 ns, 1.07× the fastest -775 ns -SHA-512, 1350 B, ring: 737 ns, 1.02× the fastest -737 ns -SHA-512, 1350 B, RustCrypto + dalek: 722 ns, 1.00× the fastest -722 ns -SHA-512, 1350 B, graviola: 1.88 µs, 2.60× the fastest -1.88 µs -SHA-512, 1350 B, libcrux: 1.58 µs, 2.18× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -1.58 µs ✓ -SHA-512, 1350 B, OpenSSL: 878 ns, 1.22× the fastest -878 ns +SHA-512, 1350 B, rind: 810 ns, 1.12× the fastest +810 ns +SHA-512, 1350 B, rind (DIT held): 730 ns, 1.01× the fastest +730 ns +SHA-512, 1350 B, aws-lc-rs: 768 ns, 1.06× the fastest +768 ns +SHA-512, 1350 B, ring: 743 ns, 1.03× the fastest +743 ns +SHA-512, 1350 B, RustCrypto + dalek: 723 ns, 1.00× the fastest +723 ns +SHA-512, 1350 B, graviola: 1.87 µs, 2.58× the fastest +1.87 µs +SHA-512, 1350 B, libcrux: 1.56 µs, 2.16× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +1.56 µs ✓ +SHA-512, 1350 B, OpenSSL: 893 ns, 1.23× the fastest +893 ns SHA-512, 16 KB -SHA-512, 16 KB, rind: 8.77 µs, 1.03× the fastest -8.77 µs -SHA-512, 16 KB, aws-lc-rs: 8.70 µs, 1.02× the fastest -8.70 µs -SHA-512, 16 KB, ring: 8.69 µs, 1.02× the fastest -8.69 µs -SHA-512, 16 KB, RustCrypto + dalek: 8.50 µs, 1.00× the fastest -8.50 µs -SHA-512, 16 KB, graviola: 22.11 µs, 2.60× the fastest -22.11 µs -SHA-512, 16 KB, libcrux: 18.41 µs, 2.17× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -18.41 µs ✓ -SHA-512, 16 KB, OpenSSL: 8.88 µs, 1.04× the fastest -8.88 µs +SHA-512, 16 KB, rind: 8.85 µs, 1.03× the fastest +8.85 µs +SHA-512, 16 KB, rind (DIT held): 8.72 µs, 1.02× the fastest +8.72 µs +SHA-512, 16 KB, aws-lc-rs: 8.91 µs, 1.04× the fastest +8.91 µs +SHA-512, 16 KB, ring: 8.70 µs, 1.01× the fastest +8.70 µs +SHA-512, 16 KB, RustCrypto + dalek: 8.59 µs, 1.00× the fastest +8.59 µs +SHA-512, 16 KB, graviola: 21.69 µs, 2.52× the fastest +21.69 µs +SHA-512, 16 KB, libcrux: 18.39 µs, 2.14× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +18.39 µs ✓ +SHA-512, 16 KB, OpenSSL: 9.33 µs, 1.09× the fastest +9.33 µs HMAC-SHA256, 64 B -HMAC-SHA256, 64 B, rind: 191 ns, 1.88× the fastest -191 ns -HMAC-SHA256, 64 B, aws-lc-rs: 248 ns, 2.43× the fastest -248 ns -HMAC-SHA256, 64 B, ring: 137 ns, 1.34× the fastest -137 ns -HMAC-SHA256, 64 B, RustCrypto + dalek: 102 ns, 1.00× the fastest -102 ns -HMAC-SHA256, 64 B, graviola: 115 ns, 1.12× the fastest -115 ns -HMAC-SHA256, 64 B, libcrux: 568 ns, 5.57× the fastest; verified: HACL*'s F* proof of Hacl.HMAC's compute_sha2_256, compiled to Rust by an unverified step -568 ns ✓ -HMAC-SHA256, 64 B, OpenSSL: 2.06 µs, 20.24× the fastest -2.06 µs +HMAC-SHA256, 64 B, rind: 189 ns, 1.90× the fastest +189 ns +HMAC-SHA256, 64 B, rind (DIT held): 110 ns, 1.10× the fastest +110 ns +HMAC-SHA256, 64 B, aws-lc-rs: 245 ns, 2.47× the fastest +245 ns +HMAC-SHA256, 64 B, ring: 134 ns, 1.35× the fastest +134 ns +HMAC-SHA256, 64 B, RustCrypto + dalek: 99 ns, 1.00× the fastest +99 ns +HMAC-SHA256, 64 B, graviola: 112 ns, 1.12× the fastest +112 ns +HMAC-SHA256, 64 B, libcrux: 564 ns, 5.67× the fastest; verified: HACL*'s F* proof of Hacl.HMAC's compute_sha2_256, compiled to Rust by an unverified step +564 ns ✓ +HMAC-SHA256, 64 B, OpenSSL: 2.09 µs, 21.07× the fastest +2.09 µs HMAC-SHA256, 1350 B HMAC-SHA256, 1350 B, rind: 559 ns, 1.11× the fastest 559 ns -HMAC-SHA256, 1350 B, aws-lc-rs: 620 ns, 1.24× the fastest -620 ns -HMAC-SHA256, 1350 B, ring: 502 ns, 1.00× the fastest -502 ns -HMAC-SHA256, 1350 B, RustCrypto + dalek: 542 ns, 1.08× the fastest -542 ns -HMAC-SHA256, 1350 B, graviola: 557 ns, 1.11× the fastest -557 ns -HMAC-SHA256, 1350 B, libcrux: 2.86 µs, 5.70× the fastest; verified: HACL*'s F* proof of Hacl.HMAC's compute_sha2_256, compiled to Rust by an unverified step -2.86 µs ✓ -HMAC-SHA256, 1350 B, OpenSSL: 2.43 µs, 4.84× the fastest -2.43 µs +HMAC-SHA256, 1350 B, rind (DIT held): 487 ns, 0.97× the fastest +487 ns +HMAC-SHA256, 1350 B, aws-lc-rs: 597 ns, 1.19× the fastest +597 ns +HMAC-SHA256, 1350 B, ring: 502 ns, 1.00× the fastest +502 ns +HMAC-SHA256, 1350 B, RustCrypto + dalek: 545 ns, 1.08× the fastest +545 ns +HMAC-SHA256, 1350 B, graviola: 562 ns, 1.12× the fastest +562 ns +HMAC-SHA256, 1350 B, libcrux: 2.80 µs, 5.57× the fastest; verified: HACL*'s F* proof of Hacl.HMAC's compute_sha2_256, compiled to Rust by an unverified step +2.80 µs ✓ +HMAC-SHA256, 1350 B, OpenSSL: 2.41 µs, 4.80× the fastest +2.41 µs HKDF-SHA256 extract and expand -HKDF-SHA256 extract and expand, rind: 343 ns, 1.58× the fastest -343 ns -HKDF-SHA256 extract and expand, aws-lc-rs: 330 ns, 1.52× the fastest -330 ns -HKDF-SHA256 extract and expand, ring: 274 ns, 1.26× the fastest -274 ns -HKDF-SHA256 extract and expand, RustCrypto + dalek: 218 ns, 1.00× the fastest -218 ns -HKDF-SHA256 extract and expand, libcrux: 942 ns, 4.32× the fastest; verified: HACL*'s F* proof of Hacl.HKDF's extract_sha2_256 and expand_sha2_256, compiled to Rust by an unverified step -942 ns ✓ -HKDF-SHA256 extract and expand, OpenSSL: 2.14 µs, 9.84× the fastest -2.14 µs +HKDF-SHA256 extract and expand, rind: 338 ns, 1.60× the fastest +338 ns +HKDF-SHA256 extract and expand, rind (DIT held): 226 ns, 1.07× the fastest +226 ns +HKDF-SHA256 extract and expand, aws-lc-rs: 330 ns, 1.56× the fastest +330 ns +HKDF-SHA256 extract and expand, ring: 273 ns, 1.29× the fastest +273 ns +HKDF-SHA256 extract and expand, RustCrypto + dalek: 212 ns, 1.00× the fastest +212 ns +HKDF-SHA256 extract and expand, libcrux: 936 ns, 4.42× the fastest; verified: HACL*'s F* proof of Hacl.HKDF's extract_sha2_256 and expand_sha2_256, compiled to Rust by an unverified step +936 ns ✓ +HKDF-SHA256 extract and expand, OpenSSL: 2.16 µs, 10.20× the fastest +2.16 µs HKDF-SHA256 expand -HKDF-SHA256 expand, rind: 109 ns, 1.55× the fastest -109 ns -HKDF-SHA256 expand, aws-lc-rs: 154 ns, 2.20× the fastest -154 ns -HKDF-SHA256 expand, ring: 94 ns, 1.33× the fastest -94 ns -HKDF-SHA256 expand, RustCrypto + dalek: 70 ns, 1.00× the fastest -70 ns -HKDF-SHA256 expand, libcrux: 481 ns, 6.86× the fastest; verified: HACL*'s F* proof of Hacl.HKDF's extract_sha2_256 and expand_sha2_256, compiled to Rust by an unverified step -481 ns ✓ -HKDF-SHA256 expand, OpenSSL: 1.54 µs, 21.93× the fastest -1.54 µs +HKDF-SHA256 expand, rind: 107 ns, 1.56× the fastest +107 ns +HKDF-SHA256 expand, rind (DIT held): 74 ns, 1.08× the fastest +74 ns +HKDF-SHA256 expand, aws-lc-rs: 154 ns, 2.23× the fastest +154 ns +HKDF-SHA256 expand, ring: 93 ns, 1.35× the fastest +93 ns +HKDF-SHA256 expand, RustCrypto + dalek: 69 ns, 1.00× the fastest +69 ns +HKDF-SHA256 expand, libcrux: 481 ns, 7.00× the fastest; verified: HACL*'s F* proof of Hacl.HKDF's extract_sha2_256 and expand_sha2_256, compiled to Rust by an unverified step +481 ns ✓ +HKDF-SHA256 expand, OpenSSL: 1.55 µs, 22.51× the fastest +1.55 µs RSA - + RSA-2048 PKCS#1 sign -RSA-2048 PKCS#1 sign, rind: 275.12 µs, 1.00× the fastest -275.12 µs -RSA-2048 PKCS#1 sign, aws-lc-rs: 285.95 µs, 1.04× the fastest -285.95 µs -RSA-2048 PKCS#1 sign, ring: 322.84 µs, 1.17× the fastest -322.84 µs -RSA-2048 PKCS#1 sign, RustCrypto + dalek: 586.34 µs, 2.13× the fastest -586.34 µs -RSA-2048 PKCS#1 sign, graviola: 556.70 µs, 2.02× the fastest -556.70 µs -RSA-2048 PKCS#1 sign, OpenSSL: 341.31 µs, 1.24× the fastest -341.31 µs +RSA-2048 PKCS#1 sign, rind: 275.40 µs, 1.00× the fastest +275.40 µs +RSA-2048 PKCS#1 sign, aws-lc-rs: 283.82 µs, 1.03× the fastest +283.82 µs +RSA-2048 PKCS#1 sign, ring: 323.02 µs, 1.17× the fastest +323.02 µs +RSA-2048 PKCS#1 sign, RustCrypto + dalek: 588.22 µs, 2.14× the fastest +588.22 µs +RSA-2048 PKCS#1 sign, graviola: 551.44 µs, 2.00× the fastest +551.44 µs +RSA-2048 PKCS#1 sign, OpenSSL: 340.40 µs, 1.24× the fastest +340.40 µs RSA-2048 PKCS#1 verify -RSA-2048 PKCS#1 verify, rind: 8.38 µs, 1.00× the fastest -8.38 µs -RSA-2048 PKCS#1 verify, aws-lc-rs: 9.48 µs, 1.13× the fastest -9.48 µs -RSA-2048 PKCS#1 verify, ring: 11.05 µs, 1.32× the fastest -11.05 µs -RSA-2048 PKCS#1 verify, RustCrypto + dalek: 30.77 µs, 3.67× the fastest -30.77 µs -RSA-2048 PKCS#1 verify, graviola: 18.51 µs, 2.21× the fastest -18.51 µs -RSA-2048 PKCS#1 verify, OpenSSL: 16.66 µs, 1.99× the fastest -16.66 µs +RSA-2048 PKCS#1 verify, rind: 8.41 µs, 1.00× the fastest +8.41 µs +RSA-2048 PKCS#1 verify, aws-lc-rs: 9.54 µs, 1.13× the fastest +9.54 µs +RSA-2048 PKCS#1 verify, ring: 11.01 µs, 1.31× the fastest +11.01 µs +RSA-2048 PKCS#1 verify, RustCrypto + dalek: 30.97 µs, 3.68× the fastest +30.97 µs +RSA-2048 PKCS#1 verify, graviola: 18.43 µs, 2.19× the fastest +18.43 µs +RSA-2048 PKCS#1 verify, OpenSSL: 16.81 µs, 2.00× the fastest +16.81 µs RSA-2048 PSS sign -RSA-2048 PSS sign, rind: 275.29 µs, 1.00× the fastest -275.29 µs -RSA-2048 PSS sign, aws-lc-rs: 288.58 µs, 1.05× the fastest -288.58 µs -RSA-2048 PSS sign, ring: 324.86 µs, 1.18× the fastest -324.86 µs -RSA-2048 PSS sign, RustCrypto + dalek: 588.38 µs, 2.14× the fastest -588.38 µs -RSA-2048 PSS sign, graviola: 558.57 µs, 2.03× the fastest -558.57 µs -RSA-2048 PSS sign, libcrux: 4.48 ms, 16.28× the fastest; verified: HACL*'s F* proof of Hacl.RSAPSS's rsapss_skey_sign and rsapss_pkey_verify, signing without the CRT, compiled to Rust by an unverified step -4.48 ms ✓ -RSA-2048 PSS sign, OpenSSL: 342.61 µs, 1.24× the fastest -342.61 µs +RSA-2048 PSS sign, rind: 275.82 µs, 1.00× the fastest +275.82 µs +RSA-2048 PSS sign, aws-lc-rs: 285.36 µs, 1.03× the fastest +285.36 µs +RSA-2048 PSS sign, ring: 323.17 µs, 1.17× the fastest +323.17 µs +RSA-2048 PSS sign, RustCrypto + dalek: 589.96 µs, 2.14× the fastest +589.96 µs +RSA-2048 PSS sign, graviola: 551.49 µs, 2.00× the fastest +551.49 µs +RSA-2048 PSS sign, libcrux: 4.47 ms, 16.20× the fastest; verified: HACL*'s F* proof of Hacl.RSAPSS's rsapss_skey_sign and rsapss_pkey_verify, signing without the CRT, compiled to Rust by an unverified step +4.47 ms ✓ +RSA-2048 PSS sign, OpenSSL: 341.81 µs, 1.24× the fastest +341.81 µs RSA-2048 PSS verify -RSA-2048 PSS verify, rind: 8.71 µs, 1.00× the fastest -8.71 µs -RSA-2048 PSS verify, aws-lc-rs: 9.84 µs, 1.13× the fastest -9.84 µs -RSA-2048 PSS verify, ring: 11.48 µs, 1.32× the fastest -11.48 µs -RSA-2048 PSS verify, RustCrypto + dalek: 39.26 µs, 4.51× the fastest -39.26 µs -RSA-2048 PSS verify, graviola: 18.79 µs, 2.16× the fastest -18.79 µs -RSA-2048 PSS verify, libcrux: 299.96 µs, 34.44× the fastest; verified: HACL*'s F* proof of Hacl.RSAPSS's rsapss_skey_sign and rsapss_pkey_verify, signing without the CRT, compiled to Rust by an unverified step -299.96 µs ✓ -RSA-2048 PSS verify, OpenSSL: 17.44 µs, 2.00× the fastest -17.44 µs +RSA-2048 PSS verify, rind: 8.74 µs, 1.00× the fastest +8.74 µs +RSA-2048 PSS verify, aws-lc-rs: 9.89 µs, 1.13× the fastest +9.89 µs +RSA-2048 PSS verify, ring: 11.43 µs, 1.31× the fastest +11.43 µs +RSA-2048 PSS verify, RustCrypto + dalek: 38.88 µs, 4.45× the fastest +38.88 µs +RSA-2048 PSS verify, graviola: 18.77 µs, 2.15× the fastest +18.77 µs +RSA-2048 PSS verify, libcrux: 297.72 µs, 34.06× the fastest; verified: HACL*'s F* proof of Hacl.RSAPSS's rsapss_skey_sign and rsapss_pkey_verify, signing without the CRT, compiled to Rust by an unverified step +297.72 µs ✓ +RSA-2048 PSS verify, OpenSSL: 17.47 µs, 2.00× the fastest +17.47 µs ML-KEM - + ML-KEM-768 key generation -ML-KEM-768 key generation, rind: 6.20 µs, 1.00× the fastest -6.20 µs -ML-KEM-768 key generation, aws-lc-rs: 7.46 µs, 1.20× the fastest -7.46 µs -ML-KEM-768 key generation, RustCrypto + dalek: 26.57 µs, 4.29× the fastest -26.57 µs -ML-KEM-768 key generation, graviola: 6.22 µs, 1.00× the fastest -6.22 µs -ML-KEM-768 key generation, libcrux: 12.01 µs, 1.94× the fastest -12.01 µs -ML-KEM-768 key generation, OpenSSL: 25.06 µs, 4.04× the fastest -25.06 µs +ML-KEM-768 key generation, rind: 6.11 µs, 1.00× the fastest +6.11 µs +ML-KEM-768 key generation, aws-lc-rs: 7.31 µs, 1.20× the fastest +7.31 µs +ML-KEM-768 key generation, RustCrypto + dalek: 26.29 µs, 4.30× the fastest +26.29 µs +ML-KEM-768 key generation, graviola: 6.11 µs, 1.00× the fastest +6.11 µs +ML-KEM-768 key generation, libcrux: 11.77 µs, 1.93× the fastest +11.77 µs +ML-KEM-768 key generation, OpenSSL: 24.90 µs, 4.08× the fastest +24.90 µs ML-KEM-768 encapsulate -ML-KEM-768 encapsulate, rind: 6.84 µs, 1.07× the fastest -6.84 µs -ML-KEM-768 encapsulate, aws-lc-rs: 8.01 µs, 1.25× the fastest -8.01 µs -ML-KEM-768 encapsulate, RustCrypto + dalek: 27.77 µs, 4.34× the fastest -27.77 µs -ML-KEM-768 encapsulate, graviola: 6.40 µs, 1.00× the fastest -6.40 µs -ML-KEM-768 encapsulate, libcrux: 9.39 µs, 1.47× the fastest -9.39 µs -ML-KEM-768 encapsulate, OpenSSL: 24.07 µs, 3.76× the fastest -24.07 µs +ML-KEM-768 encapsulate, rind: 6.77 µs, 1.07× the fastest +6.77 µs +ML-KEM-768 encapsulate, aws-lc-rs: 7.91 µs, 1.25× the fastest +7.91 µs +ML-KEM-768 encapsulate, RustCrypto + dalek: 27.87 µs, 4.41× the fastest +27.87 µs +ML-KEM-768 encapsulate, graviola: 6.32 µs, 1.00× the fastest +6.32 µs +ML-KEM-768 encapsulate, libcrux: 9.25 µs, 1.46× the fastest +9.25 µs +ML-KEM-768 encapsulate, OpenSSL: 23.89 µs, 3.78× the fastest +23.89 µs ML-KEM-768 decapsulate -ML-KEM-768 decapsulate, rind: 4.17 µs, 1.03× the fastest -4.17 µs -ML-KEM-768 decapsulate, aws-lc-rs: 7.75 µs, 1.91× the fastest -7.75 µs -ML-KEM-768 decapsulate, RustCrypto + dalek: 34.06 µs, 8.41× the fastest -34.06 µs -ML-KEM-768 decapsulate, graviola: 4.05 µs, 1.00× the fastest -4.05 µs -ML-KEM-768 decapsulate, libcrux: 9.58 µs, 2.36× the fastest -9.58 µs -ML-KEM-768 decapsulate, OpenSSL: 24.43 µs, 6.03× the fastest -24.43 µs +ML-KEM-768 decapsulate, rind: 4.12 µs, 1.02× the fastest +4.12 µs +ML-KEM-768 decapsulate, aws-lc-rs: 7.67 µs, 1.91× the fastest +7.67 µs +ML-KEM-768 decapsulate, RustCrypto + dalek: 33.92 µs, 8.43× the fastest +33.92 µs +ML-KEM-768 decapsulate, graviola: 4.02 µs, 1.00× the fastest +4.02 µs +ML-KEM-768 decapsulate, libcrux: 9.48 µs, 2.36× the fastest +9.48 µs +ML-KEM-768 decapsulate, OpenSSL: 24.66 µs, 6.13× the fastest +24.66 µs P-384 and P-521 - + P-384 ECDH -P-384 ECDH, rind: 91.49 µs, 1.00× the fastest -91.49 µs -P-384 ECDH, aws-lc-rs: 105.75 µs, 1.16× the fastest -105.75 µs -P-384 ECDH, ring: 412.48 µs, 4.51× the fastest -412.48 µs -P-384 ECDH, RustCrypto + dalek: 494.20 µs, 5.40× the fastest -494.20 µs -P-384 ECDH, graviola: 153.84 µs, 1.68× the fastest -153.84 µs -P-384 ECDH, OpenSSL: 279.51 µs, 3.06× the fastest -279.51 µs +P-384 ECDH, rind: 90.11 µs, 1.00× the fastest +90.11 µs +P-384 ECDH, aws-lc-rs: 104.99 µs, 1.17× the fastest +104.99 µs +P-384 ECDH, ring: 413.70 µs, 4.59× the fastest +413.70 µs +P-384 ECDH, RustCrypto + dalek: 488.31 µs, 5.42× the fastest +488.31 µs +P-384 ECDH, graviola: 150.93 µs, 1.67× the fastest +150.93 µs +P-384 ECDH, OpenSSL: 280.83 µs, 3.12× the fastest +280.83 µs P-384 ECDSA sign -P-384 ECDSA sign, rind: 22.93 µs, 1.00× the fastest -22.93 µs -P-384 ECDSA sign, aws-lc-rs: 49.16 µs, 2.14× the fastest -49.16 µs -P-384 ECDSA sign, ring: 223.72 µs, 9.76× the fastest -223.72 µs -P-384 ECDSA sign, RustCrypto + dalek: 112.64 µs, 4.91× the fastest -112.64 µs -P-384 ECDSA sign, graviola: 81.12 µs, 3.54× the fastest -81.12 µs -P-384 ECDSA sign, OpenSSL: 104.84 µs, 4.57× the fastest -104.84 µs +P-384 ECDSA sign, rind: 22.30 µs, 1.00× the fastest +22.30 µs +P-384 ECDSA sign, aws-lc-rs: 49.21 µs, 2.21× the fastest +49.21 µs +P-384 ECDSA sign, ring: 222.34 µs, 9.97× the fastest +222.34 µs +P-384 ECDSA sign, RustCrypto + dalek: 111.89 µs, 5.02× the fastest +111.89 µs +P-384 ECDSA sign, graviola: 80.22 µs, 3.60× the fastest +80.22 µs +P-384 ECDSA sign, OpenSSL: 102.69 µs, 4.60× the fastest +102.69 µs P-384 ECDSA verify -P-384 ECDSA verify, rind: 88.12 µs, 1.00× the fastest -88.12 µs -P-384 ECDSA verify, aws-lc-rs: 111.27 µs, 1.26× the fastest -111.27 µs -P-384 ECDSA verify, ring: 396.57 µs, 4.50× the fastest -396.57 µs -P-384 ECDSA verify, RustCrypto + dalek: 426.43 µs, 4.84× the fastest -426.43 µs -P-384 ECDSA verify, graviola: 151.78 µs, 1.72× the fastest -151.78 µs -P-384 ECDSA verify, OpenSSL: 238.33 µs, 2.70× the fastest -238.33 µs +P-384 ECDSA verify, rind: 84.01 µs, 1.00× the fastest +84.01 µs +P-384 ECDSA verify, aws-lc-rs: 110.79 µs, 1.32× the fastest +110.79 µs +P-384 ECDSA verify, ring: 397.21 µs, 4.73× the fastest +397.21 µs +P-384 ECDSA verify, RustCrypto + dalek: 422.13 µs, 5.02× the fastest +422.13 µs +P-384 ECDSA verify, graviola: 148.92 µs, 1.77× the fastest +148.92 µs +P-384 ECDSA verify, OpenSSL: 237.68 µs, 2.83× the fastest +237.68 µs P-521 ECDH -P-521 ECDH, rind: 130.92 µs, 1.00× the fastest -130.92 µs -P-521 ECDH, aws-lc-rs: 143.20 µs, 1.09× the fastest -143.20 µs -P-521 ECDH, RustCrypto + dalek: 397.10 µs, 3.03× the fastest -397.10 µs -P-521 ECDH, OpenSSL: 247.22 µs, 1.89× the fastest -247.22 µs +P-521 ECDH, rind: 129.82 µs, 1.00× the fastest +129.82 µs +P-521 ECDH, aws-lc-rs: 142.27 µs, 1.10× the fastest +142.27 µs +P-521 ECDH, RustCrypto + dalek: 396.28 µs, 3.05× the fastest +396.28 µs +P-521 ECDH, OpenSSL: 247.04 µs, 1.90× the fastest +247.04 µs P-521 ECDSA sign -P-521 ECDSA sign, rind: 36.32 µs, 1.00× the fastest -36.32 µs -P-521 ECDSA sign, aws-lc-rs: 84.33 µs, 2.32× the fastest -84.33 µs -P-521 ECDSA sign, RustCrypto + dalek: 79.73 µs, 2.20× the fastest -79.73 µs -P-521 ECDSA sign, OpenSSL: 132.13 µs, 3.64× the fastest -132.13 µs +P-521 ECDSA sign, rind: 36.25 µs, 1.00× the fastest +36.25 µs +P-521 ECDSA sign, aws-lc-rs: 84.10 µs, 2.32× the fastest +84.10 µs +P-521 ECDSA sign, RustCrypto + dalek: 80.09 µs, 2.21× the fastest +80.09 µs +P-521 ECDSA sign, OpenSSL: 132.31 µs, 3.65× the fastest +132.31 µs P-521 ECDSA verify -P-521 ECDSA verify, rind: 121.06 µs, 1.00× the fastest -121.06 µs -P-521 ECDSA verify, aws-lc-rs: 167.21 µs, 1.38× the fastest -167.21 µs -P-521 ECDSA verify, RustCrypto + dalek: 253.06 µs, 2.09× the fastest -253.06 µs -P-521 ECDSA verify, OpenSSL: 254.80 µs, 2.10× the fastest -254.80 µs +P-521 ECDSA verify, rind: 120.99 µs, 1.00× the fastest +120.99 µs +P-521 ECDSA verify, aws-lc-rs: 166.73 µs, 1.38× the fastest +166.73 µs +P-521 ECDSA verify, RustCrypto + dalek: 251.97 µs, 2.08× the fastest +251.97 µs +P-521 ECDSA verify, OpenSSL: 254.26 µs, 2.10× the fastest +254.26 µs diff --git a/benchmarks/overview-dark.svg b/benchmarks/overview-dark.svg index cfe21e7d6..a972c7253 100644 --- a/benchmarks/overview-dark.svg +++ b/benchmarks/overview-dark.svg @@ -1,4 +1,4 @@ - + Time over the fastest library's, by operation, library, and host fastest, or within 10% @@ -18,2317 +18,2348 @@ verified code Each cell's squares, left to right: nixos, desktop, nixos2, kixtop, ovh-iad, ovh-sea. rind -aws-lc-rs -ring -RustCrypto -+ dalek -graviola -libcrux -OpenSSL +rind +(DIT held) +aws-lc-rs +ring +RustCrypto ++ dalek +graviola +libcrux +OpenSSL TLS 1.3 with rustls - + full handshake, X25519MLKEM768 full handshake, X25519MLKEM768, rind on nixos: 260.78 µs, 1.00× the fastest -full handshake, X25519MLKEM768, rind on desktop: 174.97 µs, 1.00× the fastest +full handshake, X25519MLKEM768, rind on desktop: 172.30 µs, 1.00× the fastest full handshake, X25519MLKEM768, rind on nixos2: 302.43 µs, 1.00× the fastest -full handshake, X25519MLKEM768, rind on kixtop: 177.98 µs, 1.00× the fastest +full handshake, X25519MLKEM768, rind on kixtop: 174.03 µs, 1.00× the fastest full handshake, X25519MLKEM768, rind on ovh-iad: 625.81 µs, 1.00× the fastest full handshake, X25519MLKEM768, rind on ovh-sea: 580.07 µs, 1.00× the fastest -full handshake, X25519MLKEM768, aws-lc-rs on nixos: 331.87 µs, 1.27× the fastest -full handshake, X25519MLKEM768, aws-lc-rs on desktop: 235.60 µs, 1.35× the fastest -full handshake, X25519MLKEM768, aws-lc-rs on nixos2: 458.06 µs, 1.51× the fastest -full handshake, X25519MLKEM768, aws-lc-rs on kixtop: 214.67 µs, 1.21× the fastest -full handshake, X25519MLKEM768, aws-lc-rs on ovh-iad: 731.87 µs, 1.17× the fastest -full handshake, X25519MLKEM768, aws-lc-rs on ovh-sea: 697.59 µs, 1.20× the fastest -full handshake, X25519MLKEM768, graviola on nixos: 342.68 µs, 1.31× the fastest -full handshake, X25519MLKEM768, graviola on desktop: 191.49 µs, 1.09× the fastest -full handshake, X25519MLKEM768, graviola on nixos2: 375.57 µs, 1.24× the fastest -full handshake, X25519MLKEM768, graviola on kixtop: 180.42 µs, 1.01× the fastest -full handshake, X25519MLKEM768, OpenSSL on nixos: 802.57 µs, 3.08× the fastest -full handshake, X25519MLKEM768, OpenSSL on desktop: 437.46 µs, 2.50× the fastest -full handshake, X25519MLKEM768, OpenSSL on nixos2: 830.76 µs, 2.75× the fastest -full handshake, X25519MLKEM768, OpenSSL on kixtop: 459.07 µs, 2.58× the fastest -full handshake, X25519MLKEM768, OpenSSL on ovh-iad: 1.39 ms, 2.22× the fastest -full handshake, X25519MLKEM768, OpenSSL on ovh-sea: 1.30 ms, 2.25× the fastest +full handshake, X25519MLKEM768, aws-lc-rs on nixos: 331.87 µs, 1.27× the fastest +full handshake, X25519MLKEM768, aws-lc-rs on desktop: 233.73 µs, 1.36× the fastest +full handshake, X25519MLKEM768, aws-lc-rs on nixos2: 458.06 µs, 1.51× the fastest +full handshake, X25519MLKEM768, aws-lc-rs on kixtop: 212.26 µs, 1.22× the fastest +full handshake, X25519MLKEM768, aws-lc-rs on ovh-iad: 731.87 µs, 1.17× the fastest +full handshake, X25519MLKEM768, aws-lc-rs on ovh-sea: 697.59 µs, 1.20× the fastest +full handshake, X25519MLKEM768, graviola on nixos: 342.68 µs, 1.31× the fastest +full handshake, X25519MLKEM768, graviola on desktop: 188.19 µs, 1.09× the fastest +full handshake, X25519MLKEM768, graviola on nixos2: 375.57 µs, 1.24× the fastest +full handshake, X25519MLKEM768, graviola on kixtop: 179.37 µs, 1.03× the fastest +full handshake, X25519MLKEM768, OpenSSL on nixos: 802.57 µs, 3.08× the fastest +full handshake, X25519MLKEM768, OpenSSL on desktop: 438.88 µs, 2.55× the fastest +full handshake, X25519MLKEM768, OpenSSL on nixos2: 830.76 µs, 2.75× the fastest +full handshake, X25519MLKEM768, OpenSSL on kixtop: 463.38 µs, 2.66× the fastest +full handshake, X25519MLKEM768, OpenSSL on ovh-iad: 1.39 ms, 2.22× the fastest +full handshake, X25519MLKEM768, OpenSSL on ovh-sea: 1.30 ms, 2.25× the fastest full handshake, X25519 full handshake, X25519, rind on nixos: 227.82 µs, 1.00× the fastest -full handshake, X25519, rind on desktop: 152.75 µs, 1.00× the fastest +full handshake, X25519, rind on desktop: 151.32 µs, 1.00× the fastest full handshake, X25519, rind on nixos2: 260.02 µs, 1.00× the fastest -full handshake, X25519, rind on kixtop: 155.39 µs, 1.00× the fastest +full handshake, X25519, rind on kixtop: 151.02 µs, 1.00× the fastest full handshake, X25519, rind on ovh-iad: 490.86 µs, 1.00× the fastest full handshake, X25519, rind on ovh-sea: 450.00 µs, 1.00× the fastest -full handshake, X25519, aws-lc-rs on nixos: 292.13 µs, 1.28× the fastest -full handshake, X25519, aws-lc-rs on desktop: 203.62 µs, 1.33× the fastest -full handshake, X25519, aws-lc-rs on nixos2: 369.74 µs, 1.42× the fastest -full handshake, X25519, aws-lc-rs on kixtop: 184.86 µs, 1.19× the fastest -full handshake, X25519, aws-lc-rs on ovh-iad: 554.00 µs, 1.13× the fastest -full handshake, X25519, aws-lc-rs on ovh-sea: 517.47 µs, 1.15× the fastest -full handshake, X25519, ring on nixos: 328.46 µs, 1.44× the fastest -full handshake, X25519, ring on desktop: 222.88 µs, 1.46× the fastest -full handshake, X25519, ring on nixos2: 337.91 µs, 1.30× the fastest -full handshake, X25519, ring on kixtop: 184.65 µs, 1.19× the fastest -full handshake, X25519, ring on ovh-iad: 571.30 µs, 1.16× the fastest -full handshake, X25519, ring on ovh-sea: 526.35 µs, 1.17× the fastest -full handshake, X25519, graviola on nixos: 238.70 µs, 1.05× the fastest -full handshake, X25519, graviola on desktop: 162.55 µs, 1.06× the fastest -full handshake, X25519, graviola on nixos2: 315.73 µs, 1.21× the fastest -full handshake, X25519, graviola on kixtop: 159.19 µs, 1.02× the fastest -full handshake, X25519, OpenSSL on nixos: 574.28 µs, 2.52× the fastest -full handshake, X25519, OpenSSL on desktop: 367.79 µs, 2.41× the fastest -full handshake, X25519, OpenSSL on nixos2: 686.50 µs, 2.64× the fastest -full handshake, X25519, OpenSSL on kixtop: 374.65 µs, 2.41× the fastest -full handshake, X25519, OpenSSL on ovh-iad: 1.19 ms, 2.43× the fastest -full handshake, X25519, OpenSSL on ovh-sea: 1.07 ms, 2.37× the fastest +full handshake, X25519, aws-lc-rs on nixos: 292.13 µs, 1.28× the fastest +full handshake, X25519, aws-lc-rs on desktop: 201.93 µs, 1.33× the fastest +full handshake, X25519, aws-lc-rs on nixos2: 369.74 µs, 1.42× the fastest +full handshake, X25519, aws-lc-rs on kixtop: 183.41 µs, 1.21× the fastest +full handshake, X25519, aws-lc-rs on ovh-iad: 554.00 µs, 1.13× the fastest +full handshake, X25519, aws-lc-rs on ovh-sea: 517.47 µs, 1.15× the fastest +full handshake, X25519, ring on nixos: 328.46 µs, 1.44× the fastest +full handshake, X25519, ring on desktop: 221.01 µs, 1.46× the fastest +full handshake, X25519, ring on nixos2: 337.91 µs, 1.30× the fastest +full handshake, X25519, ring on kixtop: 183.82 µs, 1.22× the fastest +full handshake, X25519, ring on ovh-iad: 571.30 µs, 1.16× the fastest +full handshake, X25519, ring on ovh-sea: 526.35 µs, 1.17× the fastest +full handshake, X25519, graviola on nixos: 238.70 µs, 1.05× the fastest +full handshake, X25519, graviola on desktop: 161.40 µs, 1.07× the fastest +full handshake, X25519, graviola on nixos2: 315.73 µs, 1.21× the fastest +full handshake, X25519, graviola on kixtop: 159.11 µs, 1.05× the fastest +full handshake, X25519, OpenSSL on nixos: 574.28 µs, 2.52× the fastest +full handshake, X25519, OpenSSL on desktop: 366.38 µs, 2.42× the fastest +full handshake, X25519, OpenSSL on nixos2: 686.50 µs, 2.64× the fastest +full handshake, X25519, OpenSSL on kixtop: 374.68 µs, 2.48× the fastest +full handshake, X25519, OpenSSL on ovh-iad: 1.19 ms, 2.43× the fastest +full handshake, X25519, OpenSSL on ovh-sea: 1.07 ms, 2.37× the fastest full handshake, P-256 full handshake, P-256, rind on nixos: 242.76 µs, 1.00× the fastest -full handshake, P-256, rind on desktop: 175.68 µs, 1.00× the fastest +full handshake, P-256, rind on desktop: 174.55 µs, 1.00× the fastest full handshake, P-256, rind on nixos2: 295.92 µs, 1.00× the fastest -full handshake, P-256, rind on kixtop: 176.20 µs, 1.00× the fastest +full handshake, P-256, rind on kixtop: 171.99 µs, 1.00× the fastest full handshake, P-256, rind on ovh-iad: 570.01 µs, 1.00× the fastest full handshake, P-256, rind on ovh-sea: 509.55 µs, 1.00× the fastest -full handshake, P-256, aws-lc-rs on nixos: 304.37 µs, 1.25× the fastest -full handshake, P-256, aws-lc-rs on desktop: 228.85 µs, 1.30× the fastest -full handshake, P-256, aws-lc-rs on nixos2: 417.28 µs, 1.41× the fastest -full handshake, P-256, aws-lc-rs on kixtop: 206.73 µs, 1.17× the fastest -full handshake, P-256, aws-lc-rs on ovh-iad: 752.60 µs, 1.32× the fastest -full handshake, P-256, aws-lc-rs on ovh-sea: 572.32 µs, 1.12× the fastest -full handshake, P-256, ring on nixos: 281.93 µs, 1.16× the fastest -full handshake, P-256, ring on desktop: 221.72 µs, 1.26× the fastest -full handshake, P-256, ring on nixos2: 327.88 µs, 1.11× the fastest -full handshake, P-256, ring on kixtop: 201.44 µs, 1.14× the fastest -full handshake, P-256, ring on ovh-iad: 601.35 µs, 1.05× the fastest -full handshake, P-256, ring on ovh-sea: 541.38 µs, 1.06× the fastest -full handshake, P-256, graviola on nixos: 270.05 µs, 1.11× the fastest -full handshake, P-256, graviola on desktop: 193.10 µs, 1.10× the fastest -full handshake, P-256, graviola on nixos2: 368.79 µs, 1.25× the fastest -full handshake, P-256, graviola on kixtop: 191.72 µs, 1.09× the fastest -full handshake, P-256, OpenSSL on nixos: 624.35 µs, 2.57× the fastest -full handshake, P-256, OpenSSL on desktop: 406.49 µs, 2.31× the fastest -full handshake, P-256, OpenSSL on nixos2: 760.04 µs, 2.57× the fastest -full handshake, P-256, OpenSSL on kixtop: 400.48 µs, 2.27× the fastest -full handshake, P-256, OpenSSL on ovh-iad: 1.32 ms, 2.32× the fastest -full handshake, P-256, OpenSSL on ovh-sea: 1.15 ms, 2.26× the fastest +full handshake, P-256, aws-lc-rs on nixos: 304.37 µs, 1.25× the fastest +full handshake, P-256, aws-lc-rs on desktop: 227.86 µs, 1.31× the fastest +full handshake, P-256, aws-lc-rs on nixos2: 417.28 µs, 1.41× the fastest +full handshake, P-256, aws-lc-rs on kixtop: 205.84 µs, 1.20× the fastest +full handshake, P-256, aws-lc-rs on ovh-iad: 752.60 µs, 1.32× the fastest +full handshake, P-256, aws-lc-rs on ovh-sea: 572.32 µs, 1.12× the fastest +full handshake, P-256, ring on nixos: 281.93 µs, 1.16× the fastest +full handshake, P-256, ring on desktop: 219.51 µs, 1.26× the fastest +full handshake, P-256, ring on nixos2: 327.88 µs, 1.11× the fastest +full handshake, P-256, ring on kixtop: 202.42 µs, 1.18× the fastest +full handshake, P-256, ring on ovh-iad: 601.35 µs, 1.05× the fastest +full handshake, P-256, ring on ovh-sea: 541.38 µs, 1.06× the fastest +full handshake, P-256, graviola on nixos: 270.05 µs, 1.11× the fastest +full handshake, P-256, graviola on desktop: 191.81 µs, 1.10× the fastest +full handshake, P-256, graviola on nixos2: 368.79 µs, 1.25× the fastest +full handshake, P-256, graviola on kixtop: 189.73 µs, 1.10× the fastest +full handshake, P-256, OpenSSL on nixos: 624.35 µs, 2.57× the fastest +full handshake, P-256, OpenSSL on desktop: 400.76 µs, 2.30× the fastest +full handshake, P-256, OpenSSL on nixos2: 760.04 µs, 2.57× the fastest +full handshake, P-256, OpenSSL on kixtop: 401.29 µs, 2.33× the fastest +full handshake, P-256, OpenSSL on ovh-iad: 1.32 ms, 2.32× the fastest +full handshake, P-256, OpenSSL on ovh-sea: 1.15 ms, 2.26× the fastest full handshake, Ed25519 certificate full handshake, Ed25519 certificate, rind on nixos: 186.73 µs, 1.00× the fastest -full handshake, Ed25519 certificate, rind on desktop: 123.11 µs, 1.00× the fastest +full handshake, Ed25519 certificate, rind on desktop: 121.90 µs, 1.00× the fastest full handshake, Ed25519 certificate, rind on nixos2: 213.12 µs, 1.00× the fastest -full handshake, Ed25519 certificate, rind on kixtop: 127.23 µs, 1.03× the fastest +full handshake, Ed25519 certificate, rind on kixtop: 128.51 µs, 1.04× the fastest full handshake, Ed25519 certificate, rind on ovh-iad: 400.37 µs, 1.00× the fastest full handshake, Ed25519 certificate, rind on ovh-sea: 379.57 µs, 1.00× the fastest -full handshake, Ed25519 certificate, aws-lc-rs on nixos: 233.43 µs, 1.25× the fastest -full handshake, Ed25519 certificate, aws-lc-rs on desktop: 168.12 µs, 1.37× the fastest -full handshake, Ed25519 certificate, aws-lc-rs on nixos2: 306.11 µs, 1.44× the fastest -full handshake, Ed25519 certificate, aws-lc-rs on kixtop: 150.93 µs, 1.22× the fastest -full handshake, Ed25519 certificate, aws-lc-rs on ovh-iad: 468.81 µs, 1.17× the fastest -full handshake, Ed25519 certificate, aws-lc-rs on ovh-sea: 437.12 µs, 1.15× the fastest -full handshake, Ed25519 certificate, ring on nixos: 292.96 µs, 1.57× the fastest -full handshake, Ed25519 certificate, ring on desktop: 205.53 µs, 1.67× the fastest -full handshake, Ed25519 certificate, ring on nixos2: 325.29 µs, 1.53× the fastest -full handshake, Ed25519 certificate, ring on kixtop: 155.04 µs, 1.25× the fastest -full handshake, Ed25519 certificate, ring on ovh-iad: 507.02 µs, 1.27× the fastest -full handshake, Ed25519 certificate, ring on ovh-sea: 477.34 µs, 1.26× the fastest -full handshake, Ed25519 certificate, graviola on nixos: 186.05 µs, 1.00× the fastest -full handshake, Ed25519 certificate, graviola on desktop: 125.46 µs, 1.02× the fastest -full handshake, Ed25519 certificate, graviola on nixos2: 250.28 µs, 1.17× the fastest -full handshake, Ed25519 certificate, graviola on kixtop: 124.12 µs, 1.00× the fastest -full handshake, Ed25519 certificate, OpenSSL on nixos: 640.40 µs, 3.44× the fastest -full handshake, Ed25519 certificate, OpenSSL on desktop: 373.29 µs, 3.03× the fastest -full handshake, Ed25519 certificate, OpenSSL on nixos2: 747.09 µs, 3.51× the fastest -full handshake, Ed25519 certificate, OpenSSL on kixtop: 383.83 µs, 3.09× the fastest -full handshake, Ed25519 certificate, OpenSSL on ovh-iad: 1.22 ms, 3.04× the fastest -full handshake, Ed25519 certificate, OpenSSL on ovh-sea: 1.15 ms, 3.04× the fastest +full handshake, Ed25519 certificate, aws-lc-rs on nixos: 233.43 µs, 1.25× the fastest +full handshake, Ed25519 certificate, aws-lc-rs on desktop: 166.63 µs, 1.37× the fastest +full handshake, Ed25519 certificate, aws-lc-rs on nixos2: 306.11 µs, 1.44× the fastest +full handshake, Ed25519 certificate, aws-lc-rs on kixtop: 150.19 µs, 1.22× the fastest +full handshake, Ed25519 certificate, aws-lc-rs on ovh-iad: 468.81 µs, 1.17× the fastest +full handshake, Ed25519 certificate, aws-lc-rs on ovh-sea: 437.12 µs, 1.15× the fastest +full handshake, Ed25519 certificate, ring on nixos: 292.96 µs, 1.57× the fastest +full handshake, Ed25519 certificate, ring on desktop: 202.04 µs, 1.66× the fastest +full handshake, Ed25519 certificate, ring on nixos2: 325.29 µs, 1.53× the fastest +full handshake, Ed25519 certificate, ring on kixtop: 154.50 µs, 1.25× the fastest +full handshake, Ed25519 certificate, ring on ovh-iad: 507.02 µs, 1.27× the fastest +full handshake, Ed25519 certificate, ring on ovh-sea: 477.34 µs, 1.26× the fastest +full handshake, Ed25519 certificate, graviola on nixos: 186.05 µs, 1.00× the fastest +full handshake, Ed25519 certificate, graviola on desktop: 123.71 µs, 1.01× the fastest +full handshake, Ed25519 certificate, graviola on nixos2: 250.28 µs, 1.17× the fastest +full handshake, Ed25519 certificate, graviola on kixtop: 123.59 µs, 1.00× the fastest +full handshake, Ed25519 certificate, OpenSSL on nixos: 640.40 µs, 3.44× the fastest +full handshake, Ed25519 certificate, OpenSSL on desktop: 368.21 µs, 3.02× the fastest +full handshake, Ed25519 certificate, OpenSSL on nixos2: 747.09 µs, 3.51× the fastest +full handshake, Ed25519 certificate, OpenSSL on kixtop: 383.06 µs, 3.10× the fastest +full handshake, Ed25519 certificate, OpenSSL on ovh-iad: 1.22 ms, 3.04× the fastest +full handshake, Ed25519 certificate, OpenSSL on ovh-sea: 1.15 ms, 3.04× the fastest full handshake, RSA-2048 certificate full handshake, RSA-2048 certificate, rind on nixos: 550.14 µs, 1.00× the fastest -full handshake, RSA-2048 certificate, rind on desktop: 428.67 µs, 1.00× the fastest +full handshake, RSA-2048 certificate, rind on desktop: 432.83 µs, 1.00× the fastest full handshake, RSA-2048 certificate, rind on nixos2: 613.80 µs, 1.00× the fastest -full handshake, RSA-2048 certificate, rind on kixtop: 371.35 µs, 1.00× the fastest +full handshake, RSA-2048 certificate, rind on kixtop: 372.92 µs, 1.00× the fastest full handshake, RSA-2048 certificate, rind on ovh-iad: 1.19 ms, 1.00× the fastest full handshake, RSA-2048 certificate, rind on ovh-sea: 1.09 ms, 1.00× the fastest -full handshake, RSA-2048 certificate, aws-lc-rs on nixos: 646.28 µs, 1.17× the fastest -full handshake, RSA-2048 certificate, aws-lc-rs on desktop: 485.87 µs, 1.13× the fastest -full handshake, RSA-2048 certificate, aws-lc-rs on nixos2: 758.17 µs, 1.24× the fastest -full handshake, RSA-2048 certificate, aws-lc-rs on kixtop: 406.71 µs, 1.10× the fastest -full handshake, RSA-2048 certificate, aws-lc-rs on ovh-iad: 1.26 ms, 1.06× the fastest -full handshake, RSA-2048 certificate, aws-lc-rs on ovh-sea: 1.18 ms, 1.09× the fastest -full handshake, RSA-2048 certificate, ring on nixos: 647.36 µs, 1.18× the fastest -full handshake, RSA-2048 certificate, ring on desktop: 493.81 µs, 1.15× the fastest -full handshake, RSA-2048 certificate, ring on nixos2: 678.16 µs, 1.10× the fastest -full handshake, RSA-2048 certificate, ring on kixtop: 446.94 µs, 1.20× the fastest -full handshake, RSA-2048 certificate, ring on ovh-iad: 1.48 ms, 1.25× the fastest -full handshake, RSA-2048 certificate, ring on ovh-sea: 1.38 ms, 1.27× the fastest -full handshake, RSA-2048 certificate, graviola on nixos: 567.91 µs, 1.03× the fastest -full handshake, RSA-2048 certificate, graviola on desktop: 440.23 µs, 1.03× the fastest -full handshake, RSA-2048 certificate, graviola on nixos2: 687.17 µs, 1.12× the fastest -full handshake, RSA-2048 certificate, graviola on kixtop: 683.15 µs, 1.84× the fastest -full handshake, RSA-2048 certificate, OpenSSL on nixos: 992.05 µs, 1.80× the fastest -full handshake, RSA-2048 certificate, OpenSSL on desktop: 682.29 µs, 1.59× the fastest -full handshake, RSA-2048 certificate, OpenSSL on nixos2: 1.01 ms, 1.65× the fastest -full handshake, RSA-2048 certificate, OpenSSL on kixtop: 643.30 µs, 1.73× the fastest -full handshake, RSA-2048 certificate, OpenSSL on ovh-iad: 1.89 ms, 1.59× the fastest -full handshake, RSA-2048 certificate, OpenSSL on ovh-sea: 1.76 ms, 1.62× the fastest +full handshake, RSA-2048 certificate, aws-lc-rs on nixos: 646.28 µs, 1.17× the fastest +full handshake, RSA-2048 certificate, aws-lc-rs on desktop: 480.43 µs, 1.11× the fastest +full handshake, RSA-2048 certificate, aws-lc-rs on nixos2: 758.17 µs, 1.24× the fastest +full handshake, RSA-2048 certificate, aws-lc-rs on kixtop: 409.15 µs, 1.10× the fastest +full handshake, RSA-2048 certificate, aws-lc-rs on ovh-iad: 1.26 ms, 1.06× the fastest +full handshake, RSA-2048 certificate, aws-lc-rs on ovh-sea: 1.18 ms, 1.09× the fastest +full handshake, RSA-2048 certificate, ring on nixos: 647.36 µs, 1.18× the fastest +full handshake, RSA-2048 certificate, ring on desktop: 488.22 µs, 1.13× the fastest +full handshake, RSA-2048 certificate, ring on nixos2: 678.16 µs, 1.10× the fastest +full handshake, RSA-2048 certificate, ring on kixtop: 446.94 µs, 1.20× the fastest +full handshake, RSA-2048 certificate, ring on ovh-iad: 1.48 ms, 1.25× the fastest +full handshake, RSA-2048 certificate, ring on ovh-sea: 1.38 ms, 1.27× the fastest +full handshake, RSA-2048 certificate, graviola on nixos: 567.91 µs, 1.03× the fastest +full handshake, RSA-2048 certificate, graviola on desktop: 440.42 µs, 1.02× the fastest +full handshake, RSA-2048 certificate, graviola on nixos2: 687.17 µs, 1.12× the fastest +full handshake, RSA-2048 certificate, graviola on kixtop: 674.07 µs, 1.81× the fastest +full handshake, RSA-2048 certificate, OpenSSL on nixos: 992.05 µs, 1.80× the fastest +full handshake, RSA-2048 certificate, OpenSSL on desktop: 670.54 µs, 1.55× the fastest +full handshake, RSA-2048 certificate, OpenSSL on nixos2: 1.01 ms, 1.65× the fastest +full handshake, RSA-2048 certificate, OpenSSL on kixtop: 644.46 µs, 1.73× the fastest +full handshake, RSA-2048 certificate, OpenSSL on ovh-iad: 1.89 ms, 1.59× the fastest +full handshake, RSA-2048 certificate, OpenSSL on ovh-sea: 1.76 ms, 1.62× the fastest resumed handshake, X25519 resumed handshake, X25519, rind on nixos: 77.19 µs, 1.00× the fastest -resumed handshake, X25519, rind on desktop: 54.19 µs, 1.00× the fastest +resumed handshake, X25519, rind on desktop: 54.39 µs, 1.00× the fastest resumed handshake, X25519, rind on nixos2: 120.95 µs, 1.00× the fastest -resumed handshake, X25519, rind on kixtop: 66.29 µs, 1.07× the fastest +resumed handshake, X25519, rind on kixtop: 65.88 µs, 1.07× the fastest resumed handshake, X25519, rind on ovh-iad: 202.07 µs, 1.00× the fastest resumed handshake, X25519, rind on ovh-sea: 192.78 µs, 1.00× the fastest -resumed handshake, X25519, aws-lc-rs on nixos: 132.67 µs, 1.72× the fastest -resumed handshake, X25519, aws-lc-rs on desktop: 102.84 µs, 1.90× the fastest -resumed handshake, X25519, aws-lc-rs on nixos2: 229.39 µs, 1.90× the fastest -resumed handshake, X25519, aws-lc-rs on kixtop: 92.46 µs, 1.50× the fastest -resumed handshake, X25519, aws-lc-rs on ovh-iad: 278.39 µs, 1.38× the fastest -resumed handshake, X25519, aws-lc-rs on ovh-sea: 250.87 µs, 1.30× the fastest -resumed handshake, X25519, ring on nixos: 158.11 µs, 2.05× the fastest -resumed handshake, X25519, ring on desktop: 113.00 µs, 2.09× the fastest -resumed handshake, X25519, ring on nixos2: 199.88 µs, 1.65× the fastest -resumed handshake, X25519, ring on kixtop: 88.29 µs, 1.43× the fastest -resumed handshake, X25519, ring on ovh-iad: 287.08 µs, 1.42× the fastest -resumed handshake, X25519, ring on ovh-sea: 266.29 µs, 1.38× the fastest -resumed handshake, X25519, graviola on nixos: 77.33 µs, 1.00× the fastest -resumed handshake, X25519, graviola on desktop: 55.16 µs, 1.02× the fastest -resumed handshake, X25519, graviola on nixos2: 159.71 µs, 1.32× the fastest -resumed handshake, X25519, graviola on kixtop: 61.75 µs, 1.00× the fastest -resumed handshake, X25519, OpenSSL on nixos: 370.51 µs, 4.80× the fastest -resumed handshake, X25519, OpenSSL on desktop: 231.44 µs, 4.27× the fastest -resumed handshake, X25519, OpenSSL on nixos2: 496.91 µs, 4.11× the fastest -resumed handshake, X25519, OpenSSL on kixtop: 255.12 µs, 4.13× the fastest -resumed handshake, X25519, OpenSSL on ovh-iad: 746.29 µs, 3.69× the fastest -resumed handshake, X25519, OpenSSL on ovh-sea: 704.86 µs, 3.66× the fastest +resumed handshake, X25519, aws-lc-rs on nixos: 132.67 µs, 1.72× the fastest +resumed handshake, X25519, aws-lc-rs on desktop: 101.36 µs, 1.86× the fastest +resumed handshake, X25519, aws-lc-rs on nixos2: 229.39 µs, 1.90× the fastest +resumed handshake, X25519, aws-lc-rs on kixtop: 89.83 µs, 1.46× the fastest +resumed handshake, X25519, aws-lc-rs on ovh-iad: 278.39 µs, 1.38× the fastest +resumed handshake, X25519, aws-lc-rs on ovh-sea: 250.87 µs, 1.30× the fastest +resumed handshake, X25519, ring on nixos: 158.11 µs, 2.05× the fastest +resumed handshake, X25519, ring on desktop: 111.29 µs, 2.05× the fastest +resumed handshake, X25519, ring on nixos2: 199.88 µs, 1.65× the fastest +resumed handshake, X25519, ring on kixtop: 87.17 µs, 1.41× the fastest +resumed handshake, X25519, ring on ovh-iad: 287.08 µs, 1.42× the fastest +resumed handshake, X25519, ring on ovh-sea: 266.29 µs, 1.38× the fastest +resumed handshake, X25519, graviola on nixos: 77.33 µs, 1.00× the fastest +resumed handshake, X25519, graviola on desktop: 55.62 µs, 1.02× the fastest +resumed handshake, X25519, graviola on nixos2: 159.71 µs, 1.32× the fastest +resumed handshake, X25519, graviola on kixtop: 61.63 µs, 1.00× the fastest +resumed handshake, X25519, OpenSSL on nixos: 370.51 µs, 4.80× the fastest +resumed handshake, X25519, OpenSSL on desktop: 232.44 µs, 4.27× the fastest +resumed handshake, X25519, OpenSSL on nixos2: 496.91 µs, 4.11× the fastest +resumed handshake, X25519, OpenSSL on kixtop: 253.42 µs, 4.11× the fastest +resumed handshake, X25519, OpenSSL on ovh-iad: 746.29 µs, 3.69× the fastest +resumed handshake, X25519, OpenSSL on ovh-sea: 704.86 µs, 3.66× the fastest 1 MB transfer, AES-128-GCM 1 MB transfer, AES-128-GCM, rind on nixos: 289.43 µs, 1.03× the fastest -1 MB transfer, AES-128-GCM, rind on desktop: 193.36 µs, 1.11× the fastest +1 MB transfer, AES-128-GCM, rind on desktop: 168.21 µs, 1.00× the fastest 1 MB transfer, AES-128-GCM, rind on nixos2: 440.92 µs, 1.00× the fastest -1 MB transfer, AES-128-GCM, rind on kixtop: 308.57 µs, 1.00× the fastest +1 MB transfer, AES-128-GCM, rind on kixtop: 309.22 µs, 1.00× the fastest 1 MB transfer, AES-128-GCM, rind on ovh-iad: 704.59 µs, 1.01× the fastest 1 MB transfer, AES-128-GCM, rind on ovh-sea: 665.48 µs, 1.00× the fastest -1 MB transfer, AES-128-GCM, aws-lc-rs on nixos: 458.21 µs, 1.62× the fastest -1 MB transfer, AES-128-GCM, aws-lc-rs on desktop: 241.18 µs, 1.38× the fastest -1 MB transfer, AES-128-GCM, aws-lc-rs on nixos2: 442.54 µs, 1.00× the fastest -1 MB transfer, AES-128-GCM, aws-lc-rs on kixtop: 310.78 µs, 1.01× the fastest -1 MB transfer, AES-128-GCM, aws-lc-rs on ovh-iad: 700.77 µs, 1.00× the fastest -1 MB transfer, AES-128-GCM, aws-lc-rs on ovh-sea: 677.99 µs, 1.02× the fastest -1 MB transfer, AES-128-GCM, ring on nixos: 282.22 µs, 1.00× the fastest -1 MB transfer, AES-128-GCM, ring on desktop: 174.96 µs, 1.00× the fastest -1 MB transfer, AES-128-GCM, ring on nixos2: 448.76 µs, 1.02× the fastest -1 MB transfer, AES-128-GCM, ring on kixtop: 372.59 µs, 1.21× the fastest -1 MB transfer, AES-128-GCM, ring on ovh-iad: 716.03 µs, 1.02× the fastest -1 MB transfer, AES-128-GCM, ring on ovh-sea: 670.85 µs, 1.01× the fastest -1 MB transfer, AES-128-GCM, graviola on nixos: 424.38 µs, 1.50× the fastest -1 MB transfer, AES-128-GCM, graviola on desktop: 294.75 µs, 1.68× the fastest -1 MB transfer, AES-128-GCM, graviola on nixos2: 579.09 µs, 1.31× the fastest -1 MB transfer, AES-128-GCM, graviola on kixtop: 327.11 µs, 1.06× the fastest -1 MB transfer, AES-128-GCM, OpenSSL on nixos: 469.84 µs, 1.66× the fastest -1 MB transfer, AES-128-GCM, OpenSSL on desktop: 255.72 µs, 1.46× the fastest -1 MB transfer, AES-128-GCM, OpenSSL on nixos2: 491.38 µs, 1.11× the fastest -1 MB transfer, AES-128-GCM, OpenSSL on kixtop: 338.35 µs, 1.10× the fastest -1 MB transfer, AES-128-GCM, OpenSSL on ovh-iad: 789.03 µs, 1.13× the fastest -1 MB transfer, AES-128-GCM, OpenSSL on ovh-sea: 750.68 µs, 1.13× the fastest +1 MB transfer, AES-128-GCM, aws-lc-rs on nixos: 458.21 µs, 1.62× the fastest +1 MB transfer, AES-128-GCM, aws-lc-rs on desktop: 233.34 µs, 1.39× the fastest +1 MB transfer, AES-128-GCM, aws-lc-rs on nixos2: 442.54 µs, 1.00× the fastest +1 MB transfer, AES-128-GCM, aws-lc-rs on kixtop: 313.18 µs, 1.01× the fastest +1 MB transfer, AES-128-GCM, aws-lc-rs on ovh-iad: 700.77 µs, 1.00× the fastest +1 MB transfer, AES-128-GCM, aws-lc-rs on ovh-sea: 677.99 µs, 1.02× the fastest +1 MB transfer, AES-128-GCM, ring on nixos: 282.22 µs, 1.00× the fastest +1 MB transfer, AES-128-GCM, ring on desktop: 170.08 µs, 1.01× the fastest +1 MB transfer, AES-128-GCM, ring on nixos2: 448.76 µs, 1.02× the fastest +1 MB transfer, AES-128-GCM, ring on kixtop: 372.51 µs, 1.20× the fastest +1 MB transfer, AES-128-GCM, ring on ovh-iad: 716.03 µs, 1.02× the fastest +1 MB transfer, AES-128-GCM, ring on ovh-sea: 670.85 µs, 1.01× the fastest +1 MB transfer, AES-128-GCM, graviola on nixos: 424.38 µs, 1.50× the fastest +1 MB transfer, AES-128-GCM, graviola on desktop: 289.61 µs, 1.72× the fastest +1 MB transfer, AES-128-GCM, graviola on nixos2: 579.09 µs, 1.31× the fastest +1 MB transfer, AES-128-GCM, graviola on kixtop: 333.72 µs, 1.08× the fastest +1 MB transfer, AES-128-GCM, OpenSSL on nixos: 469.84 µs, 1.66× the fastest +1 MB transfer, AES-128-GCM, OpenSSL on desktop: 250.85 µs, 1.49× the fastest +1 MB transfer, AES-128-GCM, OpenSSL on nixos2: 491.38 µs, 1.11× the fastest +1 MB transfer, AES-128-GCM, OpenSSL on kixtop: 340.26 µs, 1.10× the fastest +1 MB transfer, AES-128-GCM, OpenSSL on ovh-iad: 789.03 µs, 1.13× the fastest +1 MB transfer, AES-128-GCM, OpenSSL on ovh-sea: 750.68 µs, 1.13× the fastest 1 MB transfer, AES-256-GCM 1 MB transfer, AES-256-GCM, rind on nixos: 292.74 µs, 1.01× the fastest -1 MB transfer, AES-256-GCM, rind on desktop: 189.84 µs, 1.00× the fastest +1 MB transfer, AES-256-GCM, rind on desktop: 184.54 µs, 1.00× the fastest 1 MB transfer, AES-256-GCM, rind on nixos2: 544.88 µs, 1.00× the fastest -1 MB transfer, AES-256-GCM, rind on kixtop: 343.96 µs, 1.01× the fastest +1 MB transfer, AES-256-GCM, rind on kixtop: 348.83 µs, 1.01× the fastest 1 MB transfer, AES-256-GCM, rind on ovh-iad: 960.61 µs, 1.07× the fastest 1 MB transfer, AES-256-GCM, rind on ovh-sea: 845.84 µs, 1.02× the fastest -1 MB transfer, AES-256-GCM, aws-lc-rs on nixos: 461.28 µs, 1.59× the fastest -1 MB transfer, AES-256-GCM, aws-lc-rs on desktop: 272.23 µs, 1.43× the fastest -1 MB transfer, AES-256-GCM, aws-lc-rs on nixos2: 557.86 µs, 1.02× the fastest -1 MB transfer, AES-256-GCM, aws-lc-rs on kixtop: 341.91 µs, 1.00× the fastest -1 MB transfer, AES-256-GCM, aws-lc-rs on ovh-iad: 905.72 µs, 1.01× the fastest -1 MB transfer, AES-256-GCM, aws-lc-rs on ovh-sea: 857.11 µs, 1.03× the fastest -1 MB transfer, AES-256-GCM, ring on nixos: 289.90 µs, 1.00× the fastest -1 MB transfer, AES-256-GCM, ring on desktop: 192.15 µs, 1.01× the fastest -1 MB transfer, AES-256-GCM, ring on nixos2: 567.27 µs, 1.04× the fastest -1 MB transfer, AES-256-GCM, ring on kixtop: 380.26 µs, 1.11× the fastest -1 MB transfer, AES-256-GCM, ring on ovh-iad: 898.87 µs, 1.00× the fastest -1 MB transfer, AES-256-GCM, ring on ovh-sea: 831.86 µs, 1.00× the fastest -1 MB transfer, AES-256-GCM, graviola on nixos: 490.29 µs, 1.69× the fastest -1 MB transfer, AES-256-GCM, graviola on desktop: 338.97 µs, 1.79× the fastest -1 MB transfer, AES-256-GCM, graviola on nixos2: 691.18 µs, 1.27× the fastest -1 MB transfer, AES-256-GCM, graviola on kixtop: 397.41 µs, 1.16× the fastest -1 MB transfer, AES-256-GCM, OpenSSL on nixos: 533.20 µs, 1.84× the fastest -1 MB transfer, AES-256-GCM, OpenSSL on desktop: 292.12 µs, 1.54× the fastest -1 MB transfer, AES-256-GCM, OpenSSL on nixos2: 596.82 µs, 1.10× the fastest -1 MB transfer, AES-256-GCM, OpenSSL on kixtop: 371.49 µs, 1.09× the fastest -1 MB transfer, AES-256-GCM, OpenSSL on ovh-iad: 995.68 µs, 1.11× the fastest -1 MB transfer, AES-256-GCM, OpenSSL on ovh-sea: 936.99 µs, 1.13× the fastest +1 MB transfer, AES-256-GCM, aws-lc-rs on nixos: 461.28 µs, 1.59× the fastest +1 MB transfer, AES-256-GCM, aws-lc-rs on desktop: 265.29 µs, 1.44× the fastest +1 MB transfer, AES-256-GCM, aws-lc-rs on nixos2: 557.86 µs, 1.02× the fastest +1 MB transfer, AES-256-GCM, aws-lc-rs on kixtop: 347.02 µs, 1.00× the fastest +1 MB transfer, AES-256-GCM, aws-lc-rs on ovh-iad: 905.72 µs, 1.01× the fastest +1 MB transfer, AES-256-GCM, aws-lc-rs on ovh-sea: 857.11 µs, 1.03× the fastest +1 MB transfer, AES-256-GCM, ring on nixos: 289.90 µs, 1.00× the fastest +1 MB transfer, AES-256-GCM, ring on desktop: 188.67 µs, 1.02× the fastest +1 MB transfer, AES-256-GCM, ring on nixos2: 567.27 µs, 1.04× the fastest +1 MB transfer, AES-256-GCM, ring on kixtop: 386.93 µs, 1.11× the fastest +1 MB transfer, AES-256-GCM, ring on ovh-iad: 898.87 µs, 1.00× the fastest +1 MB transfer, AES-256-GCM, ring on ovh-sea: 831.86 µs, 1.00× the fastest +1 MB transfer, AES-256-GCM, graviola on nixos: 490.29 µs, 1.69× the fastest +1 MB transfer, AES-256-GCM, graviola on desktop: 337.96 µs, 1.83× the fastest +1 MB transfer, AES-256-GCM, graviola on nixos2: 691.18 µs, 1.27× the fastest +1 MB transfer, AES-256-GCM, graviola on kixtop: 400.75 µs, 1.15× the fastest +1 MB transfer, AES-256-GCM, OpenSSL on nixos: 533.20 µs, 1.84× the fastest +1 MB transfer, AES-256-GCM, OpenSSL on desktop: 285.79 µs, 1.55× the fastest +1 MB transfer, AES-256-GCM, OpenSSL on nixos2: 596.82 µs, 1.10× the fastest +1 MB transfer, AES-256-GCM, OpenSSL on kixtop: 372.29 µs, 1.07× the fastest +1 MB transfer, AES-256-GCM, OpenSSL on ovh-iad: 995.68 µs, 1.11× the fastest +1 MB transfer, AES-256-GCM, OpenSSL on ovh-sea: 936.99 µs, 1.13× the fastest 1 MB transfer, ChaCha20-Poly1305 1 MB transfer, ChaCha20-Poly1305, rind on nixos: 688.78 µs, 1.00× the fastest -1 MB transfer, ChaCha20-Poly1305, rind on desktop: 621.49 µs, 1.04× the fastest +1 MB transfer, ChaCha20-Poly1305, rind on desktop: 596.91 µs, 1.01× the fastest 1 MB transfer, ChaCha20-Poly1305, rind on nixos2: 923.82 µs, 1.00× the fastest -1 MB transfer, ChaCha20-Poly1305, rind on kixtop: 1.12 ms, 1.01× the fastest +1 MB transfer, ChaCha20-Poly1305, rind on kixtop: 1.11 ms, 1.01× the fastest 1 MB transfer, ChaCha20-Poly1305, rind on ovh-iad: 1.47 ms, 1.00× the fastest 1 MB transfer, ChaCha20-Poly1305, rind on ovh-sea: 1.44 ms, 1.00× the fastest -1 MB transfer, ChaCha20-Poly1305, aws-lc-rs on nixos: 687.53 µs, 1.00× the fastest -1 MB transfer, ChaCha20-Poly1305, aws-lc-rs on desktop: 609.72 µs, 1.02× the fastest -1 MB transfer, ChaCha20-Poly1305, aws-lc-rs on nixos2: 928.09 µs, 1.00× the fastest -1 MB transfer, ChaCha20-Poly1305, aws-lc-rs on kixtop: 1.12 ms, 1.01× the fastest -1 MB transfer, ChaCha20-Poly1305, aws-lc-rs on ovh-iad: 1.52 ms, 1.03× the fastest -1 MB transfer, ChaCha20-Poly1305, aws-lc-rs on ovh-sea: 1.43 ms, 1.00× the fastest -1 MB transfer, ChaCha20-Poly1305, ring on nixos: 693.01 µs, 1.01× the fastest -1 MB transfer, ChaCha20-Poly1305, ring on desktop: 594.88 µs, 1.00× the fastest -1 MB transfer, ChaCha20-Poly1305, ring on nixos2: 925.14 µs, 1.00× the fastest -1 MB transfer, ChaCha20-Poly1305, ring on kixtop: 1.11 ms, 1.01× the fastest -1 MB transfer, ChaCha20-Poly1305, ring on ovh-iad: 1.53 ms, 1.04× the fastest -1 MB transfer, ChaCha20-Poly1305, ring on ovh-sea: 1.45 ms, 1.01× the fastest -1 MB transfer, ChaCha20-Poly1305, graviola on nixos: 1.37 ms, 2.00× the fastest -1 MB transfer, ChaCha20-Poly1305, graviola on desktop: 1.17 ms, 1.97× the fastest -1 MB transfer, ChaCha20-Poly1305, graviola on nixos2: 1.64 ms, 1.78× the fastest -1 MB transfer, ChaCha20-Poly1305, graviola on kixtop: 1.79 ms, 1.62× the fastest -1 MB transfer, ChaCha20-Poly1305, OpenSSL on nixos: 782.98 µs, 1.14× the fastest -1 MB transfer, ChaCha20-Poly1305, OpenSSL on desktop: 661.80 µs, 1.11× the fastest -1 MB transfer, ChaCha20-Poly1305, OpenSSL on nixos2: 983.97 µs, 1.07× the fastest -1 MB transfer, ChaCha20-Poly1305, OpenSSL on kixtop: 1.11 ms, 1.00× the fastest -1 MB transfer, ChaCha20-Poly1305, OpenSSL on ovh-iad: 1.77 ms, 1.20× the fastest -1 MB transfer, ChaCha20-Poly1305, OpenSSL on ovh-sea: 1.71 ms, 1.19× the fastest +1 MB transfer, ChaCha20-Poly1305, aws-lc-rs on nixos: 687.53 µs, 1.00× the fastest +1 MB transfer, ChaCha20-Poly1305, aws-lc-rs on desktop: 595.41 µs, 1.01× the fastest +1 MB transfer, ChaCha20-Poly1305, aws-lc-rs on nixos2: 928.09 µs, 1.00× the fastest +1 MB transfer, ChaCha20-Poly1305, aws-lc-rs on kixtop: 1.10 ms, 1.00× the fastest +1 MB transfer, ChaCha20-Poly1305, aws-lc-rs on ovh-iad: 1.52 ms, 1.03× the fastest +1 MB transfer, ChaCha20-Poly1305, aws-lc-rs on ovh-sea: 1.43 ms, 1.00× the fastest +1 MB transfer, ChaCha20-Poly1305, ring on nixos: 693.01 µs, 1.01× the fastest +1 MB transfer, ChaCha20-Poly1305, ring on desktop: 590.49 µs, 1.00× the fastest +1 MB transfer, ChaCha20-Poly1305, ring on nixos2: 925.14 µs, 1.00× the fastest +1 MB transfer, ChaCha20-Poly1305, ring on kixtop: 1.10 ms, 1.00× the fastest +1 MB transfer, ChaCha20-Poly1305, ring on ovh-iad: 1.53 ms, 1.04× the fastest +1 MB transfer, ChaCha20-Poly1305, ring on ovh-sea: 1.45 ms, 1.01× the fastest +1 MB transfer, ChaCha20-Poly1305, graviola on nixos: 1.37 ms, 2.00× the fastest +1 MB transfer, ChaCha20-Poly1305, graviola on desktop: 1.16 ms, 1.97× the fastest +1 MB transfer, ChaCha20-Poly1305, graviola on nixos2: 1.64 ms, 1.78× the fastest +1 MB transfer, ChaCha20-Poly1305, graviola on kixtop: 1.73 ms, 1.58× the fastest +1 MB transfer, ChaCha20-Poly1305, OpenSSL on nixos: 782.98 µs, 1.14× the fastest +1 MB transfer, ChaCha20-Poly1305, OpenSSL on desktop: 658.48 µs, 1.12× the fastest +1 MB transfer, ChaCha20-Poly1305, OpenSSL on nixos2: 983.97 µs, 1.07× the fastest +1 MB transfer, ChaCha20-Poly1305, OpenSSL on kixtop: 1.11 ms, 1.01× the fastest +1 MB transfer, ChaCha20-Poly1305, OpenSSL on ovh-iad: 1.77 ms, 1.20× the fastest +1 MB transfer, ChaCha20-Poly1305, OpenSSL on ovh-sea: 1.71 ms, 1.19× the fastest AEADs - + AES-128-GCM seal, 32 B AES-128-GCM seal, 32 B, rind on nixos: 39 ns, 1.00× the fastest -AES-128-GCM seal, 32 B, rind on desktop: 18 ns, 1.00× the fastest +AES-128-GCM seal, 32 B, rind on desktop: 20 ns, 1.00× the fastest AES-128-GCM seal, 32 B, rind on nixos2: 43 ns, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch, of the AES-NI key expansion and block cipher's raw-pointer loads, and of the SIMD intrinsics as Intel's manual defines them, of its AEAD API's AES-GCM key setup, seal, and open, for AAD and messages under 2^32 bytes, down to HACL*'s Vale AES-GCM routines, composed with Vale's F* proofs of Gcm_blocks_stdcall, Gcm_blocks_decrypt_stdcall, and Compute_iv_stdcall, of the code Vale prints at HACL* f557259007db, which rind imports ✓ -AES-128-GCM seal, 32 B, rind on kixtop: 57 ns, 2.40× the fastest +AES-128-GCM seal, 32 B, rind on kixtop: 57 ns, 2.38× the fastest AES-128-GCM seal, 32 B, rind on ovh-iad: 69 ns, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch, of the AES-NI key expansion and block cipher's raw-pointer loads, and of the SIMD intrinsics as Intel's manual defines them, of its AEAD API's AES-GCM key setup, seal, and open, for AAD and messages under 2^32 bytes, down to HACL*'s Vale AES-GCM routines, composed with Vale's F* proofs of Gcm_blocks_stdcall, Gcm_blocks_decrypt_stdcall, and Compute_iv_stdcall, of the code Vale prints at HACL* f557259007db, which rind imports ✓ AES-128-GCM seal, 32 B, rind on ovh-sea: 68 ns, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch, of the AES-NI key expansion and block cipher's raw-pointer loads, and of the SIMD intrinsics as Intel's manual defines them, of its AEAD API's AES-GCM key setup, seal, and open, for AAD and messages under 2^32 bytes, down to HACL*'s Vale AES-GCM routines, composed with Vale's F* proofs of Gcm_blocks_stdcall, Gcm_blocks_decrypt_stdcall, and Compute_iv_stdcall, of the code Vale prints at HACL* f557259007db, which rind imports ✓ -AES-128-GCM seal, 32 B, aws-lc-rs on nixos: 78 ns, 2.02× the fastest -AES-128-GCM seal, 32 B, aws-lc-rs on desktop: 37 ns, 2.03× the fastest -AES-128-GCM seal, 32 B, aws-lc-rs on nixos2: 89 ns, 2.06× the fastest -AES-128-GCM seal, 32 B, aws-lc-rs on kixtop: 50 ns, 2.10× the fastest -AES-128-GCM seal, 32 B, aws-lc-rs on ovh-iad: 139 ns, 2.02× the fastest -AES-128-GCM seal, 32 B, aws-lc-rs on ovh-sea: 137 ns, 2.01× the fastest -AES-128-GCM seal, 32 B, ring on nixos: 56 ns, 1.45× the fastest -AES-128-GCM seal, 32 B, ring on desktop: 42 ns, 2.30× the fastest -AES-128-GCM seal, 32 B, ring on nixos2: 71 ns, 1.64× the fastest -AES-128-GCM seal, 32 B, ring on kixtop: 42 ns, 1.77× the fastest -AES-128-GCM seal, 32 B, ring on ovh-iad: 111 ns, 1.60× the fastest -AES-128-GCM seal, 32 B, ring on ovh-sea: 109 ns, 1.60× the fastest -AES-128-GCM seal, 32 B, RustCrypto + dalek on nixos: 97 ns, 2.50× the fastest -AES-128-GCM seal, 32 B, RustCrypto + dalek on desktop: 73 ns, 3.98× the fastest -AES-128-GCM seal, 32 B, RustCrypto + dalek on nixos2: 100 ns, 2.33× the fastest -AES-128-GCM seal, 32 B, RustCrypto + dalek on kixtop: 24 ns, 1.00× the fastest -AES-128-GCM seal, 32 B, RustCrypto + dalek on ovh-iad: 158 ns, 2.28× the fastest -AES-128-GCM seal, 32 B, RustCrypto + dalek on ovh-sea: 155 ns, 2.27× the fastest -AES-128-GCM seal, 32 B, graviola on nixos: 70 ns, 1.80× the fastest -AES-128-GCM seal, 32 B, graviola on desktop: 42 ns, 2.33× the fastest -AES-128-GCM seal, 32 B, graviola on nixos2: 71 ns, 1.65× the fastest -AES-128-GCM seal, 32 B, graviola on kixtop: 80 ns, 3.37× the fastest -AES-128-GCM seal, 32 B, libcrux on nixos: 321 ns, 8.29× the fastest -AES-128-GCM seal, 32 B, libcrux on desktop: 168 ns, 9.19× the fastest -AES-128-GCM seal, 32 B, libcrux on nixos2: 282 ns, 6.52× the fastest -AES-128-GCM seal, 32 B, libcrux on kixtop: 53 ns, 2.23× the fastest -AES-128-GCM seal, 32 B, libcrux on ovh-iad: 454 ns, 6.58× the fastest -AES-128-GCM seal, 32 B, libcrux on ovh-sea: 438 ns, 6.42× the fastest -AES-128-GCM seal, 32 B, OpenSSL on nixos: 115 ns, 2.97× the fastest -AES-128-GCM seal, 32 B, OpenSSL on desktop: 55 ns, 3.02× the fastest -AES-128-GCM seal, 32 B, OpenSSL on nixos2: 156 ns, 3.62× the fastest -AES-128-GCM seal, 32 B, OpenSSL on kixtop: 69 ns, 2.91× the fastest -AES-128-GCM seal, 32 B, OpenSSL on ovh-iad: 268 ns, 3.89× the fastest -AES-128-GCM seal, 32 B, OpenSSL on ovh-sea: 235 ns, 3.46× the fastest +AES-128-GCM seal, 32 B, rind (DIT held) on kixtop: 11 ns, 0.45× the fastest +AES-128-GCM seal, 32 B, aws-lc-rs on nixos: 78 ns, 2.02× the fastest +AES-128-GCM seal, 32 B, aws-lc-rs on desktop: 38 ns, 1.90× the fastest +AES-128-GCM seal, 32 B, aws-lc-rs on nixos2: 89 ns, 2.06× the fastest +AES-128-GCM seal, 32 B, aws-lc-rs on kixtop: 50 ns, 2.07× the fastest +AES-128-GCM seal, 32 B, aws-lc-rs on ovh-iad: 139 ns, 2.02× the fastest +AES-128-GCM seal, 32 B, aws-lc-rs on ovh-sea: 137 ns, 2.01× the fastest +AES-128-GCM seal, 32 B, ring on nixos: 56 ns, 1.45× the fastest +AES-128-GCM seal, 32 B, ring on desktop: 41 ns, 2.08× the fastest +AES-128-GCM seal, 32 B, ring on nixos2: 71 ns, 1.64× the fastest +AES-128-GCM seal, 32 B, ring on kixtop: 42 ns, 1.74× the fastest +AES-128-GCM seal, 32 B, ring on ovh-iad: 111 ns, 1.60× the fastest +AES-128-GCM seal, 32 B, ring on ovh-sea: 109 ns, 1.60× the fastest +AES-128-GCM seal, 32 B, RustCrypto + dalek on nixos: 97 ns, 2.50× the fastest +AES-128-GCM seal, 32 B, RustCrypto + dalek on desktop: 73 ns, 3.70× the fastest +AES-128-GCM seal, 32 B, RustCrypto + dalek on nixos2: 100 ns, 2.33× the fastest +AES-128-GCM seal, 32 B, RustCrypto + dalek on kixtop: 24 ns, 1.00× the fastest +AES-128-GCM seal, 32 B, RustCrypto + dalek on ovh-iad: 158 ns, 2.28× the fastest +AES-128-GCM seal, 32 B, RustCrypto + dalek on ovh-sea: 155 ns, 2.27× the fastest +AES-128-GCM seal, 32 B, graviola on nixos: 70 ns, 1.80× the fastest +AES-128-GCM seal, 32 B, graviola on desktop: 42 ns, 2.13× the fastest +AES-128-GCM seal, 32 B, graviola on nixos2: 71 ns, 1.65× the fastest +AES-128-GCM seal, 32 B, graviola on kixtop: 79 ns, 3.30× the fastest +AES-128-GCM seal, 32 B, libcrux on nixos: 321 ns, 8.29× the fastest +AES-128-GCM seal, 32 B, libcrux on desktop: 171 ns, 8.64× the fastest +AES-128-GCM seal, 32 B, libcrux on nixos2: 282 ns, 6.52× the fastest +AES-128-GCM seal, 32 B, libcrux on kixtop: 52 ns, 2.17× the fastest +AES-128-GCM seal, 32 B, libcrux on ovh-iad: 454 ns, 6.58× the fastest +AES-128-GCM seal, 32 B, libcrux on ovh-sea: 438 ns, 6.42× the fastest +AES-128-GCM seal, 32 B, OpenSSL on nixos: 115 ns, 2.97× the fastest +AES-128-GCM seal, 32 B, OpenSSL on desktop: 57 ns, 2.88× the fastest +AES-128-GCM seal, 32 B, OpenSSL on nixos2: 156 ns, 3.62× the fastest +AES-128-GCM seal, 32 B, OpenSSL on kixtop: 67 ns, 2.79× the fastest +AES-128-GCM seal, 32 B, OpenSSL on ovh-iad: 268 ns, 3.89× the fastest +AES-128-GCM seal, 32 B, OpenSSL on ovh-sea: 235 ns, 3.46× the fastest AES-128-GCM seal, 1350 B AES-128-GCM seal, 1350 B, rind on nixos: 165 ns, 1.00× the fastest -AES-128-GCM seal, 1350 B, rind on desktop: 94 ns, 1.00× the fastest +AES-128-GCM seal, 1350 B, rind on desktop: 93 ns, 1.00× the fastest AES-128-GCM seal, 1350 B, rind on nixos2: 246 ns, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch, of the AES-NI key expansion and block cipher's raw-pointer loads, and of the SIMD intrinsics as Intel's manual defines them, of its AEAD API's AES-GCM key setup, seal, and open, for AAD and messages under 2^32 bytes, down to HACL*'s Vale AES-GCM routines, composed with Vale's F* proofs of Gcm_blocks_stdcall, Gcm_blocks_decrypt_stdcall, and Compute_iv_stdcall, of the code Vale prints at HACL* f557259007db, which rind imports ✓ -AES-128-GCM seal, 1350 B, rind on kixtop: 212 ns, 1.18× the fastest +AES-128-GCM seal, 1350 B, rind on kixtop: 209 ns, 1.16× the fastest AES-128-GCM seal, 1350 B, rind on ovh-iad: 398 ns, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch, of the AES-NI key expansion and block cipher's raw-pointer loads, and of the SIMD intrinsics as Intel's manual defines them, of its AEAD API's AES-GCM key setup, seal, and open, for AAD and messages under 2^32 bytes, down to HACL*'s Vale AES-GCM routines, composed with Vale's F* proofs of Gcm_blocks_stdcall, Gcm_blocks_decrypt_stdcall, and Compute_iv_stdcall, of the code Vale prints at HACL* f557259007db, which rind imports ✓ AES-128-GCM seal, 1350 B, rind on ovh-sea: 380 ns, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch, of the AES-NI key expansion and block cipher's raw-pointer loads, and of the SIMD intrinsics as Intel's manual defines them, of its AEAD API's AES-GCM key setup, seal, and open, for AAD and messages under 2^32 bytes, down to HACL*'s Vale AES-GCM routines, composed with Vale's F* proofs of Gcm_blocks_stdcall, Gcm_blocks_decrypt_stdcall, and Compute_iv_stdcall, of the code Vale prints at HACL* f557259007db, which rind imports ✓ -AES-128-GCM seal, 1350 B, aws-lc-rs on nixos: 291 ns, 1.77× the fastest -AES-128-GCM seal, 1350 B, aws-lc-rs on desktop: 149 ns, 1.59× the fastest -AES-128-GCM seal, 1350 B, aws-lc-rs on nixos2: 285 ns, 1.16× the fastest -AES-128-GCM seal, 1350 B, aws-lc-rs on kixtop: 180 ns, 1.00× the fastest -AES-128-GCM seal, 1350 B, aws-lc-rs on ovh-iad: 460 ns, 1.15× the fastest -AES-128-GCM seal, 1350 B, aws-lc-rs on ovh-sea: 439 ns, 1.15× the fastest -AES-128-GCM seal, 1350 B, ring on nixos: 191 ns, 1.16× the fastest -AES-128-GCM seal, 1350 B, ring on desktop: 118 ns, 1.26× the fastest -AES-128-GCM seal, 1350 B, ring on nixos2: 277 ns, 1.13× the fastest -AES-128-GCM seal, 1350 B, ring on kixtop: 212 ns, 1.18× the fastest -AES-128-GCM seal, 1350 B, ring on ovh-iad: 475 ns, 1.19× the fastest -AES-128-GCM seal, 1350 B, ring on ovh-sea: 438 ns, 1.15× the fastest -AES-128-GCM seal, 1350 B, RustCrypto + dalek on nixos: 434 ns, 2.63× the fastest -AES-128-GCM seal, 1350 B, RustCrypto + dalek on desktop: 272 ns, 2.90× the fastest -AES-128-GCM seal, 1350 B, RustCrypto + dalek on nixos2: 547 ns, 2.22× the fastest -AES-128-GCM seal, 1350 B, RustCrypto + dalek on kixtop: 213 ns, 1.18× the fastest -AES-128-GCM seal, 1350 B, RustCrypto + dalek on ovh-iad: 871 ns, 2.19× the fastest -AES-128-GCM seal, 1350 B, RustCrypto + dalek on ovh-sea: 846 ns, 2.23× the fastest -AES-128-GCM seal, 1350 B, graviola on nixos: 295 ns, 1.79× the fastest -AES-128-GCM seal, 1350 B, graviola on desktop: 227 ns, 2.42× the fastest -AES-128-GCM seal, 1350 B, graviola on nixos2: 400 ns, 1.63× the fastest -AES-128-GCM seal, 1350 B, graviola on kixtop: 215 ns, 1.20× the fastest -AES-128-GCM seal, 1350 B, libcrux on nixos: 4.72 µs, 28.63× the fastest -AES-128-GCM seal, 1350 B, libcrux on desktop: 1.94 µs, 20.74× the fastest -AES-128-GCM seal, 1350 B, libcrux on nixos2: 3.49 µs, 14.19× the fastest -AES-128-GCM seal, 1350 B, libcrux on kixtop: 619 ns, 3.44× the fastest -AES-128-GCM seal, 1350 B, libcrux on ovh-iad: 5.46 µs, 13.70× the fastest -AES-128-GCM seal, 1350 B, libcrux on ovh-sea: 5.29 µs, 13.92× the fastest -AES-128-GCM seal, 1350 B, OpenSSL on nixos: 326 ns, 1.98× the fastest -AES-128-GCM seal, 1350 B, OpenSSL on desktop: 163 ns, 1.74× the fastest -AES-128-GCM seal, 1350 B, OpenSSL on nixos2: 352 ns, 1.43× the fastest -AES-128-GCM seal, 1350 B, OpenSSL on kixtop: 197 ns, 1.09× the fastest -AES-128-GCM seal, 1350 B, OpenSSL on ovh-iad: 561 ns, 1.41× the fastest -AES-128-GCM seal, 1350 B, OpenSSL on ovh-sea: 534 ns, 1.41× the fastest +AES-128-GCM seal, 1350 B, rind (DIT held) on kixtop: 161 ns, 0.89× the fastest +AES-128-GCM seal, 1350 B, aws-lc-rs on nixos: 291 ns, 1.77× the fastest +AES-128-GCM seal, 1350 B, aws-lc-rs on desktop: 159 ns, 1.71× the fastest +AES-128-GCM seal, 1350 B, aws-lc-rs on nixos2: 285 ns, 1.16× the fastest +AES-128-GCM seal, 1350 B, aws-lc-rs on kixtop: 181 ns, 1.00× the fastest +AES-128-GCM seal, 1350 B, aws-lc-rs on ovh-iad: 460 ns, 1.15× the fastest +AES-128-GCM seal, 1350 B, aws-lc-rs on ovh-sea: 439 ns, 1.15× the fastest +AES-128-GCM seal, 1350 B, ring on nixos: 191 ns, 1.16× the fastest +AES-128-GCM seal, 1350 B, ring on desktop: 119 ns, 1.29× the fastest +AES-128-GCM seal, 1350 B, ring on nixos2: 277 ns, 1.13× the fastest +AES-128-GCM seal, 1350 B, ring on kixtop: 210 ns, 1.16× the fastest +AES-128-GCM seal, 1350 B, ring on ovh-iad: 475 ns, 1.19× the fastest +AES-128-GCM seal, 1350 B, ring on ovh-sea: 438 ns, 1.15× the fastest +AES-128-GCM seal, 1350 B, RustCrypto + dalek on nixos: 434 ns, 2.63× the fastest +AES-128-GCM seal, 1350 B, RustCrypto + dalek on desktop: 278 ns, 3.00× the fastest +AES-128-GCM seal, 1350 B, RustCrypto + dalek on nixos2: 547 ns, 2.22× the fastest +AES-128-GCM seal, 1350 B, RustCrypto + dalek on kixtop: 212 ns, 1.17× the fastest +AES-128-GCM seal, 1350 B, RustCrypto + dalek on ovh-iad: 871 ns, 2.19× the fastest +AES-128-GCM seal, 1350 B, RustCrypto + dalek on ovh-sea: 846 ns, 2.23× the fastest +AES-128-GCM seal, 1350 B, graviola on nixos: 295 ns, 1.79× the fastest +AES-128-GCM seal, 1350 B, graviola on desktop: 226 ns, 2.44× the fastest +AES-128-GCM seal, 1350 B, graviola on nixos2: 400 ns, 1.63× the fastest +AES-128-GCM seal, 1350 B, graviola on kixtop: 216 ns, 1.19× the fastest +AES-128-GCM seal, 1350 B, libcrux on nixos: 4.72 µs, 28.63× the fastest +AES-128-GCM seal, 1350 B, libcrux on desktop: 1.98 µs, 21.37× the fastest +AES-128-GCM seal, 1350 B, libcrux on nixos2: 3.49 µs, 14.19× the fastest +AES-128-GCM seal, 1350 B, libcrux on kixtop: 600 ns, 3.31× the fastest +AES-128-GCM seal, 1350 B, libcrux on ovh-iad: 5.46 µs, 13.70× the fastest +AES-128-GCM seal, 1350 B, libcrux on ovh-sea: 5.29 µs, 13.92× the fastest +AES-128-GCM seal, 1350 B, OpenSSL on nixos: 326 ns, 1.98× the fastest +AES-128-GCM seal, 1350 B, OpenSSL on desktop: 160 ns, 1.73× the fastest +AES-128-GCM seal, 1350 B, OpenSSL on nixos2: 352 ns, 1.43× the fastest +AES-128-GCM seal, 1350 B, OpenSSL on kixtop: 196 ns, 1.08× the fastest +AES-128-GCM seal, 1350 B, OpenSSL on ovh-iad: 561 ns, 1.41× the fastest +AES-128-GCM seal, 1350 B, OpenSSL on ovh-sea: 534 ns, 1.41× the fastest AES-128-GCM seal, 16 KB AES-128-GCM seal, 16 KB, rind on nixos: 1.38 µs, 1.00× the fastest -AES-128-GCM seal, 16 KB, rind on desktop: 781 ns, 1.00× the fastest +AES-128-GCM seal, 16 KB, rind on desktop: 799 ns, 1.00× the fastest AES-128-GCM seal, 16 KB, rind on nixos2: 2.33 µs, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch, of the AES-NI key expansion and block cipher's raw-pointer loads, and of the SIMD intrinsics as Intel's manual defines them, of its AEAD API's AES-GCM key setup, seal, and open, for AAD and messages under 2^32 bytes, down to HACL*'s Vale AES-GCM routines, composed with Vale's F* proofs of Gcm_blocks_stdcall, Gcm_blocks_decrypt_stdcall, and Compute_iv_stdcall, of the code Vale prints at HACL* f557259007db, which rind imports ✓ -AES-128-GCM seal, 16 KB, rind on kixtop: 1.49 µs, 1.03× the fastest +AES-128-GCM seal, 16 KB, rind on kixtop: 1.48 µs, 1.03× the fastest AES-128-GCM seal, 16 KB, rind on ovh-iad: 3.83 µs, 1.01× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch, of the AES-NI key expansion and block cipher's raw-pointer loads, and of the SIMD intrinsics as Intel's manual defines them, of its AEAD API's AES-GCM key setup, seal, and open, for AAD and messages under 2^32 bytes, down to HACL*'s Vale AES-GCM routines, composed with Vale's F* proofs of Gcm_blocks_stdcall, Gcm_blocks_decrypt_stdcall, and Compute_iv_stdcall, of the code Vale prints at HACL* f557259007db, which rind imports ✓ AES-128-GCM seal, 16 KB, rind on ovh-sea: 3.67 µs, 1.02× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch, of the AES-NI key expansion and block cipher's raw-pointer loads, and of the SIMD intrinsics as Intel's manual defines them, of its AEAD API's AES-GCM key setup, seal, and open, for AAD and messages under 2^32 bytes, down to HACL*'s Vale AES-GCM routines, composed with Vale's F* proofs of Gcm_blocks_stdcall, Gcm_blocks_decrypt_stdcall, and Compute_iv_stdcall, of the code Vale prints at HACL* f557259007db, which rind imports ✓ -AES-128-GCM seal, 16 KB, aws-lc-rs on nixos: 2.63 µs, 1.91× the fastest -AES-128-GCM seal, 16 KB, aws-lc-rs on desktop: 1.33 µs, 1.70× the fastest -AES-128-GCM seal, 16 KB, aws-lc-rs on nixos2: 2.42 µs, 1.04× the fastest -AES-128-GCM seal, 16 KB, aws-lc-rs on kixtop: 1.45 µs, 1.00× the fastest -AES-128-GCM seal, 16 KB, aws-lc-rs on ovh-iad: 3.79 µs, 1.00× the fastest -AES-128-GCM seal, 16 KB, aws-lc-rs on ovh-sea: 3.70 µs, 1.02× the fastest -AES-128-GCM seal, 16 KB, ring on nixos: 1.39 µs, 1.01× the fastest -AES-128-GCM seal, 16 KB, ring on desktop: 799 ns, 1.02× the fastest -AES-128-GCM seal, 16 KB, ring on nixos2: 2.38 µs, 1.02× the fastest -AES-128-GCM seal, 16 KB, ring on kixtop: 1.97 µs, 1.35× the fastest -AES-128-GCM seal, 16 KB, ring on ovh-iad: 3.89 µs, 1.03× the fastest -AES-128-GCM seal, 16 KB, ring on ovh-sea: 3.61 µs, 1.00× the fastest -AES-128-GCM seal, 16 KB, RustCrypto + dalek on nixos: 4.28 µs, 3.10× the fastest -AES-128-GCM seal, 16 KB, RustCrypto + dalek on desktop: 2.49 µs, 3.19× the fastest -AES-128-GCM seal, 16 KB, RustCrypto + dalek on nixos2: 5.62 µs, 2.41× the fastest -AES-128-GCM seal, 16 KB, RustCrypto + dalek on kixtop: 2.36 µs, 1.62× the fastest -AES-128-GCM seal, 16 KB, RustCrypto + dalek on ovh-iad: 8.86 µs, 2.34× the fastest -AES-128-GCM seal, 16 KB, RustCrypto + dalek on ovh-sea: 8.62 µs, 2.39× the fastest -AES-128-GCM seal, 16 KB, graviola on nixos: 2.57 µs, 1.86× the fastest -AES-128-GCM seal, 16 KB, graviola on desktop: 2.02 µs, 2.59× the fastest -AES-128-GCM seal, 16 KB, graviola on nixos2: 3.75 µs, 1.61× the fastest -AES-128-GCM seal, 16 KB, graviola on kixtop: 1.60 µs, 1.10× the fastest -AES-128-GCM seal, 16 KB, libcrux on nixos: 53.90 µs, 39.11× the fastest -AES-128-GCM seal, 16 KB, libcrux on desktop: 22.02 µs, 28.20× the fastest -AES-128-GCM seal, 16 KB, libcrux on nixos2: 39.94 µs, 17.11× the fastest -AES-128-GCM seal, 16 KB, libcrux on kixtop: 7.15 µs, 4.92× the fastest -AES-128-GCM seal, 16 KB, libcrux on ovh-iad: 61.68 µs, 16.28× the fastest -AES-128-GCM seal, 16 KB, libcrux on ovh-sea: 60.59 µs, 16.80× the fastest -AES-128-GCM seal, 16 KB, OpenSSL on nixos: 2.61 µs, 1.89× the fastest -AES-128-GCM seal, 16 KB, OpenSSL on desktop: 1.34 µs, 1.72× the fastest -AES-128-GCM seal, 16 KB, OpenSSL on nixos2: 2.45 µs, 1.05× the fastest -AES-128-GCM seal, 16 KB, OpenSSL on kixtop: 1.52 µs, 1.04× the fastest -AES-128-GCM seal, 16 KB, OpenSSL on ovh-iad: 4.17 µs, 1.10× the fastest -AES-128-GCM seal, 16 KB, OpenSSL on ovh-sea: 3.84 µs, 1.06× the fastest +AES-128-GCM seal, 16 KB, rind (DIT held) on kixtop: 1.43 µs, 0.99× the fastest +AES-128-GCM seal, 16 KB, aws-lc-rs on nixos: 2.63 µs, 1.91× the fastest +AES-128-GCM seal, 16 KB, aws-lc-rs on desktop: 1.32 µs, 1.66× the fastest +AES-128-GCM seal, 16 KB, aws-lc-rs on nixos2: 2.42 µs, 1.04× the fastest +AES-128-GCM seal, 16 KB, aws-lc-rs on kixtop: 1.44 µs, 1.00× the fastest +AES-128-GCM seal, 16 KB, aws-lc-rs on ovh-iad: 3.79 µs, 1.00× the fastest +AES-128-GCM seal, 16 KB, aws-lc-rs on ovh-sea: 3.70 µs, 1.02× the fastest +AES-128-GCM seal, 16 KB, ring on nixos: 1.39 µs, 1.01× the fastest +AES-128-GCM seal, 16 KB, ring on desktop: 818 ns, 1.02× the fastest +AES-128-GCM seal, 16 KB, ring on nixos2: 2.38 µs, 1.02× the fastest +AES-128-GCM seal, 16 KB, ring on kixtop: 1.94 µs, 1.34× the fastest +AES-128-GCM seal, 16 KB, ring on ovh-iad: 3.89 µs, 1.03× the fastest +AES-128-GCM seal, 16 KB, ring on ovh-sea: 3.61 µs, 1.00× the fastest +AES-128-GCM seal, 16 KB, RustCrypto + dalek on nixos: 4.28 µs, 3.10× the fastest +AES-128-GCM seal, 16 KB, RustCrypto + dalek on desktop: 2.49 µs, 3.11× the fastest +AES-128-GCM seal, 16 KB, RustCrypto + dalek on nixos2: 5.62 µs, 2.41× the fastest +AES-128-GCM seal, 16 KB, RustCrypto + dalek on kixtop: 2.26 µs, 1.57× the fastest +AES-128-GCM seal, 16 KB, RustCrypto + dalek on ovh-iad: 8.86 µs, 2.34× the fastest +AES-128-GCM seal, 16 KB, RustCrypto + dalek on ovh-sea: 8.62 µs, 2.39× the fastest +AES-128-GCM seal, 16 KB, graviola on nixos: 2.57 µs, 1.86× the fastest +AES-128-GCM seal, 16 KB, graviola on desktop: 2.05 µs, 2.57× the fastest +AES-128-GCM seal, 16 KB, graviola on nixos2: 3.75 µs, 1.61× the fastest +AES-128-GCM seal, 16 KB, graviola on kixtop: 1.60 µs, 1.11× the fastest +AES-128-GCM seal, 16 KB, libcrux on nixos: 53.90 µs, 39.11× the fastest +AES-128-GCM seal, 16 KB, libcrux on desktop: 22.05 µs, 27.59× the fastest +AES-128-GCM seal, 16 KB, libcrux on nixos2: 39.94 µs, 17.11× the fastest +AES-128-GCM seal, 16 KB, libcrux on kixtop: 6.78 µs, 4.70× the fastest +AES-128-GCM seal, 16 KB, libcrux on ovh-iad: 61.68 µs, 16.28× the fastest +AES-128-GCM seal, 16 KB, libcrux on ovh-sea: 60.59 µs, 16.80× the fastest +AES-128-GCM seal, 16 KB, OpenSSL on nixos: 2.61 µs, 1.89× the fastest +AES-128-GCM seal, 16 KB, OpenSSL on desktop: 1.35 µs, 1.68× the fastest +AES-128-GCM seal, 16 KB, OpenSSL on nixos2: 2.45 µs, 1.05× the fastest +AES-128-GCM seal, 16 KB, OpenSSL on kixtop: 1.51 µs, 1.05× the fastest +AES-128-GCM seal, 16 KB, OpenSSL on ovh-iad: 4.17 µs, 1.10× the fastest +AES-128-GCM seal, 16 KB, OpenSSL on ovh-sea: 3.84 µs, 1.06× the fastest AES-128-GCM open, 32 B AES-128-GCM open, 32 B, rind on nixos: 44 ns, 1.00× the fastest -AES-128-GCM open, 32 B, rind on desktop: 28 ns, 1.00× the fastest +AES-128-GCM open, 32 B, rind on desktop: 15 ns, 1.00× the fastest AES-128-GCM open, 32 B, rind on nixos2: 38 ns, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch, of the AES-NI key expansion and block cipher's raw-pointer loads, and of the SIMD intrinsics as Intel's manual defines them, of its AEAD API's AES-GCM key setup, seal, and open, for AAD and messages under 2^32 bytes, down to HACL*'s Vale AES-GCM routines, composed with Vale's F* proofs of Gcm_blocks_stdcall, Gcm_blocks_decrypt_stdcall, and Compute_iv_stdcall, of the code Vale prints at HACL* f557259007db, which rind imports ✓ -AES-128-GCM open, 32 B, rind on kixtop: 47 ns, 1.71× the fastest +AES-128-GCM open, 32 B, rind on kixtop: 47 ns, 1.69× the fastest AES-128-GCM open, 32 B, rind on ovh-iad: 62 ns, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch, of the AES-NI key expansion and block cipher's raw-pointer loads, and of the SIMD intrinsics as Intel's manual defines them, of its AEAD API's AES-GCM key setup, seal, and open, for AAD and messages under 2^32 bytes, down to HACL*'s Vale AES-GCM routines, composed with Vale's F* proofs of Gcm_blocks_stdcall, Gcm_blocks_decrypt_stdcall, and Compute_iv_stdcall, of the code Vale prints at HACL* f557259007db, which rind imports ✓ AES-128-GCM open, 32 B, rind on ovh-sea: 60 ns, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch, of the AES-NI key expansion and block cipher's raw-pointer loads, and of the SIMD intrinsics as Intel's manual defines them, of its AEAD API's AES-GCM key setup, seal, and open, for AAD and messages under 2^32 bytes, down to HACL*'s Vale AES-GCM routines, composed with Vale's F* proofs of Gcm_blocks_stdcall, Gcm_blocks_decrypt_stdcall, and Compute_iv_stdcall, of the code Vale prints at HACL* f557259007db, which rind imports ✓ -AES-128-GCM open, 32 B, aws-lc-rs on nixos: 72 ns, 1.63× the fastest -AES-128-GCM open, 32 B, aws-lc-rs on desktop: 37 ns, 1.31× the fastest -AES-128-GCM open, 32 B, aws-lc-rs on nixos2: 90 ns, 2.41× the fastest -AES-128-GCM open, 32 B, aws-lc-rs on kixtop: 47 ns, 1.70× the fastest -AES-128-GCM open, 32 B, aws-lc-rs on ovh-iad: 142 ns, 2.29× the fastest -AES-128-GCM open, 32 B, aws-lc-rs on ovh-sea: 140 ns, 2.35× the fastest -AES-128-GCM open, 32 B, ring on nixos: 58 ns, 1.30× the fastest -AES-128-GCM open, 32 B, ring on desktop: 42 ns, 1.49× the fastest -AES-128-GCM open, 32 B, ring on nixos2: 98 ns, 2.60× the fastest -AES-128-GCM open, 32 B, ring on kixtop: 39 ns, 1.42× the fastest -AES-128-GCM open, 32 B, ring on ovh-iad: 124 ns, 2.01× the fastest -AES-128-GCM open, 32 B, ring on ovh-sea: 126 ns, 2.11× the fastest -AES-128-GCM open, 32 B, RustCrypto + dalek on nixos: 102 ns, 2.29× the fastest -AES-128-GCM open, 32 B, RustCrypto + dalek on desktop: 78 ns, 2.73× the fastest -AES-128-GCM open, 32 B, RustCrypto + dalek on nixos2: 104 ns, 2.78× the fastest -AES-128-GCM open, 32 B, RustCrypto + dalek on kixtop: 28 ns, 1.00× the fastest -AES-128-GCM open, 32 B, RustCrypto + dalek on ovh-iad: 166 ns, 2.67× the fastest -AES-128-GCM open, 32 B, RustCrypto + dalek on ovh-sea: 161 ns, 2.70× the fastest -AES-128-GCM open, 32 B, graviola on nixos: 65 ns, 1.46× the fastest -AES-128-GCM open, 32 B, graviola on desktop: 36 ns, 1.26× the fastest -AES-128-GCM open, 32 B, graviola on nixos2: 69 ns, 1.83× the fastest -AES-128-GCM open, 32 B, graviola on kixtop: 85 ns, 3.06× the fastest -AES-128-GCM open, 32 B, libcrux on nixos: 317 ns, 7.15× the fastest -AES-128-GCM open, 32 B, libcrux on desktop: 159 ns, 5.59× the fastest -AES-128-GCM open, 32 B, libcrux on nixos2: 303 ns, 8.06× the fastest -AES-128-GCM open, 32 B, libcrux on kixtop: 64 ns, 2.30× the fastest -AES-128-GCM open, 32 B, libcrux on ovh-iad: 485 ns, 7.81× the fastest -AES-128-GCM open, 32 B, libcrux on ovh-sea: 465 ns, 7.79× the fastest -AES-128-GCM open, 32 B, OpenSSL on nixos: 118 ns, 2.65× the fastest -AES-128-GCM open, 32 B, OpenSSL on desktop: 58 ns, 2.02× the fastest -AES-128-GCM open, 32 B, OpenSSL on nixos2: 159 ns, 4.24× the fastest -AES-128-GCM open, 32 B, OpenSSL on kixtop: 65 ns, 2.36× the fastest -AES-128-GCM open, 32 B, OpenSSL on ovh-iad: 267 ns, 4.30× the fastest -AES-128-GCM open, 32 B, OpenSSL on ovh-sea: 241 ns, 4.04× the fastest +AES-128-GCM open, 32 B, rind (DIT held) on kixtop: 13 ns, 0.46× the fastest +AES-128-GCM open, 32 B, aws-lc-rs on nixos: 72 ns, 1.63× the fastest +AES-128-GCM open, 32 B, aws-lc-rs on desktop: 38 ns, 2.50× the fastest +AES-128-GCM open, 32 B, aws-lc-rs on nixos2: 90 ns, 2.41× the fastest +AES-128-GCM open, 32 B, aws-lc-rs on kixtop: 47 ns, 1.71× the fastest +AES-128-GCM open, 32 B, aws-lc-rs on ovh-iad: 142 ns, 2.29× the fastest +AES-128-GCM open, 32 B, aws-lc-rs on ovh-sea: 140 ns, 2.35× the fastest +AES-128-GCM open, 32 B, ring on nixos: 58 ns, 1.30× the fastest +AES-128-GCM open, 32 B, ring on desktop: 41 ns, 2.71× the fastest +AES-128-GCM open, 32 B, ring on nixos2: 98 ns, 2.60× the fastest +AES-128-GCM open, 32 B, ring on kixtop: 39 ns, 1.42× the fastest +AES-128-GCM open, 32 B, ring on ovh-iad: 124 ns, 2.01× the fastest +AES-128-GCM open, 32 B, ring on ovh-sea: 126 ns, 2.11× the fastest +AES-128-GCM open, 32 B, RustCrypto + dalek on nixos: 102 ns, 2.29× the fastest +AES-128-GCM open, 32 B, RustCrypto + dalek on desktop: 78 ns, 5.15× the fastest +AES-128-GCM open, 32 B, RustCrypto + dalek on nixos2: 104 ns, 2.78× the fastest +AES-128-GCM open, 32 B, RustCrypto + dalek on kixtop: 28 ns, 1.00× the fastest +AES-128-GCM open, 32 B, RustCrypto + dalek on ovh-iad: 166 ns, 2.67× the fastest +AES-128-GCM open, 32 B, RustCrypto + dalek on ovh-sea: 161 ns, 2.70× the fastest +AES-128-GCM open, 32 B, graviola on nixos: 65 ns, 1.46× the fastest +AES-128-GCM open, 32 B, graviola on desktop: 36 ns, 2.40× the fastest +AES-128-GCM open, 32 B, graviola on nixos2: 69 ns, 1.83× the fastest +AES-128-GCM open, 32 B, graviola on kixtop: 84 ns, 3.04× the fastest +AES-128-GCM open, 32 B, libcrux on nixos: 317 ns, 7.15× the fastest +AES-128-GCM open, 32 B, libcrux on desktop: 162 ns, 10.67× the fastest +AES-128-GCM open, 32 B, libcrux on nixos2: 303 ns, 8.06× the fastest +AES-128-GCM open, 32 B, libcrux on kixtop: 61 ns, 2.23× the fastest +AES-128-GCM open, 32 B, libcrux on ovh-iad: 485 ns, 7.81× the fastest +AES-128-GCM open, 32 B, libcrux on ovh-sea: 465 ns, 7.79× the fastest +AES-128-GCM open, 32 B, OpenSSL on nixos: 118 ns, 2.65× the fastest +AES-128-GCM open, 32 B, OpenSSL on desktop: 59 ns, 3.89× the fastest +AES-128-GCM open, 32 B, OpenSSL on nixos2: 159 ns, 4.24× the fastest +AES-128-GCM open, 32 B, OpenSSL on kixtop: 66 ns, 2.38× the fastest +AES-128-GCM open, 32 B, OpenSSL on ovh-iad: 267 ns, 4.30× the fastest +AES-128-GCM open, 32 B, OpenSSL on ovh-sea: 241 ns, 4.04× the fastest AES-128-GCM open, 1350 B AES-128-GCM open, 1350 B, rind on nixos: 174 ns, 1.00× the fastest -AES-128-GCM open, 1350 B, rind on desktop: 99 ns, 1.00× the fastest +AES-128-GCM open, 1350 B, rind on desktop: 89 ns, 1.00× the fastest AES-128-GCM open, 1350 B, rind on nixos2: 236 ns, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch, of the AES-NI key expansion and block cipher's raw-pointer loads, and of the SIMD intrinsics as Intel's manual defines them, of its AEAD API's AES-GCM key setup, seal, and open, for AAD and messages under 2^32 bytes, down to HACL*'s Vale AES-GCM routines, composed with Vale's F* proofs of Gcm_blocks_stdcall, Gcm_blocks_decrypt_stdcall, and Compute_iv_stdcall, of the code Vale prints at HACL* f557259007db, which rind imports ✓ -AES-128-GCM open, 1350 B, rind on kixtop: 214 ns, 1.11× the fastest +AES-128-GCM open, 1350 B, rind on kixtop: 210 ns, 1.10× the fastest AES-128-GCM open, 1350 B, rind on ovh-iad: 406 ns, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch, of the AES-NI key expansion and block cipher's raw-pointer loads, and of the SIMD intrinsics as Intel's manual defines them, of its AEAD API's AES-GCM key setup, seal, and open, for AAD and messages under 2^32 bytes, down to HACL*'s Vale AES-GCM routines, composed with Vale's F* proofs of Gcm_blocks_stdcall, Gcm_blocks_decrypt_stdcall, and Compute_iv_stdcall, of the code Vale prints at HACL* f557259007db, which rind imports ✓ AES-128-GCM open, 1350 B, rind on ovh-sea: 371 ns, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch, of the AES-NI key expansion and block cipher's raw-pointer loads, and of the SIMD intrinsics as Intel's manual defines them, of its AEAD API's AES-GCM key setup, seal, and open, for AAD and messages under 2^32 bytes, down to HACL*'s Vale AES-GCM routines, composed with Vale's F* proofs of Gcm_blocks_stdcall, Gcm_blocks_decrypt_stdcall, and Compute_iv_stdcall, of the code Vale prints at HACL* f557259007db, which rind imports ✓ -AES-128-GCM open, 1350 B, aws-lc-rs on nixos: 298 ns, 1.71× the fastest -AES-128-GCM open, 1350 B, aws-lc-rs on desktop: 149 ns, 1.51× the fastest -AES-128-GCM open, 1350 B, aws-lc-rs on nixos2: 285 ns, 1.21× the fastest -AES-128-GCM open, 1350 B, aws-lc-rs on kixtop: 193 ns, 1.00× the fastest -AES-128-GCM open, 1350 B, aws-lc-rs on ovh-iad: 525 ns, 1.29× the fastest -AES-128-GCM open, 1350 B, aws-lc-rs on ovh-sea: 437 ns, 1.18× the fastest -AES-128-GCM open, 1350 B, ring on nixos: 185 ns, 1.06× the fastest -AES-128-GCM open, 1350 B, ring on desktop: 114 ns, 1.16× the fastest -AES-128-GCM open, 1350 B, ring on nixos2: 296 ns, 1.25× the fastest -AES-128-GCM open, 1350 B, ring on kixtop: 247 ns, 1.28× the fastest -AES-128-GCM open, 1350 B, ring on ovh-iad: 442 ns, 1.09× the fastest -AES-128-GCM open, 1350 B, ring on ovh-sea: 422 ns, 1.14× the fastest -AES-128-GCM open, 1350 B, RustCrypto + dalek on nixos: 451 ns, 2.58× the fastest -AES-128-GCM open, 1350 B, RustCrypto + dalek on desktop: 282 ns, 2.86× the fastest -AES-128-GCM open, 1350 B, RustCrypto + dalek on nixos2: 564 ns, 2.39× the fastest -AES-128-GCM open, 1350 B, RustCrypto + dalek on kixtop: 237 ns, 1.23× the fastest -AES-128-GCM open, 1350 B, RustCrypto + dalek on ovh-iad: 915 ns, 2.26× the fastest -AES-128-GCM open, 1350 B, RustCrypto + dalek on ovh-sea: 874 ns, 2.36× the fastest -AES-128-GCM open, 1350 B, graviola on nixos: 305 ns, 1.75× the fastest -AES-128-GCM open, 1350 B, graviola on desktop: 176 ns, 1.79× the fastest -AES-128-GCM open, 1350 B, graviola on nixos2: 358 ns, 1.51× the fastest -AES-128-GCM open, 1350 B, graviola on kixtop: 226 ns, 1.17× the fastest -AES-128-GCM open, 1350 B, libcrux on nixos: 3.92 µs, 22.46× the fastest -AES-128-GCM open, 1350 B, libcrux on desktop: 2.00 µs, 20.29× the fastest -AES-128-GCM open, 1350 B, libcrux on nixos2: 3.48 µs, 14.75× the fastest -AES-128-GCM open, 1350 B, libcrux on kixtop: 647 ns, 3.35× the fastest -AES-128-GCM open, 1350 B, libcrux on ovh-iad: 5.38 µs, 13.25× the fastest -AES-128-GCM open, 1350 B, libcrux on ovh-sea: 5.32 µs, 14.33× the fastest -AES-128-GCM open, 1350 B, OpenSSL on nixos: 333 ns, 1.91× the fastest -AES-128-GCM open, 1350 B, OpenSSL on desktop: 159 ns, 1.62× the fastest -AES-128-GCM open, 1350 B, OpenSSL on nixos2: 355 ns, 1.50× the fastest -AES-128-GCM open, 1350 B, OpenSSL on kixtop: 199 ns, 1.03× the fastest -AES-128-GCM open, 1350 B, OpenSSL on ovh-iad: 565 ns, 1.39× the fastest -AES-128-GCM open, 1350 B, OpenSSL on ovh-sea: 546 ns, 1.47× the fastest +AES-128-GCM open, 1350 B, rind (DIT held) on kixtop: 178 ns, 0.93× the fastest +AES-128-GCM open, 1350 B, aws-lc-rs on nixos: 298 ns, 1.71× the fastest +AES-128-GCM open, 1350 B, aws-lc-rs on desktop: 151 ns, 1.69× the fastest +AES-128-GCM open, 1350 B, aws-lc-rs on nixos2: 285 ns, 1.21× the fastest +AES-128-GCM open, 1350 B, aws-lc-rs on kixtop: 191 ns, 1.00× the fastest +AES-128-GCM open, 1350 B, aws-lc-rs on ovh-iad: 525 ns, 1.29× the fastest +AES-128-GCM open, 1350 B, aws-lc-rs on ovh-sea: 437 ns, 1.18× the fastest +AES-128-GCM open, 1350 B, ring on nixos: 185 ns, 1.06× the fastest +AES-128-GCM open, 1350 B, ring on desktop: 114 ns, 1.27× the fastest +AES-128-GCM open, 1350 B, ring on nixos2: 296 ns, 1.25× the fastest +AES-128-GCM open, 1350 B, ring on kixtop: 243 ns, 1.28× the fastest +AES-128-GCM open, 1350 B, ring on ovh-iad: 442 ns, 1.09× the fastest +AES-128-GCM open, 1350 B, ring on ovh-sea: 422 ns, 1.14× the fastest +AES-128-GCM open, 1350 B, RustCrypto + dalek on nixos: 451 ns, 2.58× the fastest +AES-128-GCM open, 1350 B, RustCrypto + dalek on desktop: 283 ns, 3.17× the fastest +AES-128-GCM open, 1350 B, RustCrypto + dalek on nixos2: 564 ns, 2.39× the fastest +AES-128-GCM open, 1350 B, RustCrypto + dalek on kixtop: 232 ns, 1.22× the fastest +AES-128-GCM open, 1350 B, RustCrypto + dalek on ovh-iad: 915 ns, 2.26× the fastest +AES-128-GCM open, 1350 B, RustCrypto + dalek on ovh-sea: 874 ns, 2.36× the fastest +AES-128-GCM open, 1350 B, graviola on nixos: 305 ns, 1.75× the fastest +AES-128-GCM open, 1350 B, graviola on desktop: 175 ns, 1.95× the fastest +AES-128-GCM open, 1350 B, graviola on nixos2: 358 ns, 1.51× the fastest +AES-128-GCM open, 1350 B, graviola on kixtop: 225 ns, 1.18× the fastest +AES-128-GCM open, 1350 B, libcrux on nixos: 3.92 µs, 22.46× the fastest +AES-128-GCM open, 1350 B, libcrux on desktop: 1.99 µs, 22.29× the fastest +AES-128-GCM open, 1350 B, libcrux on nixos2: 3.48 µs, 14.75× the fastest +AES-128-GCM open, 1350 B, libcrux on kixtop: 618 ns, 3.24× the fastest +AES-128-GCM open, 1350 B, libcrux on ovh-iad: 5.38 µs, 13.25× the fastest +AES-128-GCM open, 1350 B, libcrux on ovh-sea: 5.32 µs, 14.33× the fastest +AES-128-GCM open, 1350 B, OpenSSL on nixos: 333 ns, 1.91× the fastest +AES-128-GCM open, 1350 B, OpenSSL on desktop: 162 ns, 1.81× the fastest +AES-128-GCM open, 1350 B, OpenSSL on nixos2: 355 ns, 1.50× the fastest +AES-128-GCM open, 1350 B, OpenSSL on kixtop: 199 ns, 1.05× the fastest +AES-128-GCM open, 1350 B, OpenSSL on ovh-iad: 565 ns, 1.39× the fastest +AES-128-GCM open, 1350 B, OpenSSL on ovh-sea: 546 ns, 1.47× the fastest AES-128-GCM open, 16 KB AES-128-GCM open, 16 KB, rind on nixos: 1.44 µs, 1.00× the fastest -AES-128-GCM open, 16 KB, rind on desktop: 816 ns, 1.00× the fastest +AES-128-GCM open, 16 KB, rind on desktop: 793 ns, 1.00× the fastest AES-128-GCM open, 16 KB, rind on nixos2: 2.52 µs, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch, of the AES-NI key expansion and block cipher's raw-pointer loads, and of the SIMD intrinsics as Intel's manual defines them, of its AEAD API's AES-GCM key setup, seal, and open, for AAD and messages under 2^32 bytes, down to HACL*'s Vale AES-GCM routines, composed with Vale's F* proofs of Gcm_blocks_stdcall, Gcm_blocks_decrypt_stdcall, and Compute_iv_stdcall, of the code Vale prints at HACL* f557259007db, which rind imports ✓ -AES-128-GCM open, 16 KB, rind on kixtop: 1.61 µs, 1.02× the fastest +AES-128-GCM open, 16 KB, rind on kixtop: 1.58 µs, 1.00× the fastest AES-128-GCM open, 16 KB, rind on ovh-iad: 3.99 µs, 1.03× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch, of the AES-NI key expansion and block cipher's raw-pointer loads, and of the SIMD intrinsics as Intel's manual defines them, of its AEAD API's AES-GCM key setup, seal, and open, for AAD and messages under 2^32 bytes, down to HACL*'s Vale AES-GCM routines, composed with Vale's F* proofs of Gcm_blocks_stdcall, Gcm_blocks_decrypt_stdcall, and Compute_iv_stdcall, of the code Vale prints at HACL* f557259007db, which rind imports ✓ AES-128-GCM open, 16 KB, rind on ovh-sea: 3.76 µs, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch, of the AES-NI key expansion and block cipher's raw-pointer loads, and of the SIMD intrinsics as Intel's manual defines them, of its AEAD API's AES-GCM key setup, seal, and open, for AAD and messages under 2^32 bytes, down to HACL*'s Vale AES-GCM routines, composed with Vale's F* proofs of Gcm_blocks_stdcall, Gcm_blocks_decrypt_stdcall, and Compute_iv_stdcall, of the code Vale prints at HACL* f557259007db, which rind imports ✓ -AES-128-GCM open, 16 KB, aws-lc-rs on nixos: 2.72 µs, 1.89× the fastest -AES-128-GCM open, 16 KB, aws-lc-rs on desktop: 1.28 µs, 1.56× the fastest -AES-128-GCM open, 16 KB, aws-lc-rs on nixos2: 2.60 µs, 1.03× the fastest -AES-128-GCM open, 16 KB, aws-lc-rs on kixtop: 1.57 µs, 1.00× the fastest -AES-128-GCM open, 16 KB, aws-lc-rs on ovh-iad: 3.92 µs, 1.02× the fastest -AES-128-GCM open, 16 KB, aws-lc-rs on ovh-sea: 3.81 µs, 1.02× the fastest -AES-128-GCM open, 16 KB, ring on nixos: 1.45 µs, 1.01× the fastest -AES-128-GCM open, 16 KB, ring on desktop: 829 ns, 1.02× the fastest -AES-128-GCM open, 16 KB, ring on nixos2: 2.62 µs, 1.04× the fastest -AES-128-GCM open, 16 KB, ring on kixtop: 2.18 µs, 1.39× the fastest -AES-128-GCM open, 16 KB, ring on ovh-iad: 3.85 µs, 1.00× the fastest -AES-128-GCM open, 16 KB, ring on ovh-sea: 3.80 µs, 1.01× the fastest -AES-128-GCM open, 16 KB, RustCrypto + dalek on nixos: 4.29 µs, 2.98× the fastest -AES-128-GCM open, 16 KB, RustCrypto + dalek on desktop: 2.54 µs, 3.12× the fastest -AES-128-GCM open, 16 KB, RustCrypto + dalek on nixos2: 5.75 µs, 2.28× the fastest -AES-128-GCM open, 16 KB, RustCrypto + dalek on kixtop: 2.46 µs, 1.57× the fastest -AES-128-GCM open, 16 KB, RustCrypto + dalek on ovh-iad: 8.92 µs, 2.31× the fastest -AES-128-GCM open, 16 KB, RustCrypto + dalek on ovh-sea: 8.76 µs, 2.33× the fastest -AES-128-GCM open, 16 KB, graviola on nixos: 2.65 µs, 1.84× the fastest -AES-128-GCM open, 16 KB, graviola on desktop: 1.42 µs, 1.73× the fastest -AES-128-GCM open, 16 KB, graviola on nixos2: 3.39 µs, 1.34× the fastest -AES-128-GCM open, 16 KB, graviola on kixtop: 1.71 µs, 1.09× the fastest -AES-128-GCM open, 16 KB, libcrux on nixos: 44.29 µs, 30.79× the fastest -AES-128-GCM open, 16 KB, libcrux on desktop: 22.31 µs, 27.33× the fastest -AES-128-GCM open, 16 KB, libcrux on nixos2: 41.66 µs, 16.52× the fastest -AES-128-GCM open, 16 KB, libcrux on kixtop: 6.97 µs, 4.44× the fastest -AES-128-GCM open, 16 KB, libcrux on ovh-iad: 61.44 µs, 15.94× the fastest -AES-128-GCM open, 16 KB, libcrux on ovh-sea: 60.04 µs, 15.98× the fastest -AES-128-GCM open, 16 KB, OpenSSL on nixos: 2.77 µs, 1.93× the fastest -AES-128-GCM open, 16 KB, OpenSSL on desktop: 1.30 µs, 1.59× the fastest -AES-128-GCM open, 16 KB, OpenSSL on nixos2: 2.85 µs, 1.13× the fastest -AES-128-GCM open, 16 KB, OpenSSL on kixtop: 1.66 µs, 1.06× the fastest -AES-128-GCM open, 16 KB, OpenSSL on ovh-iad: 4.23 µs, 1.10× the fastest -AES-128-GCM open, 16 KB, OpenSSL on ovh-sea: 3.95 µs, 1.05× the fastest +AES-128-GCM open, 16 KB, rind (DIT held) on kixtop: 1.56 µs, 0.99× the fastest +AES-128-GCM open, 16 KB, aws-lc-rs on nixos: 2.72 µs, 1.89× the fastest +AES-128-GCM open, 16 KB, aws-lc-rs on desktop: 1.26 µs, 1.59× the fastest +AES-128-GCM open, 16 KB, aws-lc-rs on nixos2: 2.60 µs, 1.03× the fastest +AES-128-GCM open, 16 KB, aws-lc-rs on kixtop: 1.58 µs, 1.00× the fastest +AES-128-GCM open, 16 KB, aws-lc-rs on ovh-iad: 3.92 µs, 1.02× the fastest +AES-128-GCM open, 16 KB, aws-lc-rs on ovh-sea: 3.81 µs, 1.02× the fastest +AES-128-GCM open, 16 KB, ring on nixos: 1.45 µs, 1.01× the fastest +AES-128-GCM open, 16 KB, ring on desktop: 814 ns, 1.03× the fastest +AES-128-GCM open, 16 KB, ring on nixos2: 2.62 µs, 1.04× the fastest +AES-128-GCM open, 16 KB, ring on kixtop: 2.16 µs, 1.37× the fastest +AES-128-GCM open, 16 KB, ring on ovh-iad: 3.85 µs, 1.00× the fastest +AES-128-GCM open, 16 KB, ring on ovh-sea: 3.80 µs, 1.01× the fastest +AES-128-GCM open, 16 KB, RustCrypto + dalek on nixos: 4.29 µs, 2.98× the fastest +AES-128-GCM open, 16 KB, RustCrypto + dalek on desktop: 2.51 µs, 3.16× the fastest +AES-128-GCM open, 16 KB, RustCrypto + dalek on nixos2: 5.75 µs, 2.28× the fastest +AES-128-GCM open, 16 KB, RustCrypto + dalek on kixtop: 2.43 µs, 1.54× the fastest +AES-128-GCM open, 16 KB, RustCrypto + dalek on ovh-iad: 8.92 µs, 2.31× the fastest +AES-128-GCM open, 16 KB, RustCrypto + dalek on ovh-sea: 8.76 µs, 2.33× the fastest +AES-128-GCM open, 16 KB, graviola on nixos: 2.65 µs, 1.84× the fastest +AES-128-GCM open, 16 KB, graviola on desktop: 1.40 µs, 1.76× the fastest +AES-128-GCM open, 16 KB, graviola on nixos2: 3.39 µs, 1.34× the fastest +AES-128-GCM open, 16 KB, graviola on kixtop: 1.71 µs, 1.09× the fastest +AES-128-GCM open, 16 KB, libcrux on nixos: 44.29 µs, 30.79× the fastest +AES-128-GCM open, 16 KB, libcrux on desktop: 21.94 µs, 27.67× the fastest +AES-128-GCM open, 16 KB, libcrux on nixos2: 41.66 µs, 16.52× the fastest +AES-128-GCM open, 16 KB, libcrux on kixtop: 6.82 µs, 4.32× the fastest +AES-128-GCM open, 16 KB, libcrux on ovh-iad: 61.44 µs, 15.94× the fastest +AES-128-GCM open, 16 KB, libcrux on ovh-sea: 60.04 µs, 15.98× the fastest +AES-128-GCM open, 16 KB, OpenSSL on nixos: 2.77 µs, 1.93× the fastest +AES-128-GCM open, 16 KB, OpenSSL on desktop: 1.29 µs, 1.62× the fastest +AES-128-GCM open, 16 KB, OpenSSL on nixos2: 2.85 µs, 1.13× the fastest +AES-128-GCM open, 16 KB, OpenSSL on kixtop: 1.65 µs, 1.05× the fastest +AES-128-GCM open, 16 KB, OpenSSL on ovh-iad: 4.23 µs, 1.10× the fastest +AES-128-GCM open, 16 KB, OpenSSL on ovh-sea: 3.95 µs, 1.05× the fastest AES-256-GCM seal, 32 B AES-256-GCM seal, 32 B, rind on nixos: 41 ns, 1.00× the fastest -AES-256-GCM seal, 32 B, rind on desktop: 20 ns, 1.00× the fastest +AES-256-GCM seal, 32 B, rind on desktop: 21 ns, 1.00× the fastest AES-256-GCM seal, 32 B, rind on nixos2: 49 ns, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch, of the AES-NI key expansion and block cipher's raw-pointer loads, and of the SIMD intrinsics as Intel's manual defines them, of its AEAD API's AES-GCM key setup, seal, and open, for AAD and messages under 2^32 bytes, down to HACL*'s Vale AES-GCM routines, composed with Vale's F* proofs of Gcm_blocks_stdcall, Gcm_blocks_decrypt_stdcall, and Compute_iv_stdcall, of the code Vale prints at HACL* f557259007db, which rind imports ✓ -AES-256-GCM seal, 32 B, rind on kixtop: 61 ns, 2.44× the fastest +AES-256-GCM seal, 32 B, rind on kixtop: 61 ns, 2.46× the fastest AES-256-GCM seal, 32 B, rind on ovh-iad: 75 ns, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch, of the AES-NI key expansion and block cipher's raw-pointer loads, and of the SIMD intrinsics as Intel's manual defines them, of its AEAD API's AES-GCM key setup, seal, and open, for AAD and messages under 2^32 bytes, down to HACL*'s Vale AES-GCM routines, composed with Vale's F* proofs of Gcm_blocks_stdcall, Gcm_blocks_decrypt_stdcall, and Compute_iv_stdcall, of the code Vale prints at HACL* f557259007db, which rind imports ✓ AES-256-GCM seal, 32 B, rind on ovh-sea: 74 ns, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch, of the AES-NI key expansion and block cipher's raw-pointer loads, and of the SIMD intrinsics as Intel's manual defines them, of its AEAD API's AES-GCM key setup, seal, and open, for AAD and messages under 2^32 bytes, down to HACL*'s Vale AES-GCM routines, composed with Vale's F* proofs of Gcm_blocks_stdcall, Gcm_blocks_decrypt_stdcall, and Compute_iv_stdcall, of the code Vale prints at HACL* f557259007db, which rind imports ✓ -AES-256-GCM seal, 32 B, aws-lc-rs on nixos: 82 ns, 1.99× the fastest -AES-256-GCM seal, 32 B, aws-lc-rs on desktop: 40 ns, 1.99× the fastest -AES-256-GCM seal, 32 B, aws-lc-rs on nixos2: 95 ns, 1.96× the fastest -AES-256-GCM seal, 32 B, aws-lc-rs on kixtop: 54 ns, 2.18× the fastest -AES-256-GCM seal, 32 B, aws-lc-rs on ovh-iad: 155 ns, 2.05× the fastest -AES-256-GCM seal, 32 B, aws-lc-rs on ovh-sea: 147 ns, 2.00× the fastest -AES-256-GCM seal, 32 B, ring on nixos: 57 ns, 1.38× the fastest -AES-256-GCM seal, 32 B, ring on desktop: 43 ns, 2.16× the fastest -AES-256-GCM seal, 32 B, ring on nixos2: 75 ns, 1.54× the fastest -AES-256-GCM seal, 32 B, ring on kixtop: 45 ns, 1.82× the fastest -AES-256-GCM seal, 32 B, ring on ovh-iad: 122 ns, 1.62× the fastest -AES-256-GCM seal, 32 B, ring on ovh-sea: 119 ns, 1.61× the fastest -AES-256-GCM seal, 32 B, RustCrypto + dalek on nixos: 101 ns, 2.45× the fastest -AES-256-GCM seal, 32 B, RustCrypto + dalek on desktop: 77 ns, 3.90× the fastest -AES-256-GCM seal, 32 B, RustCrypto + dalek on nixos2: 107 ns, 2.21× the fastest -AES-256-GCM seal, 32 B, RustCrypto + dalek on kixtop: 25 ns, 1.00× the fastest -AES-256-GCM seal, 32 B, RustCrypto + dalek on ovh-iad: 170 ns, 2.25× the fastest -AES-256-GCM seal, 32 B, RustCrypto + dalek on ovh-sea: 166 ns, 2.25× the fastest -AES-256-GCM seal, 32 B, graviola on nixos: 74 ns, 1.81× the fastest -AES-256-GCM seal, 32 B, graviola on desktop: 44 ns, 2.22× the fastest -AES-256-GCM seal, 32 B, graviola on nixos2: 78 ns, 1.60× the fastest -AES-256-GCM seal, 32 B, graviola on kixtop: 79 ns, 3.18× the fastest -AES-256-GCM seal, 32 B, libcrux on nixos: 426 ns, 10.35× the fastest -AES-256-GCM seal, 32 B, libcrux on desktop: 216 ns, 10.88× the fastest -AES-256-GCM seal, 32 B, libcrux on nixos2: 344 ns, 7.07× the fastest -AES-256-GCM seal, 32 B, libcrux on kixtop: 53 ns, 2.15× the fastest -AES-256-GCM seal, 32 B, libcrux on ovh-iad: 542 ns, 7.18× the fastest -AES-256-GCM seal, 32 B, libcrux on ovh-sea: 525 ns, 7.13× the fastest -AES-256-GCM seal, 32 B, OpenSSL on nixos: 118 ns, 2.87× the fastest -AES-256-GCM seal, 32 B, OpenSSL on desktop: 58 ns, 2.93× the fastest -AES-256-GCM seal, 32 B, OpenSSL on nixos2: 161 ns, 3.32× the fastest -AES-256-GCM seal, 32 B, OpenSSL on kixtop: 67 ns, 2.72× the fastest -AES-256-GCM seal, 32 B, OpenSSL on ovh-iad: 252 ns, 3.34× the fastest -AES-256-GCM seal, 32 B, OpenSSL on ovh-sea: 245 ns, 3.32× the fastest +AES-256-GCM seal, 32 B, rind (DIT held) on kixtop: 12 ns, 0.48× the fastest +AES-256-GCM seal, 32 B, aws-lc-rs on nixos: 82 ns, 1.99× the fastest +AES-256-GCM seal, 32 B, aws-lc-rs on desktop: 39 ns, 1.83× the fastest +AES-256-GCM seal, 32 B, aws-lc-rs on nixos2: 95 ns, 1.96× the fastest +AES-256-GCM seal, 32 B, aws-lc-rs on kixtop: 53 ns, 2.14× the fastest +AES-256-GCM seal, 32 B, aws-lc-rs on ovh-iad: 155 ns, 2.05× the fastest +AES-256-GCM seal, 32 B, aws-lc-rs on ovh-sea: 147 ns, 2.00× the fastest +AES-256-GCM seal, 32 B, ring on nixos: 57 ns, 1.38× the fastest +AES-256-GCM seal, 32 B, ring on desktop: 43 ns, 2.02× the fastest +AES-256-GCM seal, 32 B, ring on nixos2: 75 ns, 1.54× the fastest +AES-256-GCM seal, 32 B, ring on kixtop: 45 ns, 1.80× the fastest +AES-256-GCM seal, 32 B, ring on ovh-iad: 122 ns, 1.62× the fastest +AES-256-GCM seal, 32 B, ring on ovh-sea: 119 ns, 1.61× the fastest +AES-256-GCM seal, 32 B, RustCrypto + dalek on nixos: 101 ns, 2.45× the fastest +AES-256-GCM seal, 32 B, RustCrypto + dalek on desktop: 78 ns, 3.66× the fastest +AES-256-GCM seal, 32 B, RustCrypto + dalek on nixos2: 107 ns, 2.21× the fastest +AES-256-GCM seal, 32 B, RustCrypto + dalek on kixtop: 25 ns, 1.00× the fastest +AES-256-GCM seal, 32 B, RustCrypto + dalek on ovh-iad: 170 ns, 2.25× the fastest +AES-256-GCM seal, 32 B, RustCrypto + dalek on ovh-sea: 166 ns, 2.25× the fastest +AES-256-GCM seal, 32 B, graviola on nixos: 74 ns, 1.81× the fastest +AES-256-GCM seal, 32 B, graviola on desktop: 45 ns, 2.08× the fastest +AES-256-GCM seal, 32 B, graviola on nixos2: 78 ns, 1.60× the fastest +AES-256-GCM seal, 32 B, graviola on kixtop: 79 ns, 3.17× the fastest +AES-256-GCM seal, 32 B, libcrux on nixos: 426 ns, 10.35× the fastest +AES-256-GCM seal, 32 B, libcrux on desktop: 217 ns, 10.16× the fastest +AES-256-GCM seal, 32 B, libcrux on nixos2: 344 ns, 7.07× the fastest +AES-256-GCM seal, 32 B, libcrux on kixtop: 52 ns, 2.08× the fastest +AES-256-GCM seal, 32 B, libcrux on ovh-iad: 542 ns, 7.18× the fastest +AES-256-GCM seal, 32 B, libcrux on ovh-sea: 525 ns, 7.13× the fastest +AES-256-GCM seal, 32 B, OpenSSL on nixos: 118 ns, 2.87× the fastest +AES-256-GCM seal, 32 B, OpenSSL on desktop: 61 ns, 2.87× the fastest +AES-256-GCM seal, 32 B, OpenSSL on nixos2: 161 ns, 3.32× the fastest +AES-256-GCM seal, 32 B, OpenSSL on kixtop: 67 ns, 2.69× the fastest +AES-256-GCM seal, 32 B, OpenSSL on ovh-iad: 252 ns, 3.34× the fastest +AES-256-GCM seal, 32 B, OpenSSL on ovh-sea: 245 ns, 3.32× the fastest AES-256-GCM seal, 1350 B AES-256-GCM seal, 1350 B, rind on nixos: 184 ns, 1.00× the fastest -AES-256-GCM seal, 1350 B, rind on desktop: 106 ns, 1.00× the fastest +AES-256-GCM seal, 1350 B, rind on desktop: 107 ns, 1.00× the fastest AES-256-GCM seal, 1350 B, rind on nixos2: 325 ns, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch, of the AES-NI key expansion and block cipher's raw-pointer loads, and of the SIMD intrinsics as Intel's manual defines them, of its AEAD API's AES-GCM key setup, seal, and open, for AAD and messages under 2^32 bytes, down to HACL*'s Vale AES-GCM routines, composed with Vale's F* proofs of Gcm_blocks_stdcall, Gcm_blocks_decrypt_stdcall, and Compute_iv_stdcall, of the code Vale prints at HACL* f557259007db, which rind imports ✓ -AES-256-GCM seal, 1350 B, rind on kixtop: 237 ns, 1.16× the fastest +AES-256-GCM seal, 1350 B, rind on kixtop: 232 ns, 1.16× the fastest AES-256-GCM seal, 1350 B, rind on ovh-iad: 523 ns, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch, of the AES-NI key expansion and block cipher's raw-pointer loads, and of the SIMD intrinsics as Intel's manual defines them, of its AEAD API's AES-GCM key setup, seal, and open, for AAD and messages under 2^32 bytes, down to HACL*'s Vale AES-GCM routines, composed with Vale's F* proofs of Gcm_blocks_stdcall, Gcm_blocks_decrypt_stdcall, and Compute_iv_stdcall, of the code Vale prints at HACL* f557259007db, which rind imports ✓ AES-256-GCM seal, 1350 B, rind on ovh-sea: 507 ns, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch, of the AES-NI key expansion and block cipher's raw-pointer loads, and of the SIMD intrinsics as Intel's manual defines them, of its AEAD API's AES-GCM key setup, seal, and open, for AAD and messages under 2^32 bytes, down to HACL*'s Vale AES-GCM routines, composed with Vale's F* proofs of Gcm_blocks_stdcall, Gcm_blocks_decrypt_stdcall, and Compute_iv_stdcall, of the code Vale prints at HACL* f557259007db, which rind imports ✓ -AES-256-GCM seal, 1350 B, aws-lc-rs on nixos: 311 ns, 1.69× the fastest -AES-256-GCM seal, 1350 B, aws-lc-rs on desktop: 173 ns, 1.63× the fastest -AES-256-GCM seal, 1350 B, aws-lc-rs on nixos2: 363 ns, 1.12× the fastest -AES-256-GCM seal, 1350 B, aws-lc-rs on kixtop: 205 ns, 1.00× the fastest -AES-256-GCM seal, 1350 B, aws-lc-rs on ovh-iad: 581 ns, 1.11× the fastest -AES-256-GCM seal, 1350 B, aws-lc-rs on ovh-sea: 556 ns, 1.10× the fastest -AES-256-GCM seal, 1350 B, ring on nixos: 205 ns, 1.11× the fastest -AES-256-GCM seal, 1350 B, ring on desktop: 133 ns, 1.25× the fastest -AES-256-GCM seal, 1350 B, ring on nixos2: 353 ns, 1.09× the fastest -AES-256-GCM seal, 1350 B, ring on kixtop: 220 ns, 1.07× the fastest -AES-256-GCM seal, 1350 B, ring on ovh-iad: 557 ns, 1.06× the fastest -AES-256-GCM seal, 1350 B, ring on ovh-sea: 550 ns, 1.08× the fastest -AES-256-GCM seal, 1350 B, RustCrypto + dalek on nixos: 489 ns, 2.65× the fastest -AES-256-GCM seal, 1350 B, RustCrypto + dalek on desktop: 313 ns, 2.94× the fastest -AES-256-GCM seal, 1350 B, RustCrypto + dalek on nixos2: 623 ns, 1.92× the fastest -AES-256-GCM seal, 1350 B, RustCrypto + dalek on kixtop: 246 ns, 1.20× the fastest -AES-256-GCM seal, 1350 B, RustCrypto + dalek on ovh-iad: 999 ns, 1.91× the fastest -AES-256-GCM seal, 1350 B, RustCrypto + dalek on ovh-sea: 958 ns, 1.89× the fastest -AES-256-GCM seal, 1350 B, graviola on nixos: 337 ns, 1.83× the fastest -AES-256-GCM seal, 1350 B, graviola on desktop: 258 ns, 2.42× the fastest -AES-256-GCM seal, 1350 B, graviola on nixos2: 476 ns, 1.46× the fastest -AES-256-GCM seal, 1350 B, graviola on kixtop: 262 ns, 1.28× the fastest -AES-256-GCM seal, 1350 B, libcrux on nixos: 6.91 µs, 37.50× the fastest -AES-256-GCM seal, 1350 B, libcrux on desktop: 2.83 µs, 26.55× the fastest -AES-256-GCM seal, 1350 B, libcrux on nixos2: 4.50 µs, 13.86× the fastest -AES-256-GCM seal, 1350 B, libcrux on kixtop: 650 ns, 3.18× the fastest -AES-256-GCM seal, 1350 B, libcrux on ovh-iad: 7.07 µs, 13.51× the fastest -AES-256-GCM seal, 1350 B, libcrux on ovh-sea: 6.92 µs, 13.63× the fastest -AES-256-GCM seal, 1350 B, OpenSSL on nixos: 345 ns, 1.87× the fastest -AES-256-GCM seal, 1350 B, OpenSSL on desktop: 186 ns, 1.75× the fastest -AES-256-GCM seal, 1350 B, OpenSSL on nixos2: 437 ns, 1.34× the fastest -AES-256-GCM seal, 1350 B, OpenSSL on kixtop: 222 ns, 1.08× the fastest -AES-256-GCM seal, 1350 B, OpenSSL on ovh-iad: 707 ns, 1.35× the fastest -AES-256-GCM seal, 1350 B, OpenSSL on ovh-sea: 651 ns, 1.28× the fastest +AES-256-GCM seal, 1350 B, rind (DIT held) on kixtop: 188 ns, 0.94× the fastest +AES-256-GCM seal, 1350 B, aws-lc-rs on nixos: 311 ns, 1.69× the fastest +AES-256-GCM seal, 1350 B, aws-lc-rs on desktop: 175 ns, 1.63× the fastest +AES-256-GCM seal, 1350 B, aws-lc-rs on nixos2: 363 ns, 1.12× the fastest +AES-256-GCM seal, 1350 B, aws-lc-rs on kixtop: 201 ns, 1.00× the fastest +AES-256-GCM seal, 1350 B, aws-lc-rs on ovh-iad: 581 ns, 1.11× the fastest +AES-256-GCM seal, 1350 B, aws-lc-rs on ovh-sea: 556 ns, 1.10× the fastest +AES-256-GCM seal, 1350 B, ring on nixos: 205 ns, 1.11× the fastest +AES-256-GCM seal, 1350 B, ring on desktop: 134 ns, 1.25× the fastest +AES-256-GCM seal, 1350 B, ring on nixos2: 353 ns, 1.09× the fastest +AES-256-GCM seal, 1350 B, ring on kixtop: 219 ns, 1.09× the fastest +AES-256-GCM seal, 1350 B, ring on ovh-iad: 557 ns, 1.06× the fastest +AES-256-GCM seal, 1350 B, ring on ovh-sea: 550 ns, 1.08× the fastest +AES-256-GCM seal, 1350 B, RustCrypto + dalek on nixos: 489 ns, 2.65× the fastest +AES-256-GCM seal, 1350 B, RustCrypto + dalek on desktop: 313 ns, 2.92× the fastest +AES-256-GCM seal, 1350 B, RustCrypto + dalek on nixos2: 623 ns, 1.92× the fastest +AES-256-GCM seal, 1350 B, RustCrypto + dalek on kixtop: 239 ns, 1.19× the fastest +AES-256-GCM seal, 1350 B, RustCrypto + dalek on ovh-iad: 999 ns, 1.91× the fastest +AES-256-GCM seal, 1350 B, RustCrypto + dalek on ovh-sea: 958 ns, 1.89× the fastest +AES-256-GCM seal, 1350 B, graviola on nixos: 337 ns, 1.83× the fastest +AES-256-GCM seal, 1350 B, graviola on desktop: 257 ns, 2.40× the fastest +AES-256-GCM seal, 1350 B, graviola on nixos2: 476 ns, 1.46× the fastest +AES-256-GCM seal, 1350 B, graviola on kixtop: 258 ns, 1.28× the fastest +AES-256-GCM seal, 1350 B, libcrux on nixos: 6.91 µs, 37.50× the fastest +AES-256-GCM seal, 1350 B, libcrux on desktop: 2.87 µs, 26.80× the fastest +AES-256-GCM seal, 1350 B, libcrux on nixos2: 4.50 µs, 13.86× the fastest +AES-256-GCM seal, 1350 B, libcrux on kixtop: 630 ns, 3.13× the fastest +AES-256-GCM seal, 1350 B, libcrux on ovh-iad: 7.07 µs, 13.51× the fastest +AES-256-GCM seal, 1350 B, libcrux on ovh-sea: 6.92 µs, 13.63× the fastest +AES-256-GCM seal, 1350 B, OpenSSL on nixos: 345 ns, 1.87× the fastest +AES-256-GCM seal, 1350 B, OpenSSL on desktop: 184 ns, 1.72× the fastest +AES-256-GCM seal, 1350 B, OpenSSL on nixos2: 437 ns, 1.34× the fastest +AES-256-GCM seal, 1350 B, OpenSSL on kixtop: 220 ns, 1.10× the fastest +AES-256-GCM seal, 1350 B, OpenSSL on ovh-iad: 707 ns, 1.35× the fastest +AES-256-GCM seal, 1350 B, OpenSSL on ovh-sea: 651 ns, 1.28× the fastest AES-256-GCM seal, 16 KB AES-256-GCM seal, 16 KB, rind on nixos: 1.51 µs, 1.00× the fastest -AES-256-GCM seal, 16 KB, rind on desktop: 925 ns, 1.00× the fastest +AES-256-GCM seal, 16 KB, rind on desktop: 954 ns, 1.00× the fastest AES-256-GCM seal, 16 KB, rind on nixos2: 3.22 µs, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch, of the AES-NI key expansion and block cipher's raw-pointer loads, and of the SIMD intrinsics as Intel's manual defines them, of its AEAD API's AES-GCM key setup, seal, and open, for AAD and messages under 2^32 bytes, down to HACL*'s Vale AES-GCM routines, composed with Vale's F* proofs of Gcm_blocks_stdcall, Gcm_blocks_decrypt_stdcall, and Compute_iv_stdcall, of the code Vale prints at HACL* f557259007db, which rind imports ✓ -AES-256-GCM seal, 16 KB, rind on kixtop: 1.75 µs, 1.02× the fastest +AES-256-GCM seal, 16 KB, rind on kixtop: 1.73 µs, 1.02× the fastest AES-256-GCM seal, 16 KB, rind on ovh-iad: 5.18 µs, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch, of the AES-NI key expansion and block cipher's raw-pointer loads, and of the SIMD intrinsics as Intel's manual defines them, of its AEAD API's AES-GCM key setup, seal, and open, for AAD and messages under 2^32 bytes, down to HACL*'s Vale AES-GCM routines, composed with Vale's F* proofs of Gcm_blocks_stdcall, Gcm_blocks_decrypt_stdcall, and Compute_iv_stdcall, of the code Vale prints at HACL* f557259007db, which rind imports ✓ AES-256-GCM seal, 16 KB, rind on ovh-sea: 4.99 µs, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch, of the AES-NI key expansion and block cipher's raw-pointer loads, and of the SIMD intrinsics as Intel's manual defines them, of its AEAD API's AES-GCM key setup, seal, and open, for AAD and messages under 2^32 bytes, down to HACL*'s Vale AES-GCM routines, composed with Vale's F* proofs of Gcm_blocks_stdcall, Gcm_blocks_decrypt_stdcall, and Compute_iv_stdcall, of the code Vale prints at HACL* f557259007db, which rind imports ✓ -AES-256-GCM seal, 16 KB, aws-lc-rs on nixos: 2.78 µs, 1.84× the fastest -AES-256-GCM seal, 16 KB, aws-lc-rs on desktop: 1.56 µs, 1.69× the fastest -AES-256-GCM seal, 16 KB, aws-lc-rs on nixos2: 3.30 µs, 1.03× the fastest -AES-256-GCM seal, 16 KB, aws-lc-rs on kixtop: 1.72 µs, 1.00× the fastest -AES-256-GCM seal, 16 KB, aws-lc-rs on ovh-iad: 5.46 µs, 1.05× the fastest -AES-256-GCM seal, 16 KB, aws-lc-rs on ovh-sea: 5.08 µs, 1.02× the fastest -AES-256-GCM seal, 16 KB, ring on nixos: 1.53 µs, 1.01× the fastest -AES-256-GCM seal, 16 KB, ring on desktop: 946 ns, 1.02× the fastest -AES-256-GCM seal, 16 KB, ring on nixos2: 3.25 µs, 1.01× the fastest -AES-256-GCM seal, 16 KB, ring on kixtop: 2.04 µs, 1.19× the fastest -AES-256-GCM seal, 16 KB, ring on ovh-iad: 5.80 µs, 1.12× the fastest -AES-256-GCM seal, 16 KB, ring on ovh-sea: 4.97 µs, 1.00× the fastest -AES-256-GCM seal, 16 KB, RustCrypto + dalek on nixos: 4.78 µs, 3.16× the fastest -AES-256-GCM seal, 16 KB, RustCrypto + dalek on desktop: 2.91 µs, 3.14× the fastest -AES-256-GCM seal, 16 KB, RustCrypto + dalek on nixos2: 6.45 µs, 2.00× the fastest -AES-256-GCM seal, 16 KB, RustCrypto + dalek on kixtop: 2.72 µs, 1.58× the fastest -AES-256-GCM seal, 16 KB, RustCrypto + dalek on ovh-iad: 10.56 µs, 2.04× the fastest -AES-256-GCM seal, 16 KB, RustCrypto + dalek on ovh-sea: 9.94 µs, 2.00× the fastest -AES-256-GCM seal, 16 KB, graviola on nixos: 2.98 µs, 1.97× the fastest -AES-256-GCM seal, 16 KB, graviola on desktop: 2.46 µs, 2.66× the fastest -AES-256-GCM seal, 16 KB, graviola on nixos2: 4.71 µs, 1.46× the fastest -AES-256-GCM seal, 16 KB, graviola on kixtop: 2.16 µs, 1.26× the fastest -AES-256-GCM seal, 16 KB, libcrux on nixos: 80.61 µs, 53.39× the fastest -AES-256-GCM seal, 16 KB, libcrux on desktop: 32.69 µs, 35.34× the fastest -AES-256-GCM seal, 16 KB, libcrux on nixos2: 50.92 µs, 15.81× the fastest -AES-256-GCM seal, 16 KB, libcrux on kixtop: 7.20 µs, 4.19× the fastest -AES-256-GCM seal, 16 KB, libcrux on ovh-iad: 83.14 µs, 16.05× the fastest -AES-256-GCM seal, 16 KB, libcrux on ovh-sea: 78.50 µs, 15.79× the fastest -AES-256-GCM seal, 16 KB, OpenSSL on nixos: 2.82 µs, 1.87× the fastest -AES-256-GCM seal, 16 KB, OpenSSL on desktop: 1.59 µs, 1.72× the fastest -AES-256-GCM seal, 16 KB, OpenSSL on nixos2: 3.34 µs, 1.04× the fastest -AES-256-GCM seal, 16 KB, OpenSSL on kixtop: 1.79 µs, 1.04× the fastest -AES-256-GCM seal, 16 KB, OpenSSL on ovh-iad: 5.20 µs, 1.00× the fastest -AES-256-GCM seal, 16 KB, OpenSSL on ovh-sea: 5.15 µs, 1.04× the fastest +AES-256-GCM seal, 16 KB, rind (DIT held) on kixtop: 1.69 µs, 0.99× the fastest +AES-256-GCM seal, 16 KB, aws-lc-rs on nixos: 2.78 µs, 1.84× the fastest +AES-256-GCM seal, 16 KB, aws-lc-rs on desktop: 1.58 µs, 1.66× the fastest +AES-256-GCM seal, 16 KB, aws-lc-rs on nixos2: 3.30 µs, 1.03× the fastest +AES-256-GCM seal, 16 KB, aws-lc-rs on kixtop: 1.70 µs, 1.00× the fastest +AES-256-GCM seal, 16 KB, aws-lc-rs on ovh-iad: 5.46 µs, 1.05× the fastest +AES-256-GCM seal, 16 KB, aws-lc-rs on ovh-sea: 5.08 µs, 1.02× the fastest +AES-256-GCM seal, 16 KB, ring on nixos: 1.53 µs, 1.01× the fastest +AES-256-GCM seal, 16 KB, ring on desktop: 975 ns, 1.02× the fastest +AES-256-GCM seal, 16 KB, ring on nixos2: 3.25 µs, 1.01× the fastest +AES-256-GCM seal, 16 KB, ring on kixtop: 2.03 µs, 1.20× the fastest +AES-256-GCM seal, 16 KB, ring on ovh-iad: 5.80 µs, 1.12× the fastest +AES-256-GCM seal, 16 KB, ring on ovh-sea: 4.97 µs, 1.00× the fastest +AES-256-GCM seal, 16 KB, RustCrypto + dalek on nixos: 4.78 µs, 3.16× the fastest +AES-256-GCM seal, 16 KB, RustCrypto + dalek on desktop: 2.90 µs, 3.04× the fastest +AES-256-GCM seal, 16 KB, RustCrypto + dalek on nixos2: 6.45 µs, 2.00× the fastest +AES-256-GCM seal, 16 KB, RustCrypto + dalek on kixtop: 2.63 µs, 1.55× the fastest +AES-256-GCM seal, 16 KB, RustCrypto + dalek on ovh-iad: 10.56 µs, 2.04× the fastest +AES-256-GCM seal, 16 KB, RustCrypto + dalek on ovh-sea: 9.94 µs, 2.00× the fastest +AES-256-GCM seal, 16 KB, graviola on nixos: 2.98 µs, 1.97× the fastest +AES-256-GCM seal, 16 KB, graviola on desktop: 2.46 µs, 2.58× the fastest +AES-256-GCM seal, 16 KB, graviola on nixos2: 4.71 µs, 1.46× the fastest +AES-256-GCM seal, 16 KB, graviola on kixtop: 2.13 µs, 1.26× the fastest +AES-256-GCM seal, 16 KB, libcrux on nixos: 80.61 µs, 53.39× the fastest +AES-256-GCM seal, 16 KB, libcrux on desktop: 32.86 µs, 34.45× the fastest +AES-256-GCM seal, 16 KB, libcrux on nixos2: 50.92 µs, 15.81× the fastest +AES-256-GCM seal, 16 KB, libcrux on kixtop: 7.08 µs, 4.17× the fastest +AES-256-GCM seal, 16 KB, libcrux on ovh-iad: 83.14 µs, 16.05× the fastest +AES-256-GCM seal, 16 KB, libcrux on ovh-sea: 78.50 µs, 15.79× the fastest +AES-256-GCM seal, 16 KB, OpenSSL on nixos: 2.82 µs, 1.87× the fastest +AES-256-GCM seal, 16 KB, OpenSSL on desktop: 1.60 µs, 1.68× the fastest +AES-256-GCM seal, 16 KB, OpenSSL on nixos2: 3.34 µs, 1.04× the fastest +AES-256-GCM seal, 16 KB, OpenSSL on kixtop: 1.77 µs, 1.04× the fastest +AES-256-GCM seal, 16 KB, OpenSSL on ovh-iad: 5.20 µs, 1.00× the fastest +AES-256-GCM seal, 16 KB, OpenSSL on ovh-sea: 5.15 µs, 1.04× the fastest AES-256-GCM open, 32 B AES-256-GCM open, 32 B, rind on nixos: 48 ns, 1.00× the fastest -AES-256-GCM open, 32 B, rind on desktop: 28 ns, 1.00× the fastest +AES-256-GCM open, 32 B, rind on desktop: 16 ns, 1.00× the fastest AES-256-GCM open, 32 B, rind on nixos2: 45 ns, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch, of the AES-NI key expansion and block cipher's raw-pointer loads, and of the SIMD intrinsics as Intel's manual defines them, of its AEAD API's AES-GCM key setup, seal, and open, for AAD and messages under 2^32 bytes, down to HACL*'s Vale AES-GCM routines, composed with Vale's F* proofs of Gcm_blocks_stdcall, Gcm_blocks_decrypt_stdcall, and Compute_iv_stdcall, of the code Vale prints at HACL* f557259007db, which rind imports ✓ -AES-256-GCM open, 32 B, rind on kixtop: 49 ns, 1.24× the fastest +AES-256-GCM open, 32 B, rind on kixtop: 48 ns, 1.22× the fastest AES-256-GCM open, 32 B, rind on ovh-iad: 71 ns, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch, of the AES-NI key expansion and block cipher's raw-pointer loads, and of the SIMD intrinsics as Intel's manual defines them, of its AEAD API's AES-GCM key setup, seal, and open, for AAD and messages under 2^32 bytes, down to HACL*'s Vale AES-GCM routines, composed with Vale's F* proofs of Gcm_blocks_stdcall, Gcm_blocks_decrypt_stdcall, and Compute_iv_stdcall, of the code Vale prints at HACL* f557259007db, which rind imports ✓ AES-256-GCM open, 32 B, rind on ovh-sea: 69 ns, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch, of the AES-NI key expansion and block cipher's raw-pointer loads, and of the SIMD intrinsics as Intel's manual defines them, of its AEAD API's AES-GCM key setup, seal, and open, for AAD and messages under 2^32 bytes, down to HACL*'s Vale AES-GCM routines, composed with Vale's F* proofs of Gcm_blocks_stdcall, Gcm_blocks_decrypt_stdcall, and Compute_iv_stdcall, of the code Vale prints at HACL* f557259007db, which rind imports ✓ -AES-256-GCM open, 32 B, aws-lc-rs on nixos: 79 ns, 1.62× the fastest -AES-256-GCM open, 32 B, aws-lc-rs on desktop: 38 ns, 1.37× the fastest -AES-256-GCM open, 32 B, aws-lc-rs on nixos2: 101 ns, 2.26× the fastest -AES-256-GCM open, 32 B, aws-lc-rs on kixtop: 49 ns, 1.24× the fastest -AES-256-GCM open, 32 B, aws-lc-rs on ovh-iad: 150 ns, 2.10× the fastest -AES-256-GCM open, 32 B, aws-lc-rs on ovh-sea: 147 ns, 2.14× the fastest -AES-256-GCM open, 32 B, ring on nixos: 61 ns, 1.25× the fastest -AES-256-GCM open, 32 B, ring on desktop: 45 ns, 1.61× the fastest -AES-256-GCM open, 32 B, ring on nixos2: 107 ns, 2.39× the fastest -AES-256-GCM open, 32 B, ring on kixtop: 40 ns, 1.00× the fastest -AES-256-GCM open, 32 B, ring on ovh-iad: 129 ns, 1.82× the fastest -AES-256-GCM open, 32 B, ring on ovh-sea: 126 ns, 1.83× the fastest -AES-256-GCM open, 32 B, RustCrypto + dalek on nixos: 109 ns, 2.24× the fastest -AES-256-GCM open, 32 B, RustCrypto + dalek on desktop: 82 ns, 2.98× the fastest -AES-256-GCM open, 32 B, RustCrypto + dalek on nixos2: 118 ns, 2.65× the fastest -AES-256-GCM open, 32 B, RustCrypto + dalek on kixtop: 41 ns, 1.04× the fastest -AES-256-GCM open, 32 B, RustCrypto + dalek on ovh-iad: 177 ns, 2.49× the fastest -AES-256-GCM open, 32 B, RustCrypto + dalek on ovh-sea: 172 ns, 2.50× the fastest -AES-256-GCM open, 32 B, graviola on nixos: 68 ns, 1.39× the fastest -AES-256-GCM open, 32 B, graviola on desktop: 38 ns, 1.37× the fastest -AES-256-GCM open, 32 B, graviola on nixos2: 73 ns, 1.64× the fastest -AES-256-GCM open, 32 B, graviola on kixtop: 85 ns, 2.15× the fastest -AES-256-GCM open, 32 B, libcrux on nixos: 441 ns, 9.10× the fastest -AES-256-GCM open, 32 B, libcrux on desktop: 218 ns, 7.86× the fastest -AES-256-GCM open, 32 B, libcrux on nixos2: 363 ns, 8.12× the fastest -AES-256-GCM open, 32 B, libcrux on kixtop: 67 ns, 1.69× the fastest -AES-256-GCM open, 32 B, libcrux on ovh-iad: 576 ns, 8.08× the fastest -AES-256-GCM open, 32 B, libcrux on ovh-sea: 563 ns, 8.16× the fastest -AES-256-GCM open, 32 B, OpenSSL on nixos: 122 ns, 2.52× the fastest -AES-256-GCM open, 32 B, OpenSSL on desktop: 62 ns, 2.22× the fastest -AES-256-GCM open, 32 B, OpenSSL on nixos2: 172 ns, 3.84× the fastest -AES-256-GCM open, 32 B, OpenSSL on kixtop: 68 ns, 1.71× the fastest -AES-256-GCM open, 32 B, OpenSSL on ovh-iad: 269 ns, 3.78× the fastest -AES-256-GCM open, 32 B, OpenSSL on ovh-sea: 248 ns, 3.60× the fastest +AES-256-GCM open, 32 B, rind (DIT held) on kixtop: 13 ns, 0.33× the fastest +AES-256-GCM open, 32 B, aws-lc-rs on nixos: 79 ns, 1.62× the fastest +AES-256-GCM open, 32 B, aws-lc-rs on desktop: 38 ns, 2.31× the fastest +AES-256-GCM open, 32 B, aws-lc-rs on nixos2: 101 ns, 2.26× the fastest +AES-256-GCM open, 32 B, aws-lc-rs on kixtop: 49 ns, 1.23× the fastest +AES-256-GCM open, 32 B, aws-lc-rs on ovh-iad: 150 ns, 2.10× the fastest +AES-256-GCM open, 32 B, aws-lc-rs on ovh-sea: 147 ns, 2.14× the fastest +AES-256-GCM open, 32 B, ring on nixos: 61 ns, 1.25× the fastest +AES-256-GCM open, 32 B, ring on desktop: 43 ns, 2.63× the fastest +AES-256-GCM open, 32 B, ring on nixos2: 107 ns, 2.39× the fastest +AES-256-GCM open, 32 B, ring on kixtop: 39 ns, 1.00× the fastest +AES-256-GCM open, 32 B, ring on ovh-iad: 129 ns, 1.82× the fastest +AES-256-GCM open, 32 B, ring on ovh-sea: 126 ns, 1.83× the fastest +AES-256-GCM open, 32 B, RustCrypto + dalek on nixos: 109 ns, 2.24× the fastest +AES-256-GCM open, 32 B, RustCrypto + dalek on desktop: 82 ns, 5.03× the fastest +AES-256-GCM open, 32 B, RustCrypto + dalek on nixos2: 118 ns, 2.65× the fastest +AES-256-GCM open, 32 B, RustCrypto + dalek on kixtop: 41 ns, 1.04× the fastest +AES-256-GCM open, 32 B, RustCrypto + dalek on ovh-iad: 177 ns, 2.49× the fastest +AES-256-GCM open, 32 B, RustCrypto + dalek on ovh-sea: 172 ns, 2.50× the fastest +AES-256-GCM open, 32 B, graviola on nixos: 68 ns, 1.39× the fastest +AES-256-GCM open, 32 B, graviola on desktop: 38 ns, 2.31× the fastest +AES-256-GCM open, 32 B, graviola on nixos2: 73 ns, 1.64× the fastest +AES-256-GCM open, 32 B, graviola on kixtop: 84 ns, 2.14× the fastest +AES-256-GCM open, 32 B, libcrux on nixos: 441 ns, 9.10× the fastest +AES-256-GCM open, 32 B, libcrux on desktop: 215 ns, 13.12× the fastest +AES-256-GCM open, 32 B, libcrux on nixos2: 363 ns, 8.12× the fastest +AES-256-GCM open, 32 B, libcrux on kixtop: 66 ns, 1.67× the fastest +AES-256-GCM open, 32 B, libcrux on ovh-iad: 576 ns, 8.08× the fastest +AES-256-GCM open, 32 B, libcrux on ovh-sea: 563 ns, 8.16× the fastest +AES-256-GCM open, 32 B, OpenSSL on nixos: 122 ns, 2.52× the fastest +AES-256-GCM open, 32 B, OpenSSL on desktop: 61 ns, 3.73× the fastest +AES-256-GCM open, 32 B, OpenSSL on nixos2: 172 ns, 3.84× the fastest +AES-256-GCM open, 32 B, OpenSSL on kixtop: 68 ns, 1.72× the fastest +AES-256-GCM open, 32 B, OpenSSL on ovh-iad: 269 ns, 3.78× the fastest +AES-256-GCM open, 32 B, OpenSSL on ovh-sea: 248 ns, 3.60× the fastest AES-256-GCM open, 1350 B AES-256-GCM open, 1350 B, rind on nixos: 192 ns, 1.00× the fastest -AES-256-GCM open, 1350 B, rind on desktop: 107 ns, 1.00× the fastest +AES-256-GCM open, 1350 B, rind on desktop: 99 ns, 1.00× the fastest AES-256-GCM open, 1350 B, rind on nixos2: 328 ns, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch, of the AES-NI key expansion and block cipher's raw-pointer loads, and of the SIMD intrinsics as Intel's manual defines them, of its AEAD API's AES-GCM key setup, seal, and open, for AAD and messages under 2^32 bytes, down to HACL*'s Vale AES-GCM routines, composed with Vale's F* proofs of Gcm_blocks_stdcall, Gcm_blocks_decrypt_stdcall, and Compute_iv_stdcall, of the code Vale prints at HACL* f557259007db, which rind imports ✓ -AES-256-GCM open, 1350 B, rind on kixtop: 233 ns, 1.07× the fastest +AES-256-GCM open, 1350 B, rind on kixtop: 231 ns, 1.08× the fastest AES-256-GCM open, 1350 B, rind on ovh-iad: 497 ns, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch, of the AES-NI key expansion and block cipher's raw-pointer loads, and of the SIMD intrinsics as Intel's manual defines them, of its AEAD API's AES-GCM key setup, seal, and open, for AAD and messages under 2^32 bytes, down to HACL*'s Vale AES-GCM routines, composed with Vale's F* proofs of Gcm_blocks_stdcall, Gcm_blocks_decrypt_stdcall, and Compute_iv_stdcall, of the code Vale prints at HACL* f557259007db, which rind imports ✓ AES-256-GCM open, 1350 B, rind on ovh-sea: 482 ns, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch, of the AES-NI key expansion and block cipher's raw-pointer loads, and of the SIMD intrinsics as Intel's manual defines them, of its AEAD API's AES-GCM key setup, seal, and open, for AAD and messages under 2^32 bytes, down to HACL*'s Vale AES-GCM routines, composed with Vale's F* proofs of Gcm_blocks_stdcall, Gcm_blocks_decrypt_stdcall, and Compute_iv_stdcall, of the code Vale prints at HACL* f557259007db, which rind imports ✓ -AES-256-GCM open, 1350 B, aws-lc-rs on nixos: 322 ns, 1.68× the fastest -AES-256-GCM open, 1350 B, aws-lc-rs on desktop: 173 ns, 1.62× the fastest -AES-256-GCM open, 1350 B, aws-lc-rs on nixos2: 422 ns, 1.29× the fastest -AES-256-GCM open, 1350 B, aws-lc-rs on kixtop: 218 ns, 1.00× the fastest -AES-256-GCM open, 1350 B, aws-lc-rs on ovh-iad: 581 ns, 1.17× the fastest -AES-256-GCM open, 1350 B, aws-lc-rs on ovh-sea: 566 ns, 1.17× the fastest -AES-256-GCM open, 1350 B, ring on nixos: 204 ns, 1.06× the fastest -AES-256-GCM open, 1350 B, ring on desktop: 124 ns, 1.16× the fastest -AES-256-GCM open, 1350 B, ring on nixos2: 388 ns, 1.18× the fastest -AES-256-GCM open, 1350 B, ring on kixtop: 252 ns, 1.15× the fastest -AES-256-GCM open, 1350 B, ring on ovh-iad: 566 ns, 1.14× the fastest -AES-256-GCM open, 1350 B, ring on ovh-sea: 544 ns, 1.13× the fastest -AES-256-GCM open, 1350 B, RustCrypto + dalek on nixos: 508 ns, 2.65× the fastest -AES-256-GCM open, 1350 B, RustCrypto + dalek on desktop: 322 ns, 3.01× the fastest -AES-256-GCM open, 1350 B, RustCrypto + dalek on nixos2: 677 ns, 2.06× the fastest -AES-256-GCM open, 1350 B, RustCrypto + dalek on kixtop: 267 ns, 1.22× the fastest -AES-256-GCM open, 1350 B, RustCrypto + dalek on ovh-iad: 1.01 µs, 2.03× the fastest -AES-256-GCM open, 1350 B, RustCrypto + dalek on ovh-sea: 1000 ns, 2.07× the fastest -AES-256-GCM open, 1350 B, graviola on nixos: 341 ns, 1.78× the fastest -AES-256-GCM open, 1350 B, graviola on desktop: 203 ns, 1.90× the fastest -AES-256-GCM open, 1350 B, graviola on nixos2: 510 ns, 1.56× the fastest -AES-256-GCM open, 1350 B, graviola on kixtop: 263 ns, 1.20× the fastest -AES-256-GCM open, 1350 B, libcrux on nixos: 6.79 µs, 35.42× the fastest -AES-256-GCM open, 1350 B, libcrux on desktop: 2.85 µs, 26.66× the fastest -AES-256-GCM open, 1350 B, libcrux on nixos2: 4.74 µs, 14.46× the fastest -AES-256-GCM open, 1350 B, libcrux on kixtop: 674 ns, 3.09× the fastest -AES-256-GCM open, 1350 B, libcrux on ovh-iad: 6.90 µs, 13.90× the fastest -AES-256-GCM open, 1350 B, libcrux on ovh-sea: 6.91 µs, 14.32× the fastest -AES-256-GCM open, 1350 B, OpenSSL on nixos: 354 ns, 1.85× the fastest -AES-256-GCM open, 1350 B, OpenSSL on desktop: 189 ns, 1.77× the fastest -AES-256-GCM open, 1350 B, OpenSSL on nixos2: 643 ns, 1.96× the fastest -AES-256-GCM open, 1350 B, OpenSSL on kixtop: 225 ns, 1.03× the fastest -AES-256-GCM open, 1350 B, OpenSSL on ovh-iad: 673 ns, 1.35× the fastest -AES-256-GCM open, 1350 B, OpenSSL on ovh-sea: 661 ns, 1.37× the fastest +AES-256-GCM open, 1350 B, rind (DIT held) on kixtop: 197 ns, 0.92× the fastest +AES-256-GCM open, 1350 B, aws-lc-rs on nixos: 322 ns, 1.68× the fastest +AES-256-GCM open, 1350 B, aws-lc-rs on desktop: 172 ns, 1.74× the fastest +AES-256-GCM open, 1350 B, aws-lc-rs on nixos2: 422 ns, 1.29× the fastest +AES-256-GCM open, 1350 B, aws-lc-rs on kixtop: 213 ns, 1.00× the fastest +AES-256-GCM open, 1350 B, aws-lc-rs on ovh-iad: 581 ns, 1.17× the fastest +AES-256-GCM open, 1350 B, aws-lc-rs on ovh-sea: 566 ns, 1.17× the fastest +AES-256-GCM open, 1350 B, ring on nixos: 204 ns, 1.06× the fastest +AES-256-GCM open, 1350 B, ring on desktop: 121 ns, 1.23× the fastest +AES-256-GCM open, 1350 B, ring on nixos2: 388 ns, 1.18× the fastest +AES-256-GCM open, 1350 B, ring on kixtop: 247 ns, 1.16× the fastest +AES-256-GCM open, 1350 B, ring on ovh-iad: 566 ns, 1.14× the fastest +AES-256-GCM open, 1350 B, ring on ovh-sea: 544 ns, 1.13× the fastest +AES-256-GCM open, 1350 B, RustCrypto + dalek on nixos: 508 ns, 2.65× the fastest +AES-256-GCM open, 1350 B, RustCrypto + dalek on desktop: 318 ns, 3.21× the fastest +AES-256-GCM open, 1350 B, RustCrypto + dalek on nixos2: 677 ns, 2.06× the fastest +AES-256-GCM open, 1350 B, RustCrypto + dalek on kixtop: 278 ns, 1.31× the fastest +AES-256-GCM open, 1350 B, RustCrypto + dalek on ovh-iad: 1.01 µs, 2.03× the fastest +AES-256-GCM open, 1350 B, RustCrypto + dalek on ovh-sea: 1000 ns, 2.07× the fastest +AES-256-GCM open, 1350 B, graviola on nixos: 341 ns, 1.78× the fastest +AES-256-GCM open, 1350 B, graviola on desktop: 201 ns, 2.03× the fastest +AES-256-GCM open, 1350 B, graviola on nixos2: 510 ns, 1.56× the fastest +AES-256-GCM open, 1350 B, graviola on kixtop: 263 ns, 1.24× the fastest +AES-256-GCM open, 1350 B, libcrux on nixos: 6.79 µs, 35.42× the fastest +AES-256-GCM open, 1350 B, libcrux on desktop: 2.85 µs, 28.82× the fastest +AES-256-GCM open, 1350 B, libcrux on nixos2: 4.74 µs, 14.46× the fastest +AES-256-GCM open, 1350 B, libcrux on kixtop: 663 ns, 3.12× the fastest +AES-256-GCM open, 1350 B, libcrux on ovh-iad: 6.90 µs, 13.90× the fastest +AES-256-GCM open, 1350 B, libcrux on ovh-sea: 6.91 µs, 14.32× the fastest +AES-256-GCM open, 1350 B, OpenSSL on nixos: 354 ns, 1.85× the fastest +AES-256-GCM open, 1350 B, OpenSSL on desktop: 189 ns, 1.91× the fastest +AES-256-GCM open, 1350 B, OpenSSL on nixos2: 643 ns, 1.96× the fastest +AES-256-GCM open, 1350 B, OpenSSL on kixtop: 224 ns, 1.05× the fastest +AES-256-GCM open, 1350 B, OpenSSL on ovh-iad: 673 ns, 1.35× the fastest +AES-256-GCM open, 1350 B, OpenSSL on ovh-sea: 661 ns, 1.37× the fastest AES-256-GCM open, 16 KB AES-256-GCM open, 16 KB, rind on nixos: 1.60 µs, 1.00× the fastest -AES-256-GCM open, 16 KB, rind on desktop: 917 ns, 1.00× the fastest +AES-256-GCM open, 16 KB, rind on desktop: 899 ns, 1.00× the fastest AES-256-GCM open, 16 KB, rind on nixos2: 3.62 µs, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch, of the AES-NI key expansion and block cipher's raw-pointer loads, and of the SIMD intrinsics as Intel's manual defines them, of its AEAD API's AES-GCM key setup, seal, and open, for AAD and messages under 2^32 bytes, down to HACL*'s Vale AES-GCM routines, composed with Vale's F* proofs of Gcm_blocks_stdcall, Gcm_blocks_decrypt_stdcall, and Compute_iv_stdcall, of the code Vale prints at HACL* f557259007db, which rind imports ✓ -AES-256-GCM open, 16 KB, rind on kixtop: 1.86 µs, 1.01× the fastest +AES-256-GCM open, 16 KB, rind on kixtop: 1.84 µs, 1.02× the fastest AES-256-GCM open, 16 KB, rind on ovh-iad: 5.26 µs, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch, of the AES-NI key expansion and block cipher's raw-pointer loads, and of the SIMD intrinsics as Intel's manual defines them, of its AEAD API's AES-GCM key setup, seal, and open, for AAD and messages under 2^32 bytes, down to HACL*'s Vale AES-GCM routines, composed with Vale's F* proofs of Gcm_blocks_stdcall, Gcm_blocks_decrypt_stdcall, and Compute_iv_stdcall, of the code Vale prints at HACL* f557259007db, which rind imports ✓ AES-256-GCM open, 16 KB, rind on ovh-sea: 5.13 µs, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch, of the AES-NI key expansion and block cipher's raw-pointer loads, and of the SIMD intrinsics as Intel's manual defines them, of its AEAD API's AES-GCM key setup, seal, and open, for AAD and messages under 2^32 bytes, down to HACL*'s Vale AES-GCM routines, composed with Vale's F* proofs of Gcm_blocks_stdcall, Gcm_blocks_decrypt_stdcall, and Compute_iv_stdcall, of the code Vale prints at HACL* f557259007db, which rind imports ✓ -AES-256-GCM open, 16 KB, aws-lc-rs on nixos: 2.92 µs, 1.82× the fastest -AES-256-GCM open, 16 KB, aws-lc-rs on desktop: 1.57 µs, 1.71× the fastest -AES-256-GCM open, 16 KB, aws-lc-rs on nixos2: 3.69 µs, 1.02× the fastest -AES-256-GCM open, 16 KB, aws-lc-rs on kixtop: 1.83 µs, 1.00× the fastest -AES-256-GCM open, 16 KB, aws-lc-rs on ovh-iad: 5.35 µs, 1.02× the fastest -AES-256-GCM open, 16 KB, aws-lc-rs on ovh-sea: 5.25 µs, 1.02× the fastest -AES-256-GCM open, 16 KB, ring on nixos: 1.62 µs, 1.01× the fastest -AES-256-GCM open, 16 KB, ring on desktop: 921 ns, 1.00× the fastest -AES-256-GCM open, 16 KB, ring on nixos2: 3.70 µs, 1.02× the fastest -AES-256-GCM open, 16 KB, ring on kixtop: 2.25 µs, 1.23× the fastest -AES-256-GCM open, 16 KB, ring on ovh-iad: 5.38 µs, 1.02× the fastest -AES-256-GCM open, 16 KB, ring on ovh-sea: 5.23 µs, 1.02× the fastest -AES-256-GCM open, 16 KB, RustCrypto + dalek on nixos: 4.93 µs, 3.08× the fastest -AES-256-GCM open, 16 KB, RustCrypto + dalek on desktop: 2.96 µs, 3.23× the fastest -AES-256-GCM open, 16 KB, RustCrypto + dalek on nixos2: 7.23 µs, 2.00× the fastest -AES-256-GCM open, 16 KB, RustCrypto + dalek on kixtop: 2.89 µs, 1.58× the fastest -AES-256-GCM open, 16 KB, RustCrypto + dalek on ovh-iad: 10.17 µs, 1.93× the fastest -AES-256-GCM open, 16 KB, RustCrypto + dalek on ovh-sea: 10.04 µs, 1.96× the fastest -AES-256-GCM open, 16 KB, graviola on nixos: 3.04 µs, 1.90× the fastest -AES-256-GCM open, 16 KB, graviola on desktop: 1.74 µs, 1.90× the fastest -AES-256-GCM open, 16 KB, graviola on nixos2: 4.54 µs, 1.25× the fastest -AES-256-GCM open, 16 KB, graviola on kixtop: 2.18 µs, 1.19× the fastest -AES-256-GCM open, 16 KB, libcrux on nixos: 79.19 µs, 49.38× the fastest -AES-256-GCM open, 16 KB, libcrux on desktop: 32.51 µs, 35.44× the fastest -AES-256-GCM open, 16 KB, libcrux on nixos2: 53.96 µs, 14.91× the fastest -AES-256-GCM open, 16 KB, libcrux on kixtop: 7.35 µs, 4.01× the fastest -AES-256-GCM open, 16 KB, libcrux on ovh-iad: 82.11 µs, 15.61× the fastest -AES-256-GCM open, 16 KB, libcrux on ovh-sea: 78.36 µs, 15.27× the fastest -AES-256-GCM open, 16 KB, OpenSSL on nixos: 2.98 µs, 1.86× the fastest -AES-256-GCM open, 16 KB, OpenSSL on desktop: 1.60 µs, 1.75× the fastest -AES-256-GCM open, 16 KB, OpenSSL on nixos2: 3.87 µs, 1.07× the fastest -AES-256-GCM open, 16 KB, OpenSSL on kixtop: 1.94 µs, 1.06× the fastest -AES-256-GCM open, 16 KB, OpenSSL on ovh-iad: 5.83 µs, 1.11× the fastest -AES-256-GCM open, 16 KB, OpenSSL on ovh-sea: 5.43 µs, 1.06× the fastest +AES-256-GCM open, 16 KB, rind (DIT held) on kixtop: 1.81 µs, 1.00× the fastest +AES-256-GCM open, 16 KB, aws-lc-rs on nixos: 2.92 µs, 1.82× the fastest +AES-256-GCM open, 16 KB, aws-lc-rs on desktop: 1.55 µs, 1.73× the fastest +AES-256-GCM open, 16 KB, aws-lc-rs on nixos2: 3.69 µs, 1.02× the fastest +AES-256-GCM open, 16 KB, aws-lc-rs on kixtop: 1.82 µs, 1.00× the fastest +AES-256-GCM open, 16 KB, aws-lc-rs on ovh-iad: 5.35 µs, 1.02× the fastest +AES-256-GCM open, 16 KB, aws-lc-rs on ovh-sea: 5.25 µs, 1.02× the fastest +AES-256-GCM open, 16 KB, ring on nixos: 1.62 µs, 1.01× the fastest +AES-256-GCM open, 16 KB, ring on desktop: 933 ns, 1.04× the fastest +AES-256-GCM open, 16 KB, ring on nixos2: 3.70 µs, 1.02× the fastest +AES-256-GCM open, 16 KB, ring on kixtop: 2.23 µs, 1.23× the fastest +AES-256-GCM open, 16 KB, ring on ovh-iad: 5.38 µs, 1.02× the fastest +AES-256-GCM open, 16 KB, ring on ovh-sea: 5.23 µs, 1.02× the fastest +AES-256-GCM open, 16 KB, RustCrypto + dalek on nixos: 4.93 µs, 3.08× the fastest +AES-256-GCM open, 16 KB, RustCrypto + dalek on desktop: 2.92 µs, 3.25× the fastest +AES-256-GCM open, 16 KB, RustCrypto + dalek on nixos2: 7.23 µs, 2.00× the fastest +AES-256-GCM open, 16 KB, RustCrypto + dalek on kixtop: 2.77 µs, 1.53× the fastest +AES-256-GCM open, 16 KB, RustCrypto + dalek on ovh-iad: 10.17 µs, 1.93× the fastest +AES-256-GCM open, 16 KB, RustCrypto + dalek on ovh-sea: 10.04 µs, 1.96× the fastest +AES-256-GCM open, 16 KB, graviola on nixos: 3.04 µs, 1.90× the fastest +AES-256-GCM open, 16 KB, graviola on desktop: 1.71 µs, 1.91× the fastest +AES-256-GCM open, 16 KB, graviola on nixos2: 4.54 µs, 1.25× the fastest +AES-256-GCM open, 16 KB, graviola on kixtop: 2.19 µs, 1.21× the fastest +AES-256-GCM open, 16 KB, libcrux on nixos: 79.19 µs, 49.38× the fastest +AES-256-GCM open, 16 KB, libcrux on desktop: 32.61 µs, 36.27× the fastest +AES-256-GCM open, 16 KB, libcrux on nixos2: 53.96 µs, 14.91× the fastest +AES-256-GCM open, 16 KB, libcrux on kixtop: 7.06 µs, 3.89× the fastest +AES-256-GCM open, 16 KB, libcrux on ovh-iad: 82.11 µs, 15.61× the fastest +AES-256-GCM open, 16 KB, libcrux on ovh-sea: 78.36 µs, 15.27× the fastest +AES-256-GCM open, 16 KB, OpenSSL on nixos: 2.98 µs, 1.86× the fastest +AES-256-GCM open, 16 KB, OpenSSL on desktop: 1.58 µs, 1.76× the fastest +AES-256-GCM open, 16 KB, OpenSSL on nixos2: 3.87 µs, 1.07× the fastest +AES-256-GCM open, 16 KB, OpenSSL on kixtop: 1.93 µs, 1.07× the fastest +AES-256-GCM open, 16 KB, OpenSSL on ovh-iad: 5.83 µs, 1.11× the fastest +AES-256-GCM open, 16 KB, OpenSSL on ovh-sea: 5.43 µs, 1.06× the fastest ChaCha20-Poly1305 seal, 32 B ChaCha20-Poly1305 seal, 32 B, rind on nixos: 114 ns, 1.01× the fastest -ChaCha20-Poly1305 seal, 32 B, rind on desktop: 100 ns, 1.00× the fastest +ChaCha20-Poly1305 seal, 32 B, rind on desktop: 98 ns, 1.00× the fastest ChaCha20-Poly1305 seal, 32 B, rind on nixos2: 129 ns, 1.00× the fastest -ChaCha20-Poly1305 seal, 32 B, rind on kixtop: 185 ns, 1.25× the fastest +ChaCha20-Poly1305 seal, 32 B, rind on kixtop: 179 ns, 1.23× the fastest ChaCha20-Poly1305 seal, 32 B, rind on ovh-iad: 192 ns, 1.00× the fastest ChaCha20-Poly1305 seal, 32 B, rind on ovh-sea: 188 ns, 1.00× the fastest -ChaCha20-Poly1305 seal, 32 B, aws-lc-rs on nixos: 119 ns, 1.06× the fastest -ChaCha20-Poly1305 seal, 32 B, aws-lc-rs on desktop: 105 ns, 1.05× the fastest -ChaCha20-Poly1305 seal, 32 B, aws-lc-rs on nixos2: 149 ns, 1.15× the fastest -ChaCha20-Poly1305 seal, 32 B, aws-lc-rs on kixtop: 163 ns, 1.10× the fastest -ChaCha20-Poly1305 seal, 32 B, aws-lc-rs on ovh-iad: 215 ns, 1.12× the fastest -ChaCha20-Poly1305 seal, 32 B, aws-lc-rs on ovh-sea: 210 ns, 1.11× the fastest -ChaCha20-Poly1305 seal, 32 B, ring on nixos: 113 ns, 1.00× the fastest -ChaCha20-Poly1305 seal, 32 B, ring on desktop: 101 ns, 1.01× the fastest -ChaCha20-Poly1305 seal, 32 B, ring on nixos2: 130 ns, 1.01× the fastest -ChaCha20-Poly1305 seal, 32 B, ring on kixtop: 148 ns, 1.00× the fastest -ChaCha20-Poly1305 seal, 32 B, ring on ovh-iad: 196 ns, 1.02× the fastest -ChaCha20-Poly1305 seal, 32 B, ring on ovh-sea: 189 ns, 1.00× the fastest -ChaCha20-Poly1305 seal, 32 B, RustCrypto + dalek on nixos: 1.18 µs, 10.48× the fastest -ChaCha20-Poly1305 seal, 32 B, RustCrypto + dalek on desktop: 1.07 µs, 10.75× the fastest -ChaCha20-Poly1305 seal, 32 B, RustCrypto + dalek on nixos2: 1.21 µs, 9.37× the fastest -ChaCha20-Poly1305 seal, 32 B, RustCrypto + dalek on kixtop: 344 ns, 2.33× the fastest -ChaCha20-Poly1305 seal, 32 B, RustCrypto + dalek on ovh-iad: 1.84 µs, 9.54× the fastest -ChaCha20-Poly1305 seal, 32 B, RustCrypto + dalek on ovh-sea: 1.75 µs, 9.29× the fastest -ChaCha20-Poly1305 seal, 32 B, graviola on nixos: 216 ns, 1.92× the fastest -ChaCha20-Poly1305 seal, 32 B, graviola on desktop: 180 ns, 1.80× the fastest -ChaCha20-Poly1305 seal, 32 B, graviola on nixos2: 232 ns, 1.80× the fastest -ChaCha20-Poly1305 seal, 32 B, graviola on kixtop: 196 ns, 1.32× the fastest -ChaCha20-Poly1305 seal, 32 B, libcrux on nixos: 220 ns, 1.96× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step -✓ -ChaCha20-Poly1305 seal, 32 B, libcrux on desktop: 157 ns, 1.57× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step -✓ -ChaCha20-Poly1305 seal, 32 B, libcrux on nixos2: 301 ns, 2.33× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step -✓ -ChaCha20-Poly1305 seal, 32 B, libcrux on kixtop: 171 ns, 1.16× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step -✓ -ChaCha20-Poly1305 seal, 32 B, libcrux on ovh-iad: 428 ns, 2.22× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step -✓ -ChaCha20-Poly1305 seal, 32 B, libcrux on ovh-sea: 416 ns, 2.21× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step -✓ -ChaCha20-Poly1305 seal, 32 B, OpenSSL on nixos: 257 ns, 2.29× the fastest -ChaCha20-Poly1305 seal, 32 B, OpenSSL on desktop: 177 ns, 1.77× the fastest -ChaCha20-Poly1305 seal, 32 B, OpenSSL on nixos2: 337 ns, 2.61× the fastest -ChaCha20-Poly1305 seal, 32 B, OpenSSL on kixtop: 215 ns, 1.46× the fastest -ChaCha20-Poly1305 seal, 32 B, OpenSSL on ovh-iad: 526 ns, 2.73× the fastest -ChaCha20-Poly1305 seal, 32 B, OpenSSL on ovh-sea: 489 ns, 2.59× the fastest +ChaCha20-Poly1305 seal, 32 B, rind (DIT held) on kixtop: 145 ns, 1.00× the fastest +ChaCha20-Poly1305 seal, 32 B, aws-lc-rs on nixos: 119 ns, 1.06× the fastest +ChaCha20-Poly1305 seal, 32 B, aws-lc-rs on desktop: 103 ns, 1.05× the fastest +ChaCha20-Poly1305 seal, 32 B, aws-lc-rs on nixos2: 149 ns, 1.15× the fastest +ChaCha20-Poly1305 seal, 32 B, aws-lc-rs on kixtop: 157 ns, 1.08× the fastest +ChaCha20-Poly1305 seal, 32 B, aws-lc-rs on ovh-iad: 215 ns, 1.12× the fastest +ChaCha20-Poly1305 seal, 32 B, aws-lc-rs on ovh-sea: 210 ns, 1.11× the fastest +ChaCha20-Poly1305 seal, 32 B, ring on nixos: 113 ns, 1.00× the fastest +ChaCha20-Poly1305 seal, 32 B, ring on desktop: 99 ns, 1.00× the fastest +ChaCha20-Poly1305 seal, 32 B, ring on nixos2: 130 ns, 1.01× the fastest +ChaCha20-Poly1305 seal, 32 B, ring on kixtop: 145 ns, 1.00× the fastest +ChaCha20-Poly1305 seal, 32 B, ring on ovh-iad: 196 ns, 1.02× the fastest +ChaCha20-Poly1305 seal, 32 B, ring on ovh-sea: 189 ns, 1.00× the fastest +ChaCha20-Poly1305 seal, 32 B, RustCrypto + dalek on nixos: 1.18 µs, 10.48× the fastest +ChaCha20-Poly1305 seal, 32 B, RustCrypto + dalek on desktop: 1.05 µs, 10.68× the fastest +ChaCha20-Poly1305 seal, 32 B, RustCrypto + dalek on nixos2: 1.21 µs, 9.37× the fastest +ChaCha20-Poly1305 seal, 32 B, RustCrypto + dalek on kixtop: 340 ns, 2.35× the fastest +ChaCha20-Poly1305 seal, 32 B, RustCrypto + dalek on ovh-iad: 1.84 µs, 9.54× the fastest +ChaCha20-Poly1305 seal, 32 B, RustCrypto + dalek on ovh-sea: 1.75 µs, 9.29× the fastest +ChaCha20-Poly1305 seal, 32 B, graviola on nixos: 216 ns, 1.92× the fastest +ChaCha20-Poly1305 seal, 32 B, graviola on desktop: 177 ns, 1.80× the fastest +ChaCha20-Poly1305 seal, 32 B, graviola on nixos2: 232 ns, 1.80× the fastest +ChaCha20-Poly1305 seal, 32 B, graviola on kixtop: 193 ns, 1.33× the fastest +ChaCha20-Poly1305 seal, 32 B, libcrux on nixos: 220 ns, 1.96× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step +✓ +ChaCha20-Poly1305 seal, 32 B, libcrux on desktop: 157 ns, 1.59× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step +✓ +ChaCha20-Poly1305 seal, 32 B, libcrux on nixos2: 301 ns, 2.33× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step +✓ +ChaCha20-Poly1305 seal, 32 B, libcrux on kixtop: 170 ns, 1.17× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step +✓ +ChaCha20-Poly1305 seal, 32 B, libcrux on ovh-iad: 428 ns, 2.22× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step +✓ +ChaCha20-Poly1305 seal, 32 B, libcrux on ovh-sea: 416 ns, 2.21× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step +✓ +ChaCha20-Poly1305 seal, 32 B, OpenSSL on nixos: 257 ns, 2.29× the fastest +ChaCha20-Poly1305 seal, 32 B, OpenSSL on desktop: 175 ns, 1.78× the fastest +ChaCha20-Poly1305 seal, 32 B, OpenSSL on nixos2: 337 ns, 2.61× the fastest +ChaCha20-Poly1305 seal, 32 B, OpenSSL on kixtop: 216 ns, 1.49× the fastest +ChaCha20-Poly1305 seal, 32 B, OpenSSL on ovh-iad: 526 ns, 2.73× the fastest +ChaCha20-Poly1305 seal, 32 B, OpenSSL on ovh-sea: 489 ns, 2.59× the fastest ChaCha20-Poly1305 seal, 1350 B ChaCha20-Poly1305 seal, 1350 B, rind on nixos: 533 ns, 1.01× the fastest -ChaCha20-Poly1305 seal, 1350 B, rind on desktop: 441 ns, 1.00× the fastest +ChaCha20-Poly1305 seal, 1350 B, rind on desktop: 440 ns, 1.00× the fastest ChaCha20-Poly1305 seal, 1350 B, rind on nixos2: 718 ns, 1.00× the fastest -ChaCha20-Poly1305 seal, 1350 B, rind on kixtop: 792 ns, 1.05× the fastest +ChaCha20-Poly1305 seal, 1350 B, rind on kixtop: 773 ns, 1.04× the fastest ChaCha20-Poly1305 seal, 1350 B, rind on ovh-iad: 1.07 µs, 1.00× the fastest ChaCha20-Poly1305 seal, 1350 B, rind on ovh-sea: 1.04 µs, 1.00× the fastest -ChaCha20-Poly1305 seal, 1350 B, aws-lc-rs on nixos: 532 ns, 1.01× the fastest -ChaCha20-Poly1305 seal, 1350 B, aws-lc-rs on desktop: 453 ns, 1.03× the fastest -ChaCha20-Poly1305 seal, 1350 B, aws-lc-rs on nixos2: 755 ns, 1.06× the fastest -ChaCha20-Poly1305 seal, 1350 B, aws-lc-rs on kixtop: 771 ns, 1.02× the fastest -ChaCha20-Poly1305 seal, 1350 B, aws-lc-rs on ovh-iad: 1.10 µs, 1.03× the fastest -ChaCha20-Poly1305 seal, 1350 B, aws-lc-rs on ovh-sea: 1.05 µs, 1.02× the fastest -ChaCha20-Poly1305 seal, 1350 B, ring on nixos: 527 ns, 1.00× the fastest -ChaCha20-Poly1305 seal, 1350 B, ring on desktop: 447 ns, 1.01× the fastest -ChaCha20-Poly1305 seal, 1350 B, ring on nixos2: 714 ns, 1.00× the fastest -ChaCha20-Poly1305 seal, 1350 B, ring on kixtop: 755 ns, 1.00× the fastest -ChaCha20-Poly1305 seal, 1350 B, ring on ovh-iad: 1.08 µs, 1.00× the fastest -ChaCha20-Poly1305 seal, 1350 B, ring on ovh-sea: 1.04 µs, 1.00× the fastest -ChaCha20-Poly1305 seal, 1350 B, RustCrypto + dalek on nixos: 1.93 µs, 3.65× the fastest -ChaCha20-Poly1305 seal, 1350 B, RustCrypto + dalek on desktop: 1.67 µs, 3.79× the fastest -ChaCha20-Poly1305 seal, 1350 B, RustCrypto + dalek on nixos2: 2.18 µs, 3.05× the fastest -ChaCha20-Poly1305 seal, 1350 B, RustCrypto + dalek on kixtop: 1.78 µs, 2.36× the fastest -ChaCha20-Poly1305 seal, 1350 B, RustCrypto + dalek on ovh-iad: 3.26 µs, 3.04× the fastest -ChaCha20-Poly1305 seal, 1350 B, RustCrypto + dalek on ovh-sea: 3.15 µs, 3.04× the fastest -ChaCha20-Poly1305 seal, 1350 B, graviola on nixos: 1.08 µs, 2.05× the fastest -ChaCha20-Poly1305 seal, 1350 B, graviola on desktop: 905 ns, 2.05× the fastest -ChaCha20-Poly1305 seal, 1350 B, graviola on nixos2: 1.29 µs, 1.81× the fastest -ChaCha20-Poly1305 seal, 1350 B, graviola on kixtop: 1.25 µs, 1.65× the fastest -ChaCha20-Poly1305 seal, 1350 B, libcrux on nixos: 2.34 µs, 4.43× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step -✓ -ChaCha20-Poly1305 seal, 1350 B, libcrux on desktop: 1.78 µs, 4.03× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step -✓ -ChaCha20-Poly1305 seal, 1350 B, libcrux on nixos2: 3.16 µs, 4.43× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step -✓ -ChaCha20-Poly1305 seal, 1350 B, libcrux on kixtop: 1.98 µs, 2.62× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step -✓ -ChaCha20-Poly1305 seal, 1350 B, libcrux on ovh-iad: 4.73 µs, 4.40× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step -✓ -ChaCha20-Poly1305 seal, 1350 B, libcrux on ovh-sea: 4.60 µs, 4.43× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step -✓ -ChaCha20-Poly1305 seal, 1350 B, OpenSSL on nixos: 745 ns, 1.41× the fastest -ChaCha20-Poly1305 seal, 1350 B, OpenSSL on desktop: 590 ns, 1.34× the fastest -ChaCha20-Poly1305 seal, 1350 B, OpenSSL on nixos2: 971 ns, 1.36× the fastest -ChaCha20-Poly1305 seal, 1350 B, OpenSSL on kixtop: 842 ns, 1.12× the fastest -ChaCha20-Poly1305 seal, 1350 B, OpenSSL on ovh-iad: 1.68 µs, 1.57× the fastest -ChaCha20-Poly1305 seal, 1350 B, OpenSSL on ovh-sea: 1.58 µs, 1.53× the fastest +ChaCha20-Poly1305 seal, 1350 B, rind (DIT held) on kixtop: 741 ns, 1.00× the fastest +ChaCha20-Poly1305 seal, 1350 B, aws-lc-rs on nixos: 532 ns, 1.01× the fastest +ChaCha20-Poly1305 seal, 1350 B, aws-lc-rs on desktop: 446 ns, 1.01× the fastest +ChaCha20-Poly1305 seal, 1350 B, aws-lc-rs on nixos2: 755 ns, 1.06× the fastest +ChaCha20-Poly1305 seal, 1350 B, aws-lc-rs on kixtop: 759 ns, 1.02× the fastest +ChaCha20-Poly1305 seal, 1350 B, aws-lc-rs on ovh-iad: 1.10 µs, 1.03× the fastest +ChaCha20-Poly1305 seal, 1350 B, aws-lc-rs on ovh-sea: 1.05 µs, 1.02× the fastest +ChaCha20-Poly1305 seal, 1350 B, ring on nixos: 527 ns, 1.00× the fastest +ChaCha20-Poly1305 seal, 1350 B, ring on desktop: 448 ns, 1.02× the fastest +ChaCha20-Poly1305 seal, 1350 B, ring on nixos2: 714 ns, 1.00× the fastest +ChaCha20-Poly1305 seal, 1350 B, ring on kixtop: 741 ns, 1.00× the fastest +ChaCha20-Poly1305 seal, 1350 B, ring on ovh-iad: 1.08 µs, 1.00× the fastest +ChaCha20-Poly1305 seal, 1350 B, ring on ovh-sea: 1.04 µs, 1.00× the fastest +ChaCha20-Poly1305 seal, 1350 B, RustCrypto + dalek on nixos: 1.93 µs, 3.65× the fastest +ChaCha20-Poly1305 seal, 1350 B, RustCrypto + dalek on desktop: 1.64 µs, 3.73× the fastest +ChaCha20-Poly1305 seal, 1350 B, RustCrypto + dalek on nixos2: 2.18 µs, 3.05× the fastest +ChaCha20-Poly1305 seal, 1350 B, RustCrypto + dalek on kixtop: 1.75 µs, 2.37× the fastest +ChaCha20-Poly1305 seal, 1350 B, RustCrypto + dalek on ovh-iad: 3.26 µs, 3.04× the fastest +ChaCha20-Poly1305 seal, 1350 B, RustCrypto + dalek on ovh-sea: 3.15 µs, 3.04× the fastest +ChaCha20-Poly1305 seal, 1350 B, graviola on nixos: 1.08 µs, 2.05× the fastest +ChaCha20-Poly1305 seal, 1350 B, graviola on desktop: 890 ns, 2.02× the fastest +ChaCha20-Poly1305 seal, 1350 B, graviola on nixos2: 1.29 µs, 1.81× the fastest +ChaCha20-Poly1305 seal, 1350 B, graviola on kixtop: 1.21 µs, 1.63× the fastest +ChaCha20-Poly1305 seal, 1350 B, libcrux on nixos: 2.34 µs, 4.43× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step +✓ +ChaCha20-Poly1305 seal, 1350 B, libcrux on desktop: 1.77 µs, 4.02× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step +✓ +ChaCha20-Poly1305 seal, 1350 B, libcrux on nixos2: 3.16 µs, 4.43× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step +✓ +ChaCha20-Poly1305 seal, 1350 B, libcrux on kixtop: 1.94 µs, 2.62× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step +✓ +ChaCha20-Poly1305 seal, 1350 B, libcrux on ovh-iad: 4.73 µs, 4.40× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step +✓ +ChaCha20-Poly1305 seal, 1350 B, libcrux on ovh-sea: 4.60 µs, 4.43× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step +✓ +ChaCha20-Poly1305 seal, 1350 B, OpenSSL on nixos: 745 ns, 1.41× the fastest +ChaCha20-Poly1305 seal, 1350 B, OpenSSL on desktop: 587 ns, 1.33× the fastest +ChaCha20-Poly1305 seal, 1350 B, OpenSSL on nixos2: 971 ns, 1.36× the fastest +ChaCha20-Poly1305 seal, 1350 B, OpenSSL on kixtop: 826 ns, 1.12× the fastest +ChaCha20-Poly1305 seal, 1350 B, OpenSSL on ovh-iad: 1.68 µs, 1.57× the fastest +ChaCha20-Poly1305 seal, 1350 B, OpenSSL on ovh-sea: 1.58 µs, 1.53× the fastest ChaCha20-Poly1305 seal, 16 KB ChaCha20-Poly1305 seal, 16 KB, rind on nixos: 4.68 µs, 1.00× the fastest -ChaCha20-Poly1305 seal, 16 KB, rind on desktop: 4.17 µs, 1.01× the fastest +ChaCha20-Poly1305 seal, 16 KB, rind on desktop: 4.19 µs, 1.02× the fastest ChaCha20-Poly1305 seal, 16 KB, rind on nixos2: 6.81 µs, 1.03× the fastest -ChaCha20-Poly1305 seal, 16 KB, rind on kixtop: 7.70 µs, 1.03× the fastest +ChaCha20-Poly1305 seal, 16 KB, rind on kixtop: 7.60 µs, 1.03× the fastest ChaCha20-Poly1305 seal, 16 KB, rind on ovh-iad: 9.85 µs, 1.00× the fastest ChaCha20-Poly1305 seal, 16 KB, rind on ovh-sea: 9.56 µs, 1.00× the fastest -ChaCha20-Poly1305 seal, 16 KB, aws-lc-rs on nixos: 4.78 µs, 1.02× the fastest -ChaCha20-Poly1305 seal, 16 KB, aws-lc-rs on desktop: 4.15 µs, 1.00× the fastest -ChaCha20-Poly1305 seal, 16 KB, aws-lc-rs on nixos2: 6.63 µs, 1.00× the fastest -ChaCha20-Poly1305 seal, 16 KB, aws-lc-rs on kixtop: 7.65 µs, 1.03× the fastest -ChaCha20-Poly1305 seal, 16 KB, aws-lc-rs on ovh-iad: 9.91 µs, 1.01× the fastest -ChaCha20-Poly1305 seal, 16 KB, aws-lc-rs on ovh-sea: 9.69 µs, 1.01× the fastest -ChaCha20-Poly1305 seal, 16 KB, ring on nixos: 4.68 µs, 1.00× the fastest -ChaCha20-Poly1305 seal, 16 KB, ring on desktop: 4.14 µs, 1.00× the fastest -ChaCha20-Poly1305 seal, 16 KB, ring on nixos2: 6.60 µs, 1.00× the fastest -ChaCha20-Poly1305 seal, 16 KB, ring on kixtop: 7.67 µs, 1.03× the fastest -ChaCha20-Poly1305 seal, 16 KB, ring on ovh-iad: 10.42 µs, 1.06× the fastest -ChaCha20-Poly1305 seal, 16 KB, ring on ovh-sea: 9.93 µs, 1.04× the fastest -ChaCha20-Poly1305 seal, 16 KB, RustCrypto + dalek on nixos: 10.09 µs, 2.16× the fastest -ChaCha20-Poly1305 seal, 16 KB, RustCrypto + dalek on desktop: 8.14 µs, 1.97× the fastest -ChaCha20-Poly1305 seal, 16 KB, RustCrypto + dalek on nixos2: 12.61 µs, 1.91× the fastest -ChaCha20-Poly1305 seal, 16 KB, RustCrypto + dalek on kixtop: 15.21 µs, 2.04× the fastest -ChaCha20-Poly1305 seal, 16 KB, RustCrypto + dalek on ovh-iad: 18.84 µs, 1.91× the fastest -ChaCha20-Poly1305 seal, 16 KB, RustCrypto + dalek on ovh-sea: 18.34 µs, 1.92× the fastest -ChaCha20-Poly1305 seal, 16 KB, graviola on nixos: 10.15 µs, 2.17× the fastest -ChaCha20-Poly1305 seal, 16 KB, graviola on desktop: 8.30 µs, 2.01× the fastest -ChaCha20-Poly1305 seal, 16 KB, graviola on nixos2: 12.52 µs, 1.90× the fastest -ChaCha20-Poly1305 seal, 16 KB, graviola on kixtop: 12.85 µs, 1.72× the fastest -ChaCha20-Poly1305 seal, 16 KB, libcrux on nixos: 26.70 µs, 5.71× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step -✓ -ChaCha20-Poly1305 seal, 16 KB, libcrux on desktop: 19.63 µs, 4.74× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step -✓ -ChaCha20-Poly1305 seal, 16 KB, libcrux on nixos2: 35.52 µs, 5.38× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step -✓ -ChaCha20-Poly1305 seal, 16 KB, libcrux on kixtop: 22.07 µs, 2.96× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step -✓ -ChaCha20-Poly1305 seal, 16 KB, libcrux on ovh-iad: 54.85 µs, 5.57× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step -✓ -ChaCha20-Poly1305 seal, 16 KB, libcrux on ovh-sea: 51.63 µs, 5.40× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step -✓ -ChaCha20-Poly1305 seal, 16 KB, OpenSSL on nixos: 5.14 µs, 1.10× the fastest -ChaCha20-Poly1305 seal, 16 KB, OpenSSL on desktop: 4.41 µs, 1.07× the fastest -ChaCha20-Poly1305 seal, 16 KB, OpenSSL on nixos2: 6.64 µs, 1.01× the fastest -ChaCha20-Poly1305 seal, 16 KB, OpenSSL on kixtop: 7.45 µs, 1.00× the fastest -ChaCha20-Poly1305 seal, 16 KB, OpenSSL on ovh-iad: 11.10 µs, 1.13× the fastest -ChaCha20-Poly1305 seal, 16 KB, OpenSSL on ovh-sea: 10.83 µs, 1.13× the fastest +ChaCha20-Poly1305 seal, 16 KB, rind (DIT held) on kixtop: 7.50 µs, 1.02× the fastest +ChaCha20-Poly1305 seal, 16 KB, aws-lc-rs on nixos: 4.78 µs, 1.02× the fastest +ChaCha20-Poly1305 seal, 16 KB, aws-lc-rs on desktop: 4.13 µs, 1.00× the fastest +ChaCha20-Poly1305 seal, 16 KB, aws-lc-rs on nixos2: 6.63 µs, 1.00× the fastest +ChaCha20-Poly1305 seal, 16 KB, aws-lc-rs on kixtop: 7.50 µs, 1.02× the fastest +ChaCha20-Poly1305 seal, 16 KB, aws-lc-rs on ovh-iad: 9.91 µs, 1.01× the fastest +ChaCha20-Poly1305 seal, 16 KB, aws-lc-rs on ovh-sea: 9.69 µs, 1.01× the fastest +ChaCha20-Poly1305 seal, 16 KB, ring on nixos: 4.68 µs, 1.00× the fastest +ChaCha20-Poly1305 seal, 16 KB, ring on desktop: 4.12 µs, 1.00× the fastest +ChaCha20-Poly1305 seal, 16 KB, ring on nixos2: 6.60 µs, 1.00× the fastest +ChaCha20-Poly1305 seal, 16 KB, ring on kixtop: 7.57 µs, 1.03× the fastest +ChaCha20-Poly1305 seal, 16 KB, ring on ovh-iad: 10.42 µs, 1.06× the fastest +ChaCha20-Poly1305 seal, 16 KB, ring on ovh-sea: 9.93 µs, 1.04× the fastest +ChaCha20-Poly1305 seal, 16 KB, RustCrypto + dalek on nixos: 10.09 µs, 2.16× the fastest +ChaCha20-Poly1305 seal, 16 KB, RustCrypto + dalek on desktop: 8.03 µs, 1.95× the fastest +ChaCha20-Poly1305 seal, 16 KB, RustCrypto + dalek on nixos2: 12.61 µs, 1.91× the fastest +ChaCha20-Poly1305 seal, 16 KB, RustCrypto + dalek on kixtop: 14.97 µs, 2.03× the fastest +ChaCha20-Poly1305 seal, 16 KB, RustCrypto + dalek on ovh-iad: 18.84 µs, 1.91× the fastest +ChaCha20-Poly1305 seal, 16 KB, RustCrypto + dalek on ovh-sea: 18.34 µs, 1.92× the fastest +ChaCha20-Poly1305 seal, 16 KB, graviola on nixos: 10.15 µs, 2.17× the fastest +ChaCha20-Poly1305 seal, 16 KB, graviola on desktop: 8.29 µs, 2.01× the fastest +ChaCha20-Poly1305 seal, 16 KB, graviola on nixos2: 12.52 µs, 1.90× the fastest +ChaCha20-Poly1305 seal, 16 KB, graviola on kixtop: 12.56 µs, 1.71× the fastest +ChaCha20-Poly1305 seal, 16 KB, libcrux on nixos: 26.70 µs, 5.71× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step +✓ +ChaCha20-Poly1305 seal, 16 KB, libcrux on desktop: 19.31 µs, 4.69× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step +✓ +ChaCha20-Poly1305 seal, 16 KB, libcrux on nixos2: 35.52 µs, 5.38× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step +✓ +ChaCha20-Poly1305 seal, 16 KB, libcrux on kixtop: 22.12 µs, 3.00× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step +✓ +ChaCha20-Poly1305 seal, 16 KB, libcrux on ovh-iad: 54.85 µs, 5.57× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step +✓ +ChaCha20-Poly1305 seal, 16 KB, libcrux on ovh-sea: 51.63 µs, 5.40× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step +✓ +ChaCha20-Poly1305 seal, 16 KB, OpenSSL on nixos: 5.14 µs, 1.10× the fastest +ChaCha20-Poly1305 seal, 16 KB, OpenSSL on desktop: 4.35 µs, 1.05× the fastest +ChaCha20-Poly1305 seal, 16 KB, OpenSSL on nixos2: 6.64 µs, 1.01× the fastest +ChaCha20-Poly1305 seal, 16 KB, OpenSSL on kixtop: 7.37 µs, 1.00× the fastest +ChaCha20-Poly1305 seal, 16 KB, OpenSSL on ovh-iad: 11.10 µs, 1.13× the fastest +ChaCha20-Poly1305 seal, 16 KB, OpenSSL on ovh-sea: 10.83 µs, 1.13× the fastest XChaCha20-Poly1305 seal, 32 B XChaCha20-Poly1305 seal, 32 B, rind on nixos: 243 ns, 1.00× the fastest -XChaCha20-Poly1305 seal, 32 B, rind on desktop: 188 ns, 1.00× the fastest +XChaCha20-Poly1305 seal, 32 B, rind on desktop: 186 ns, 1.00× the fastest XChaCha20-Poly1305 seal, 32 B, rind on nixos2: 256 ns, 1.00× the fastest -XChaCha20-Poly1305 seal, 32 B, rind on kixtop: 1.19 µs, 1.26× the fastest +XChaCha20-Poly1305 seal, 32 B, rind on kixtop: 897 ns, 1.03× the fastest XChaCha20-Poly1305 seal, 32 B, rind on ovh-iad: 419 ns, 1.00× the fastest XChaCha20-Poly1305 seal, 32 B, rind on ovh-sea: 402 ns, 1.00× the fastest -XChaCha20-Poly1305 seal, 32 B, aws-lc-rs on nixos: 267 ns, 1.10× the fastest -XChaCha20-Poly1305 seal, 32 B, aws-lc-rs on desktop: 199 ns, 1.06× the fastest -XChaCha20-Poly1305 seal, 32 B, aws-lc-rs on nixos2: 278 ns, 1.09× the fastest -XChaCha20-Poly1305 seal, 32 B, aws-lc-rs on kixtop: 943 ns, 1.00× the fastest -XChaCha20-Poly1305 seal, 32 B, aws-lc-rs on ovh-iad: 440 ns, 1.05× the fastest -XChaCha20-Poly1305 seal, 32 B, aws-lc-rs on ovh-sea: 434 ns, 1.08× the fastest -XChaCha20-Poly1305 seal, 32 B, RustCrypto + dalek on nixos: 1.36 µs, 5.60× the fastest -XChaCha20-Poly1305 seal, 32 B, RustCrypto + dalek on desktop: 889 ns, 4.72× the fastest -XChaCha20-Poly1305 seal, 32 B, RustCrypto + dalek on nixos2: 1.27 µs, 4.95× the fastest -XChaCha20-Poly1305 seal, 32 B, RustCrypto + dalek on kixtop: 1.53 µs, 1.62× the fastest -XChaCha20-Poly1305 seal, 32 B, RustCrypto + dalek on ovh-iad: 2.02 µs, 4.82× the fastest -XChaCha20-Poly1305 seal, 32 B, RustCrypto + dalek on ovh-sea: 1.98 µs, 4.93× the fastest -XChaCha20-Poly1305 seal, 32 B, graviola on nixos: 357 ns, 1.47× the fastest -XChaCha20-Poly1305 seal, 32 B, graviola on desktop: 259 ns, 1.38× the fastest -XChaCha20-Poly1305 seal, 32 B, graviola on nixos2: 335 ns, 1.31× the fastest -XChaCha20-Poly1305 seal, 32 B, graviola on kixtop: 1.11 µs, 1.17× the fastest -XChaCha20-Poly1305 seal, 32 B, libcrux on nixos: 351 ns, 1.45× the fastest -XChaCha20-Poly1305 seal, 32 B, libcrux on desktop: 248 ns, 1.32× the fastest -XChaCha20-Poly1305 seal, 32 B, libcrux on nixos2: 400 ns, 1.56× the fastest -XChaCha20-Poly1305 seal, 32 B, libcrux on kixtop: 1.11 µs, 1.18× the fastest -XChaCha20-Poly1305 seal, 32 B, libcrux on ovh-iad: 685 ns, 1.63× the fastest -XChaCha20-Poly1305 seal, 32 B, libcrux on ovh-sea: 640 ns, 1.59× the fastest +XChaCha20-Poly1305 seal, 32 B, aws-lc-rs on nixos: 267 ns, 1.10× the fastest +XChaCha20-Poly1305 seal, 32 B, aws-lc-rs on desktop: 199 ns, 1.07× the fastest +XChaCha20-Poly1305 seal, 32 B, aws-lc-rs on nixos2: 278 ns, 1.09× the fastest +XChaCha20-Poly1305 seal, 32 B, aws-lc-rs on kixtop: 871 ns, 1.00× the fastest +XChaCha20-Poly1305 seal, 32 B, aws-lc-rs on ovh-iad: 440 ns, 1.05× the fastest +XChaCha20-Poly1305 seal, 32 B, aws-lc-rs on ovh-sea: 434 ns, 1.08× the fastest +XChaCha20-Poly1305 seal, 32 B, RustCrypto + dalek on nixos: 1.36 µs, 5.60× the fastest +XChaCha20-Poly1305 seal, 32 B, RustCrypto + dalek on desktop: 1.15 µs, 6.21× the fastest +XChaCha20-Poly1305 seal, 32 B, RustCrypto + dalek on nixos2: 1.27 µs, 4.95× the fastest +XChaCha20-Poly1305 seal, 32 B, RustCrypto + dalek on kixtop: 1.06 µs, 1.21× the fastest +XChaCha20-Poly1305 seal, 32 B, RustCrypto + dalek on ovh-iad: 2.02 µs, 4.82× the fastest +XChaCha20-Poly1305 seal, 32 B, RustCrypto + dalek on ovh-sea: 1.98 µs, 4.93× the fastest +XChaCha20-Poly1305 seal, 32 B, graviola on nixos: 357 ns, 1.47× the fastest +XChaCha20-Poly1305 seal, 32 B, graviola on desktop: 255 ns, 1.37× the fastest +XChaCha20-Poly1305 seal, 32 B, graviola on nixos2: 335 ns, 1.31× the fastest +XChaCha20-Poly1305 seal, 32 B, graviola on kixtop: 905 ns, 1.04× the fastest +XChaCha20-Poly1305 seal, 32 B, libcrux on nixos: 351 ns, 1.45× the fastest +XChaCha20-Poly1305 seal, 32 B, libcrux on desktop: 244 ns, 1.31× the fastest +XChaCha20-Poly1305 seal, 32 B, libcrux on nixos2: 400 ns, 1.56× the fastest +XChaCha20-Poly1305 seal, 32 B, libcrux on kixtop: 900 ns, 1.03× the fastest +XChaCha20-Poly1305 seal, 32 B, libcrux on ovh-iad: 685 ns, 1.63× the fastest +XChaCha20-Poly1305 seal, 32 B, libcrux on ovh-sea: 640 ns, 1.59× the fastest XChaCha20-Poly1305 seal, 1350 B XChaCha20-Poly1305 seal, 1350 B, rind on nixos: 775 ns, 1.07× the fastest -XChaCha20-Poly1305 seal, 1350 B, rind on desktop: 838 ns, 1.22× the fastest +XChaCha20-Poly1305 seal, 1350 B, rind on desktop: 529 ns, 1.00× the fastest XChaCha20-Poly1305 seal, 1350 B, rind on nixos2: 804 ns, 1.00× the fastest -XChaCha20-Poly1305 seal, 1350 B, rind on kixtop: 2.02 µs, 1.07× the fastest +XChaCha20-Poly1305 seal, 1350 B, rind on kixtop: 1.47 µs, 1.02× the fastest XChaCha20-Poly1305 seal, 1350 B, rind on ovh-iad: 1.34 µs, 1.00× the fastest XChaCha20-Poly1305 seal, 1350 B, rind on ovh-sea: 1.26 µs, 1.00× the fastest -XChaCha20-Poly1305 seal, 1350 B, aws-lc-rs on nixos: 723 ns, 1.00× the fastest -XChaCha20-Poly1305 seal, 1350 B, aws-lc-rs on desktop: 687 ns, 1.00× the fastest -XChaCha20-Poly1305 seal, 1350 B, aws-lc-rs on nixos2: 831 ns, 1.03× the fastest -XChaCha20-Poly1305 seal, 1350 B, aws-lc-rs on kixtop: 1.89 µs, 1.00× the fastest -XChaCha20-Poly1305 seal, 1350 B, aws-lc-rs on ovh-iad: 1.37 µs, 1.02× the fastest -XChaCha20-Poly1305 seal, 1350 B, aws-lc-rs on ovh-sea: 1.29 µs, 1.02× the fastest -XChaCha20-Poly1305 seal, 1350 B, RustCrypto + dalek on nixos: 2.18 µs, 3.01× the fastest -XChaCha20-Poly1305 seal, 1350 B, RustCrypto + dalek on desktop: 1.74 µs, 2.54× the fastest -XChaCha20-Poly1305 seal, 1350 B, RustCrypto + dalek on nixos2: 2.20 µs, 2.74× the fastest -XChaCha20-Poly1305 seal, 1350 B, RustCrypto + dalek on kixtop: 3.19 µs, 1.69× the fastest -XChaCha20-Poly1305 seal, 1350 B, RustCrypto + dalek on ovh-iad: 3.59 µs, 2.69× the fastest -XChaCha20-Poly1305 seal, 1350 B, RustCrypto + dalek on ovh-sea: 3.40 µs, 2.69× the fastest -XChaCha20-Poly1305 seal, 1350 B, graviola on nixos: 1.31 µs, 1.81× the fastest -XChaCha20-Poly1305 seal, 1350 B, graviola on desktop: 1.35 µs, 1.97× the fastest -XChaCha20-Poly1305 seal, 1350 B, graviola on nixos2: 1.32 µs, 1.64× the fastest -XChaCha20-Poly1305 seal, 1350 B, graviola on kixtop: 2.85 µs, 1.51× the fastest -XChaCha20-Poly1305 seal, 1350 B, libcrux on nixos: 2.70 µs, 3.73× the fastest -XChaCha20-Poly1305 seal, 1350 B, libcrux on desktop: 2.56 µs, 3.73× the fastest -XChaCha20-Poly1305 seal, 1350 B, libcrux on nixos2: 3.16 µs, 3.92× the fastest -XChaCha20-Poly1305 seal, 1350 B, libcrux on kixtop: 3.80 µs, 2.02× the fastest -XChaCha20-Poly1305 seal, 1350 B, libcrux on ovh-iad: 5.18 µs, 3.88× the fastest -XChaCha20-Poly1305 seal, 1350 B, libcrux on ovh-sea: 4.82 µs, 3.81× the fastest +XChaCha20-Poly1305 seal, 1350 B, aws-lc-rs on nixos: 723 ns, 1.00× the fastest +XChaCha20-Poly1305 seal, 1350 B, aws-lc-rs on desktop: 539 ns, 1.02× the fastest +XChaCha20-Poly1305 seal, 1350 B, aws-lc-rs on nixos2: 831 ns, 1.03× the fastest +XChaCha20-Poly1305 seal, 1350 B, aws-lc-rs on kixtop: 1.45 µs, 1.00× the fastest +XChaCha20-Poly1305 seal, 1350 B, aws-lc-rs on ovh-iad: 1.37 µs, 1.02× the fastest +XChaCha20-Poly1305 seal, 1350 B, aws-lc-rs on ovh-sea: 1.29 µs, 1.02× the fastest +XChaCha20-Poly1305 seal, 1350 B, RustCrypto + dalek on nixos: 2.18 µs, 3.01× the fastest +XChaCha20-Poly1305 seal, 1350 B, RustCrypto + dalek on desktop: 1.73 µs, 3.27× the fastest +XChaCha20-Poly1305 seal, 1350 B, RustCrypto + dalek on nixos2: 2.20 µs, 2.74× the fastest +XChaCha20-Poly1305 seal, 1350 B, RustCrypto + dalek on kixtop: 2.44 µs, 1.69× the fastest +XChaCha20-Poly1305 seal, 1350 B, RustCrypto + dalek on ovh-iad: 3.59 µs, 2.69× the fastest +XChaCha20-Poly1305 seal, 1350 B, RustCrypto + dalek on ovh-sea: 3.40 µs, 2.69× the fastest +XChaCha20-Poly1305 seal, 1350 B, graviola on nixos: 1.31 µs, 1.81× the fastest +XChaCha20-Poly1305 seal, 1350 B, graviola on desktop: 974 ns, 1.84× the fastest +XChaCha20-Poly1305 seal, 1350 B, graviola on nixos2: 1.32 µs, 1.64× the fastest +XChaCha20-Poly1305 seal, 1350 B, graviola on kixtop: 1.94 µs, 1.34× the fastest +XChaCha20-Poly1305 seal, 1350 B, libcrux on nixos: 2.70 µs, 3.73× the fastest +XChaCha20-Poly1305 seal, 1350 B, libcrux on desktop: 1.83 µs, 3.47× the fastest +XChaCha20-Poly1305 seal, 1350 B, libcrux on nixos2: 3.16 µs, 3.92× the fastest +XChaCha20-Poly1305 seal, 1350 B, libcrux on kixtop: 2.71 µs, 1.87× the fastest +XChaCha20-Poly1305 seal, 1350 B, libcrux on ovh-iad: 5.18 µs, 3.88× the fastest +XChaCha20-Poly1305 seal, 1350 B, libcrux on ovh-sea: 4.82 µs, 3.81× the fastest XChaCha20-Poly1305 seal, 16 KB XChaCha20-Poly1305 seal, 16 KB, rind on nixos: 5.23 µs, 1.00× the fastest -XChaCha20-Poly1305 seal, 16 KB, rind on desktop: 6.26 µs, 1.00× the fastest +XChaCha20-Poly1305 seal, 16 KB, rind on desktop: 4.17 µs, 1.00× the fastest XChaCha20-Poly1305 seal, 16 KB, rind on nixos2: 6.38 µs, 1.00× the fastest -XChaCha20-Poly1305 seal, 16 KB, rind on kixtop: 11.36 µs, 1.00× the fastest +XChaCha20-Poly1305 seal, 16 KB, rind on kixtop: 8.23 µs, 1.00× the fastest XChaCha20-Poly1305 seal, 16 KB, rind on ovh-iad: 10.26 µs, 1.00× the fastest XChaCha20-Poly1305 seal, 16 KB, rind on ovh-sea: 10.02 µs, 1.01× the fastest -XChaCha20-Poly1305 seal, 16 KB, aws-lc-rs on nixos: 5.37 µs, 1.03× the fastest -XChaCha20-Poly1305 seal, 16 KB, aws-lc-rs on desktop: 6.27 µs, 1.00× the fastest -XChaCha20-Poly1305 seal, 16 KB, aws-lc-rs on nixos2: 6.44 µs, 1.01× the fastest -XChaCha20-Poly1305 seal, 16 KB, aws-lc-rs on kixtop: 11.43 µs, 1.01× the fastest -XChaCha20-Poly1305 seal, 16 KB, aws-lc-rs on ovh-iad: 10.47 µs, 1.02× the fastest -XChaCha20-Poly1305 seal, 16 KB, aws-lc-rs on ovh-sea: 9.94 µs, 1.00× the fastest -XChaCha20-Poly1305 seal, 16 KB, RustCrypto + dalek on nixos: 11.38 µs, 2.17× the fastest -XChaCha20-Poly1305 seal, 16 KB, RustCrypto + dalek on desktop: 12.28 µs, 1.96× the fastest -XChaCha20-Poly1305 seal, 16 KB, RustCrypto + dalek on nixos2: 12.04 µs, 1.89× the fastest -XChaCha20-Poly1305 seal, 16 KB, RustCrypto + dalek on kixtop: 22.76 µs, 2.00× the fastest -XChaCha20-Poly1305 seal, 16 KB, RustCrypto + dalek on ovh-iad: 18.84 µs, 1.84× the fastest -XChaCha20-Poly1305 seal, 16 KB, RustCrypto + dalek on ovh-sea: 18.77 µs, 1.89× the fastest -XChaCha20-Poly1305 seal, 16 KB, graviola on nixos: 10.80 µs, 2.06× the fastest -XChaCha20-Poly1305 seal, 16 KB, graviola on desktop: 12.79 µs, 2.04× the fastest -XChaCha20-Poly1305 seal, 16 KB, graviola on nixos2: 11.86 µs, 1.86× the fastest -XChaCha20-Poly1305 seal, 16 KB, graviola on kixtop: 19.24 µs, 1.69× the fastest -XChaCha20-Poly1305 seal, 16 KB, libcrux on nixos: 28.66 µs, 5.48× the fastest -XChaCha20-Poly1305 seal, 16 KB, libcrux on desktop: 27.40 µs, 4.37× the fastest -XChaCha20-Poly1305 seal, 16 KB, libcrux on nixos2: 33.42 µs, 5.23× the fastest -XChaCha20-Poly1305 seal, 16 KB, libcrux on kixtop: 34.20 µs, 3.01× the fastest -XChaCha20-Poly1305 seal, 16 KB, libcrux on ovh-iad: 54.13 µs, 5.28× the fastest -XChaCha20-Poly1305 seal, 16 KB, libcrux on ovh-sea: 52.01 µs, 5.23× the fastest +XChaCha20-Poly1305 seal, 16 KB, aws-lc-rs on nixos: 5.37 µs, 1.03× the fastest +XChaCha20-Poly1305 seal, 16 KB, aws-lc-rs on desktop: 4.23 µs, 1.01× the fastest +XChaCha20-Poly1305 seal, 16 KB, aws-lc-rs on nixos2: 6.44 µs, 1.01× the fastest +XChaCha20-Poly1305 seal, 16 KB, aws-lc-rs on kixtop: 8.31 µs, 1.01× the fastest +XChaCha20-Poly1305 seal, 16 KB, aws-lc-rs on ovh-iad: 10.47 µs, 1.02× the fastest +XChaCha20-Poly1305 seal, 16 KB, aws-lc-rs on ovh-sea: 9.94 µs, 1.00× the fastest +XChaCha20-Poly1305 seal, 16 KB, RustCrypto + dalek on nixos: 11.38 µs, 2.17× the fastest +XChaCha20-Poly1305 seal, 16 KB, RustCrypto + dalek on desktop: 8.15 µs, 1.95× the fastest +XChaCha20-Poly1305 seal, 16 KB, RustCrypto + dalek on nixos2: 12.04 µs, 1.89× the fastest +XChaCha20-Poly1305 seal, 16 KB, RustCrypto + dalek on kixtop: 15.59 µs, 1.89× the fastest +XChaCha20-Poly1305 seal, 16 KB, RustCrypto + dalek on ovh-iad: 18.84 µs, 1.84× the fastest +XChaCha20-Poly1305 seal, 16 KB, RustCrypto + dalek on ovh-sea: 18.77 µs, 1.89× the fastest +XChaCha20-Poly1305 seal, 16 KB, graviola on nixos: 10.80 µs, 2.06× the fastest +XChaCha20-Poly1305 seal, 16 KB, graviola on desktop: 8.40 µs, 2.01× the fastest +XChaCha20-Poly1305 seal, 16 KB, graviola on nixos2: 11.86 µs, 1.86× the fastest +XChaCha20-Poly1305 seal, 16 KB, graviola on kixtop: 13.22 µs, 1.61× the fastest +XChaCha20-Poly1305 seal, 16 KB, libcrux on nixos: 28.66 µs, 5.48× the fastest +XChaCha20-Poly1305 seal, 16 KB, libcrux on desktop: 19.61 µs, 4.70× the fastest +XChaCha20-Poly1305 seal, 16 KB, libcrux on nixos2: 33.42 µs, 5.23× the fastest +XChaCha20-Poly1305 seal, 16 KB, libcrux on kixtop: 22.43 µs, 2.73× the fastest +XChaCha20-Poly1305 seal, 16 KB, libcrux on ovh-iad: 54.13 µs, 5.28× the fastest +XChaCha20-Poly1305 seal, 16 KB, libcrux on ovh-sea: 52.01 µs, 5.23× the fastest QUIC header protection - + AES-128 header protection AES-128 header protection, rind on nixos: 4 ns, 1.00× the fastest AES-128 header protection, rind on desktop: 2 ns, 1.00× the fastest AES-128 header protection, rind on nixos2: 5 ns, 1.00× the fastest -AES-128 header protection, rind on kixtop: 35 ns, 12.24× the fastest +AES-128 header protection, rind on kixtop: 34 ns, 12.19× the fastest AES-128 header protection, rind on ovh-iad: 7 ns, 1.00× the fastest AES-128 header protection, rind on ovh-sea: 7 ns, 1.00× the fastest -AES-128 header protection, aws-lc-rs on nixos: 6 ns, 1.45× the fastest -AES-128 header protection, aws-lc-rs on desktop: 3 ns, 1.59× the fastest -AES-128 header protection, aws-lc-rs on nixos2: 9 ns, 1.95× the fastest -AES-128 header protection, aws-lc-rs on kixtop: 3 ns, 1.00× the fastest -AES-128 header protection, aws-lc-rs on ovh-iad: 12 ns, 1.66× the fastest -AES-128 header protection, aws-lc-rs on ovh-sea: 11 ns, 1.66× the fastest -AES-128 header protection, ring on nixos: 7 ns, 1.74× the fastest -AES-128 header protection, ring on desktop: 3 ns, 1.68× the fastest -AES-128 header protection, ring on nixos2: 8 ns, 1.73× the fastest -AES-128 header protection, ring on kixtop: 3 ns, 1.15× the fastest -AES-128 header protection, ring on ovh-iad: 13 ns, 1.74× the fastest -AES-128 header protection, ring on ovh-sea: 12 ns, 1.70× the fastest +AES-128 header protection, rind (DIT held) on kixtop: 3 ns, 1.00× the fastest +AES-128 header protection, aws-lc-rs on nixos: 6 ns, 1.45× the fastest +AES-128 header protection, aws-lc-rs on desktop: 3 ns, 1.91× the fastest +AES-128 header protection, aws-lc-rs on nixos2: 9 ns, 1.95× the fastest +AES-128 header protection, aws-lc-rs on kixtop: 3 ns, 1.00× the fastest +AES-128 header protection, aws-lc-rs on ovh-iad: 12 ns, 1.66× the fastest +AES-128 header protection, aws-lc-rs on ovh-sea: 11 ns, 1.66× the fastest +AES-128 header protection, ring on nixos: 7 ns, 1.74× the fastest +AES-128 header protection, ring on desktop: 3 ns, 2.03× the fastest +AES-128 header protection, ring on nixos2: 8 ns, 1.73× the fastest +AES-128 header protection, ring on kixtop: 3 ns, 1.12× the fastest +AES-128 header protection, ring on ovh-iad: 13 ns, 1.74× the fastest +AES-128 header protection, ring on ovh-sea: 12 ns, 1.70× the fastest AES-256 header protection AES-256 header protection, rind on nixos: 6 ns, 1.00× the fastest AES-256 header protection, rind on desktop: 2 ns, 1.00× the fastest AES-256 header protection, rind on nixos2: 8 ns, 1.00× the fastest -AES-256 header protection, rind on kixtop: 38 ns, 12.62× the fastest +AES-256 header protection, rind on kixtop: 38 ns, 12.76× the fastest AES-256 header protection, rind on ovh-iad: 10 ns, 1.00× the fastest AES-256 header protection, rind on ovh-sea: 9 ns, 1.00× the fastest -AES-256 header protection, aws-lc-rs on nixos: 8 ns, 1.32× the fastest -AES-256 header protection, aws-lc-rs on desktop: 5 ns, 2.06× the fastest -AES-256 header protection, aws-lc-rs on nixos2: 10 ns, 1.25× the fastest -AES-256 header protection, aws-lc-rs on kixtop: 3 ns, 1.00× the fastest -AES-256 header protection, aws-lc-rs on ovh-iad: 16 ns, 1.62× the fastest -AES-256 header protection, aws-lc-rs on ovh-sea: 15 ns, 1.58× the fastest -AES-256 header protection, ring on nixos: 10 ns, 1.64× the fastest -AES-256 header protection, ring on desktop: 5 ns, 2.16× the fastest -AES-256 header protection, ring on nixos2: 10 ns, 1.24× the fastest -AES-256 header protection, ring on kixtop: 4 ns, 1.31× the fastest -AES-256 header protection, ring on ovh-iad: 15 ns, 1.59× the fastest -AES-256 header protection, ring on ovh-sea: 15 ns, 1.56× the fastest +AES-256 header protection, rind (DIT held) on kixtop: 3 ns, 0.97× the fastest +AES-256 header protection, aws-lc-rs on nixos: 8 ns, 1.32× the fastest +AES-256 header protection, aws-lc-rs on desktop: 5 ns, 2.56× the fastest +AES-256 header protection, aws-lc-rs on nixos2: 10 ns, 1.25× the fastest +AES-256 header protection, aws-lc-rs on kixtop: 3 ns, 1.00× the fastest +AES-256 header protection, aws-lc-rs on ovh-iad: 16 ns, 1.62× the fastest +AES-256 header protection, aws-lc-rs on ovh-sea: 15 ns, 1.58× the fastest +AES-256 header protection, ring on nixos: 10 ns, 1.64× the fastest +AES-256 header protection, ring on desktop: 5 ns, 2.47× the fastest +AES-256 header protection, ring on nixos2: 10 ns, 1.24× the fastest +AES-256 header protection, ring on kixtop: 4 ns, 1.29× the fastest +AES-256 header protection, ring on ovh-iad: 15 ns, 1.59× the fastest +AES-256 header protection, ring on ovh-sea: 15 ns, 1.56× the fastest ChaCha20 header protection ChaCha20 header protection, rind on nixos: 61 ns, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and a hand model of the function-pointer dispatch Aeneas cannot translate, which assumes each key's mask is its own cipher's, the only one rind builds, of its header-protection API's ChaCha20 against RFC 9001 and RFC 8439, HACL*'s rounds included ✓ -ChaCha20 header protection, rind on desktop: 54 ns, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and a hand model of the function-pointer dispatch Aeneas cannot translate, which assumes each key's mask is its own cipher's, the only one rind builds, of its header-protection API's ChaCha20 against RFC 9001 and RFC 8439, HACL*'s rounds included +ChaCha20 header protection, rind on desktop: 53 ns, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and a hand model of the function-pointer dispatch Aeneas cannot translate, which assumes each key's mask is its own cipher's, the only one rind builds, of its header-protection API's ChaCha20 against RFC 9001 and RFC 8439, HACL*'s rounds included ✓ ChaCha20 header protection, rind on nixos2: 84 ns, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and a hand model of the function-pointer dispatch Aeneas cannot translate, which assumes each key's mask is its own cipher's, the only one rind builds, of its header-protection API's ChaCha20 against RFC 9001 and RFC 8439, HACL*'s rounds included ✓ -ChaCha20 header protection, rind on kixtop: 89 ns, 1.29× the fastest; verified: rind's Lean proof, through Aeneas and a hand model of the function-pointer dispatch Aeneas cannot translate, which assumes each key's mask is its own cipher's, the only one rind builds, of its header-protection API's ChaCha20 against RFC 9001 and RFC 8439, HACL*'s rounds included +ChaCha20 header protection, rind on kixtop: 88 ns, 1.30× the fastest; verified: rind's Lean proof, through Aeneas and a hand model of the function-pointer dispatch Aeneas cannot translate, which assumes each key's mask is its own cipher's, the only one rind builds, of its header-protection API's ChaCha20 against RFC 9001 and RFC 8439, HACL*'s rounds included ✓ ChaCha20 header protection, rind on ovh-iad: 126 ns, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and a hand model of the function-pointer dispatch Aeneas cannot translate, which assumes each key's mask is its own cipher's, the only one rind builds, of its header-protection API's ChaCha20 against RFC 9001 and RFC 8439, HACL*'s rounds included ✓ ChaCha20 header protection, rind on ovh-sea: 122 ns, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and a hand model of the function-pointer dispatch Aeneas cannot translate, which assumes each key's mask is its own cipher's, the only one rind builds, of its header-protection API's ChaCha20 against RFC 9001 and RFC 8439, HACL*'s rounds included ✓ -ChaCha20 header protection, aws-lc-rs on nixos: 82 ns, 1.34× the fastest -ChaCha20 header protection, aws-lc-rs on desktop: 69 ns, 1.28× the fastest -ChaCha20 header protection, aws-lc-rs on nixos2: 104 ns, 1.24× the fastest -ChaCha20 header protection, aws-lc-rs on kixtop: 73 ns, 1.07× the fastest -ChaCha20 header protection, aws-lc-rs on ovh-iad: 160 ns, 1.27× the fastest -ChaCha20 header protection, aws-lc-rs on ovh-sea: 152 ns, 1.25× the fastest -ChaCha20 header protection, ring on nixos: 74 ns, 1.22× the fastest -ChaCha20 header protection, ring on desktop: 61 ns, 1.14× the fastest -ChaCha20 header protection, ring on nixos2: 98 ns, 1.17× the fastest -ChaCha20 header protection, ring on kixtop: 68 ns, 1.00× the fastest -ChaCha20 header protection, ring on ovh-iad: 145 ns, 1.15× the fastest -ChaCha20 header protection, ring on ovh-sea: 139 ns, 1.14× the fastest +ChaCha20 header protection, rind (DIT held) on kixtop: 58 ns, 0.86× the fastest; verified: rind's Lean proof, through Aeneas and a hand model of the function-pointer dispatch Aeneas cannot translate, which assumes each key's mask is its own cipher's, the only one rind builds, of its header-protection API's ChaCha20 against RFC 9001 and RFC 8439, HACL*'s rounds included +✓ +ChaCha20 header protection, aws-lc-rs on nixos: 82 ns, 1.34× the fastest +ChaCha20 header protection, aws-lc-rs on desktop: 68 ns, 1.29× the fastest +ChaCha20 header protection, aws-lc-rs on nixos2: 104 ns, 1.24× the fastest +ChaCha20 header protection, aws-lc-rs on kixtop: 72 ns, 1.08× the fastest +ChaCha20 header protection, aws-lc-rs on ovh-iad: 160 ns, 1.27× the fastest +ChaCha20 header protection, aws-lc-rs on ovh-sea: 152 ns, 1.25× the fastest +ChaCha20 header protection, ring on nixos: 74 ns, 1.22× the fastest +ChaCha20 header protection, ring on desktop: 60 ns, 1.14× the fastest +ChaCha20 header protection, ring on nixos2: 98 ns, 1.17× the fastest +ChaCha20 header protection, ring on kixtop: 67 ns, 1.00× the fastest +ChaCha20 header protection, ring on ovh-iad: 145 ns, 1.15× the fastest +ChaCha20 header protection, ring on ovh-sea: 139 ns, 1.14× the fastest Key agreement - + X25519 X25519, rind on nixos: 23.97 µs, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and a hand model of the function-pointer dispatch Aeneas cannot translate, which assumes each key's dispatch table holds its own curve's functions, the only table rind builds, of its agreement API's X25519 down to s2n-bignum's routines, composed with s2n-bignum's HOL Light proofs of curve25519_x25519, curve25519_x25519base, their _alt forms without BMI2 and ADX, and bignum_eq, of s2n-bignum's own object code, which rind transliterates ✓ -X25519, rind on desktop: 19.68 µs, 1.06× the fastest; verified: rind's Lean proof, through Aeneas and a hand model of the function-pointer dispatch Aeneas cannot translate, which assumes each key's dispatch table holds its own curve's functions, the only table rind builds, of its agreement API's X25519 down to s2n-bignum's routines, composed with s2n-bignum's HOL Light proofs of curve25519_x25519, curve25519_x25519base, their _alt forms without BMI2 and ADX, and bignum_eq, of s2n-bignum's own object code, which rind transliterates +X25519, rind on desktop: 18.20 µs, 1.01× the fastest; verified: rind's Lean proof, through Aeneas and a hand model of the function-pointer dispatch Aeneas cannot translate, which assumes each key's dispatch table holds its own curve's functions, the only table rind builds, of its agreement API's X25519 down to s2n-bignum's routines, composed with s2n-bignum's HOL Light proofs of curve25519_x25519, curve25519_x25519base, their _alt forms without BMI2 and ADX, and bignum_eq, of s2n-bignum's own object code, which rind transliterates ✓ X25519, rind on nixos2: 25.00 µs, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and a hand model of the function-pointer dispatch Aeneas cannot translate, which assumes each key's dispatch table holds its own curve's functions, the only table rind builds, of its agreement API's X25519 down to s2n-bignum's routines, composed with s2n-bignum's HOL Light proofs of curve25519_x25519, curve25519_x25519base, their _alt forms without BMI2 and ADX, and bignum_eq, of s2n-bignum's own object code, which rind transliterates ✓ -X25519, rind on kixtop: 16.71 µs, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and a hand model of the function-pointer dispatch Aeneas cannot translate, which assumes each key's dispatch table holds its own curve's functions, the only table rind builds, of its agreement API's X25519 down to s2n-bignum's routines, composed with s2n-bignum's HOL Light proofs of curve25519_x25519_alt, curve25519_x25519base_alt, and bignum_eq, of s2n-bignum's own object code, which rind transliterates +X25519, rind on kixtop: 16.53 µs, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and a hand model of the function-pointer dispatch Aeneas cannot translate, which assumes each key's dispatch table holds its own curve's functions, the only table rind builds, of its agreement API's X25519 down to s2n-bignum's routines, composed with s2n-bignum's HOL Light proofs of curve25519_x25519_alt, curve25519_x25519base_alt, and bignum_eq, of s2n-bignum's own object code, which rind transliterates ✓ X25519, rind on ovh-iad: 51.79 µs, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and a hand model of the function-pointer dispatch Aeneas cannot translate, which assumes each key's dispatch table holds its own curve's functions, the only table rind builds, of its agreement API's X25519 down to s2n-bignum's routines, composed with s2n-bignum's HOL Light proofs of curve25519_x25519, curve25519_x25519base, their _alt forms without BMI2 and ADX, and bignum_eq, of s2n-bignum's own object code, which rind transliterates ✓ X25519, rind on ovh-sea: 51.10 µs, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and a hand model of the function-pointer dispatch Aeneas cannot translate, which assumes each key's dispatch table holds its own curve's functions, the only table rind builds, of its agreement API's X25519 down to s2n-bignum's routines, composed with s2n-bignum's HOL Light proofs of curve25519_x25519, curve25519_x25519base, their _alt forms without BMI2 and ADX, and bignum_eq, of s2n-bignum's own object code, which rind transliterates ✓ -X25519, aws-lc-rs on nixos: 24.61 µs, 1.03× the fastest -X25519, aws-lc-rs on desktop: 19.54 µs, 1.06× the fastest -X25519, aws-lc-rs on nixos2: 30.89 µs, 1.24× the fastest -X25519, aws-lc-rs on kixtop: 17.85 µs, 1.07× the fastest -X25519, aws-lc-rs on ovh-iad: 55.09 µs, 1.06× the fastest -X25519, aws-lc-rs on ovh-sea: 51.15 µs, 1.00× the fastest -X25519, ring on nixos: 46.72 µs, 1.95× the fastest -X25519, ring on desktop: 35.63 µs, 1.93× the fastest -X25519, ring on nixos2: 53.60 µs, 2.15× the fastest -X25519, ring on kixtop: 24.48 µs, 1.46× the fastest -X25519, ring on ovh-iad: 79.18 µs, 1.53× the fastest -X25519, ring on ovh-sea: 76.22 µs, 1.49× the fastest -X25519, RustCrypto + dalek on nixos: 52.09 µs, 2.18× the fastest -X25519, RustCrypto + dalek on desktop: 36.52 µs, 1.97× the fastest -X25519, RustCrypto + dalek on nixos2: 56.59 µs, 2.27× the fastest -X25519, RustCrypto + dalek on kixtop: 29.71 µs, 1.78× the fastest -X25519, RustCrypto + dalek on ovh-iad: 92.76 µs, 1.79× the fastest -X25519, RustCrypto + dalek on ovh-sea: 87.59 µs, 1.71× the fastest -X25519, graviola on nixos: 23.94 µs, 1.00× the fastest -X25519, graviola on desktop: 18.50 µs, 1.00× the fastest -X25519, graviola on nixos2: 24.95 µs, 1.00× the fastest -X25519, graviola on kixtop: 17.74 µs, 1.06× the fastest -X25519, libcrux on nixos: 64.60 µs, 2.70× the fastest; verified: HACL*'s F* proof of Hacl.Curve25519_51's secret_to_public and ecdh, compiled to Rust by an unverified step -✓ -X25519, libcrux on desktop: 43.11 µs, 2.33× the fastest; verified: HACL*'s F* proof of Hacl.Curve25519_51's secret_to_public and ecdh, compiled to Rust by an unverified step -✓ -X25519, libcrux on nixos2: 72.34 µs, 2.90× the fastest; verified: HACL*'s F* proof of Hacl.Curve25519_51's secret_to_public and ecdh, compiled to Rust by an unverified step -✓ -X25519, libcrux on kixtop: 37.77 µs, 2.26× the fastest; verified: HACL*'s F* proof of Hacl.Curve25519_51's secret_to_public and ecdh, compiled to Rust by an unverified step -✓ -X25519, libcrux on ovh-iad: 118.60 µs, 2.29× the fastest; verified: HACL*'s F* proof of Hacl.Curve25519_51's secret_to_public and ecdh, compiled to Rust by an unverified step -✓ -X25519, libcrux on ovh-sea: 113.85 µs, 2.23× the fastest; verified: HACL*'s F* proof of Hacl.Curve25519_51's secret_to_public and ecdh, compiled to Rust by an unverified step -✓ -X25519, OpenSSL on nixos: 49.70 µs, 2.08× the fastest -X25519, OpenSSL on desktop: 34.02 µs, 1.84× the fastest -X25519, OpenSSL on nixos2: 55.20 µs, 2.21× the fastest -X25519, OpenSSL on kixtop: 35.77 µs, 2.14× the fastest -X25519, OpenSSL on ovh-iad: 108.87 µs, 2.10× the fastest -X25519, OpenSSL on ovh-sea: 94.95 µs, 1.86× the fastest +X25519, aws-lc-rs on nixos: 24.61 µs, 1.03× the fastest +X25519, aws-lc-rs on desktop: 19.24 µs, 1.06× the fastest +X25519, aws-lc-rs on nixos2: 30.89 µs, 1.24× the fastest +X25519, aws-lc-rs on kixtop: 18.12 µs, 1.10× the fastest +X25519, aws-lc-rs on ovh-iad: 55.09 µs, 1.06× the fastest +X25519, aws-lc-rs on ovh-sea: 51.15 µs, 1.00× the fastest +X25519, ring on nixos: 46.72 µs, 1.95× the fastest +X25519, ring on desktop: 35.63 µs, 1.97× the fastest +X25519, ring on nixos2: 53.60 µs, 2.15× the fastest +X25519, ring on kixtop: 24.91 µs, 1.51× the fastest +X25519, ring on ovh-iad: 79.18 µs, 1.53× the fastest +X25519, ring on ovh-sea: 76.22 µs, 1.49× the fastest +X25519, RustCrypto + dalek on nixos: 52.09 µs, 2.18× the fastest +X25519, RustCrypto + dalek on desktop: 36.06 µs, 1.99× the fastest +X25519, RustCrypto + dalek on nixos2: 56.59 µs, 2.27× the fastest +X25519, RustCrypto + dalek on kixtop: 29.73 µs, 1.80× the fastest +X25519, RustCrypto + dalek on ovh-iad: 92.76 µs, 1.79× the fastest +X25519, RustCrypto + dalek on ovh-sea: 87.59 µs, 1.71× the fastest +X25519, graviola on nixos: 23.94 µs, 1.00× the fastest +X25519, graviola on desktop: 18.09 µs, 1.00× the fastest +X25519, graviola on nixos2: 24.95 µs, 1.00× the fastest +X25519, graviola on kixtop: 16.57 µs, 1.00× the fastest +X25519, libcrux on nixos: 64.60 µs, 2.70× the fastest; verified: HACL*'s F* proof of Hacl.Curve25519_51's secret_to_public and ecdh, compiled to Rust by an unverified step +✓ +X25519, libcrux on desktop: 42.68 µs, 2.36× the fastest; verified: HACL*'s F* proof of Hacl.Curve25519_51's secret_to_public and ecdh, compiled to Rust by an unverified step +✓ +X25519, libcrux on nixos2: 72.34 µs, 2.90× the fastest; verified: HACL*'s F* proof of Hacl.Curve25519_51's secret_to_public and ecdh, compiled to Rust by an unverified step +✓ +X25519, libcrux on kixtop: 37.30 µs, 2.26× the fastest; verified: HACL*'s F* proof of Hacl.Curve25519_51's secret_to_public and ecdh, compiled to Rust by an unverified step +✓ +X25519, libcrux on ovh-iad: 118.60 µs, 2.29× the fastest; verified: HACL*'s F* proof of Hacl.Curve25519_51's secret_to_public and ecdh, compiled to Rust by an unverified step +✓ +X25519, libcrux on ovh-sea: 113.85 µs, 2.23× the fastest; verified: HACL*'s F* proof of Hacl.Curve25519_51's secret_to_public and ecdh, compiled to Rust by an unverified step +✓ +X25519, OpenSSL on nixos: 49.70 µs, 2.08× the fastest +X25519, OpenSSL on desktop: 33.95 µs, 1.88× the fastest +X25519, OpenSSL on nixos2: 55.20 µs, 2.21× the fastest +X25519, OpenSSL on kixtop: 36.21 µs, 2.19× the fastest +X25519, OpenSSL on ovh-iad: 108.87 µs, 2.10× the fastest +X25519, OpenSSL on ovh-sea: 94.95 µs, 1.86× the fastest P-256 ECDH P-256 ECDH, rind on nixos: 42.82 µs, 1.01× the fastest -P-256 ECDH, rind on desktop: 29.85 µs, 1.00× the fastest +P-256 ECDH, rind on desktop: 29.52 µs, 1.00× the fastest P-256 ECDH, rind on nixos2: 42.80 µs, 1.00× the fastest -P-256 ECDH, rind on kixtop: 26.27 µs, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch and of key generation's draws through a dyn RandomSource, which Aeneas cannot translate, of its agreement API's P-256 key generation, public key, and agreement down to s2n-bignum's routines, composed with s2n-bignum's HOL Light proofs of p256_scalarmulbase_alt, p256_scalarmul_alt, bignum_tomont_p256, bignum_demont_p256, bignum_add_p256, bignum_montmul_p256, bignum_montsqr_p256, bignum_mod_n256_4, and bignum_eq, of s2n-bignum's own object code, which rind transliterates, with rind's generator table proven to hold the multiples of G that s2n-bignum's proof assumes +P-256 ECDH, rind on kixtop: 26.44 µs, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch and of key generation's draws through a dyn RandomSource, which Aeneas cannot translate, of its agreement API's P-256 key generation, public key, and agreement down to s2n-bignum's routines, composed with s2n-bignum's HOL Light proofs of p256_scalarmulbase_alt, p256_scalarmul_alt, bignum_tomont_p256, bignum_demont_p256, bignum_add_p256, bignum_montmul_p256, bignum_montsqr_p256, bignum_mod_n256_4, and bignum_eq, of s2n-bignum's own object code, which rind transliterates, with rind's generator table proven to hold the multiples of G that s2n-bignum's proof assumes ✓ P-256 ECDH, rind on ovh-iad: 80.93 µs, 1.00× the fastest P-256 ECDH, rind on ovh-sea: 78.75 µs, 1.00× the fastest -P-256 ECDH, aws-lc-rs on nixos: 42.60 µs, 1.00× the fastest -P-256 ECDH, aws-lc-rs on desktop: 32.27 µs, 1.08× the fastest -P-256 ECDH, aws-lc-rs on nixos2: 51.71 µs, 1.21× the fastest -P-256 ECDH, aws-lc-rs on kixtop: 28.51 µs, 1.09× the fastest -P-256 ECDH, aws-lc-rs on ovh-iad: 90.86 µs, 1.12× the fastest -P-256 ECDH, aws-lc-rs on ovh-sea: 83.71 µs, 1.06× the fastest -P-256 ECDH, ring on nixos: 46.05 µs, 1.08× the fastest -P-256 ECDH, ring on desktop: 34.14 µs, 1.14× the fastest -P-256 ECDH, ring on nixos2: 47.10 µs, 1.10× the fastest -P-256 ECDH, ring on kixtop: 32.31 µs, 1.23× the fastest -P-256 ECDH, ring on ovh-iad: 86.47 µs, 1.07× the fastest -P-256 ECDH, ring on ovh-sea: 83.41 µs, 1.06× the fastest -P-256 ECDH, RustCrypto + dalek on nixos: 268.62 µs, 6.31× the fastest -P-256 ECDH, RustCrypto + dalek on desktop: 123.01 µs, 4.12× the fastest -P-256 ECDH, RustCrypto + dalek on nixos2: 233.70 µs, 5.46× the fastest -P-256 ECDH, RustCrypto + dalek on kixtop: 180.62 µs, 6.88× the fastest -P-256 ECDH, RustCrypto + dalek on ovh-iad: 379.56 µs, 4.69× the fastest -P-256 ECDH, RustCrypto + dalek on ovh-sea: 363.81 µs, 4.62× the fastest -P-256 ECDH, graviola on nixos: 47.87 µs, 1.12× the fastest -P-256 ECDH, graviola on desktop: 33.46 µs, 1.12× the fastest -P-256 ECDH, graviola on nixos2: 46.44 µs, 1.08× the fastest -P-256 ECDH, graviola on kixtop: 31.56 µs, 1.20× the fastest -P-256 ECDH, libcrux on nixos: 268.70 µs, 6.31× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step -✓ -P-256 ECDH, libcrux on desktop: 169.87 µs, 5.69× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step -✓ -P-256 ECDH, libcrux on nixos2: 280.52 µs, 6.55× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step -✓ -P-256 ECDH, libcrux on kixtop: 183.72 µs, 6.99× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step -✓ -P-256 ECDH, libcrux on ovh-iad: 448.99 µs, 5.55× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step -✓ -P-256 ECDH, libcrux on ovh-sea: 431.73 µs, 5.48× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step -✓ -P-256 ECDH, OpenSSL on nixos: 71.25 µs, 1.67× the fastest -P-256 ECDH, OpenSSL on desktop: 52.91 µs, 1.77× the fastest -P-256 ECDH, OpenSSL on nixos2: 81.68 µs, 1.91× the fastest -P-256 ECDH, OpenSSL on kixtop: 49.96 µs, 1.90× the fastest -P-256 ECDH, OpenSSL on ovh-iad: 144.90 µs, 1.79× the fastest -P-256 ECDH, OpenSSL on ovh-sea: 135.76 µs, 1.72× the fastest +P-256 ECDH, aws-lc-rs on nixos: 42.60 µs, 1.00× the fastest +P-256 ECDH, aws-lc-rs on desktop: 31.77 µs, 1.08× the fastest +P-256 ECDH, aws-lc-rs on nixos2: 51.71 µs, 1.21× the fastest +P-256 ECDH, aws-lc-rs on kixtop: 28.80 µs, 1.09× the fastest +P-256 ECDH, aws-lc-rs on ovh-iad: 90.86 µs, 1.12× the fastest +P-256 ECDH, aws-lc-rs on ovh-sea: 83.71 µs, 1.06× the fastest +P-256 ECDH, ring on nixos: 46.05 µs, 1.08× the fastest +P-256 ECDH, ring on desktop: 33.64 µs, 1.14× the fastest +P-256 ECDH, ring on nixos2: 47.10 µs, 1.10× the fastest +P-256 ECDH, ring on kixtop: 32.16 µs, 1.22× the fastest +P-256 ECDH, ring on ovh-iad: 86.47 µs, 1.07× the fastest +P-256 ECDH, ring on ovh-sea: 83.41 µs, 1.06× the fastest +P-256 ECDH, RustCrypto + dalek on nixos: 268.62 µs, 6.31× the fastest +P-256 ECDH, RustCrypto + dalek on desktop: 121.30 µs, 4.11× the fastest +P-256 ECDH, RustCrypto + dalek on nixos2: 233.70 µs, 5.46× the fastest +P-256 ECDH, RustCrypto + dalek on kixtop: 178.43 µs, 6.75× the fastest +P-256 ECDH, RustCrypto + dalek on ovh-iad: 379.56 µs, 4.69× the fastest +P-256 ECDH, RustCrypto + dalek on ovh-sea: 363.81 µs, 4.62× the fastest +P-256 ECDH, graviola on nixos: 47.87 µs, 1.12× the fastest +P-256 ECDH, graviola on desktop: 33.67 µs, 1.14× the fastest +P-256 ECDH, graviola on nixos2: 46.44 µs, 1.08× the fastest +P-256 ECDH, graviola on kixtop: 31.15 µs, 1.18× the fastest +P-256 ECDH, libcrux on nixos: 268.70 µs, 6.31× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step +✓ +P-256 ECDH, libcrux on desktop: 171.68 µs, 5.81× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step +✓ +P-256 ECDH, libcrux on nixos2: 280.52 µs, 6.55× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step +✓ +P-256 ECDH, libcrux on kixtop: 182.72 µs, 6.91× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step +✓ +P-256 ECDH, libcrux on ovh-iad: 448.99 µs, 5.55× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step +✓ +P-256 ECDH, libcrux on ovh-sea: 431.73 µs, 5.48× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step +✓ +P-256 ECDH, OpenSSL on nixos: 71.25 µs, 1.67× the fastest +P-256 ECDH, OpenSSL on desktop: 52.92 µs, 1.79× the fastest +P-256 ECDH, OpenSSL on nixos2: 81.68 µs, 1.91× the fastest +P-256 ECDH, OpenSSL on kixtop: 50.38 µs, 1.91× the fastest +P-256 ECDH, OpenSSL on ovh-iad: 144.90 µs, 1.79× the fastest +P-256 ECDH, OpenSSL on ovh-sea: 135.76 µs, 1.72× the fastest Signatures - + Ed25519 sign Ed25519 sign, rind on nixos: 5.72 µs, 1.00× the fastest -Ed25519 sign, rind on desktop: 4.15 µs, 1.00× the fastest +Ed25519 sign, rind on desktop: 4.11 µs, 1.00× the fastest Ed25519 sign, rind on nixos2: 7.13 µs, 1.00× the fastest -Ed25519 sign, rind on kixtop: 3.95 µs, 1.00× the fastest +Ed25519 sign, rind on kixtop: 3.93 µs, 1.00× the fastest Ed25519 sign, rind on ovh-iad: 14.51 µs, 1.13× the fastest Ed25519 sign, rind on ovh-sea: 11.68 µs, 1.00× the fastest -Ed25519 sign, aws-lc-rs on nixos: 6.13 µs, 1.07× the fastest -Ed25519 sign, aws-lc-rs on desktop: 4.56 µs, 1.10× the fastest -Ed25519 sign, aws-lc-rs on nixos2: 7.81 µs, 1.10× the fastest -Ed25519 sign, aws-lc-rs on kixtop: 4.06 µs, 1.03× the fastest -Ed25519 sign, aws-lc-rs on ovh-iad: 12.85 µs, 1.00× the fastest -Ed25519 sign, aws-lc-rs on ovh-sea: 12.65 µs, 1.08× the fastest -Ed25519 sign, ring on nixos: 17.23 µs, 3.01× the fastest -Ed25519 sign, ring on desktop: 13.14 µs, 3.16× the fastest -Ed25519 sign, ring on nixos2: 22.26 µs, 3.12× the fastest -Ed25519 sign, ring on kixtop: 7.07 µs, 1.79× the fastest -Ed25519 sign, ring on ovh-iad: 29.90 µs, 2.33× the fastest -Ed25519 sign, ring on ovh-sea: 28.95 µs, 2.48× the fastest -Ed25519 sign, RustCrypto + dalek on nixos: 13.30 µs, 2.33× the fastest -Ed25519 sign, RustCrypto + dalek on desktop: 9.61 µs, 2.31× the fastest -Ed25519 sign, RustCrypto + dalek on nixos2: 17.40 µs, 2.44× the fastest -Ed25519 sign, RustCrypto + dalek on kixtop: 8.66 µs, 2.19× the fastest -Ed25519 sign, RustCrypto + dalek on ovh-iad: 25.23 µs, 1.96× the fastest -Ed25519 sign, RustCrypto + dalek on ovh-sea: 23.74 µs, 2.03× the fastest -Ed25519 sign, graviola on nixos: 5.83 µs, 1.02× the fastest -Ed25519 sign, graviola on desktop: 4.39 µs, 1.06× the fastest -Ed25519 sign, graviola on nixos2: 7.22 µs, 1.01× the fastest -Ed25519 sign, graviola on kixtop: 4.17 µs, 1.06× the fastest -Ed25519 sign, libcrux on nixos: 41.37 µs, 7.24× the fastest; verified: HACL*'s F* proof of Hacl.Ed25519's sign and verify, compiled to Rust by an unverified step -✓ -Ed25519 sign, libcrux on desktop: 28.97 µs, 6.97× the fastest; verified: HACL*'s F* proof of Hacl.Ed25519's sign and verify, compiled to Rust by an unverified step -✓ -Ed25519 sign, libcrux on nixos2: 53.66 µs, 7.52× the fastest; verified: HACL*'s F* proof of Hacl.Ed25519's sign and verify, compiled to Rust by an unverified step -✓ -Ed25519 sign, libcrux on kixtop: 22.12 µs, 5.60× the fastest; verified: HACL*'s F* proof of Hacl.Ed25519's sign and verify, compiled to Rust by an unverified step -✓ -Ed25519 sign, libcrux on ovh-iad: 92.43 µs, 7.19× the fastest; verified: HACL*'s F* proof of Hacl.Ed25519's sign and verify, compiled to Rust by an unverified step -✓ -Ed25519 sign, libcrux on ovh-sea: 73.35 µs, 6.28× the fastest; verified: HACL*'s F* proof of Hacl.Ed25519's sign and verify, compiled to Rust by an unverified step -✓ -Ed25519 sign, OpenSSL on nixos: 23.38 µs, 4.09× the fastest -Ed25519 sign, OpenSSL on desktop: 13.69 µs, 3.30× the fastest -Ed25519 sign, OpenSSL on nixos2: 31.01 µs, 4.35× the fastest -Ed25519 sign, OpenSSL on kixtop: 16.42 µs, 4.16× the fastest -Ed25519 sign, OpenSSL on ovh-iad: 49.77 µs, 3.87× the fastest -Ed25519 sign, OpenSSL on ovh-sea: 41.96 µs, 3.59× the fastest +Ed25519 sign, aws-lc-rs on nixos: 6.13 µs, 1.07× the fastest +Ed25519 sign, aws-lc-rs on desktop: 4.49 µs, 1.09× the fastest +Ed25519 sign, aws-lc-rs on nixos2: 7.81 µs, 1.10× the fastest +Ed25519 sign, aws-lc-rs on kixtop: 4.07 µs, 1.04× the fastest +Ed25519 sign, aws-lc-rs on ovh-iad: 12.85 µs, 1.00× the fastest +Ed25519 sign, aws-lc-rs on ovh-sea: 12.65 µs, 1.08× the fastest +Ed25519 sign, ring on nixos: 17.23 µs, 3.01× the fastest +Ed25519 sign, ring on desktop: 13.11 µs, 3.19× the fastest +Ed25519 sign, ring on nixos2: 22.26 µs, 3.12× the fastest +Ed25519 sign, ring on kixtop: 7.03 µs, 1.79× the fastest +Ed25519 sign, ring on ovh-iad: 29.90 µs, 2.33× the fastest +Ed25519 sign, ring on ovh-sea: 28.95 µs, 2.48× the fastest +Ed25519 sign, RustCrypto + dalek on nixos: 13.30 µs, 2.33× the fastest +Ed25519 sign, RustCrypto + dalek on desktop: 9.60 µs, 2.34× the fastest +Ed25519 sign, RustCrypto + dalek on nixos2: 17.40 µs, 2.44× the fastest +Ed25519 sign, RustCrypto + dalek on kixtop: 8.65 µs, 2.20× the fastest +Ed25519 sign, RustCrypto + dalek on ovh-iad: 25.23 µs, 1.96× the fastest +Ed25519 sign, RustCrypto + dalek on ovh-sea: 23.74 µs, 2.03× the fastest +Ed25519 sign, graviola on nixos: 5.83 µs, 1.02× the fastest +Ed25519 sign, graviola on desktop: 4.40 µs, 1.07× the fastest +Ed25519 sign, graviola on nixos2: 7.22 µs, 1.01× the fastest +Ed25519 sign, graviola on kixtop: 4.21 µs, 1.07× the fastest +Ed25519 sign, libcrux on nixos: 41.37 µs, 7.24× the fastest; verified: HACL*'s F* proof of Hacl.Ed25519's sign and verify, compiled to Rust by an unverified step +✓ +Ed25519 sign, libcrux on desktop: 28.54 µs, 6.94× the fastest; verified: HACL*'s F* proof of Hacl.Ed25519's sign and verify, compiled to Rust by an unverified step +✓ +Ed25519 sign, libcrux on nixos2: 53.66 µs, 7.52× the fastest; verified: HACL*'s F* proof of Hacl.Ed25519's sign and verify, compiled to Rust by an unverified step +✓ +Ed25519 sign, libcrux on kixtop: 22.00 µs, 5.60× the fastest; verified: HACL*'s F* proof of Hacl.Ed25519's sign and verify, compiled to Rust by an unverified step +✓ +Ed25519 sign, libcrux on ovh-iad: 92.43 µs, 7.19× the fastest; verified: HACL*'s F* proof of Hacl.Ed25519's sign and verify, compiled to Rust by an unverified step +✓ +Ed25519 sign, libcrux on ovh-sea: 73.35 µs, 6.28× the fastest; verified: HACL*'s F* proof of Hacl.Ed25519's sign and verify, compiled to Rust by an unverified step +✓ +Ed25519 sign, OpenSSL on nixos: 23.38 µs, 4.09× the fastest +Ed25519 sign, OpenSSL on desktop: 13.67 µs, 3.33× the fastest +Ed25519 sign, OpenSSL on nixos2: 31.01 µs, 4.35× the fastest +Ed25519 sign, OpenSSL on kixtop: 16.56 µs, 4.22× the fastest +Ed25519 sign, OpenSSL on ovh-iad: 49.77 µs, 3.87× the fastest +Ed25519 sign, OpenSSL on ovh-sea: 41.96 µs, 3.59× the fastest Ed25519 verify Ed25519 verify, rind on nixos: 27.15 µs, 1.09× the fastest -Ed25519 verify, rind on desktop: 21.75 µs, 1.01× the fastest +Ed25519 verify, rind on desktop: 21.43 µs, 1.00× the fastest Ed25519 verify, rind on nixos2: 31.81 µs, 1.06× the fastest -Ed25519 verify, rind on kixtop: 18.66 µs, 1.01× the fastest +Ed25519 verify, rind on kixtop: 18.81 µs, 1.02× the fastest Ed25519 verify, rind on ovh-iad: 60.71 µs, 1.30× the fastest Ed25519 verify, rind on ovh-sea: 58.97 µs, 1.29× the fastest -Ed25519 verify, aws-lc-rs on nixos: 27.03 µs, 1.09× the fastest -Ed25519 verify, aws-lc-rs on desktop: 21.56 µs, 1.00× the fastest -Ed25519 verify, aws-lc-rs on nixos2: 31.62 µs, 1.06× the fastest -Ed25519 verify, aws-lc-rs on kixtop: 18.52 µs, 1.01× the fastest -Ed25519 verify, aws-lc-rs on ovh-iad: 60.32 µs, 1.30× the fastest -Ed25519 verify, aws-lc-rs on ovh-sea: 57.63 µs, 1.26× the fastest -Ed25519 verify, ring on nixos: 34.76 µs, 1.40× the fastest -Ed25519 verify, ring on desktop: 26.22 µs, 1.22× the fastest -Ed25519 verify, ring on nixos2: 42.48 µs, 1.42× the fastest -Ed25519 verify, ring on kixtop: 19.94 µs, 1.08× the fastest -Ed25519 verify, ring on ovh-iad: 61.26 µs, 1.32× the fastest -Ed25519 verify, ring on ovh-sea: 59.24 µs, 1.29× the fastest -Ed25519 verify, RustCrypto + dalek on nixos: 24.83 µs, 1.00× the fastest -Ed25519 verify, RustCrypto + dalek on desktop: 21.88 µs, 1.02× the fastest -Ed25519 verify, RustCrypto + dalek on nixos2: 29.88 µs, 1.00× the fastest -Ed25519 verify, RustCrypto + dalek on kixtop: 18.42 µs, 1.00× the fastest -Ed25519 verify, RustCrypto + dalek on ovh-iad: 46.55 µs, 1.00× the fastest -Ed25519 verify, RustCrypto + dalek on ovh-sea: 45.80 µs, 1.00× the fastest -Ed25519 verify, graviola on nixos: 27.08 µs, 1.09× the fastest -Ed25519 verify, graviola on desktop: 21.61 µs, 1.00× the fastest -Ed25519 verify, graviola on nixos2: 32.22 µs, 1.08× the fastest -Ed25519 verify, graviola on kixtop: 18.69 µs, 1.01× the fastest -Ed25519 verify, libcrux on nixos: 54.52 µs, 2.20× the fastest; verified: HACL*'s F* proof of Hacl.Ed25519's sign and verify, compiled to Rust by an unverified step -✓ -Ed25519 verify, libcrux on desktop: 42.16 µs, 1.96× the fastest; verified: HACL*'s F* proof of Hacl.Ed25519's sign and verify, compiled to Rust by an unverified step -✓ -Ed25519 verify, libcrux on nixos2: 69.12 µs, 2.31× the fastest; verified: HACL*'s F* proof of Hacl.Ed25519's sign and verify, compiled to Rust by an unverified step -✓ -Ed25519 verify, libcrux on kixtop: 29.57 µs, 1.61× the fastest; verified: HACL*'s F* proof of Hacl.Ed25519's sign and verify, compiled to Rust by an unverified step -✓ -Ed25519 verify, libcrux on ovh-iad: 98.92 µs, 2.13× the fastest; verified: HACL*'s F* proof of Hacl.Ed25519's sign and verify, compiled to Rust by an unverified step -✓ -Ed25519 verify, libcrux on ovh-sea: 93.99 µs, 2.05× the fastest; verified: HACL*'s F* proof of Hacl.Ed25519's sign and verify, compiled to Rust by an unverified step -✓ -Ed25519 verify, OpenSSL on nixos: 79.25 µs, 3.19× the fastest -Ed25519 verify, OpenSSL on desktop: 45.59 µs, 2.11× the fastest -Ed25519 verify, OpenSSL on nixos2: 93.09 µs, 3.12× the fastest -Ed25519 verify, OpenSSL on kixtop: 41.08 µs, 2.23× the fastest -Ed25519 verify, OpenSSL on ovh-iad: 140.95 µs, 3.03× the fastest -Ed25519 verify, OpenSSL on ovh-sea: 136.50 µs, 2.98× the fastest +Ed25519 verify, aws-lc-rs on nixos: 27.03 µs, 1.09× the fastest +Ed25519 verify, aws-lc-rs on desktop: 21.41 µs, 1.00× the fastest +Ed25519 verify, aws-lc-rs on nixos2: 31.62 µs, 1.06× the fastest +Ed25519 verify, aws-lc-rs on kixtop: 18.48 µs, 1.00× the fastest +Ed25519 verify, aws-lc-rs on ovh-iad: 60.32 µs, 1.30× the fastest +Ed25519 verify, aws-lc-rs on ovh-sea: 57.63 µs, 1.26× the fastest +Ed25519 verify, ring on nixos: 34.76 µs, 1.40× the fastest +Ed25519 verify, ring on desktop: 25.93 µs, 1.21× the fastest +Ed25519 verify, ring on nixos2: 42.48 µs, 1.42× the fastest +Ed25519 verify, ring on kixtop: 20.22 µs, 1.09× the fastest +Ed25519 verify, ring on ovh-iad: 61.26 µs, 1.32× the fastest +Ed25519 verify, ring on ovh-sea: 59.24 µs, 1.29× the fastest +Ed25519 verify, RustCrypto + dalek on nixos: 24.83 µs, 1.00× the fastest +Ed25519 verify, RustCrypto + dalek on desktop: 21.87 µs, 1.02× the fastest +Ed25519 verify, RustCrypto + dalek on nixos2: 29.88 µs, 1.00× the fastest +Ed25519 verify, RustCrypto + dalek on kixtop: 18.60 µs, 1.01× the fastest +Ed25519 verify, RustCrypto + dalek on ovh-iad: 46.55 µs, 1.00× the fastest +Ed25519 verify, RustCrypto + dalek on ovh-sea: 45.80 µs, 1.00× the fastest +Ed25519 verify, graviola on nixos: 27.08 µs, 1.09× the fastest +Ed25519 verify, graviola on desktop: 21.45 µs, 1.00× the fastest +Ed25519 verify, graviola on nixos2: 32.22 µs, 1.08× the fastest +Ed25519 verify, graviola on kixtop: 18.94 µs, 1.03× the fastest +Ed25519 verify, libcrux on nixos: 54.52 µs, 2.20× the fastest; verified: HACL*'s F* proof of Hacl.Ed25519's sign and verify, compiled to Rust by an unverified step +✓ +Ed25519 verify, libcrux on desktop: 41.83 µs, 1.95× the fastest; verified: HACL*'s F* proof of Hacl.Ed25519's sign and verify, compiled to Rust by an unverified step +✓ +Ed25519 verify, libcrux on nixos2: 69.12 µs, 2.31× the fastest; verified: HACL*'s F* proof of Hacl.Ed25519's sign and verify, compiled to Rust by an unverified step +✓ +Ed25519 verify, libcrux on kixtop: 29.44 µs, 1.59× the fastest; verified: HACL*'s F* proof of Hacl.Ed25519's sign and verify, compiled to Rust by an unverified step +✓ +Ed25519 verify, libcrux on ovh-iad: 98.92 µs, 2.13× the fastest; verified: HACL*'s F* proof of Hacl.Ed25519's sign and verify, compiled to Rust by an unverified step +✓ +Ed25519 verify, libcrux on ovh-sea: 93.99 µs, 2.05× the fastest; verified: HACL*'s F* proof of Hacl.Ed25519's sign and verify, compiled to Rust by an unverified step +✓ +Ed25519 verify, OpenSSL on nixos: 79.25 µs, 3.19× the fastest +Ed25519 verify, OpenSSL on desktop: 44.79 µs, 2.09× the fastest +Ed25519 verify, OpenSSL on nixos2: 93.09 µs, 3.12× the fastest +Ed25519 verify, OpenSSL on kixtop: 41.29 µs, 2.23× the fastest +Ed25519 verify, OpenSSL on ovh-iad: 140.95 µs, 3.03× the fastest +Ed25519 verify, OpenSSL on ovh-sea: 136.50 µs, 2.98× the fastest P-256 ECDSA sign P-256 ECDSA sign, rind on nixos: 9.62 µs, 1.00× the fastest -P-256 ECDSA sign, rind on desktop: 6.84 µs, 1.00× the fastest +P-256 ECDSA sign, rind on desktop: 6.74 µs, 1.00× the fastest P-256 ECDSA sign, rind on nixos2: 13.11 µs, 1.00× the fastest -P-256 ECDSA sign, rind on kixtop: 7.11 µs, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch and of the nonces' draws through a dyn RandomSource, which Aeneas cannot translate, of its signature API's P-256 ECDSA with SHA-256 and fixed-length signatures, key generation and loading, signing, and verification, down to s2n-bignum's routines, composed with s2n-bignum's HOL Light proofs of p256_scalarmulbase_alt, p256_montjadd_alt, p256_montjdouble_alt, p256_montjmixadd_alt, bignum_inv_p256, bignum_neg_p256, bignum_tomont_p256, bignum_demont_p256, bignum_add_p256, bignum_montmul_p256, bignum_montsqr_p256, bignum_mod_n256_4, bignum_modadd, bignum_montmul, bignum_demont, bignum_modinv, and bignum_eq, of s2n-bignum's own object code, which rind transliterates, with the group laws its twin multiplication relies on proven from Mathlib's and the generator's order n proven, assuming HOL Light's P256_GROUP_ELEMENT_ORDER, that a point has order n, only for verification with a parsed public key, and proving a signature right when signing returns, as its nonce loop has no bound +P-256 ECDSA sign, rind on kixtop: 7.13 µs, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch and of the nonces' draws through a dyn RandomSource, which Aeneas cannot translate, of its signature API's P-256 ECDSA with SHA-256 and fixed-length signatures, key generation and loading, signing, and verification, down to s2n-bignum's routines, composed with s2n-bignum's HOL Light proofs of p256_scalarmulbase_alt, p256_montjadd_alt, p256_montjdouble_alt, p256_montjmixadd_alt, bignum_inv_p256, bignum_neg_p256, bignum_tomont_p256, bignum_demont_p256, bignum_add_p256, bignum_montmul_p256, bignum_montsqr_p256, bignum_mod_n256_4, bignum_modadd, bignum_montmul, bignum_demont, bignum_modinv, and bignum_eq, of s2n-bignum's own object code, which rind transliterates, with the group laws its twin multiplication relies on proven from Mathlib's and the generator's order n proven, assuming HOL Light's P256_GROUP_ELEMENT_ORDER, that a point has order n, only for verification with a parsed public key, and proving a signature right when signing returns, as its nonce loop has no bound ✓ P-256 ECDSA sign, rind on ovh-iad: 22.42 µs, 1.00× the fastest P-256 ECDSA sign, rind on ovh-sea: 21.44 µs, 1.00× the fastest -P-256 ECDSA sign, aws-lc-rs on nixos: 12.66 µs, 1.32× the fastest -P-256 ECDSA sign, aws-lc-rs on desktop: 12.33 µs, 1.80× the fastest -P-256 ECDSA sign, aws-lc-rs on nixos2: 19.80 µs, 1.51× the fastest -P-256 ECDSA sign, aws-lc-rs on kixtop: 11.27 µs, 1.58× the fastest -P-256 ECDSA sign, aws-lc-rs on ovh-iad: 24.53 µs, 1.09× the fastest -P-256 ECDSA sign, aws-lc-rs on ovh-sea: 23.93 µs, 1.12× the fastest -P-256 ECDSA sign, ring on nixos: 13.68 µs, 1.42× the fastest -P-256 ECDSA sign, ring on desktop: 12.24 µs, 1.79× the fastest -P-256 ECDSA sign, ring on nixos2: 14.86 µs, 1.13× the fastest -P-256 ECDSA sign, ring on kixtop: 11.01 µs, 1.55× the fastest -P-256 ECDSA sign, ring on ovh-iad: 26.21 µs, 1.17× the fastest -P-256 ECDSA sign, ring on ovh-sea: 24.84 µs, 1.16× the fastest -P-256 ECDSA sign, RustCrypto + dalek on nixos: 70.62 µs, 7.34× the fastest -P-256 ECDSA sign, RustCrypto + dalek on desktop: 31.65 µs, 4.63× the fastest -P-256 ECDSA sign, RustCrypto + dalek on nixos2: 69.11 µs, 5.27× the fastest -P-256 ECDSA sign, RustCrypto + dalek on kixtop: 44.33 µs, 6.23× the fastest -P-256 ECDSA sign, RustCrypto + dalek on ovh-iad: 107.76 µs, 4.81× the fastest -P-256 ECDSA sign, RustCrypto + dalek on ovh-sea: 107.39 µs, 5.01× the fastest -P-256 ECDSA sign, graviola on nixos: 11.49 µs, 1.19× the fastest -P-256 ECDSA sign, graviola on desktop: 9.26 µs, 1.35× the fastest -P-256 ECDSA sign, graviola on nixos2: 19.89 µs, 1.52× the fastest -P-256 ECDSA sign, graviola on kixtop: 8.83 µs, 1.24× the fastest -P-256 ECDSA sign, libcrux on nixos: 95.47 µs, 9.92× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step -✓ -P-256 ECDSA sign, libcrux on desktop: 61.34 µs, 8.97× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step -✓ -P-256 ECDSA sign, libcrux on nixos2: 102.03 µs, 7.78× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step -✓ -P-256 ECDSA sign, libcrux on kixtop: 67.38 µs, 9.47× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step -✓ -P-256 ECDSA sign, libcrux on ovh-iad: 163.02 µs, 7.27× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step -✓ -P-256 ECDSA sign, libcrux on ovh-sea: 156.95 µs, 7.32× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step -✓ -P-256 ECDSA sign, OpenSSL on nixos: 18.04 µs, 1.88× the fastest -P-256 ECDSA sign, OpenSSL on desktop: 14.33 µs, 2.09× the fastest -P-256 ECDSA sign, OpenSSL on nixos2: 20.35 µs, 1.55× the fastest -P-256 ECDSA sign, OpenSSL on kixtop: 12.62 µs, 1.77× the fastest -P-256 ECDSA sign, OpenSSL on ovh-iad: 32.70 µs, 1.46× the fastest -P-256 ECDSA sign, OpenSSL on ovh-sea: 31.82 µs, 1.48× the fastest +P-256 ECDSA sign, aws-lc-rs on nixos: 12.66 µs, 1.32× the fastest +P-256 ECDSA sign, aws-lc-rs on desktop: 12.25 µs, 1.82× the fastest +P-256 ECDSA sign, aws-lc-rs on nixos2: 19.80 µs, 1.51× the fastest +P-256 ECDSA sign, aws-lc-rs on kixtop: 11.16 µs, 1.56× the fastest +P-256 ECDSA sign, aws-lc-rs on ovh-iad: 24.53 µs, 1.09× the fastest +P-256 ECDSA sign, aws-lc-rs on ovh-sea: 23.93 µs, 1.12× the fastest +P-256 ECDSA sign, ring on nixos: 13.68 µs, 1.42× the fastest +P-256 ECDSA sign, ring on desktop: 12.20 µs, 1.81× the fastest +P-256 ECDSA sign, ring on nixos2: 14.86 µs, 1.13× the fastest +P-256 ECDSA sign, ring on kixtop: 10.91 µs, 1.53× the fastest +P-256 ECDSA sign, ring on ovh-iad: 26.21 µs, 1.17× the fastest +P-256 ECDSA sign, ring on ovh-sea: 24.84 µs, 1.16× the fastest +P-256 ECDSA sign, RustCrypto + dalek on nixos: 70.62 µs, 7.34× the fastest +P-256 ECDSA sign, RustCrypto + dalek on desktop: 31.32 µs, 4.65× the fastest +P-256 ECDSA sign, RustCrypto + dalek on nixos2: 69.11 µs, 5.27× the fastest +P-256 ECDSA sign, RustCrypto + dalek on kixtop: 43.98 µs, 6.17× the fastest +P-256 ECDSA sign, RustCrypto + dalek on ovh-iad: 107.76 µs, 4.81× the fastest +P-256 ECDSA sign, RustCrypto + dalek on ovh-sea: 107.39 µs, 5.01× the fastest +P-256 ECDSA sign, graviola on nixos: 11.49 µs, 1.19× the fastest +P-256 ECDSA sign, graviola on desktop: 8.97 µs, 1.33× the fastest +P-256 ECDSA sign, graviola on nixos2: 19.89 µs, 1.52× the fastest +P-256 ECDSA sign, graviola on kixtop: 8.58 µs, 1.20× the fastest +P-256 ECDSA sign, libcrux on nixos: 95.47 µs, 9.92× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step +✓ +P-256 ECDSA sign, libcrux on desktop: 61.81 µs, 9.17× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step +✓ +P-256 ECDSA sign, libcrux on nixos2: 102.03 µs, 7.78× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step +✓ +P-256 ECDSA sign, libcrux on kixtop: 66.95 µs, 9.38× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step +✓ +P-256 ECDSA sign, libcrux on ovh-iad: 163.02 µs, 7.27× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step +✓ +P-256 ECDSA sign, libcrux on ovh-sea: 156.95 µs, 7.32× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step +✓ +P-256 ECDSA sign, OpenSSL on nixos: 18.04 µs, 1.88× the fastest +P-256 ECDSA sign, OpenSSL on desktop: 14.45 µs, 2.14× the fastest +P-256 ECDSA sign, OpenSSL on nixos2: 20.35 µs, 1.55× the fastest +P-256 ECDSA sign, OpenSSL on kixtop: 12.43 µs, 1.74× the fastest +P-256 ECDSA sign, OpenSSL on ovh-iad: 32.70 µs, 1.46× the fastest +P-256 ECDSA sign, OpenSSL on ovh-sea: 31.82 µs, 1.48× the fastest P-256 ECDSA verify P-256 ECDSA verify, rind on nixos: 39.25 µs, 1.00× the fastest -P-256 ECDSA verify, rind on desktop: 30.95 µs, 1.03× the fastest +P-256 ECDSA verify, rind on desktop: 30.59 µs, 1.03× the fastest P-256 ECDSA verify, rind on nixos2: 41.56 µs, 1.00× the fastest -P-256 ECDSA verify, rind on kixtop: 27.15 µs, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch and of the nonces' draws through a dyn RandomSource, which Aeneas cannot translate, of its signature API's P-256 ECDSA with SHA-256 and fixed-length signatures, key generation and loading, signing, and verification, down to s2n-bignum's routines, composed with s2n-bignum's HOL Light proofs of p256_scalarmulbase_alt, p256_montjadd_alt, p256_montjdouble_alt, p256_montjmixadd_alt, bignum_inv_p256, bignum_neg_p256, bignum_tomont_p256, bignum_demont_p256, bignum_add_p256, bignum_montmul_p256, bignum_montsqr_p256, bignum_mod_n256_4, bignum_modadd, bignum_montmul, bignum_demont, bignum_modinv, and bignum_eq, of s2n-bignum's own object code, which rind transliterates, with the group laws its twin multiplication relies on proven from Mathlib's and the generator's order n proven, assuming HOL Light's P256_GROUP_ELEMENT_ORDER, that a point has order n, only for verification with a parsed public key, and proving a signature right when signing returns, as its nonce loop has no bound +P-256 ECDSA verify, rind on kixtop: 26.25 µs, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch and of the nonces' draws through a dyn RandomSource, which Aeneas cannot translate, of its signature API's P-256 ECDSA with SHA-256 and fixed-length signatures, key generation and loading, signing, and verification, down to s2n-bignum's routines, composed with s2n-bignum's HOL Light proofs of p256_scalarmulbase_alt, p256_montjadd_alt, p256_montjdouble_alt, p256_montjmixadd_alt, bignum_inv_p256, bignum_neg_p256, bignum_tomont_p256, bignum_demont_p256, bignum_add_p256, bignum_montmul_p256, bignum_montsqr_p256, bignum_mod_n256_4, bignum_modadd, bignum_montmul, bignum_demont, bignum_modinv, and bignum_eq, of s2n-bignum's own object code, which rind transliterates, with the group laws its twin multiplication relies on proven from Mathlib's and the generator's order n proven, assuming HOL Light's P256_GROUP_ELEMENT_ORDER, that a point has order n, only for verification with a parsed public key, and proving a signature right when signing returns, as its nonce loop has no bound ✓ P-256 ECDSA verify, rind on ovh-iad: 81.50 µs, 1.05× the fastest P-256 ECDSA verify, rind on ovh-sea: 77.75 µs, 1.04× the fastest -P-256 ECDSA verify, aws-lc-rs on nixos: 40.24 µs, 1.03× the fastest -P-256 ECDSA verify, aws-lc-rs on desktop: 30.08 µs, 1.00× the fastest -P-256 ECDSA verify, aws-lc-rs on nixos2: 43.27 µs, 1.04× the fastest -P-256 ECDSA verify, aws-lc-rs on kixtop: 27.15 µs, 1.00× the fastest -P-256 ECDSA verify, aws-lc-rs on ovh-iad: 77.59 µs, 1.00× the fastest -P-256 ECDSA verify, aws-lc-rs on ovh-sea: 74.54 µs, 1.00× the fastest -P-256 ECDSA verify, ring on nixos: 41.25 µs, 1.05× the fastest -P-256 ECDSA verify, ring on desktop: 33.74 µs, 1.12× the fastest -P-256 ECDSA verify, ring on nixos2: 43.93 µs, 1.06× the fastest -P-256 ECDSA verify, ring on kixtop: 29.35 µs, 1.08× the fastest -P-256 ECDSA verify, ring on ovh-iad: 79.97 µs, 1.03× the fastest -P-256 ECDSA verify, ring on ovh-sea: 78.73 µs, 1.06× the fastest -P-256 ECDSA verify, RustCrypto + dalek on nixos: 226.27 µs, 5.77× the fastest -P-256 ECDSA verify, RustCrypto + dalek on desktop: 104.58 µs, 3.48× the fastest -P-256 ECDSA verify, RustCrypto + dalek on nixos2: 197.15 µs, 4.74× the fastest -P-256 ECDSA verify, RustCrypto + dalek on kixtop: 157.87 µs, 5.82× the fastest -P-256 ECDSA verify, RustCrypto + dalek on ovh-iad: 324.89 µs, 4.19× the fastest -P-256 ECDSA verify, RustCrypto + dalek on ovh-sea: 305.79 µs, 4.10× the fastest -P-256 ECDSA verify, graviola on nixos: 41.92 µs, 1.07× the fastest -P-256 ECDSA verify, graviola on desktop: 32.89 µs, 1.09× the fastest -P-256 ECDSA verify, graviola on nixos2: 44.30 µs, 1.07× the fastest -P-256 ECDSA verify, graviola on kixtop: 28.60 µs, 1.05× the fastest -P-256 ECDSA verify, libcrux on nixos: 215.83 µs, 5.50× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step -✓ -P-256 ECDSA verify, libcrux on desktop: 147.11 µs, 4.89× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step -✓ -P-256 ECDSA verify, libcrux on nixos2: 236.87 µs, 5.70× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step -✓ -P-256 ECDSA verify, libcrux on kixtop: 156.54 µs, 5.77× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step -✓ -P-256 ECDSA verify, libcrux on ovh-iad: 389.47 µs, 5.02× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step -✓ -P-256 ECDSA verify, libcrux on ovh-sea: 363.17 µs, 4.87× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step -✓ -P-256 ECDSA verify, OpenSSL on nixos: 60.27 µs, 1.54× the fastest -P-256 ECDSA verify, OpenSSL on desktop: 46.41 µs, 1.54× the fastest -P-256 ECDSA verify, OpenSSL on nixos2: 68.34 µs, 1.64× the fastest -P-256 ECDSA verify, OpenSSL on kixtop: 41.90 µs, 1.54× the fastest -P-256 ECDSA verify, OpenSSL on ovh-iad: 115.24 µs, 1.49× the fastest -P-256 ECDSA verify, OpenSSL on ovh-sea: 111.98 µs, 1.50× the fastest +P-256 ECDSA verify, aws-lc-rs on nixos: 40.24 µs, 1.03× the fastest +P-256 ECDSA verify, aws-lc-rs on desktop: 29.75 µs, 1.00× the fastest +P-256 ECDSA verify, aws-lc-rs on nixos2: 43.27 µs, 1.04× the fastest +P-256 ECDSA verify, aws-lc-rs on kixtop: 27.38 µs, 1.04× the fastest +P-256 ECDSA verify, aws-lc-rs on ovh-iad: 77.59 µs, 1.00× the fastest +P-256 ECDSA verify, aws-lc-rs on ovh-sea: 74.54 µs, 1.00× the fastest +P-256 ECDSA verify, ring on nixos: 41.25 µs, 1.05× the fastest +P-256 ECDSA verify, ring on desktop: 33.23 µs, 1.12× the fastest +P-256 ECDSA verify, ring on nixos2: 43.93 µs, 1.06× the fastest +P-256 ECDSA verify, ring on kixtop: 29.22 µs, 1.11× the fastest +P-256 ECDSA verify, ring on ovh-iad: 79.97 µs, 1.03× the fastest +P-256 ECDSA verify, ring on ovh-sea: 78.73 µs, 1.06× the fastest +P-256 ECDSA verify, RustCrypto + dalek on nixos: 226.27 µs, 5.77× the fastest +P-256 ECDSA verify, RustCrypto + dalek on desktop: 103.24 µs, 3.47× the fastest +P-256 ECDSA verify, RustCrypto + dalek on nixos2: 197.15 µs, 4.74× the fastest +P-256 ECDSA verify, RustCrypto + dalek on kixtop: 151.69 µs, 5.78× the fastest +P-256 ECDSA verify, RustCrypto + dalek on ovh-iad: 324.89 µs, 4.19× the fastest +P-256 ECDSA verify, RustCrypto + dalek on ovh-sea: 305.79 µs, 4.10× the fastest +P-256 ECDSA verify, graviola on nixos: 41.92 µs, 1.07× the fastest +P-256 ECDSA verify, graviola on desktop: 32.36 µs, 1.09× the fastest +P-256 ECDSA verify, graviola on nixos2: 44.30 µs, 1.07× the fastest +P-256 ECDSA verify, graviola on kixtop: 28.18 µs, 1.07× the fastest +P-256 ECDSA verify, libcrux on nixos: 215.83 µs, 5.50× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step +✓ +P-256 ECDSA verify, libcrux on desktop: 147.27 µs, 4.95× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step +✓ +P-256 ECDSA verify, libcrux on nixos2: 236.87 µs, 5.70× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step +✓ +P-256 ECDSA verify, libcrux on kixtop: 156.18 µs, 5.95× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step +✓ +P-256 ECDSA verify, libcrux on ovh-iad: 389.47 µs, 5.02× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step +✓ +P-256 ECDSA verify, libcrux on ovh-sea: 363.17 µs, 4.87× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step +✓ +P-256 ECDSA verify, OpenSSL on nixos: 60.27 µs, 1.54× the fastest +P-256 ECDSA verify, OpenSSL on desktop: 46.46 µs, 1.56× the fastest +P-256 ECDSA verify, OpenSSL on nixos2: 68.34 µs, 1.64× the fastest +P-256 ECDSA verify, OpenSSL on kixtop: 41.90 µs, 1.60× the fastest +P-256 ECDSA verify, OpenSSL on ovh-iad: 115.24 µs, 1.49× the fastest +P-256 ECDSA verify, OpenSSL on ovh-sea: 111.98 µs, 1.50× the fastest Hashes and KDFs - + SHA-256, 64 B SHA-256, 64 B, rind on nixos: 69 ns, 1.17× the fastest SHA-256, 64 B, rind on desktop: 28 ns, 1.00× the fastest SHA-256, 64 B, rind on nixos2: 244 ns, 1.00× the fastest -SHA-256, 64 B, rind on kixtop: 93 ns, 2.58× the fastest +SHA-256, 64 B, rind on kixtop: 90 ns, 2.54× the fastest SHA-256, 64 B, rind on ovh-iad: 399 ns, 1.00× the fastest SHA-256, 64 B, rind on ovh-sea: 386 ns, 1.00× the fastest -SHA-256, 64 B, aws-lc-rs on nixos: 96 ns, 1.63× the fastest -SHA-256, 64 B, aws-lc-rs on desktop: 57 ns, 2.02× the fastest -SHA-256, 64 B, aws-lc-rs on nixos2: 307 ns, 1.26× the fastest -SHA-256, 64 B, aws-lc-rs on kixtop: 71 ns, 1.97× the fastest -SHA-256, 64 B, aws-lc-rs on ovh-iad: 491 ns, 1.23× the fastest -SHA-256, 64 B, aws-lc-rs on ovh-sea: 481 ns, 1.24× the fastest -SHA-256, 64 B, ring on nixos: 78 ns, 1.34× the fastest -SHA-256, 64 B, ring on desktop: 58 ns, 2.04× the fastest -SHA-256, 64 B, ring on nixos2: 277 ns, 1.13× the fastest -SHA-256, 64 B, ring on kixtop: 45 ns, 1.25× the fastest -SHA-256, 64 B, ring on ovh-iad: 449 ns, 1.13× the fastest -SHA-256, 64 B, ring on ovh-sea: 432 ns, 1.12× the fastest -SHA-256, 64 B, RustCrypto + dalek on nixos: 59 ns, 1.00× the fastest -SHA-256, 64 B, RustCrypto + dalek on desktop: 40 ns, 1.41× the fastest -SHA-256, 64 B, RustCrypto + dalek on nixos2: 473 ns, 1.94× the fastest -SHA-256, 64 B, RustCrypto + dalek on kixtop: 37 ns, 1.03× the fastest -SHA-256, 64 B, RustCrypto + dalek on ovh-iad: 762 ns, 1.91× the fastest -SHA-256, 64 B, RustCrypto + dalek on ovh-sea: 734 ns, 1.90× the fastest -SHA-256, 64 B, graviola on nixos: 67 ns, 1.15× the fastest -SHA-256, 64 B, graviola on desktop: 41 ns, 1.45× the fastest -SHA-256, 64 B, graviola on nixos2: 576 ns, 2.37× the fastest -SHA-256, 64 B, graviola on kixtop: 36 ns, 1.00× the fastest -SHA-256, 64 B, libcrux on nixos: 385 ns, 6.56× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -✓ -SHA-256, 64 B, libcrux on desktop: 211 ns, 7.50× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -✓ -SHA-256, 64 B, libcrux on nixos2: 485 ns, 1.99× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -✓ -SHA-256, 64 B, libcrux on kixtop: 232 ns, 6.45× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -✓ -SHA-256, 64 B, libcrux on ovh-iad: 764 ns, 1.92× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -✓ -SHA-256, 64 B, libcrux on ovh-sea: 760 ns, 1.97× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -✓ -SHA-256, 64 B, OpenSSL on nixos: 244 ns, 4.15× the fastest -SHA-256, 64 B, OpenSSL on desktop: 161 ns, 5.72× the fastest -SHA-256, 64 B, OpenSSL on nixos2: 505 ns, 2.07× the fastest -SHA-256, 64 B, OpenSSL on kixtop: 162 ns, 4.50× the fastest -SHA-256, 64 B, OpenSSL on ovh-iad: 813 ns, 2.04× the fastest -SHA-256, 64 B, OpenSSL on ovh-sea: 801 ns, 2.07× the fastest +SHA-256, 64 B, rind (DIT held) on kixtop: 37 ns, 1.04× the fastest +SHA-256, 64 B, aws-lc-rs on nixos: 96 ns, 1.63× the fastest +SHA-256, 64 B, aws-lc-rs on desktop: 57 ns, 2.02× the fastest +SHA-256, 64 B, aws-lc-rs on nixos2: 307 ns, 1.26× the fastest +SHA-256, 64 B, aws-lc-rs on kixtop: 70 ns, 1.99× the fastest +SHA-256, 64 B, aws-lc-rs on ovh-iad: 491 ns, 1.23× the fastest +SHA-256, 64 B, aws-lc-rs on ovh-sea: 481 ns, 1.24× the fastest +SHA-256, 64 B, ring on nixos: 78 ns, 1.34× the fastest +SHA-256, 64 B, ring on desktop: 56 ns, 2.00× the fastest +SHA-256, 64 B, ring on nixos2: 277 ns, 1.13× the fastest +SHA-256, 64 B, ring on kixtop: 44 ns, 1.25× the fastest +SHA-256, 64 B, ring on ovh-iad: 449 ns, 1.13× the fastest +SHA-256, 64 B, ring on ovh-sea: 432 ns, 1.12× the fastest +SHA-256, 64 B, RustCrypto + dalek on nixos: 59 ns, 1.00× the fastest +SHA-256, 64 B, RustCrypto + dalek on desktop: 39 ns, 1.39× the fastest +SHA-256, 64 B, RustCrypto + dalek on nixos2: 473 ns, 1.94× the fastest +SHA-256, 64 B, RustCrypto + dalek on kixtop: 36 ns, 1.03× the fastest +SHA-256, 64 B, RustCrypto + dalek on ovh-iad: 762 ns, 1.91× the fastest +SHA-256, 64 B, RustCrypto + dalek on ovh-sea: 734 ns, 1.90× the fastest +SHA-256, 64 B, graviola on nixos: 67 ns, 1.15× the fastest +SHA-256, 64 B, graviola on desktop: 40 ns, 1.42× the fastest +SHA-256, 64 B, graviola on nixos2: 576 ns, 2.37× the fastest +SHA-256, 64 B, graviola on kixtop: 35 ns, 1.00× the fastest +SHA-256, 64 B, libcrux on nixos: 385 ns, 6.56× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +✓ +SHA-256, 64 B, libcrux on desktop: 218 ns, 7.72× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +✓ +SHA-256, 64 B, libcrux on nixos2: 485 ns, 1.99× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +✓ +SHA-256, 64 B, libcrux on kixtop: 225 ns, 6.37× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +✓ +SHA-256, 64 B, libcrux on ovh-iad: 764 ns, 1.92× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +✓ +SHA-256, 64 B, libcrux on ovh-sea: 760 ns, 1.97× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +✓ +SHA-256, 64 B, OpenSSL on nixos: 244 ns, 4.15× the fastest +SHA-256, 64 B, OpenSSL on desktop: 158 ns, 5.62× the fastest +SHA-256, 64 B, OpenSSL on nixos2: 505 ns, 2.07× the fastest +SHA-256, 64 B, OpenSSL on kixtop: 159 ns, 4.51× the fastest +SHA-256, 64 B, OpenSSL on ovh-iad: 813 ns, 2.04× the fastest +SHA-256, 64 B, OpenSSL on ovh-sea: 801 ns, 2.07× the fastest SHA-256, 1350 B SHA-256, 1350 B, rind on nixos: 620 ns, 1.00× the fastest -SHA-256, 1350 B, rind on desktop: 279 ns, 1.00× the fastest +SHA-256, 1350 B, rind on desktop: 269 ns, 1.00× the fastest SHA-256, 1350 B, rind on nixos2: 2.46 µs, 1.00× the fastest -SHA-256, 1350 B, rind on kixtop: 484 ns, 1.17× the fastest +SHA-256, 1350 B, rind on kixtop: 485 ns, 1.18× the fastest SHA-256, 1350 B, rind on ovh-iad: 3.87 µs, 1.00× the fastest SHA-256, 1350 B, rind on ovh-sea: 3.85 µs, 1.00× the fastest -SHA-256, 1350 B, aws-lc-rs on nixos: 740 ns, 1.20× the fastest -SHA-256, 1350 B, aws-lc-rs on desktop: 312 ns, 1.12× the fastest -SHA-256, 1350 B, aws-lc-rs on nixos2: 2.79 µs, 1.14× the fastest -SHA-256, 1350 B, aws-lc-rs on kixtop: 440 ns, 1.06× the fastest -SHA-256, 1350 B, aws-lc-rs on ovh-iad: 4.74 µs, 1.22× the fastest -SHA-256, 1350 B, aws-lc-rs on ovh-sea: 4.75 µs, 1.23× the fastest -SHA-256, 1350 B, ring on nixos: 637 ns, 1.03× the fastest -SHA-256, 1350 B, ring on desktop: 304 ns, 1.09× the fastest -SHA-256, 1350 B, ring on nixos2: 2.82 µs, 1.15× the fastest -SHA-256, 1350 B, ring on kixtop: 414 ns, 1.00× the fastest -SHA-256, 1350 B, ring on ovh-iad: 4.47 µs, 1.15× the fastest -SHA-256, 1350 B, ring on ovh-sea: 4.31 µs, 1.12× the fastest -SHA-256, 1350 B, RustCrypto + dalek on nixos: 618 ns, 1.00× the fastest -SHA-256, 1350 B, RustCrypto + dalek on desktop: 296 ns, 1.06× the fastest -SHA-256, 1350 B, RustCrypto + dalek on nixos2: 5.11 µs, 2.08× the fastest -SHA-256, 1350 B, RustCrypto + dalek on kixtop: 475 ns, 1.15× the fastest -SHA-256, 1350 B, RustCrypto + dalek on ovh-iad: 8.13 µs, 2.10× the fastest -SHA-256, 1350 B, RustCrypto + dalek on ovh-sea: 8.29 µs, 2.15× the fastest -SHA-256, 1350 B, graviola on nixos: 637 ns, 1.03× the fastest -SHA-256, 1350 B, graviola on desktop: 297 ns, 1.06× the fastest -SHA-256, 1350 B, graviola on nixos2: 6.07 µs, 2.47× the fastest -SHA-256, 1350 B, graviola on kixtop: 472 ns, 1.14× the fastest -SHA-256, 1350 B, libcrux on nixos: 3.71 µs, 6.00× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -✓ -SHA-256, 1350 B, libcrux on desktop: 2.31 µs, 8.25× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -✓ -SHA-256, 1350 B, libcrux on nixos2: 5.23 µs, 2.13× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -✓ -SHA-256, 1350 B, libcrux on kixtop: 2.52 µs, 6.08× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -✓ -SHA-256, 1350 B, libcrux on ovh-iad: 8.43 µs, 2.18× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -✓ -SHA-256, 1350 B, libcrux on ovh-sea: 8.24 µs, 2.14× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -✓ -SHA-256, 1350 B, OpenSSL on nixos: 815 ns, 1.32× the fastest -SHA-256, 1350 B, OpenSSL on desktop: 415 ns, 1.48× the fastest -SHA-256, 1350 B, OpenSSL on nixos2: 2.68 µs, 1.09× the fastest -SHA-256, 1350 B, OpenSSL on kixtop: 531 ns, 1.28× the fastest -SHA-256, 1350 B, OpenSSL on ovh-iad: 4.34 µs, 1.12× the fastest -SHA-256, 1350 B, OpenSSL on ovh-sea: 4.22 µs, 1.10× the fastest +SHA-256, 1350 B, rind (DIT held) on kixtop: 409 ns, 1.00× the fastest +SHA-256, 1350 B, aws-lc-rs on nixos: 740 ns, 1.20× the fastest +SHA-256, 1350 B, aws-lc-rs on desktop: 306 ns, 1.14× the fastest +SHA-256, 1350 B, aws-lc-rs on nixos2: 2.79 µs, 1.14× the fastest +SHA-256, 1350 B, aws-lc-rs on kixtop: 434 ns, 1.06× the fastest +SHA-256, 1350 B, aws-lc-rs on ovh-iad: 4.74 µs, 1.22× the fastest +SHA-256, 1350 B, aws-lc-rs on ovh-sea: 4.75 µs, 1.23× the fastest +SHA-256, 1350 B, ring on nixos: 637 ns, 1.03× the fastest +SHA-256, 1350 B, ring on desktop: 304 ns, 1.13× the fastest +SHA-256, 1350 B, ring on nixos2: 2.82 µs, 1.15× the fastest +SHA-256, 1350 B, ring on kixtop: 410 ns, 1.00× the fastest +SHA-256, 1350 B, ring on ovh-iad: 4.47 µs, 1.15× the fastest +SHA-256, 1350 B, ring on ovh-sea: 4.31 µs, 1.12× the fastest +SHA-256, 1350 B, RustCrypto + dalek on nixos: 618 ns, 1.00× the fastest +SHA-256, 1350 B, RustCrypto + dalek on desktop: 296 ns, 1.10× the fastest +SHA-256, 1350 B, RustCrypto + dalek on nixos2: 5.11 µs, 2.08× the fastest +SHA-256, 1350 B, RustCrypto + dalek on kixtop: 473 ns, 1.16× the fastest +SHA-256, 1350 B, RustCrypto + dalek on ovh-iad: 8.13 µs, 2.10× the fastest +SHA-256, 1350 B, RustCrypto + dalek on ovh-sea: 8.29 µs, 2.15× the fastest +SHA-256, 1350 B, graviola on nixos: 637 ns, 1.03× the fastest +SHA-256, 1350 B, graviola on desktop: 292 ns, 1.09× the fastest +SHA-256, 1350 B, graviola on nixos2: 6.07 µs, 2.47× the fastest +SHA-256, 1350 B, graviola on kixtop: 480 ns, 1.17× the fastest +SHA-256, 1350 B, libcrux on nixos: 3.71 µs, 6.00× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +✓ +SHA-256, 1350 B, libcrux on desktop: 2.29 µs, 8.50× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +✓ +SHA-256, 1350 B, libcrux on nixos2: 5.23 µs, 2.13× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +✓ +SHA-256, 1350 B, libcrux on kixtop: 2.46 µs, 6.00× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +✓ +SHA-256, 1350 B, libcrux on ovh-iad: 8.43 µs, 2.18× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +✓ +SHA-256, 1350 B, libcrux on ovh-sea: 8.24 µs, 2.14× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +✓ +SHA-256, 1350 B, OpenSSL on nixos: 815 ns, 1.32× the fastest +SHA-256, 1350 B, OpenSSL on desktop: 406 ns, 1.51× the fastest +SHA-256, 1350 B, OpenSSL on nixos2: 2.68 µs, 1.09× the fastest +SHA-256, 1350 B, OpenSSL on kixtop: 533 ns, 1.30× the fastest +SHA-256, 1350 B, OpenSSL on ovh-iad: 4.34 µs, 1.12× the fastest +SHA-256, 1350 B, OpenSSL on ovh-sea: 4.22 µs, 1.10× the fastest SHA-256, 16 KB SHA-256, 16 KB, rind on nixos: 6.86 µs, 1.00× the fastest -SHA-256, 16 KB, rind on desktop: 3.24 µs, 1.00× the fastest +SHA-256, 16 KB, rind on desktop: 3.19 µs, 1.00× the fastest SHA-256, 16 KB, rind on nixos2: 28.06 µs, 1.00× the fastest -SHA-256, 16 KB, rind on kixtop: 4.94 µs, 1.01× the fastest +SHA-256, 16 KB, rind on kixtop: 4.93 µs, 1.02× the fastest SHA-256, 16 KB, rind on ovh-iad: 45.11 µs, 1.00× the fastest SHA-256, 16 KB, rind on ovh-sea: 43.51 µs, 1.00× the fastest -SHA-256, 16 KB, aws-lc-rs on nixos: 6.88 µs, 1.00× the fastest -SHA-256, 16 KB, aws-lc-rs on desktop: 3.28 µs, 1.01× the fastest -SHA-256, 16 KB, aws-lc-rs on nixos2: 31.46 µs, 1.12× the fastest -SHA-256, 16 KB, aws-lc-rs on kixtop: 4.87 µs, 1.00× the fastest -SHA-256, 16 KB, aws-lc-rs on ovh-iad: 50.68 µs, 1.12× the fastest -SHA-256, 16 KB, aws-lc-rs on ovh-sea: 49.41 µs, 1.14× the fastest -SHA-256, 16 KB, ring on nixos: 6.97 µs, 1.01× the fastest -SHA-256, 16 KB, ring on desktop: 3.28 µs, 1.01× the fastest -SHA-256, 16 KB, ring on nixos2: 32.37 µs, 1.15× the fastest -SHA-256, 16 KB, ring on kixtop: 4.90 µs, 1.01× the fastest -SHA-256, 16 KB, ring on ovh-iad: 50.70 µs, 1.12× the fastest -SHA-256, 16 KB, ring on ovh-sea: 51.35 µs, 1.18× the fastest -SHA-256, 16 KB, RustCrypto + dalek on nixos: 7.22 µs, 1.05× the fastest -SHA-256, 16 KB, RustCrypto + dalek on desktop: 3.26 µs, 1.01× the fastest -SHA-256, 16 KB, RustCrypto + dalek on nixos2: 58.17 µs, 2.07× the fastest -SHA-256, 16 KB, RustCrypto + dalek on kixtop: 5.69 µs, 1.17× the fastest -SHA-256, 16 KB, RustCrypto + dalek on ovh-iad: 93.30 µs, 2.07× the fastest -SHA-256, 16 KB, RustCrypto + dalek on ovh-sea: 92.84 µs, 2.13× the fastest -SHA-256, 16 KB, graviola on nixos: 7.08 µs, 1.03× the fastest -SHA-256, 16 KB, graviola on desktop: 3.27 µs, 1.01× the fastest -SHA-256, 16 KB, graviola on nixos2: 69.84 µs, 2.49× the fastest -SHA-256, 16 KB, graviola on kixtop: 5.76 µs, 1.18× the fastest -SHA-256, 16 KB, libcrux on nixos: 43.12 µs, 6.28× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -✓ -SHA-256, 16 KB, libcrux on desktop: 26.81 µs, 8.27× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -✓ -SHA-256, 16 KB, libcrux on nixos2: 61.68 µs, 2.20× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -✓ -SHA-256, 16 KB, libcrux on kixtop: 29.13 µs, 5.98× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -✓ -SHA-256, 16 KB, libcrux on ovh-iad: 96.58 µs, 2.14× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -✓ -SHA-256, 16 KB, libcrux on ovh-sea: 97.66 µs, 2.24× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -✓ -SHA-256, 16 KB, OpenSSL on nixos: 7.37 µs, 1.07× the fastest -SHA-256, 16 KB, OpenSSL on desktop: 3.39 µs, 1.05× the fastest -SHA-256, 16 KB, OpenSSL on nixos2: 28.83 µs, 1.03× the fastest -SHA-256, 16 KB, OpenSSL on kixtop: 5.17 µs, 1.06× the fastest -SHA-256, 16 KB, OpenSSL on ovh-iad: 45.56 µs, 1.01× the fastest -SHA-256, 16 KB, OpenSSL on ovh-sea: 43.72 µs, 1.00× the fastest +SHA-256, 16 KB, rind (DIT held) on kixtop: 5.01 µs, 1.04× the fastest +SHA-256, 16 KB, aws-lc-rs on nixos: 6.88 µs, 1.00× the fastest +SHA-256, 16 KB, aws-lc-rs on desktop: 3.23 µs, 1.01× the fastest +SHA-256, 16 KB, aws-lc-rs on nixos2: 31.46 µs, 1.12× the fastest +SHA-256, 16 KB, aws-lc-rs on kixtop: 4.86 µs, 1.00× the fastest +SHA-256, 16 KB, aws-lc-rs on ovh-iad: 50.68 µs, 1.12× the fastest +SHA-256, 16 KB, aws-lc-rs on ovh-sea: 49.41 µs, 1.14× the fastest +SHA-256, 16 KB, ring on nixos: 6.97 µs, 1.01× the fastest +SHA-256, 16 KB, ring on desktop: 3.22 µs, 1.01× the fastest +SHA-256, 16 KB, ring on nixos2: 32.37 µs, 1.15× the fastest +SHA-256, 16 KB, ring on kixtop: 4.84 µs, 1.00× the fastest +SHA-256, 16 KB, ring on ovh-iad: 50.70 µs, 1.12× the fastest +SHA-256, 16 KB, ring on ovh-sea: 51.35 µs, 1.18× the fastest +SHA-256, 16 KB, RustCrypto + dalek on nixos: 7.22 µs, 1.05× the fastest +SHA-256, 16 KB, RustCrypto + dalek on desktop: 3.22 µs, 1.01× the fastest +SHA-256, 16 KB, RustCrypto + dalek on nixos2: 58.17 µs, 2.07× the fastest +SHA-256, 16 KB, RustCrypto + dalek on kixtop: 5.66 µs, 1.17× the fastest +SHA-256, 16 KB, RustCrypto + dalek on ovh-iad: 93.30 µs, 2.07× the fastest +SHA-256, 16 KB, RustCrypto + dalek on ovh-sea: 92.84 µs, 2.13× the fastest +SHA-256, 16 KB, graviola on nixos: 7.08 µs, 1.03× the fastest +SHA-256, 16 KB, graviola on desktop: 3.22 µs, 1.01× the fastest +SHA-256, 16 KB, graviola on nixos2: 69.84 µs, 2.49× the fastest +SHA-256, 16 KB, graviola on kixtop: 5.79 µs, 1.20× the fastest +SHA-256, 16 KB, libcrux on nixos: 43.12 µs, 6.28× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +✓ +SHA-256, 16 KB, libcrux on desktop: 26.90 µs, 8.43× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +✓ +SHA-256, 16 KB, libcrux on nixos2: 61.68 µs, 2.20× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +✓ +SHA-256, 16 KB, libcrux on kixtop: 29.00 µs, 5.99× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +✓ +SHA-256, 16 KB, libcrux on ovh-iad: 96.58 µs, 2.14× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +✓ +SHA-256, 16 KB, libcrux on ovh-sea: 97.66 µs, 2.24× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +✓ +SHA-256, 16 KB, OpenSSL on nixos: 7.37 µs, 1.07× the fastest +SHA-256, 16 KB, OpenSSL on desktop: 3.36 µs, 1.05× the fastest +SHA-256, 16 KB, OpenSSL on nixos2: 28.83 µs, 1.03× the fastest +SHA-256, 16 KB, OpenSSL on kixtop: 4.98 µs, 1.03× the fastest +SHA-256, 16 KB, OpenSSL on ovh-iad: 45.56 µs, 1.01× the fastest +SHA-256, 16 KB, OpenSSL on ovh-sea: 43.72 µs, 1.00× the fastest SHA-512, 64 B SHA-512, 64 B, rind on nixos: 138 ns, 1.00× the fastest SHA-512, 64 B, rind on desktop: 60 ns, 1.00× the fastest SHA-512, 64 B, rind on nixos2: 198 ns, 1.00× the fastest -SHA-512, 64 B, rind on kixtop: 113 ns, 1.44× the fastest +SHA-512, 64 B, rind on kixtop: 108 ns, 1.41× the fastest SHA-512, 64 B, rind on ovh-iad: 321 ns, 1.00× the fastest SHA-512, 64 B, rind on ovh-sea: 304 ns, 1.00× the fastest -SHA-512, 64 B, aws-lc-rs on nixos: 224 ns, 1.62× the fastest -SHA-512, 64 B, aws-lc-rs on desktop: 136 ns, 2.27× the fastest; verified: aws-lc-verification's SAW proof of SHA-512 through EVP_Digest, padding included, over sha512_block_data_order_avx, which aws-lc runs only on Intel; of aws-lc c21d40da, whose SHA-512 code 5.12.0 keeps -✓ -SHA-512, 64 B, aws-lc-rs on nixos2: 228 ns, 1.15× the fastest; verified: aws-lc-verification's SAW proof of SHA-512 through EVP_Digest, padding included, over sha512_block_data_order_avx, which aws-lc runs only on Intel; of aws-lc c21d40da, whose SHA-512 code 5.12.0 keeps -✓ -SHA-512, 64 B, aws-lc-rs on kixtop: 108 ns, 1.37× the fastest -SHA-512, 64 B, aws-lc-rs on ovh-iad: 389 ns, 1.21× the fastest; verified: aws-lc-verification's SAW proof of SHA-512 through EVP_Digest, padding included, over sha512_block_data_order_avx, which aws-lc runs only on Intel; of aws-lc c21d40da, whose SHA-512 code 5.12.0 keeps -✓ -SHA-512, 64 B, aws-lc-rs on ovh-sea: 362 ns, 1.19× the fastest; verified: aws-lc-verification's SAW proof of SHA-512 through EVP_Digest, padding included, over sha512_block_data_order_avx, which aws-lc runs only on Intel; of aws-lc c21d40da, whose SHA-512 code 5.12.0 keeps -✓ -SHA-512, 64 B, ring on nixos: 198 ns, 1.43× the fastest -SHA-512, 64 B, ring on desktop: 142 ns, 2.36× the fastest -SHA-512, 64 B, ring on nixos2: 203 ns, 1.02× the fastest -SHA-512, 64 B, ring on kixtop: 88 ns, 1.11× the fastest -SHA-512, 64 B, ring on ovh-iad: 321 ns, 1.00× the fastest -SHA-512, 64 B, ring on ovh-sea: 331 ns, 1.09× the fastest -SHA-512, 64 B, RustCrypto + dalek on nixos: 192 ns, 1.39× the fastest -SHA-512, 64 B, RustCrypto + dalek on desktop: 120 ns, 1.99× the fastest -SHA-512, 64 B, RustCrypto + dalek on nixos2: 270 ns, 1.36× the fastest -SHA-512, 64 B, RustCrypto + dalek on kixtop: 79 ns, 1.00× the fastest -SHA-512, 64 B, RustCrypto + dalek on ovh-iad: 435 ns, 1.35× the fastest -SHA-512, 64 B, RustCrypto + dalek on ovh-sea: 424 ns, 1.40× the fastest -SHA-512, 64 B, graviola on nixos: 206 ns, 1.49× the fastest -SHA-512, 64 B, graviola on desktop: 150 ns, 2.49× the fastest -SHA-512, 64 B, graviola on nixos2: 236 ns, 1.19× the fastest -SHA-512, 64 B, graviola on kixtop: 177 ns, 2.25× the fastest -SHA-512, 64 B, libcrux on nixos: 246 ns, 1.78× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -✓ -SHA-512, 64 B, libcrux on desktop: 167 ns, 2.78× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -✓ -SHA-512, 64 B, libcrux on nixos2: 289 ns, 1.45× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -✓ -SHA-512, 64 B, libcrux on kixtop: 141 ns, 1.79× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -✓ -SHA-512, 64 B, libcrux on ovh-iad: 462 ns, 1.44× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -✓ -SHA-512, 64 B, libcrux on ovh-sea: 443 ns, 1.46× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -✓ -SHA-512, 64 B, OpenSSL on nixos: 355 ns, 2.57× the fastest -SHA-512, 64 B, OpenSSL on desktop: 233 ns, 3.87× the fastest -SHA-512, 64 B, OpenSSL on nixos2: 430 ns, 2.17× the fastest -SHA-512, 64 B, OpenSSL on kixtop: 211 ns, 2.68× the fastest -SHA-512, 64 B, OpenSSL on ovh-iad: 699 ns, 2.18× the fastest -SHA-512, 64 B, OpenSSL on ovh-sea: 682 ns, 2.25× the fastest +SHA-512, 64 B, rind (DIT held) on kixtop: 75 ns, 0.98× the fastest +SHA-512, 64 B, aws-lc-rs on nixos: 224 ns, 1.62× the fastest +SHA-512, 64 B, aws-lc-rs on desktop: 134 ns, 2.23× the fastest; verified: aws-lc-verification's SAW proof of SHA-512 through EVP_Digest, padding included, over sha512_block_data_order_avx, which aws-lc runs only on Intel; of aws-lc c21d40da, whose SHA-512 code 5.12.0 keeps +✓ +SHA-512, 64 B, aws-lc-rs on nixos2: 228 ns, 1.15× the fastest; verified: aws-lc-verification's SAW proof of SHA-512 through EVP_Digest, padding included, over sha512_block_data_order_avx, which aws-lc runs only on Intel; of aws-lc c21d40da, whose SHA-512 code 5.12.0 keeps +✓ +SHA-512, 64 B, aws-lc-rs on kixtop: 105 ns, 1.36× the fastest +SHA-512, 64 B, aws-lc-rs on ovh-iad: 389 ns, 1.21× the fastest; verified: aws-lc-verification's SAW proof of SHA-512 through EVP_Digest, padding included, over sha512_block_data_order_avx, which aws-lc runs only on Intel; of aws-lc c21d40da, whose SHA-512 code 5.12.0 keeps +✓ +SHA-512, 64 B, aws-lc-rs on ovh-sea: 362 ns, 1.19× the fastest; verified: aws-lc-verification's SAW proof of SHA-512 through EVP_Digest, padding included, over sha512_block_data_order_avx, which aws-lc runs only on Intel; of aws-lc c21d40da, whose SHA-512 code 5.12.0 keeps +✓ +SHA-512, 64 B, ring on nixos: 198 ns, 1.43× the fastest +SHA-512, 64 B, ring on desktop: 140 ns, 2.33× the fastest +SHA-512, 64 B, ring on nixos2: 203 ns, 1.02× the fastest +SHA-512, 64 B, ring on kixtop: 84 ns, 1.10× the fastest +SHA-512, 64 B, ring on ovh-iad: 321 ns, 1.00× the fastest +SHA-512, 64 B, ring on ovh-sea: 331 ns, 1.09× the fastest +SHA-512, 64 B, RustCrypto + dalek on nixos: 192 ns, 1.39× the fastest +SHA-512, 64 B, RustCrypto + dalek on desktop: 120 ns, 2.00× the fastest +SHA-512, 64 B, RustCrypto + dalek on nixos2: 270 ns, 1.36× the fastest +SHA-512, 64 B, RustCrypto + dalek on kixtop: 77 ns, 1.00× the fastest +SHA-512, 64 B, RustCrypto + dalek on ovh-iad: 435 ns, 1.35× the fastest +SHA-512, 64 B, RustCrypto + dalek on ovh-sea: 424 ns, 1.40× the fastest +SHA-512, 64 B, graviola on nixos: 206 ns, 1.49× the fastest +SHA-512, 64 B, graviola on desktop: 148 ns, 2.47× the fastest +SHA-512, 64 B, graviola on nixos2: 236 ns, 1.19× the fastest +SHA-512, 64 B, graviola on kixtop: 175 ns, 2.27× the fastest +SHA-512, 64 B, libcrux on nixos: 246 ns, 1.78× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +✓ +SHA-512, 64 B, libcrux on desktop: 166 ns, 2.77× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +✓ +SHA-512, 64 B, libcrux on nixos2: 289 ns, 1.45× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +✓ +SHA-512, 64 B, libcrux on kixtop: 142 ns, 1.84× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +✓ +SHA-512, 64 B, libcrux on ovh-iad: 462 ns, 1.44× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +✓ +SHA-512, 64 B, libcrux on ovh-sea: 443 ns, 1.46× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +✓ +SHA-512, 64 B, OpenSSL on nixos: 355 ns, 2.57× the fastest +SHA-512, 64 B, OpenSSL on desktop: 226 ns, 3.76× the fastest +SHA-512, 64 B, OpenSSL on nixos2: 430 ns, 2.17× the fastest +SHA-512, 64 B, OpenSSL on kixtop: 205 ns, 2.67× the fastest +SHA-512, 64 B, OpenSSL on ovh-iad: 699 ns, 2.18× the fastest +SHA-512, 64 B, OpenSSL on ovh-sea: 682 ns, 2.25× the fastest SHA-512, 1350 B SHA-512, 1350 B, rind on nixos: 1.77 µs, 1.01× the fastest -SHA-512, 1350 B, rind on desktop: 470 ns, 1.00× the fastest +SHA-512, 1350 B, rind on desktop: 249 ns, 1.00× the fastest SHA-512, 1350 B, rind on nixos2: 1.65 µs, 1.00× the fastest -SHA-512, 1350 B, rind on kixtop: 827 ns, 1.15× the fastest +SHA-512, 1350 B, rind on kixtop: 810 ns, 1.12× the fastest SHA-512, 1350 B, rind on ovh-iad: 2.60 µs, 1.00× the fastest SHA-512, 1350 B, rind on ovh-sea: 2.54 µs, 1.00× the fastest -SHA-512, 1350 B, aws-lc-rs on nixos: 1.90 µs, 1.08× the fastest -SHA-512, 1350 B, aws-lc-rs on desktop: 1.27 µs, 2.69× the fastest; verified: aws-lc-verification's SAW proof of SHA-512 through EVP_Digest, padding included, over sha512_block_data_order_avx, which aws-lc runs only on Intel; of aws-lc c21d40da, whose SHA-512 code 5.12.0 keeps -✓ -SHA-512, 1350 B, aws-lc-rs on nixos2: 1.97 µs, 1.19× the fastest; verified: aws-lc-verification's SAW proof of SHA-512 through EVP_Digest, padding included, over sha512_block_data_order_avx, which aws-lc runs only on Intel; of aws-lc c21d40da, whose SHA-512 code 5.12.0 keeps -✓ -SHA-512, 1350 B, aws-lc-rs on kixtop: 775 ns, 1.07× the fastest -SHA-512, 1350 B, aws-lc-rs on ovh-iad: 3.12 µs, 1.20× the fastest; verified: aws-lc-verification's SAW proof of SHA-512 through EVP_Digest, padding included, over sha512_block_data_order_avx, which aws-lc runs only on Intel; of aws-lc c21d40da, whose SHA-512 code 5.12.0 keeps -✓ -SHA-512, 1350 B, aws-lc-rs on ovh-sea: 3.04 µs, 1.19× the fastest; verified: aws-lc-verification's SAW proof of SHA-512 through EVP_Digest, padding included, over sha512_block_data_order_avx, which aws-lc runs only on Intel; of aws-lc c21d40da, whose SHA-512 code 5.12.0 keeps -✓ -SHA-512, 1350 B, ring on nixos: 1.87 µs, 1.06× the fastest -SHA-512, 1350 B, ring on desktop: 1.26 µs, 2.69× the fastest -SHA-512, 1350 B, ring on nixos2: 1.93 µs, 1.17× the fastest -SHA-512, 1350 B, ring on kixtop: 737 ns, 1.02× the fastest -SHA-512, 1350 B, ring on ovh-iad: 3.02 µs, 1.16× the fastest -SHA-512, 1350 B, ring on ovh-sea: 2.97 µs, 1.17× the fastest -SHA-512, 1350 B, RustCrypto + dalek on nixos: 1.92 µs, 1.09× the fastest -SHA-512, 1350 B, RustCrypto + dalek on desktop: 1.18 µs, 2.50× the fastest -SHA-512, 1350 B, RustCrypto + dalek on nixos2: 2.67 µs, 1.61× the fastest -SHA-512, 1350 B, RustCrypto + dalek on kixtop: 722 ns, 1.00× the fastest -SHA-512, 1350 B, RustCrypto + dalek on ovh-iad: 4.26 µs, 1.64× the fastest -SHA-512, 1350 B, RustCrypto + dalek on ovh-sea: 4.17 µs, 1.64× the fastest -SHA-512, 1350 B, graviola on nixos: 1.98 µs, 1.13× the fastest -SHA-512, 1350 B, graviola on desktop: 1.51 µs, 3.21× the fastest -SHA-512, 1350 B, graviola on nixos2: 2.35 µs, 1.42× the fastest -SHA-512, 1350 B, graviola on kixtop: 1.88 µs, 2.60× the fastest -SHA-512, 1350 B, libcrux on nixos: 2.94 µs, 1.67× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -✓ -SHA-512, 1350 B, libcrux on desktop: 1.69 µs, 3.59× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -✓ -SHA-512, 1350 B, libcrux on nixos2: 3.08 µs, 1.86× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -✓ -SHA-512, 1350 B, libcrux on kixtop: 1.58 µs, 2.18× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -✓ -SHA-512, 1350 B, libcrux on ovh-iad: 4.91 µs, 1.88× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -✓ -SHA-512, 1350 B, libcrux on ovh-sea: 4.66 µs, 1.83× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -✓ -SHA-512, 1350 B, OpenSSL on nixos: 1.76 µs, 1.00× the fastest -SHA-512, 1350 B, OpenSSL on desktop: 1.20 µs, 2.55× the fastest -SHA-512, 1350 B, OpenSSL on nixos2: 1.90 µs, 1.15× the fastest -SHA-512, 1350 B, OpenSSL on kixtop: 878 ns, 1.22× the fastest -SHA-512, 1350 B, OpenSSL on ovh-iad: 3.10 µs, 1.19× the fastest -SHA-512, 1350 B, OpenSSL on ovh-sea: 2.99 µs, 1.18× the fastest +SHA-512, 1350 B, rind (DIT held) on kixtop: 730 ns, 1.01× the fastest +SHA-512, 1350 B, aws-lc-rs on nixos: 1.90 µs, 1.08× the fastest +SHA-512, 1350 B, aws-lc-rs on desktop: 1.24 µs, 4.99× the fastest; verified: aws-lc-verification's SAW proof of SHA-512 through EVP_Digest, padding included, over sha512_block_data_order_avx, which aws-lc runs only on Intel; of aws-lc c21d40da, whose SHA-512 code 5.12.0 keeps +✓ +SHA-512, 1350 B, aws-lc-rs on nixos2: 1.97 µs, 1.19× the fastest; verified: aws-lc-verification's SAW proof of SHA-512 through EVP_Digest, padding included, over sha512_block_data_order_avx, which aws-lc runs only on Intel; of aws-lc c21d40da, whose SHA-512 code 5.12.0 keeps +✓ +SHA-512, 1350 B, aws-lc-rs on kixtop: 768 ns, 1.06× the fastest +SHA-512, 1350 B, aws-lc-rs on ovh-iad: 3.12 µs, 1.20× the fastest; verified: aws-lc-verification's SAW proof of SHA-512 through EVP_Digest, padding included, over sha512_block_data_order_avx, which aws-lc runs only on Intel; of aws-lc c21d40da, whose SHA-512 code 5.12.0 keeps +✓ +SHA-512, 1350 B, aws-lc-rs on ovh-sea: 3.04 µs, 1.19× the fastest; verified: aws-lc-verification's SAW proof of SHA-512 through EVP_Digest, padding included, over sha512_block_data_order_avx, which aws-lc runs only on Intel; of aws-lc c21d40da, whose SHA-512 code 5.12.0 keeps +✓ +SHA-512, 1350 B, ring on nixos: 1.87 µs, 1.06× the fastest +SHA-512, 1350 B, ring on desktop: 1.26 µs, 5.05× the fastest +SHA-512, 1350 B, ring on nixos2: 1.93 µs, 1.17× the fastest +SHA-512, 1350 B, ring on kixtop: 743 ns, 1.03× the fastest +SHA-512, 1350 B, ring on ovh-iad: 3.02 µs, 1.16× the fastest +SHA-512, 1350 B, ring on ovh-sea: 2.97 µs, 1.17× the fastest +SHA-512, 1350 B, RustCrypto + dalek on nixos: 1.92 µs, 1.09× the fastest +SHA-512, 1350 B, RustCrypto + dalek on desktop: 1.17 µs, 4.68× the fastest +SHA-512, 1350 B, RustCrypto + dalek on nixos2: 2.67 µs, 1.61× the fastest +SHA-512, 1350 B, RustCrypto + dalek on kixtop: 723 ns, 1.00× the fastest +SHA-512, 1350 B, RustCrypto + dalek on ovh-iad: 4.26 µs, 1.64× the fastest +SHA-512, 1350 B, RustCrypto + dalek on ovh-sea: 4.17 µs, 1.64× the fastest +SHA-512, 1350 B, graviola on nixos: 1.98 µs, 1.13× the fastest +SHA-512, 1350 B, graviola on desktop: 1.49 µs, 5.96× the fastest +SHA-512, 1350 B, graviola on nixos2: 2.35 µs, 1.42× the fastest +SHA-512, 1350 B, graviola on kixtop: 1.87 µs, 2.58× the fastest +SHA-512, 1350 B, libcrux on nixos: 2.94 µs, 1.67× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +✓ +SHA-512, 1350 B, libcrux on desktop: 1.72 µs, 6.89× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +✓ +SHA-512, 1350 B, libcrux on nixos2: 3.08 µs, 1.86× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +✓ +SHA-512, 1350 B, libcrux on kixtop: 1.56 µs, 2.16× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +✓ +SHA-512, 1350 B, libcrux on ovh-iad: 4.91 µs, 1.88× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +✓ +SHA-512, 1350 B, libcrux on ovh-sea: 4.66 µs, 1.83× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +✓ +SHA-512, 1350 B, OpenSSL on nixos: 1.76 µs, 1.00× the fastest +SHA-512, 1350 B, OpenSSL on desktop: 1.17 µs, 4.70× the fastest +SHA-512, 1350 B, OpenSSL on nixos2: 1.90 µs, 1.15× the fastest +SHA-512, 1350 B, OpenSSL on kixtop: 893 ns, 1.23× the fastest +SHA-512, 1350 B, OpenSSL on ovh-iad: 3.10 µs, 1.19× the fastest +SHA-512, 1350 B, OpenSSL on ovh-sea: 2.99 µs, 1.18× the fastest SHA-512, 16 KB SHA-512, 16 KB, rind on nixos: 16.28 µs, 1.07× the fastest -SHA-512, 16 KB, rind on desktop: 2.68 µs, 1.00× the fastest +SHA-512, 16 KB, rind on desktop: 2.63 µs, 1.00× the fastest SHA-512, 16 KB, rind on nixos2: 18.53 µs, 1.00× the fastest -SHA-512, 16 KB, rind on kixtop: 8.77 µs, 1.03× the fastest +SHA-512, 16 KB, rind on kixtop: 8.85 µs, 1.03× the fastest SHA-512, 16 KB, rind on ovh-iad: 33.08 µs, 1.03× the fastest SHA-512, 16 KB, rind on ovh-sea: 29.12 µs, 1.00× the fastest -SHA-512, 16 KB, aws-lc-rs on nixos: 25.17 µs, 1.66× the fastest -SHA-512, 16 KB, aws-lc-rs on desktop: 14.32 µs, 5.34× the fastest; verified: aws-lc-verification's SAW proof of SHA-512 through EVP_Digest, padding included, over sha512_block_data_order_avx, which aws-lc runs only on Intel; of aws-lc c21d40da, whose SHA-512 code 5.12.0 keeps -✓ -SHA-512, 16 KB, aws-lc-rs on nixos2: 21.92 µs, 1.18× the fastest; verified: aws-lc-verification's SAW proof of SHA-512 through EVP_Digest, padding included, over sha512_block_data_order_avx, which aws-lc runs only on Intel; of aws-lc c21d40da, whose SHA-512 code 5.12.0 keeps -✓ -SHA-512, 16 KB, aws-lc-rs on kixtop: 8.70 µs, 1.02× the fastest -SHA-512, 16 KB, aws-lc-rs on ovh-iad: 35.17 µs, 1.09× the fastest; verified: aws-lc-verification's SAW proof of SHA-512 through EVP_Digest, padding included, over sha512_block_data_order_avx, which aws-lc runs only on Intel; of aws-lc c21d40da, whose SHA-512 code 5.12.0 keeps -✓ -SHA-512, 16 KB, aws-lc-rs on ovh-sea: 34.42 µs, 1.18× the fastest; verified: aws-lc-verification's SAW proof of SHA-512 through EVP_Digest, padding included, over sha512_block_data_order_avx, which aws-lc runs only on Intel; of aws-lc c21d40da, whose SHA-512 code 5.12.0 keeps -✓ -SHA-512, 16 KB, ring on nixos: 25.38 µs, 1.68× the fastest -SHA-512, 16 KB, ring on desktop: 14.36 µs, 5.35× the fastest -SHA-512, 16 KB, ring on nixos2: 21.75 µs, 1.17× the fastest -SHA-512, 16 KB, ring on kixtop: 8.69 µs, 1.02× the fastest -SHA-512, 16 KB, ring on ovh-iad: 35.28 µs, 1.09× the fastest -SHA-512, 16 KB, ring on ovh-sea: 33.89 µs, 1.16× the fastest -SHA-512, 16 KB, RustCrypto + dalek on nixos: 24.12 µs, 1.59× the fastest -SHA-512, 16 KB, RustCrypto + dalek on desktop: 13.55 µs, 5.05× the fastest -SHA-512, 16 KB, RustCrypto + dalek on nixos2: 30.73 µs, 1.66× the fastest -SHA-512, 16 KB, RustCrypto + dalek on kixtop: 8.50 µs, 1.00× the fastest -SHA-512, 16 KB, RustCrypto + dalek on ovh-iad: 53.82 µs, 1.67× the fastest -SHA-512, 16 KB, RustCrypto + dalek on ovh-sea: 47.69 µs, 1.64× the fastest -SHA-512, 16 KB, graviola on nixos: 21.04 µs, 1.39× the fastest -SHA-512, 16 KB, graviola on desktop: 17.96 µs, 6.70× the fastest -SHA-512, 16 KB, graviola on nixos2: 27.16 µs, 1.47× the fastest -SHA-512, 16 KB, graviola on kixtop: 22.11 µs, 2.60× the fastest -SHA-512, 16 KB, libcrux on nixos: 29.75 µs, 1.96× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -✓ -SHA-512, 16 KB, libcrux on desktop: 20.01 µs, 7.46× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -✓ -SHA-512, 16 KB, libcrux on nixos2: 35.45 µs, 1.91× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -✓ -SHA-512, 16 KB, libcrux on kixtop: 18.41 µs, 2.17× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -✓ -SHA-512, 16 KB, libcrux on ovh-iad: 59.59 µs, 1.85× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -✓ -SHA-512, 16 KB, libcrux on ovh-sea: 54.80 µs, 1.88× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -✓ -SHA-512, 16 KB, OpenSSL on nixos: 15.14 µs, 1.00× the fastest -SHA-512, 16 KB, OpenSSL on desktop: 12.51 µs, 4.66× the fastest -SHA-512, 16 KB, OpenSSL on nixos2: 18.99 µs, 1.02× the fastest -SHA-512, 16 KB, OpenSSL on kixtop: 8.88 µs, 1.04× the fastest -SHA-512, 16 KB, OpenSSL on ovh-iad: 32.22 µs, 1.00× the fastest -SHA-512, 16 KB, OpenSSL on ovh-sea: 29.59 µs, 1.02× the fastest +SHA-512, 16 KB, rind (DIT held) on kixtop: 8.72 µs, 1.02× the fastest +SHA-512, 16 KB, aws-lc-rs on nixos: 25.17 µs, 1.66× the fastest +SHA-512, 16 KB, aws-lc-rs on desktop: 14.12 µs, 5.38× the fastest; verified: aws-lc-verification's SAW proof of SHA-512 through EVP_Digest, padding included, over sha512_block_data_order_avx, which aws-lc runs only on Intel; of aws-lc c21d40da, whose SHA-512 code 5.12.0 keeps +✓ +SHA-512, 16 KB, aws-lc-rs on nixos2: 21.92 µs, 1.18× the fastest; verified: aws-lc-verification's SAW proof of SHA-512 through EVP_Digest, padding included, over sha512_block_data_order_avx, which aws-lc runs only on Intel; of aws-lc c21d40da, whose SHA-512 code 5.12.0 keeps +✓ +SHA-512, 16 KB, aws-lc-rs on kixtop: 8.91 µs, 1.04× the fastest +SHA-512, 16 KB, aws-lc-rs on ovh-iad: 35.17 µs, 1.09× the fastest; verified: aws-lc-verification's SAW proof of SHA-512 through EVP_Digest, padding included, over sha512_block_data_order_avx, which aws-lc runs only on Intel; of aws-lc c21d40da, whose SHA-512 code 5.12.0 keeps +✓ +SHA-512, 16 KB, aws-lc-rs on ovh-sea: 34.42 µs, 1.18× the fastest; verified: aws-lc-verification's SAW proof of SHA-512 through EVP_Digest, padding included, over sha512_block_data_order_avx, which aws-lc runs only on Intel; of aws-lc c21d40da, whose SHA-512 code 5.12.0 keeps +✓ +SHA-512, 16 KB, ring on nixos: 25.38 µs, 1.68× the fastest +SHA-512, 16 KB, ring on desktop: 14.10 µs, 5.37× the fastest +SHA-512, 16 KB, ring on nixos2: 21.75 µs, 1.17× the fastest +SHA-512, 16 KB, ring on kixtop: 8.70 µs, 1.01× the fastest +SHA-512, 16 KB, ring on ovh-iad: 35.28 µs, 1.09× the fastest +SHA-512, 16 KB, ring on ovh-sea: 33.89 µs, 1.16× the fastest +SHA-512, 16 KB, RustCrypto + dalek on nixos: 24.12 µs, 1.59× the fastest +SHA-512, 16 KB, RustCrypto + dalek on desktop: 13.51 µs, 5.15× the fastest +SHA-512, 16 KB, RustCrypto + dalek on nixos2: 30.73 µs, 1.66× the fastest +SHA-512, 16 KB, RustCrypto + dalek on kixtop: 8.59 µs, 1.00× the fastest +SHA-512, 16 KB, RustCrypto + dalek on ovh-iad: 53.82 µs, 1.67× the fastest +SHA-512, 16 KB, RustCrypto + dalek on ovh-sea: 47.69 µs, 1.64× the fastest +SHA-512, 16 KB, graviola on nixos: 21.04 µs, 1.39× the fastest +SHA-512, 16 KB, graviola on desktop: 17.50 µs, 6.66× the fastest +SHA-512, 16 KB, graviola on nixos2: 27.16 µs, 1.47× the fastest +SHA-512, 16 KB, graviola on kixtop: 21.69 µs, 2.52× the fastest +SHA-512, 16 KB, libcrux on nixos: 29.75 µs, 1.96× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +✓ +SHA-512, 16 KB, libcrux on desktop: 20.10 µs, 7.66× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +✓ +SHA-512, 16 KB, libcrux on nixos2: 35.45 µs, 1.91× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +✓ +SHA-512, 16 KB, libcrux on kixtop: 18.39 µs, 2.14× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +✓ +SHA-512, 16 KB, libcrux on ovh-iad: 59.59 µs, 1.85× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +✓ +SHA-512, 16 KB, libcrux on ovh-sea: 54.80 µs, 1.88× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +✓ +SHA-512, 16 KB, OpenSSL on nixos: 15.14 µs, 1.00× the fastest +SHA-512, 16 KB, OpenSSL on desktop: 12.29 µs, 4.68× the fastest +SHA-512, 16 KB, OpenSSL on nixos2: 18.99 µs, 1.02× the fastest +SHA-512, 16 KB, OpenSSL on kixtop: 9.33 µs, 1.09× the fastest +SHA-512, 16 KB, OpenSSL on ovh-iad: 32.22 µs, 1.00× the fastest +SHA-512, 16 KB, OpenSSL on ovh-sea: 29.59 µs, 1.02× the fastest HMAC-SHA256, 64 B HMAC-SHA256, 64 B, rind on nixos: 147 ns, 1.00× the fastest HMAC-SHA256, 64 B, rind on desktop: 75 ns, 1.00× the fastest HMAC-SHA256, 64 B, rind on nixos2: 628 ns, 1.00× the fastest -HMAC-SHA256, 64 B, rind on kixtop: 191 ns, 1.88× the fastest +HMAC-SHA256, 64 B, rind on kixtop: 189 ns, 1.90× the fastest HMAC-SHA256, 64 B, rind on ovh-iad: 1.16 µs, 1.00× the fastest HMAC-SHA256, 64 B, rind on ovh-sea: 963 ns, 1.00× the fastest -HMAC-SHA256, 64 B, aws-lc-rs on nixos: 264 ns, 1.80× the fastest -HMAC-SHA256, 64 B, aws-lc-rs on desktop: 180 ns, 2.38× the fastest -HMAC-SHA256, 64 B, aws-lc-rs on nixos2: 811 ns, 1.29× the fastest -HMAC-SHA256, 64 B, aws-lc-rs on kixtop: 248 ns, 2.43× the fastest -HMAC-SHA256, 64 B, aws-lc-rs on ovh-iad: 1.60 µs, 1.38× the fastest -HMAC-SHA256, 64 B, aws-lc-rs on ovh-sea: 1.24 µs, 1.29× the fastest -HMAC-SHA256, 64 B, ring on nixos: 214 ns, 1.45× the fastest -HMAC-SHA256, 64 B, ring on desktop: 145 ns, 1.93× the fastest -HMAC-SHA256, 64 B, ring on nixos2: 707 ns, 1.13× the fastest -HMAC-SHA256, 64 B, ring on kixtop: 137 ns, 1.34× the fastest -HMAC-SHA256, 64 B, ring on ovh-iad: 1.64 µs, 1.42× the fastest -HMAC-SHA256, 64 B, ring on ovh-sea: 1.09 µs, 1.13× the fastest -HMAC-SHA256, 64 B, RustCrypto + dalek on nixos: 155 ns, 1.06× the fastest -HMAC-SHA256, 64 B, RustCrypto + dalek on desktop: 104 ns, 1.39× the fastest -HMAC-SHA256, 64 B, RustCrypto + dalek on nixos2: 1.19 µs, 1.89× the fastest -HMAC-SHA256, 64 B, RustCrypto + dalek on kixtop: 102 ns, 1.00× the fastest -HMAC-SHA256, 64 B, RustCrypto + dalek on ovh-iad: 2.13 µs, 1.84× the fastest -HMAC-SHA256, 64 B, RustCrypto + dalek on ovh-sea: 1.82 µs, 1.89× the fastest -HMAC-SHA256, 64 B, graviola on nixos: 172 ns, 1.17× the fastest -HMAC-SHA256, 64 B, graviola on desktop: 115 ns, 1.52× the fastest -HMAC-SHA256, 64 B, graviola on nixos2: 1.44 µs, 2.30× the fastest -HMAC-SHA256, 64 B, graviola on kixtop: 115 ns, 1.12× the fastest -HMAC-SHA256, 64 B, libcrux on nixos: 851 ns, 5.79× the fastest; verified: HACL*'s F* proof of Hacl.HMAC's compute_sha2_256, compiled to Rust by an unverified step -✓ -HMAC-SHA256, 64 B, libcrux on desktop: 536 ns, 7.12× the fastest; verified: HACL*'s F* proof of Hacl.HMAC's compute_sha2_256, compiled to Rust by an unverified step -✓ -HMAC-SHA256, 64 B, libcrux on nixos2: 1.20 µs, 1.92× the fastest; verified: HACL*'s F* proof of Hacl.HMAC's compute_sha2_256, compiled to Rust by an unverified step -✓ -HMAC-SHA256, 64 B, libcrux on kixtop: 568 ns, 5.57× the fastest; verified: HACL*'s F* proof of Hacl.HMAC's compute_sha2_256, compiled to Rust by an unverified step -✓ -HMAC-SHA256, 64 B, libcrux on ovh-iad: 2.36 µs, 2.03× the fastest; verified: HACL*'s F* proof of Hacl.HMAC's compute_sha2_256, compiled to Rust by an unverified step -✓ -HMAC-SHA256, 64 B, libcrux on ovh-sea: 1.83 µs, 1.90× the fastest; verified: HACL*'s F* proof of Hacl.HMAC's compute_sha2_256, compiled to Rust by an unverified step -✓ -HMAC-SHA256, 64 B, OpenSSL on nixos: 2.57 µs, 17.50× the fastest -HMAC-SHA256, 64 B, OpenSSL on desktop: 1.56 µs, 20.76× the fastest -HMAC-SHA256, 64 B, OpenSSL on nixos2: 3.69 µs, 5.88× the fastest -HMAC-SHA256, 64 B, OpenSSL on kixtop: 2.06 µs, 20.24× the fastest -HMAC-SHA256, 64 B, OpenSSL on ovh-iad: 6.68 µs, 5.76× the fastest -HMAC-SHA256, 64 B, OpenSSL on ovh-sea: 5.66 µs, 5.88× the fastest +HMAC-SHA256, 64 B, rind (DIT held) on kixtop: 110 ns, 1.10× the fastest +HMAC-SHA256, 64 B, aws-lc-rs on nixos: 264 ns, 1.80× the fastest +HMAC-SHA256, 64 B, aws-lc-rs on desktop: 180 ns, 2.40× the fastest +HMAC-SHA256, 64 B, aws-lc-rs on nixos2: 811 ns, 1.29× the fastest +HMAC-SHA256, 64 B, aws-lc-rs on kixtop: 245 ns, 2.47× the fastest +HMAC-SHA256, 64 B, aws-lc-rs on ovh-iad: 1.60 µs, 1.38× the fastest +HMAC-SHA256, 64 B, aws-lc-rs on ovh-sea: 1.24 µs, 1.29× the fastest +HMAC-SHA256, 64 B, ring on nixos: 214 ns, 1.45× the fastest +HMAC-SHA256, 64 B, ring on desktop: 145 ns, 1.93× the fastest +HMAC-SHA256, 64 B, ring on nixos2: 707 ns, 1.13× the fastest +HMAC-SHA256, 64 B, ring on kixtop: 134 ns, 1.35× the fastest +HMAC-SHA256, 64 B, ring on ovh-iad: 1.64 µs, 1.42× the fastest +HMAC-SHA256, 64 B, ring on ovh-sea: 1.09 µs, 1.13× the fastest +HMAC-SHA256, 64 B, RustCrypto + dalek on nixos: 155 ns, 1.06× the fastest +HMAC-SHA256, 64 B, RustCrypto + dalek on desktop: 103 ns, 1.37× the fastest +HMAC-SHA256, 64 B, RustCrypto + dalek on nixos2: 1.19 µs, 1.89× the fastest +HMAC-SHA256, 64 B, RustCrypto + dalek on kixtop: 99 ns, 1.00× the fastest +HMAC-SHA256, 64 B, RustCrypto + dalek on ovh-iad: 2.13 µs, 1.84× the fastest +HMAC-SHA256, 64 B, RustCrypto + dalek on ovh-sea: 1.82 µs, 1.89× the fastest +HMAC-SHA256, 64 B, graviola on nixos: 172 ns, 1.17× the fastest +HMAC-SHA256, 64 B, graviola on desktop: 110 ns, 1.47× the fastest +HMAC-SHA256, 64 B, graviola on nixos2: 1.44 µs, 2.30× the fastest +HMAC-SHA256, 64 B, graviola on kixtop: 112 ns, 1.12× the fastest +HMAC-SHA256, 64 B, libcrux on nixos: 851 ns, 5.79× the fastest; verified: HACL*'s F* proof of Hacl.HMAC's compute_sha2_256, compiled to Rust by an unverified step +✓ +HMAC-SHA256, 64 B, libcrux on desktop: 537 ns, 7.15× the fastest; verified: HACL*'s F* proof of Hacl.HMAC's compute_sha2_256, compiled to Rust by an unverified step +✓ +HMAC-SHA256, 64 B, libcrux on nixos2: 1.20 µs, 1.92× the fastest; verified: HACL*'s F* proof of Hacl.HMAC's compute_sha2_256, compiled to Rust by an unverified step +✓ +HMAC-SHA256, 64 B, libcrux on kixtop: 564 ns, 5.67× the fastest; verified: HACL*'s F* proof of Hacl.HMAC's compute_sha2_256, compiled to Rust by an unverified step +✓ +HMAC-SHA256, 64 B, libcrux on ovh-iad: 2.36 µs, 2.03× the fastest; verified: HACL*'s F* proof of Hacl.HMAC's compute_sha2_256, compiled to Rust by an unverified step +✓ +HMAC-SHA256, 64 B, libcrux on ovh-sea: 1.83 µs, 1.90× the fastest; verified: HACL*'s F* proof of Hacl.HMAC's compute_sha2_256, compiled to Rust by an unverified step +✓ +HMAC-SHA256, 64 B, OpenSSL on nixos: 2.57 µs, 17.50× the fastest +HMAC-SHA256, 64 B, OpenSSL on desktop: 1.55 µs, 20.71× the fastest +HMAC-SHA256, 64 B, OpenSSL on nixos2: 3.69 µs, 5.88× the fastest +HMAC-SHA256, 64 B, OpenSSL on kixtop: 2.09 µs, 21.07× the fastest +HMAC-SHA256, 64 B, OpenSSL on ovh-iad: 6.68 µs, 5.76× the fastest +HMAC-SHA256, 64 B, OpenSSL on ovh-sea: 5.66 µs, 5.88× the fastest HMAC-SHA256, 1350 B HMAC-SHA256, 1350 B, rind on nixos: 692 ns, 1.00× the fastest -HMAC-SHA256, 1350 B, rind on desktop: 327 ns, 1.00× the fastest +HMAC-SHA256, 1350 B, rind on desktop: 328 ns, 1.00× the fastest HMAC-SHA256, 1350 B, rind on nixos2: 2.79 µs, 1.00× the fastest HMAC-SHA256, 1350 B, rind on kixtop: 559 ns, 1.11× the fastest HMAC-SHA256, 1350 B, rind on ovh-iad: 4.82 µs, 1.00× the fastest HMAC-SHA256, 1350 B, rind on ovh-sea: 4.31 µs, 1.00× the fastest -HMAC-SHA256, 1350 B, aws-lc-rs on nixos: 853 ns, 1.23× the fastest -HMAC-SHA256, 1350 B, aws-lc-rs on desktop: 434 ns, 1.33× the fastest -HMAC-SHA256, 1350 B, aws-lc-rs on nixos2: 3.30 µs, 1.18× the fastest -HMAC-SHA256, 1350 B, aws-lc-rs on kixtop: 620 ns, 1.24× the fastest -HMAC-SHA256, 1350 B, aws-lc-rs on ovh-iad: 5.59 µs, 1.16× the fastest -HMAC-SHA256, 1350 B, aws-lc-rs on ovh-sea: 5.11 µs, 1.19× the fastest -HMAC-SHA256, 1350 B, ring on nixos: 791 ns, 1.14× the fastest -HMAC-SHA256, 1350 B, ring on desktop: 399 ns, 1.22× the fastest -HMAC-SHA256, 1350 B, ring on nixos2: 3.19 µs, 1.14× the fastest -HMAC-SHA256, 1350 B, ring on kixtop: 502 ns, 1.00× the fastest -HMAC-SHA256, 1350 B, ring on ovh-iad: 5.16 µs, 1.07× the fastest -HMAC-SHA256, 1350 B, ring on ovh-sea: 4.97 µs, 1.15× the fastest -HMAC-SHA256, 1350 B, RustCrypto + dalek on nixos: 728 ns, 1.05× the fastest -HMAC-SHA256, 1350 B, RustCrypto + dalek on desktop: 358 ns, 1.09× the fastest -HMAC-SHA256, 1350 B, RustCrypto + dalek on nixos2: 5.80 µs, 2.08× the fastest -HMAC-SHA256, 1350 B, RustCrypto + dalek on kixtop: 542 ns, 1.08× the fastest -HMAC-SHA256, 1350 B, RustCrypto + dalek on ovh-iad: 9.61 µs, 1.99× the fastest -HMAC-SHA256, 1350 B, RustCrypto + dalek on ovh-sea: 8.95 µs, 2.08× the fastest -HMAC-SHA256, 1350 B, graviola on nixos: 731 ns, 1.06× the fastest -HMAC-SHA256, 1350 B, graviola on desktop: 363 ns, 1.11× the fastest -HMAC-SHA256, 1350 B, graviola on nixos2: 7.05 µs, 2.53× the fastest -HMAC-SHA256, 1350 B, graviola on kixtop: 557 ns, 1.11× the fastest -HMAC-SHA256, 1350 B, libcrux on nixos: 4.39 µs, 6.34× the fastest; verified: HACL*'s F* proof of Hacl.HMAC's compute_sha2_256, compiled to Rust by an unverified step -✓ -HMAC-SHA256, 1350 B, libcrux on desktop: 2.66 µs, 8.15× the fastest; verified: HACL*'s F* proof of Hacl.HMAC's compute_sha2_256, compiled to Rust by an unverified step -✓ -HMAC-SHA256, 1350 B, libcrux on nixos2: 6.02 µs, 2.16× the fastest; verified: HACL*'s F* proof of Hacl.HMAC's compute_sha2_256, compiled to Rust by an unverified step -✓ -HMAC-SHA256, 1350 B, libcrux on kixtop: 2.86 µs, 5.70× the fastest; verified: HACL*'s F* proof of Hacl.HMAC's compute_sha2_256, compiled to Rust by an unverified step -✓ -HMAC-SHA256, 1350 B, libcrux on ovh-iad: 9.65 µs, 2.00× the fastest; verified: HACL*'s F* proof of Hacl.HMAC's compute_sha2_256, compiled to Rust by an unverified step -✓ -HMAC-SHA256, 1350 B, libcrux on ovh-sea: 9.24 µs, 2.14× the fastest; verified: HACL*'s F* proof of Hacl.HMAC's compute_sha2_256, compiled to Rust by an unverified step -✓ -HMAC-SHA256, 1350 B, OpenSSL on nixos: 3.11 µs, 4.50× the fastest -HMAC-SHA256, 1350 B, OpenSSL on desktop: 1.83 µs, 5.60× the fastest -HMAC-SHA256, 1350 B, OpenSSL on nixos2: 5.94 µs, 2.13× the fastest -HMAC-SHA256, 1350 B, OpenSSL on kixtop: 2.43 µs, 4.84× the fastest -HMAC-SHA256, 1350 B, OpenSSL on ovh-iad: 9.44 µs, 1.96× the fastest -HMAC-SHA256, 1350 B, OpenSSL on ovh-sea: 9.08 µs, 2.11× the fastest +HMAC-SHA256, 1350 B, rind (DIT held) on kixtop: 487 ns, 0.97× the fastest +HMAC-SHA256, 1350 B, aws-lc-rs on nixos: 853 ns, 1.23× the fastest +HMAC-SHA256, 1350 B, aws-lc-rs on desktop: 435 ns, 1.33× the fastest +HMAC-SHA256, 1350 B, aws-lc-rs on nixos2: 3.30 µs, 1.18× the fastest +HMAC-SHA256, 1350 B, aws-lc-rs on kixtop: 597 ns, 1.19× the fastest +HMAC-SHA256, 1350 B, aws-lc-rs on ovh-iad: 5.59 µs, 1.16× the fastest +HMAC-SHA256, 1350 B, aws-lc-rs on ovh-sea: 5.11 µs, 1.19× the fastest +HMAC-SHA256, 1350 B, ring on nixos: 791 ns, 1.14× the fastest +HMAC-SHA256, 1350 B, ring on desktop: 397 ns, 1.21× the fastest +HMAC-SHA256, 1350 B, ring on nixos2: 3.19 µs, 1.14× the fastest +HMAC-SHA256, 1350 B, ring on kixtop: 502 ns, 1.00× the fastest +HMAC-SHA256, 1350 B, ring on ovh-iad: 5.16 µs, 1.07× the fastest +HMAC-SHA256, 1350 B, ring on ovh-sea: 4.97 µs, 1.15× the fastest +HMAC-SHA256, 1350 B, RustCrypto + dalek on nixos: 728 ns, 1.05× the fastest +HMAC-SHA256, 1350 B, RustCrypto + dalek on desktop: 356 ns, 1.08× the fastest +HMAC-SHA256, 1350 B, RustCrypto + dalek on nixos2: 5.80 µs, 2.08× the fastest +HMAC-SHA256, 1350 B, RustCrypto + dalek on kixtop: 545 ns, 1.08× the fastest +HMAC-SHA256, 1350 B, RustCrypto + dalek on ovh-iad: 9.61 µs, 1.99× the fastest +HMAC-SHA256, 1350 B, RustCrypto + dalek on ovh-sea: 8.95 µs, 2.08× the fastest +HMAC-SHA256, 1350 B, graviola on nixos: 731 ns, 1.06× the fastest +HMAC-SHA256, 1350 B, graviola on desktop: 358 ns, 1.09× the fastest +HMAC-SHA256, 1350 B, graviola on nixos2: 7.05 µs, 2.53× the fastest +HMAC-SHA256, 1350 B, graviola on kixtop: 562 ns, 1.12× the fastest +HMAC-SHA256, 1350 B, libcrux on nixos: 4.39 µs, 6.34× the fastest; verified: HACL*'s F* proof of Hacl.HMAC's compute_sha2_256, compiled to Rust by an unverified step +✓ +HMAC-SHA256, 1350 B, libcrux on desktop: 2.68 µs, 8.15× the fastest; verified: HACL*'s F* proof of Hacl.HMAC's compute_sha2_256, compiled to Rust by an unverified step +✓ +HMAC-SHA256, 1350 B, libcrux on nixos2: 6.02 µs, 2.16× the fastest; verified: HACL*'s F* proof of Hacl.HMAC's compute_sha2_256, compiled to Rust by an unverified step +✓ +HMAC-SHA256, 1350 B, libcrux on kixtop: 2.80 µs, 5.57× the fastest; verified: HACL*'s F* proof of Hacl.HMAC's compute_sha2_256, compiled to Rust by an unverified step +✓ +HMAC-SHA256, 1350 B, libcrux on ovh-iad: 9.65 µs, 2.00× the fastest; verified: HACL*'s F* proof of Hacl.HMAC's compute_sha2_256, compiled to Rust by an unverified step +✓ +HMAC-SHA256, 1350 B, libcrux on ovh-sea: 9.24 µs, 2.14× the fastest; verified: HACL*'s F* proof of Hacl.HMAC's compute_sha2_256, compiled to Rust by an unverified step +✓ +HMAC-SHA256, 1350 B, OpenSSL on nixos: 3.11 µs, 4.50× the fastest +HMAC-SHA256, 1350 B, OpenSSL on desktop: 1.81 µs, 5.51× the fastest +HMAC-SHA256, 1350 B, OpenSSL on nixos2: 5.94 µs, 2.13× the fastest +HMAC-SHA256, 1350 B, OpenSSL on kixtop: 2.41 µs, 4.80× the fastest +HMAC-SHA256, 1350 B, OpenSSL on ovh-iad: 9.44 µs, 1.96× the fastest +HMAC-SHA256, 1350 B, OpenSSL on ovh-sea: 9.08 µs, 2.11× the fastest HKDF-SHA256 extract and expand HKDF-SHA256 extract and expand, rind on nixos: 257 ns, 1.00× the fastest -HKDF-SHA256 extract and expand, rind on desktop: 152 ns, 1.00× the fastest +HKDF-SHA256 extract and expand, rind on desktop: 158 ns, 1.00× the fastest HKDF-SHA256 extract and expand, rind on nixos2: 1.15 µs, 1.00× the fastest -HKDF-SHA256 extract and expand, rind on kixtop: 343 ns, 1.58× the fastest +HKDF-SHA256 extract and expand, rind on kixtop: 338 ns, 1.60× the fastest HKDF-SHA256 extract and expand, rind on ovh-iad: 2.10 µs, 1.01× the fastest HKDF-SHA256 extract and expand, rind on ovh-sea: 1.70 µs, 1.00× the fastest -HKDF-SHA256 extract and expand, aws-lc-rs on nixos: 369 ns, 1.44× the fastest -HKDF-SHA256 extract and expand, aws-lc-rs on desktop: 288 ns, 1.90× the fastest -HKDF-SHA256 extract and expand, aws-lc-rs on nixos2: 1.44 µs, 1.25× the fastest -HKDF-SHA256 extract and expand, aws-lc-rs on kixtop: 330 ns, 1.52× the fastest -HKDF-SHA256 extract and expand, aws-lc-rs on ovh-iad: 2.36 µs, 1.13× the fastest -HKDF-SHA256 extract and expand, aws-lc-rs on ovh-sea: 2.01 µs, 1.18× the fastest -HKDF-SHA256 extract and expand, ring on nixos: 399 ns, 1.55× the fastest -HKDF-SHA256 extract and expand, ring on desktop: 305 ns, 2.01× the fastest -HKDF-SHA256 extract and expand, ring on nixos2: 1.31 µs, 1.14× the fastest -HKDF-SHA256 extract and expand, ring on kixtop: 274 ns, 1.26× the fastest -HKDF-SHA256 extract and expand, ring on ovh-iad: 2.08 µs, 1.00× the fastest -HKDF-SHA256 extract and expand, ring on ovh-sea: 1.85 µs, 1.09× the fastest -HKDF-SHA256 extract and expand, RustCrypto + dalek on nixos: 309 ns, 1.20× the fastest -HKDF-SHA256 extract and expand, RustCrypto + dalek on desktop: 223 ns, 1.47× the fastest -HKDF-SHA256 extract and expand, RustCrypto + dalek on nixos2: 1.98 µs, 1.72× the fastest -HKDF-SHA256 extract and expand, RustCrypto + dalek on kixtop: 218 ns, 1.00× the fastest -HKDF-SHA256 extract and expand, RustCrypto + dalek on ovh-iad: 3.39 µs, 1.63× the fastest -HKDF-SHA256 extract and expand, RustCrypto + dalek on ovh-sea: 3.01 µs, 1.77× the fastest -HKDF-SHA256 extract and expand, libcrux on nixos: 1.37 µs, 5.34× the fastest; verified: HACL*'s F* proof of Hacl.HKDF's extract_sha2_256 and expand_sha2_256, compiled to Rust by an unverified step -✓ -HKDF-SHA256 extract and expand, libcrux on desktop: 965 ns, 6.36× the fastest; verified: HACL*'s F* proof of Hacl.HKDF's extract_sha2_256 and expand_sha2_256, compiled to Rust by an unverified step -✓ -HKDF-SHA256 extract and expand, libcrux on nixos2: 2.04 µs, 1.77× the fastest; verified: HACL*'s F* proof of Hacl.HKDF's extract_sha2_256 and expand_sha2_256, compiled to Rust by an unverified step -✓ -HKDF-SHA256 extract and expand, libcrux on kixtop: 942 ns, 4.32× the fastest; verified: HACL*'s F* proof of Hacl.HKDF's extract_sha2_256 and expand_sha2_256, compiled to Rust by an unverified step -✓ -HKDF-SHA256 extract and expand, libcrux on ovh-iad: 3.73 µs, 1.80× the fastest; verified: HACL*'s F* proof of Hacl.HKDF's extract_sha2_256 and expand_sha2_256, compiled to Rust by an unverified step -✓ -HKDF-SHA256 extract and expand, libcrux on ovh-sea: 3.08 µs, 1.81× the fastest; verified: HACL*'s F* proof of Hacl.HKDF's extract_sha2_256 and expand_sha2_256, compiled to Rust by an unverified step -✓ -HKDF-SHA256 extract and expand, OpenSSL on nixos: 2.72 µs, 10.57× the fastest -HKDF-SHA256 extract and expand, OpenSSL on desktop: 1.76 µs, 11.57× the fastest -HKDF-SHA256 extract and expand, OpenSSL on nixos2: 4.33 µs, 3.76× the fastest -HKDF-SHA256 extract and expand, OpenSSL on kixtop: 2.14 µs, 9.84× the fastest -HKDF-SHA256 extract and expand, OpenSSL on ovh-iad: 10.10 µs, 4.86× the fastest -HKDF-SHA256 extract and expand, OpenSSL on ovh-sea: 6.80 µs, 3.99× the fastest +HKDF-SHA256 extract and expand, rind (DIT held) on kixtop: 226 ns, 1.07× the fastest +HKDF-SHA256 extract and expand, aws-lc-rs on nixos: 369 ns, 1.44× the fastest +HKDF-SHA256 extract and expand, aws-lc-rs on desktop: 285 ns, 1.80× the fastest +HKDF-SHA256 extract and expand, aws-lc-rs on nixos2: 1.44 µs, 1.25× the fastest +HKDF-SHA256 extract and expand, aws-lc-rs on kixtop: 330 ns, 1.56× the fastest +HKDF-SHA256 extract and expand, aws-lc-rs on ovh-iad: 2.36 µs, 1.13× the fastest +HKDF-SHA256 extract and expand, aws-lc-rs on ovh-sea: 2.01 µs, 1.18× the fastest +HKDF-SHA256 extract and expand, ring on nixos: 399 ns, 1.55× the fastest +HKDF-SHA256 extract and expand, ring on desktop: 303 ns, 1.92× the fastest +HKDF-SHA256 extract and expand, ring on nixos2: 1.31 µs, 1.14× the fastest +HKDF-SHA256 extract and expand, ring on kixtop: 273 ns, 1.29× the fastest +HKDF-SHA256 extract and expand, ring on ovh-iad: 2.08 µs, 1.00× the fastest +HKDF-SHA256 extract and expand, ring on ovh-sea: 1.85 µs, 1.09× the fastest +HKDF-SHA256 extract and expand, RustCrypto + dalek on nixos: 309 ns, 1.20× the fastest +HKDF-SHA256 extract and expand, RustCrypto + dalek on desktop: 223 ns, 1.41× the fastest +HKDF-SHA256 extract and expand, RustCrypto + dalek on nixos2: 1.98 µs, 1.72× the fastest +HKDF-SHA256 extract and expand, RustCrypto + dalek on kixtop: 212 ns, 1.00× the fastest +HKDF-SHA256 extract and expand, RustCrypto + dalek on ovh-iad: 3.39 µs, 1.63× the fastest +HKDF-SHA256 extract and expand, RustCrypto + dalek on ovh-sea: 3.01 µs, 1.77× the fastest +HKDF-SHA256 extract and expand, libcrux on nixos: 1.37 µs, 5.34× the fastest; verified: HACL*'s F* proof of Hacl.HKDF's extract_sha2_256 and expand_sha2_256, compiled to Rust by an unverified step +✓ +HKDF-SHA256 extract and expand, libcrux on desktop: 965 ns, 6.12× the fastest; verified: HACL*'s F* proof of Hacl.HKDF's extract_sha2_256 and expand_sha2_256, compiled to Rust by an unverified step +✓ +HKDF-SHA256 extract and expand, libcrux on nixos2: 2.04 µs, 1.77× the fastest; verified: HACL*'s F* proof of Hacl.HKDF's extract_sha2_256 and expand_sha2_256, compiled to Rust by an unverified step +✓ +HKDF-SHA256 extract and expand, libcrux on kixtop: 936 ns, 4.42× the fastest; verified: HACL*'s F* proof of Hacl.HKDF's extract_sha2_256 and expand_sha2_256, compiled to Rust by an unverified step +✓ +HKDF-SHA256 extract and expand, libcrux on ovh-iad: 3.73 µs, 1.80× the fastest; verified: HACL*'s F* proof of Hacl.HKDF's extract_sha2_256 and expand_sha2_256, compiled to Rust by an unverified step +✓ +HKDF-SHA256 extract and expand, libcrux on ovh-sea: 3.08 µs, 1.81× the fastest; verified: HACL*'s F* proof of Hacl.HKDF's extract_sha2_256 and expand_sha2_256, compiled to Rust by an unverified step +✓ +HKDF-SHA256 extract and expand, OpenSSL on nixos: 2.72 µs, 10.57× the fastest +HKDF-SHA256 extract and expand, OpenSSL on desktop: 1.72 µs, 10.92× the fastest +HKDF-SHA256 extract and expand, OpenSSL on nixos2: 4.33 µs, 3.76× the fastest +HKDF-SHA256 extract and expand, OpenSSL on kixtop: 2.16 µs, 10.20× the fastest +HKDF-SHA256 extract and expand, OpenSSL on ovh-iad: 10.10 µs, 4.86× the fastest +HKDF-SHA256 extract and expand, OpenSSL on ovh-sea: 6.80 µs, 3.99× the fastest HKDF-SHA256 expand HKDF-SHA256 expand, rind on nixos: 89 ns, 1.00× the fastest -HKDF-SHA256 expand, rind on desktop: 47 ns, 1.00× the fastest +HKDF-SHA256 expand, rind on desktop: 66 ns, 1.00× the fastest HKDF-SHA256 expand, rind on nixos2: 300 ns, 1.00× the fastest -HKDF-SHA256 expand, rind on kixtop: 109 ns, 1.55× the fastest +HKDF-SHA256 expand, rind on kixtop: 107 ns, 1.56× the fastest HKDF-SHA256 expand, rind on ovh-iad: 540 ns, 1.00× the fastest HKDF-SHA256 expand, rind on ovh-sea: 464 ns, 1.00× the fastest -HKDF-SHA256 expand, aws-lc-rs on nixos: 179 ns, 2.02× the fastest -HKDF-SHA256 expand, aws-lc-rs on desktop: 126 ns, 2.70× the fastest -HKDF-SHA256 expand, aws-lc-rs on nixos2: 636 ns, 2.12× the fastest -HKDF-SHA256 expand, aws-lc-rs on kixtop: 154 ns, 2.20× the fastest -HKDF-SHA256 expand, aws-lc-rs on ovh-iad: 1.23 µs, 2.29× the fastest -HKDF-SHA256 expand, aws-lc-rs on ovh-sea: 973 ns, 2.10× the fastest -HKDF-SHA256 expand, ring on nixos: 142 ns, 1.60× the fastest -HKDF-SHA256 expand, ring on desktop: 122 ns, 2.63× the fastest -HKDF-SHA256 expand, ring on nixos2: 337 ns, 1.12× the fastest -HKDF-SHA256 expand, ring on kixtop: 94 ns, 1.33× the fastest -HKDF-SHA256 expand, ring on ovh-iad: 651 ns, 1.21× the fastest -HKDF-SHA256 expand, ring on ovh-sea: 508 ns, 1.09× the fastest -HKDF-SHA256 expand, RustCrypto + dalek on nixos: 103 ns, 1.16× the fastest -HKDF-SHA256 expand, RustCrypto + dalek on desktop: 85 ns, 1.83× the fastest -HKDF-SHA256 expand, RustCrypto + dalek on nixos2: 512 ns, 1.71× the fastest -HKDF-SHA256 expand, RustCrypto + dalek on kixtop: 70 ns, 1.00× the fastest -HKDF-SHA256 expand, RustCrypto + dalek on ovh-iad: 887 ns, 1.64× the fastest -HKDF-SHA256 expand, RustCrypto + dalek on ovh-sea: 773 ns, 1.67× the fastest -HKDF-SHA256 expand, libcrux on nixos: 714 ns, 8.06× the fastest; verified: HACL*'s F* proof of Hacl.HKDF's extract_sha2_256 and expand_sha2_256, compiled to Rust by an unverified step -✓ -HKDF-SHA256 expand, libcrux on desktop: 484 ns, 10.38× the fastest; verified: HACL*'s F* proof of Hacl.HKDF's extract_sha2_256 and expand_sha2_256, compiled to Rust by an unverified step -✓ -HKDF-SHA256 expand, libcrux on nixos2: 1.01 µs, 3.37× the fastest; verified: HACL*'s F* proof of Hacl.HKDF's extract_sha2_256 and expand_sha2_256, compiled to Rust by an unverified step -✓ -HKDF-SHA256 expand, libcrux on kixtop: 481 ns, 6.86× the fastest; verified: HACL*'s F* proof of Hacl.HKDF's extract_sha2_256 and expand_sha2_256, compiled to Rust by an unverified step -✓ -HKDF-SHA256 expand, libcrux on ovh-iad: 1.77 µs, 3.28× the fastest; verified: HACL*'s F* proof of Hacl.HKDF's extract_sha2_256 and expand_sha2_256, compiled to Rust by an unverified step -✓ -HKDF-SHA256 expand, libcrux on ovh-sea: 1.58 µs, 3.41× the fastest; verified: HACL*'s F* proof of Hacl.HKDF's extract_sha2_256 and expand_sha2_256, compiled to Rust by an unverified step -✓ -HKDF-SHA256 expand, OpenSSL on nixos: 2.00 µs, 22.59× the fastest -HKDF-SHA256 expand, OpenSSL on desktop: 1.25 µs, 26.79× the fastest -HKDF-SHA256 expand, OpenSSL on nixos2: 2.87 µs, 9.58× the fastest -HKDF-SHA256 expand, OpenSSL on kixtop: 1.54 µs, 21.93× the fastest -HKDF-SHA256 expand, OpenSSL on ovh-iad: 6.74 µs, 12.48× the fastest -HKDF-SHA256 expand, OpenSSL on ovh-sea: 4.62 µs, 9.94× the fastest +HKDF-SHA256 expand, rind (DIT held) on kixtop: 74 ns, 1.08× the fastest +HKDF-SHA256 expand, aws-lc-rs on nixos: 179 ns, 2.02× the fastest +HKDF-SHA256 expand, aws-lc-rs on desktop: 124 ns, 1.88× the fastest +HKDF-SHA256 expand, aws-lc-rs on nixos2: 636 ns, 2.12× the fastest +HKDF-SHA256 expand, aws-lc-rs on kixtop: 154 ns, 2.23× the fastest +HKDF-SHA256 expand, aws-lc-rs on ovh-iad: 1.23 µs, 2.29× the fastest +HKDF-SHA256 expand, aws-lc-rs on ovh-sea: 973 ns, 2.10× the fastest +HKDF-SHA256 expand, ring on nixos: 142 ns, 1.60× the fastest +HKDF-SHA256 expand, ring on desktop: 120 ns, 1.82× the fastest +HKDF-SHA256 expand, ring on nixos2: 337 ns, 1.12× the fastest +HKDF-SHA256 expand, ring on kixtop: 93 ns, 1.35× the fastest +HKDF-SHA256 expand, ring on ovh-iad: 651 ns, 1.21× the fastest +HKDF-SHA256 expand, ring on ovh-sea: 508 ns, 1.09× the fastest +HKDF-SHA256 expand, RustCrypto + dalek on nixos: 103 ns, 1.16× the fastest +HKDF-SHA256 expand, RustCrypto + dalek on desktop: 84 ns, 1.27× the fastest +HKDF-SHA256 expand, RustCrypto + dalek on nixos2: 512 ns, 1.71× the fastest +HKDF-SHA256 expand, RustCrypto + dalek on kixtop: 69 ns, 1.00× the fastest +HKDF-SHA256 expand, RustCrypto + dalek on ovh-iad: 887 ns, 1.64× the fastest +HKDF-SHA256 expand, RustCrypto + dalek on ovh-sea: 773 ns, 1.67× the fastest +HKDF-SHA256 expand, libcrux on nixos: 714 ns, 8.06× the fastest; verified: HACL*'s F* proof of Hacl.HKDF's extract_sha2_256 and expand_sha2_256, compiled to Rust by an unverified step +✓ +HKDF-SHA256 expand, libcrux on desktop: 480 ns, 7.26× the fastest; verified: HACL*'s F* proof of Hacl.HKDF's extract_sha2_256 and expand_sha2_256, compiled to Rust by an unverified step +✓ +HKDF-SHA256 expand, libcrux on nixos2: 1.01 µs, 3.37× the fastest; verified: HACL*'s F* proof of Hacl.HKDF's extract_sha2_256 and expand_sha2_256, compiled to Rust by an unverified step +✓ +HKDF-SHA256 expand, libcrux on kixtop: 481 ns, 7.00× the fastest; verified: HACL*'s F* proof of Hacl.HKDF's extract_sha2_256 and expand_sha2_256, compiled to Rust by an unverified step +✓ +HKDF-SHA256 expand, libcrux on ovh-iad: 1.77 µs, 3.28× the fastest; verified: HACL*'s F* proof of Hacl.HKDF's extract_sha2_256 and expand_sha2_256, compiled to Rust by an unverified step +✓ +HKDF-SHA256 expand, libcrux on ovh-sea: 1.58 µs, 3.41× the fastest; verified: HACL*'s F* proof of Hacl.HKDF's extract_sha2_256 and expand_sha2_256, compiled to Rust by an unverified step +✓ +HKDF-SHA256 expand, OpenSSL on nixos: 2.00 µs, 22.59× the fastest +HKDF-SHA256 expand, OpenSSL on desktop: 1.23 µs, 18.65× the fastest +HKDF-SHA256 expand, OpenSSL on nixos2: 2.87 µs, 9.58× the fastest +HKDF-SHA256 expand, OpenSSL on kixtop: 1.55 µs, 22.51× the fastest +HKDF-SHA256 expand, OpenSSL on ovh-iad: 6.74 µs, 12.48× the fastest +HKDF-SHA256 expand, OpenSSL on ovh-sea: 4.62 µs, 9.94× the fastest RSA - + RSA-2048 PKCS#1 sign RSA-2048 PKCS#1 sign, rind on nixos: 523.17 µs, 1.10× the fastest -RSA-2048 PKCS#1 sign, rind on desktop: 348.43 µs, 1.02× the fastest +RSA-2048 PKCS#1 sign, rind on desktop: 341.49 µs, 1.02× the fastest RSA-2048 PKCS#1 sign, rind on nixos2: 447.43 µs, 1.03× the fastest -RSA-2048 PKCS#1 sign, rind on kixtop: 275.12 µs, 1.00× the fastest +RSA-2048 PKCS#1 sign, rind on kixtop: 275.40 µs, 1.00× the fastest RSA-2048 PKCS#1 sign, rind on ovh-iad: 762.79 µs, 1.00× the fastest RSA-2048 PKCS#1 sign, rind on ovh-sea: 740.76 µs, 1.00× the fastest -RSA-2048 PKCS#1 sign, aws-lc-rs on nixos: 532.39 µs, 1.12× the fastest -RSA-2048 PKCS#1 sign, aws-lc-rs on desktop: 349.47 µs, 1.02× the fastest -RSA-2048 PKCS#1 sign, aws-lc-rs on nixos2: 448.68 µs, 1.03× the fastest -RSA-2048 PKCS#1 sign, aws-lc-rs on kixtop: 285.95 µs, 1.04× the fastest -RSA-2048 PKCS#1 sign, aws-lc-rs on ovh-iad: 796.90 µs, 1.04× the fastest -RSA-2048 PKCS#1 sign, aws-lc-rs on ovh-sea: 779.05 µs, 1.05× the fastest -RSA-2048 PKCS#1 sign, ring on nixos: 523.12 µs, 1.10× the fastest -RSA-2048 PKCS#1 sign, ring on desktop: 341.11 µs, 1.00× the fastest -RSA-2048 PKCS#1 sign, ring on nixos2: 434.47 µs, 1.00× the fastest -RSA-2048 PKCS#1 sign, ring on kixtop: 322.84 µs, 1.17× the fastest -RSA-2048 PKCS#1 sign, ring on ovh-iad: 1.05 ms, 1.38× the fastest -RSA-2048 PKCS#1 sign, ring on ovh-sea: 982.45 µs, 1.33× the fastest -RSA-2048 PKCS#1 sign, RustCrypto + dalek on nixos: 1.26 ms, 2.66× the fastest -RSA-2048 PKCS#1 sign, RustCrypto + dalek on desktop: 588.67 µs, 1.73× the fastest -RSA-2048 PKCS#1 sign, RustCrypto + dalek on nixos2: 1.14 ms, 2.63× the fastest -RSA-2048 PKCS#1 sign, RustCrypto + dalek on kixtop: 586.34 µs, 2.13× the fastest -RSA-2048 PKCS#1 sign, RustCrypto + dalek on ovh-iad: 1.83 ms, 2.40× the fastest -RSA-2048 PKCS#1 sign, RustCrypto + dalek on ovh-sea: 1.78 ms, 2.40× the fastest -RSA-2048 PKCS#1 sign, graviola on nixos: 474.44 µs, 1.00× the fastest -RSA-2048 PKCS#1 sign, graviola on desktop: 343.91 µs, 1.01× the fastest -RSA-2048 PKCS#1 sign, graviola on nixos2: 445.92 µs, 1.03× the fastest -RSA-2048 PKCS#1 sign, graviola on kixtop: 556.70 µs, 2.02× the fastest -RSA-2048 PKCS#1 sign, OpenSSL on nixos: 520.25 µs, 1.10× the fastest -RSA-2048 PKCS#1 sign, OpenSSL on desktop: 397.72 µs, 1.17× the fastest -RSA-2048 PKCS#1 sign, OpenSSL on nixos2: 453.81 µs, 1.04× the fastest -RSA-2048 PKCS#1 sign, OpenSSL on kixtop: 341.31 µs, 1.24× the fastest -RSA-2048 PKCS#1 sign, OpenSSL on ovh-iad: 846.94 µs, 1.11× the fastest -RSA-2048 PKCS#1 sign, OpenSSL on ovh-sea: 777.23 µs, 1.05× the fastest +RSA-2048 PKCS#1 sign, aws-lc-rs on nixos: 532.39 µs, 1.12× the fastest +RSA-2048 PKCS#1 sign, aws-lc-rs on desktop: 344.24 µs, 1.02× the fastest +RSA-2048 PKCS#1 sign, aws-lc-rs on nixos2: 448.68 µs, 1.03× the fastest +RSA-2048 PKCS#1 sign, aws-lc-rs on kixtop: 283.82 µs, 1.03× the fastest +RSA-2048 PKCS#1 sign, aws-lc-rs on ovh-iad: 796.90 µs, 1.04× the fastest +RSA-2048 PKCS#1 sign, aws-lc-rs on ovh-sea: 779.05 µs, 1.05× the fastest +RSA-2048 PKCS#1 sign, ring on nixos: 523.12 µs, 1.10× the fastest +RSA-2048 PKCS#1 sign, ring on desktop: 336.10 µs, 1.00× the fastest +RSA-2048 PKCS#1 sign, ring on nixos2: 434.47 µs, 1.00× the fastest +RSA-2048 PKCS#1 sign, ring on kixtop: 323.02 µs, 1.17× the fastest +RSA-2048 PKCS#1 sign, ring on ovh-iad: 1.05 ms, 1.38× the fastest +RSA-2048 PKCS#1 sign, ring on ovh-sea: 982.45 µs, 1.33× the fastest +RSA-2048 PKCS#1 sign, RustCrypto + dalek on nixos: 1.26 ms, 2.66× the fastest +RSA-2048 PKCS#1 sign, RustCrypto + dalek on desktop: 580.18 µs, 1.73× the fastest +RSA-2048 PKCS#1 sign, RustCrypto + dalek on nixos2: 1.14 ms, 2.63× the fastest +RSA-2048 PKCS#1 sign, RustCrypto + dalek on kixtop: 588.22 µs, 2.14× the fastest +RSA-2048 PKCS#1 sign, RustCrypto + dalek on ovh-iad: 1.83 ms, 2.40× the fastest +RSA-2048 PKCS#1 sign, RustCrypto + dalek on ovh-sea: 1.78 ms, 2.40× the fastest +RSA-2048 PKCS#1 sign, graviola on nixos: 474.44 µs, 1.00× the fastest +RSA-2048 PKCS#1 sign, graviola on desktop: 343.75 µs, 1.02× the fastest +RSA-2048 PKCS#1 sign, graviola on nixos2: 445.92 µs, 1.03× the fastest +RSA-2048 PKCS#1 sign, graviola on kixtop: 551.44 µs, 2.00× the fastest +RSA-2048 PKCS#1 sign, OpenSSL on nixos: 520.25 µs, 1.10× the fastest +RSA-2048 PKCS#1 sign, OpenSSL on desktop: 393.45 µs, 1.17× the fastest +RSA-2048 PKCS#1 sign, OpenSSL on nixos2: 453.81 µs, 1.04× the fastest +RSA-2048 PKCS#1 sign, OpenSSL on kixtop: 340.40 µs, 1.24× the fastest +RSA-2048 PKCS#1 sign, OpenSSL on ovh-iad: 846.94 µs, 1.11× the fastest +RSA-2048 PKCS#1 sign, OpenSSL on ovh-sea: 777.23 µs, 1.05× the fastest RSA-2048 PKCS#1 verify RSA-2048 PKCS#1 verify, rind on nixos: 12.28 µs, 1.00× the fastest -RSA-2048 PKCS#1 verify, rind on desktop: 8.97 µs, 1.00× the fastest +RSA-2048 PKCS#1 verify, rind on desktop: 8.92 µs, 1.00× the fastest RSA-2048 PKCS#1 verify, rind on nixos2: 12.88 µs, 1.00× the fastest -RSA-2048 PKCS#1 verify, rind on kixtop: 8.38 µs, 1.00× the fastest +RSA-2048 PKCS#1 verify, rind on kixtop: 8.41 µs, 1.00× the fastest RSA-2048 PKCS#1 verify, rind on ovh-iad: 30.35 µs, 1.00× the fastest RSA-2048 PKCS#1 verify, rind on ovh-sea: 29.50 µs, 1.00× the fastest -RSA-2048 PKCS#1 verify, aws-lc-rs on nixos: 14.60 µs, 1.19× the fastest -RSA-2048 PKCS#1 verify, aws-lc-rs on desktop: 10.86 µs, 1.21× the fastest -RSA-2048 PKCS#1 verify, aws-lc-rs on nixos2: 15.88 µs, 1.23× the fastest -RSA-2048 PKCS#1 verify, aws-lc-rs on kixtop: 9.48 µs, 1.13× the fastest -RSA-2048 PKCS#1 verify, aws-lc-rs on ovh-iad: 35.39 µs, 1.17× the fastest -RSA-2048 PKCS#1 verify, aws-lc-rs on ovh-sea: 32.95 µs, 1.12× the fastest -RSA-2048 PKCS#1 verify, ring on nixos: 16.56 µs, 1.35× the fastest -RSA-2048 PKCS#1 verify, ring on desktop: 12.70 µs, 1.41× the fastest -RSA-2048 PKCS#1 verify, ring on nixos2: 16.51 µs, 1.28× the fastest -RSA-2048 PKCS#1 verify, ring on kixtop: 11.05 µs, 1.32× the fastest -RSA-2048 PKCS#1 verify, ring on ovh-iad: 39.13 µs, 1.29× the fastest -RSA-2048 PKCS#1 verify, ring on ovh-sea: 37.72 µs, 1.28× the fastest -RSA-2048 PKCS#1 verify, RustCrypto + dalek on nixos: 54.06 µs, 4.40× the fastest -RSA-2048 PKCS#1 verify, RustCrypto + dalek on desktop: 29.41 µs, 3.28× the fastest -RSA-2048 PKCS#1 verify, RustCrypto + dalek on nixos2: 57.81 µs, 4.49× the fastest -RSA-2048 PKCS#1 verify, RustCrypto + dalek on kixtop: 30.77 µs, 3.67× the fastest -RSA-2048 PKCS#1 verify, RustCrypto + dalek on ovh-iad: 92.51 µs, 3.05× the fastest -RSA-2048 PKCS#1 verify, RustCrypto + dalek on ovh-sea: 88.47 µs, 3.00× the fastest -RSA-2048 PKCS#1 verify, graviola on nixos: 19.25 µs, 1.57× the fastest -RSA-2048 PKCS#1 verify, graviola on desktop: 14.06 µs, 1.57× the fastest -RSA-2048 PKCS#1 verify, graviola on nixos2: 19.05 µs, 1.48× the fastest -RSA-2048 PKCS#1 verify, graviola on kixtop: 18.51 µs, 2.21× the fastest -RSA-2048 PKCS#1 verify, OpenSSL on nixos: 23.59 µs, 1.92× the fastest -RSA-2048 PKCS#1 verify, OpenSSL on desktop: 15.59 µs, 1.74× the fastest -RSA-2048 PKCS#1 verify, OpenSSL on nixos2: 24.54 µs, 1.91× the fastest -RSA-2048 PKCS#1 verify, OpenSSL on kixtop: 16.66 µs, 1.99× the fastest -RSA-2048 PKCS#1 verify, OpenSSL on ovh-iad: 50.31 µs, 1.66× the fastest -RSA-2048 PKCS#1 verify, OpenSSL on ovh-sea: 47.30 µs, 1.60× the fastest +RSA-2048 PKCS#1 verify, aws-lc-rs on nixos: 14.60 µs, 1.19× the fastest +RSA-2048 PKCS#1 verify, aws-lc-rs on desktop: 10.96 µs, 1.23× the fastest +RSA-2048 PKCS#1 verify, aws-lc-rs on nixos2: 15.88 µs, 1.23× the fastest +RSA-2048 PKCS#1 verify, aws-lc-rs on kixtop: 9.54 µs, 1.13× the fastest +RSA-2048 PKCS#1 verify, aws-lc-rs on ovh-iad: 35.39 µs, 1.17× the fastest +RSA-2048 PKCS#1 verify, aws-lc-rs on ovh-sea: 32.95 µs, 1.12× the fastest +RSA-2048 PKCS#1 verify, ring on nixos: 16.56 µs, 1.35× the fastest +RSA-2048 PKCS#1 verify, ring on desktop: 12.78 µs, 1.43× the fastest +RSA-2048 PKCS#1 verify, ring on nixos2: 16.51 µs, 1.28× the fastest +RSA-2048 PKCS#1 verify, ring on kixtop: 11.01 µs, 1.31× the fastest +RSA-2048 PKCS#1 verify, ring on ovh-iad: 39.13 µs, 1.29× the fastest +RSA-2048 PKCS#1 verify, ring on ovh-sea: 37.72 µs, 1.28× the fastest +RSA-2048 PKCS#1 verify, RustCrypto + dalek on nixos: 54.06 µs, 4.40× the fastest +RSA-2048 PKCS#1 verify, RustCrypto + dalek on desktop: 29.01 µs, 3.25× the fastest +RSA-2048 PKCS#1 verify, RustCrypto + dalek on nixos2: 57.81 µs, 4.49× the fastest +RSA-2048 PKCS#1 verify, RustCrypto + dalek on kixtop: 30.97 µs, 3.68× the fastest +RSA-2048 PKCS#1 verify, RustCrypto + dalek on ovh-iad: 92.51 µs, 3.05× the fastest +RSA-2048 PKCS#1 verify, RustCrypto + dalek on ovh-sea: 88.47 µs, 3.00× the fastest +RSA-2048 PKCS#1 verify, graviola on nixos: 19.25 µs, 1.57× the fastest +RSA-2048 PKCS#1 verify, graviola on desktop: 13.98 µs, 1.57× the fastest +RSA-2048 PKCS#1 verify, graviola on nixos2: 19.05 µs, 1.48× the fastest +RSA-2048 PKCS#1 verify, graviola on kixtop: 18.43 µs, 2.19× the fastest +RSA-2048 PKCS#1 verify, OpenSSL on nixos: 23.59 µs, 1.92× the fastest +RSA-2048 PKCS#1 verify, OpenSSL on desktop: 15.51 µs, 1.74× the fastest +RSA-2048 PKCS#1 verify, OpenSSL on nixos2: 24.54 µs, 1.91× the fastest +RSA-2048 PKCS#1 verify, OpenSSL on kixtop: 16.81 µs, 2.00× the fastest +RSA-2048 PKCS#1 verify, OpenSSL on ovh-iad: 50.31 µs, 1.66× the fastest +RSA-2048 PKCS#1 verify, OpenSSL on ovh-sea: 47.30 µs, 1.60× the fastest RSA-2048 PSS sign RSA-2048 PSS sign, rind on nixos: 424.30 µs, 1.00× the fastest -RSA-2048 PSS sign, rind on desktop: 346.52 µs, 1.01× the fastest +RSA-2048 PSS sign, rind on desktop: 341.45 µs, 1.00× the fastest RSA-2048 PSS sign, rind on nixos2: 445.92 µs, 1.02× the fastest -RSA-2048 PSS sign, rind on kixtop: 275.29 µs, 1.00× the fastest +RSA-2048 PSS sign, rind on kixtop: 275.82 µs, 1.00× the fastest RSA-2048 PSS sign, rind on ovh-iad: 819.13 µs, 1.01× the fastest RSA-2048 PSS sign, rind on ovh-sea: 743.95 µs, 1.00× the fastest -RSA-2048 PSS sign, aws-lc-rs on nixos: 481.00 µs, 1.13× the fastest -RSA-2048 PSS sign, aws-lc-rs on desktop: 350.45 µs, 1.03× the fastest -RSA-2048 PSS sign, aws-lc-rs on nixos2: 461.87 µs, 1.06× the fastest -RSA-2048 PSS sign, aws-lc-rs on kixtop: 288.58 µs, 1.05× the fastest -RSA-2048 PSS sign, aws-lc-rs on ovh-iad: 807.21 µs, 1.00× the fastest -RSA-2048 PSS sign, aws-lc-rs on ovh-sea: 772.15 µs, 1.04× the fastest -RSA-2048 PSS sign, ring on nixos: 471.53 µs, 1.11× the fastest -RSA-2048 PSS sign, ring on desktop: 341.45 µs, 1.00× the fastest -RSA-2048 PSS sign, ring on nixos2: 437.28 µs, 1.00× the fastest -RSA-2048 PSS sign, ring on kixtop: 324.86 µs, 1.18× the fastest -RSA-2048 PSS sign, ring on ovh-iad: 1.04 ms, 1.29× the fastest -RSA-2048 PSS sign, ring on ovh-sea: 987.95 µs, 1.33× the fastest -RSA-2048 PSS sign, RustCrypto + dalek on nixos: 1.06 ms, 2.50× the fastest -RSA-2048 PSS sign, RustCrypto + dalek on desktop: 588.33 µs, 1.72× the fastest -RSA-2048 PSS sign, RustCrypto + dalek on nixos2: 1.15 ms, 2.63× the fastest -RSA-2048 PSS sign, RustCrypto + dalek on kixtop: 588.38 µs, 2.14× the fastest -RSA-2048 PSS sign, RustCrypto + dalek on ovh-iad: 1.91 ms, 2.36× the fastest -RSA-2048 PSS sign, RustCrypto + dalek on ovh-sea: 1.81 ms, 2.44× the fastest -RSA-2048 PSS sign, graviola on nixos: 448.54 µs, 1.06× the fastest -RSA-2048 PSS sign, graviola on desktop: 342.67 µs, 1.00× the fastest -RSA-2048 PSS sign, graviola on nixos2: 450.24 µs, 1.03× the fastest -RSA-2048 PSS sign, graviola on kixtop: 558.57 µs, 2.03× the fastest -RSA-2048 PSS sign, libcrux on nixos: 5.86 ms, 13.81× the fastest; verified: HACL*'s F* proof of Hacl.RSAPSS's rsapss_skey_sign and rsapss_pkey_verify, signing without the CRT, compiled to Rust by an unverified step -✓ -RSA-2048 PSS sign, libcrux on desktop: 4.10 ms, 12.00× the fastest; verified: HACL*'s F* proof of Hacl.RSAPSS's rsapss_skey_sign and rsapss_pkey_verify, signing without the CRT, compiled to Rust by an unverified step -✓ -RSA-2048 PSS sign, libcrux on nixos2: 7.22 ms, 16.51× the fastest; verified: HACL*'s F* proof of Hacl.RSAPSS's rsapss_skey_sign and rsapss_pkey_verify, signing without the CRT, compiled to Rust by an unverified step -✓ -RSA-2048 PSS sign, libcrux on kixtop: 4.48 ms, 16.28× the fastest; verified: HACL*'s F* proof of Hacl.RSAPSS's rsapss_skey_sign and rsapss_pkey_verify, signing without the CRT, compiled to Rust by an unverified step -✓ -RSA-2048 PSS sign, libcrux on ovh-iad: 11.56 ms, 14.33× the fastest; verified: HACL*'s F* proof of Hacl.RSAPSS's rsapss_skey_sign and rsapss_pkey_verify, signing without the CRT, compiled to Rust by an unverified step -✓ -RSA-2048 PSS sign, libcrux on ovh-sea: 10.86 ms, 14.60× the fastest; verified: HACL*'s F* proof of Hacl.RSAPSS's rsapss_skey_sign and rsapss_pkey_verify, signing without the CRT, compiled to Rust by an unverified step -✓ -RSA-2048 PSS sign, OpenSSL on nixos: 474.99 µs, 1.12× the fastest -RSA-2048 PSS sign, OpenSSL on desktop: 395.81 µs, 1.16× the fastest -RSA-2048 PSS sign, OpenSSL on nixos2: 456.55 µs, 1.04× the fastest -RSA-2048 PSS sign, OpenSSL on kixtop: 342.61 µs, 1.24× the fastest -RSA-2048 PSS sign, OpenSSL on ovh-iad: 830.22 µs, 1.03× the fastest -RSA-2048 PSS sign, OpenSSL on ovh-sea: 796.27 µs, 1.07× the fastest +RSA-2048 PSS sign, aws-lc-rs on nixos: 481.00 µs, 1.13× the fastest +RSA-2048 PSS sign, aws-lc-rs on desktop: 346.55 µs, 1.01× the fastest +RSA-2048 PSS sign, aws-lc-rs on nixos2: 461.87 µs, 1.06× the fastest +RSA-2048 PSS sign, aws-lc-rs on kixtop: 285.36 µs, 1.03× the fastest +RSA-2048 PSS sign, aws-lc-rs on ovh-iad: 807.21 µs, 1.00× the fastest +RSA-2048 PSS sign, aws-lc-rs on ovh-sea: 772.15 µs, 1.04× the fastest +RSA-2048 PSS sign, ring on nixos: 471.53 µs, 1.11× the fastest +RSA-2048 PSS sign, ring on desktop: 342.49 µs, 1.00× the fastest +RSA-2048 PSS sign, ring on nixos2: 437.28 µs, 1.00× the fastest +RSA-2048 PSS sign, ring on kixtop: 323.17 µs, 1.17× the fastest +RSA-2048 PSS sign, ring on ovh-iad: 1.04 ms, 1.29× the fastest +RSA-2048 PSS sign, ring on ovh-sea: 987.95 µs, 1.33× the fastest +RSA-2048 PSS sign, RustCrypto + dalek on nixos: 1.06 ms, 2.50× the fastest +RSA-2048 PSS sign, RustCrypto + dalek on desktop: 581.16 µs, 1.70× the fastest +RSA-2048 PSS sign, RustCrypto + dalek on nixos2: 1.15 ms, 2.63× the fastest +RSA-2048 PSS sign, RustCrypto + dalek on kixtop: 589.96 µs, 2.14× the fastest +RSA-2048 PSS sign, RustCrypto + dalek on ovh-iad: 1.91 ms, 2.36× the fastest +RSA-2048 PSS sign, RustCrypto + dalek on ovh-sea: 1.81 ms, 2.44× the fastest +RSA-2048 PSS sign, graviola on nixos: 448.54 µs, 1.06× the fastest +RSA-2048 PSS sign, graviola on desktop: 344.58 µs, 1.01× the fastest +RSA-2048 PSS sign, graviola on nixos2: 450.24 µs, 1.03× the fastest +RSA-2048 PSS sign, graviola on kixtop: 551.49 µs, 2.00× the fastest +RSA-2048 PSS sign, libcrux on nixos: 5.86 ms, 13.81× the fastest; verified: HACL*'s F* proof of Hacl.RSAPSS's rsapss_skey_sign and rsapss_pkey_verify, signing without the CRT, compiled to Rust by an unverified step +✓ +RSA-2048 PSS sign, libcrux on desktop: 3.69 ms, 10.79× the fastest; verified: HACL*'s F* proof of Hacl.RSAPSS's rsapss_skey_sign and rsapss_pkey_verify, signing without the CRT, compiled to Rust by an unverified step +✓ +RSA-2048 PSS sign, libcrux on nixos2: 7.22 ms, 16.51× the fastest; verified: HACL*'s F* proof of Hacl.RSAPSS's rsapss_skey_sign and rsapss_pkey_verify, signing without the CRT, compiled to Rust by an unverified step +✓ +RSA-2048 PSS sign, libcrux on kixtop: 4.47 ms, 16.20× the fastest; verified: HACL*'s F* proof of Hacl.RSAPSS's rsapss_skey_sign and rsapss_pkey_verify, signing without the CRT, compiled to Rust by an unverified step +✓ +RSA-2048 PSS sign, libcrux on ovh-iad: 11.56 ms, 14.33× the fastest; verified: HACL*'s F* proof of Hacl.RSAPSS's rsapss_skey_sign and rsapss_pkey_verify, signing without the CRT, compiled to Rust by an unverified step +✓ +RSA-2048 PSS sign, libcrux on ovh-sea: 10.86 ms, 14.60× the fastest; verified: HACL*'s F* proof of Hacl.RSAPSS's rsapss_skey_sign and rsapss_pkey_verify, signing without the CRT, compiled to Rust by an unverified step +✓ +RSA-2048 PSS sign, OpenSSL on nixos: 474.99 µs, 1.12× the fastest +RSA-2048 PSS sign, OpenSSL on desktop: 390.44 µs, 1.14× the fastest +RSA-2048 PSS sign, OpenSSL on nixos2: 456.55 µs, 1.04× the fastest +RSA-2048 PSS sign, OpenSSL on kixtop: 341.81 µs, 1.24× the fastest +RSA-2048 PSS sign, OpenSSL on ovh-iad: 830.22 µs, 1.03× the fastest +RSA-2048 PSS sign, OpenSSL on ovh-sea: 796.27 µs, 1.07× the fastest RSA-2048 PSS verify RSA-2048 PSS verify, rind on nixos: 12.67 µs, 1.00× the fastest -RSA-2048 PSS verify, rind on desktop: 9.18 µs, 1.00× the fastest +RSA-2048 PSS verify, rind on desktop: 9.15 µs, 1.00× the fastest RSA-2048 PSS verify, rind on nixos2: 14.36 µs, 1.00× the fastest -RSA-2048 PSS verify, rind on kixtop: 8.71 µs, 1.00× the fastest +RSA-2048 PSS verify, rind on kixtop: 8.74 µs, 1.00× the fastest RSA-2048 PSS verify, rind on ovh-iad: 35.06 µs, 1.00× the fastest RSA-2048 PSS verify, rind on ovh-sea: 31.99 µs, 1.00× the fastest -RSA-2048 PSS verify, aws-lc-rs on nixos: 15.94 µs, 1.26× the fastest -RSA-2048 PSS verify, aws-lc-rs on desktop: 11.17 µs, 1.22× the fastest -RSA-2048 PSS verify, aws-lc-rs on nixos2: 17.01 µs, 1.18× the fastest -RSA-2048 PSS verify, aws-lc-rs on kixtop: 9.84 µs, 1.13× the fastest -RSA-2048 PSS verify, aws-lc-rs on ovh-iad: 36.78 µs, 1.05× the fastest -RSA-2048 PSS verify, aws-lc-rs on ovh-sea: 35.48 µs, 1.11× the fastest -RSA-2048 PSS verify, ring on nixos: 18.03 µs, 1.42× the fastest -RSA-2048 PSS verify, ring on desktop: 13.31 µs, 1.45× the fastest -RSA-2048 PSS verify, ring on nixos2: 18.22 µs, 1.27× the fastest -RSA-2048 PSS verify, ring on kixtop: 11.48 µs, 1.32× the fastest -RSA-2048 PSS verify, ring on ovh-iad: 42.45 µs, 1.21× the fastest -RSA-2048 PSS verify, ring on ovh-sea: 40.12 µs, 1.25× the fastest -RSA-2048 PSS verify, RustCrypto + dalek on nixos: 64.70 µs, 5.11× the fastest -RSA-2048 PSS verify, RustCrypto + dalek on desktop: 35.62 µs, 3.88× the fastest -RSA-2048 PSS verify, RustCrypto + dalek on nixos2: 70.02 µs, 4.88× the fastest -RSA-2048 PSS verify, RustCrypto + dalek on kixtop: 39.26 µs, 4.51× the fastest -RSA-2048 PSS verify, RustCrypto + dalek on ovh-iad: 117.27 µs, 3.35× the fastest -RSA-2048 PSS verify, RustCrypto + dalek on ovh-sea: 106.80 µs, 3.34× the fastest -RSA-2048 PSS verify, graviola on nixos: 19.63 µs, 1.55× the fastest -RSA-2048 PSS verify, graviola on desktop: 14.44 µs, 1.57× the fastest -RSA-2048 PSS verify, graviola on nixos2: 21.85 µs, 1.52× the fastest -RSA-2048 PSS verify, graviola on kixtop: 18.79 µs, 2.16× the fastest -RSA-2048 PSS verify, libcrux on nixos: 312.23 µs, 24.64× the fastest; verified: HACL*'s F* proof of Hacl.RSAPSS's rsapss_skey_sign and rsapss_pkey_verify, signing without the CRT, compiled to Rust by an unverified step -✓ -RSA-2048 PSS verify, libcrux on desktop: 252.13 µs, 27.46× the fastest; verified: HACL*'s F* proof of Hacl.RSAPSS's rsapss_skey_sign and rsapss_pkey_verify, signing without the CRT, compiled to Rust by an unverified step -✓ -RSA-2048 PSS verify, libcrux on nixos2: 377.87 µs, 26.32× the fastest; verified: HACL*'s F* proof of Hacl.RSAPSS's rsapss_skey_sign and rsapss_pkey_verify, signing without the CRT, compiled to Rust by an unverified step -✓ -RSA-2048 PSS verify, libcrux on kixtop: 299.96 µs, 34.44× the fastest; verified: HACL*'s F* proof of Hacl.RSAPSS's rsapss_skey_sign and rsapss_pkey_verify, signing without the CRT, compiled to Rust by an unverified step -✓ -RSA-2048 PSS verify, libcrux on ovh-iad: 636.67 µs, 18.16× the fastest; verified: HACL*'s F* proof of Hacl.RSAPSS's rsapss_skey_sign and rsapss_pkey_verify, signing without the CRT, compiled to Rust by an unverified step -✓ -RSA-2048 PSS verify, libcrux on ovh-sea: 583.13 µs, 18.23× the fastest; verified: HACL*'s F* proof of Hacl.RSAPSS's rsapss_skey_sign and rsapss_pkey_verify, signing without the CRT, compiled to Rust by an unverified step -✓ -RSA-2048 PSS verify, OpenSSL on nixos: 23.60 µs, 1.86× the fastest -RSA-2048 PSS verify, OpenSSL on desktop: 16.36 µs, 1.78× the fastest -RSA-2048 PSS verify, OpenSSL on nixos2: 27.16 µs, 1.89× the fastest -RSA-2048 PSS verify, OpenSSL on kixtop: 17.44 µs, 2.00× the fastest -RSA-2048 PSS verify, OpenSSL on ovh-iad: 55.18 µs, 1.57× the fastest -RSA-2048 PSS verify, OpenSSL on ovh-sea: 50.44 µs, 1.58× the fastest +RSA-2048 PSS verify, aws-lc-rs on nixos: 15.94 µs, 1.26× the fastest +RSA-2048 PSS verify, aws-lc-rs on desktop: 11.16 µs, 1.22× the fastest +RSA-2048 PSS verify, aws-lc-rs on nixos2: 17.01 µs, 1.18× the fastest +RSA-2048 PSS verify, aws-lc-rs on kixtop: 9.89 µs, 1.13× the fastest +RSA-2048 PSS verify, aws-lc-rs on ovh-iad: 36.78 µs, 1.05× the fastest +RSA-2048 PSS verify, aws-lc-rs on ovh-sea: 35.48 µs, 1.11× the fastest +RSA-2048 PSS verify, ring on nixos: 18.03 µs, 1.42× the fastest +RSA-2048 PSS verify, ring on desktop: 13.19 µs, 1.44× the fastest +RSA-2048 PSS verify, ring on nixos2: 18.22 µs, 1.27× the fastest +RSA-2048 PSS verify, ring on kixtop: 11.43 µs, 1.31× the fastest +RSA-2048 PSS verify, ring on ovh-iad: 42.45 µs, 1.21× the fastest +RSA-2048 PSS verify, ring on ovh-sea: 40.12 µs, 1.25× the fastest +RSA-2048 PSS verify, RustCrypto + dalek on nixos: 64.70 µs, 5.11× the fastest +RSA-2048 PSS verify, RustCrypto + dalek on desktop: 35.27 µs, 3.86× the fastest +RSA-2048 PSS verify, RustCrypto + dalek on nixos2: 70.02 µs, 4.88× the fastest +RSA-2048 PSS verify, RustCrypto + dalek on kixtop: 38.88 µs, 4.45× the fastest +RSA-2048 PSS verify, RustCrypto + dalek on ovh-iad: 117.27 µs, 3.35× the fastest +RSA-2048 PSS verify, RustCrypto + dalek on ovh-sea: 106.80 µs, 3.34× the fastest +RSA-2048 PSS verify, graviola on nixos: 19.63 µs, 1.55× the fastest +RSA-2048 PSS verify, graviola on desktop: 14.30 µs, 1.56× the fastest +RSA-2048 PSS verify, graviola on nixos2: 21.85 µs, 1.52× the fastest +RSA-2048 PSS verify, graviola on kixtop: 18.77 µs, 2.15× the fastest +RSA-2048 PSS verify, libcrux on nixos: 312.23 µs, 24.64× the fastest; verified: HACL*'s F* proof of Hacl.RSAPSS's rsapss_skey_sign and rsapss_pkey_verify, signing without the CRT, compiled to Rust by an unverified step +✓ +RSA-2048 PSS verify, libcrux on desktop: 251.91 µs, 27.53× the fastest; verified: HACL*'s F* proof of Hacl.RSAPSS's rsapss_skey_sign and rsapss_pkey_verify, signing without the CRT, compiled to Rust by an unverified step +✓ +RSA-2048 PSS verify, libcrux on nixos2: 377.87 µs, 26.32× the fastest; verified: HACL*'s F* proof of Hacl.RSAPSS's rsapss_skey_sign and rsapss_pkey_verify, signing without the CRT, compiled to Rust by an unverified step +✓ +RSA-2048 PSS verify, libcrux on kixtop: 297.72 µs, 34.06× the fastest; verified: HACL*'s F* proof of Hacl.RSAPSS's rsapss_skey_sign and rsapss_pkey_verify, signing without the CRT, compiled to Rust by an unverified step +✓ +RSA-2048 PSS verify, libcrux on ovh-iad: 636.67 µs, 18.16× the fastest; verified: HACL*'s F* proof of Hacl.RSAPSS's rsapss_skey_sign and rsapss_pkey_verify, signing without the CRT, compiled to Rust by an unverified step +✓ +RSA-2048 PSS verify, libcrux on ovh-sea: 583.13 µs, 18.23× the fastest; verified: HACL*'s F* proof of Hacl.RSAPSS's rsapss_skey_sign and rsapss_pkey_verify, signing without the CRT, compiled to Rust by an unverified step +✓ +RSA-2048 PSS verify, OpenSSL on nixos: 23.60 µs, 1.86× the fastest +RSA-2048 PSS verify, OpenSSL on desktop: 16.25 µs, 1.78× the fastest +RSA-2048 PSS verify, OpenSSL on nixos2: 27.16 µs, 1.89× the fastest +RSA-2048 PSS verify, OpenSSL on kixtop: 17.47 µs, 2.00× the fastest +RSA-2048 PSS verify, OpenSSL on ovh-iad: 55.18 µs, 1.57× the fastest +RSA-2048 PSS verify, OpenSSL on ovh-sea: 50.44 µs, 1.58× the fastest ML-KEM - + ML-KEM-768 key generation ML-KEM-768 key generation, rind on nixos: 8.43 µs, 1.00× the fastest -ML-KEM-768 key generation, rind on desktop: 6.45 µs, 1.00× the fastest +ML-KEM-768 key generation, rind on desktop: 6.35 µs, 1.00× the fastest ML-KEM-768 key generation, rind on nixos2: 10.24 µs, 1.00× the fastest -ML-KEM-768 key generation, rind on kixtop: 6.20 µs, 1.00× the fastest +ML-KEM-768 key generation, rind on kixtop: 6.11 µs, 1.00× the fastest ML-KEM-768 key generation, rind on ovh-iad: 18.79 µs, 1.00× the fastest ML-KEM-768 key generation, rind on ovh-sea: 17.44 µs, 1.00× the fastest -ML-KEM-768 key generation, aws-lc-rs on nixos: 9.41 µs, 1.12× the fastest -ML-KEM-768 key generation, aws-lc-rs on desktop: 8.27 µs, 1.28× the fastest -ML-KEM-768 key generation, aws-lc-rs on nixos2: 18.44 µs, 1.80× the fastest -ML-KEM-768 key generation, aws-lc-rs on kixtop: 7.46 µs, 1.20× the fastest -ML-KEM-768 key generation, aws-lc-rs on ovh-iad: 25.06 µs, 1.33× the fastest -ML-KEM-768 key generation, aws-lc-rs on ovh-sea: 23.21 µs, 1.33× the fastest -ML-KEM-768 key generation, RustCrypto + dalek on nixos: 60.18 µs, 7.14× the fastest -ML-KEM-768 key generation, RustCrypto + dalek on desktop: 40.26 µs, 6.24× the fastest -ML-KEM-768 key generation, RustCrypto + dalek on nixos2: 59.97 µs, 5.86× the fastest -ML-KEM-768 key generation, RustCrypto + dalek on kixtop: 26.57 µs, 4.29× the fastest -ML-KEM-768 key generation, RustCrypto + dalek on ovh-iad: 100.59 µs, 5.35× the fastest -ML-KEM-768 key generation, RustCrypto + dalek on ovh-sea: 92.84 µs, 5.32× the fastest -ML-KEM-768 key generation, graviola on nixos: 9.28 µs, 1.10× the fastest -ML-KEM-768 key generation, graviola on desktop: 7.67 µs, 1.19× the fastest -ML-KEM-768 key generation, graviola on nixos2: 10.41 µs, 1.02× the fastest -ML-KEM-768 key generation, graviola on kixtop: 6.22 µs, 1.00× the fastest -ML-KEM-768 key generation, libcrux on nixos: 18.15 µs, 2.15× the fastest -ML-KEM-768 key generation, libcrux on desktop: 15.15 µs, 2.35× the fastest -ML-KEM-768 key generation, libcrux on nixos2: 20.05 µs, 1.96× the fastest -ML-KEM-768 key generation, libcrux on kixtop: 12.01 µs, 1.94× the fastest -ML-KEM-768 key generation, libcrux on ovh-iad: 36.95 µs, 1.97× the fastest -ML-KEM-768 key generation, libcrux on ovh-sea: 34.54 µs, 1.98× the fastest -ML-KEM-768 key generation, OpenSSL on nixos: 26.82 µs, 3.18× the fastest -ML-KEM-768 key generation, OpenSSL on desktop: 19.80 µs, 3.07× the fastest -ML-KEM-768 key generation, OpenSSL on nixos2: 40.63 µs, 3.97× the fastest -ML-KEM-768 key generation, OpenSSL on kixtop: 25.06 µs, 4.04× the fastest -ML-KEM-768 key generation, OpenSSL on ovh-iad: 69.54 µs, 3.70× the fastest -ML-KEM-768 key generation, OpenSSL on ovh-sea: 62.78 µs, 3.60× the fastest +ML-KEM-768 key generation, aws-lc-rs on nixos: 9.41 µs, 1.12× the fastest +ML-KEM-768 key generation, aws-lc-rs on desktop: 8.13 µs, 1.28× the fastest +ML-KEM-768 key generation, aws-lc-rs on nixos2: 18.44 µs, 1.80× the fastest +ML-KEM-768 key generation, aws-lc-rs on kixtop: 7.31 µs, 1.20× the fastest +ML-KEM-768 key generation, aws-lc-rs on ovh-iad: 25.06 µs, 1.33× the fastest +ML-KEM-768 key generation, aws-lc-rs on ovh-sea: 23.21 µs, 1.33× the fastest +ML-KEM-768 key generation, RustCrypto + dalek on nixos: 60.18 µs, 7.14× the fastest +ML-KEM-768 key generation, RustCrypto + dalek on desktop: 39.63 µs, 6.24× the fastest +ML-KEM-768 key generation, RustCrypto + dalek on nixos2: 59.97 µs, 5.86× the fastest +ML-KEM-768 key generation, RustCrypto + dalek on kixtop: 26.29 µs, 4.30× the fastest +ML-KEM-768 key generation, RustCrypto + dalek on ovh-iad: 100.59 µs, 5.35× the fastest +ML-KEM-768 key generation, RustCrypto + dalek on ovh-sea: 92.84 µs, 5.32× the fastest +ML-KEM-768 key generation, graviola on nixos: 9.28 µs, 1.10× the fastest +ML-KEM-768 key generation, graviola on desktop: 7.37 µs, 1.16× the fastest +ML-KEM-768 key generation, graviola on nixos2: 10.41 µs, 1.02× the fastest +ML-KEM-768 key generation, graviola on kixtop: 6.11 µs, 1.00× the fastest +ML-KEM-768 key generation, libcrux on nixos: 18.15 µs, 2.15× the fastest +ML-KEM-768 key generation, libcrux on desktop: 15.02 µs, 2.37× the fastest +ML-KEM-768 key generation, libcrux on nixos2: 20.05 µs, 1.96× the fastest +ML-KEM-768 key generation, libcrux on kixtop: 11.77 µs, 1.93× the fastest +ML-KEM-768 key generation, libcrux on ovh-iad: 36.95 µs, 1.97× the fastest +ML-KEM-768 key generation, libcrux on ovh-sea: 34.54 µs, 1.98× the fastest +ML-KEM-768 key generation, OpenSSL on nixos: 26.82 µs, 3.18× the fastest +ML-KEM-768 key generation, OpenSSL on desktop: 19.81 µs, 3.12× the fastest +ML-KEM-768 key generation, OpenSSL on nixos2: 40.63 µs, 3.97× the fastest +ML-KEM-768 key generation, OpenSSL on kixtop: 24.90 µs, 4.08× the fastest +ML-KEM-768 key generation, OpenSSL on ovh-iad: 69.54 µs, 3.70× the fastest +ML-KEM-768 key generation, OpenSSL on ovh-sea: 62.78 µs, 3.60× the fastest ML-KEM-768 encapsulate ML-KEM-768 encapsulate, rind on nixos: 8.53 µs, 1.00× the fastest -ML-KEM-768 encapsulate, rind on desktop: 6.65 µs, 1.00× the fastest +ML-KEM-768 encapsulate, rind on desktop: 6.50 µs, 1.00× the fastest ML-KEM-768 encapsulate, rind on nixos2: 10.61 µs, 1.00× the fastest -ML-KEM-768 encapsulate, rind on kixtop: 6.84 µs, 1.07× the fastest +ML-KEM-768 encapsulate, rind on kixtop: 6.77 µs, 1.07× the fastest ML-KEM-768 encapsulate, rind on ovh-iad: 18.94 µs, 1.00× the fastest ML-KEM-768 encapsulate, rind on ovh-sea: 18.36 µs, 1.00× the fastest -ML-KEM-768 encapsulate, aws-lc-rs on nixos: 10.41 µs, 1.22× the fastest -ML-KEM-768 encapsulate, aws-lc-rs on desktop: 8.68 µs, 1.31× the fastest -ML-KEM-768 encapsulate, aws-lc-rs on nixos2: 18.73 µs, 1.76× the fastest -ML-KEM-768 encapsulate, aws-lc-rs on kixtop: 8.01 µs, 1.25× the fastest -ML-KEM-768 encapsulate, aws-lc-rs on ovh-iad: 25.08 µs, 1.32× the fastest -ML-KEM-768 encapsulate, aws-lc-rs on ovh-sea: 23.94 µs, 1.30× the fastest -ML-KEM-768 encapsulate, RustCrypto + dalek on nixos: 72.03 µs, 8.44× the fastest -ML-KEM-768 encapsulate, RustCrypto + dalek on desktop: 41.71 µs, 6.27× the fastest -ML-KEM-768 encapsulate, RustCrypto + dalek on nixos2: 67.03 µs, 6.31× the fastest -ML-KEM-768 encapsulate, RustCrypto + dalek on kixtop: 27.77 µs, 4.34× the fastest -ML-KEM-768 encapsulate, RustCrypto + dalek on ovh-iad: 104.24 µs, 5.50× the fastest -ML-KEM-768 encapsulate, RustCrypto + dalek on ovh-sea: 101.88 µs, 5.55× the fastest -ML-KEM-768 encapsulate, graviola on nixos: 10.95 µs, 1.28× the fastest -ML-KEM-768 encapsulate, graviola on desktop: 9.11 µs, 1.37× the fastest -ML-KEM-768 encapsulate, graviola on nixos2: 11.12 µs, 1.05× the fastest -ML-KEM-768 encapsulate, graviola on kixtop: 6.40 µs, 1.00× the fastest -ML-KEM-768 encapsulate, libcrux on nixos: 16.03 µs, 1.88× the fastest -ML-KEM-768 encapsulate, libcrux on desktop: 12.94 µs, 1.94× the fastest -ML-KEM-768 encapsulate, libcrux on nixos2: 18.13 µs, 1.71× the fastest -ML-KEM-768 encapsulate, libcrux on kixtop: 9.39 µs, 1.47× the fastest -ML-KEM-768 encapsulate, libcrux on ovh-iad: 32.18 µs, 1.70× the fastest -ML-KEM-768 encapsulate, libcrux on ovh-sea: 31.26 µs, 1.70× the fastest -ML-KEM-768 encapsulate, OpenSSL on nixos: 30.02 µs, 3.52× the fastest -ML-KEM-768 encapsulate, OpenSSL on desktop: 18.77 µs, 2.82× the fastest -ML-KEM-768 encapsulate, OpenSSL on nixos2: 41.18 µs, 3.88× the fastest -ML-KEM-768 encapsulate, OpenSSL on kixtop: 24.07 µs, 3.76× the fastest -ML-KEM-768 encapsulate, OpenSSL on ovh-iad: 66.54 µs, 3.51× the fastest -ML-KEM-768 encapsulate, OpenSSL on ovh-sea: 63.41 µs, 3.45× the fastest +ML-KEM-768 encapsulate, aws-lc-rs on nixos: 10.41 µs, 1.22× the fastest +ML-KEM-768 encapsulate, aws-lc-rs on desktop: 8.48 µs, 1.30× the fastest +ML-KEM-768 encapsulate, aws-lc-rs on nixos2: 18.73 µs, 1.76× the fastest +ML-KEM-768 encapsulate, aws-lc-rs on kixtop: 7.91 µs, 1.25× the fastest +ML-KEM-768 encapsulate, aws-lc-rs on ovh-iad: 25.08 µs, 1.32× the fastest +ML-KEM-768 encapsulate, aws-lc-rs on ovh-sea: 23.94 µs, 1.30× the fastest +ML-KEM-768 encapsulate, RustCrypto + dalek on nixos: 72.03 µs, 8.44× the fastest +ML-KEM-768 encapsulate, RustCrypto + dalek on desktop: 41.38 µs, 6.36× the fastest +ML-KEM-768 encapsulate, RustCrypto + dalek on nixos2: 67.03 µs, 6.31× the fastest +ML-KEM-768 encapsulate, RustCrypto + dalek on kixtop: 27.87 µs, 4.41× the fastest +ML-KEM-768 encapsulate, RustCrypto + dalek on ovh-iad: 104.24 µs, 5.50× the fastest +ML-KEM-768 encapsulate, RustCrypto + dalek on ovh-sea: 101.88 µs, 5.55× the fastest +ML-KEM-768 encapsulate, graviola on nixos: 10.95 µs, 1.28× the fastest +ML-KEM-768 encapsulate, graviola on desktop: 9.00 µs, 1.38× the fastest +ML-KEM-768 encapsulate, graviola on nixos2: 11.12 µs, 1.05× the fastest +ML-KEM-768 encapsulate, graviola on kixtop: 6.32 µs, 1.00× the fastest +ML-KEM-768 encapsulate, libcrux on nixos: 16.03 µs, 1.88× the fastest +ML-KEM-768 encapsulate, libcrux on desktop: 12.80 µs, 1.97× the fastest +ML-KEM-768 encapsulate, libcrux on nixos2: 18.13 µs, 1.71× the fastest +ML-KEM-768 encapsulate, libcrux on kixtop: 9.25 µs, 1.46× the fastest +ML-KEM-768 encapsulate, libcrux on ovh-iad: 32.18 µs, 1.70× the fastest +ML-KEM-768 encapsulate, libcrux on ovh-sea: 31.26 µs, 1.70× the fastest +ML-KEM-768 encapsulate, OpenSSL on nixos: 30.02 µs, 3.52× the fastest +ML-KEM-768 encapsulate, OpenSSL on desktop: 18.77 µs, 2.89× the fastest +ML-KEM-768 encapsulate, OpenSSL on nixos2: 41.18 µs, 3.88× the fastest +ML-KEM-768 encapsulate, OpenSSL on kixtop: 23.89 µs, 3.78× the fastest +ML-KEM-768 encapsulate, OpenSSL on ovh-iad: 66.54 µs, 3.51× the fastest +ML-KEM-768 encapsulate, OpenSSL on ovh-sea: 63.41 µs, 3.45× the fastest ML-KEM-768 decapsulate ML-KEM-768 decapsulate, rind on nixos: 6.07 µs, 1.00× the fastest -ML-KEM-768 decapsulate, rind on desktop: 4.69 µs, 1.00× the fastest +ML-KEM-768 decapsulate, rind on desktop: 4.64 µs, 1.00× the fastest ML-KEM-768 decapsulate, rind on nixos2: 7.07 µs, 1.00× the fastest -ML-KEM-768 decapsulate, rind on kixtop: 4.17 µs, 1.03× the fastest +ML-KEM-768 decapsulate, rind on kixtop: 4.12 µs, 1.02× the fastest ML-KEM-768 decapsulate, rind on ovh-iad: 12.89 µs, 1.00× the fastest ML-KEM-768 decapsulate, rind on ovh-sea: 12.15 µs, 1.00× the fastest -ML-KEM-768 decapsulate, aws-lc-rs on nixos: 11.96 µs, 1.97× the fastest -ML-KEM-768 decapsulate, aws-lc-rs on desktop: 9.02 µs, 1.92× the fastest -ML-KEM-768 decapsulate, aws-lc-rs on nixos2: 16.01 µs, 2.26× the fastest -ML-KEM-768 decapsulate, aws-lc-rs on kixtop: 7.75 µs, 1.91× the fastest -ML-KEM-768 decapsulate, aws-lc-rs on ovh-iad: 28.78 µs, 2.23× the fastest -ML-KEM-768 decapsulate, aws-lc-rs on ovh-sea: 27.57 µs, 2.27× the fastest -ML-KEM-768 decapsulate, RustCrypto + dalek on nixos: 95.17 µs, 15.68× the fastest -ML-KEM-768 decapsulate, RustCrypto + dalek on desktop: 54.19 µs, 11.55× the fastest -ML-KEM-768 decapsulate, RustCrypto + dalek on nixos2: 84.37 µs, 11.93× the fastest -ML-KEM-768 decapsulate, RustCrypto + dalek on kixtop: 34.06 µs, 8.41× the fastest -ML-KEM-768 decapsulate, RustCrypto + dalek on ovh-iad: 148.48 µs, 11.52× the fastest -ML-KEM-768 decapsulate, RustCrypto + dalek on ovh-sea: 130.57 µs, 10.75× the fastest -ML-KEM-768 decapsulate, graviola on nixos: 7.72 µs, 1.27× the fastest -ML-KEM-768 decapsulate, graviola on desktop: 6.59 µs, 1.41× the fastest -ML-KEM-768 decapsulate, graviola on nixos2: 7.42 µs, 1.05× the fastest -ML-KEM-768 decapsulate, graviola on kixtop: 4.05 µs, 1.00× the fastest -ML-KEM-768 decapsulate, libcrux on nixos: 16.22 µs, 2.67× the fastest -ML-KEM-768 decapsulate, libcrux on desktop: 13.44 µs, 2.87× the fastest -ML-KEM-768 decapsulate, libcrux on nixos2: 19.04 µs, 2.69× the fastest -ML-KEM-768 decapsulate, libcrux on kixtop: 9.58 µs, 2.36× the fastest -ML-KEM-768 decapsulate, libcrux on ovh-iad: 35.04 µs, 2.72× the fastest -ML-KEM-768 decapsulate, libcrux on ovh-sea: 33.12 µs, 2.73× the fastest -ML-KEM-768 decapsulate, OpenSSL on nixos: 24.64 µs, 4.06× the fastest -ML-KEM-768 decapsulate, OpenSSL on desktop: 16.05 µs, 3.42× the fastest -ML-KEM-768 decapsulate, OpenSSL on nixos2: 31.67 µs, 4.48× the fastest -ML-KEM-768 decapsulate, OpenSSL on kixtop: 24.43 µs, 6.03× the fastest -ML-KEM-768 decapsulate, OpenSSL on ovh-iad: 49.78 µs, 3.86× the fastest -ML-KEM-768 decapsulate, OpenSSL on ovh-sea: 48.94 µs, 4.03× the fastest +ML-KEM-768 decapsulate, aws-lc-rs on nixos: 11.96 µs, 1.97× the fastest +ML-KEM-768 decapsulate, aws-lc-rs on desktop: 8.90 µs, 1.92× the fastest +ML-KEM-768 decapsulate, aws-lc-rs on nixos2: 16.01 µs, 2.26× the fastest +ML-KEM-768 decapsulate, aws-lc-rs on kixtop: 7.67 µs, 1.91× the fastest +ML-KEM-768 decapsulate, aws-lc-rs on ovh-iad: 28.78 µs, 2.23× the fastest +ML-KEM-768 decapsulate, aws-lc-rs on ovh-sea: 27.57 µs, 2.27× the fastest +ML-KEM-768 decapsulate, RustCrypto + dalek on nixos: 95.17 µs, 15.68× the fastest +ML-KEM-768 decapsulate, RustCrypto + dalek on desktop: 54.87 µs, 11.81× the fastest +ML-KEM-768 decapsulate, RustCrypto + dalek on nixos2: 84.37 µs, 11.93× the fastest +ML-KEM-768 decapsulate, RustCrypto + dalek on kixtop: 33.92 µs, 8.43× the fastest +ML-KEM-768 decapsulate, RustCrypto + dalek on ovh-iad: 148.48 µs, 11.52× the fastest +ML-KEM-768 decapsulate, RustCrypto + dalek on ovh-sea: 130.57 µs, 10.75× the fastest +ML-KEM-768 decapsulate, graviola on nixos: 7.72 µs, 1.27× the fastest +ML-KEM-768 decapsulate, graviola on desktop: 6.54 µs, 1.41× the fastest +ML-KEM-768 decapsulate, graviola on nixos2: 7.42 µs, 1.05× the fastest +ML-KEM-768 decapsulate, graviola on kixtop: 4.02 µs, 1.00× the fastest +ML-KEM-768 decapsulate, libcrux on nixos: 16.22 µs, 2.67× the fastest +ML-KEM-768 decapsulate, libcrux on desktop: 13.44 µs, 2.89× the fastest +ML-KEM-768 decapsulate, libcrux on nixos2: 19.04 µs, 2.69× the fastest +ML-KEM-768 decapsulate, libcrux on kixtop: 9.48 µs, 2.36× the fastest +ML-KEM-768 decapsulate, libcrux on ovh-iad: 35.04 µs, 2.72× the fastest +ML-KEM-768 decapsulate, libcrux on ovh-sea: 33.12 µs, 2.73× the fastest +ML-KEM-768 decapsulate, OpenSSL on nixos: 24.64 µs, 4.06× the fastest +ML-KEM-768 decapsulate, OpenSSL on desktop: 15.77 µs, 3.40× the fastest +ML-KEM-768 decapsulate, OpenSSL on nixos2: 31.67 µs, 4.48× the fastest +ML-KEM-768 decapsulate, OpenSSL on kixtop: 24.66 µs, 6.13× the fastest +ML-KEM-768 decapsulate, OpenSSL on ovh-iad: 49.78 µs, 3.86× the fastest +ML-KEM-768 decapsulate, OpenSSL on ovh-sea: 48.94 µs, 4.03× the fastest P-384 and P-521 - + P-384 ECDH P-384 ECDH, rind on nixos: 179.71 µs, 1.00× the fastest -P-384 ECDH, rind on desktop: 100.08 µs, 1.00× the fastest +P-384 ECDH, rind on desktop: 100.20 µs, 1.00× the fastest P-384 ECDH, rind on nixos2: 150.97 µs, 1.00× the fastest -P-384 ECDH, rind on kixtop: 91.49 µs, 1.00× the fastest +P-384 ECDH, rind on kixtop: 90.11 µs, 1.00× the fastest P-384 ECDH, rind on ovh-iad: 295.16 µs, 1.00× the fastest P-384 ECDH, rind on ovh-sea: 264.09 µs, 1.00× the fastest -P-384 ECDH, aws-lc-rs on nixos: 180.49 µs, 1.00× the fastest -P-384 ECDH, aws-lc-rs on desktop: 111.11 µs, 1.11× the fastest -P-384 ECDH, aws-lc-rs on nixos2: 174.62 µs, 1.16× the fastest -P-384 ECDH, aws-lc-rs on kixtop: 105.75 µs, 1.16× the fastest -P-384 ECDH, aws-lc-rs on ovh-iad: 310.31 µs, 1.05× the fastest -P-384 ECDH, aws-lc-rs on ovh-sea: 291.94 µs, 1.11× the fastest -P-384 ECDH, ring on nixos: 601.49 µs, 3.35× the fastest -P-384 ECDH, ring on desktop: 369.71 µs, 3.69× the fastest -P-384 ECDH, ring on nixos2: 645.54 µs, 4.28× the fastest -P-384 ECDH, ring on kixtop: 412.48 µs, 4.51× the fastest -P-384 ECDH, ring on ovh-iad: 1.02 ms, 3.45× the fastest -P-384 ECDH, ring on ovh-sea: 980.96 µs, 3.71× the fastest -P-384 ECDH, RustCrypto + dalek on nixos: 1.04 ms, 5.80× the fastest -P-384 ECDH, RustCrypto + dalek on desktop: 401.25 µs, 4.01× the fastest -P-384 ECDH, RustCrypto + dalek on nixos2: 769.61 µs, 5.10× the fastest -P-384 ECDH, RustCrypto + dalek on kixtop: 494.20 µs, 5.40× the fastest -P-384 ECDH, RustCrypto + dalek on ovh-iad: 1.23 ms, 4.16× the fastest -P-384 ECDH, RustCrypto + dalek on ovh-sea: 1.20 ms, 4.56× the fastest -P-384 ECDH, graviola on nixos: 302.57 µs, 1.68× the fastest -P-384 ECDH, graviola on desktop: 170.94 µs, 1.71× the fastest -P-384 ECDH, graviola on nixos2: 245.24 µs, 1.62× the fastest -P-384 ECDH, graviola on kixtop: 153.84 µs, 1.68× the fastest -P-384 ECDH, OpenSSL on nixos: 656.67 µs, 3.65× the fastest -P-384 ECDH, OpenSSL on desktop: 264.84 µs, 2.65× the fastest -P-384 ECDH, OpenSSL on nixos2: 483.50 µs, 3.20× the fastest -P-384 ECDH, OpenSSL on kixtop: 279.51 µs, 3.06× the fastest -P-384 ECDH, OpenSSL on ovh-iad: 860.17 µs, 2.91× the fastest -P-384 ECDH, OpenSSL on ovh-sea: 765.55 µs, 2.90× the fastest +P-384 ECDH, aws-lc-rs on nixos: 180.49 µs, 1.00× the fastest +P-384 ECDH, aws-lc-rs on desktop: 109.34 µs, 1.09× the fastest +P-384 ECDH, aws-lc-rs on nixos2: 174.62 µs, 1.16× the fastest +P-384 ECDH, aws-lc-rs on kixtop: 104.99 µs, 1.17× the fastest +P-384 ECDH, aws-lc-rs on ovh-iad: 310.31 µs, 1.05× the fastest +P-384 ECDH, aws-lc-rs on ovh-sea: 291.94 µs, 1.11× the fastest +P-384 ECDH, ring on nixos: 601.49 µs, 3.35× the fastest +P-384 ECDH, ring on desktop: 369.83 µs, 3.69× the fastest +P-384 ECDH, ring on nixos2: 645.54 µs, 4.28× the fastest +P-384 ECDH, ring on kixtop: 413.70 µs, 4.59× the fastest +P-384 ECDH, ring on ovh-iad: 1.02 ms, 3.45× the fastest +P-384 ECDH, ring on ovh-sea: 980.96 µs, 3.71× the fastest +P-384 ECDH, RustCrypto + dalek on nixos: 1.04 ms, 5.80× the fastest +P-384 ECDH, RustCrypto + dalek on desktop: 402.09 µs, 4.01× the fastest +P-384 ECDH, RustCrypto + dalek on nixos2: 769.61 µs, 5.10× the fastest +P-384 ECDH, RustCrypto + dalek on kixtop: 488.31 µs, 5.42× the fastest +P-384 ECDH, RustCrypto + dalek on ovh-iad: 1.23 ms, 4.16× the fastest +P-384 ECDH, RustCrypto + dalek on ovh-sea: 1.20 ms, 4.56× the fastest +P-384 ECDH, graviola on nixos: 302.57 µs, 1.68× the fastest +P-384 ECDH, graviola on desktop: 174.12 µs, 1.74× the fastest +P-384 ECDH, graviola on nixos2: 245.24 µs, 1.62× the fastest +P-384 ECDH, graviola on kixtop: 150.93 µs, 1.67× the fastest +P-384 ECDH, OpenSSL on nixos: 656.67 µs, 3.65× the fastest +P-384 ECDH, OpenSSL on desktop: 265.21 µs, 2.65× the fastest +P-384 ECDH, OpenSSL on nixos2: 483.50 µs, 3.20× the fastest +P-384 ECDH, OpenSSL on kixtop: 280.83 µs, 3.12× the fastest +P-384 ECDH, OpenSSL on ovh-iad: 860.17 µs, 2.91× the fastest +P-384 ECDH, OpenSSL on ovh-sea: 765.55 µs, 2.90× the fastest P-384 ECDSA sign P-384 ECDSA sign, rind on nixos: 53.07 µs, 1.00× the fastest -P-384 ECDSA sign, rind on desktop: 23.53 µs, 1.00× the fastest +P-384 ECDSA sign, rind on desktop: 23.48 µs, 1.00× the fastest P-384 ECDSA sign, rind on nixos2: 39.62 µs, 1.00× the fastest -P-384 ECDSA sign, rind on kixtop: 22.93 µs, 1.00× the fastest +P-384 ECDSA sign, rind on kixtop: 22.30 µs, 1.00× the fastest P-384 ECDSA sign, rind on ovh-iad: 71.60 µs, 1.00× the fastest P-384 ECDSA sign, rind on ovh-sea: 67.08 µs, 1.00× the fastest -P-384 ECDSA sign, aws-lc-rs on nixos: 97.47 µs, 1.84× the fastest -P-384 ECDSA sign, aws-lc-rs on desktop: 46.52 µs, 1.98× the fastest -P-384 ECDSA sign, aws-lc-rs on nixos2: 82.65 µs, 2.09× the fastest -P-384 ECDSA sign, aws-lc-rs on kixtop: 49.16 µs, 2.14× the fastest -P-384 ECDSA sign, aws-lc-rs on ovh-iad: 127.99 µs, 1.79× the fastest -P-384 ECDSA sign, aws-lc-rs on ovh-sea: 126.33 µs, 1.88× the fastest -P-384 ECDSA sign, ring on nixos: 474.64 µs, 8.94× the fastest -P-384 ECDSA sign, ring on desktop: 200.86 µs, 8.54× the fastest -P-384 ECDSA sign, ring on nixos2: 343.16 µs, 8.66× the fastest -P-384 ECDSA sign, ring on kixtop: 223.72 µs, 9.76× the fastest -P-384 ECDSA sign, ring on ovh-iad: 549.99 µs, 7.68× the fastest -P-384 ECDSA sign, ring on ovh-sea: 534.87 µs, 7.97× the fastest -P-384 ECDSA sign, RustCrypto + dalek on nixos: 238.31 µs, 4.49× the fastest -P-384 ECDSA sign, RustCrypto + dalek on desktop: 86.86 µs, 3.69× the fastest -P-384 ECDSA sign, RustCrypto + dalek on nixos2: 170.64 µs, 4.31× the fastest -P-384 ECDSA sign, RustCrypto + dalek on kixtop: 112.64 µs, 4.91× the fastest -P-384 ECDSA sign, RustCrypto + dalek on ovh-iad: 268.38 µs, 3.75× the fastest -P-384 ECDSA sign, RustCrypto + dalek on ovh-sea: 262.54 µs, 3.91× the fastest -P-384 ECDSA sign, graviola on nixos: 185.15 µs, 3.49× the fastest -P-384 ECDSA sign, graviola on desktop: 90.69 µs, 3.85× the fastest -P-384 ECDSA sign, graviola on nixos2: 128.64 µs, 3.25× the fastest -P-384 ECDSA sign, graviola on kixtop: 81.12 µs, 3.54× the fastest -P-384 ECDSA sign, OpenSSL on nixos: 235.52 µs, 4.44× the fastest -P-384 ECDSA sign, OpenSSL on desktop: 89.64 µs, 3.81× the fastest -P-384 ECDSA sign, OpenSSL on nixos2: 164.53 µs, 4.15× the fastest -P-384 ECDSA sign, OpenSSL on kixtop: 104.84 µs, 4.57× the fastest -P-384 ECDSA sign, OpenSSL on ovh-iad: 272.00 µs, 3.80× the fastest -P-384 ECDSA sign, OpenSSL on ovh-sea: 253.00 µs, 3.77× the fastest +P-384 ECDSA sign, aws-lc-rs on nixos: 97.47 µs, 1.84× the fastest +P-384 ECDSA sign, aws-lc-rs on desktop: 46.55 µs, 1.98× the fastest +P-384 ECDSA sign, aws-lc-rs on nixos2: 82.65 µs, 2.09× the fastest +P-384 ECDSA sign, aws-lc-rs on kixtop: 49.21 µs, 2.21× the fastest +P-384 ECDSA sign, aws-lc-rs on ovh-iad: 127.99 µs, 1.79× the fastest +P-384 ECDSA sign, aws-lc-rs on ovh-sea: 126.33 µs, 1.88× the fastest +P-384 ECDSA sign, ring on nixos: 474.64 µs, 8.94× the fastest +P-384 ECDSA sign, ring on desktop: 197.31 µs, 8.40× the fastest +P-384 ECDSA sign, ring on nixos2: 343.16 µs, 8.66× the fastest +P-384 ECDSA sign, ring on kixtop: 222.34 µs, 9.97× the fastest +P-384 ECDSA sign, ring on ovh-iad: 549.99 µs, 7.68× the fastest +P-384 ECDSA sign, ring on ovh-sea: 534.87 µs, 7.97× the fastest +P-384 ECDSA sign, RustCrypto + dalek on nixos: 238.31 µs, 4.49× the fastest +P-384 ECDSA sign, RustCrypto + dalek on desktop: 85.50 µs, 3.64× the fastest +P-384 ECDSA sign, RustCrypto + dalek on nixos2: 170.64 µs, 4.31× the fastest +P-384 ECDSA sign, RustCrypto + dalek on kixtop: 111.89 µs, 5.02× the fastest +P-384 ECDSA sign, RustCrypto + dalek on ovh-iad: 268.38 µs, 3.75× the fastest +P-384 ECDSA sign, RustCrypto + dalek on ovh-sea: 262.54 µs, 3.91× the fastest +P-384 ECDSA sign, graviola on nixos: 185.15 µs, 3.49× the fastest +P-384 ECDSA sign, graviola on desktop: 90.29 µs, 3.85× the fastest +P-384 ECDSA sign, graviola on nixos2: 128.64 µs, 3.25× the fastest +P-384 ECDSA sign, graviola on kixtop: 80.22 µs, 3.60× the fastest +P-384 ECDSA sign, OpenSSL on nixos: 235.52 µs, 4.44× the fastest +P-384 ECDSA sign, OpenSSL on desktop: 88.98 µs, 3.79× the fastest +P-384 ECDSA sign, OpenSSL on nixos2: 164.53 µs, 4.15× the fastest +P-384 ECDSA sign, OpenSSL on kixtop: 102.69 µs, 4.60× the fastest +P-384 ECDSA sign, OpenSSL on ovh-iad: 272.00 µs, 3.80× the fastest +P-384 ECDSA sign, OpenSSL on ovh-sea: 253.00 µs, 3.77× the fastest P-384 ECDSA verify P-384 ECDSA verify, rind on nixos: 157.33 µs, 1.00× the fastest -P-384 ECDSA verify, rind on desktop: 98.87 µs, 1.00× the fastest +P-384 ECDSA verify, rind on desktop: 100.10 µs, 1.00× the fastest P-384 ECDSA verify, rind on nixos2: 141.44 µs, 1.00× the fastest -P-384 ECDSA verify, rind on kixtop: 88.12 µs, 1.00× the fastest +P-384 ECDSA verify, rind on kixtop: 84.01 µs, 1.00× the fastest P-384 ECDSA verify, rind on ovh-iad: 255.43 µs, 1.00× the fastest P-384 ECDSA verify, rind on ovh-sea: 247.76 µs, 1.00× the fastest -P-384 ECDSA verify, aws-lc-rs on nixos: 199.21 µs, 1.27× the fastest -P-384 ECDSA verify, aws-lc-rs on desktop: 116.66 µs, 1.18× the fastest -P-384 ECDSA verify, aws-lc-rs on nixos2: 175.92 µs, 1.24× the fastest -P-384 ECDSA verify, aws-lc-rs on kixtop: 111.27 µs, 1.26× the fastest -P-384 ECDSA verify, aws-lc-rs on ovh-iad: 316.06 µs, 1.24× the fastest -P-384 ECDSA verify, aws-lc-rs on ovh-sea: 299.75 µs, 1.21× the fastest -P-384 ECDSA verify, ring on nixos: 727.10 µs, 4.62× the fastest -P-384 ECDSA verify, ring on desktop: 360.29 µs, 3.64× the fastest -P-384 ECDSA verify, ring on nixos2: 622.90 µs, 4.40× the fastest -P-384 ECDSA verify, ring on kixtop: 396.57 µs, 4.50× the fastest -P-384 ECDSA verify, ring on ovh-iad: 1.00 ms, 3.92× the fastest -P-384 ECDSA verify, ring on ovh-sea: 951.59 µs, 3.84× the fastest -P-384 ECDSA verify, RustCrypto + dalek on nixos: 872.06 µs, 5.54× the fastest -P-384 ECDSA verify, RustCrypto + dalek on desktop: 360.21 µs, 3.64× the fastest -P-384 ECDSA verify, RustCrypto + dalek on nixos2: 695.04 µs, 4.91× the fastest -P-384 ECDSA verify, RustCrypto + dalek on kixtop: 426.43 µs, 4.84× the fastest -P-384 ECDSA verify, RustCrypto + dalek on ovh-iad: 1.08 ms, 4.21× the fastest -P-384 ECDSA verify, RustCrypto + dalek on ovh-sea: 1.05 ms, 4.23× the fastest -P-384 ECDSA verify, graviola on nixos: 315.99 µs, 2.01× the fastest -P-384 ECDSA verify, graviola on desktop: 167.40 µs, 1.69× the fastest -P-384 ECDSA verify, graviola on nixos2: 239.41 µs, 1.69× the fastest -P-384 ECDSA verify, graviola on kixtop: 151.78 µs, 1.72× the fastest -P-384 ECDSA verify, OpenSSL on nixos: 551.89 µs, 3.51× the fastest -P-384 ECDSA verify, OpenSSL on desktop: 215.86 µs, 2.18× the fastest -P-384 ECDSA verify, OpenSSL on nixos2: 399.63 µs, 2.83× the fastest -P-384 ECDSA verify, OpenSSL on kixtop: 238.33 µs, 2.70× the fastest -P-384 ECDSA verify, OpenSSL on ovh-iad: 652.34 µs, 2.55× the fastest -P-384 ECDSA verify, OpenSSL on ovh-sea: 612.24 µs, 2.47× the fastest +P-384 ECDSA verify, aws-lc-rs on nixos: 199.21 µs, 1.27× the fastest +P-384 ECDSA verify, aws-lc-rs on desktop: 115.71 µs, 1.16× the fastest +P-384 ECDSA verify, aws-lc-rs on nixos2: 175.92 µs, 1.24× the fastest +P-384 ECDSA verify, aws-lc-rs on kixtop: 110.79 µs, 1.32× the fastest +P-384 ECDSA verify, aws-lc-rs on ovh-iad: 316.06 µs, 1.24× the fastest +P-384 ECDSA verify, aws-lc-rs on ovh-sea: 299.75 µs, 1.21× the fastest +P-384 ECDSA verify, ring on nixos: 727.10 µs, 4.62× the fastest +P-384 ECDSA verify, ring on desktop: 357.26 µs, 3.57× the fastest +P-384 ECDSA verify, ring on nixos2: 622.90 µs, 4.40× the fastest +P-384 ECDSA verify, ring on kixtop: 397.21 µs, 4.73× the fastest +P-384 ECDSA verify, ring on ovh-iad: 1.00 ms, 3.92× the fastest +P-384 ECDSA verify, ring on ovh-sea: 951.59 µs, 3.84× the fastest +P-384 ECDSA verify, RustCrypto + dalek on nixos: 872.06 µs, 5.54× the fastest +P-384 ECDSA verify, RustCrypto + dalek on desktop: 359.61 µs, 3.59× the fastest +P-384 ECDSA verify, RustCrypto + dalek on nixos2: 695.04 µs, 4.91× the fastest +P-384 ECDSA verify, RustCrypto + dalek on kixtop: 422.13 µs, 5.02× the fastest +P-384 ECDSA verify, RustCrypto + dalek on ovh-iad: 1.08 ms, 4.21× the fastest +P-384 ECDSA verify, RustCrypto + dalek on ovh-sea: 1.05 ms, 4.23× the fastest +P-384 ECDSA verify, graviola on nixos: 315.99 µs, 2.01× the fastest +P-384 ECDSA verify, graviola on desktop: 166.49 µs, 1.66× the fastest +P-384 ECDSA verify, graviola on nixos2: 239.41 µs, 1.69× the fastest +P-384 ECDSA verify, graviola on kixtop: 148.92 µs, 1.77× the fastest +P-384 ECDSA verify, OpenSSL on nixos: 551.89 µs, 3.51× the fastest +P-384 ECDSA verify, OpenSSL on desktop: 216.27 µs, 2.16× the fastest +P-384 ECDSA verify, OpenSSL on nixos2: 399.63 µs, 2.83× the fastest +P-384 ECDSA verify, OpenSSL on kixtop: 237.68 µs, 2.83× the fastest +P-384 ECDSA verify, OpenSSL on ovh-iad: 652.34 µs, 2.55× the fastest +P-384 ECDSA verify, OpenSSL on ovh-sea: 612.24 µs, 2.47× the fastest P-521 ECDH P-521 ECDH, rind on nixos: 283.91 µs, 1.00× the fastest -P-521 ECDH, rind on desktop: 160.77 µs, 1.00× the fastest +P-521 ECDH, rind on desktop: 159.57 µs, 1.00× the fastest P-521 ECDH, rind on nixos2: 233.76 µs, 1.00× the fastest -P-521 ECDH, rind on kixtop: 130.92 µs, 1.00× the fastest +P-521 ECDH, rind on kixtop: 129.82 µs, 1.00× the fastest P-521 ECDH, rind on ovh-iad: 467.34 µs, 1.00× the fastest P-521 ECDH, rind on ovh-sea: 442.81 µs, 1.00× the fastest -P-521 ECDH, aws-lc-rs on nixos: 288.17 µs, 1.01× the fastest -P-521 ECDH, aws-lc-rs on desktop: 170.98 µs, 1.06× the fastest -P-521 ECDH, aws-lc-rs on nixos2: 262.34 µs, 1.12× the fastest -P-521 ECDH, aws-lc-rs on kixtop: 143.20 µs, 1.09× the fastest -P-521 ECDH, aws-lc-rs on ovh-iad: 510.81 µs, 1.09× the fastest -P-521 ECDH, aws-lc-rs on ovh-sea: 479.78 µs, 1.08× the fastest -P-521 ECDH, RustCrypto + dalek on nixos: 868.41 µs, 3.06× the fastest -P-521 ECDH, RustCrypto + dalek on desktop: 431.17 µs, 2.68× the fastest -P-521 ECDH, RustCrypto + dalek on nixos2: 841.50 µs, 3.60× the fastest -P-521 ECDH, RustCrypto + dalek on kixtop: 397.10 µs, 3.03× the fastest -P-521 ECDH, RustCrypto + dalek on ovh-iad: 1.39 ms, 2.97× the fastest -P-521 ECDH, RustCrypto + dalek on ovh-sea: 1.19 ms, 2.68× the fastest -P-521 ECDH, OpenSSL on nixos: 505.62 µs, 1.78× the fastest -P-521 ECDH, OpenSSL on desktop: 276.21 µs, 1.72× the fastest -P-521 ECDH, OpenSSL on nixos2: 497.39 µs, 2.13× the fastest -P-521 ECDH, OpenSSL on kixtop: 247.22 µs, 1.89× the fastest -P-521 ECDH, OpenSSL on ovh-iad: 750.80 µs, 1.61× the fastest -P-521 ECDH, OpenSSL on ovh-sea: 722.01 µs, 1.63× the fastest +P-521 ECDH, aws-lc-rs on nixos: 288.17 µs, 1.01× the fastest +P-521 ECDH, aws-lc-rs on desktop: 171.50 µs, 1.07× the fastest +P-521 ECDH, aws-lc-rs on nixos2: 262.34 µs, 1.12× the fastest +P-521 ECDH, aws-lc-rs on kixtop: 142.27 µs, 1.10× the fastest +P-521 ECDH, aws-lc-rs on ovh-iad: 510.81 µs, 1.09× the fastest +P-521 ECDH, aws-lc-rs on ovh-sea: 479.78 µs, 1.08× the fastest +P-521 ECDH, RustCrypto + dalek on nixos: 868.41 µs, 3.06× the fastest +P-521 ECDH, RustCrypto + dalek on desktop: 428.27 µs, 2.68× the fastest +P-521 ECDH, RustCrypto + dalek on nixos2: 841.50 µs, 3.60× the fastest +P-521 ECDH, RustCrypto + dalek on kixtop: 396.28 µs, 3.05× the fastest +P-521 ECDH, RustCrypto + dalek on ovh-iad: 1.39 ms, 2.97× the fastest +P-521 ECDH, RustCrypto + dalek on ovh-sea: 1.19 ms, 2.68× the fastest +P-521 ECDH, OpenSSL on nixos: 505.62 µs, 1.78× the fastest +P-521 ECDH, OpenSSL on desktop: 276.64 µs, 1.73× the fastest +P-521 ECDH, OpenSSL on nixos2: 497.39 µs, 2.13× the fastest +P-521 ECDH, OpenSSL on kixtop: 247.04 µs, 1.90× the fastest +P-521 ECDH, OpenSSL on ovh-iad: 750.80 µs, 1.61× the fastest +P-521 ECDH, OpenSSL on ovh-sea: 722.01 µs, 1.63× the fastest P-521 ECDSA sign P-521 ECDSA sign, rind on nixos: 58.32 µs, 1.00× the fastest -P-521 ECDSA sign, rind on desktop: 40.56 µs, 1.00× the fastest +P-521 ECDSA sign, rind on desktop: 40.09 µs, 1.00× the fastest P-521 ECDSA sign, rind on nixos2: 64.26 µs, 1.00× the fastest -P-521 ECDSA sign, rind on kixtop: 36.32 µs, 1.00× the fastest +P-521 ECDSA sign, rind on kixtop: 36.25 µs, 1.00× the fastest P-521 ECDSA sign, rind on ovh-iad: 132.36 µs, 1.00× the fastest P-521 ECDSA sign, rind on ovh-sea: 116.50 µs, 1.00× the fastest -P-521 ECDSA sign, aws-lc-rs on nixos: 152.35 µs, 2.61× the fastest -P-521 ECDSA sign, aws-lc-rs on desktop: 89.64 µs, 2.21× the fastest -P-521 ECDSA sign, aws-lc-rs on nixos2: 158.67 µs, 2.47× the fastest -P-521 ECDSA sign, aws-lc-rs on kixtop: 84.33 µs, 2.32× the fastest -P-521 ECDSA sign, aws-lc-rs on ovh-iad: 279.63 µs, 2.11× the fastest -P-521 ECDSA sign, aws-lc-rs on ovh-sea: 256.02 µs, 2.20× the fastest -P-521 ECDSA sign, RustCrypto + dalek on nixos: 177.47 µs, 3.04× the fastest -P-521 ECDSA sign, RustCrypto + dalek on desktop: 95.29 µs, 2.35× the fastest -P-521 ECDSA sign, RustCrypto + dalek on nixos2: 185.93 µs, 2.89× the fastest -P-521 ECDSA sign, RustCrypto + dalek on kixtop: 79.73 µs, 2.20× the fastest -P-521 ECDSA sign, RustCrypto + dalek on ovh-iad: 302.65 µs, 2.29× the fastest -P-521 ECDSA sign, RustCrypto + dalek on ovh-sea: 287.24 µs, 2.47× the fastest -P-521 ECDSA sign, OpenSSL on nixos: 219.60 µs, 3.77× the fastest -P-521 ECDSA sign, OpenSSL on desktop: 129.20 µs, 3.19× the fastest -P-521 ECDSA sign, OpenSSL on nixos2: 221.00 µs, 3.44× the fastest -P-521 ECDSA sign, OpenSSL on kixtop: 132.13 µs, 3.64× the fastest -P-521 ECDSA sign, OpenSSL on ovh-iad: 359.52 µs, 2.72× the fastest -P-521 ECDSA sign, OpenSSL on ovh-sea: 344.79 µs, 2.96× the fastest +P-521 ECDSA sign, aws-lc-rs on nixos: 152.35 µs, 2.61× the fastest +P-521 ECDSA sign, aws-lc-rs on desktop: 88.28 µs, 2.20× the fastest +P-521 ECDSA sign, aws-lc-rs on nixos2: 158.67 µs, 2.47× the fastest +P-521 ECDSA sign, aws-lc-rs on kixtop: 84.10 µs, 2.32× the fastest +P-521 ECDSA sign, aws-lc-rs on ovh-iad: 279.63 µs, 2.11× the fastest +P-521 ECDSA sign, aws-lc-rs on ovh-sea: 256.02 µs, 2.20× the fastest +P-521 ECDSA sign, RustCrypto + dalek on nixos: 177.47 µs, 3.04× the fastest +P-521 ECDSA sign, RustCrypto + dalek on desktop: 94.09 µs, 2.35× the fastest +P-521 ECDSA sign, RustCrypto + dalek on nixos2: 185.93 µs, 2.89× the fastest +P-521 ECDSA sign, RustCrypto + dalek on kixtop: 80.09 µs, 2.21× the fastest +P-521 ECDSA sign, RustCrypto + dalek on ovh-iad: 302.65 µs, 2.29× the fastest +P-521 ECDSA sign, RustCrypto + dalek on ovh-sea: 287.24 µs, 2.47× the fastest +P-521 ECDSA sign, OpenSSL on nixos: 219.60 µs, 3.77× the fastest +P-521 ECDSA sign, OpenSSL on desktop: 127.93 µs, 3.19× the fastest +P-521 ECDSA sign, OpenSSL on nixos2: 221.00 µs, 3.44× the fastest +P-521 ECDSA sign, OpenSSL on kixtop: 132.31 µs, 3.65× the fastest +P-521 ECDSA sign, OpenSSL on ovh-iad: 359.52 µs, 2.72× the fastest +P-521 ECDSA sign, OpenSSL on ovh-sea: 344.79 µs, 2.96× the fastest P-521 ECDSA verify P-521 ECDSA verify, rind on nixos: 222.28 µs, 1.00× the fastest -P-521 ECDSA verify, rind on desktop: 147.09 µs, 1.00× the fastest +P-521 ECDSA verify, rind on desktop: 145.10 µs, 1.00× the fastest P-521 ECDSA verify, rind on nixos2: 214.43 µs, 1.00× the fastest -P-521 ECDSA verify, rind on kixtop: 121.06 µs, 1.00× the fastest +P-521 ECDSA verify, rind on kixtop: 120.99 µs, 1.00× the fastest P-521 ECDSA verify, rind on ovh-iad: 423.15 µs, 1.00× the fastest P-521 ECDSA verify, rind on ovh-sea: 402.02 µs, 1.00× the fastest -P-521 ECDSA verify, aws-lc-rs on nixos: 327.35 µs, 1.47× the fastest -P-521 ECDSA verify, aws-lc-rs on desktop: 186.61 µs, 1.27× the fastest -P-521 ECDSA verify, aws-lc-rs on nixos2: 303.23 µs, 1.41× the fastest -P-521 ECDSA verify, aws-lc-rs on kixtop: 167.21 µs, 1.38× the fastest -P-521 ECDSA verify, aws-lc-rs on ovh-iad: 547.94 µs, 1.29× the fastest -P-521 ECDSA verify, aws-lc-rs on ovh-sea: 519.35 µs, 1.29× the fastest -P-521 ECDSA verify, RustCrypto + dalek on nixos: 610.17 µs, 2.75× the fastest -P-521 ECDSA verify, RustCrypto + dalek on desktop: 359.57 µs, 2.44× the fastest -P-521 ECDSA verify, RustCrypto + dalek on nixos2: 636.37 µs, 2.97× the fastest -P-521 ECDSA verify, RustCrypto + dalek on kixtop: 253.06 µs, 2.09× the fastest -P-521 ECDSA verify, RustCrypto + dalek on ovh-iad: 1.01 ms, 2.38× the fastest -P-521 ECDSA verify, RustCrypto + dalek on ovh-sea: 975.40 µs, 2.43× the fastest -P-521 ECDSA verify, OpenSSL on nixos: 473.66 µs, 2.13× the fastest -P-521 ECDSA verify, OpenSSL on desktop: 267.51 µs, 1.82× the fastest -P-521 ECDSA verify, OpenSSL on nixos2: 460.02 µs, 2.15× the fastest -P-521 ECDSA verify, OpenSSL on kixtop: 254.80 µs, 2.10× the fastest -P-521 ECDSA verify, OpenSSL on ovh-iad: 740.33 µs, 1.75× the fastest -P-521 ECDSA verify, OpenSSL on ovh-sea: 699.48 µs, 1.74× the fastest +P-521 ECDSA verify, aws-lc-rs on nixos: 327.35 µs, 1.47× the fastest +P-521 ECDSA verify, aws-lc-rs on desktop: 186.69 µs, 1.29× the fastest +P-521 ECDSA verify, aws-lc-rs on nixos2: 303.23 µs, 1.41× the fastest +P-521 ECDSA verify, aws-lc-rs on kixtop: 166.73 µs, 1.38× the fastest +P-521 ECDSA verify, aws-lc-rs on ovh-iad: 547.94 µs, 1.29× the fastest +P-521 ECDSA verify, aws-lc-rs on ovh-sea: 519.35 µs, 1.29× the fastest +P-521 ECDSA verify, RustCrypto + dalek on nixos: 610.17 µs, 2.75× the fastest +P-521 ECDSA verify, RustCrypto + dalek on desktop: 352.95 µs, 2.43× the fastest +P-521 ECDSA verify, RustCrypto + dalek on nixos2: 636.37 µs, 2.97× the fastest +P-521 ECDSA verify, RustCrypto + dalek on kixtop: 251.97 µs, 2.08× the fastest +P-521 ECDSA verify, RustCrypto + dalek on ovh-iad: 1.01 ms, 2.38× the fastest +P-521 ECDSA verify, RustCrypto + dalek on ovh-sea: 975.40 µs, 2.43× the fastest +P-521 ECDSA verify, OpenSSL on nixos: 473.66 µs, 2.13× the fastest +P-521 ECDSA verify, OpenSSL on desktop: 261.10 µs, 1.80× the fastest +P-521 ECDSA verify, OpenSSL on nixos2: 460.02 µs, 2.15× the fastest +P-521 ECDSA verify, OpenSSL on kixtop: 254.26 µs, 2.10× the fastest +P-521 ECDSA verify, OpenSSL on ovh-iad: 740.33 µs, 1.75× the fastest +P-521 ECDSA verify, OpenSSL on ovh-sea: 699.48 µs, 1.74× the fastest diff --git a/benchmarks/overview.svg b/benchmarks/overview.svg index e8ef3c9f0..68661f9f4 100644 --- a/benchmarks/overview.svg +++ b/benchmarks/overview.svg @@ -1,4 +1,4 @@ - + Time over the fastest library's, by operation, library, and host fastest, or within 10% @@ -18,2317 +18,2348 @@ verified code Each cell's squares, left to right: nixos, desktop, nixos2, kixtop, ovh-iad, ovh-sea. rind -aws-lc-rs -ring -RustCrypto -+ dalek -graviola -libcrux -OpenSSL +rind +(DIT held) +aws-lc-rs +ring +RustCrypto ++ dalek +graviola +libcrux +OpenSSL TLS 1.3 with rustls - + full handshake, X25519MLKEM768 full handshake, X25519MLKEM768, rind on nixos: 260.78 µs, 1.00× the fastest -full handshake, X25519MLKEM768, rind on desktop: 174.97 µs, 1.00× the fastest +full handshake, X25519MLKEM768, rind on desktop: 172.30 µs, 1.00× the fastest full handshake, X25519MLKEM768, rind on nixos2: 302.43 µs, 1.00× the fastest -full handshake, X25519MLKEM768, rind on kixtop: 177.98 µs, 1.00× the fastest +full handshake, X25519MLKEM768, rind on kixtop: 174.03 µs, 1.00× the fastest full handshake, X25519MLKEM768, rind on ovh-iad: 625.81 µs, 1.00× the fastest full handshake, X25519MLKEM768, rind on ovh-sea: 580.07 µs, 1.00× the fastest -full handshake, X25519MLKEM768, aws-lc-rs on nixos: 331.87 µs, 1.27× the fastest -full handshake, X25519MLKEM768, aws-lc-rs on desktop: 235.60 µs, 1.35× the fastest -full handshake, X25519MLKEM768, aws-lc-rs on nixos2: 458.06 µs, 1.51× the fastest -full handshake, X25519MLKEM768, aws-lc-rs on kixtop: 214.67 µs, 1.21× the fastest -full handshake, X25519MLKEM768, aws-lc-rs on ovh-iad: 731.87 µs, 1.17× the fastest -full handshake, X25519MLKEM768, aws-lc-rs on ovh-sea: 697.59 µs, 1.20× the fastest -full handshake, X25519MLKEM768, graviola on nixos: 342.68 µs, 1.31× the fastest -full handshake, X25519MLKEM768, graviola on desktop: 191.49 µs, 1.09× the fastest -full handshake, X25519MLKEM768, graviola on nixos2: 375.57 µs, 1.24× the fastest -full handshake, X25519MLKEM768, graviola on kixtop: 180.42 µs, 1.01× the fastest -full handshake, X25519MLKEM768, OpenSSL on nixos: 802.57 µs, 3.08× the fastest -full handshake, X25519MLKEM768, OpenSSL on desktop: 437.46 µs, 2.50× the fastest -full handshake, X25519MLKEM768, OpenSSL on nixos2: 830.76 µs, 2.75× the fastest -full handshake, X25519MLKEM768, OpenSSL on kixtop: 459.07 µs, 2.58× the fastest -full handshake, X25519MLKEM768, OpenSSL on ovh-iad: 1.39 ms, 2.22× the fastest -full handshake, X25519MLKEM768, OpenSSL on ovh-sea: 1.30 ms, 2.25× the fastest +full handshake, X25519MLKEM768, aws-lc-rs on nixos: 331.87 µs, 1.27× the fastest +full handshake, X25519MLKEM768, aws-lc-rs on desktop: 233.73 µs, 1.36× the fastest +full handshake, X25519MLKEM768, aws-lc-rs on nixos2: 458.06 µs, 1.51× the fastest +full handshake, X25519MLKEM768, aws-lc-rs on kixtop: 212.26 µs, 1.22× the fastest +full handshake, X25519MLKEM768, aws-lc-rs on ovh-iad: 731.87 µs, 1.17× the fastest +full handshake, X25519MLKEM768, aws-lc-rs on ovh-sea: 697.59 µs, 1.20× the fastest +full handshake, X25519MLKEM768, graviola on nixos: 342.68 µs, 1.31× the fastest +full handshake, X25519MLKEM768, graviola on desktop: 188.19 µs, 1.09× the fastest +full handshake, X25519MLKEM768, graviola on nixos2: 375.57 µs, 1.24× the fastest +full handshake, X25519MLKEM768, graviola on kixtop: 179.37 µs, 1.03× the fastest +full handshake, X25519MLKEM768, OpenSSL on nixos: 802.57 µs, 3.08× the fastest +full handshake, X25519MLKEM768, OpenSSL on desktop: 438.88 µs, 2.55× the fastest +full handshake, X25519MLKEM768, OpenSSL on nixos2: 830.76 µs, 2.75× the fastest +full handshake, X25519MLKEM768, OpenSSL on kixtop: 463.38 µs, 2.66× the fastest +full handshake, X25519MLKEM768, OpenSSL on ovh-iad: 1.39 ms, 2.22× the fastest +full handshake, X25519MLKEM768, OpenSSL on ovh-sea: 1.30 ms, 2.25× the fastest full handshake, X25519 full handshake, X25519, rind on nixos: 227.82 µs, 1.00× the fastest -full handshake, X25519, rind on desktop: 152.75 µs, 1.00× the fastest +full handshake, X25519, rind on desktop: 151.32 µs, 1.00× the fastest full handshake, X25519, rind on nixos2: 260.02 µs, 1.00× the fastest -full handshake, X25519, rind on kixtop: 155.39 µs, 1.00× the fastest +full handshake, X25519, rind on kixtop: 151.02 µs, 1.00× the fastest full handshake, X25519, rind on ovh-iad: 490.86 µs, 1.00× the fastest full handshake, X25519, rind on ovh-sea: 450.00 µs, 1.00× the fastest -full handshake, X25519, aws-lc-rs on nixos: 292.13 µs, 1.28× the fastest -full handshake, X25519, aws-lc-rs on desktop: 203.62 µs, 1.33× the fastest -full handshake, X25519, aws-lc-rs on nixos2: 369.74 µs, 1.42× the fastest -full handshake, X25519, aws-lc-rs on kixtop: 184.86 µs, 1.19× the fastest -full handshake, X25519, aws-lc-rs on ovh-iad: 554.00 µs, 1.13× the fastest -full handshake, X25519, aws-lc-rs on ovh-sea: 517.47 µs, 1.15× the fastest -full handshake, X25519, ring on nixos: 328.46 µs, 1.44× the fastest -full handshake, X25519, ring on desktop: 222.88 µs, 1.46× the fastest -full handshake, X25519, ring on nixos2: 337.91 µs, 1.30× the fastest -full handshake, X25519, ring on kixtop: 184.65 µs, 1.19× the fastest -full handshake, X25519, ring on ovh-iad: 571.30 µs, 1.16× the fastest -full handshake, X25519, ring on ovh-sea: 526.35 µs, 1.17× the fastest -full handshake, X25519, graviola on nixos: 238.70 µs, 1.05× the fastest -full handshake, X25519, graviola on desktop: 162.55 µs, 1.06× the fastest -full handshake, X25519, graviola on nixos2: 315.73 µs, 1.21× the fastest -full handshake, X25519, graviola on kixtop: 159.19 µs, 1.02× the fastest -full handshake, X25519, OpenSSL on nixos: 574.28 µs, 2.52× the fastest -full handshake, X25519, OpenSSL on desktop: 367.79 µs, 2.41× the fastest -full handshake, X25519, OpenSSL on nixos2: 686.50 µs, 2.64× the fastest -full handshake, X25519, OpenSSL on kixtop: 374.65 µs, 2.41× the fastest -full handshake, X25519, OpenSSL on ovh-iad: 1.19 ms, 2.43× the fastest -full handshake, X25519, OpenSSL on ovh-sea: 1.07 ms, 2.37× the fastest +full handshake, X25519, aws-lc-rs on nixos: 292.13 µs, 1.28× the fastest +full handshake, X25519, aws-lc-rs on desktop: 201.93 µs, 1.33× the fastest +full handshake, X25519, aws-lc-rs on nixos2: 369.74 µs, 1.42× the fastest +full handshake, X25519, aws-lc-rs on kixtop: 183.41 µs, 1.21× the fastest +full handshake, X25519, aws-lc-rs on ovh-iad: 554.00 µs, 1.13× the fastest +full handshake, X25519, aws-lc-rs on ovh-sea: 517.47 µs, 1.15× the fastest +full handshake, X25519, ring on nixos: 328.46 µs, 1.44× the fastest +full handshake, X25519, ring on desktop: 221.01 µs, 1.46× the fastest +full handshake, X25519, ring on nixos2: 337.91 µs, 1.30× the fastest +full handshake, X25519, ring on kixtop: 183.82 µs, 1.22× the fastest +full handshake, X25519, ring on ovh-iad: 571.30 µs, 1.16× the fastest +full handshake, X25519, ring on ovh-sea: 526.35 µs, 1.17× the fastest +full handshake, X25519, graviola on nixos: 238.70 µs, 1.05× the fastest +full handshake, X25519, graviola on desktop: 161.40 µs, 1.07× the fastest +full handshake, X25519, graviola on nixos2: 315.73 µs, 1.21× the fastest +full handshake, X25519, graviola on kixtop: 159.11 µs, 1.05× the fastest +full handshake, X25519, OpenSSL on nixos: 574.28 µs, 2.52× the fastest +full handshake, X25519, OpenSSL on desktop: 366.38 µs, 2.42× the fastest +full handshake, X25519, OpenSSL on nixos2: 686.50 µs, 2.64× the fastest +full handshake, X25519, OpenSSL on kixtop: 374.68 µs, 2.48× the fastest +full handshake, X25519, OpenSSL on ovh-iad: 1.19 ms, 2.43× the fastest +full handshake, X25519, OpenSSL on ovh-sea: 1.07 ms, 2.37× the fastest full handshake, P-256 full handshake, P-256, rind on nixos: 242.76 µs, 1.00× the fastest -full handshake, P-256, rind on desktop: 175.68 µs, 1.00× the fastest +full handshake, P-256, rind on desktop: 174.55 µs, 1.00× the fastest full handshake, P-256, rind on nixos2: 295.92 µs, 1.00× the fastest -full handshake, P-256, rind on kixtop: 176.20 µs, 1.00× the fastest +full handshake, P-256, rind on kixtop: 171.99 µs, 1.00× the fastest full handshake, P-256, rind on ovh-iad: 570.01 µs, 1.00× the fastest full handshake, P-256, rind on ovh-sea: 509.55 µs, 1.00× the fastest -full handshake, P-256, aws-lc-rs on nixos: 304.37 µs, 1.25× the fastest -full handshake, P-256, aws-lc-rs on desktop: 228.85 µs, 1.30× the fastest -full handshake, P-256, aws-lc-rs on nixos2: 417.28 µs, 1.41× the fastest -full handshake, P-256, aws-lc-rs on kixtop: 206.73 µs, 1.17× the fastest -full handshake, P-256, aws-lc-rs on ovh-iad: 752.60 µs, 1.32× the fastest -full handshake, P-256, aws-lc-rs on ovh-sea: 572.32 µs, 1.12× the fastest -full handshake, P-256, ring on nixos: 281.93 µs, 1.16× the fastest -full handshake, P-256, ring on desktop: 221.72 µs, 1.26× the fastest -full handshake, P-256, ring on nixos2: 327.88 µs, 1.11× the fastest -full handshake, P-256, ring on kixtop: 201.44 µs, 1.14× the fastest -full handshake, P-256, ring on ovh-iad: 601.35 µs, 1.05× the fastest -full handshake, P-256, ring on ovh-sea: 541.38 µs, 1.06× the fastest -full handshake, P-256, graviola on nixos: 270.05 µs, 1.11× the fastest -full handshake, P-256, graviola on desktop: 193.10 µs, 1.10× the fastest -full handshake, P-256, graviola on nixos2: 368.79 µs, 1.25× the fastest -full handshake, P-256, graviola on kixtop: 191.72 µs, 1.09× the fastest -full handshake, P-256, OpenSSL on nixos: 624.35 µs, 2.57× the fastest -full handshake, P-256, OpenSSL on desktop: 406.49 µs, 2.31× the fastest -full handshake, P-256, OpenSSL on nixos2: 760.04 µs, 2.57× the fastest -full handshake, P-256, OpenSSL on kixtop: 400.48 µs, 2.27× the fastest -full handshake, P-256, OpenSSL on ovh-iad: 1.32 ms, 2.32× the fastest -full handshake, P-256, OpenSSL on ovh-sea: 1.15 ms, 2.26× the fastest +full handshake, P-256, aws-lc-rs on nixos: 304.37 µs, 1.25× the fastest +full handshake, P-256, aws-lc-rs on desktop: 227.86 µs, 1.31× the fastest +full handshake, P-256, aws-lc-rs on nixos2: 417.28 µs, 1.41× the fastest +full handshake, P-256, aws-lc-rs on kixtop: 205.84 µs, 1.20× the fastest +full handshake, P-256, aws-lc-rs on ovh-iad: 752.60 µs, 1.32× the fastest +full handshake, P-256, aws-lc-rs on ovh-sea: 572.32 µs, 1.12× the fastest +full handshake, P-256, ring on nixos: 281.93 µs, 1.16× the fastest +full handshake, P-256, ring on desktop: 219.51 µs, 1.26× the fastest +full handshake, P-256, ring on nixos2: 327.88 µs, 1.11× the fastest +full handshake, P-256, ring on kixtop: 202.42 µs, 1.18× the fastest +full handshake, P-256, ring on ovh-iad: 601.35 µs, 1.05× the fastest +full handshake, P-256, ring on ovh-sea: 541.38 µs, 1.06× the fastest +full handshake, P-256, graviola on nixos: 270.05 µs, 1.11× the fastest +full handshake, P-256, graviola on desktop: 191.81 µs, 1.10× the fastest +full handshake, P-256, graviola on nixos2: 368.79 µs, 1.25× the fastest +full handshake, P-256, graviola on kixtop: 189.73 µs, 1.10× the fastest +full handshake, P-256, OpenSSL on nixos: 624.35 µs, 2.57× the fastest +full handshake, P-256, OpenSSL on desktop: 400.76 µs, 2.30× the fastest +full handshake, P-256, OpenSSL on nixos2: 760.04 µs, 2.57× the fastest +full handshake, P-256, OpenSSL on kixtop: 401.29 µs, 2.33× the fastest +full handshake, P-256, OpenSSL on ovh-iad: 1.32 ms, 2.32× the fastest +full handshake, P-256, OpenSSL on ovh-sea: 1.15 ms, 2.26× the fastest full handshake, Ed25519 certificate full handshake, Ed25519 certificate, rind on nixos: 186.73 µs, 1.00× the fastest -full handshake, Ed25519 certificate, rind on desktop: 123.11 µs, 1.00× the fastest +full handshake, Ed25519 certificate, rind on desktop: 121.90 µs, 1.00× the fastest full handshake, Ed25519 certificate, rind on nixos2: 213.12 µs, 1.00× the fastest -full handshake, Ed25519 certificate, rind on kixtop: 127.23 µs, 1.03× the fastest +full handshake, Ed25519 certificate, rind on kixtop: 128.51 µs, 1.04× the fastest full handshake, Ed25519 certificate, rind on ovh-iad: 400.37 µs, 1.00× the fastest full handshake, Ed25519 certificate, rind on ovh-sea: 379.57 µs, 1.00× the fastest -full handshake, Ed25519 certificate, aws-lc-rs on nixos: 233.43 µs, 1.25× the fastest -full handshake, Ed25519 certificate, aws-lc-rs on desktop: 168.12 µs, 1.37× the fastest -full handshake, Ed25519 certificate, aws-lc-rs on nixos2: 306.11 µs, 1.44× the fastest -full handshake, Ed25519 certificate, aws-lc-rs on kixtop: 150.93 µs, 1.22× the fastest -full handshake, Ed25519 certificate, aws-lc-rs on ovh-iad: 468.81 µs, 1.17× the fastest -full handshake, Ed25519 certificate, aws-lc-rs on ovh-sea: 437.12 µs, 1.15× the fastest -full handshake, Ed25519 certificate, ring on nixos: 292.96 µs, 1.57× the fastest -full handshake, Ed25519 certificate, ring on desktop: 205.53 µs, 1.67× the fastest -full handshake, Ed25519 certificate, ring on nixos2: 325.29 µs, 1.53× the fastest -full handshake, Ed25519 certificate, ring on kixtop: 155.04 µs, 1.25× the fastest -full handshake, Ed25519 certificate, ring on ovh-iad: 507.02 µs, 1.27× the fastest -full handshake, Ed25519 certificate, ring on ovh-sea: 477.34 µs, 1.26× the fastest -full handshake, Ed25519 certificate, graviola on nixos: 186.05 µs, 1.00× the fastest -full handshake, Ed25519 certificate, graviola on desktop: 125.46 µs, 1.02× the fastest -full handshake, Ed25519 certificate, graviola on nixos2: 250.28 µs, 1.17× the fastest -full handshake, Ed25519 certificate, graviola on kixtop: 124.12 µs, 1.00× the fastest -full handshake, Ed25519 certificate, OpenSSL on nixos: 640.40 µs, 3.44× the fastest -full handshake, Ed25519 certificate, OpenSSL on desktop: 373.29 µs, 3.03× the fastest -full handshake, Ed25519 certificate, OpenSSL on nixos2: 747.09 µs, 3.51× the fastest -full handshake, Ed25519 certificate, OpenSSL on kixtop: 383.83 µs, 3.09× the fastest -full handshake, Ed25519 certificate, OpenSSL on ovh-iad: 1.22 ms, 3.04× the fastest -full handshake, Ed25519 certificate, OpenSSL on ovh-sea: 1.15 ms, 3.04× the fastest +full handshake, Ed25519 certificate, aws-lc-rs on nixos: 233.43 µs, 1.25× the fastest +full handshake, Ed25519 certificate, aws-lc-rs on desktop: 166.63 µs, 1.37× the fastest +full handshake, Ed25519 certificate, aws-lc-rs on nixos2: 306.11 µs, 1.44× the fastest +full handshake, Ed25519 certificate, aws-lc-rs on kixtop: 150.19 µs, 1.22× the fastest +full handshake, Ed25519 certificate, aws-lc-rs on ovh-iad: 468.81 µs, 1.17× the fastest +full handshake, Ed25519 certificate, aws-lc-rs on ovh-sea: 437.12 µs, 1.15× the fastest +full handshake, Ed25519 certificate, ring on nixos: 292.96 µs, 1.57× the fastest +full handshake, Ed25519 certificate, ring on desktop: 202.04 µs, 1.66× the fastest +full handshake, Ed25519 certificate, ring on nixos2: 325.29 µs, 1.53× the fastest +full handshake, Ed25519 certificate, ring on kixtop: 154.50 µs, 1.25× the fastest +full handshake, Ed25519 certificate, ring on ovh-iad: 507.02 µs, 1.27× the fastest +full handshake, Ed25519 certificate, ring on ovh-sea: 477.34 µs, 1.26× the fastest +full handshake, Ed25519 certificate, graviola on nixos: 186.05 µs, 1.00× the fastest +full handshake, Ed25519 certificate, graviola on desktop: 123.71 µs, 1.01× the fastest +full handshake, Ed25519 certificate, graviola on nixos2: 250.28 µs, 1.17× the fastest +full handshake, Ed25519 certificate, graviola on kixtop: 123.59 µs, 1.00× the fastest +full handshake, Ed25519 certificate, OpenSSL on nixos: 640.40 µs, 3.44× the fastest +full handshake, Ed25519 certificate, OpenSSL on desktop: 368.21 µs, 3.02× the fastest +full handshake, Ed25519 certificate, OpenSSL on nixos2: 747.09 µs, 3.51× the fastest +full handshake, Ed25519 certificate, OpenSSL on kixtop: 383.06 µs, 3.10× the fastest +full handshake, Ed25519 certificate, OpenSSL on ovh-iad: 1.22 ms, 3.04× the fastest +full handshake, Ed25519 certificate, OpenSSL on ovh-sea: 1.15 ms, 3.04× the fastest full handshake, RSA-2048 certificate full handshake, RSA-2048 certificate, rind on nixos: 550.14 µs, 1.00× the fastest -full handshake, RSA-2048 certificate, rind on desktop: 428.67 µs, 1.00× the fastest +full handshake, RSA-2048 certificate, rind on desktop: 432.83 µs, 1.00× the fastest full handshake, RSA-2048 certificate, rind on nixos2: 613.80 µs, 1.00× the fastest -full handshake, RSA-2048 certificate, rind on kixtop: 371.35 µs, 1.00× the fastest +full handshake, RSA-2048 certificate, rind on kixtop: 372.92 µs, 1.00× the fastest full handshake, RSA-2048 certificate, rind on ovh-iad: 1.19 ms, 1.00× the fastest full handshake, RSA-2048 certificate, rind on ovh-sea: 1.09 ms, 1.00× the fastest -full handshake, RSA-2048 certificate, aws-lc-rs on nixos: 646.28 µs, 1.17× the fastest -full handshake, RSA-2048 certificate, aws-lc-rs on desktop: 485.87 µs, 1.13× the fastest -full handshake, RSA-2048 certificate, aws-lc-rs on nixos2: 758.17 µs, 1.24× the fastest -full handshake, RSA-2048 certificate, aws-lc-rs on kixtop: 406.71 µs, 1.10× the fastest -full handshake, RSA-2048 certificate, aws-lc-rs on ovh-iad: 1.26 ms, 1.06× the fastest -full handshake, RSA-2048 certificate, aws-lc-rs on ovh-sea: 1.18 ms, 1.09× the fastest -full handshake, RSA-2048 certificate, ring on nixos: 647.36 µs, 1.18× the fastest -full handshake, RSA-2048 certificate, ring on desktop: 493.81 µs, 1.15× the fastest -full handshake, RSA-2048 certificate, ring on nixos2: 678.16 µs, 1.10× the fastest -full handshake, RSA-2048 certificate, ring on kixtop: 446.94 µs, 1.20× the fastest -full handshake, RSA-2048 certificate, ring on ovh-iad: 1.48 ms, 1.25× the fastest -full handshake, RSA-2048 certificate, ring on ovh-sea: 1.38 ms, 1.27× the fastest -full handshake, RSA-2048 certificate, graviola on nixos: 567.91 µs, 1.03× the fastest -full handshake, RSA-2048 certificate, graviola on desktop: 440.23 µs, 1.03× the fastest -full handshake, RSA-2048 certificate, graviola on nixos2: 687.17 µs, 1.12× the fastest -full handshake, RSA-2048 certificate, graviola on kixtop: 683.15 µs, 1.84× the fastest -full handshake, RSA-2048 certificate, OpenSSL on nixos: 992.05 µs, 1.80× the fastest -full handshake, RSA-2048 certificate, OpenSSL on desktop: 682.29 µs, 1.59× the fastest -full handshake, RSA-2048 certificate, OpenSSL on nixos2: 1.01 ms, 1.65× the fastest -full handshake, RSA-2048 certificate, OpenSSL on kixtop: 643.30 µs, 1.73× the fastest -full handshake, RSA-2048 certificate, OpenSSL on ovh-iad: 1.89 ms, 1.59× the fastest -full handshake, RSA-2048 certificate, OpenSSL on ovh-sea: 1.76 ms, 1.62× the fastest +full handshake, RSA-2048 certificate, aws-lc-rs on nixos: 646.28 µs, 1.17× the fastest +full handshake, RSA-2048 certificate, aws-lc-rs on desktop: 480.43 µs, 1.11× the fastest +full handshake, RSA-2048 certificate, aws-lc-rs on nixos2: 758.17 µs, 1.24× the fastest +full handshake, RSA-2048 certificate, aws-lc-rs on kixtop: 409.15 µs, 1.10× the fastest +full handshake, RSA-2048 certificate, aws-lc-rs on ovh-iad: 1.26 ms, 1.06× the fastest +full handshake, RSA-2048 certificate, aws-lc-rs on ovh-sea: 1.18 ms, 1.09× the fastest +full handshake, RSA-2048 certificate, ring on nixos: 647.36 µs, 1.18× the fastest +full handshake, RSA-2048 certificate, ring on desktop: 488.22 µs, 1.13× the fastest +full handshake, RSA-2048 certificate, ring on nixos2: 678.16 µs, 1.10× the fastest +full handshake, RSA-2048 certificate, ring on kixtop: 446.94 µs, 1.20× the fastest +full handshake, RSA-2048 certificate, ring on ovh-iad: 1.48 ms, 1.25× the fastest +full handshake, RSA-2048 certificate, ring on ovh-sea: 1.38 ms, 1.27× the fastest +full handshake, RSA-2048 certificate, graviola on nixos: 567.91 µs, 1.03× the fastest +full handshake, RSA-2048 certificate, graviola on desktop: 440.42 µs, 1.02× the fastest +full handshake, RSA-2048 certificate, graviola on nixos2: 687.17 µs, 1.12× the fastest +full handshake, RSA-2048 certificate, graviola on kixtop: 674.07 µs, 1.81× the fastest +full handshake, RSA-2048 certificate, OpenSSL on nixos: 992.05 µs, 1.80× the fastest +full handshake, RSA-2048 certificate, OpenSSL on desktop: 670.54 µs, 1.55× the fastest +full handshake, RSA-2048 certificate, OpenSSL on nixos2: 1.01 ms, 1.65× the fastest +full handshake, RSA-2048 certificate, OpenSSL on kixtop: 644.46 µs, 1.73× the fastest +full handshake, RSA-2048 certificate, OpenSSL on ovh-iad: 1.89 ms, 1.59× the fastest +full handshake, RSA-2048 certificate, OpenSSL on ovh-sea: 1.76 ms, 1.62× the fastest resumed handshake, X25519 resumed handshake, X25519, rind on nixos: 77.19 µs, 1.00× the fastest -resumed handshake, X25519, rind on desktop: 54.19 µs, 1.00× the fastest +resumed handshake, X25519, rind on desktop: 54.39 µs, 1.00× the fastest resumed handshake, X25519, rind on nixos2: 120.95 µs, 1.00× the fastest -resumed handshake, X25519, rind on kixtop: 66.29 µs, 1.07× the fastest +resumed handshake, X25519, rind on kixtop: 65.88 µs, 1.07× the fastest resumed handshake, X25519, rind on ovh-iad: 202.07 µs, 1.00× the fastest resumed handshake, X25519, rind on ovh-sea: 192.78 µs, 1.00× the fastest -resumed handshake, X25519, aws-lc-rs on nixos: 132.67 µs, 1.72× the fastest -resumed handshake, X25519, aws-lc-rs on desktop: 102.84 µs, 1.90× the fastest -resumed handshake, X25519, aws-lc-rs on nixos2: 229.39 µs, 1.90× the fastest -resumed handshake, X25519, aws-lc-rs on kixtop: 92.46 µs, 1.50× the fastest -resumed handshake, X25519, aws-lc-rs on ovh-iad: 278.39 µs, 1.38× the fastest -resumed handshake, X25519, aws-lc-rs on ovh-sea: 250.87 µs, 1.30× the fastest -resumed handshake, X25519, ring on nixos: 158.11 µs, 2.05× the fastest -resumed handshake, X25519, ring on desktop: 113.00 µs, 2.09× the fastest -resumed handshake, X25519, ring on nixos2: 199.88 µs, 1.65× the fastest -resumed handshake, X25519, ring on kixtop: 88.29 µs, 1.43× the fastest -resumed handshake, X25519, ring on ovh-iad: 287.08 µs, 1.42× the fastest -resumed handshake, X25519, ring on ovh-sea: 266.29 µs, 1.38× the fastest -resumed handshake, X25519, graviola on nixos: 77.33 µs, 1.00× the fastest -resumed handshake, X25519, graviola on desktop: 55.16 µs, 1.02× the fastest -resumed handshake, X25519, graviola on nixos2: 159.71 µs, 1.32× the fastest -resumed handshake, X25519, graviola on kixtop: 61.75 µs, 1.00× the fastest -resumed handshake, X25519, OpenSSL on nixos: 370.51 µs, 4.80× the fastest -resumed handshake, X25519, OpenSSL on desktop: 231.44 µs, 4.27× the fastest -resumed handshake, X25519, OpenSSL on nixos2: 496.91 µs, 4.11× the fastest -resumed handshake, X25519, OpenSSL on kixtop: 255.12 µs, 4.13× the fastest -resumed handshake, X25519, OpenSSL on ovh-iad: 746.29 µs, 3.69× the fastest -resumed handshake, X25519, OpenSSL on ovh-sea: 704.86 µs, 3.66× the fastest +resumed handshake, X25519, aws-lc-rs on nixos: 132.67 µs, 1.72× the fastest +resumed handshake, X25519, aws-lc-rs on desktop: 101.36 µs, 1.86× the fastest +resumed handshake, X25519, aws-lc-rs on nixos2: 229.39 µs, 1.90× the fastest +resumed handshake, X25519, aws-lc-rs on kixtop: 89.83 µs, 1.46× the fastest +resumed handshake, X25519, aws-lc-rs on ovh-iad: 278.39 µs, 1.38× the fastest +resumed handshake, X25519, aws-lc-rs on ovh-sea: 250.87 µs, 1.30× the fastest +resumed handshake, X25519, ring on nixos: 158.11 µs, 2.05× the fastest +resumed handshake, X25519, ring on desktop: 111.29 µs, 2.05× the fastest +resumed handshake, X25519, ring on nixos2: 199.88 µs, 1.65× the fastest +resumed handshake, X25519, ring on kixtop: 87.17 µs, 1.41× the fastest +resumed handshake, X25519, ring on ovh-iad: 287.08 µs, 1.42× the fastest +resumed handshake, X25519, ring on ovh-sea: 266.29 µs, 1.38× the fastest +resumed handshake, X25519, graviola on nixos: 77.33 µs, 1.00× the fastest +resumed handshake, X25519, graviola on desktop: 55.62 µs, 1.02× the fastest +resumed handshake, X25519, graviola on nixos2: 159.71 µs, 1.32× the fastest +resumed handshake, X25519, graviola on kixtop: 61.63 µs, 1.00× the fastest +resumed handshake, X25519, OpenSSL on nixos: 370.51 µs, 4.80× the fastest +resumed handshake, X25519, OpenSSL on desktop: 232.44 µs, 4.27× the fastest +resumed handshake, X25519, OpenSSL on nixos2: 496.91 µs, 4.11× the fastest +resumed handshake, X25519, OpenSSL on kixtop: 253.42 µs, 4.11× the fastest +resumed handshake, X25519, OpenSSL on ovh-iad: 746.29 µs, 3.69× the fastest +resumed handshake, X25519, OpenSSL on ovh-sea: 704.86 µs, 3.66× the fastest 1 MB transfer, AES-128-GCM 1 MB transfer, AES-128-GCM, rind on nixos: 289.43 µs, 1.03× the fastest -1 MB transfer, AES-128-GCM, rind on desktop: 193.36 µs, 1.11× the fastest +1 MB transfer, AES-128-GCM, rind on desktop: 168.21 µs, 1.00× the fastest 1 MB transfer, AES-128-GCM, rind on nixos2: 440.92 µs, 1.00× the fastest -1 MB transfer, AES-128-GCM, rind on kixtop: 308.57 µs, 1.00× the fastest +1 MB transfer, AES-128-GCM, rind on kixtop: 309.22 µs, 1.00× the fastest 1 MB transfer, AES-128-GCM, rind on ovh-iad: 704.59 µs, 1.01× the fastest 1 MB transfer, AES-128-GCM, rind on ovh-sea: 665.48 µs, 1.00× the fastest -1 MB transfer, AES-128-GCM, aws-lc-rs on nixos: 458.21 µs, 1.62× the fastest -1 MB transfer, AES-128-GCM, aws-lc-rs on desktop: 241.18 µs, 1.38× the fastest -1 MB transfer, AES-128-GCM, aws-lc-rs on nixos2: 442.54 µs, 1.00× the fastest -1 MB transfer, AES-128-GCM, aws-lc-rs on kixtop: 310.78 µs, 1.01× the fastest -1 MB transfer, AES-128-GCM, aws-lc-rs on ovh-iad: 700.77 µs, 1.00× the fastest -1 MB transfer, AES-128-GCM, aws-lc-rs on ovh-sea: 677.99 µs, 1.02× the fastest -1 MB transfer, AES-128-GCM, ring on nixos: 282.22 µs, 1.00× the fastest -1 MB transfer, AES-128-GCM, ring on desktop: 174.96 µs, 1.00× the fastest -1 MB transfer, AES-128-GCM, ring on nixos2: 448.76 µs, 1.02× the fastest -1 MB transfer, AES-128-GCM, ring on kixtop: 372.59 µs, 1.21× the fastest -1 MB transfer, AES-128-GCM, ring on ovh-iad: 716.03 µs, 1.02× the fastest -1 MB transfer, AES-128-GCM, ring on ovh-sea: 670.85 µs, 1.01× the fastest -1 MB transfer, AES-128-GCM, graviola on nixos: 424.38 µs, 1.50× the fastest -1 MB transfer, AES-128-GCM, graviola on desktop: 294.75 µs, 1.68× the fastest -1 MB transfer, AES-128-GCM, graviola on nixos2: 579.09 µs, 1.31× the fastest -1 MB transfer, AES-128-GCM, graviola on kixtop: 327.11 µs, 1.06× the fastest -1 MB transfer, AES-128-GCM, OpenSSL on nixos: 469.84 µs, 1.66× the fastest -1 MB transfer, AES-128-GCM, OpenSSL on desktop: 255.72 µs, 1.46× the fastest -1 MB transfer, AES-128-GCM, OpenSSL on nixos2: 491.38 µs, 1.11× the fastest -1 MB transfer, AES-128-GCM, OpenSSL on kixtop: 338.35 µs, 1.10× the fastest -1 MB transfer, AES-128-GCM, OpenSSL on ovh-iad: 789.03 µs, 1.13× the fastest -1 MB transfer, AES-128-GCM, OpenSSL on ovh-sea: 750.68 µs, 1.13× the fastest +1 MB transfer, AES-128-GCM, aws-lc-rs on nixos: 458.21 µs, 1.62× the fastest +1 MB transfer, AES-128-GCM, aws-lc-rs on desktop: 233.34 µs, 1.39× the fastest +1 MB transfer, AES-128-GCM, aws-lc-rs on nixos2: 442.54 µs, 1.00× the fastest +1 MB transfer, AES-128-GCM, aws-lc-rs on kixtop: 313.18 µs, 1.01× the fastest +1 MB transfer, AES-128-GCM, aws-lc-rs on ovh-iad: 700.77 µs, 1.00× the fastest +1 MB transfer, AES-128-GCM, aws-lc-rs on ovh-sea: 677.99 µs, 1.02× the fastest +1 MB transfer, AES-128-GCM, ring on nixos: 282.22 µs, 1.00× the fastest +1 MB transfer, AES-128-GCM, ring on desktop: 170.08 µs, 1.01× the fastest +1 MB transfer, AES-128-GCM, ring on nixos2: 448.76 µs, 1.02× the fastest +1 MB transfer, AES-128-GCM, ring on kixtop: 372.51 µs, 1.20× the fastest +1 MB transfer, AES-128-GCM, ring on ovh-iad: 716.03 µs, 1.02× the fastest +1 MB transfer, AES-128-GCM, ring on ovh-sea: 670.85 µs, 1.01× the fastest +1 MB transfer, AES-128-GCM, graviola on nixos: 424.38 µs, 1.50× the fastest +1 MB transfer, AES-128-GCM, graviola on desktop: 289.61 µs, 1.72× the fastest +1 MB transfer, AES-128-GCM, graviola on nixos2: 579.09 µs, 1.31× the fastest +1 MB transfer, AES-128-GCM, graviola on kixtop: 333.72 µs, 1.08× the fastest +1 MB transfer, AES-128-GCM, OpenSSL on nixos: 469.84 µs, 1.66× the fastest +1 MB transfer, AES-128-GCM, OpenSSL on desktop: 250.85 µs, 1.49× the fastest +1 MB transfer, AES-128-GCM, OpenSSL on nixos2: 491.38 µs, 1.11× the fastest +1 MB transfer, AES-128-GCM, OpenSSL on kixtop: 340.26 µs, 1.10× the fastest +1 MB transfer, AES-128-GCM, OpenSSL on ovh-iad: 789.03 µs, 1.13× the fastest +1 MB transfer, AES-128-GCM, OpenSSL on ovh-sea: 750.68 µs, 1.13× the fastest 1 MB transfer, AES-256-GCM 1 MB transfer, AES-256-GCM, rind on nixos: 292.74 µs, 1.01× the fastest -1 MB transfer, AES-256-GCM, rind on desktop: 189.84 µs, 1.00× the fastest +1 MB transfer, AES-256-GCM, rind on desktop: 184.54 µs, 1.00× the fastest 1 MB transfer, AES-256-GCM, rind on nixos2: 544.88 µs, 1.00× the fastest -1 MB transfer, AES-256-GCM, rind on kixtop: 343.96 µs, 1.01× the fastest +1 MB transfer, AES-256-GCM, rind on kixtop: 348.83 µs, 1.01× the fastest 1 MB transfer, AES-256-GCM, rind on ovh-iad: 960.61 µs, 1.07× the fastest 1 MB transfer, AES-256-GCM, rind on ovh-sea: 845.84 µs, 1.02× the fastest -1 MB transfer, AES-256-GCM, aws-lc-rs on nixos: 461.28 µs, 1.59× the fastest -1 MB transfer, AES-256-GCM, aws-lc-rs on desktop: 272.23 µs, 1.43× the fastest -1 MB transfer, AES-256-GCM, aws-lc-rs on nixos2: 557.86 µs, 1.02× the fastest -1 MB transfer, AES-256-GCM, aws-lc-rs on kixtop: 341.91 µs, 1.00× the fastest -1 MB transfer, AES-256-GCM, aws-lc-rs on ovh-iad: 905.72 µs, 1.01× the fastest -1 MB transfer, AES-256-GCM, aws-lc-rs on ovh-sea: 857.11 µs, 1.03× the fastest -1 MB transfer, AES-256-GCM, ring on nixos: 289.90 µs, 1.00× the fastest -1 MB transfer, AES-256-GCM, ring on desktop: 192.15 µs, 1.01× the fastest -1 MB transfer, AES-256-GCM, ring on nixos2: 567.27 µs, 1.04× the fastest -1 MB transfer, AES-256-GCM, ring on kixtop: 380.26 µs, 1.11× the fastest -1 MB transfer, AES-256-GCM, ring on ovh-iad: 898.87 µs, 1.00× the fastest -1 MB transfer, AES-256-GCM, ring on ovh-sea: 831.86 µs, 1.00× the fastest -1 MB transfer, AES-256-GCM, graviola on nixos: 490.29 µs, 1.69× the fastest -1 MB transfer, AES-256-GCM, graviola on desktop: 338.97 µs, 1.79× the fastest -1 MB transfer, AES-256-GCM, graviola on nixos2: 691.18 µs, 1.27× the fastest -1 MB transfer, AES-256-GCM, graviola on kixtop: 397.41 µs, 1.16× the fastest -1 MB transfer, AES-256-GCM, OpenSSL on nixos: 533.20 µs, 1.84× the fastest -1 MB transfer, AES-256-GCM, OpenSSL on desktop: 292.12 µs, 1.54× the fastest -1 MB transfer, AES-256-GCM, OpenSSL on nixos2: 596.82 µs, 1.10× the fastest -1 MB transfer, AES-256-GCM, OpenSSL on kixtop: 371.49 µs, 1.09× the fastest -1 MB transfer, AES-256-GCM, OpenSSL on ovh-iad: 995.68 µs, 1.11× the fastest -1 MB transfer, AES-256-GCM, OpenSSL on ovh-sea: 936.99 µs, 1.13× the fastest +1 MB transfer, AES-256-GCM, aws-lc-rs on nixos: 461.28 µs, 1.59× the fastest +1 MB transfer, AES-256-GCM, aws-lc-rs on desktop: 265.29 µs, 1.44× the fastest +1 MB transfer, AES-256-GCM, aws-lc-rs on nixos2: 557.86 µs, 1.02× the fastest +1 MB transfer, AES-256-GCM, aws-lc-rs on kixtop: 347.02 µs, 1.00× the fastest +1 MB transfer, AES-256-GCM, aws-lc-rs on ovh-iad: 905.72 µs, 1.01× the fastest +1 MB transfer, AES-256-GCM, aws-lc-rs on ovh-sea: 857.11 µs, 1.03× the fastest +1 MB transfer, AES-256-GCM, ring on nixos: 289.90 µs, 1.00× the fastest +1 MB transfer, AES-256-GCM, ring on desktop: 188.67 µs, 1.02× the fastest +1 MB transfer, AES-256-GCM, ring on nixos2: 567.27 µs, 1.04× the fastest +1 MB transfer, AES-256-GCM, ring on kixtop: 386.93 µs, 1.11× the fastest +1 MB transfer, AES-256-GCM, ring on ovh-iad: 898.87 µs, 1.00× the fastest +1 MB transfer, AES-256-GCM, ring on ovh-sea: 831.86 µs, 1.00× the fastest +1 MB transfer, AES-256-GCM, graviola on nixos: 490.29 µs, 1.69× the fastest +1 MB transfer, AES-256-GCM, graviola on desktop: 337.96 µs, 1.83× the fastest +1 MB transfer, AES-256-GCM, graviola on nixos2: 691.18 µs, 1.27× the fastest +1 MB transfer, AES-256-GCM, graviola on kixtop: 400.75 µs, 1.15× the fastest +1 MB transfer, AES-256-GCM, OpenSSL on nixos: 533.20 µs, 1.84× the fastest +1 MB transfer, AES-256-GCM, OpenSSL on desktop: 285.79 µs, 1.55× the fastest +1 MB transfer, AES-256-GCM, OpenSSL on nixos2: 596.82 µs, 1.10× the fastest +1 MB transfer, AES-256-GCM, OpenSSL on kixtop: 372.29 µs, 1.07× the fastest +1 MB transfer, AES-256-GCM, OpenSSL on ovh-iad: 995.68 µs, 1.11× the fastest +1 MB transfer, AES-256-GCM, OpenSSL on ovh-sea: 936.99 µs, 1.13× the fastest 1 MB transfer, ChaCha20-Poly1305 1 MB transfer, ChaCha20-Poly1305, rind on nixos: 688.78 µs, 1.00× the fastest -1 MB transfer, ChaCha20-Poly1305, rind on desktop: 621.49 µs, 1.04× the fastest +1 MB transfer, ChaCha20-Poly1305, rind on desktop: 596.91 µs, 1.01× the fastest 1 MB transfer, ChaCha20-Poly1305, rind on nixos2: 923.82 µs, 1.00× the fastest -1 MB transfer, ChaCha20-Poly1305, rind on kixtop: 1.12 ms, 1.01× the fastest +1 MB transfer, ChaCha20-Poly1305, rind on kixtop: 1.11 ms, 1.01× the fastest 1 MB transfer, ChaCha20-Poly1305, rind on ovh-iad: 1.47 ms, 1.00× the fastest 1 MB transfer, ChaCha20-Poly1305, rind on ovh-sea: 1.44 ms, 1.00× the fastest -1 MB transfer, ChaCha20-Poly1305, aws-lc-rs on nixos: 687.53 µs, 1.00× the fastest -1 MB transfer, ChaCha20-Poly1305, aws-lc-rs on desktop: 609.72 µs, 1.02× the fastest -1 MB transfer, ChaCha20-Poly1305, aws-lc-rs on nixos2: 928.09 µs, 1.00× the fastest -1 MB transfer, ChaCha20-Poly1305, aws-lc-rs on kixtop: 1.12 ms, 1.01× the fastest -1 MB transfer, ChaCha20-Poly1305, aws-lc-rs on ovh-iad: 1.52 ms, 1.03× the fastest -1 MB transfer, ChaCha20-Poly1305, aws-lc-rs on ovh-sea: 1.43 ms, 1.00× the fastest -1 MB transfer, ChaCha20-Poly1305, ring on nixos: 693.01 µs, 1.01× the fastest -1 MB transfer, ChaCha20-Poly1305, ring on desktop: 594.88 µs, 1.00× the fastest -1 MB transfer, ChaCha20-Poly1305, ring on nixos2: 925.14 µs, 1.00× the fastest -1 MB transfer, ChaCha20-Poly1305, ring on kixtop: 1.11 ms, 1.01× the fastest -1 MB transfer, ChaCha20-Poly1305, ring on ovh-iad: 1.53 ms, 1.04× the fastest -1 MB transfer, ChaCha20-Poly1305, ring on ovh-sea: 1.45 ms, 1.01× the fastest -1 MB transfer, ChaCha20-Poly1305, graviola on nixos: 1.37 ms, 2.00× the fastest -1 MB transfer, ChaCha20-Poly1305, graviola on desktop: 1.17 ms, 1.97× the fastest -1 MB transfer, ChaCha20-Poly1305, graviola on nixos2: 1.64 ms, 1.78× the fastest -1 MB transfer, ChaCha20-Poly1305, graviola on kixtop: 1.79 ms, 1.62× the fastest -1 MB transfer, ChaCha20-Poly1305, OpenSSL on nixos: 782.98 µs, 1.14× the fastest -1 MB transfer, ChaCha20-Poly1305, OpenSSL on desktop: 661.80 µs, 1.11× the fastest -1 MB transfer, ChaCha20-Poly1305, OpenSSL on nixos2: 983.97 µs, 1.07× the fastest -1 MB transfer, ChaCha20-Poly1305, OpenSSL on kixtop: 1.11 ms, 1.00× the fastest -1 MB transfer, ChaCha20-Poly1305, OpenSSL on ovh-iad: 1.77 ms, 1.20× the fastest -1 MB transfer, ChaCha20-Poly1305, OpenSSL on ovh-sea: 1.71 ms, 1.19× the fastest +1 MB transfer, ChaCha20-Poly1305, aws-lc-rs on nixos: 687.53 µs, 1.00× the fastest +1 MB transfer, ChaCha20-Poly1305, aws-lc-rs on desktop: 595.41 µs, 1.01× the fastest +1 MB transfer, ChaCha20-Poly1305, aws-lc-rs on nixos2: 928.09 µs, 1.00× the fastest +1 MB transfer, ChaCha20-Poly1305, aws-lc-rs on kixtop: 1.10 ms, 1.00× the fastest +1 MB transfer, ChaCha20-Poly1305, aws-lc-rs on ovh-iad: 1.52 ms, 1.03× the fastest +1 MB transfer, ChaCha20-Poly1305, aws-lc-rs on ovh-sea: 1.43 ms, 1.00× the fastest +1 MB transfer, ChaCha20-Poly1305, ring on nixos: 693.01 µs, 1.01× the fastest +1 MB transfer, ChaCha20-Poly1305, ring on desktop: 590.49 µs, 1.00× the fastest +1 MB transfer, ChaCha20-Poly1305, ring on nixos2: 925.14 µs, 1.00× the fastest +1 MB transfer, ChaCha20-Poly1305, ring on kixtop: 1.10 ms, 1.00× the fastest +1 MB transfer, ChaCha20-Poly1305, ring on ovh-iad: 1.53 ms, 1.04× the fastest +1 MB transfer, ChaCha20-Poly1305, ring on ovh-sea: 1.45 ms, 1.01× the fastest +1 MB transfer, ChaCha20-Poly1305, graviola on nixos: 1.37 ms, 2.00× the fastest +1 MB transfer, ChaCha20-Poly1305, graviola on desktop: 1.16 ms, 1.97× the fastest +1 MB transfer, ChaCha20-Poly1305, graviola on nixos2: 1.64 ms, 1.78× the fastest +1 MB transfer, ChaCha20-Poly1305, graviola on kixtop: 1.73 ms, 1.58× the fastest +1 MB transfer, ChaCha20-Poly1305, OpenSSL on nixos: 782.98 µs, 1.14× the fastest +1 MB transfer, ChaCha20-Poly1305, OpenSSL on desktop: 658.48 µs, 1.12× the fastest +1 MB transfer, ChaCha20-Poly1305, OpenSSL on nixos2: 983.97 µs, 1.07× the fastest +1 MB transfer, ChaCha20-Poly1305, OpenSSL on kixtop: 1.11 ms, 1.01× the fastest +1 MB transfer, ChaCha20-Poly1305, OpenSSL on ovh-iad: 1.77 ms, 1.20× the fastest +1 MB transfer, ChaCha20-Poly1305, OpenSSL on ovh-sea: 1.71 ms, 1.19× the fastest AEADs - + AES-128-GCM seal, 32 B AES-128-GCM seal, 32 B, rind on nixos: 39 ns, 1.00× the fastest -AES-128-GCM seal, 32 B, rind on desktop: 18 ns, 1.00× the fastest +AES-128-GCM seal, 32 B, rind on desktop: 20 ns, 1.00× the fastest AES-128-GCM seal, 32 B, rind on nixos2: 43 ns, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch, of the AES-NI key expansion and block cipher's raw-pointer loads, and of the SIMD intrinsics as Intel's manual defines them, of its AEAD API's AES-GCM key setup, seal, and open, for AAD and messages under 2^32 bytes, down to HACL*'s Vale AES-GCM routines, composed with Vale's F* proofs of Gcm_blocks_stdcall, Gcm_blocks_decrypt_stdcall, and Compute_iv_stdcall, of the code Vale prints at HACL* f557259007db, which rind imports ✓ -AES-128-GCM seal, 32 B, rind on kixtop: 57 ns, 2.40× the fastest +AES-128-GCM seal, 32 B, rind on kixtop: 57 ns, 2.38× the fastest AES-128-GCM seal, 32 B, rind on ovh-iad: 69 ns, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch, of the AES-NI key expansion and block cipher's raw-pointer loads, and of the SIMD intrinsics as Intel's manual defines them, of its AEAD API's AES-GCM key setup, seal, and open, for AAD and messages under 2^32 bytes, down to HACL*'s Vale AES-GCM routines, composed with Vale's F* proofs of Gcm_blocks_stdcall, Gcm_blocks_decrypt_stdcall, and Compute_iv_stdcall, of the code Vale prints at HACL* f557259007db, which rind imports ✓ AES-128-GCM seal, 32 B, rind on ovh-sea: 68 ns, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch, of the AES-NI key expansion and block cipher's raw-pointer loads, and of the SIMD intrinsics as Intel's manual defines them, of its AEAD API's AES-GCM key setup, seal, and open, for AAD and messages under 2^32 bytes, down to HACL*'s Vale AES-GCM routines, composed with Vale's F* proofs of Gcm_blocks_stdcall, Gcm_blocks_decrypt_stdcall, and Compute_iv_stdcall, of the code Vale prints at HACL* f557259007db, which rind imports ✓ -AES-128-GCM seal, 32 B, aws-lc-rs on nixos: 78 ns, 2.02× the fastest -AES-128-GCM seal, 32 B, aws-lc-rs on desktop: 37 ns, 2.03× the fastest -AES-128-GCM seal, 32 B, aws-lc-rs on nixos2: 89 ns, 2.06× the fastest -AES-128-GCM seal, 32 B, aws-lc-rs on kixtop: 50 ns, 2.10× the fastest -AES-128-GCM seal, 32 B, aws-lc-rs on ovh-iad: 139 ns, 2.02× the fastest -AES-128-GCM seal, 32 B, aws-lc-rs on ovh-sea: 137 ns, 2.01× the fastest -AES-128-GCM seal, 32 B, ring on nixos: 56 ns, 1.45× the fastest -AES-128-GCM seal, 32 B, ring on desktop: 42 ns, 2.30× the fastest -AES-128-GCM seal, 32 B, ring on nixos2: 71 ns, 1.64× the fastest -AES-128-GCM seal, 32 B, ring on kixtop: 42 ns, 1.77× the fastest -AES-128-GCM seal, 32 B, ring on ovh-iad: 111 ns, 1.60× the fastest -AES-128-GCM seal, 32 B, ring on ovh-sea: 109 ns, 1.60× the fastest -AES-128-GCM seal, 32 B, RustCrypto + dalek on nixos: 97 ns, 2.50× the fastest -AES-128-GCM seal, 32 B, RustCrypto + dalek on desktop: 73 ns, 3.98× the fastest -AES-128-GCM seal, 32 B, RustCrypto + dalek on nixos2: 100 ns, 2.33× the fastest -AES-128-GCM seal, 32 B, RustCrypto + dalek on kixtop: 24 ns, 1.00× the fastest -AES-128-GCM seal, 32 B, RustCrypto + dalek on ovh-iad: 158 ns, 2.28× the fastest -AES-128-GCM seal, 32 B, RustCrypto + dalek on ovh-sea: 155 ns, 2.27× the fastest -AES-128-GCM seal, 32 B, graviola on nixos: 70 ns, 1.80× the fastest -AES-128-GCM seal, 32 B, graviola on desktop: 42 ns, 2.33× the fastest -AES-128-GCM seal, 32 B, graviola on nixos2: 71 ns, 1.65× the fastest -AES-128-GCM seal, 32 B, graviola on kixtop: 80 ns, 3.37× the fastest -AES-128-GCM seal, 32 B, libcrux on nixos: 321 ns, 8.29× the fastest -AES-128-GCM seal, 32 B, libcrux on desktop: 168 ns, 9.19× the fastest -AES-128-GCM seal, 32 B, libcrux on nixos2: 282 ns, 6.52× the fastest -AES-128-GCM seal, 32 B, libcrux on kixtop: 53 ns, 2.23× the fastest -AES-128-GCM seal, 32 B, libcrux on ovh-iad: 454 ns, 6.58× the fastest -AES-128-GCM seal, 32 B, libcrux on ovh-sea: 438 ns, 6.42× the fastest -AES-128-GCM seal, 32 B, OpenSSL on nixos: 115 ns, 2.97× the fastest -AES-128-GCM seal, 32 B, OpenSSL on desktop: 55 ns, 3.02× the fastest -AES-128-GCM seal, 32 B, OpenSSL on nixos2: 156 ns, 3.62× the fastest -AES-128-GCM seal, 32 B, OpenSSL on kixtop: 69 ns, 2.91× the fastest -AES-128-GCM seal, 32 B, OpenSSL on ovh-iad: 268 ns, 3.89× the fastest -AES-128-GCM seal, 32 B, OpenSSL on ovh-sea: 235 ns, 3.46× the fastest +AES-128-GCM seal, 32 B, rind (DIT held) on kixtop: 11 ns, 0.45× the fastest +AES-128-GCM seal, 32 B, aws-lc-rs on nixos: 78 ns, 2.02× the fastest +AES-128-GCM seal, 32 B, aws-lc-rs on desktop: 38 ns, 1.90× the fastest +AES-128-GCM seal, 32 B, aws-lc-rs on nixos2: 89 ns, 2.06× the fastest +AES-128-GCM seal, 32 B, aws-lc-rs on kixtop: 50 ns, 2.07× the fastest +AES-128-GCM seal, 32 B, aws-lc-rs on ovh-iad: 139 ns, 2.02× the fastest +AES-128-GCM seal, 32 B, aws-lc-rs on ovh-sea: 137 ns, 2.01× the fastest +AES-128-GCM seal, 32 B, ring on nixos: 56 ns, 1.45× the fastest +AES-128-GCM seal, 32 B, ring on desktop: 41 ns, 2.08× the fastest +AES-128-GCM seal, 32 B, ring on nixos2: 71 ns, 1.64× the fastest +AES-128-GCM seal, 32 B, ring on kixtop: 42 ns, 1.74× the fastest +AES-128-GCM seal, 32 B, ring on ovh-iad: 111 ns, 1.60× the fastest +AES-128-GCM seal, 32 B, ring on ovh-sea: 109 ns, 1.60× the fastest +AES-128-GCM seal, 32 B, RustCrypto + dalek on nixos: 97 ns, 2.50× the fastest +AES-128-GCM seal, 32 B, RustCrypto + dalek on desktop: 73 ns, 3.70× the fastest +AES-128-GCM seal, 32 B, RustCrypto + dalek on nixos2: 100 ns, 2.33× the fastest +AES-128-GCM seal, 32 B, RustCrypto + dalek on kixtop: 24 ns, 1.00× the fastest +AES-128-GCM seal, 32 B, RustCrypto + dalek on ovh-iad: 158 ns, 2.28× the fastest +AES-128-GCM seal, 32 B, RustCrypto + dalek on ovh-sea: 155 ns, 2.27× the fastest +AES-128-GCM seal, 32 B, graviola on nixos: 70 ns, 1.80× the fastest +AES-128-GCM seal, 32 B, graviola on desktop: 42 ns, 2.13× the fastest +AES-128-GCM seal, 32 B, graviola on nixos2: 71 ns, 1.65× the fastest +AES-128-GCM seal, 32 B, graviola on kixtop: 79 ns, 3.30× the fastest +AES-128-GCM seal, 32 B, libcrux on nixos: 321 ns, 8.29× the fastest +AES-128-GCM seal, 32 B, libcrux on desktop: 171 ns, 8.64× the fastest +AES-128-GCM seal, 32 B, libcrux on nixos2: 282 ns, 6.52× the fastest +AES-128-GCM seal, 32 B, libcrux on kixtop: 52 ns, 2.17× the fastest +AES-128-GCM seal, 32 B, libcrux on ovh-iad: 454 ns, 6.58× the fastest +AES-128-GCM seal, 32 B, libcrux on ovh-sea: 438 ns, 6.42× the fastest +AES-128-GCM seal, 32 B, OpenSSL on nixos: 115 ns, 2.97× the fastest +AES-128-GCM seal, 32 B, OpenSSL on desktop: 57 ns, 2.88× the fastest +AES-128-GCM seal, 32 B, OpenSSL on nixos2: 156 ns, 3.62× the fastest +AES-128-GCM seal, 32 B, OpenSSL on kixtop: 67 ns, 2.79× the fastest +AES-128-GCM seal, 32 B, OpenSSL on ovh-iad: 268 ns, 3.89× the fastest +AES-128-GCM seal, 32 B, OpenSSL on ovh-sea: 235 ns, 3.46× the fastest AES-128-GCM seal, 1350 B AES-128-GCM seal, 1350 B, rind on nixos: 165 ns, 1.00× the fastest -AES-128-GCM seal, 1350 B, rind on desktop: 94 ns, 1.00× the fastest +AES-128-GCM seal, 1350 B, rind on desktop: 93 ns, 1.00× the fastest AES-128-GCM seal, 1350 B, rind on nixos2: 246 ns, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch, of the AES-NI key expansion and block cipher's raw-pointer loads, and of the SIMD intrinsics as Intel's manual defines them, of its AEAD API's AES-GCM key setup, seal, and open, for AAD and messages under 2^32 bytes, down to HACL*'s Vale AES-GCM routines, composed with Vale's F* proofs of Gcm_blocks_stdcall, Gcm_blocks_decrypt_stdcall, and Compute_iv_stdcall, of the code Vale prints at HACL* f557259007db, which rind imports ✓ -AES-128-GCM seal, 1350 B, rind on kixtop: 212 ns, 1.18× the fastest +AES-128-GCM seal, 1350 B, rind on kixtop: 209 ns, 1.16× the fastest AES-128-GCM seal, 1350 B, rind on ovh-iad: 398 ns, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch, of the AES-NI key expansion and block cipher's raw-pointer loads, and of the SIMD intrinsics as Intel's manual defines them, of its AEAD API's AES-GCM key setup, seal, and open, for AAD and messages under 2^32 bytes, down to HACL*'s Vale AES-GCM routines, composed with Vale's F* proofs of Gcm_blocks_stdcall, Gcm_blocks_decrypt_stdcall, and Compute_iv_stdcall, of the code Vale prints at HACL* f557259007db, which rind imports ✓ AES-128-GCM seal, 1350 B, rind on ovh-sea: 380 ns, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch, of the AES-NI key expansion and block cipher's raw-pointer loads, and of the SIMD intrinsics as Intel's manual defines them, of its AEAD API's AES-GCM key setup, seal, and open, for AAD and messages under 2^32 bytes, down to HACL*'s Vale AES-GCM routines, composed with Vale's F* proofs of Gcm_blocks_stdcall, Gcm_blocks_decrypt_stdcall, and Compute_iv_stdcall, of the code Vale prints at HACL* f557259007db, which rind imports ✓ -AES-128-GCM seal, 1350 B, aws-lc-rs on nixos: 291 ns, 1.77× the fastest -AES-128-GCM seal, 1350 B, aws-lc-rs on desktop: 149 ns, 1.59× the fastest -AES-128-GCM seal, 1350 B, aws-lc-rs on nixos2: 285 ns, 1.16× the fastest -AES-128-GCM seal, 1350 B, aws-lc-rs on kixtop: 180 ns, 1.00× the fastest -AES-128-GCM seal, 1350 B, aws-lc-rs on ovh-iad: 460 ns, 1.15× the fastest -AES-128-GCM seal, 1350 B, aws-lc-rs on ovh-sea: 439 ns, 1.15× the fastest -AES-128-GCM seal, 1350 B, ring on nixos: 191 ns, 1.16× the fastest -AES-128-GCM seal, 1350 B, ring on desktop: 118 ns, 1.26× the fastest -AES-128-GCM seal, 1350 B, ring on nixos2: 277 ns, 1.13× the fastest -AES-128-GCM seal, 1350 B, ring on kixtop: 212 ns, 1.18× the fastest -AES-128-GCM seal, 1350 B, ring on ovh-iad: 475 ns, 1.19× the fastest -AES-128-GCM seal, 1350 B, ring on ovh-sea: 438 ns, 1.15× the fastest -AES-128-GCM seal, 1350 B, RustCrypto + dalek on nixos: 434 ns, 2.63× the fastest -AES-128-GCM seal, 1350 B, RustCrypto + dalek on desktop: 272 ns, 2.90× the fastest -AES-128-GCM seal, 1350 B, RustCrypto + dalek on nixos2: 547 ns, 2.22× the fastest -AES-128-GCM seal, 1350 B, RustCrypto + dalek on kixtop: 213 ns, 1.18× the fastest -AES-128-GCM seal, 1350 B, RustCrypto + dalek on ovh-iad: 871 ns, 2.19× the fastest -AES-128-GCM seal, 1350 B, RustCrypto + dalek on ovh-sea: 846 ns, 2.23× the fastest -AES-128-GCM seal, 1350 B, graviola on nixos: 295 ns, 1.79× the fastest -AES-128-GCM seal, 1350 B, graviola on desktop: 227 ns, 2.42× the fastest -AES-128-GCM seal, 1350 B, graviola on nixos2: 400 ns, 1.63× the fastest -AES-128-GCM seal, 1350 B, graviola on kixtop: 215 ns, 1.20× the fastest -AES-128-GCM seal, 1350 B, libcrux on nixos: 4.72 µs, 28.63× the fastest -AES-128-GCM seal, 1350 B, libcrux on desktop: 1.94 µs, 20.74× the fastest -AES-128-GCM seal, 1350 B, libcrux on nixos2: 3.49 µs, 14.19× the fastest -AES-128-GCM seal, 1350 B, libcrux on kixtop: 619 ns, 3.44× the fastest -AES-128-GCM seal, 1350 B, libcrux on ovh-iad: 5.46 µs, 13.70× the fastest -AES-128-GCM seal, 1350 B, libcrux on ovh-sea: 5.29 µs, 13.92× the fastest -AES-128-GCM seal, 1350 B, OpenSSL on nixos: 326 ns, 1.98× the fastest -AES-128-GCM seal, 1350 B, OpenSSL on desktop: 163 ns, 1.74× the fastest -AES-128-GCM seal, 1350 B, OpenSSL on nixos2: 352 ns, 1.43× the fastest -AES-128-GCM seal, 1350 B, OpenSSL on kixtop: 197 ns, 1.09× the fastest -AES-128-GCM seal, 1350 B, OpenSSL on ovh-iad: 561 ns, 1.41× the fastest -AES-128-GCM seal, 1350 B, OpenSSL on ovh-sea: 534 ns, 1.41× the fastest +AES-128-GCM seal, 1350 B, rind (DIT held) on kixtop: 161 ns, 0.89× the fastest +AES-128-GCM seal, 1350 B, aws-lc-rs on nixos: 291 ns, 1.77× the fastest +AES-128-GCM seal, 1350 B, aws-lc-rs on desktop: 159 ns, 1.71× the fastest +AES-128-GCM seal, 1350 B, aws-lc-rs on nixos2: 285 ns, 1.16× the fastest +AES-128-GCM seal, 1350 B, aws-lc-rs on kixtop: 181 ns, 1.00× the fastest +AES-128-GCM seal, 1350 B, aws-lc-rs on ovh-iad: 460 ns, 1.15× the fastest +AES-128-GCM seal, 1350 B, aws-lc-rs on ovh-sea: 439 ns, 1.15× the fastest +AES-128-GCM seal, 1350 B, ring on nixos: 191 ns, 1.16× the fastest +AES-128-GCM seal, 1350 B, ring on desktop: 119 ns, 1.29× the fastest +AES-128-GCM seal, 1350 B, ring on nixos2: 277 ns, 1.13× the fastest +AES-128-GCM seal, 1350 B, ring on kixtop: 210 ns, 1.16× the fastest +AES-128-GCM seal, 1350 B, ring on ovh-iad: 475 ns, 1.19× the fastest +AES-128-GCM seal, 1350 B, ring on ovh-sea: 438 ns, 1.15× the fastest +AES-128-GCM seal, 1350 B, RustCrypto + dalek on nixos: 434 ns, 2.63× the fastest +AES-128-GCM seal, 1350 B, RustCrypto + dalek on desktop: 278 ns, 3.00× the fastest +AES-128-GCM seal, 1350 B, RustCrypto + dalek on nixos2: 547 ns, 2.22× the fastest +AES-128-GCM seal, 1350 B, RustCrypto + dalek on kixtop: 212 ns, 1.17× the fastest +AES-128-GCM seal, 1350 B, RustCrypto + dalek on ovh-iad: 871 ns, 2.19× the fastest +AES-128-GCM seal, 1350 B, RustCrypto + dalek on ovh-sea: 846 ns, 2.23× the fastest +AES-128-GCM seal, 1350 B, graviola on nixos: 295 ns, 1.79× the fastest +AES-128-GCM seal, 1350 B, graviola on desktop: 226 ns, 2.44× the fastest +AES-128-GCM seal, 1350 B, graviola on nixos2: 400 ns, 1.63× the fastest +AES-128-GCM seal, 1350 B, graviola on kixtop: 216 ns, 1.19× the fastest +AES-128-GCM seal, 1350 B, libcrux on nixos: 4.72 µs, 28.63× the fastest +AES-128-GCM seal, 1350 B, libcrux on desktop: 1.98 µs, 21.37× the fastest +AES-128-GCM seal, 1350 B, libcrux on nixos2: 3.49 µs, 14.19× the fastest +AES-128-GCM seal, 1350 B, libcrux on kixtop: 600 ns, 3.31× the fastest +AES-128-GCM seal, 1350 B, libcrux on ovh-iad: 5.46 µs, 13.70× the fastest +AES-128-GCM seal, 1350 B, libcrux on ovh-sea: 5.29 µs, 13.92× the fastest +AES-128-GCM seal, 1350 B, OpenSSL on nixos: 326 ns, 1.98× the fastest +AES-128-GCM seal, 1350 B, OpenSSL on desktop: 160 ns, 1.73× the fastest +AES-128-GCM seal, 1350 B, OpenSSL on nixos2: 352 ns, 1.43× the fastest +AES-128-GCM seal, 1350 B, OpenSSL on kixtop: 196 ns, 1.08× the fastest +AES-128-GCM seal, 1350 B, OpenSSL on ovh-iad: 561 ns, 1.41× the fastest +AES-128-GCM seal, 1350 B, OpenSSL on ovh-sea: 534 ns, 1.41× the fastest AES-128-GCM seal, 16 KB AES-128-GCM seal, 16 KB, rind on nixos: 1.38 µs, 1.00× the fastest -AES-128-GCM seal, 16 KB, rind on desktop: 781 ns, 1.00× the fastest +AES-128-GCM seal, 16 KB, rind on desktop: 799 ns, 1.00× the fastest AES-128-GCM seal, 16 KB, rind on nixos2: 2.33 µs, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch, of the AES-NI key expansion and block cipher's raw-pointer loads, and of the SIMD intrinsics as Intel's manual defines them, of its AEAD API's AES-GCM key setup, seal, and open, for AAD and messages under 2^32 bytes, down to HACL*'s Vale AES-GCM routines, composed with Vale's F* proofs of Gcm_blocks_stdcall, Gcm_blocks_decrypt_stdcall, and Compute_iv_stdcall, of the code Vale prints at HACL* f557259007db, which rind imports ✓ -AES-128-GCM seal, 16 KB, rind on kixtop: 1.49 µs, 1.03× the fastest +AES-128-GCM seal, 16 KB, rind on kixtop: 1.48 µs, 1.03× the fastest AES-128-GCM seal, 16 KB, rind on ovh-iad: 3.83 µs, 1.01× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch, of the AES-NI key expansion and block cipher's raw-pointer loads, and of the SIMD intrinsics as Intel's manual defines them, of its AEAD API's AES-GCM key setup, seal, and open, for AAD and messages under 2^32 bytes, down to HACL*'s Vale AES-GCM routines, composed with Vale's F* proofs of Gcm_blocks_stdcall, Gcm_blocks_decrypt_stdcall, and Compute_iv_stdcall, of the code Vale prints at HACL* f557259007db, which rind imports ✓ AES-128-GCM seal, 16 KB, rind on ovh-sea: 3.67 µs, 1.02× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch, of the AES-NI key expansion and block cipher's raw-pointer loads, and of the SIMD intrinsics as Intel's manual defines them, of its AEAD API's AES-GCM key setup, seal, and open, for AAD and messages under 2^32 bytes, down to HACL*'s Vale AES-GCM routines, composed with Vale's F* proofs of Gcm_blocks_stdcall, Gcm_blocks_decrypt_stdcall, and Compute_iv_stdcall, of the code Vale prints at HACL* f557259007db, which rind imports ✓ -AES-128-GCM seal, 16 KB, aws-lc-rs on nixos: 2.63 µs, 1.91× the fastest -AES-128-GCM seal, 16 KB, aws-lc-rs on desktop: 1.33 µs, 1.70× the fastest -AES-128-GCM seal, 16 KB, aws-lc-rs on nixos2: 2.42 µs, 1.04× the fastest -AES-128-GCM seal, 16 KB, aws-lc-rs on kixtop: 1.45 µs, 1.00× the fastest -AES-128-GCM seal, 16 KB, aws-lc-rs on ovh-iad: 3.79 µs, 1.00× the fastest -AES-128-GCM seal, 16 KB, aws-lc-rs on ovh-sea: 3.70 µs, 1.02× the fastest -AES-128-GCM seal, 16 KB, ring on nixos: 1.39 µs, 1.01× the fastest -AES-128-GCM seal, 16 KB, ring on desktop: 799 ns, 1.02× the fastest -AES-128-GCM seal, 16 KB, ring on nixos2: 2.38 µs, 1.02× the fastest -AES-128-GCM seal, 16 KB, ring on kixtop: 1.97 µs, 1.35× the fastest -AES-128-GCM seal, 16 KB, ring on ovh-iad: 3.89 µs, 1.03× the fastest -AES-128-GCM seal, 16 KB, ring on ovh-sea: 3.61 µs, 1.00× the fastest -AES-128-GCM seal, 16 KB, RustCrypto + dalek on nixos: 4.28 µs, 3.10× the fastest -AES-128-GCM seal, 16 KB, RustCrypto + dalek on desktop: 2.49 µs, 3.19× the fastest -AES-128-GCM seal, 16 KB, RustCrypto + dalek on nixos2: 5.62 µs, 2.41× the fastest -AES-128-GCM seal, 16 KB, RustCrypto + dalek on kixtop: 2.36 µs, 1.62× the fastest -AES-128-GCM seal, 16 KB, RustCrypto + dalek on ovh-iad: 8.86 µs, 2.34× the fastest -AES-128-GCM seal, 16 KB, RustCrypto + dalek on ovh-sea: 8.62 µs, 2.39× the fastest -AES-128-GCM seal, 16 KB, graviola on nixos: 2.57 µs, 1.86× the fastest -AES-128-GCM seal, 16 KB, graviola on desktop: 2.02 µs, 2.59× the fastest -AES-128-GCM seal, 16 KB, graviola on nixos2: 3.75 µs, 1.61× the fastest -AES-128-GCM seal, 16 KB, graviola on kixtop: 1.60 µs, 1.10× the fastest -AES-128-GCM seal, 16 KB, libcrux on nixos: 53.90 µs, 39.11× the fastest -AES-128-GCM seal, 16 KB, libcrux on desktop: 22.02 µs, 28.20× the fastest -AES-128-GCM seal, 16 KB, libcrux on nixos2: 39.94 µs, 17.11× the fastest -AES-128-GCM seal, 16 KB, libcrux on kixtop: 7.15 µs, 4.92× the fastest -AES-128-GCM seal, 16 KB, libcrux on ovh-iad: 61.68 µs, 16.28× the fastest -AES-128-GCM seal, 16 KB, libcrux on ovh-sea: 60.59 µs, 16.80× the fastest -AES-128-GCM seal, 16 KB, OpenSSL on nixos: 2.61 µs, 1.89× the fastest -AES-128-GCM seal, 16 KB, OpenSSL on desktop: 1.34 µs, 1.72× the fastest -AES-128-GCM seal, 16 KB, OpenSSL on nixos2: 2.45 µs, 1.05× the fastest -AES-128-GCM seal, 16 KB, OpenSSL on kixtop: 1.52 µs, 1.04× the fastest -AES-128-GCM seal, 16 KB, OpenSSL on ovh-iad: 4.17 µs, 1.10× the fastest -AES-128-GCM seal, 16 KB, OpenSSL on ovh-sea: 3.84 µs, 1.06× the fastest +AES-128-GCM seal, 16 KB, rind (DIT held) on kixtop: 1.43 µs, 0.99× the fastest +AES-128-GCM seal, 16 KB, aws-lc-rs on nixos: 2.63 µs, 1.91× the fastest +AES-128-GCM seal, 16 KB, aws-lc-rs on desktop: 1.32 µs, 1.66× the fastest +AES-128-GCM seal, 16 KB, aws-lc-rs on nixos2: 2.42 µs, 1.04× the fastest +AES-128-GCM seal, 16 KB, aws-lc-rs on kixtop: 1.44 µs, 1.00× the fastest +AES-128-GCM seal, 16 KB, aws-lc-rs on ovh-iad: 3.79 µs, 1.00× the fastest +AES-128-GCM seal, 16 KB, aws-lc-rs on ovh-sea: 3.70 µs, 1.02× the fastest +AES-128-GCM seal, 16 KB, ring on nixos: 1.39 µs, 1.01× the fastest +AES-128-GCM seal, 16 KB, ring on desktop: 818 ns, 1.02× the fastest +AES-128-GCM seal, 16 KB, ring on nixos2: 2.38 µs, 1.02× the fastest +AES-128-GCM seal, 16 KB, ring on kixtop: 1.94 µs, 1.34× the fastest +AES-128-GCM seal, 16 KB, ring on ovh-iad: 3.89 µs, 1.03× the fastest +AES-128-GCM seal, 16 KB, ring on ovh-sea: 3.61 µs, 1.00× the fastest +AES-128-GCM seal, 16 KB, RustCrypto + dalek on nixos: 4.28 µs, 3.10× the fastest +AES-128-GCM seal, 16 KB, RustCrypto + dalek on desktop: 2.49 µs, 3.11× the fastest +AES-128-GCM seal, 16 KB, RustCrypto + dalek on nixos2: 5.62 µs, 2.41× the fastest +AES-128-GCM seal, 16 KB, RustCrypto + dalek on kixtop: 2.26 µs, 1.57× the fastest +AES-128-GCM seal, 16 KB, RustCrypto + dalek on ovh-iad: 8.86 µs, 2.34× the fastest +AES-128-GCM seal, 16 KB, RustCrypto + dalek on ovh-sea: 8.62 µs, 2.39× the fastest +AES-128-GCM seal, 16 KB, graviola on nixos: 2.57 µs, 1.86× the fastest +AES-128-GCM seal, 16 KB, graviola on desktop: 2.05 µs, 2.57× the fastest +AES-128-GCM seal, 16 KB, graviola on nixos2: 3.75 µs, 1.61× the fastest +AES-128-GCM seal, 16 KB, graviola on kixtop: 1.60 µs, 1.11× the fastest +AES-128-GCM seal, 16 KB, libcrux on nixos: 53.90 µs, 39.11× the fastest +AES-128-GCM seal, 16 KB, libcrux on desktop: 22.05 µs, 27.59× the fastest +AES-128-GCM seal, 16 KB, libcrux on nixos2: 39.94 µs, 17.11× the fastest +AES-128-GCM seal, 16 KB, libcrux on kixtop: 6.78 µs, 4.70× the fastest +AES-128-GCM seal, 16 KB, libcrux on ovh-iad: 61.68 µs, 16.28× the fastest +AES-128-GCM seal, 16 KB, libcrux on ovh-sea: 60.59 µs, 16.80× the fastest +AES-128-GCM seal, 16 KB, OpenSSL on nixos: 2.61 µs, 1.89× the fastest +AES-128-GCM seal, 16 KB, OpenSSL on desktop: 1.35 µs, 1.68× the fastest +AES-128-GCM seal, 16 KB, OpenSSL on nixos2: 2.45 µs, 1.05× the fastest +AES-128-GCM seal, 16 KB, OpenSSL on kixtop: 1.51 µs, 1.05× the fastest +AES-128-GCM seal, 16 KB, OpenSSL on ovh-iad: 4.17 µs, 1.10× the fastest +AES-128-GCM seal, 16 KB, OpenSSL on ovh-sea: 3.84 µs, 1.06× the fastest AES-128-GCM open, 32 B AES-128-GCM open, 32 B, rind on nixos: 44 ns, 1.00× the fastest -AES-128-GCM open, 32 B, rind on desktop: 28 ns, 1.00× the fastest +AES-128-GCM open, 32 B, rind on desktop: 15 ns, 1.00× the fastest AES-128-GCM open, 32 B, rind on nixos2: 38 ns, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch, of the AES-NI key expansion and block cipher's raw-pointer loads, and of the SIMD intrinsics as Intel's manual defines them, of its AEAD API's AES-GCM key setup, seal, and open, for AAD and messages under 2^32 bytes, down to HACL*'s Vale AES-GCM routines, composed with Vale's F* proofs of Gcm_blocks_stdcall, Gcm_blocks_decrypt_stdcall, and Compute_iv_stdcall, of the code Vale prints at HACL* f557259007db, which rind imports ✓ -AES-128-GCM open, 32 B, rind on kixtop: 47 ns, 1.71× the fastest +AES-128-GCM open, 32 B, rind on kixtop: 47 ns, 1.69× the fastest AES-128-GCM open, 32 B, rind on ovh-iad: 62 ns, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch, of the AES-NI key expansion and block cipher's raw-pointer loads, and of the SIMD intrinsics as Intel's manual defines them, of its AEAD API's AES-GCM key setup, seal, and open, for AAD and messages under 2^32 bytes, down to HACL*'s Vale AES-GCM routines, composed with Vale's F* proofs of Gcm_blocks_stdcall, Gcm_blocks_decrypt_stdcall, and Compute_iv_stdcall, of the code Vale prints at HACL* f557259007db, which rind imports ✓ AES-128-GCM open, 32 B, rind on ovh-sea: 60 ns, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch, of the AES-NI key expansion and block cipher's raw-pointer loads, and of the SIMD intrinsics as Intel's manual defines them, of its AEAD API's AES-GCM key setup, seal, and open, for AAD and messages under 2^32 bytes, down to HACL*'s Vale AES-GCM routines, composed with Vale's F* proofs of Gcm_blocks_stdcall, Gcm_blocks_decrypt_stdcall, and Compute_iv_stdcall, of the code Vale prints at HACL* f557259007db, which rind imports ✓ -AES-128-GCM open, 32 B, aws-lc-rs on nixos: 72 ns, 1.63× the fastest -AES-128-GCM open, 32 B, aws-lc-rs on desktop: 37 ns, 1.31× the fastest -AES-128-GCM open, 32 B, aws-lc-rs on nixos2: 90 ns, 2.41× the fastest -AES-128-GCM open, 32 B, aws-lc-rs on kixtop: 47 ns, 1.70× the fastest -AES-128-GCM open, 32 B, aws-lc-rs on ovh-iad: 142 ns, 2.29× the fastest -AES-128-GCM open, 32 B, aws-lc-rs on ovh-sea: 140 ns, 2.35× the fastest -AES-128-GCM open, 32 B, ring on nixos: 58 ns, 1.30× the fastest -AES-128-GCM open, 32 B, ring on desktop: 42 ns, 1.49× the fastest -AES-128-GCM open, 32 B, ring on nixos2: 98 ns, 2.60× the fastest -AES-128-GCM open, 32 B, ring on kixtop: 39 ns, 1.42× the fastest -AES-128-GCM open, 32 B, ring on ovh-iad: 124 ns, 2.01× the fastest -AES-128-GCM open, 32 B, ring on ovh-sea: 126 ns, 2.11× the fastest -AES-128-GCM open, 32 B, RustCrypto + dalek on nixos: 102 ns, 2.29× the fastest -AES-128-GCM open, 32 B, RustCrypto + dalek on desktop: 78 ns, 2.73× the fastest -AES-128-GCM open, 32 B, RustCrypto + dalek on nixos2: 104 ns, 2.78× the fastest -AES-128-GCM open, 32 B, RustCrypto + dalek on kixtop: 28 ns, 1.00× the fastest -AES-128-GCM open, 32 B, RustCrypto + dalek on ovh-iad: 166 ns, 2.67× the fastest -AES-128-GCM open, 32 B, RustCrypto + dalek on ovh-sea: 161 ns, 2.70× the fastest -AES-128-GCM open, 32 B, graviola on nixos: 65 ns, 1.46× the fastest -AES-128-GCM open, 32 B, graviola on desktop: 36 ns, 1.26× the fastest -AES-128-GCM open, 32 B, graviola on nixos2: 69 ns, 1.83× the fastest -AES-128-GCM open, 32 B, graviola on kixtop: 85 ns, 3.06× the fastest -AES-128-GCM open, 32 B, libcrux on nixos: 317 ns, 7.15× the fastest -AES-128-GCM open, 32 B, libcrux on desktop: 159 ns, 5.59× the fastest -AES-128-GCM open, 32 B, libcrux on nixos2: 303 ns, 8.06× the fastest -AES-128-GCM open, 32 B, libcrux on kixtop: 64 ns, 2.30× the fastest -AES-128-GCM open, 32 B, libcrux on ovh-iad: 485 ns, 7.81× the fastest -AES-128-GCM open, 32 B, libcrux on ovh-sea: 465 ns, 7.79× the fastest -AES-128-GCM open, 32 B, OpenSSL on nixos: 118 ns, 2.65× the fastest -AES-128-GCM open, 32 B, OpenSSL on desktop: 58 ns, 2.02× the fastest -AES-128-GCM open, 32 B, OpenSSL on nixos2: 159 ns, 4.24× the fastest -AES-128-GCM open, 32 B, OpenSSL on kixtop: 65 ns, 2.36× the fastest -AES-128-GCM open, 32 B, OpenSSL on ovh-iad: 267 ns, 4.30× the fastest -AES-128-GCM open, 32 B, OpenSSL on ovh-sea: 241 ns, 4.04× the fastest +AES-128-GCM open, 32 B, rind (DIT held) on kixtop: 13 ns, 0.46× the fastest +AES-128-GCM open, 32 B, aws-lc-rs on nixos: 72 ns, 1.63× the fastest +AES-128-GCM open, 32 B, aws-lc-rs on desktop: 38 ns, 2.50× the fastest +AES-128-GCM open, 32 B, aws-lc-rs on nixos2: 90 ns, 2.41× the fastest +AES-128-GCM open, 32 B, aws-lc-rs on kixtop: 47 ns, 1.71× the fastest +AES-128-GCM open, 32 B, aws-lc-rs on ovh-iad: 142 ns, 2.29× the fastest +AES-128-GCM open, 32 B, aws-lc-rs on ovh-sea: 140 ns, 2.35× the fastest +AES-128-GCM open, 32 B, ring on nixos: 58 ns, 1.30× the fastest +AES-128-GCM open, 32 B, ring on desktop: 41 ns, 2.71× the fastest +AES-128-GCM open, 32 B, ring on nixos2: 98 ns, 2.60× the fastest +AES-128-GCM open, 32 B, ring on kixtop: 39 ns, 1.42× the fastest +AES-128-GCM open, 32 B, ring on ovh-iad: 124 ns, 2.01× the fastest +AES-128-GCM open, 32 B, ring on ovh-sea: 126 ns, 2.11× the fastest +AES-128-GCM open, 32 B, RustCrypto + dalek on nixos: 102 ns, 2.29× the fastest +AES-128-GCM open, 32 B, RustCrypto + dalek on desktop: 78 ns, 5.15× the fastest +AES-128-GCM open, 32 B, RustCrypto + dalek on nixos2: 104 ns, 2.78× the fastest +AES-128-GCM open, 32 B, RustCrypto + dalek on kixtop: 28 ns, 1.00× the fastest +AES-128-GCM open, 32 B, RustCrypto + dalek on ovh-iad: 166 ns, 2.67× the fastest +AES-128-GCM open, 32 B, RustCrypto + dalek on ovh-sea: 161 ns, 2.70× the fastest +AES-128-GCM open, 32 B, graviola on nixos: 65 ns, 1.46× the fastest +AES-128-GCM open, 32 B, graviola on desktop: 36 ns, 2.40× the fastest +AES-128-GCM open, 32 B, graviola on nixos2: 69 ns, 1.83× the fastest +AES-128-GCM open, 32 B, graviola on kixtop: 84 ns, 3.04× the fastest +AES-128-GCM open, 32 B, libcrux on nixos: 317 ns, 7.15× the fastest +AES-128-GCM open, 32 B, libcrux on desktop: 162 ns, 10.67× the fastest +AES-128-GCM open, 32 B, libcrux on nixos2: 303 ns, 8.06× the fastest +AES-128-GCM open, 32 B, libcrux on kixtop: 61 ns, 2.23× the fastest +AES-128-GCM open, 32 B, libcrux on ovh-iad: 485 ns, 7.81× the fastest +AES-128-GCM open, 32 B, libcrux on ovh-sea: 465 ns, 7.79× the fastest +AES-128-GCM open, 32 B, OpenSSL on nixos: 118 ns, 2.65× the fastest +AES-128-GCM open, 32 B, OpenSSL on desktop: 59 ns, 3.89× the fastest +AES-128-GCM open, 32 B, OpenSSL on nixos2: 159 ns, 4.24× the fastest +AES-128-GCM open, 32 B, OpenSSL on kixtop: 66 ns, 2.38× the fastest +AES-128-GCM open, 32 B, OpenSSL on ovh-iad: 267 ns, 4.30× the fastest +AES-128-GCM open, 32 B, OpenSSL on ovh-sea: 241 ns, 4.04× the fastest AES-128-GCM open, 1350 B AES-128-GCM open, 1350 B, rind on nixos: 174 ns, 1.00× the fastest -AES-128-GCM open, 1350 B, rind on desktop: 99 ns, 1.00× the fastest +AES-128-GCM open, 1350 B, rind on desktop: 89 ns, 1.00× the fastest AES-128-GCM open, 1350 B, rind on nixos2: 236 ns, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch, of the AES-NI key expansion and block cipher's raw-pointer loads, and of the SIMD intrinsics as Intel's manual defines them, of its AEAD API's AES-GCM key setup, seal, and open, for AAD and messages under 2^32 bytes, down to HACL*'s Vale AES-GCM routines, composed with Vale's F* proofs of Gcm_blocks_stdcall, Gcm_blocks_decrypt_stdcall, and Compute_iv_stdcall, of the code Vale prints at HACL* f557259007db, which rind imports ✓ -AES-128-GCM open, 1350 B, rind on kixtop: 214 ns, 1.11× the fastest +AES-128-GCM open, 1350 B, rind on kixtop: 210 ns, 1.10× the fastest AES-128-GCM open, 1350 B, rind on ovh-iad: 406 ns, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch, of the AES-NI key expansion and block cipher's raw-pointer loads, and of the SIMD intrinsics as Intel's manual defines them, of its AEAD API's AES-GCM key setup, seal, and open, for AAD and messages under 2^32 bytes, down to HACL*'s Vale AES-GCM routines, composed with Vale's F* proofs of Gcm_blocks_stdcall, Gcm_blocks_decrypt_stdcall, and Compute_iv_stdcall, of the code Vale prints at HACL* f557259007db, which rind imports ✓ AES-128-GCM open, 1350 B, rind on ovh-sea: 371 ns, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch, of the AES-NI key expansion and block cipher's raw-pointer loads, and of the SIMD intrinsics as Intel's manual defines them, of its AEAD API's AES-GCM key setup, seal, and open, for AAD and messages under 2^32 bytes, down to HACL*'s Vale AES-GCM routines, composed with Vale's F* proofs of Gcm_blocks_stdcall, Gcm_blocks_decrypt_stdcall, and Compute_iv_stdcall, of the code Vale prints at HACL* f557259007db, which rind imports ✓ -AES-128-GCM open, 1350 B, aws-lc-rs on nixos: 298 ns, 1.71× the fastest -AES-128-GCM open, 1350 B, aws-lc-rs on desktop: 149 ns, 1.51× the fastest -AES-128-GCM open, 1350 B, aws-lc-rs on nixos2: 285 ns, 1.21× the fastest -AES-128-GCM open, 1350 B, aws-lc-rs on kixtop: 193 ns, 1.00× the fastest -AES-128-GCM open, 1350 B, aws-lc-rs on ovh-iad: 525 ns, 1.29× the fastest -AES-128-GCM open, 1350 B, aws-lc-rs on ovh-sea: 437 ns, 1.18× the fastest -AES-128-GCM open, 1350 B, ring on nixos: 185 ns, 1.06× the fastest -AES-128-GCM open, 1350 B, ring on desktop: 114 ns, 1.16× the fastest -AES-128-GCM open, 1350 B, ring on nixos2: 296 ns, 1.25× the fastest -AES-128-GCM open, 1350 B, ring on kixtop: 247 ns, 1.28× the fastest -AES-128-GCM open, 1350 B, ring on ovh-iad: 442 ns, 1.09× the fastest -AES-128-GCM open, 1350 B, ring on ovh-sea: 422 ns, 1.14× the fastest -AES-128-GCM open, 1350 B, RustCrypto + dalek on nixos: 451 ns, 2.58× the fastest -AES-128-GCM open, 1350 B, RustCrypto + dalek on desktop: 282 ns, 2.86× the fastest -AES-128-GCM open, 1350 B, RustCrypto + dalek on nixos2: 564 ns, 2.39× the fastest -AES-128-GCM open, 1350 B, RustCrypto + dalek on kixtop: 237 ns, 1.23× the fastest -AES-128-GCM open, 1350 B, RustCrypto + dalek on ovh-iad: 915 ns, 2.26× the fastest -AES-128-GCM open, 1350 B, RustCrypto + dalek on ovh-sea: 874 ns, 2.36× the fastest -AES-128-GCM open, 1350 B, graviola on nixos: 305 ns, 1.75× the fastest -AES-128-GCM open, 1350 B, graviola on desktop: 176 ns, 1.79× the fastest -AES-128-GCM open, 1350 B, graviola on nixos2: 358 ns, 1.51× the fastest -AES-128-GCM open, 1350 B, graviola on kixtop: 226 ns, 1.17× the fastest -AES-128-GCM open, 1350 B, libcrux on nixos: 3.92 µs, 22.46× the fastest -AES-128-GCM open, 1350 B, libcrux on desktop: 2.00 µs, 20.29× the fastest -AES-128-GCM open, 1350 B, libcrux on nixos2: 3.48 µs, 14.75× the fastest -AES-128-GCM open, 1350 B, libcrux on kixtop: 647 ns, 3.35× the fastest -AES-128-GCM open, 1350 B, libcrux on ovh-iad: 5.38 µs, 13.25× the fastest -AES-128-GCM open, 1350 B, libcrux on ovh-sea: 5.32 µs, 14.33× the fastest -AES-128-GCM open, 1350 B, OpenSSL on nixos: 333 ns, 1.91× the fastest -AES-128-GCM open, 1350 B, OpenSSL on desktop: 159 ns, 1.62× the fastest -AES-128-GCM open, 1350 B, OpenSSL on nixos2: 355 ns, 1.50× the fastest -AES-128-GCM open, 1350 B, OpenSSL on kixtop: 199 ns, 1.03× the fastest -AES-128-GCM open, 1350 B, OpenSSL on ovh-iad: 565 ns, 1.39× the fastest -AES-128-GCM open, 1350 B, OpenSSL on ovh-sea: 546 ns, 1.47× the fastest +AES-128-GCM open, 1350 B, rind (DIT held) on kixtop: 178 ns, 0.93× the fastest +AES-128-GCM open, 1350 B, aws-lc-rs on nixos: 298 ns, 1.71× the fastest +AES-128-GCM open, 1350 B, aws-lc-rs on desktop: 151 ns, 1.69× the fastest +AES-128-GCM open, 1350 B, aws-lc-rs on nixos2: 285 ns, 1.21× the fastest +AES-128-GCM open, 1350 B, aws-lc-rs on kixtop: 191 ns, 1.00× the fastest +AES-128-GCM open, 1350 B, aws-lc-rs on ovh-iad: 525 ns, 1.29× the fastest +AES-128-GCM open, 1350 B, aws-lc-rs on ovh-sea: 437 ns, 1.18× the fastest +AES-128-GCM open, 1350 B, ring on nixos: 185 ns, 1.06× the fastest +AES-128-GCM open, 1350 B, ring on desktop: 114 ns, 1.27× the fastest +AES-128-GCM open, 1350 B, ring on nixos2: 296 ns, 1.25× the fastest +AES-128-GCM open, 1350 B, ring on kixtop: 243 ns, 1.28× the fastest +AES-128-GCM open, 1350 B, ring on ovh-iad: 442 ns, 1.09× the fastest +AES-128-GCM open, 1350 B, ring on ovh-sea: 422 ns, 1.14× the fastest +AES-128-GCM open, 1350 B, RustCrypto + dalek on nixos: 451 ns, 2.58× the fastest +AES-128-GCM open, 1350 B, RustCrypto + dalek on desktop: 283 ns, 3.17× the fastest +AES-128-GCM open, 1350 B, RustCrypto + dalek on nixos2: 564 ns, 2.39× the fastest +AES-128-GCM open, 1350 B, RustCrypto + dalek on kixtop: 232 ns, 1.22× the fastest +AES-128-GCM open, 1350 B, RustCrypto + dalek on ovh-iad: 915 ns, 2.26× the fastest +AES-128-GCM open, 1350 B, RustCrypto + dalek on ovh-sea: 874 ns, 2.36× the fastest +AES-128-GCM open, 1350 B, graviola on nixos: 305 ns, 1.75× the fastest +AES-128-GCM open, 1350 B, graviola on desktop: 175 ns, 1.95× the fastest +AES-128-GCM open, 1350 B, graviola on nixos2: 358 ns, 1.51× the fastest +AES-128-GCM open, 1350 B, graviola on kixtop: 225 ns, 1.18× the fastest +AES-128-GCM open, 1350 B, libcrux on nixos: 3.92 µs, 22.46× the fastest +AES-128-GCM open, 1350 B, libcrux on desktop: 1.99 µs, 22.29× the fastest +AES-128-GCM open, 1350 B, libcrux on nixos2: 3.48 µs, 14.75× the fastest +AES-128-GCM open, 1350 B, libcrux on kixtop: 618 ns, 3.24× the fastest +AES-128-GCM open, 1350 B, libcrux on ovh-iad: 5.38 µs, 13.25× the fastest +AES-128-GCM open, 1350 B, libcrux on ovh-sea: 5.32 µs, 14.33× the fastest +AES-128-GCM open, 1350 B, OpenSSL on nixos: 333 ns, 1.91× the fastest +AES-128-GCM open, 1350 B, OpenSSL on desktop: 162 ns, 1.81× the fastest +AES-128-GCM open, 1350 B, OpenSSL on nixos2: 355 ns, 1.50× the fastest +AES-128-GCM open, 1350 B, OpenSSL on kixtop: 199 ns, 1.05× the fastest +AES-128-GCM open, 1350 B, OpenSSL on ovh-iad: 565 ns, 1.39× the fastest +AES-128-GCM open, 1350 B, OpenSSL on ovh-sea: 546 ns, 1.47× the fastest AES-128-GCM open, 16 KB AES-128-GCM open, 16 KB, rind on nixos: 1.44 µs, 1.00× the fastest -AES-128-GCM open, 16 KB, rind on desktop: 816 ns, 1.00× the fastest +AES-128-GCM open, 16 KB, rind on desktop: 793 ns, 1.00× the fastest AES-128-GCM open, 16 KB, rind on nixos2: 2.52 µs, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch, of the AES-NI key expansion and block cipher's raw-pointer loads, and of the SIMD intrinsics as Intel's manual defines them, of its AEAD API's AES-GCM key setup, seal, and open, for AAD and messages under 2^32 bytes, down to HACL*'s Vale AES-GCM routines, composed with Vale's F* proofs of Gcm_blocks_stdcall, Gcm_blocks_decrypt_stdcall, and Compute_iv_stdcall, of the code Vale prints at HACL* f557259007db, which rind imports ✓ -AES-128-GCM open, 16 KB, rind on kixtop: 1.61 µs, 1.02× the fastest +AES-128-GCM open, 16 KB, rind on kixtop: 1.58 µs, 1.00× the fastest AES-128-GCM open, 16 KB, rind on ovh-iad: 3.99 µs, 1.03× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch, of the AES-NI key expansion and block cipher's raw-pointer loads, and of the SIMD intrinsics as Intel's manual defines them, of its AEAD API's AES-GCM key setup, seal, and open, for AAD and messages under 2^32 bytes, down to HACL*'s Vale AES-GCM routines, composed with Vale's F* proofs of Gcm_blocks_stdcall, Gcm_blocks_decrypt_stdcall, and Compute_iv_stdcall, of the code Vale prints at HACL* f557259007db, which rind imports ✓ AES-128-GCM open, 16 KB, rind on ovh-sea: 3.76 µs, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch, of the AES-NI key expansion and block cipher's raw-pointer loads, and of the SIMD intrinsics as Intel's manual defines them, of its AEAD API's AES-GCM key setup, seal, and open, for AAD and messages under 2^32 bytes, down to HACL*'s Vale AES-GCM routines, composed with Vale's F* proofs of Gcm_blocks_stdcall, Gcm_blocks_decrypt_stdcall, and Compute_iv_stdcall, of the code Vale prints at HACL* f557259007db, which rind imports ✓ -AES-128-GCM open, 16 KB, aws-lc-rs on nixos: 2.72 µs, 1.89× the fastest -AES-128-GCM open, 16 KB, aws-lc-rs on desktop: 1.28 µs, 1.56× the fastest -AES-128-GCM open, 16 KB, aws-lc-rs on nixos2: 2.60 µs, 1.03× the fastest -AES-128-GCM open, 16 KB, aws-lc-rs on kixtop: 1.57 µs, 1.00× the fastest -AES-128-GCM open, 16 KB, aws-lc-rs on ovh-iad: 3.92 µs, 1.02× the fastest -AES-128-GCM open, 16 KB, aws-lc-rs on ovh-sea: 3.81 µs, 1.02× the fastest -AES-128-GCM open, 16 KB, ring on nixos: 1.45 µs, 1.01× the fastest -AES-128-GCM open, 16 KB, ring on desktop: 829 ns, 1.02× the fastest -AES-128-GCM open, 16 KB, ring on nixos2: 2.62 µs, 1.04× the fastest -AES-128-GCM open, 16 KB, ring on kixtop: 2.18 µs, 1.39× the fastest -AES-128-GCM open, 16 KB, ring on ovh-iad: 3.85 µs, 1.00× the fastest -AES-128-GCM open, 16 KB, ring on ovh-sea: 3.80 µs, 1.01× the fastest -AES-128-GCM open, 16 KB, RustCrypto + dalek on nixos: 4.29 µs, 2.98× the fastest -AES-128-GCM open, 16 KB, RustCrypto + dalek on desktop: 2.54 µs, 3.12× the fastest -AES-128-GCM open, 16 KB, RustCrypto + dalek on nixos2: 5.75 µs, 2.28× the fastest -AES-128-GCM open, 16 KB, RustCrypto + dalek on kixtop: 2.46 µs, 1.57× the fastest -AES-128-GCM open, 16 KB, RustCrypto + dalek on ovh-iad: 8.92 µs, 2.31× the fastest -AES-128-GCM open, 16 KB, RustCrypto + dalek on ovh-sea: 8.76 µs, 2.33× the fastest -AES-128-GCM open, 16 KB, graviola on nixos: 2.65 µs, 1.84× the fastest -AES-128-GCM open, 16 KB, graviola on desktop: 1.42 µs, 1.73× the fastest -AES-128-GCM open, 16 KB, graviola on nixos2: 3.39 µs, 1.34× the fastest -AES-128-GCM open, 16 KB, graviola on kixtop: 1.71 µs, 1.09× the fastest -AES-128-GCM open, 16 KB, libcrux on nixos: 44.29 µs, 30.79× the fastest -AES-128-GCM open, 16 KB, libcrux on desktop: 22.31 µs, 27.33× the fastest -AES-128-GCM open, 16 KB, libcrux on nixos2: 41.66 µs, 16.52× the fastest -AES-128-GCM open, 16 KB, libcrux on kixtop: 6.97 µs, 4.44× the fastest -AES-128-GCM open, 16 KB, libcrux on ovh-iad: 61.44 µs, 15.94× the fastest -AES-128-GCM open, 16 KB, libcrux on ovh-sea: 60.04 µs, 15.98× the fastest -AES-128-GCM open, 16 KB, OpenSSL on nixos: 2.77 µs, 1.93× the fastest -AES-128-GCM open, 16 KB, OpenSSL on desktop: 1.30 µs, 1.59× the fastest -AES-128-GCM open, 16 KB, OpenSSL on nixos2: 2.85 µs, 1.13× the fastest -AES-128-GCM open, 16 KB, OpenSSL on kixtop: 1.66 µs, 1.06× the fastest -AES-128-GCM open, 16 KB, OpenSSL on ovh-iad: 4.23 µs, 1.10× the fastest -AES-128-GCM open, 16 KB, OpenSSL on ovh-sea: 3.95 µs, 1.05× the fastest +AES-128-GCM open, 16 KB, rind (DIT held) on kixtop: 1.56 µs, 0.99× the fastest +AES-128-GCM open, 16 KB, aws-lc-rs on nixos: 2.72 µs, 1.89× the fastest +AES-128-GCM open, 16 KB, aws-lc-rs on desktop: 1.26 µs, 1.59× the fastest +AES-128-GCM open, 16 KB, aws-lc-rs on nixos2: 2.60 µs, 1.03× the fastest +AES-128-GCM open, 16 KB, aws-lc-rs on kixtop: 1.58 µs, 1.00× the fastest +AES-128-GCM open, 16 KB, aws-lc-rs on ovh-iad: 3.92 µs, 1.02× the fastest +AES-128-GCM open, 16 KB, aws-lc-rs on ovh-sea: 3.81 µs, 1.02× the fastest +AES-128-GCM open, 16 KB, ring on nixos: 1.45 µs, 1.01× the fastest +AES-128-GCM open, 16 KB, ring on desktop: 814 ns, 1.03× the fastest +AES-128-GCM open, 16 KB, ring on nixos2: 2.62 µs, 1.04× the fastest +AES-128-GCM open, 16 KB, ring on kixtop: 2.16 µs, 1.37× the fastest +AES-128-GCM open, 16 KB, ring on ovh-iad: 3.85 µs, 1.00× the fastest +AES-128-GCM open, 16 KB, ring on ovh-sea: 3.80 µs, 1.01× the fastest +AES-128-GCM open, 16 KB, RustCrypto + dalek on nixos: 4.29 µs, 2.98× the fastest +AES-128-GCM open, 16 KB, RustCrypto + dalek on desktop: 2.51 µs, 3.16× the fastest +AES-128-GCM open, 16 KB, RustCrypto + dalek on nixos2: 5.75 µs, 2.28× the fastest +AES-128-GCM open, 16 KB, RustCrypto + dalek on kixtop: 2.43 µs, 1.54× the fastest +AES-128-GCM open, 16 KB, RustCrypto + dalek on ovh-iad: 8.92 µs, 2.31× the fastest +AES-128-GCM open, 16 KB, RustCrypto + dalek on ovh-sea: 8.76 µs, 2.33× the fastest +AES-128-GCM open, 16 KB, graviola on nixos: 2.65 µs, 1.84× the fastest +AES-128-GCM open, 16 KB, graviola on desktop: 1.40 µs, 1.76× the fastest +AES-128-GCM open, 16 KB, graviola on nixos2: 3.39 µs, 1.34× the fastest +AES-128-GCM open, 16 KB, graviola on kixtop: 1.71 µs, 1.09× the fastest +AES-128-GCM open, 16 KB, libcrux on nixos: 44.29 µs, 30.79× the fastest +AES-128-GCM open, 16 KB, libcrux on desktop: 21.94 µs, 27.67× the fastest +AES-128-GCM open, 16 KB, libcrux on nixos2: 41.66 µs, 16.52× the fastest +AES-128-GCM open, 16 KB, libcrux on kixtop: 6.82 µs, 4.32× the fastest +AES-128-GCM open, 16 KB, libcrux on ovh-iad: 61.44 µs, 15.94× the fastest +AES-128-GCM open, 16 KB, libcrux on ovh-sea: 60.04 µs, 15.98× the fastest +AES-128-GCM open, 16 KB, OpenSSL on nixos: 2.77 µs, 1.93× the fastest +AES-128-GCM open, 16 KB, OpenSSL on desktop: 1.29 µs, 1.62× the fastest +AES-128-GCM open, 16 KB, OpenSSL on nixos2: 2.85 µs, 1.13× the fastest +AES-128-GCM open, 16 KB, OpenSSL on kixtop: 1.65 µs, 1.05× the fastest +AES-128-GCM open, 16 KB, OpenSSL on ovh-iad: 4.23 µs, 1.10× the fastest +AES-128-GCM open, 16 KB, OpenSSL on ovh-sea: 3.95 µs, 1.05× the fastest AES-256-GCM seal, 32 B AES-256-GCM seal, 32 B, rind on nixos: 41 ns, 1.00× the fastest -AES-256-GCM seal, 32 B, rind on desktop: 20 ns, 1.00× the fastest +AES-256-GCM seal, 32 B, rind on desktop: 21 ns, 1.00× the fastest AES-256-GCM seal, 32 B, rind on nixos2: 49 ns, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch, of the AES-NI key expansion and block cipher's raw-pointer loads, and of the SIMD intrinsics as Intel's manual defines them, of its AEAD API's AES-GCM key setup, seal, and open, for AAD and messages under 2^32 bytes, down to HACL*'s Vale AES-GCM routines, composed with Vale's F* proofs of Gcm_blocks_stdcall, Gcm_blocks_decrypt_stdcall, and Compute_iv_stdcall, of the code Vale prints at HACL* f557259007db, which rind imports ✓ -AES-256-GCM seal, 32 B, rind on kixtop: 61 ns, 2.44× the fastest +AES-256-GCM seal, 32 B, rind on kixtop: 61 ns, 2.46× the fastest AES-256-GCM seal, 32 B, rind on ovh-iad: 75 ns, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch, of the AES-NI key expansion and block cipher's raw-pointer loads, and of the SIMD intrinsics as Intel's manual defines them, of its AEAD API's AES-GCM key setup, seal, and open, for AAD and messages under 2^32 bytes, down to HACL*'s Vale AES-GCM routines, composed with Vale's F* proofs of Gcm_blocks_stdcall, Gcm_blocks_decrypt_stdcall, and Compute_iv_stdcall, of the code Vale prints at HACL* f557259007db, which rind imports ✓ AES-256-GCM seal, 32 B, rind on ovh-sea: 74 ns, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch, of the AES-NI key expansion and block cipher's raw-pointer loads, and of the SIMD intrinsics as Intel's manual defines them, of its AEAD API's AES-GCM key setup, seal, and open, for AAD and messages under 2^32 bytes, down to HACL*'s Vale AES-GCM routines, composed with Vale's F* proofs of Gcm_blocks_stdcall, Gcm_blocks_decrypt_stdcall, and Compute_iv_stdcall, of the code Vale prints at HACL* f557259007db, which rind imports ✓ -AES-256-GCM seal, 32 B, aws-lc-rs on nixos: 82 ns, 1.99× the fastest -AES-256-GCM seal, 32 B, aws-lc-rs on desktop: 40 ns, 1.99× the fastest -AES-256-GCM seal, 32 B, aws-lc-rs on nixos2: 95 ns, 1.96× the fastest -AES-256-GCM seal, 32 B, aws-lc-rs on kixtop: 54 ns, 2.18× the fastest -AES-256-GCM seal, 32 B, aws-lc-rs on ovh-iad: 155 ns, 2.05× the fastest -AES-256-GCM seal, 32 B, aws-lc-rs on ovh-sea: 147 ns, 2.00× the fastest -AES-256-GCM seal, 32 B, ring on nixos: 57 ns, 1.38× the fastest -AES-256-GCM seal, 32 B, ring on desktop: 43 ns, 2.16× the fastest -AES-256-GCM seal, 32 B, ring on nixos2: 75 ns, 1.54× the fastest -AES-256-GCM seal, 32 B, ring on kixtop: 45 ns, 1.82× the fastest -AES-256-GCM seal, 32 B, ring on ovh-iad: 122 ns, 1.62× the fastest -AES-256-GCM seal, 32 B, ring on ovh-sea: 119 ns, 1.61× the fastest -AES-256-GCM seal, 32 B, RustCrypto + dalek on nixos: 101 ns, 2.45× the fastest -AES-256-GCM seal, 32 B, RustCrypto + dalek on desktop: 77 ns, 3.90× the fastest -AES-256-GCM seal, 32 B, RustCrypto + dalek on nixos2: 107 ns, 2.21× the fastest -AES-256-GCM seal, 32 B, RustCrypto + dalek on kixtop: 25 ns, 1.00× the fastest -AES-256-GCM seal, 32 B, RustCrypto + dalek on ovh-iad: 170 ns, 2.25× the fastest -AES-256-GCM seal, 32 B, RustCrypto + dalek on ovh-sea: 166 ns, 2.25× the fastest -AES-256-GCM seal, 32 B, graviola on nixos: 74 ns, 1.81× the fastest -AES-256-GCM seal, 32 B, graviola on desktop: 44 ns, 2.22× the fastest -AES-256-GCM seal, 32 B, graviola on nixos2: 78 ns, 1.60× the fastest -AES-256-GCM seal, 32 B, graviola on kixtop: 79 ns, 3.18× the fastest -AES-256-GCM seal, 32 B, libcrux on nixos: 426 ns, 10.35× the fastest -AES-256-GCM seal, 32 B, libcrux on desktop: 216 ns, 10.88× the fastest -AES-256-GCM seal, 32 B, libcrux on nixos2: 344 ns, 7.07× the fastest -AES-256-GCM seal, 32 B, libcrux on kixtop: 53 ns, 2.15× the fastest -AES-256-GCM seal, 32 B, libcrux on ovh-iad: 542 ns, 7.18× the fastest -AES-256-GCM seal, 32 B, libcrux on ovh-sea: 525 ns, 7.13× the fastest -AES-256-GCM seal, 32 B, OpenSSL on nixos: 118 ns, 2.87× the fastest -AES-256-GCM seal, 32 B, OpenSSL on desktop: 58 ns, 2.93× the fastest -AES-256-GCM seal, 32 B, OpenSSL on nixos2: 161 ns, 3.32× the fastest -AES-256-GCM seal, 32 B, OpenSSL on kixtop: 67 ns, 2.72× the fastest -AES-256-GCM seal, 32 B, OpenSSL on ovh-iad: 252 ns, 3.34× the fastest -AES-256-GCM seal, 32 B, OpenSSL on ovh-sea: 245 ns, 3.32× the fastest +AES-256-GCM seal, 32 B, rind (DIT held) on kixtop: 12 ns, 0.48× the fastest +AES-256-GCM seal, 32 B, aws-lc-rs on nixos: 82 ns, 1.99× the fastest +AES-256-GCM seal, 32 B, aws-lc-rs on desktop: 39 ns, 1.83× the fastest +AES-256-GCM seal, 32 B, aws-lc-rs on nixos2: 95 ns, 1.96× the fastest +AES-256-GCM seal, 32 B, aws-lc-rs on kixtop: 53 ns, 2.14× the fastest +AES-256-GCM seal, 32 B, aws-lc-rs on ovh-iad: 155 ns, 2.05× the fastest +AES-256-GCM seal, 32 B, aws-lc-rs on ovh-sea: 147 ns, 2.00× the fastest +AES-256-GCM seal, 32 B, ring on nixos: 57 ns, 1.38× the fastest +AES-256-GCM seal, 32 B, ring on desktop: 43 ns, 2.02× the fastest +AES-256-GCM seal, 32 B, ring on nixos2: 75 ns, 1.54× the fastest +AES-256-GCM seal, 32 B, ring on kixtop: 45 ns, 1.80× the fastest +AES-256-GCM seal, 32 B, ring on ovh-iad: 122 ns, 1.62× the fastest +AES-256-GCM seal, 32 B, ring on ovh-sea: 119 ns, 1.61× the fastest +AES-256-GCM seal, 32 B, RustCrypto + dalek on nixos: 101 ns, 2.45× the fastest +AES-256-GCM seal, 32 B, RustCrypto + dalek on desktop: 78 ns, 3.66× the fastest +AES-256-GCM seal, 32 B, RustCrypto + dalek on nixos2: 107 ns, 2.21× the fastest +AES-256-GCM seal, 32 B, RustCrypto + dalek on kixtop: 25 ns, 1.00× the fastest +AES-256-GCM seal, 32 B, RustCrypto + dalek on ovh-iad: 170 ns, 2.25× the fastest +AES-256-GCM seal, 32 B, RustCrypto + dalek on ovh-sea: 166 ns, 2.25× the fastest +AES-256-GCM seal, 32 B, graviola on nixos: 74 ns, 1.81× the fastest +AES-256-GCM seal, 32 B, graviola on desktop: 45 ns, 2.08× the fastest +AES-256-GCM seal, 32 B, graviola on nixos2: 78 ns, 1.60× the fastest +AES-256-GCM seal, 32 B, graviola on kixtop: 79 ns, 3.17× the fastest +AES-256-GCM seal, 32 B, libcrux on nixos: 426 ns, 10.35× the fastest +AES-256-GCM seal, 32 B, libcrux on desktop: 217 ns, 10.16× the fastest +AES-256-GCM seal, 32 B, libcrux on nixos2: 344 ns, 7.07× the fastest +AES-256-GCM seal, 32 B, libcrux on kixtop: 52 ns, 2.08× the fastest +AES-256-GCM seal, 32 B, libcrux on ovh-iad: 542 ns, 7.18× the fastest +AES-256-GCM seal, 32 B, libcrux on ovh-sea: 525 ns, 7.13× the fastest +AES-256-GCM seal, 32 B, OpenSSL on nixos: 118 ns, 2.87× the fastest +AES-256-GCM seal, 32 B, OpenSSL on desktop: 61 ns, 2.87× the fastest +AES-256-GCM seal, 32 B, OpenSSL on nixos2: 161 ns, 3.32× the fastest +AES-256-GCM seal, 32 B, OpenSSL on kixtop: 67 ns, 2.69× the fastest +AES-256-GCM seal, 32 B, OpenSSL on ovh-iad: 252 ns, 3.34× the fastest +AES-256-GCM seal, 32 B, OpenSSL on ovh-sea: 245 ns, 3.32× the fastest AES-256-GCM seal, 1350 B AES-256-GCM seal, 1350 B, rind on nixos: 184 ns, 1.00× the fastest -AES-256-GCM seal, 1350 B, rind on desktop: 106 ns, 1.00× the fastest +AES-256-GCM seal, 1350 B, rind on desktop: 107 ns, 1.00× the fastest AES-256-GCM seal, 1350 B, rind on nixos2: 325 ns, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch, of the AES-NI key expansion and block cipher's raw-pointer loads, and of the SIMD intrinsics as Intel's manual defines them, of its AEAD API's AES-GCM key setup, seal, and open, for AAD and messages under 2^32 bytes, down to HACL*'s Vale AES-GCM routines, composed with Vale's F* proofs of Gcm_blocks_stdcall, Gcm_blocks_decrypt_stdcall, and Compute_iv_stdcall, of the code Vale prints at HACL* f557259007db, which rind imports ✓ -AES-256-GCM seal, 1350 B, rind on kixtop: 237 ns, 1.16× the fastest +AES-256-GCM seal, 1350 B, rind on kixtop: 232 ns, 1.16× the fastest AES-256-GCM seal, 1350 B, rind on ovh-iad: 523 ns, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch, of the AES-NI key expansion and block cipher's raw-pointer loads, and of the SIMD intrinsics as Intel's manual defines them, of its AEAD API's AES-GCM key setup, seal, and open, for AAD and messages under 2^32 bytes, down to HACL*'s Vale AES-GCM routines, composed with Vale's F* proofs of Gcm_blocks_stdcall, Gcm_blocks_decrypt_stdcall, and Compute_iv_stdcall, of the code Vale prints at HACL* f557259007db, which rind imports ✓ AES-256-GCM seal, 1350 B, rind on ovh-sea: 507 ns, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch, of the AES-NI key expansion and block cipher's raw-pointer loads, and of the SIMD intrinsics as Intel's manual defines them, of its AEAD API's AES-GCM key setup, seal, and open, for AAD and messages under 2^32 bytes, down to HACL*'s Vale AES-GCM routines, composed with Vale's F* proofs of Gcm_blocks_stdcall, Gcm_blocks_decrypt_stdcall, and Compute_iv_stdcall, of the code Vale prints at HACL* f557259007db, which rind imports ✓ -AES-256-GCM seal, 1350 B, aws-lc-rs on nixos: 311 ns, 1.69× the fastest -AES-256-GCM seal, 1350 B, aws-lc-rs on desktop: 173 ns, 1.63× the fastest -AES-256-GCM seal, 1350 B, aws-lc-rs on nixos2: 363 ns, 1.12× the fastest -AES-256-GCM seal, 1350 B, aws-lc-rs on kixtop: 205 ns, 1.00× the fastest -AES-256-GCM seal, 1350 B, aws-lc-rs on ovh-iad: 581 ns, 1.11× the fastest -AES-256-GCM seal, 1350 B, aws-lc-rs on ovh-sea: 556 ns, 1.10× the fastest -AES-256-GCM seal, 1350 B, ring on nixos: 205 ns, 1.11× the fastest -AES-256-GCM seal, 1350 B, ring on desktop: 133 ns, 1.25× the fastest -AES-256-GCM seal, 1350 B, ring on nixos2: 353 ns, 1.09× the fastest -AES-256-GCM seal, 1350 B, ring on kixtop: 220 ns, 1.07× the fastest -AES-256-GCM seal, 1350 B, ring on ovh-iad: 557 ns, 1.06× the fastest -AES-256-GCM seal, 1350 B, ring on ovh-sea: 550 ns, 1.08× the fastest -AES-256-GCM seal, 1350 B, RustCrypto + dalek on nixos: 489 ns, 2.65× the fastest -AES-256-GCM seal, 1350 B, RustCrypto + dalek on desktop: 313 ns, 2.94× the fastest -AES-256-GCM seal, 1350 B, RustCrypto + dalek on nixos2: 623 ns, 1.92× the fastest -AES-256-GCM seal, 1350 B, RustCrypto + dalek on kixtop: 246 ns, 1.20× the fastest -AES-256-GCM seal, 1350 B, RustCrypto + dalek on ovh-iad: 999 ns, 1.91× the fastest -AES-256-GCM seal, 1350 B, RustCrypto + dalek on ovh-sea: 958 ns, 1.89× the fastest -AES-256-GCM seal, 1350 B, graviola on nixos: 337 ns, 1.83× the fastest -AES-256-GCM seal, 1350 B, graviola on desktop: 258 ns, 2.42× the fastest -AES-256-GCM seal, 1350 B, graviola on nixos2: 476 ns, 1.46× the fastest -AES-256-GCM seal, 1350 B, graviola on kixtop: 262 ns, 1.28× the fastest -AES-256-GCM seal, 1350 B, libcrux on nixos: 6.91 µs, 37.50× the fastest -AES-256-GCM seal, 1350 B, libcrux on desktop: 2.83 µs, 26.55× the fastest -AES-256-GCM seal, 1350 B, libcrux on nixos2: 4.50 µs, 13.86× the fastest -AES-256-GCM seal, 1350 B, libcrux on kixtop: 650 ns, 3.18× the fastest -AES-256-GCM seal, 1350 B, libcrux on ovh-iad: 7.07 µs, 13.51× the fastest -AES-256-GCM seal, 1350 B, libcrux on ovh-sea: 6.92 µs, 13.63× the fastest -AES-256-GCM seal, 1350 B, OpenSSL on nixos: 345 ns, 1.87× the fastest -AES-256-GCM seal, 1350 B, OpenSSL on desktop: 186 ns, 1.75× the fastest -AES-256-GCM seal, 1350 B, OpenSSL on nixos2: 437 ns, 1.34× the fastest -AES-256-GCM seal, 1350 B, OpenSSL on kixtop: 222 ns, 1.08× the fastest -AES-256-GCM seal, 1350 B, OpenSSL on ovh-iad: 707 ns, 1.35× the fastest -AES-256-GCM seal, 1350 B, OpenSSL on ovh-sea: 651 ns, 1.28× the fastest +AES-256-GCM seal, 1350 B, rind (DIT held) on kixtop: 188 ns, 0.94× the fastest +AES-256-GCM seal, 1350 B, aws-lc-rs on nixos: 311 ns, 1.69× the fastest +AES-256-GCM seal, 1350 B, aws-lc-rs on desktop: 175 ns, 1.63× the fastest +AES-256-GCM seal, 1350 B, aws-lc-rs on nixos2: 363 ns, 1.12× the fastest +AES-256-GCM seal, 1350 B, aws-lc-rs on kixtop: 201 ns, 1.00× the fastest +AES-256-GCM seal, 1350 B, aws-lc-rs on ovh-iad: 581 ns, 1.11× the fastest +AES-256-GCM seal, 1350 B, aws-lc-rs on ovh-sea: 556 ns, 1.10× the fastest +AES-256-GCM seal, 1350 B, ring on nixos: 205 ns, 1.11× the fastest +AES-256-GCM seal, 1350 B, ring on desktop: 134 ns, 1.25× the fastest +AES-256-GCM seal, 1350 B, ring on nixos2: 353 ns, 1.09× the fastest +AES-256-GCM seal, 1350 B, ring on kixtop: 219 ns, 1.09× the fastest +AES-256-GCM seal, 1350 B, ring on ovh-iad: 557 ns, 1.06× the fastest +AES-256-GCM seal, 1350 B, ring on ovh-sea: 550 ns, 1.08× the fastest +AES-256-GCM seal, 1350 B, RustCrypto + dalek on nixos: 489 ns, 2.65× the fastest +AES-256-GCM seal, 1350 B, RustCrypto + dalek on desktop: 313 ns, 2.92× the fastest +AES-256-GCM seal, 1350 B, RustCrypto + dalek on nixos2: 623 ns, 1.92× the fastest +AES-256-GCM seal, 1350 B, RustCrypto + dalek on kixtop: 239 ns, 1.19× the fastest +AES-256-GCM seal, 1350 B, RustCrypto + dalek on ovh-iad: 999 ns, 1.91× the fastest +AES-256-GCM seal, 1350 B, RustCrypto + dalek on ovh-sea: 958 ns, 1.89× the fastest +AES-256-GCM seal, 1350 B, graviola on nixos: 337 ns, 1.83× the fastest +AES-256-GCM seal, 1350 B, graviola on desktop: 257 ns, 2.40× the fastest +AES-256-GCM seal, 1350 B, graviola on nixos2: 476 ns, 1.46× the fastest +AES-256-GCM seal, 1350 B, graviola on kixtop: 258 ns, 1.28× the fastest +AES-256-GCM seal, 1350 B, libcrux on nixos: 6.91 µs, 37.50× the fastest +AES-256-GCM seal, 1350 B, libcrux on desktop: 2.87 µs, 26.80× the fastest +AES-256-GCM seal, 1350 B, libcrux on nixos2: 4.50 µs, 13.86× the fastest +AES-256-GCM seal, 1350 B, libcrux on kixtop: 630 ns, 3.13× the fastest +AES-256-GCM seal, 1350 B, libcrux on ovh-iad: 7.07 µs, 13.51× the fastest +AES-256-GCM seal, 1350 B, libcrux on ovh-sea: 6.92 µs, 13.63× the fastest +AES-256-GCM seal, 1350 B, OpenSSL on nixos: 345 ns, 1.87× the fastest +AES-256-GCM seal, 1350 B, OpenSSL on desktop: 184 ns, 1.72× the fastest +AES-256-GCM seal, 1350 B, OpenSSL on nixos2: 437 ns, 1.34× the fastest +AES-256-GCM seal, 1350 B, OpenSSL on kixtop: 220 ns, 1.10× the fastest +AES-256-GCM seal, 1350 B, OpenSSL on ovh-iad: 707 ns, 1.35× the fastest +AES-256-GCM seal, 1350 B, OpenSSL on ovh-sea: 651 ns, 1.28× the fastest AES-256-GCM seal, 16 KB AES-256-GCM seal, 16 KB, rind on nixos: 1.51 µs, 1.00× the fastest -AES-256-GCM seal, 16 KB, rind on desktop: 925 ns, 1.00× the fastest +AES-256-GCM seal, 16 KB, rind on desktop: 954 ns, 1.00× the fastest AES-256-GCM seal, 16 KB, rind on nixos2: 3.22 µs, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch, of the AES-NI key expansion and block cipher's raw-pointer loads, and of the SIMD intrinsics as Intel's manual defines them, of its AEAD API's AES-GCM key setup, seal, and open, for AAD and messages under 2^32 bytes, down to HACL*'s Vale AES-GCM routines, composed with Vale's F* proofs of Gcm_blocks_stdcall, Gcm_blocks_decrypt_stdcall, and Compute_iv_stdcall, of the code Vale prints at HACL* f557259007db, which rind imports ✓ -AES-256-GCM seal, 16 KB, rind on kixtop: 1.75 µs, 1.02× the fastest +AES-256-GCM seal, 16 KB, rind on kixtop: 1.73 µs, 1.02× the fastest AES-256-GCM seal, 16 KB, rind on ovh-iad: 5.18 µs, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch, of the AES-NI key expansion and block cipher's raw-pointer loads, and of the SIMD intrinsics as Intel's manual defines them, of its AEAD API's AES-GCM key setup, seal, and open, for AAD and messages under 2^32 bytes, down to HACL*'s Vale AES-GCM routines, composed with Vale's F* proofs of Gcm_blocks_stdcall, Gcm_blocks_decrypt_stdcall, and Compute_iv_stdcall, of the code Vale prints at HACL* f557259007db, which rind imports ✓ AES-256-GCM seal, 16 KB, rind on ovh-sea: 4.99 µs, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch, of the AES-NI key expansion and block cipher's raw-pointer loads, and of the SIMD intrinsics as Intel's manual defines them, of its AEAD API's AES-GCM key setup, seal, and open, for AAD and messages under 2^32 bytes, down to HACL*'s Vale AES-GCM routines, composed with Vale's F* proofs of Gcm_blocks_stdcall, Gcm_blocks_decrypt_stdcall, and Compute_iv_stdcall, of the code Vale prints at HACL* f557259007db, which rind imports ✓ -AES-256-GCM seal, 16 KB, aws-lc-rs on nixos: 2.78 µs, 1.84× the fastest -AES-256-GCM seal, 16 KB, aws-lc-rs on desktop: 1.56 µs, 1.69× the fastest -AES-256-GCM seal, 16 KB, aws-lc-rs on nixos2: 3.30 µs, 1.03× the fastest -AES-256-GCM seal, 16 KB, aws-lc-rs on kixtop: 1.72 µs, 1.00× the fastest -AES-256-GCM seal, 16 KB, aws-lc-rs on ovh-iad: 5.46 µs, 1.05× the fastest -AES-256-GCM seal, 16 KB, aws-lc-rs on ovh-sea: 5.08 µs, 1.02× the fastest -AES-256-GCM seal, 16 KB, ring on nixos: 1.53 µs, 1.01× the fastest -AES-256-GCM seal, 16 KB, ring on desktop: 946 ns, 1.02× the fastest -AES-256-GCM seal, 16 KB, ring on nixos2: 3.25 µs, 1.01× the fastest -AES-256-GCM seal, 16 KB, ring on kixtop: 2.04 µs, 1.19× the fastest -AES-256-GCM seal, 16 KB, ring on ovh-iad: 5.80 µs, 1.12× the fastest -AES-256-GCM seal, 16 KB, ring on ovh-sea: 4.97 µs, 1.00× the fastest -AES-256-GCM seal, 16 KB, RustCrypto + dalek on nixos: 4.78 µs, 3.16× the fastest -AES-256-GCM seal, 16 KB, RustCrypto + dalek on desktop: 2.91 µs, 3.14× the fastest -AES-256-GCM seal, 16 KB, RustCrypto + dalek on nixos2: 6.45 µs, 2.00× the fastest -AES-256-GCM seal, 16 KB, RustCrypto + dalek on kixtop: 2.72 µs, 1.58× the fastest -AES-256-GCM seal, 16 KB, RustCrypto + dalek on ovh-iad: 10.56 µs, 2.04× the fastest -AES-256-GCM seal, 16 KB, RustCrypto + dalek on ovh-sea: 9.94 µs, 2.00× the fastest -AES-256-GCM seal, 16 KB, graviola on nixos: 2.98 µs, 1.97× the fastest -AES-256-GCM seal, 16 KB, graviola on desktop: 2.46 µs, 2.66× the fastest -AES-256-GCM seal, 16 KB, graviola on nixos2: 4.71 µs, 1.46× the fastest -AES-256-GCM seal, 16 KB, graviola on kixtop: 2.16 µs, 1.26× the fastest -AES-256-GCM seal, 16 KB, libcrux on nixos: 80.61 µs, 53.39× the fastest -AES-256-GCM seal, 16 KB, libcrux on desktop: 32.69 µs, 35.34× the fastest -AES-256-GCM seal, 16 KB, libcrux on nixos2: 50.92 µs, 15.81× the fastest -AES-256-GCM seal, 16 KB, libcrux on kixtop: 7.20 µs, 4.19× the fastest -AES-256-GCM seal, 16 KB, libcrux on ovh-iad: 83.14 µs, 16.05× the fastest -AES-256-GCM seal, 16 KB, libcrux on ovh-sea: 78.50 µs, 15.79× the fastest -AES-256-GCM seal, 16 KB, OpenSSL on nixos: 2.82 µs, 1.87× the fastest -AES-256-GCM seal, 16 KB, OpenSSL on desktop: 1.59 µs, 1.72× the fastest -AES-256-GCM seal, 16 KB, OpenSSL on nixos2: 3.34 µs, 1.04× the fastest -AES-256-GCM seal, 16 KB, OpenSSL on kixtop: 1.79 µs, 1.04× the fastest -AES-256-GCM seal, 16 KB, OpenSSL on ovh-iad: 5.20 µs, 1.00× the fastest -AES-256-GCM seal, 16 KB, OpenSSL on ovh-sea: 5.15 µs, 1.04× the fastest +AES-256-GCM seal, 16 KB, rind (DIT held) on kixtop: 1.69 µs, 0.99× the fastest +AES-256-GCM seal, 16 KB, aws-lc-rs on nixos: 2.78 µs, 1.84× the fastest +AES-256-GCM seal, 16 KB, aws-lc-rs on desktop: 1.58 µs, 1.66× the fastest +AES-256-GCM seal, 16 KB, aws-lc-rs on nixos2: 3.30 µs, 1.03× the fastest +AES-256-GCM seal, 16 KB, aws-lc-rs on kixtop: 1.70 µs, 1.00× the fastest +AES-256-GCM seal, 16 KB, aws-lc-rs on ovh-iad: 5.46 µs, 1.05× the fastest +AES-256-GCM seal, 16 KB, aws-lc-rs on ovh-sea: 5.08 µs, 1.02× the fastest +AES-256-GCM seal, 16 KB, ring on nixos: 1.53 µs, 1.01× the fastest +AES-256-GCM seal, 16 KB, ring on desktop: 975 ns, 1.02× the fastest +AES-256-GCM seal, 16 KB, ring on nixos2: 3.25 µs, 1.01× the fastest +AES-256-GCM seal, 16 KB, ring on kixtop: 2.03 µs, 1.20× the fastest +AES-256-GCM seal, 16 KB, ring on ovh-iad: 5.80 µs, 1.12× the fastest +AES-256-GCM seal, 16 KB, ring on ovh-sea: 4.97 µs, 1.00× the fastest +AES-256-GCM seal, 16 KB, RustCrypto + dalek on nixos: 4.78 µs, 3.16× the fastest +AES-256-GCM seal, 16 KB, RustCrypto + dalek on desktop: 2.90 µs, 3.04× the fastest +AES-256-GCM seal, 16 KB, RustCrypto + dalek on nixos2: 6.45 µs, 2.00× the fastest +AES-256-GCM seal, 16 KB, RustCrypto + dalek on kixtop: 2.63 µs, 1.55× the fastest +AES-256-GCM seal, 16 KB, RustCrypto + dalek on ovh-iad: 10.56 µs, 2.04× the fastest +AES-256-GCM seal, 16 KB, RustCrypto + dalek on ovh-sea: 9.94 µs, 2.00× the fastest +AES-256-GCM seal, 16 KB, graviola on nixos: 2.98 µs, 1.97× the fastest +AES-256-GCM seal, 16 KB, graviola on desktop: 2.46 µs, 2.58× the fastest +AES-256-GCM seal, 16 KB, graviola on nixos2: 4.71 µs, 1.46× the fastest +AES-256-GCM seal, 16 KB, graviola on kixtop: 2.13 µs, 1.26× the fastest +AES-256-GCM seal, 16 KB, libcrux on nixos: 80.61 µs, 53.39× the fastest +AES-256-GCM seal, 16 KB, libcrux on desktop: 32.86 µs, 34.45× the fastest +AES-256-GCM seal, 16 KB, libcrux on nixos2: 50.92 µs, 15.81× the fastest +AES-256-GCM seal, 16 KB, libcrux on kixtop: 7.08 µs, 4.17× the fastest +AES-256-GCM seal, 16 KB, libcrux on ovh-iad: 83.14 µs, 16.05× the fastest +AES-256-GCM seal, 16 KB, libcrux on ovh-sea: 78.50 µs, 15.79× the fastest +AES-256-GCM seal, 16 KB, OpenSSL on nixos: 2.82 µs, 1.87× the fastest +AES-256-GCM seal, 16 KB, OpenSSL on desktop: 1.60 µs, 1.68× the fastest +AES-256-GCM seal, 16 KB, OpenSSL on nixos2: 3.34 µs, 1.04× the fastest +AES-256-GCM seal, 16 KB, OpenSSL on kixtop: 1.77 µs, 1.04× the fastest +AES-256-GCM seal, 16 KB, OpenSSL on ovh-iad: 5.20 µs, 1.00× the fastest +AES-256-GCM seal, 16 KB, OpenSSL on ovh-sea: 5.15 µs, 1.04× the fastest AES-256-GCM open, 32 B AES-256-GCM open, 32 B, rind on nixos: 48 ns, 1.00× the fastest -AES-256-GCM open, 32 B, rind on desktop: 28 ns, 1.00× the fastest +AES-256-GCM open, 32 B, rind on desktop: 16 ns, 1.00× the fastest AES-256-GCM open, 32 B, rind on nixos2: 45 ns, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch, of the AES-NI key expansion and block cipher's raw-pointer loads, and of the SIMD intrinsics as Intel's manual defines them, of its AEAD API's AES-GCM key setup, seal, and open, for AAD and messages under 2^32 bytes, down to HACL*'s Vale AES-GCM routines, composed with Vale's F* proofs of Gcm_blocks_stdcall, Gcm_blocks_decrypt_stdcall, and Compute_iv_stdcall, of the code Vale prints at HACL* f557259007db, which rind imports ✓ -AES-256-GCM open, 32 B, rind on kixtop: 49 ns, 1.24× the fastest +AES-256-GCM open, 32 B, rind on kixtop: 48 ns, 1.22× the fastest AES-256-GCM open, 32 B, rind on ovh-iad: 71 ns, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch, of the AES-NI key expansion and block cipher's raw-pointer loads, and of the SIMD intrinsics as Intel's manual defines them, of its AEAD API's AES-GCM key setup, seal, and open, for AAD and messages under 2^32 bytes, down to HACL*'s Vale AES-GCM routines, composed with Vale's F* proofs of Gcm_blocks_stdcall, Gcm_blocks_decrypt_stdcall, and Compute_iv_stdcall, of the code Vale prints at HACL* f557259007db, which rind imports ✓ AES-256-GCM open, 32 B, rind on ovh-sea: 69 ns, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch, of the AES-NI key expansion and block cipher's raw-pointer loads, and of the SIMD intrinsics as Intel's manual defines them, of its AEAD API's AES-GCM key setup, seal, and open, for AAD and messages under 2^32 bytes, down to HACL*'s Vale AES-GCM routines, composed with Vale's F* proofs of Gcm_blocks_stdcall, Gcm_blocks_decrypt_stdcall, and Compute_iv_stdcall, of the code Vale prints at HACL* f557259007db, which rind imports ✓ -AES-256-GCM open, 32 B, aws-lc-rs on nixos: 79 ns, 1.62× the fastest -AES-256-GCM open, 32 B, aws-lc-rs on desktop: 38 ns, 1.37× the fastest -AES-256-GCM open, 32 B, aws-lc-rs on nixos2: 101 ns, 2.26× the fastest -AES-256-GCM open, 32 B, aws-lc-rs on kixtop: 49 ns, 1.24× the fastest -AES-256-GCM open, 32 B, aws-lc-rs on ovh-iad: 150 ns, 2.10× the fastest -AES-256-GCM open, 32 B, aws-lc-rs on ovh-sea: 147 ns, 2.14× the fastest -AES-256-GCM open, 32 B, ring on nixos: 61 ns, 1.25× the fastest -AES-256-GCM open, 32 B, ring on desktop: 45 ns, 1.61× the fastest -AES-256-GCM open, 32 B, ring on nixos2: 107 ns, 2.39× the fastest -AES-256-GCM open, 32 B, ring on kixtop: 40 ns, 1.00× the fastest -AES-256-GCM open, 32 B, ring on ovh-iad: 129 ns, 1.82× the fastest -AES-256-GCM open, 32 B, ring on ovh-sea: 126 ns, 1.83× the fastest -AES-256-GCM open, 32 B, RustCrypto + dalek on nixos: 109 ns, 2.24× the fastest -AES-256-GCM open, 32 B, RustCrypto + dalek on desktop: 82 ns, 2.98× the fastest -AES-256-GCM open, 32 B, RustCrypto + dalek on nixos2: 118 ns, 2.65× the fastest -AES-256-GCM open, 32 B, RustCrypto + dalek on kixtop: 41 ns, 1.04× the fastest -AES-256-GCM open, 32 B, RustCrypto + dalek on ovh-iad: 177 ns, 2.49× the fastest -AES-256-GCM open, 32 B, RustCrypto + dalek on ovh-sea: 172 ns, 2.50× the fastest -AES-256-GCM open, 32 B, graviola on nixos: 68 ns, 1.39× the fastest -AES-256-GCM open, 32 B, graviola on desktop: 38 ns, 1.37× the fastest -AES-256-GCM open, 32 B, graviola on nixos2: 73 ns, 1.64× the fastest -AES-256-GCM open, 32 B, graviola on kixtop: 85 ns, 2.15× the fastest -AES-256-GCM open, 32 B, libcrux on nixos: 441 ns, 9.10× the fastest -AES-256-GCM open, 32 B, libcrux on desktop: 218 ns, 7.86× the fastest -AES-256-GCM open, 32 B, libcrux on nixos2: 363 ns, 8.12× the fastest -AES-256-GCM open, 32 B, libcrux on kixtop: 67 ns, 1.69× the fastest -AES-256-GCM open, 32 B, libcrux on ovh-iad: 576 ns, 8.08× the fastest -AES-256-GCM open, 32 B, libcrux on ovh-sea: 563 ns, 8.16× the fastest -AES-256-GCM open, 32 B, OpenSSL on nixos: 122 ns, 2.52× the fastest -AES-256-GCM open, 32 B, OpenSSL on desktop: 62 ns, 2.22× the fastest -AES-256-GCM open, 32 B, OpenSSL on nixos2: 172 ns, 3.84× the fastest -AES-256-GCM open, 32 B, OpenSSL on kixtop: 68 ns, 1.71× the fastest -AES-256-GCM open, 32 B, OpenSSL on ovh-iad: 269 ns, 3.78× the fastest -AES-256-GCM open, 32 B, OpenSSL on ovh-sea: 248 ns, 3.60× the fastest +AES-256-GCM open, 32 B, rind (DIT held) on kixtop: 13 ns, 0.33× the fastest +AES-256-GCM open, 32 B, aws-lc-rs on nixos: 79 ns, 1.62× the fastest +AES-256-GCM open, 32 B, aws-lc-rs on desktop: 38 ns, 2.31× the fastest +AES-256-GCM open, 32 B, aws-lc-rs on nixos2: 101 ns, 2.26× the fastest +AES-256-GCM open, 32 B, aws-lc-rs on kixtop: 49 ns, 1.23× the fastest +AES-256-GCM open, 32 B, aws-lc-rs on ovh-iad: 150 ns, 2.10× the fastest +AES-256-GCM open, 32 B, aws-lc-rs on ovh-sea: 147 ns, 2.14× the fastest +AES-256-GCM open, 32 B, ring on nixos: 61 ns, 1.25× the fastest +AES-256-GCM open, 32 B, ring on desktop: 43 ns, 2.63× the fastest +AES-256-GCM open, 32 B, ring on nixos2: 107 ns, 2.39× the fastest +AES-256-GCM open, 32 B, ring on kixtop: 39 ns, 1.00× the fastest +AES-256-GCM open, 32 B, ring on ovh-iad: 129 ns, 1.82× the fastest +AES-256-GCM open, 32 B, ring on ovh-sea: 126 ns, 1.83× the fastest +AES-256-GCM open, 32 B, RustCrypto + dalek on nixos: 109 ns, 2.24× the fastest +AES-256-GCM open, 32 B, RustCrypto + dalek on desktop: 82 ns, 5.03× the fastest +AES-256-GCM open, 32 B, RustCrypto + dalek on nixos2: 118 ns, 2.65× the fastest +AES-256-GCM open, 32 B, RustCrypto + dalek on kixtop: 41 ns, 1.04× the fastest +AES-256-GCM open, 32 B, RustCrypto + dalek on ovh-iad: 177 ns, 2.49× the fastest +AES-256-GCM open, 32 B, RustCrypto + dalek on ovh-sea: 172 ns, 2.50× the fastest +AES-256-GCM open, 32 B, graviola on nixos: 68 ns, 1.39× the fastest +AES-256-GCM open, 32 B, graviola on desktop: 38 ns, 2.31× the fastest +AES-256-GCM open, 32 B, graviola on nixos2: 73 ns, 1.64× the fastest +AES-256-GCM open, 32 B, graviola on kixtop: 84 ns, 2.14× the fastest +AES-256-GCM open, 32 B, libcrux on nixos: 441 ns, 9.10× the fastest +AES-256-GCM open, 32 B, libcrux on desktop: 215 ns, 13.12× the fastest +AES-256-GCM open, 32 B, libcrux on nixos2: 363 ns, 8.12× the fastest +AES-256-GCM open, 32 B, libcrux on kixtop: 66 ns, 1.67× the fastest +AES-256-GCM open, 32 B, libcrux on ovh-iad: 576 ns, 8.08× the fastest +AES-256-GCM open, 32 B, libcrux on ovh-sea: 563 ns, 8.16× the fastest +AES-256-GCM open, 32 B, OpenSSL on nixos: 122 ns, 2.52× the fastest +AES-256-GCM open, 32 B, OpenSSL on desktop: 61 ns, 3.73× the fastest +AES-256-GCM open, 32 B, OpenSSL on nixos2: 172 ns, 3.84× the fastest +AES-256-GCM open, 32 B, OpenSSL on kixtop: 68 ns, 1.72× the fastest +AES-256-GCM open, 32 B, OpenSSL on ovh-iad: 269 ns, 3.78× the fastest +AES-256-GCM open, 32 B, OpenSSL on ovh-sea: 248 ns, 3.60× the fastest AES-256-GCM open, 1350 B AES-256-GCM open, 1350 B, rind on nixos: 192 ns, 1.00× the fastest -AES-256-GCM open, 1350 B, rind on desktop: 107 ns, 1.00× the fastest +AES-256-GCM open, 1350 B, rind on desktop: 99 ns, 1.00× the fastest AES-256-GCM open, 1350 B, rind on nixos2: 328 ns, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch, of the AES-NI key expansion and block cipher's raw-pointer loads, and of the SIMD intrinsics as Intel's manual defines them, of its AEAD API's AES-GCM key setup, seal, and open, for AAD and messages under 2^32 bytes, down to HACL*'s Vale AES-GCM routines, composed with Vale's F* proofs of Gcm_blocks_stdcall, Gcm_blocks_decrypt_stdcall, and Compute_iv_stdcall, of the code Vale prints at HACL* f557259007db, which rind imports ✓ -AES-256-GCM open, 1350 B, rind on kixtop: 233 ns, 1.07× the fastest +AES-256-GCM open, 1350 B, rind on kixtop: 231 ns, 1.08× the fastest AES-256-GCM open, 1350 B, rind on ovh-iad: 497 ns, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch, of the AES-NI key expansion and block cipher's raw-pointer loads, and of the SIMD intrinsics as Intel's manual defines them, of its AEAD API's AES-GCM key setup, seal, and open, for AAD and messages under 2^32 bytes, down to HACL*'s Vale AES-GCM routines, composed with Vale's F* proofs of Gcm_blocks_stdcall, Gcm_blocks_decrypt_stdcall, and Compute_iv_stdcall, of the code Vale prints at HACL* f557259007db, which rind imports ✓ AES-256-GCM open, 1350 B, rind on ovh-sea: 482 ns, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch, of the AES-NI key expansion and block cipher's raw-pointer loads, and of the SIMD intrinsics as Intel's manual defines them, of its AEAD API's AES-GCM key setup, seal, and open, for AAD and messages under 2^32 bytes, down to HACL*'s Vale AES-GCM routines, composed with Vale's F* proofs of Gcm_blocks_stdcall, Gcm_blocks_decrypt_stdcall, and Compute_iv_stdcall, of the code Vale prints at HACL* f557259007db, which rind imports ✓ -AES-256-GCM open, 1350 B, aws-lc-rs on nixos: 322 ns, 1.68× the fastest -AES-256-GCM open, 1350 B, aws-lc-rs on desktop: 173 ns, 1.62× the fastest -AES-256-GCM open, 1350 B, aws-lc-rs on nixos2: 422 ns, 1.29× the fastest -AES-256-GCM open, 1350 B, aws-lc-rs on kixtop: 218 ns, 1.00× the fastest -AES-256-GCM open, 1350 B, aws-lc-rs on ovh-iad: 581 ns, 1.17× the fastest -AES-256-GCM open, 1350 B, aws-lc-rs on ovh-sea: 566 ns, 1.17× the fastest -AES-256-GCM open, 1350 B, ring on nixos: 204 ns, 1.06× the fastest -AES-256-GCM open, 1350 B, ring on desktop: 124 ns, 1.16× the fastest -AES-256-GCM open, 1350 B, ring on nixos2: 388 ns, 1.18× the fastest -AES-256-GCM open, 1350 B, ring on kixtop: 252 ns, 1.15× the fastest -AES-256-GCM open, 1350 B, ring on ovh-iad: 566 ns, 1.14× the fastest -AES-256-GCM open, 1350 B, ring on ovh-sea: 544 ns, 1.13× the fastest -AES-256-GCM open, 1350 B, RustCrypto + dalek on nixos: 508 ns, 2.65× the fastest -AES-256-GCM open, 1350 B, RustCrypto + dalek on desktop: 322 ns, 3.01× the fastest -AES-256-GCM open, 1350 B, RustCrypto + dalek on nixos2: 677 ns, 2.06× the fastest -AES-256-GCM open, 1350 B, RustCrypto + dalek on kixtop: 267 ns, 1.22× the fastest -AES-256-GCM open, 1350 B, RustCrypto + dalek on ovh-iad: 1.01 µs, 2.03× the fastest -AES-256-GCM open, 1350 B, RustCrypto + dalek on ovh-sea: 1000 ns, 2.07× the fastest -AES-256-GCM open, 1350 B, graviola on nixos: 341 ns, 1.78× the fastest -AES-256-GCM open, 1350 B, graviola on desktop: 203 ns, 1.90× the fastest -AES-256-GCM open, 1350 B, graviola on nixos2: 510 ns, 1.56× the fastest -AES-256-GCM open, 1350 B, graviola on kixtop: 263 ns, 1.20× the fastest -AES-256-GCM open, 1350 B, libcrux on nixos: 6.79 µs, 35.42× the fastest -AES-256-GCM open, 1350 B, libcrux on desktop: 2.85 µs, 26.66× the fastest -AES-256-GCM open, 1350 B, libcrux on nixos2: 4.74 µs, 14.46× the fastest -AES-256-GCM open, 1350 B, libcrux on kixtop: 674 ns, 3.09× the fastest -AES-256-GCM open, 1350 B, libcrux on ovh-iad: 6.90 µs, 13.90× the fastest -AES-256-GCM open, 1350 B, libcrux on ovh-sea: 6.91 µs, 14.32× the fastest -AES-256-GCM open, 1350 B, OpenSSL on nixos: 354 ns, 1.85× the fastest -AES-256-GCM open, 1350 B, OpenSSL on desktop: 189 ns, 1.77× the fastest -AES-256-GCM open, 1350 B, OpenSSL on nixos2: 643 ns, 1.96× the fastest -AES-256-GCM open, 1350 B, OpenSSL on kixtop: 225 ns, 1.03× the fastest -AES-256-GCM open, 1350 B, OpenSSL on ovh-iad: 673 ns, 1.35× the fastest -AES-256-GCM open, 1350 B, OpenSSL on ovh-sea: 661 ns, 1.37× the fastest +AES-256-GCM open, 1350 B, rind (DIT held) on kixtop: 197 ns, 0.92× the fastest +AES-256-GCM open, 1350 B, aws-lc-rs on nixos: 322 ns, 1.68× the fastest +AES-256-GCM open, 1350 B, aws-lc-rs on desktop: 172 ns, 1.74× the fastest +AES-256-GCM open, 1350 B, aws-lc-rs on nixos2: 422 ns, 1.29× the fastest +AES-256-GCM open, 1350 B, aws-lc-rs on kixtop: 213 ns, 1.00× the fastest +AES-256-GCM open, 1350 B, aws-lc-rs on ovh-iad: 581 ns, 1.17× the fastest +AES-256-GCM open, 1350 B, aws-lc-rs on ovh-sea: 566 ns, 1.17× the fastest +AES-256-GCM open, 1350 B, ring on nixos: 204 ns, 1.06× the fastest +AES-256-GCM open, 1350 B, ring on desktop: 121 ns, 1.23× the fastest +AES-256-GCM open, 1350 B, ring on nixos2: 388 ns, 1.18× the fastest +AES-256-GCM open, 1350 B, ring on kixtop: 247 ns, 1.16× the fastest +AES-256-GCM open, 1350 B, ring on ovh-iad: 566 ns, 1.14× the fastest +AES-256-GCM open, 1350 B, ring on ovh-sea: 544 ns, 1.13× the fastest +AES-256-GCM open, 1350 B, RustCrypto + dalek on nixos: 508 ns, 2.65× the fastest +AES-256-GCM open, 1350 B, RustCrypto + dalek on desktop: 318 ns, 3.21× the fastest +AES-256-GCM open, 1350 B, RustCrypto + dalek on nixos2: 677 ns, 2.06× the fastest +AES-256-GCM open, 1350 B, RustCrypto + dalek on kixtop: 278 ns, 1.31× the fastest +AES-256-GCM open, 1350 B, RustCrypto + dalek on ovh-iad: 1.01 µs, 2.03× the fastest +AES-256-GCM open, 1350 B, RustCrypto + dalek on ovh-sea: 1000 ns, 2.07× the fastest +AES-256-GCM open, 1350 B, graviola on nixos: 341 ns, 1.78× the fastest +AES-256-GCM open, 1350 B, graviola on desktop: 201 ns, 2.03× the fastest +AES-256-GCM open, 1350 B, graviola on nixos2: 510 ns, 1.56× the fastest +AES-256-GCM open, 1350 B, graviola on kixtop: 263 ns, 1.24× the fastest +AES-256-GCM open, 1350 B, libcrux on nixos: 6.79 µs, 35.42× the fastest +AES-256-GCM open, 1350 B, libcrux on desktop: 2.85 µs, 28.82× the fastest +AES-256-GCM open, 1350 B, libcrux on nixos2: 4.74 µs, 14.46× the fastest +AES-256-GCM open, 1350 B, libcrux on kixtop: 663 ns, 3.12× the fastest +AES-256-GCM open, 1350 B, libcrux on ovh-iad: 6.90 µs, 13.90× the fastest +AES-256-GCM open, 1350 B, libcrux on ovh-sea: 6.91 µs, 14.32× the fastest +AES-256-GCM open, 1350 B, OpenSSL on nixos: 354 ns, 1.85× the fastest +AES-256-GCM open, 1350 B, OpenSSL on desktop: 189 ns, 1.91× the fastest +AES-256-GCM open, 1350 B, OpenSSL on nixos2: 643 ns, 1.96× the fastest +AES-256-GCM open, 1350 B, OpenSSL on kixtop: 224 ns, 1.05× the fastest +AES-256-GCM open, 1350 B, OpenSSL on ovh-iad: 673 ns, 1.35× the fastest +AES-256-GCM open, 1350 B, OpenSSL on ovh-sea: 661 ns, 1.37× the fastest AES-256-GCM open, 16 KB AES-256-GCM open, 16 KB, rind on nixos: 1.60 µs, 1.00× the fastest -AES-256-GCM open, 16 KB, rind on desktop: 917 ns, 1.00× the fastest +AES-256-GCM open, 16 KB, rind on desktop: 899 ns, 1.00× the fastest AES-256-GCM open, 16 KB, rind on nixos2: 3.62 µs, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch, of the AES-NI key expansion and block cipher's raw-pointer loads, and of the SIMD intrinsics as Intel's manual defines them, of its AEAD API's AES-GCM key setup, seal, and open, for AAD and messages under 2^32 bytes, down to HACL*'s Vale AES-GCM routines, composed with Vale's F* proofs of Gcm_blocks_stdcall, Gcm_blocks_decrypt_stdcall, and Compute_iv_stdcall, of the code Vale prints at HACL* f557259007db, which rind imports ✓ -AES-256-GCM open, 16 KB, rind on kixtop: 1.86 µs, 1.01× the fastest +AES-256-GCM open, 16 KB, rind on kixtop: 1.84 µs, 1.02× the fastest AES-256-GCM open, 16 KB, rind on ovh-iad: 5.26 µs, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch, of the AES-NI key expansion and block cipher's raw-pointer loads, and of the SIMD intrinsics as Intel's manual defines them, of its AEAD API's AES-GCM key setup, seal, and open, for AAD and messages under 2^32 bytes, down to HACL*'s Vale AES-GCM routines, composed with Vale's F* proofs of Gcm_blocks_stdcall, Gcm_blocks_decrypt_stdcall, and Compute_iv_stdcall, of the code Vale prints at HACL* f557259007db, which rind imports ✓ AES-256-GCM open, 16 KB, rind on ovh-sea: 5.13 µs, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch, of the AES-NI key expansion and block cipher's raw-pointer loads, and of the SIMD intrinsics as Intel's manual defines them, of its AEAD API's AES-GCM key setup, seal, and open, for AAD and messages under 2^32 bytes, down to HACL*'s Vale AES-GCM routines, composed with Vale's F* proofs of Gcm_blocks_stdcall, Gcm_blocks_decrypt_stdcall, and Compute_iv_stdcall, of the code Vale prints at HACL* f557259007db, which rind imports ✓ -AES-256-GCM open, 16 KB, aws-lc-rs on nixos: 2.92 µs, 1.82× the fastest -AES-256-GCM open, 16 KB, aws-lc-rs on desktop: 1.57 µs, 1.71× the fastest -AES-256-GCM open, 16 KB, aws-lc-rs on nixos2: 3.69 µs, 1.02× the fastest -AES-256-GCM open, 16 KB, aws-lc-rs on kixtop: 1.83 µs, 1.00× the fastest -AES-256-GCM open, 16 KB, aws-lc-rs on ovh-iad: 5.35 µs, 1.02× the fastest -AES-256-GCM open, 16 KB, aws-lc-rs on ovh-sea: 5.25 µs, 1.02× the fastest -AES-256-GCM open, 16 KB, ring on nixos: 1.62 µs, 1.01× the fastest -AES-256-GCM open, 16 KB, ring on desktop: 921 ns, 1.00× the fastest -AES-256-GCM open, 16 KB, ring on nixos2: 3.70 µs, 1.02× the fastest -AES-256-GCM open, 16 KB, ring on kixtop: 2.25 µs, 1.23× the fastest -AES-256-GCM open, 16 KB, ring on ovh-iad: 5.38 µs, 1.02× the fastest -AES-256-GCM open, 16 KB, ring on ovh-sea: 5.23 µs, 1.02× the fastest -AES-256-GCM open, 16 KB, RustCrypto + dalek on nixos: 4.93 µs, 3.08× the fastest -AES-256-GCM open, 16 KB, RustCrypto + dalek on desktop: 2.96 µs, 3.23× the fastest -AES-256-GCM open, 16 KB, RustCrypto + dalek on nixos2: 7.23 µs, 2.00× the fastest -AES-256-GCM open, 16 KB, RustCrypto + dalek on kixtop: 2.89 µs, 1.58× the fastest -AES-256-GCM open, 16 KB, RustCrypto + dalek on ovh-iad: 10.17 µs, 1.93× the fastest -AES-256-GCM open, 16 KB, RustCrypto + dalek on ovh-sea: 10.04 µs, 1.96× the fastest -AES-256-GCM open, 16 KB, graviola on nixos: 3.04 µs, 1.90× the fastest -AES-256-GCM open, 16 KB, graviola on desktop: 1.74 µs, 1.90× the fastest -AES-256-GCM open, 16 KB, graviola on nixos2: 4.54 µs, 1.25× the fastest -AES-256-GCM open, 16 KB, graviola on kixtop: 2.18 µs, 1.19× the fastest -AES-256-GCM open, 16 KB, libcrux on nixos: 79.19 µs, 49.38× the fastest -AES-256-GCM open, 16 KB, libcrux on desktop: 32.51 µs, 35.44× the fastest -AES-256-GCM open, 16 KB, libcrux on nixos2: 53.96 µs, 14.91× the fastest -AES-256-GCM open, 16 KB, libcrux on kixtop: 7.35 µs, 4.01× the fastest -AES-256-GCM open, 16 KB, libcrux on ovh-iad: 82.11 µs, 15.61× the fastest -AES-256-GCM open, 16 KB, libcrux on ovh-sea: 78.36 µs, 15.27× the fastest -AES-256-GCM open, 16 KB, OpenSSL on nixos: 2.98 µs, 1.86× the fastest -AES-256-GCM open, 16 KB, OpenSSL on desktop: 1.60 µs, 1.75× the fastest -AES-256-GCM open, 16 KB, OpenSSL on nixos2: 3.87 µs, 1.07× the fastest -AES-256-GCM open, 16 KB, OpenSSL on kixtop: 1.94 µs, 1.06× the fastest -AES-256-GCM open, 16 KB, OpenSSL on ovh-iad: 5.83 µs, 1.11× the fastest -AES-256-GCM open, 16 KB, OpenSSL on ovh-sea: 5.43 µs, 1.06× the fastest +AES-256-GCM open, 16 KB, rind (DIT held) on kixtop: 1.81 µs, 1.00× the fastest +AES-256-GCM open, 16 KB, aws-lc-rs on nixos: 2.92 µs, 1.82× the fastest +AES-256-GCM open, 16 KB, aws-lc-rs on desktop: 1.55 µs, 1.73× the fastest +AES-256-GCM open, 16 KB, aws-lc-rs on nixos2: 3.69 µs, 1.02× the fastest +AES-256-GCM open, 16 KB, aws-lc-rs on kixtop: 1.82 µs, 1.00× the fastest +AES-256-GCM open, 16 KB, aws-lc-rs on ovh-iad: 5.35 µs, 1.02× the fastest +AES-256-GCM open, 16 KB, aws-lc-rs on ovh-sea: 5.25 µs, 1.02× the fastest +AES-256-GCM open, 16 KB, ring on nixos: 1.62 µs, 1.01× the fastest +AES-256-GCM open, 16 KB, ring on desktop: 933 ns, 1.04× the fastest +AES-256-GCM open, 16 KB, ring on nixos2: 3.70 µs, 1.02× the fastest +AES-256-GCM open, 16 KB, ring on kixtop: 2.23 µs, 1.23× the fastest +AES-256-GCM open, 16 KB, ring on ovh-iad: 5.38 µs, 1.02× the fastest +AES-256-GCM open, 16 KB, ring on ovh-sea: 5.23 µs, 1.02× the fastest +AES-256-GCM open, 16 KB, RustCrypto + dalek on nixos: 4.93 µs, 3.08× the fastest +AES-256-GCM open, 16 KB, RustCrypto + dalek on desktop: 2.92 µs, 3.25× the fastest +AES-256-GCM open, 16 KB, RustCrypto + dalek on nixos2: 7.23 µs, 2.00× the fastest +AES-256-GCM open, 16 KB, RustCrypto + dalek on kixtop: 2.77 µs, 1.53× the fastest +AES-256-GCM open, 16 KB, RustCrypto + dalek on ovh-iad: 10.17 µs, 1.93× the fastest +AES-256-GCM open, 16 KB, RustCrypto + dalek on ovh-sea: 10.04 µs, 1.96× the fastest +AES-256-GCM open, 16 KB, graviola on nixos: 3.04 µs, 1.90× the fastest +AES-256-GCM open, 16 KB, graviola on desktop: 1.71 µs, 1.91× the fastest +AES-256-GCM open, 16 KB, graviola on nixos2: 4.54 µs, 1.25× the fastest +AES-256-GCM open, 16 KB, graviola on kixtop: 2.19 µs, 1.21× the fastest +AES-256-GCM open, 16 KB, libcrux on nixos: 79.19 µs, 49.38× the fastest +AES-256-GCM open, 16 KB, libcrux on desktop: 32.61 µs, 36.27× the fastest +AES-256-GCM open, 16 KB, libcrux on nixos2: 53.96 µs, 14.91× the fastest +AES-256-GCM open, 16 KB, libcrux on kixtop: 7.06 µs, 3.89× the fastest +AES-256-GCM open, 16 KB, libcrux on ovh-iad: 82.11 µs, 15.61× the fastest +AES-256-GCM open, 16 KB, libcrux on ovh-sea: 78.36 µs, 15.27× the fastest +AES-256-GCM open, 16 KB, OpenSSL on nixos: 2.98 µs, 1.86× the fastest +AES-256-GCM open, 16 KB, OpenSSL on desktop: 1.58 µs, 1.76× the fastest +AES-256-GCM open, 16 KB, OpenSSL on nixos2: 3.87 µs, 1.07× the fastest +AES-256-GCM open, 16 KB, OpenSSL on kixtop: 1.93 µs, 1.07× the fastest +AES-256-GCM open, 16 KB, OpenSSL on ovh-iad: 5.83 µs, 1.11× the fastest +AES-256-GCM open, 16 KB, OpenSSL on ovh-sea: 5.43 µs, 1.06× the fastest ChaCha20-Poly1305 seal, 32 B ChaCha20-Poly1305 seal, 32 B, rind on nixos: 114 ns, 1.01× the fastest -ChaCha20-Poly1305 seal, 32 B, rind on desktop: 100 ns, 1.00× the fastest +ChaCha20-Poly1305 seal, 32 B, rind on desktop: 98 ns, 1.00× the fastest ChaCha20-Poly1305 seal, 32 B, rind on nixos2: 129 ns, 1.00× the fastest -ChaCha20-Poly1305 seal, 32 B, rind on kixtop: 185 ns, 1.25× the fastest +ChaCha20-Poly1305 seal, 32 B, rind on kixtop: 179 ns, 1.23× the fastest ChaCha20-Poly1305 seal, 32 B, rind on ovh-iad: 192 ns, 1.00× the fastest ChaCha20-Poly1305 seal, 32 B, rind on ovh-sea: 188 ns, 1.00× the fastest -ChaCha20-Poly1305 seal, 32 B, aws-lc-rs on nixos: 119 ns, 1.06× the fastest -ChaCha20-Poly1305 seal, 32 B, aws-lc-rs on desktop: 105 ns, 1.05× the fastest -ChaCha20-Poly1305 seal, 32 B, aws-lc-rs on nixos2: 149 ns, 1.15× the fastest -ChaCha20-Poly1305 seal, 32 B, aws-lc-rs on kixtop: 163 ns, 1.10× the fastest -ChaCha20-Poly1305 seal, 32 B, aws-lc-rs on ovh-iad: 215 ns, 1.12× the fastest -ChaCha20-Poly1305 seal, 32 B, aws-lc-rs on ovh-sea: 210 ns, 1.11× the fastest -ChaCha20-Poly1305 seal, 32 B, ring on nixos: 113 ns, 1.00× the fastest -ChaCha20-Poly1305 seal, 32 B, ring on desktop: 101 ns, 1.01× the fastest -ChaCha20-Poly1305 seal, 32 B, ring on nixos2: 130 ns, 1.01× the fastest -ChaCha20-Poly1305 seal, 32 B, ring on kixtop: 148 ns, 1.00× the fastest -ChaCha20-Poly1305 seal, 32 B, ring on ovh-iad: 196 ns, 1.02× the fastest -ChaCha20-Poly1305 seal, 32 B, ring on ovh-sea: 189 ns, 1.00× the fastest -ChaCha20-Poly1305 seal, 32 B, RustCrypto + dalek on nixos: 1.18 µs, 10.48× the fastest -ChaCha20-Poly1305 seal, 32 B, RustCrypto + dalek on desktop: 1.07 µs, 10.75× the fastest -ChaCha20-Poly1305 seal, 32 B, RustCrypto + dalek on nixos2: 1.21 µs, 9.37× the fastest -ChaCha20-Poly1305 seal, 32 B, RustCrypto + dalek on kixtop: 344 ns, 2.33× the fastest -ChaCha20-Poly1305 seal, 32 B, RustCrypto + dalek on ovh-iad: 1.84 µs, 9.54× the fastest -ChaCha20-Poly1305 seal, 32 B, RustCrypto + dalek on ovh-sea: 1.75 µs, 9.29× the fastest -ChaCha20-Poly1305 seal, 32 B, graviola on nixos: 216 ns, 1.92× the fastest -ChaCha20-Poly1305 seal, 32 B, graviola on desktop: 180 ns, 1.80× the fastest -ChaCha20-Poly1305 seal, 32 B, graviola on nixos2: 232 ns, 1.80× the fastest -ChaCha20-Poly1305 seal, 32 B, graviola on kixtop: 196 ns, 1.32× the fastest -ChaCha20-Poly1305 seal, 32 B, libcrux on nixos: 220 ns, 1.96× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step -✓ -ChaCha20-Poly1305 seal, 32 B, libcrux on desktop: 157 ns, 1.57× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step -✓ -ChaCha20-Poly1305 seal, 32 B, libcrux on nixos2: 301 ns, 2.33× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step -✓ -ChaCha20-Poly1305 seal, 32 B, libcrux on kixtop: 171 ns, 1.16× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step -✓ -ChaCha20-Poly1305 seal, 32 B, libcrux on ovh-iad: 428 ns, 2.22× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step -✓ -ChaCha20-Poly1305 seal, 32 B, libcrux on ovh-sea: 416 ns, 2.21× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step -✓ -ChaCha20-Poly1305 seal, 32 B, OpenSSL on nixos: 257 ns, 2.29× the fastest -ChaCha20-Poly1305 seal, 32 B, OpenSSL on desktop: 177 ns, 1.77× the fastest -ChaCha20-Poly1305 seal, 32 B, OpenSSL on nixos2: 337 ns, 2.61× the fastest -ChaCha20-Poly1305 seal, 32 B, OpenSSL on kixtop: 215 ns, 1.46× the fastest -ChaCha20-Poly1305 seal, 32 B, OpenSSL on ovh-iad: 526 ns, 2.73× the fastest -ChaCha20-Poly1305 seal, 32 B, OpenSSL on ovh-sea: 489 ns, 2.59× the fastest +ChaCha20-Poly1305 seal, 32 B, rind (DIT held) on kixtop: 145 ns, 1.00× the fastest +ChaCha20-Poly1305 seal, 32 B, aws-lc-rs on nixos: 119 ns, 1.06× the fastest +ChaCha20-Poly1305 seal, 32 B, aws-lc-rs on desktop: 103 ns, 1.05× the fastest +ChaCha20-Poly1305 seal, 32 B, aws-lc-rs on nixos2: 149 ns, 1.15× the fastest +ChaCha20-Poly1305 seal, 32 B, aws-lc-rs on kixtop: 157 ns, 1.08× the fastest +ChaCha20-Poly1305 seal, 32 B, aws-lc-rs on ovh-iad: 215 ns, 1.12× the fastest +ChaCha20-Poly1305 seal, 32 B, aws-lc-rs on ovh-sea: 210 ns, 1.11× the fastest +ChaCha20-Poly1305 seal, 32 B, ring on nixos: 113 ns, 1.00× the fastest +ChaCha20-Poly1305 seal, 32 B, ring on desktop: 99 ns, 1.00× the fastest +ChaCha20-Poly1305 seal, 32 B, ring on nixos2: 130 ns, 1.01× the fastest +ChaCha20-Poly1305 seal, 32 B, ring on kixtop: 145 ns, 1.00× the fastest +ChaCha20-Poly1305 seal, 32 B, ring on ovh-iad: 196 ns, 1.02× the fastest +ChaCha20-Poly1305 seal, 32 B, ring on ovh-sea: 189 ns, 1.00× the fastest +ChaCha20-Poly1305 seal, 32 B, RustCrypto + dalek on nixos: 1.18 µs, 10.48× the fastest +ChaCha20-Poly1305 seal, 32 B, RustCrypto + dalek on desktop: 1.05 µs, 10.68× the fastest +ChaCha20-Poly1305 seal, 32 B, RustCrypto + dalek on nixos2: 1.21 µs, 9.37× the fastest +ChaCha20-Poly1305 seal, 32 B, RustCrypto + dalek on kixtop: 340 ns, 2.35× the fastest +ChaCha20-Poly1305 seal, 32 B, RustCrypto + dalek on ovh-iad: 1.84 µs, 9.54× the fastest +ChaCha20-Poly1305 seal, 32 B, RustCrypto + dalek on ovh-sea: 1.75 µs, 9.29× the fastest +ChaCha20-Poly1305 seal, 32 B, graviola on nixos: 216 ns, 1.92× the fastest +ChaCha20-Poly1305 seal, 32 B, graviola on desktop: 177 ns, 1.80× the fastest +ChaCha20-Poly1305 seal, 32 B, graviola on nixos2: 232 ns, 1.80× the fastest +ChaCha20-Poly1305 seal, 32 B, graviola on kixtop: 193 ns, 1.33× the fastest +ChaCha20-Poly1305 seal, 32 B, libcrux on nixos: 220 ns, 1.96× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step +✓ +ChaCha20-Poly1305 seal, 32 B, libcrux on desktop: 157 ns, 1.59× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step +✓ +ChaCha20-Poly1305 seal, 32 B, libcrux on nixos2: 301 ns, 2.33× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step +✓ +ChaCha20-Poly1305 seal, 32 B, libcrux on kixtop: 170 ns, 1.17× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step +✓ +ChaCha20-Poly1305 seal, 32 B, libcrux on ovh-iad: 428 ns, 2.22× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step +✓ +ChaCha20-Poly1305 seal, 32 B, libcrux on ovh-sea: 416 ns, 2.21× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step +✓ +ChaCha20-Poly1305 seal, 32 B, OpenSSL on nixos: 257 ns, 2.29× the fastest +ChaCha20-Poly1305 seal, 32 B, OpenSSL on desktop: 175 ns, 1.78× the fastest +ChaCha20-Poly1305 seal, 32 B, OpenSSL on nixos2: 337 ns, 2.61× the fastest +ChaCha20-Poly1305 seal, 32 B, OpenSSL on kixtop: 216 ns, 1.49× the fastest +ChaCha20-Poly1305 seal, 32 B, OpenSSL on ovh-iad: 526 ns, 2.73× the fastest +ChaCha20-Poly1305 seal, 32 B, OpenSSL on ovh-sea: 489 ns, 2.59× the fastest ChaCha20-Poly1305 seal, 1350 B ChaCha20-Poly1305 seal, 1350 B, rind on nixos: 533 ns, 1.01× the fastest -ChaCha20-Poly1305 seal, 1350 B, rind on desktop: 441 ns, 1.00× the fastest +ChaCha20-Poly1305 seal, 1350 B, rind on desktop: 440 ns, 1.00× the fastest ChaCha20-Poly1305 seal, 1350 B, rind on nixos2: 718 ns, 1.00× the fastest -ChaCha20-Poly1305 seal, 1350 B, rind on kixtop: 792 ns, 1.05× the fastest +ChaCha20-Poly1305 seal, 1350 B, rind on kixtop: 773 ns, 1.04× the fastest ChaCha20-Poly1305 seal, 1350 B, rind on ovh-iad: 1.07 µs, 1.00× the fastest ChaCha20-Poly1305 seal, 1350 B, rind on ovh-sea: 1.04 µs, 1.00× the fastest -ChaCha20-Poly1305 seal, 1350 B, aws-lc-rs on nixos: 532 ns, 1.01× the fastest -ChaCha20-Poly1305 seal, 1350 B, aws-lc-rs on desktop: 453 ns, 1.03× the fastest -ChaCha20-Poly1305 seal, 1350 B, aws-lc-rs on nixos2: 755 ns, 1.06× the fastest -ChaCha20-Poly1305 seal, 1350 B, aws-lc-rs on kixtop: 771 ns, 1.02× the fastest -ChaCha20-Poly1305 seal, 1350 B, aws-lc-rs on ovh-iad: 1.10 µs, 1.03× the fastest -ChaCha20-Poly1305 seal, 1350 B, aws-lc-rs on ovh-sea: 1.05 µs, 1.02× the fastest -ChaCha20-Poly1305 seal, 1350 B, ring on nixos: 527 ns, 1.00× the fastest -ChaCha20-Poly1305 seal, 1350 B, ring on desktop: 447 ns, 1.01× the fastest -ChaCha20-Poly1305 seal, 1350 B, ring on nixos2: 714 ns, 1.00× the fastest -ChaCha20-Poly1305 seal, 1350 B, ring on kixtop: 755 ns, 1.00× the fastest -ChaCha20-Poly1305 seal, 1350 B, ring on ovh-iad: 1.08 µs, 1.00× the fastest -ChaCha20-Poly1305 seal, 1350 B, ring on ovh-sea: 1.04 µs, 1.00× the fastest -ChaCha20-Poly1305 seal, 1350 B, RustCrypto + dalek on nixos: 1.93 µs, 3.65× the fastest -ChaCha20-Poly1305 seal, 1350 B, RustCrypto + dalek on desktop: 1.67 µs, 3.79× the fastest -ChaCha20-Poly1305 seal, 1350 B, RustCrypto + dalek on nixos2: 2.18 µs, 3.05× the fastest -ChaCha20-Poly1305 seal, 1350 B, RustCrypto + dalek on kixtop: 1.78 µs, 2.36× the fastest -ChaCha20-Poly1305 seal, 1350 B, RustCrypto + dalek on ovh-iad: 3.26 µs, 3.04× the fastest -ChaCha20-Poly1305 seal, 1350 B, RustCrypto + dalek on ovh-sea: 3.15 µs, 3.04× the fastest -ChaCha20-Poly1305 seal, 1350 B, graviola on nixos: 1.08 µs, 2.05× the fastest -ChaCha20-Poly1305 seal, 1350 B, graviola on desktop: 905 ns, 2.05× the fastest -ChaCha20-Poly1305 seal, 1350 B, graviola on nixos2: 1.29 µs, 1.81× the fastest -ChaCha20-Poly1305 seal, 1350 B, graviola on kixtop: 1.25 µs, 1.65× the fastest -ChaCha20-Poly1305 seal, 1350 B, libcrux on nixos: 2.34 µs, 4.43× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step -✓ -ChaCha20-Poly1305 seal, 1350 B, libcrux on desktop: 1.78 µs, 4.03× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step -✓ -ChaCha20-Poly1305 seal, 1350 B, libcrux on nixos2: 3.16 µs, 4.43× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step -✓ -ChaCha20-Poly1305 seal, 1350 B, libcrux on kixtop: 1.98 µs, 2.62× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step -✓ -ChaCha20-Poly1305 seal, 1350 B, libcrux on ovh-iad: 4.73 µs, 4.40× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step -✓ -ChaCha20-Poly1305 seal, 1350 B, libcrux on ovh-sea: 4.60 µs, 4.43× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step -✓ -ChaCha20-Poly1305 seal, 1350 B, OpenSSL on nixos: 745 ns, 1.41× the fastest -ChaCha20-Poly1305 seal, 1350 B, OpenSSL on desktop: 590 ns, 1.34× the fastest -ChaCha20-Poly1305 seal, 1350 B, OpenSSL on nixos2: 971 ns, 1.36× the fastest -ChaCha20-Poly1305 seal, 1350 B, OpenSSL on kixtop: 842 ns, 1.12× the fastest -ChaCha20-Poly1305 seal, 1350 B, OpenSSL on ovh-iad: 1.68 µs, 1.57× the fastest -ChaCha20-Poly1305 seal, 1350 B, OpenSSL on ovh-sea: 1.58 µs, 1.53× the fastest +ChaCha20-Poly1305 seal, 1350 B, rind (DIT held) on kixtop: 741 ns, 1.00× the fastest +ChaCha20-Poly1305 seal, 1350 B, aws-lc-rs on nixos: 532 ns, 1.01× the fastest +ChaCha20-Poly1305 seal, 1350 B, aws-lc-rs on desktop: 446 ns, 1.01× the fastest +ChaCha20-Poly1305 seal, 1350 B, aws-lc-rs on nixos2: 755 ns, 1.06× the fastest +ChaCha20-Poly1305 seal, 1350 B, aws-lc-rs on kixtop: 759 ns, 1.02× the fastest +ChaCha20-Poly1305 seal, 1350 B, aws-lc-rs on ovh-iad: 1.10 µs, 1.03× the fastest +ChaCha20-Poly1305 seal, 1350 B, aws-lc-rs on ovh-sea: 1.05 µs, 1.02× the fastest +ChaCha20-Poly1305 seal, 1350 B, ring on nixos: 527 ns, 1.00× the fastest +ChaCha20-Poly1305 seal, 1350 B, ring on desktop: 448 ns, 1.02× the fastest +ChaCha20-Poly1305 seal, 1350 B, ring on nixos2: 714 ns, 1.00× the fastest +ChaCha20-Poly1305 seal, 1350 B, ring on kixtop: 741 ns, 1.00× the fastest +ChaCha20-Poly1305 seal, 1350 B, ring on ovh-iad: 1.08 µs, 1.00× the fastest +ChaCha20-Poly1305 seal, 1350 B, ring on ovh-sea: 1.04 µs, 1.00× the fastest +ChaCha20-Poly1305 seal, 1350 B, RustCrypto + dalek on nixos: 1.93 µs, 3.65× the fastest +ChaCha20-Poly1305 seal, 1350 B, RustCrypto + dalek on desktop: 1.64 µs, 3.73× the fastest +ChaCha20-Poly1305 seal, 1350 B, RustCrypto + dalek on nixos2: 2.18 µs, 3.05× the fastest +ChaCha20-Poly1305 seal, 1350 B, RustCrypto + dalek on kixtop: 1.75 µs, 2.37× the fastest +ChaCha20-Poly1305 seal, 1350 B, RustCrypto + dalek on ovh-iad: 3.26 µs, 3.04× the fastest +ChaCha20-Poly1305 seal, 1350 B, RustCrypto + dalek on ovh-sea: 3.15 µs, 3.04× the fastest +ChaCha20-Poly1305 seal, 1350 B, graviola on nixos: 1.08 µs, 2.05× the fastest +ChaCha20-Poly1305 seal, 1350 B, graviola on desktop: 890 ns, 2.02× the fastest +ChaCha20-Poly1305 seal, 1350 B, graviola on nixos2: 1.29 µs, 1.81× the fastest +ChaCha20-Poly1305 seal, 1350 B, graviola on kixtop: 1.21 µs, 1.63× the fastest +ChaCha20-Poly1305 seal, 1350 B, libcrux on nixos: 2.34 µs, 4.43× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step +✓ +ChaCha20-Poly1305 seal, 1350 B, libcrux on desktop: 1.77 µs, 4.02× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step +✓ +ChaCha20-Poly1305 seal, 1350 B, libcrux on nixos2: 3.16 µs, 4.43× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step +✓ +ChaCha20-Poly1305 seal, 1350 B, libcrux on kixtop: 1.94 µs, 2.62× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step +✓ +ChaCha20-Poly1305 seal, 1350 B, libcrux on ovh-iad: 4.73 µs, 4.40× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step +✓ +ChaCha20-Poly1305 seal, 1350 B, libcrux on ovh-sea: 4.60 µs, 4.43× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step +✓ +ChaCha20-Poly1305 seal, 1350 B, OpenSSL on nixos: 745 ns, 1.41× the fastest +ChaCha20-Poly1305 seal, 1350 B, OpenSSL on desktop: 587 ns, 1.33× the fastest +ChaCha20-Poly1305 seal, 1350 B, OpenSSL on nixos2: 971 ns, 1.36× the fastest +ChaCha20-Poly1305 seal, 1350 B, OpenSSL on kixtop: 826 ns, 1.12× the fastest +ChaCha20-Poly1305 seal, 1350 B, OpenSSL on ovh-iad: 1.68 µs, 1.57× the fastest +ChaCha20-Poly1305 seal, 1350 B, OpenSSL on ovh-sea: 1.58 µs, 1.53× the fastest ChaCha20-Poly1305 seal, 16 KB ChaCha20-Poly1305 seal, 16 KB, rind on nixos: 4.68 µs, 1.00× the fastest -ChaCha20-Poly1305 seal, 16 KB, rind on desktop: 4.17 µs, 1.01× the fastest +ChaCha20-Poly1305 seal, 16 KB, rind on desktop: 4.19 µs, 1.02× the fastest ChaCha20-Poly1305 seal, 16 KB, rind on nixos2: 6.81 µs, 1.03× the fastest -ChaCha20-Poly1305 seal, 16 KB, rind on kixtop: 7.70 µs, 1.03× the fastest +ChaCha20-Poly1305 seal, 16 KB, rind on kixtop: 7.60 µs, 1.03× the fastest ChaCha20-Poly1305 seal, 16 KB, rind on ovh-iad: 9.85 µs, 1.00× the fastest ChaCha20-Poly1305 seal, 16 KB, rind on ovh-sea: 9.56 µs, 1.00× the fastest -ChaCha20-Poly1305 seal, 16 KB, aws-lc-rs on nixos: 4.78 µs, 1.02× the fastest -ChaCha20-Poly1305 seal, 16 KB, aws-lc-rs on desktop: 4.15 µs, 1.00× the fastest -ChaCha20-Poly1305 seal, 16 KB, aws-lc-rs on nixos2: 6.63 µs, 1.00× the fastest -ChaCha20-Poly1305 seal, 16 KB, aws-lc-rs on kixtop: 7.65 µs, 1.03× the fastest -ChaCha20-Poly1305 seal, 16 KB, aws-lc-rs on ovh-iad: 9.91 µs, 1.01× the fastest -ChaCha20-Poly1305 seal, 16 KB, aws-lc-rs on ovh-sea: 9.69 µs, 1.01× the fastest -ChaCha20-Poly1305 seal, 16 KB, ring on nixos: 4.68 µs, 1.00× the fastest -ChaCha20-Poly1305 seal, 16 KB, ring on desktop: 4.14 µs, 1.00× the fastest -ChaCha20-Poly1305 seal, 16 KB, ring on nixos2: 6.60 µs, 1.00× the fastest -ChaCha20-Poly1305 seal, 16 KB, ring on kixtop: 7.67 µs, 1.03× the fastest -ChaCha20-Poly1305 seal, 16 KB, ring on ovh-iad: 10.42 µs, 1.06× the fastest -ChaCha20-Poly1305 seal, 16 KB, ring on ovh-sea: 9.93 µs, 1.04× the fastest -ChaCha20-Poly1305 seal, 16 KB, RustCrypto + dalek on nixos: 10.09 µs, 2.16× the fastest -ChaCha20-Poly1305 seal, 16 KB, RustCrypto + dalek on desktop: 8.14 µs, 1.97× the fastest -ChaCha20-Poly1305 seal, 16 KB, RustCrypto + dalek on nixos2: 12.61 µs, 1.91× the fastest -ChaCha20-Poly1305 seal, 16 KB, RustCrypto + dalek on kixtop: 15.21 µs, 2.04× the fastest -ChaCha20-Poly1305 seal, 16 KB, RustCrypto + dalek on ovh-iad: 18.84 µs, 1.91× the fastest -ChaCha20-Poly1305 seal, 16 KB, RustCrypto + dalek on ovh-sea: 18.34 µs, 1.92× the fastest -ChaCha20-Poly1305 seal, 16 KB, graviola on nixos: 10.15 µs, 2.17× the fastest -ChaCha20-Poly1305 seal, 16 KB, graviola on desktop: 8.30 µs, 2.01× the fastest -ChaCha20-Poly1305 seal, 16 KB, graviola on nixos2: 12.52 µs, 1.90× the fastest -ChaCha20-Poly1305 seal, 16 KB, graviola on kixtop: 12.85 µs, 1.72× the fastest -ChaCha20-Poly1305 seal, 16 KB, libcrux on nixos: 26.70 µs, 5.71× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step -✓ -ChaCha20-Poly1305 seal, 16 KB, libcrux on desktop: 19.63 µs, 4.74× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step -✓ -ChaCha20-Poly1305 seal, 16 KB, libcrux on nixos2: 35.52 µs, 5.38× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step -✓ -ChaCha20-Poly1305 seal, 16 KB, libcrux on kixtop: 22.07 µs, 2.96× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step -✓ -ChaCha20-Poly1305 seal, 16 KB, libcrux on ovh-iad: 54.85 µs, 5.57× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step -✓ -ChaCha20-Poly1305 seal, 16 KB, libcrux on ovh-sea: 51.63 µs, 5.40× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step -✓ -ChaCha20-Poly1305 seal, 16 KB, OpenSSL on nixos: 5.14 µs, 1.10× the fastest -ChaCha20-Poly1305 seal, 16 KB, OpenSSL on desktop: 4.41 µs, 1.07× the fastest -ChaCha20-Poly1305 seal, 16 KB, OpenSSL on nixos2: 6.64 µs, 1.01× the fastest -ChaCha20-Poly1305 seal, 16 KB, OpenSSL on kixtop: 7.45 µs, 1.00× the fastest -ChaCha20-Poly1305 seal, 16 KB, OpenSSL on ovh-iad: 11.10 µs, 1.13× the fastest -ChaCha20-Poly1305 seal, 16 KB, OpenSSL on ovh-sea: 10.83 µs, 1.13× the fastest +ChaCha20-Poly1305 seal, 16 KB, rind (DIT held) on kixtop: 7.50 µs, 1.02× the fastest +ChaCha20-Poly1305 seal, 16 KB, aws-lc-rs on nixos: 4.78 µs, 1.02× the fastest +ChaCha20-Poly1305 seal, 16 KB, aws-lc-rs on desktop: 4.13 µs, 1.00× the fastest +ChaCha20-Poly1305 seal, 16 KB, aws-lc-rs on nixos2: 6.63 µs, 1.00× the fastest +ChaCha20-Poly1305 seal, 16 KB, aws-lc-rs on kixtop: 7.50 µs, 1.02× the fastest +ChaCha20-Poly1305 seal, 16 KB, aws-lc-rs on ovh-iad: 9.91 µs, 1.01× the fastest +ChaCha20-Poly1305 seal, 16 KB, aws-lc-rs on ovh-sea: 9.69 µs, 1.01× the fastest +ChaCha20-Poly1305 seal, 16 KB, ring on nixos: 4.68 µs, 1.00× the fastest +ChaCha20-Poly1305 seal, 16 KB, ring on desktop: 4.12 µs, 1.00× the fastest +ChaCha20-Poly1305 seal, 16 KB, ring on nixos2: 6.60 µs, 1.00× the fastest +ChaCha20-Poly1305 seal, 16 KB, ring on kixtop: 7.57 µs, 1.03× the fastest +ChaCha20-Poly1305 seal, 16 KB, ring on ovh-iad: 10.42 µs, 1.06× the fastest +ChaCha20-Poly1305 seal, 16 KB, ring on ovh-sea: 9.93 µs, 1.04× the fastest +ChaCha20-Poly1305 seal, 16 KB, RustCrypto + dalek on nixos: 10.09 µs, 2.16× the fastest +ChaCha20-Poly1305 seal, 16 KB, RustCrypto + dalek on desktop: 8.03 µs, 1.95× the fastest +ChaCha20-Poly1305 seal, 16 KB, RustCrypto + dalek on nixos2: 12.61 µs, 1.91× the fastest +ChaCha20-Poly1305 seal, 16 KB, RustCrypto + dalek on kixtop: 14.97 µs, 2.03× the fastest +ChaCha20-Poly1305 seal, 16 KB, RustCrypto + dalek on ovh-iad: 18.84 µs, 1.91× the fastest +ChaCha20-Poly1305 seal, 16 KB, RustCrypto + dalek on ovh-sea: 18.34 µs, 1.92× the fastest +ChaCha20-Poly1305 seal, 16 KB, graviola on nixos: 10.15 µs, 2.17× the fastest +ChaCha20-Poly1305 seal, 16 KB, graviola on desktop: 8.29 µs, 2.01× the fastest +ChaCha20-Poly1305 seal, 16 KB, graviola on nixos2: 12.52 µs, 1.90× the fastest +ChaCha20-Poly1305 seal, 16 KB, graviola on kixtop: 12.56 µs, 1.71× the fastest +ChaCha20-Poly1305 seal, 16 KB, libcrux on nixos: 26.70 µs, 5.71× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step +✓ +ChaCha20-Poly1305 seal, 16 KB, libcrux on desktop: 19.31 µs, 4.69× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step +✓ +ChaCha20-Poly1305 seal, 16 KB, libcrux on nixos2: 35.52 µs, 5.38× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step +✓ +ChaCha20-Poly1305 seal, 16 KB, libcrux on kixtop: 22.12 µs, 3.00× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step +✓ +ChaCha20-Poly1305 seal, 16 KB, libcrux on ovh-iad: 54.85 µs, 5.57× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step +✓ +ChaCha20-Poly1305 seal, 16 KB, libcrux on ovh-sea: 51.63 µs, 5.40× the fastest; verified: HACL*'s F* proof of Hacl.Chacha20Poly1305_32, compiled to Rust by an unverified step +✓ +ChaCha20-Poly1305 seal, 16 KB, OpenSSL on nixos: 5.14 µs, 1.10× the fastest +ChaCha20-Poly1305 seal, 16 KB, OpenSSL on desktop: 4.35 µs, 1.05× the fastest +ChaCha20-Poly1305 seal, 16 KB, OpenSSL on nixos2: 6.64 µs, 1.01× the fastest +ChaCha20-Poly1305 seal, 16 KB, OpenSSL on kixtop: 7.37 µs, 1.00× the fastest +ChaCha20-Poly1305 seal, 16 KB, OpenSSL on ovh-iad: 11.10 µs, 1.13× the fastest +ChaCha20-Poly1305 seal, 16 KB, OpenSSL on ovh-sea: 10.83 µs, 1.13× the fastest XChaCha20-Poly1305 seal, 32 B XChaCha20-Poly1305 seal, 32 B, rind on nixos: 243 ns, 1.00× the fastest -XChaCha20-Poly1305 seal, 32 B, rind on desktop: 188 ns, 1.00× the fastest +XChaCha20-Poly1305 seal, 32 B, rind on desktop: 186 ns, 1.00× the fastest XChaCha20-Poly1305 seal, 32 B, rind on nixos2: 256 ns, 1.00× the fastest -XChaCha20-Poly1305 seal, 32 B, rind on kixtop: 1.19 µs, 1.26× the fastest +XChaCha20-Poly1305 seal, 32 B, rind on kixtop: 897 ns, 1.03× the fastest XChaCha20-Poly1305 seal, 32 B, rind on ovh-iad: 419 ns, 1.00× the fastest XChaCha20-Poly1305 seal, 32 B, rind on ovh-sea: 402 ns, 1.00× the fastest -XChaCha20-Poly1305 seal, 32 B, aws-lc-rs on nixos: 267 ns, 1.10× the fastest -XChaCha20-Poly1305 seal, 32 B, aws-lc-rs on desktop: 199 ns, 1.06× the fastest -XChaCha20-Poly1305 seal, 32 B, aws-lc-rs on nixos2: 278 ns, 1.09× the fastest -XChaCha20-Poly1305 seal, 32 B, aws-lc-rs on kixtop: 943 ns, 1.00× the fastest -XChaCha20-Poly1305 seal, 32 B, aws-lc-rs on ovh-iad: 440 ns, 1.05× the fastest -XChaCha20-Poly1305 seal, 32 B, aws-lc-rs on ovh-sea: 434 ns, 1.08× the fastest -XChaCha20-Poly1305 seal, 32 B, RustCrypto + dalek on nixos: 1.36 µs, 5.60× the fastest -XChaCha20-Poly1305 seal, 32 B, RustCrypto + dalek on desktop: 889 ns, 4.72× the fastest -XChaCha20-Poly1305 seal, 32 B, RustCrypto + dalek on nixos2: 1.27 µs, 4.95× the fastest -XChaCha20-Poly1305 seal, 32 B, RustCrypto + dalek on kixtop: 1.53 µs, 1.62× the fastest -XChaCha20-Poly1305 seal, 32 B, RustCrypto + dalek on ovh-iad: 2.02 µs, 4.82× the fastest -XChaCha20-Poly1305 seal, 32 B, RustCrypto + dalek on ovh-sea: 1.98 µs, 4.93× the fastest -XChaCha20-Poly1305 seal, 32 B, graviola on nixos: 357 ns, 1.47× the fastest -XChaCha20-Poly1305 seal, 32 B, graviola on desktop: 259 ns, 1.38× the fastest -XChaCha20-Poly1305 seal, 32 B, graviola on nixos2: 335 ns, 1.31× the fastest -XChaCha20-Poly1305 seal, 32 B, graviola on kixtop: 1.11 µs, 1.17× the fastest -XChaCha20-Poly1305 seal, 32 B, libcrux on nixos: 351 ns, 1.45× the fastest -XChaCha20-Poly1305 seal, 32 B, libcrux on desktop: 248 ns, 1.32× the fastest -XChaCha20-Poly1305 seal, 32 B, libcrux on nixos2: 400 ns, 1.56× the fastest -XChaCha20-Poly1305 seal, 32 B, libcrux on kixtop: 1.11 µs, 1.18× the fastest -XChaCha20-Poly1305 seal, 32 B, libcrux on ovh-iad: 685 ns, 1.63× the fastest -XChaCha20-Poly1305 seal, 32 B, libcrux on ovh-sea: 640 ns, 1.59× the fastest +XChaCha20-Poly1305 seal, 32 B, aws-lc-rs on nixos: 267 ns, 1.10× the fastest +XChaCha20-Poly1305 seal, 32 B, aws-lc-rs on desktop: 199 ns, 1.07× the fastest +XChaCha20-Poly1305 seal, 32 B, aws-lc-rs on nixos2: 278 ns, 1.09× the fastest +XChaCha20-Poly1305 seal, 32 B, aws-lc-rs on kixtop: 871 ns, 1.00× the fastest +XChaCha20-Poly1305 seal, 32 B, aws-lc-rs on ovh-iad: 440 ns, 1.05× the fastest +XChaCha20-Poly1305 seal, 32 B, aws-lc-rs on ovh-sea: 434 ns, 1.08× the fastest +XChaCha20-Poly1305 seal, 32 B, RustCrypto + dalek on nixos: 1.36 µs, 5.60× the fastest +XChaCha20-Poly1305 seal, 32 B, RustCrypto + dalek on desktop: 1.15 µs, 6.21× the fastest +XChaCha20-Poly1305 seal, 32 B, RustCrypto + dalek on nixos2: 1.27 µs, 4.95× the fastest +XChaCha20-Poly1305 seal, 32 B, RustCrypto + dalek on kixtop: 1.06 µs, 1.21× the fastest +XChaCha20-Poly1305 seal, 32 B, RustCrypto + dalek on ovh-iad: 2.02 µs, 4.82× the fastest +XChaCha20-Poly1305 seal, 32 B, RustCrypto + dalek on ovh-sea: 1.98 µs, 4.93× the fastest +XChaCha20-Poly1305 seal, 32 B, graviola on nixos: 357 ns, 1.47× the fastest +XChaCha20-Poly1305 seal, 32 B, graviola on desktop: 255 ns, 1.37× the fastest +XChaCha20-Poly1305 seal, 32 B, graviola on nixos2: 335 ns, 1.31× the fastest +XChaCha20-Poly1305 seal, 32 B, graviola on kixtop: 905 ns, 1.04× the fastest +XChaCha20-Poly1305 seal, 32 B, libcrux on nixos: 351 ns, 1.45× the fastest +XChaCha20-Poly1305 seal, 32 B, libcrux on desktop: 244 ns, 1.31× the fastest +XChaCha20-Poly1305 seal, 32 B, libcrux on nixos2: 400 ns, 1.56× the fastest +XChaCha20-Poly1305 seal, 32 B, libcrux on kixtop: 900 ns, 1.03× the fastest +XChaCha20-Poly1305 seal, 32 B, libcrux on ovh-iad: 685 ns, 1.63× the fastest +XChaCha20-Poly1305 seal, 32 B, libcrux on ovh-sea: 640 ns, 1.59× the fastest XChaCha20-Poly1305 seal, 1350 B XChaCha20-Poly1305 seal, 1350 B, rind on nixos: 775 ns, 1.07× the fastest -XChaCha20-Poly1305 seal, 1350 B, rind on desktop: 838 ns, 1.22× the fastest +XChaCha20-Poly1305 seal, 1350 B, rind on desktop: 529 ns, 1.00× the fastest XChaCha20-Poly1305 seal, 1350 B, rind on nixos2: 804 ns, 1.00× the fastest -XChaCha20-Poly1305 seal, 1350 B, rind on kixtop: 2.02 µs, 1.07× the fastest +XChaCha20-Poly1305 seal, 1350 B, rind on kixtop: 1.47 µs, 1.02× the fastest XChaCha20-Poly1305 seal, 1350 B, rind on ovh-iad: 1.34 µs, 1.00× the fastest XChaCha20-Poly1305 seal, 1350 B, rind on ovh-sea: 1.26 µs, 1.00× the fastest -XChaCha20-Poly1305 seal, 1350 B, aws-lc-rs on nixos: 723 ns, 1.00× the fastest -XChaCha20-Poly1305 seal, 1350 B, aws-lc-rs on desktop: 687 ns, 1.00× the fastest -XChaCha20-Poly1305 seal, 1350 B, aws-lc-rs on nixos2: 831 ns, 1.03× the fastest -XChaCha20-Poly1305 seal, 1350 B, aws-lc-rs on kixtop: 1.89 µs, 1.00× the fastest -XChaCha20-Poly1305 seal, 1350 B, aws-lc-rs on ovh-iad: 1.37 µs, 1.02× the fastest -XChaCha20-Poly1305 seal, 1350 B, aws-lc-rs on ovh-sea: 1.29 µs, 1.02× the fastest -XChaCha20-Poly1305 seal, 1350 B, RustCrypto + dalek on nixos: 2.18 µs, 3.01× the fastest -XChaCha20-Poly1305 seal, 1350 B, RustCrypto + dalek on desktop: 1.74 µs, 2.54× the fastest -XChaCha20-Poly1305 seal, 1350 B, RustCrypto + dalek on nixos2: 2.20 µs, 2.74× the fastest -XChaCha20-Poly1305 seal, 1350 B, RustCrypto + dalek on kixtop: 3.19 µs, 1.69× the fastest -XChaCha20-Poly1305 seal, 1350 B, RustCrypto + dalek on ovh-iad: 3.59 µs, 2.69× the fastest -XChaCha20-Poly1305 seal, 1350 B, RustCrypto + dalek on ovh-sea: 3.40 µs, 2.69× the fastest -XChaCha20-Poly1305 seal, 1350 B, graviola on nixos: 1.31 µs, 1.81× the fastest -XChaCha20-Poly1305 seal, 1350 B, graviola on desktop: 1.35 µs, 1.97× the fastest -XChaCha20-Poly1305 seal, 1350 B, graviola on nixos2: 1.32 µs, 1.64× the fastest -XChaCha20-Poly1305 seal, 1350 B, graviola on kixtop: 2.85 µs, 1.51× the fastest -XChaCha20-Poly1305 seal, 1350 B, libcrux on nixos: 2.70 µs, 3.73× the fastest -XChaCha20-Poly1305 seal, 1350 B, libcrux on desktop: 2.56 µs, 3.73× the fastest -XChaCha20-Poly1305 seal, 1350 B, libcrux on nixos2: 3.16 µs, 3.92× the fastest -XChaCha20-Poly1305 seal, 1350 B, libcrux on kixtop: 3.80 µs, 2.02× the fastest -XChaCha20-Poly1305 seal, 1350 B, libcrux on ovh-iad: 5.18 µs, 3.88× the fastest -XChaCha20-Poly1305 seal, 1350 B, libcrux on ovh-sea: 4.82 µs, 3.81× the fastest +XChaCha20-Poly1305 seal, 1350 B, aws-lc-rs on nixos: 723 ns, 1.00× the fastest +XChaCha20-Poly1305 seal, 1350 B, aws-lc-rs on desktop: 539 ns, 1.02× the fastest +XChaCha20-Poly1305 seal, 1350 B, aws-lc-rs on nixos2: 831 ns, 1.03× the fastest +XChaCha20-Poly1305 seal, 1350 B, aws-lc-rs on kixtop: 1.45 µs, 1.00× the fastest +XChaCha20-Poly1305 seal, 1350 B, aws-lc-rs on ovh-iad: 1.37 µs, 1.02× the fastest +XChaCha20-Poly1305 seal, 1350 B, aws-lc-rs on ovh-sea: 1.29 µs, 1.02× the fastest +XChaCha20-Poly1305 seal, 1350 B, RustCrypto + dalek on nixos: 2.18 µs, 3.01× the fastest +XChaCha20-Poly1305 seal, 1350 B, RustCrypto + dalek on desktop: 1.73 µs, 3.27× the fastest +XChaCha20-Poly1305 seal, 1350 B, RustCrypto + dalek on nixos2: 2.20 µs, 2.74× the fastest +XChaCha20-Poly1305 seal, 1350 B, RustCrypto + dalek on kixtop: 2.44 µs, 1.69× the fastest +XChaCha20-Poly1305 seal, 1350 B, RustCrypto + dalek on ovh-iad: 3.59 µs, 2.69× the fastest +XChaCha20-Poly1305 seal, 1350 B, RustCrypto + dalek on ovh-sea: 3.40 µs, 2.69× the fastest +XChaCha20-Poly1305 seal, 1350 B, graviola on nixos: 1.31 µs, 1.81× the fastest +XChaCha20-Poly1305 seal, 1350 B, graviola on desktop: 974 ns, 1.84× the fastest +XChaCha20-Poly1305 seal, 1350 B, graviola on nixos2: 1.32 µs, 1.64× the fastest +XChaCha20-Poly1305 seal, 1350 B, graviola on kixtop: 1.94 µs, 1.34× the fastest +XChaCha20-Poly1305 seal, 1350 B, libcrux on nixos: 2.70 µs, 3.73× the fastest +XChaCha20-Poly1305 seal, 1350 B, libcrux on desktop: 1.83 µs, 3.47× the fastest +XChaCha20-Poly1305 seal, 1350 B, libcrux on nixos2: 3.16 µs, 3.92× the fastest +XChaCha20-Poly1305 seal, 1350 B, libcrux on kixtop: 2.71 µs, 1.87× the fastest +XChaCha20-Poly1305 seal, 1350 B, libcrux on ovh-iad: 5.18 µs, 3.88× the fastest +XChaCha20-Poly1305 seal, 1350 B, libcrux on ovh-sea: 4.82 µs, 3.81× the fastest XChaCha20-Poly1305 seal, 16 KB XChaCha20-Poly1305 seal, 16 KB, rind on nixos: 5.23 µs, 1.00× the fastest -XChaCha20-Poly1305 seal, 16 KB, rind on desktop: 6.26 µs, 1.00× the fastest +XChaCha20-Poly1305 seal, 16 KB, rind on desktop: 4.17 µs, 1.00× the fastest XChaCha20-Poly1305 seal, 16 KB, rind on nixos2: 6.38 µs, 1.00× the fastest -XChaCha20-Poly1305 seal, 16 KB, rind on kixtop: 11.36 µs, 1.00× the fastest +XChaCha20-Poly1305 seal, 16 KB, rind on kixtop: 8.23 µs, 1.00× the fastest XChaCha20-Poly1305 seal, 16 KB, rind on ovh-iad: 10.26 µs, 1.00× the fastest XChaCha20-Poly1305 seal, 16 KB, rind on ovh-sea: 10.02 µs, 1.01× the fastest -XChaCha20-Poly1305 seal, 16 KB, aws-lc-rs on nixos: 5.37 µs, 1.03× the fastest -XChaCha20-Poly1305 seal, 16 KB, aws-lc-rs on desktop: 6.27 µs, 1.00× the fastest -XChaCha20-Poly1305 seal, 16 KB, aws-lc-rs on nixos2: 6.44 µs, 1.01× the fastest -XChaCha20-Poly1305 seal, 16 KB, aws-lc-rs on kixtop: 11.43 µs, 1.01× the fastest -XChaCha20-Poly1305 seal, 16 KB, aws-lc-rs on ovh-iad: 10.47 µs, 1.02× the fastest -XChaCha20-Poly1305 seal, 16 KB, aws-lc-rs on ovh-sea: 9.94 µs, 1.00× the fastest -XChaCha20-Poly1305 seal, 16 KB, RustCrypto + dalek on nixos: 11.38 µs, 2.17× the fastest -XChaCha20-Poly1305 seal, 16 KB, RustCrypto + dalek on desktop: 12.28 µs, 1.96× the fastest -XChaCha20-Poly1305 seal, 16 KB, RustCrypto + dalek on nixos2: 12.04 µs, 1.89× the fastest -XChaCha20-Poly1305 seal, 16 KB, RustCrypto + dalek on kixtop: 22.76 µs, 2.00× the fastest -XChaCha20-Poly1305 seal, 16 KB, RustCrypto + dalek on ovh-iad: 18.84 µs, 1.84× the fastest -XChaCha20-Poly1305 seal, 16 KB, RustCrypto + dalek on ovh-sea: 18.77 µs, 1.89× the fastest -XChaCha20-Poly1305 seal, 16 KB, graviola on nixos: 10.80 µs, 2.06× the fastest -XChaCha20-Poly1305 seal, 16 KB, graviola on desktop: 12.79 µs, 2.04× the fastest -XChaCha20-Poly1305 seal, 16 KB, graviola on nixos2: 11.86 µs, 1.86× the fastest -XChaCha20-Poly1305 seal, 16 KB, graviola on kixtop: 19.24 µs, 1.69× the fastest -XChaCha20-Poly1305 seal, 16 KB, libcrux on nixos: 28.66 µs, 5.48× the fastest -XChaCha20-Poly1305 seal, 16 KB, libcrux on desktop: 27.40 µs, 4.37× the fastest -XChaCha20-Poly1305 seal, 16 KB, libcrux on nixos2: 33.42 µs, 5.23× the fastest -XChaCha20-Poly1305 seal, 16 KB, libcrux on kixtop: 34.20 µs, 3.01× the fastest -XChaCha20-Poly1305 seal, 16 KB, libcrux on ovh-iad: 54.13 µs, 5.28× the fastest -XChaCha20-Poly1305 seal, 16 KB, libcrux on ovh-sea: 52.01 µs, 5.23× the fastest +XChaCha20-Poly1305 seal, 16 KB, aws-lc-rs on nixos: 5.37 µs, 1.03× the fastest +XChaCha20-Poly1305 seal, 16 KB, aws-lc-rs on desktop: 4.23 µs, 1.01× the fastest +XChaCha20-Poly1305 seal, 16 KB, aws-lc-rs on nixos2: 6.44 µs, 1.01× the fastest +XChaCha20-Poly1305 seal, 16 KB, aws-lc-rs on kixtop: 8.31 µs, 1.01× the fastest +XChaCha20-Poly1305 seal, 16 KB, aws-lc-rs on ovh-iad: 10.47 µs, 1.02× the fastest +XChaCha20-Poly1305 seal, 16 KB, aws-lc-rs on ovh-sea: 9.94 µs, 1.00× the fastest +XChaCha20-Poly1305 seal, 16 KB, RustCrypto + dalek on nixos: 11.38 µs, 2.17× the fastest +XChaCha20-Poly1305 seal, 16 KB, RustCrypto + dalek on desktop: 8.15 µs, 1.95× the fastest +XChaCha20-Poly1305 seal, 16 KB, RustCrypto + dalek on nixos2: 12.04 µs, 1.89× the fastest +XChaCha20-Poly1305 seal, 16 KB, RustCrypto + dalek on kixtop: 15.59 µs, 1.89× the fastest +XChaCha20-Poly1305 seal, 16 KB, RustCrypto + dalek on ovh-iad: 18.84 µs, 1.84× the fastest +XChaCha20-Poly1305 seal, 16 KB, RustCrypto + dalek on ovh-sea: 18.77 µs, 1.89× the fastest +XChaCha20-Poly1305 seal, 16 KB, graviola on nixos: 10.80 µs, 2.06× the fastest +XChaCha20-Poly1305 seal, 16 KB, graviola on desktop: 8.40 µs, 2.01× the fastest +XChaCha20-Poly1305 seal, 16 KB, graviola on nixos2: 11.86 µs, 1.86× the fastest +XChaCha20-Poly1305 seal, 16 KB, graviola on kixtop: 13.22 µs, 1.61× the fastest +XChaCha20-Poly1305 seal, 16 KB, libcrux on nixos: 28.66 µs, 5.48× the fastest +XChaCha20-Poly1305 seal, 16 KB, libcrux on desktop: 19.61 µs, 4.70× the fastest +XChaCha20-Poly1305 seal, 16 KB, libcrux on nixos2: 33.42 µs, 5.23× the fastest +XChaCha20-Poly1305 seal, 16 KB, libcrux on kixtop: 22.43 µs, 2.73× the fastest +XChaCha20-Poly1305 seal, 16 KB, libcrux on ovh-iad: 54.13 µs, 5.28× the fastest +XChaCha20-Poly1305 seal, 16 KB, libcrux on ovh-sea: 52.01 µs, 5.23× the fastest QUIC header protection - + AES-128 header protection AES-128 header protection, rind on nixos: 4 ns, 1.00× the fastest AES-128 header protection, rind on desktop: 2 ns, 1.00× the fastest AES-128 header protection, rind on nixos2: 5 ns, 1.00× the fastest -AES-128 header protection, rind on kixtop: 35 ns, 12.24× the fastest +AES-128 header protection, rind on kixtop: 34 ns, 12.19× the fastest AES-128 header protection, rind on ovh-iad: 7 ns, 1.00× the fastest AES-128 header protection, rind on ovh-sea: 7 ns, 1.00× the fastest -AES-128 header protection, aws-lc-rs on nixos: 6 ns, 1.45× the fastest -AES-128 header protection, aws-lc-rs on desktop: 3 ns, 1.59× the fastest -AES-128 header protection, aws-lc-rs on nixos2: 9 ns, 1.95× the fastest -AES-128 header protection, aws-lc-rs on kixtop: 3 ns, 1.00× the fastest -AES-128 header protection, aws-lc-rs on ovh-iad: 12 ns, 1.66× the fastest -AES-128 header protection, aws-lc-rs on ovh-sea: 11 ns, 1.66× the fastest -AES-128 header protection, ring on nixos: 7 ns, 1.74× the fastest -AES-128 header protection, ring on desktop: 3 ns, 1.68× the fastest -AES-128 header protection, ring on nixos2: 8 ns, 1.73× the fastest -AES-128 header protection, ring on kixtop: 3 ns, 1.15× the fastest -AES-128 header protection, ring on ovh-iad: 13 ns, 1.74× the fastest -AES-128 header protection, ring on ovh-sea: 12 ns, 1.70× the fastest +AES-128 header protection, rind (DIT held) on kixtop: 3 ns, 1.00× the fastest +AES-128 header protection, aws-lc-rs on nixos: 6 ns, 1.45× the fastest +AES-128 header protection, aws-lc-rs on desktop: 3 ns, 1.91× the fastest +AES-128 header protection, aws-lc-rs on nixos2: 9 ns, 1.95× the fastest +AES-128 header protection, aws-lc-rs on kixtop: 3 ns, 1.00× the fastest +AES-128 header protection, aws-lc-rs on ovh-iad: 12 ns, 1.66× the fastest +AES-128 header protection, aws-lc-rs on ovh-sea: 11 ns, 1.66× the fastest +AES-128 header protection, ring on nixos: 7 ns, 1.74× the fastest +AES-128 header protection, ring on desktop: 3 ns, 2.03× the fastest +AES-128 header protection, ring on nixos2: 8 ns, 1.73× the fastest +AES-128 header protection, ring on kixtop: 3 ns, 1.12× the fastest +AES-128 header protection, ring on ovh-iad: 13 ns, 1.74× the fastest +AES-128 header protection, ring on ovh-sea: 12 ns, 1.70× the fastest AES-256 header protection AES-256 header protection, rind on nixos: 6 ns, 1.00× the fastest AES-256 header protection, rind on desktop: 2 ns, 1.00× the fastest AES-256 header protection, rind on nixos2: 8 ns, 1.00× the fastest -AES-256 header protection, rind on kixtop: 38 ns, 12.62× the fastest +AES-256 header protection, rind on kixtop: 38 ns, 12.76× the fastest AES-256 header protection, rind on ovh-iad: 10 ns, 1.00× the fastest AES-256 header protection, rind on ovh-sea: 9 ns, 1.00× the fastest -AES-256 header protection, aws-lc-rs on nixos: 8 ns, 1.32× the fastest -AES-256 header protection, aws-lc-rs on desktop: 5 ns, 2.06× the fastest -AES-256 header protection, aws-lc-rs on nixos2: 10 ns, 1.25× the fastest -AES-256 header protection, aws-lc-rs on kixtop: 3 ns, 1.00× the fastest -AES-256 header protection, aws-lc-rs on ovh-iad: 16 ns, 1.62× the fastest -AES-256 header protection, aws-lc-rs on ovh-sea: 15 ns, 1.58× the fastest -AES-256 header protection, ring on nixos: 10 ns, 1.64× the fastest -AES-256 header protection, ring on desktop: 5 ns, 2.16× the fastest -AES-256 header protection, ring on nixos2: 10 ns, 1.24× the fastest -AES-256 header protection, ring on kixtop: 4 ns, 1.31× the fastest -AES-256 header protection, ring on ovh-iad: 15 ns, 1.59× the fastest -AES-256 header protection, ring on ovh-sea: 15 ns, 1.56× the fastest +AES-256 header protection, rind (DIT held) on kixtop: 3 ns, 0.97× the fastest +AES-256 header protection, aws-lc-rs on nixos: 8 ns, 1.32× the fastest +AES-256 header protection, aws-lc-rs on desktop: 5 ns, 2.56× the fastest +AES-256 header protection, aws-lc-rs on nixos2: 10 ns, 1.25× the fastest +AES-256 header protection, aws-lc-rs on kixtop: 3 ns, 1.00× the fastest +AES-256 header protection, aws-lc-rs on ovh-iad: 16 ns, 1.62× the fastest +AES-256 header protection, aws-lc-rs on ovh-sea: 15 ns, 1.58× the fastest +AES-256 header protection, ring on nixos: 10 ns, 1.64× the fastest +AES-256 header protection, ring on desktop: 5 ns, 2.47× the fastest +AES-256 header protection, ring on nixos2: 10 ns, 1.24× the fastest +AES-256 header protection, ring on kixtop: 4 ns, 1.29× the fastest +AES-256 header protection, ring on ovh-iad: 15 ns, 1.59× the fastest +AES-256 header protection, ring on ovh-sea: 15 ns, 1.56× the fastest ChaCha20 header protection ChaCha20 header protection, rind on nixos: 61 ns, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and a hand model of the function-pointer dispatch Aeneas cannot translate, which assumes each key's mask is its own cipher's, the only one rind builds, of its header-protection API's ChaCha20 against RFC 9001 and RFC 8439, HACL*'s rounds included ✓ -ChaCha20 header protection, rind on desktop: 54 ns, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and a hand model of the function-pointer dispatch Aeneas cannot translate, which assumes each key's mask is its own cipher's, the only one rind builds, of its header-protection API's ChaCha20 against RFC 9001 and RFC 8439, HACL*'s rounds included +ChaCha20 header protection, rind on desktop: 53 ns, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and a hand model of the function-pointer dispatch Aeneas cannot translate, which assumes each key's mask is its own cipher's, the only one rind builds, of its header-protection API's ChaCha20 against RFC 9001 and RFC 8439, HACL*'s rounds included ✓ ChaCha20 header protection, rind on nixos2: 84 ns, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and a hand model of the function-pointer dispatch Aeneas cannot translate, which assumes each key's mask is its own cipher's, the only one rind builds, of its header-protection API's ChaCha20 against RFC 9001 and RFC 8439, HACL*'s rounds included ✓ -ChaCha20 header protection, rind on kixtop: 89 ns, 1.29× the fastest; verified: rind's Lean proof, through Aeneas and a hand model of the function-pointer dispatch Aeneas cannot translate, which assumes each key's mask is its own cipher's, the only one rind builds, of its header-protection API's ChaCha20 against RFC 9001 and RFC 8439, HACL*'s rounds included +ChaCha20 header protection, rind on kixtop: 88 ns, 1.30× the fastest; verified: rind's Lean proof, through Aeneas and a hand model of the function-pointer dispatch Aeneas cannot translate, which assumes each key's mask is its own cipher's, the only one rind builds, of its header-protection API's ChaCha20 against RFC 9001 and RFC 8439, HACL*'s rounds included ✓ ChaCha20 header protection, rind on ovh-iad: 126 ns, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and a hand model of the function-pointer dispatch Aeneas cannot translate, which assumes each key's mask is its own cipher's, the only one rind builds, of its header-protection API's ChaCha20 against RFC 9001 and RFC 8439, HACL*'s rounds included ✓ ChaCha20 header protection, rind on ovh-sea: 122 ns, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and a hand model of the function-pointer dispatch Aeneas cannot translate, which assumes each key's mask is its own cipher's, the only one rind builds, of its header-protection API's ChaCha20 against RFC 9001 and RFC 8439, HACL*'s rounds included ✓ -ChaCha20 header protection, aws-lc-rs on nixos: 82 ns, 1.34× the fastest -ChaCha20 header protection, aws-lc-rs on desktop: 69 ns, 1.28× the fastest -ChaCha20 header protection, aws-lc-rs on nixos2: 104 ns, 1.24× the fastest -ChaCha20 header protection, aws-lc-rs on kixtop: 73 ns, 1.07× the fastest -ChaCha20 header protection, aws-lc-rs on ovh-iad: 160 ns, 1.27× the fastest -ChaCha20 header protection, aws-lc-rs on ovh-sea: 152 ns, 1.25× the fastest -ChaCha20 header protection, ring on nixos: 74 ns, 1.22× the fastest -ChaCha20 header protection, ring on desktop: 61 ns, 1.14× the fastest -ChaCha20 header protection, ring on nixos2: 98 ns, 1.17× the fastest -ChaCha20 header protection, ring on kixtop: 68 ns, 1.00× the fastest -ChaCha20 header protection, ring on ovh-iad: 145 ns, 1.15× the fastest -ChaCha20 header protection, ring on ovh-sea: 139 ns, 1.14× the fastest +ChaCha20 header protection, rind (DIT held) on kixtop: 58 ns, 0.86× the fastest; verified: rind's Lean proof, through Aeneas and a hand model of the function-pointer dispatch Aeneas cannot translate, which assumes each key's mask is its own cipher's, the only one rind builds, of its header-protection API's ChaCha20 against RFC 9001 and RFC 8439, HACL*'s rounds included +✓ +ChaCha20 header protection, aws-lc-rs on nixos: 82 ns, 1.34× the fastest +ChaCha20 header protection, aws-lc-rs on desktop: 68 ns, 1.29× the fastest +ChaCha20 header protection, aws-lc-rs on nixos2: 104 ns, 1.24× the fastest +ChaCha20 header protection, aws-lc-rs on kixtop: 72 ns, 1.08× the fastest +ChaCha20 header protection, aws-lc-rs on ovh-iad: 160 ns, 1.27× the fastest +ChaCha20 header protection, aws-lc-rs on ovh-sea: 152 ns, 1.25× the fastest +ChaCha20 header protection, ring on nixos: 74 ns, 1.22× the fastest +ChaCha20 header protection, ring on desktop: 60 ns, 1.14× the fastest +ChaCha20 header protection, ring on nixos2: 98 ns, 1.17× the fastest +ChaCha20 header protection, ring on kixtop: 67 ns, 1.00× the fastest +ChaCha20 header protection, ring on ovh-iad: 145 ns, 1.15× the fastest +ChaCha20 header protection, ring on ovh-sea: 139 ns, 1.14× the fastest Key agreement - + X25519 X25519, rind on nixos: 23.97 µs, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and a hand model of the function-pointer dispatch Aeneas cannot translate, which assumes each key's dispatch table holds its own curve's functions, the only table rind builds, of its agreement API's X25519 down to s2n-bignum's routines, composed with s2n-bignum's HOL Light proofs of curve25519_x25519, curve25519_x25519base, their _alt forms without BMI2 and ADX, and bignum_eq, of s2n-bignum's own object code, which rind transliterates ✓ -X25519, rind on desktop: 19.68 µs, 1.06× the fastest; verified: rind's Lean proof, through Aeneas and a hand model of the function-pointer dispatch Aeneas cannot translate, which assumes each key's dispatch table holds its own curve's functions, the only table rind builds, of its agreement API's X25519 down to s2n-bignum's routines, composed with s2n-bignum's HOL Light proofs of curve25519_x25519, curve25519_x25519base, their _alt forms without BMI2 and ADX, and bignum_eq, of s2n-bignum's own object code, which rind transliterates +X25519, rind on desktop: 18.20 µs, 1.01× the fastest; verified: rind's Lean proof, through Aeneas and a hand model of the function-pointer dispatch Aeneas cannot translate, which assumes each key's dispatch table holds its own curve's functions, the only table rind builds, of its agreement API's X25519 down to s2n-bignum's routines, composed with s2n-bignum's HOL Light proofs of curve25519_x25519, curve25519_x25519base, their _alt forms without BMI2 and ADX, and bignum_eq, of s2n-bignum's own object code, which rind transliterates ✓ X25519, rind on nixos2: 25.00 µs, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and a hand model of the function-pointer dispatch Aeneas cannot translate, which assumes each key's dispatch table holds its own curve's functions, the only table rind builds, of its agreement API's X25519 down to s2n-bignum's routines, composed with s2n-bignum's HOL Light proofs of curve25519_x25519, curve25519_x25519base, their _alt forms without BMI2 and ADX, and bignum_eq, of s2n-bignum's own object code, which rind transliterates ✓ -X25519, rind on kixtop: 16.71 µs, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and a hand model of the function-pointer dispatch Aeneas cannot translate, which assumes each key's dispatch table holds its own curve's functions, the only table rind builds, of its agreement API's X25519 down to s2n-bignum's routines, composed with s2n-bignum's HOL Light proofs of curve25519_x25519_alt, curve25519_x25519base_alt, and bignum_eq, of s2n-bignum's own object code, which rind transliterates +X25519, rind on kixtop: 16.53 µs, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and a hand model of the function-pointer dispatch Aeneas cannot translate, which assumes each key's dispatch table holds its own curve's functions, the only table rind builds, of its agreement API's X25519 down to s2n-bignum's routines, composed with s2n-bignum's HOL Light proofs of curve25519_x25519_alt, curve25519_x25519base_alt, and bignum_eq, of s2n-bignum's own object code, which rind transliterates ✓ X25519, rind on ovh-iad: 51.79 µs, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and a hand model of the function-pointer dispatch Aeneas cannot translate, which assumes each key's dispatch table holds its own curve's functions, the only table rind builds, of its agreement API's X25519 down to s2n-bignum's routines, composed with s2n-bignum's HOL Light proofs of curve25519_x25519, curve25519_x25519base, their _alt forms without BMI2 and ADX, and bignum_eq, of s2n-bignum's own object code, which rind transliterates ✓ X25519, rind on ovh-sea: 51.10 µs, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and a hand model of the function-pointer dispatch Aeneas cannot translate, which assumes each key's dispatch table holds its own curve's functions, the only table rind builds, of its agreement API's X25519 down to s2n-bignum's routines, composed with s2n-bignum's HOL Light proofs of curve25519_x25519, curve25519_x25519base, their _alt forms without BMI2 and ADX, and bignum_eq, of s2n-bignum's own object code, which rind transliterates ✓ -X25519, aws-lc-rs on nixos: 24.61 µs, 1.03× the fastest -X25519, aws-lc-rs on desktop: 19.54 µs, 1.06× the fastest -X25519, aws-lc-rs on nixos2: 30.89 µs, 1.24× the fastest -X25519, aws-lc-rs on kixtop: 17.85 µs, 1.07× the fastest -X25519, aws-lc-rs on ovh-iad: 55.09 µs, 1.06× the fastest -X25519, aws-lc-rs on ovh-sea: 51.15 µs, 1.00× the fastest -X25519, ring on nixos: 46.72 µs, 1.95× the fastest -X25519, ring on desktop: 35.63 µs, 1.93× the fastest -X25519, ring on nixos2: 53.60 µs, 2.15× the fastest -X25519, ring on kixtop: 24.48 µs, 1.46× the fastest -X25519, ring on ovh-iad: 79.18 µs, 1.53× the fastest -X25519, ring on ovh-sea: 76.22 µs, 1.49× the fastest -X25519, RustCrypto + dalek on nixos: 52.09 µs, 2.18× the fastest -X25519, RustCrypto + dalek on desktop: 36.52 µs, 1.97× the fastest -X25519, RustCrypto + dalek on nixos2: 56.59 µs, 2.27× the fastest -X25519, RustCrypto + dalek on kixtop: 29.71 µs, 1.78× the fastest -X25519, RustCrypto + dalek on ovh-iad: 92.76 µs, 1.79× the fastest -X25519, RustCrypto + dalek on ovh-sea: 87.59 µs, 1.71× the fastest -X25519, graviola on nixos: 23.94 µs, 1.00× the fastest -X25519, graviola on desktop: 18.50 µs, 1.00× the fastest -X25519, graviola on nixos2: 24.95 µs, 1.00× the fastest -X25519, graviola on kixtop: 17.74 µs, 1.06× the fastest -X25519, libcrux on nixos: 64.60 µs, 2.70× the fastest; verified: HACL*'s F* proof of Hacl.Curve25519_51's secret_to_public and ecdh, compiled to Rust by an unverified step -✓ -X25519, libcrux on desktop: 43.11 µs, 2.33× the fastest; verified: HACL*'s F* proof of Hacl.Curve25519_51's secret_to_public and ecdh, compiled to Rust by an unverified step -✓ -X25519, libcrux on nixos2: 72.34 µs, 2.90× the fastest; verified: HACL*'s F* proof of Hacl.Curve25519_51's secret_to_public and ecdh, compiled to Rust by an unverified step -✓ -X25519, libcrux on kixtop: 37.77 µs, 2.26× the fastest; verified: HACL*'s F* proof of Hacl.Curve25519_51's secret_to_public and ecdh, compiled to Rust by an unverified step -✓ -X25519, libcrux on ovh-iad: 118.60 µs, 2.29× the fastest; verified: HACL*'s F* proof of Hacl.Curve25519_51's secret_to_public and ecdh, compiled to Rust by an unverified step -✓ -X25519, libcrux on ovh-sea: 113.85 µs, 2.23× the fastest; verified: HACL*'s F* proof of Hacl.Curve25519_51's secret_to_public and ecdh, compiled to Rust by an unverified step -✓ -X25519, OpenSSL on nixos: 49.70 µs, 2.08× the fastest -X25519, OpenSSL on desktop: 34.02 µs, 1.84× the fastest -X25519, OpenSSL on nixos2: 55.20 µs, 2.21× the fastest -X25519, OpenSSL on kixtop: 35.77 µs, 2.14× the fastest -X25519, OpenSSL on ovh-iad: 108.87 µs, 2.10× the fastest -X25519, OpenSSL on ovh-sea: 94.95 µs, 1.86× the fastest +X25519, aws-lc-rs on nixos: 24.61 µs, 1.03× the fastest +X25519, aws-lc-rs on desktop: 19.24 µs, 1.06× the fastest +X25519, aws-lc-rs on nixos2: 30.89 µs, 1.24× the fastest +X25519, aws-lc-rs on kixtop: 18.12 µs, 1.10× the fastest +X25519, aws-lc-rs on ovh-iad: 55.09 µs, 1.06× the fastest +X25519, aws-lc-rs on ovh-sea: 51.15 µs, 1.00× the fastest +X25519, ring on nixos: 46.72 µs, 1.95× the fastest +X25519, ring on desktop: 35.63 µs, 1.97× the fastest +X25519, ring on nixos2: 53.60 µs, 2.15× the fastest +X25519, ring on kixtop: 24.91 µs, 1.51× the fastest +X25519, ring on ovh-iad: 79.18 µs, 1.53× the fastest +X25519, ring on ovh-sea: 76.22 µs, 1.49× the fastest +X25519, RustCrypto + dalek on nixos: 52.09 µs, 2.18× the fastest +X25519, RustCrypto + dalek on desktop: 36.06 µs, 1.99× the fastest +X25519, RustCrypto + dalek on nixos2: 56.59 µs, 2.27× the fastest +X25519, RustCrypto + dalek on kixtop: 29.73 µs, 1.80× the fastest +X25519, RustCrypto + dalek on ovh-iad: 92.76 µs, 1.79× the fastest +X25519, RustCrypto + dalek on ovh-sea: 87.59 µs, 1.71× the fastest +X25519, graviola on nixos: 23.94 µs, 1.00× the fastest +X25519, graviola on desktop: 18.09 µs, 1.00× the fastest +X25519, graviola on nixos2: 24.95 µs, 1.00× the fastest +X25519, graviola on kixtop: 16.57 µs, 1.00× the fastest +X25519, libcrux on nixos: 64.60 µs, 2.70× the fastest; verified: HACL*'s F* proof of Hacl.Curve25519_51's secret_to_public and ecdh, compiled to Rust by an unverified step +✓ +X25519, libcrux on desktop: 42.68 µs, 2.36× the fastest; verified: HACL*'s F* proof of Hacl.Curve25519_51's secret_to_public and ecdh, compiled to Rust by an unverified step +✓ +X25519, libcrux on nixos2: 72.34 µs, 2.90× the fastest; verified: HACL*'s F* proof of Hacl.Curve25519_51's secret_to_public and ecdh, compiled to Rust by an unverified step +✓ +X25519, libcrux on kixtop: 37.30 µs, 2.26× the fastest; verified: HACL*'s F* proof of Hacl.Curve25519_51's secret_to_public and ecdh, compiled to Rust by an unverified step +✓ +X25519, libcrux on ovh-iad: 118.60 µs, 2.29× the fastest; verified: HACL*'s F* proof of Hacl.Curve25519_51's secret_to_public and ecdh, compiled to Rust by an unverified step +✓ +X25519, libcrux on ovh-sea: 113.85 µs, 2.23× the fastest; verified: HACL*'s F* proof of Hacl.Curve25519_51's secret_to_public and ecdh, compiled to Rust by an unverified step +✓ +X25519, OpenSSL on nixos: 49.70 µs, 2.08× the fastest +X25519, OpenSSL on desktop: 33.95 µs, 1.88× the fastest +X25519, OpenSSL on nixos2: 55.20 µs, 2.21× the fastest +X25519, OpenSSL on kixtop: 36.21 µs, 2.19× the fastest +X25519, OpenSSL on ovh-iad: 108.87 µs, 2.10× the fastest +X25519, OpenSSL on ovh-sea: 94.95 µs, 1.86× the fastest P-256 ECDH P-256 ECDH, rind on nixos: 42.82 µs, 1.01× the fastest -P-256 ECDH, rind on desktop: 29.85 µs, 1.00× the fastest +P-256 ECDH, rind on desktop: 29.52 µs, 1.00× the fastest P-256 ECDH, rind on nixos2: 42.80 µs, 1.00× the fastest -P-256 ECDH, rind on kixtop: 26.27 µs, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch and of key generation's draws through a dyn RandomSource, which Aeneas cannot translate, of its agreement API's P-256 key generation, public key, and agreement down to s2n-bignum's routines, composed with s2n-bignum's HOL Light proofs of p256_scalarmulbase_alt, p256_scalarmul_alt, bignum_tomont_p256, bignum_demont_p256, bignum_add_p256, bignum_montmul_p256, bignum_montsqr_p256, bignum_mod_n256_4, and bignum_eq, of s2n-bignum's own object code, which rind transliterates, with rind's generator table proven to hold the multiples of G that s2n-bignum's proof assumes +P-256 ECDH, rind on kixtop: 26.44 µs, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch and of key generation's draws through a dyn RandomSource, which Aeneas cannot translate, of its agreement API's P-256 key generation, public key, and agreement down to s2n-bignum's routines, composed with s2n-bignum's HOL Light proofs of p256_scalarmulbase_alt, p256_scalarmul_alt, bignum_tomont_p256, bignum_demont_p256, bignum_add_p256, bignum_montmul_p256, bignum_montsqr_p256, bignum_mod_n256_4, and bignum_eq, of s2n-bignum's own object code, which rind transliterates, with rind's generator table proven to hold the multiples of G that s2n-bignum's proof assumes ✓ P-256 ECDH, rind on ovh-iad: 80.93 µs, 1.00× the fastest P-256 ECDH, rind on ovh-sea: 78.75 µs, 1.00× the fastest -P-256 ECDH, aws-lc-rs on nixos: 42.60 µs, 1.00× the fastest -P-256 ECDH, aws-lc-rs on desktop: 32.27 µs, 1.08× the fastest -P-256 ECDH, aws-lc-rs on nixos2: 51.71 µs, 1.21× the fastest -P-256 ECDH, aws-lc-rs on kixtop: 28.51 µs, 1.09× the fastest -P-256 ECDH, aws-lc-rs on ovh-iad: 90.86 µs, 1.12× the fastest -P-256 ECDH, aws-lc-rs on ovh-sea: 83.71 µs, 1.06× the fastest -P-256 ECDH, ring on nixos: 46.05 µs, 1.08× the fastest -P-256 ECDH, ring on desktop: 34.14 µs, 1.14× the fastest -P-256 ECDH, ring on nixos2: 47.10 µs, 1.10× the fastest -P-256 ECDH, ring on kixtop: 32.31 µs, 1.23× the fastest -P-256 ECDH, ring on ovh-iad: 86.47 µs, 1.07× the fastest -P-256 ECDH, ring on ovh-sea: 83.41 µs, 1.06× the fastest -P-256 ECDH, RustCrypto + dalek on nixos: 268.62 µs, 6.31× the fastest -P-256 ECDH, RustCrypto + dalek on desktop: 123.01 µs, 4.12× the fastest -P-256 ECDH, RustCrypto + dalek on nixos2: 233.70 µs, 5.46× the fastest -P-256 ECDH, RustCrypto + dalek on kixtop: 180.62 µs, 6.88× the fastest -P-256 ECDH, RustCrypto + dalek on ovh-iad: 379.56 µs, 4.69× the fastest -P-256 ECDH, RustCrypto + dalek on ovh-sea: 363.81 µs, 4.62× the fastest -P-256 ECDH, graviola on nixos: 47.87 µs, 1.12× the fastest -P-256 ECDH, graviola on desktop: 33.46 µs, 1.12× the fastest -P-256 ECDH, graviola on nixos2: 46.44 µs, 1.08× the fastest -P-256 ECDH, graviola on kixtop: 31.56 µs, 1.20× the fastest -P-256 ECDH, libcrux on nixos: 268.70 µs, 6.31× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step -✓ -P-256 ECDH, libcrux on desktop: 169.87 µs, 5.69× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step -✓ -P-256 ECDH, libcrux on nixos2: 280.52 µs, 6.55× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step -✓ -P-256 ECDH, libcrux on kixtop: 183.72 µs, 6.99× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step -✓ -P-256 ECDH, libcrux on ovh-iad: 448.99 µs, 5.55× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step -✓ -P-256 ECDH, libcrux on ovh-sea: 431.73 µs, 5.48× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step -✓ -P-256 ECDH, OpenSSL on nixos: 71.25 µs, 1.67× the fastest -P-256 ECDH, OpenSSL on desktop: 52.91 µs, 1.77× the fastest -P-256 ECDH, OpenSSL on nixos2: 81.68 µs, 1.91× the fastest -P-256 ECDH, OpenSSL on kixtop: 49.96 µs, 1.90× the fastest -P-256 ECDH, OpenSSL on ovh-iad: 144.90 µs, 1.79× the fastest -P-256 ECDH, OpenSSL on ovh-sea: 135.76 µs, 1.72× the fastest +P-256 ECDH, aws-lc-rs on nixos: 42.60 µs, 1.00× the fastest +P-256 ECDH, aws-lc-rs on desktop: 31.77 µs, 1.08× the fastest +P-256 ECDH, aws-lc-rs on nixos2: 51.71 µs, 1.21× the fastest +P-256 ECDH, aws-lc-rs on kixtop: 28.80 µs, 1.09× the fastest +P-256 ECDH, aws-lc-rs on ovh-iad: 90.86 µs, 1.12× the fastest +P-256 ECDH, aws-lc-rs on ovh-sea: 83.71 µs, 1.06× the fastest +P-256 ECDH, ring on nixos: 46.05 µs, 1.08× the fastest +P-256 ECDH, ring on desktop: 33.64 µs, 1.14× the fastest +P-256 ECDH, ring on nixos2: 47.10 µs, 1.10× the fastest +P-256 ECDH, ring on kixtop: 32.16 µs, 1.22× the fastest +P-256 ECDH, ring on ovh-iad: 86.47 µs, 1.07× the fastest +P-256 ECDH, ring on ovh-sea: 83.41 µs, 1.06× the fastest +P-256 ECDH, RustCrypto + dalek on nixos: 268.62 µs, 6.31× the fastest +P-256 ECDH, RustCrypto + dalek on desktop: 121.30 µs, 4.11× the fastest +P-256 ECDH, RustCrypto + dalek on nixos2: 233.70 µs, 5.46× the fastest +P-256 ECDH, RustCrypto + dalek on kixtop: 178.43 µs, 6.75× the fastest +P-256 ECDH, RustCrypto + dalek on ovh-iad: 379.56 µs, 4.69× the fastest +P-256 ECDH, RustCrypto + dalek on ovh-sea: 363.81 µs, 4.62× the fastest +P-256 ECDH, graviola on nixos: 47.87 µs, 1.12× the fastest +P-256 ECDH, graviola on desktop: 33.67 µs, 1.14× the fastest +P-256 ECDH, graviola on nixos2: 46.44 µs, 1.08× the fastest +P-256 ECDH, graviola on kixtop: 31.15 µs, 1.18× the fastest +P-256 ECDH, libcrux on nixos: 268.70 µs, 6.31× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step +✓ +P-256 ECDH, libcrux on desktop: 171.68 µs, 5.81× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step +✓ +P-256 ECDH, libcrux on nixos2: 280.52 µs, 6.55× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step +✓ +P-256 ECDH, libcrux on kixtop: 182.72 µs, 6.91× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step +✓ +P-256 ECDH, libcrux on ovh-iad: 448.99 µs, 5.55× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step +✓ +P-256 ECDH, libcrux on ovh-sea: 431.73 µs, 5.48× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step +✓ +P-256 ECDH, OpenSSL on nixos: 71.25 µs, 1.67× the fastest +P-256 ECDH, OpenSSL on desktop: 52.92 µs, 1.79× the fastest +P-256 ECDH, OpenSSL on nixos2: 81.68 µs, 1.91× the fastest +P-256 ECDH, OpenSSL on kixtop: 50.38 µs, 1.91× the fastest +P-256 ECDH, OpenSSL on ovh-iad: 144.90 µs, 1.79× the fastest +P-256 ECDH, OpenSSL on ovh-sea: 135.76 µs, 1.72× the fastest Signatures - + Ed25519 sign Ed25519 sign, rind on nixos: 5.72 µs, 1.00× the fastest -Ed25519 sign, rind on desktop: 4.15 µs, 1.00× the fastest +Ed25519 sign, rind on desktop: 4.11 µs, 1.00× the fastest Ed25519 sign, rind on nixos2: 7.13 µs, 1.00× the fastest -Ed25519 sign, rind on kixtop: 3.95 µs, 1.00× the fastest +Ed25519 sign, rind on kixtop: 3.93 µs, 1.00× the fastest Ed25519 sign, rind on ovh-iad: 14.51 µs, 1.13× the fastest Ed25519 sign, rind on ovh-sea: 11.68 µs, 1.00× the fastest -Ed25519 sign, aws-lc-rs on nixos: 6.13 µs, 1.07× the fastest -Ed25519 sign, aws-lc-rs on desktop: 4.56 µs, 1.10× the fastest -Ed25519 sign, aws-lc-rs on nixos2: 7.81 µs, 1.10× the fastest -Ed25519 sign, aws-lc-rs on kixtop: 4.06 µs, 1.03× the fastest -Ed25519 sign, aws-lc-rs on ovh-iad: 12.85 µs, 1.00× the fastest -Ed25519 sign, aws-lc-rs on ovh-sea: 12.65 µs, 1.08× the fastest -Ed25519 sign, ring on nixos: 17.23 µs, 3.01× the fastest -Ed25519 sign, ring on desktop: 13.14 µs, 3.16× the fastest -Ed25519 sign, ring on nixos2: 22.26 µs, 3.12× the fastest -Ed25519 sign, ring on kixtop: 7.07 µs, 1.79× the fastest -Ed25519 sign, ring on ovh-iad: 29.90 µs, 2.33× the fastest -Ed25519 sign, ring on ovh-sea: 28.95 µs, 2.48× the fastest -Ed25519 sign, RustCrypto + dalek on nixos: 13.30 µs, 2.33× the fastest -Ed25519 sign, RustCrypto + dalek on desktop: 9.61 µs, 2.31× the fastest -Ed25519 sign, RustCrypto + dalek on nixos2: 17.40 µs, 2.44× the fastest -Ed25519 sign, RustCrypto + dalek on kixtop: 8.66 µs, 2.19× the fastest -Ed25519 sign, RustCrypto + dalek on ovh-iad: 25.23 µs, 1.96× the fastest -Ed25519 sign, RustCrypto + dalek on ovh-sea: 23.74 µs, 2.03× the fastest -Ed25519 sign, graviola on nixos: 5.83 µs, 1.02× the fastest -Ed25519 sign, graviola on desktop: 4.39 µs, 1.06× the fastest -Ed25519 sign, graviola on nixos2: 7.22 µs, 1.01× the fastest -Ed25519 sign, graviola on kixtop: 4.17 µs, 1.06× the fastest -Ed25519 sign, libcrux on nixos: 41.37 µs, 7.24× the fastest; verified: HACL*'s F* proof of Hacl.Ed25519's sign and verify, compiled to Rust by an unverified step -✓ -Ed25519 sign, libcrux on desktop: 28.97 µs, 6.97× the fastest; verified: HACL*'s F* proof of Hacl.Ed25519's sign and verify, compiled to Rust by an unverified step -✓ -Ed25519 sign, libcrux on nixos2: 53.66 µs, 7.52× the fastest; verified: HACL*'s F* proof of Hacl.Ed25519's sign and verify, compiled to Rust by an unverified step -✓ -Ed25519 sign, libcrux on kixtop: 22.12 µs, 5.60× the fastest; verified: HACL*'s F* proof of Hacl.Ed25519's sign and verify, compiled to Rust by an unverified step -✓ -Ed25519 sign, libcrux on ovh-iad: 92.43 µs, 7.19× the fastest; verified: HACL*'s F* proof of Hacl.Ed25519's sign and verify, compiled to Rust by an unverified step -✓ -Ed25519 sign, libcrux on ovh-sea: 73.35 µs, 6.28× the fastest; verified: HACL*'s F* proof of Hacl.Ed25519's sign and verify, compiled to Rust by an unverified step -✓ -Ed25519 sign, OpenSSL on nixos: 23.38 µs, 4.09× the fastest -Ed25519 sign, OpenSSL on desktop: 13.69 µs, 3.30× the fastest -Ed25519 sign, OpenSSL on nixos2: 31.01 µs, 4.35× the fastest -Ed25519 sign, OpenSSL on kixtop: 16.42 µs, 4.16× the fastest -Ed25519 sign, OpenSSL on ovh-iad: 49.77 µs, 3.87× the fastest -Ed25519 sign, OpenSSL on ovh-sea: 41.96 µs, 3.59× the fastest +Ed25519 sign, aws-lc-rs on nixos: 6.13 µs, 1.07× the fastest +Ed25519 sign, aws-lc-rs on desktop: 4.49 µs, 1.09× the fastest +Ed25519 sign, aws-lc-rs on nixos2: 7.81 µs, 1.10× the fastest +Ed25519 sign, aws-lc-rs on kixtop: 4.07 µs, 1.04× the fastest +Ed25519 sign, aws-lc-rs on ovh-iad: 12.85 µs, 1.00× the fastest +Ed25519 sign, aws-lc-rs on ovh-sea: 12.65 µs, 1.08× the fastest +Ed25519 sign, ring on nixos: 17.23 µs, 3.01× the fastest +Ed25519 sign, ring on desktop: 13.11 µs, 3.19× the fastest +Ed25519 sign, ring on nixos2: 22.26 µs, 3.12× the fastest +Ed25519 sign, ring on kixtop: 7.03 µs, 1.79× the fastest +Ed25519 sign, ring on ovh-iad: 29.90 µs, 2.33× the fastest +Ed25519 sign, ring on ovh-sea: 28.95 µs, 2.48× the fastest +Ed25519 sign, RustCrypto + dalek on nixos: 13.30 µs, 2.33× the fastest +Ed25519 sign, RustCrypto + dalek on desktop: 9.60 µs, 2.34× the fastest +Ed25519 sign, RustCrypto + dalek on nixos2: 17.40 µs, 2.44× the fastest +Ed25519 sign, RustCrypto + dalek on kixtop: 8.65 µs, 2.20× the fastest +Ed25519 sign, RustCrypto + dalek on ovh-iad: 25.23 µs, 1.96× the fastest +Ed25519 sign, RustCrypto + dalek on ovh-sea: 23.74 µs, 2.03× the fastest +Ed25519 sign, graviola on nixos: 5.83 µs, 1.02× the fastest +Ed25519 sign, graviola on desktop: 4.40 µs, 1.07× the fastest +Ed25519 sign, graviola on nixos2: 7.22 µs, 1.01× the fastest +Ed25519 sign, graviola on kixtop: 4.21 µs, 1.07× the fastest +Ed25519 sign, libcrux on nixos: 41.37 µs, 7.24× the fastest; verified: HACL*'s F* proof of Hacl.Ed25519's sign and verify, compiled to Rust by an unverified step +✓ +Ed25519 sign, libcrux on desktop: 28.54 µs, 6.94× the fastest; verified: HACL*'s F* proof of Hacl.Ed25519's sign and verify, compiled to Rust by an unverified step +✓ +Ed25519 sign, libcrux on nixos2: 53.66 µs, 7.52× the fastest; verified: HACL*'s F* proof of Hacl.Ed25519's sign and verify, compiled to Rust by an unverified step +✓ +Ed25519 sign, libcrux on kixtop: 22.00 µs, 5.60× the fastest; verified: HACL*'s F* proof of Hacl.Ed25519's sign and verify, compiled to Rust by an unverified step +✓ +Ed25519 sign, libcrux on ovh-iad: 92.43 µs, 7.19× the fastest; verified: HACL*'s F* proof of Hacl.Ed25519's sign and verify, compiled to Rust by an unverified step +✓ +Ed25519 sign, libcrux on ovh-sea: 73.35 µs, 6.28× the fastest; verified: HACL*'s F* proof of Hacl.Ed25519's sign and verify, compiled to Rust by an unverified step +✓ +Ed25519 sign, OpenSSL on nixos: 23.38 µs, 4.09× the fastest +Ed25519 sign, OpenSSL on desktop: 13.67 µs, 3.33× the fastest +Ed25519 sign, OpenSSL on nixos2: 31.01 µs, 4.35× the fastest +Ed25519 sign, OpenSSL on kixtop: 16.56 µs, 4.22× the fastest +Ed25519 sign, OpenSSL on ovh-iad: 49.77 µs, 3.87× the fastest +Ed25519 sign, OpenSSL on ovh-sea: 41.96 µs, 3.59× the fastest Ed25519 verify Ed25519 verify, rind on nixos: 27.15 µs, 1.09× the fastest -Ed25519 verify, rind on desktop: 21.75 µs, 1.01× the fastest +Ed25519 verify, rind on desktop: 21.43 µs, 1.00× the fastest Ed25519 verify, rind on nixos2: 31.81 µs, 1.06× the fastest -Ed25519 verify, rind on kixtop: 18.66 µs, 1.01× the fastest +Ed25519 verify, rind on kixtop: 18.81 µs, 1.02× the fastest Ed25519 verify, rind on ovh-iad: 60.71 µs, 1.30× the fastest Ed25519 verify, rind on ovh-sea: 58.97 µs, 1.29× the fastest -Ed25519 verify, aws-lc-rs on nixos: 27.03 µs, 1.09× the fastest -Ed25519 verify, aws-lc-rs on desktop: 21.56 µs, 1.00× the fastest -Ed25519 verify, aws-lc-rs on nixos2: 31.62 µs, 1.06× the fastest -Ed25519 verify, aws-lc-rs on kixtop: 18.52 µs, 1.01× the fastest -Ed25519 verify, aws-lc-rs on ovh-iad: 60.32 µs, 1.30× the fastest -Ed25519 verify, aws-lc-rs on ovh-sea: 57.63 µs, 1.26× the fastest -Ed25519 verify, ring on nixos: 34.76 µs, 1.40× the fastest -Ed25519 verify, ring on desktop: 26.22 µs, 1.22× the fastest -Ed25519 verify, ring on nixos2: 42.48 µs, 1.42× the fastest -Ed25519 verify, ring on kixtop: 19.94 µs, 1.08× the fastest -Ed25519 verify, ring on ovh-iad: 61.26 µs, 1.32× the fastest -Ed25519 verify, ring on ovh-sea: 59.24 µs, 1.29× the fastest -Ed25519 verify, RustCrypto + dalek on nixos: 24.83 µs, 1.00× the fastest -Ed25519 verify, RustCrypto + dalek on desktop: 21.88 µs, 1.02× the fastest -Ed25519 verify, RustCrypto + dalek on nixos2: 29.88 µs, 1.00× the fastest -Ed25519 verify, RustCrypto + dalek on kixtop: 18.42 µs, 1.00× the fastest -Ed25519 verify, RustCrypto + dalek on ovh-iad: 46.55 µs, 1.00× the fastest -Ed25519 verify, RustCrypto + dalek on ovh-sea: 45.80 µs, 1.00× the fastest -Ed25519 verify, graviola on nixos: 27.08 µs, 1.09× the fastest -Ed25519 verify, graviola on desktop: 21.61 µs, 1.00× the fastest -Ed25519 verify, graviola on nixos2: 32.22 µs, 1.08× the fastest -Ed25519 verify, graviola on kixtop: 18.69 µs, 1.01× the fastest -Ed25519 verify, libcrux on nixos: 54.52 µs, 2.20× the fastest; verified: HACL*'s F* proof of Hacl.Ed25519's sign and verify, compiled to Rust by an unverified step -✓ -Ed25519 verify, libcrux on desktop: 42.16 µs, 1.96× the fastest; verified: HACL*'s F* proof of Hacl.Ed25519's sign and verify, compiled to Rust by an unverified step -✓ -Ed25519 verify, libcrux on nixos2: 69.12 µs, 2.31× the fastest; verified: HACL*'s F* proof of Hacl.Ed25519's sign and verify, compiled to Rust by an unverified step -✓ -Ed25519 verify, libcrux on kixtop: 29.57 µs, 1.61× the fastest; verified: HACL*'s F* proof of Hacl.Ed25519's sign and verify, compiled to Rust by an unverified step -✓ -Ed25519 verify, libcrux on ovh-iad: 98.92 µs, 2.13× the fastest; verified: HACL*'s F* proof of Hacl.Ed25519's sign and verify, compiled to Rust by an unverified step -✓ -Ed25519 verify, libcrux on ovh-sea: 93.99 µs, 2.05× the fastest; verified: HACL*'s F* proof of Hacl.Ed25519's sign and verify, compiled to Rust by an unverified step -✓ -Ed25519 verify, OpenSSL on nixos: 79.25 µs, 3.19× the fastest -Ed25519 verify, OpenSSL on desktop: 45.59 µs, 2.11× the fastest -Ed25519 verify, OpenSSL on nixos2: 93.09 µs, 3.12× the fastest -Ed25519 verify, OpenSSL on kixtop: 41.08 µs, 2.23× the fastest -Ed25519 verify, OpenSSL on ovh-iad: 140.95 µs, 3.03× the fastest -Ed25519 verify, OpenSSL on ovh-sea: 136.50 µs, 2.98× the fastest +Ed25519 verify, aws-lc-rs on nixos: 27.03 µs, 1.09× the fastest +Ed25519 verify, aws-lc-rs on desktop: 21.41 µs, 1.00× the fastest +Ed25519 verify, aws-lc-rs on nixos2: 31.62 µs, 1.06× the fastest +Ed25519 verify, aws-lc-rs on kixtop: 18.48 µs, 1.00× the fastest +Ed25519 verify, aws-lc-rs on ovh-iad: 60.32 µs, 1.30× the fastest +Ed25519 verify, aws-lc-rs on ovh-sea: 57.63 µs, 1.26× the fastest +Ed25519 verify, ring on nixos: 34.76 µs, 1.40× the fastest +Ed25519 verify, ring on desktop: 25.93 µs, 1.21× the fastest +Ed25519 verify, ring on nixos2: 42.48 µs, 1.42× the fastest +Ed25519 verify, ring on kixtop: 20.22 µs, 1.09× the fastest +Ed25519 verify, ring on ovh-iad: 61.26 µs, 1.32× the fastest +Ed25519 verify, ring on ovh-sea: 59.24 µs, 1.29× the fastest +Ed25519 verify, RustCrypto + dalek on nixos: 24.83 µs, 1.00× the fastest +Ed25519 verify, RustCrypto + dalek on desktop: 21.87 µs, 1.02× the fastest +Ed25519 verify, RustCrypto + dalek on nixos2: 29.88 µs, 1.00× the fastest +Ed25519 verify, RustCrypto + dalek on kixtop: 18.60 µs, 1.01× the fastest +Ed25519 verify, RustCrypto + dalek on ovh-iad: 46.55 µs, 1.00× the fastest +Ed25519 verify, RustCrypto + dalek on ovh-sea: 45.80 µs, 1.00× the fastest +Ed25519 verify, graviola on nixos: 27.08 µs, 1.09× the fastest +Ed25519 verify, graviola on desktop: 21.45 µs, 1.00× the fastest +Ed25519 verify, graviola on nixos2: 32.22 µs, 1.08× the fastest +Ed25519 verify, graviola on kixtop: 18.94 µs, 1.03× the fastest +Ed25519 verify, libcrux on nixos: 54.52 µs, 2.20× the fastest; verified: HACL*'s F* proof of Hacl.Ed25519's sign and verify, compiled to Rust by an unverified step +✓ +Ed25519 verify, libcrux on desktop: 41.83 µs, 1.95× the fastest; verified: HACL*'s F* proof of Hacl.Ed25519's sign and verify, compiled to Rust by an unverified step +✓ +Ed25519 verify, libcrux on nixos2: 69.12 µs, 2.31× the fastest; verified: HACL*'s F* proof of Hacl.Ed25519's sign and verify, compiled to Rust by an unverified step +✓ +Ed25519 verify, libcrux on kixtop: 29.44 µs, 1.59× the fastest; verified: HACL*'s F* proof of Hacl.Ed25519's sign and verify, compiled to Rust by an unverified step +✓ +Ed25519 verify, libcrux on ovh-iad: 98.92 µs, 2.13× the fastest; verified: HACL*'s F* proof of Hacl.Ed25519's sign and verify, compiled to Rust by an unverified step +✓ +Ed25519 verify, libcrux on ovh-sea: 93.99 µs, 2.05× the fastest; verified: HACL*'s F* proof of Hacl.Ed25519's sign and verify, compiled to Rust by an unverified step +✓ +Ed25519 verify, OpenSSL on nixos: 79.25 µs, 3.19× the fastest +Ed25519 verify, OpenSSL on desktop: 44.79 µs, 2.09× the fastest +Ed25519 verify, OpenSSL on nixos2: 93.09 µs, 3.12× the fastest +Ed25519 verify, OpenSSL on kixtop: 41.29 µs, 2.23× the fastest +Ed25519 verify, OpenSSL on ovh-iad: 140.95 µs, 3.03× the fastest +Ed25519 verify, OpenSSL on ovh-sea: 136.50 µs, 2.98× the fastest P-256 ECDSA sign P-256 ECDSA sign, rind on nixos: 9.62 µs, 1.00× the fastest -P-256 ECDSA sign, rind on desktop: 6.84 µs, 1.00× the fastest +P-256 ECDSA sign, rind on desktop: 6.74 µs, 1.00× the fastest P-256 ECDSA sign, rind on nixos2: 13.11 µs, 1.00× the fastest -P-256 ECDSA sign, rind on kixtop: 7.11 µs, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch and of the nonces' draws through a dyn RandomSource, which Aeneas cannot translate, of its signature API's P-256 ECDSA with SHA-256 and fixed-length signatures, key generation and loading, signing, and verification, down to s2n-bignum's routines, composed with s2n-bignum's HOL Light proofs of p256_scalarmulbase_alt, p256_montjadd_alt, p256_montjdouble_alt, p256_montjmixadd_alt, bignum_inv_p256, bignum_neg_p256, bignum_tomont_p256, bignum_demont_p256, bignum_add_p256, bignum_montmul_p256, bignum_montsqr_p256, bignum_mod_n256_4, bignum_modadd, bignum_montmul, bignum_demont, bignum_modinv, and bignum_eq, of s2n-bignum's own object code, which rind transliterates, with the group laws its twin multiplication relies on proven from Mathlib's and the generator's order n proven, assuming HOL Light's P256_GROUP_ELEMENT_ORDER, that a point has order n, only for verification with a parsed public key, and proving a signature right when signing returns, as its nonce loop has no bound +P-256 ECDSA sign, rind on kixtop: 7.13 µs, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch and of the nonces' draws through a dyn RandomSource, which Aeneas cannot translate, of its signature API's P-256 ECDSA with SHA-256 and fixed-length signatures, key generation and loading, signing, and verification, down to s2n-bignum's routines, composed with s2n-bignum's HOL Light proofs of p256_scalarmulbase_alt, p256_montjadd_alt, p256_montjdouble_alt, p256_montjmixadd_alt, bignum_inv_p256, bignum_neg_p256, bignum_tomont_p256, bignum_demont_p256, bignum_add_p256, bignum_montmul_p256, bignum_montsqr_p256, bignum_mod_n256_4, bignum_modadd, bignum_montmul, bignum_demont, bignum_modinv, and bignum_eq, of s2n-bignum's own object code, which rind transliterates, with the group laws its twin multiplication relies on proven from Mathlib's and the generator's order n proven, assuming HOL Light's P256_GROUP_ELEMENT_ORDER, that a point has order n, only for verification with a parsed public key, and proving a signature right when signing returns, as its nonce loop has no bound ✓ P-256 ECDSA sign, rind on ovh-iad: 22.42 µs, 1.00× the fastest P-256 ECDSA sign, rind on ovh-sea: 21.44 µs, 1.00× the fastest -P-256 ECDSA sign, aws-lc-rs on nixos: 12.66 µs, 1.32× the fastest -P-256 ECDSA sign, aws-lc-rs on desktop: 12.33 µs, 1.80× the fastest -P-256 ECDSA sign, aws-lc-rs on nixos2: 19.80 µs, 1.51× the fastest -P-256 ECDSA sign, aws-lc-rs on kixtop: 11.27 µs, 1.58× the fastest -P-256 ECDSA sign, aws-lc-rs on ovh-iad: 24.53 µs, 1.09× the fastest -P-256 ECDSA sign, aws-lc-rs on ovh-sea: 23.93 µs, 1.12× the fastest -P-256 ECDSA sign, ring on nixos: 13.68 µs, 1.42× the fastest -P-256 ECDSA sign, ring on desktop: 12.24 µs, 1.79× the fastest -P-256 ECDSA sign, ring on nixos2: 14.86 µs, 1.13× the fastest -P-256 ECDSA sign, ring on kixtop: 11.01 µs, 1.55× the fastest -P-256 ECDSA sign, ring on ovh-iad: 26.21 µs, 1.17× the fastest -P-256 ECDSA sign, ring on ovh-sea: 24.84 µs, 1.16× the fastest -P-256 ECDSA sign, RustCrypto + dalek on nixos: 70.62 µs, 7.34× the fastest -P-256 ECDSA sign, RustCrypto + dalek on desktop: 31.65 µs, 4.63× the fastest -P-256 ECDSA sign, RustCrypto + dalek on nixos2: 69.11 µs, 5.27× the fastest -P-256 ECDSA sign, RustCrypto + dalek on kixtop: 44.33 µs, 6.23× the fastest -P-256 ECDSA sign, RustCrypto + dalek on ovh-iad: 107.76 µs, 4.81× the fastest -P-256 ECDSA sign, RustCrypto + dalek on ovh-sea: 107.39 µs, 5.01× the fastest -P-256 ECDSA sign, graviola on nixos: 11.49 µs, 1.19× the fastest -P-256 ECDSA sign, graviola on desktop: 9.26 µs, 1.35× the fastest -P-256 ECDSA sign, graviola on nixos2: 19.89 µs, 1.52× the fastest -P-256 ECDSA sign, graviola on kixtop: 8.83 µs, 1.24× the fastest -P-256 ECDSA sign, libcrux on nixos: 95.47 µs, 9.92× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step -✓ -P-256 ECDSA sign, libcrux on desktop: 61.34 µs, 8.97× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step -✓ -P-256 ECDSA sign, libcrux on nixos2: 102.03 µs, 7.78× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step -✓ -P-256 ECDSA sign, libcrux on kixtop: 67.38 µs, 9.47× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step -✓ -P-256 ECDSA sign, libcrux on ovh-iad: 163.02 µs, 7.27× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step -✓ -P-256 ECDSA sign, libcrux on ovh-sea: 156.95 µs, 7.32× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step -✓ -P-256 ECDSA sign, OpenSSL on nixos: 18.04 µs, 1.88× the fastest -P-256 ECDSA sign, OpenSSL on desktop: 14.33 µs, 2.09× the fastest -P-256 ECDSA sign, OpenSSL on nixos2: 20.35 µs, 1.55× the fastest -P-256 ECDSA sign, OpenSSL on kixtop: 12.62 µs, 1.77× the fastest -P-256 ECDSA sign, OpenSSL on ovh-iad: 32.70 µs, 1.46× the fastest -P-256 ECDSA sign, OpenSSL on ovh-sea: 31.82 µs, 1.48× the fastest +P-256 ECDSA sign, aws-lc-rs on nixos: 12.66 µs, 1.32× the fastest +P-256 ECDSA sign, aws-lc-rs on desktop: 12.25 µs, 1.82× the fastest +P-256 ECDSA sign, aws-lc-rs on nixos2: 19.80 µs, 1.51× the fastest +P-256 ECDSA sign, aws-lc-rs on kixtop: 11.16 µs, 1.56× the fastest +P-256 ECDSA sign, aws-lc-rs on ovh-iad: 24.53 µs, 1.09× the fastest +P-256 ECDSA sign, aws-lc-rs on ovh-sea: 23.93 µs, 1.12× the fastest +P-256 ECDSA sign, ring on nixos: 13.68 µs, 1.42× the fastest +P-256 ECDSA sign, ring on desktop: 12.20 µs, 1.81× the fastest +P-256 ECDSA sign, ring on nixos2: 14.86 µs, 1.13× the fastest +P-256 ECDSA sign, ring on kixtop: 10.91 µs, 1.53× the fastest +P-256 ECDSA sign, ring on ovh-iad: 26.21 µs, 1.17× the fastest +P-256 ECDSA sign, ring on ovh-sea: 24.84 µs, 1.16× the fastest +P-256 ECDSA sign, RustCrypto + dalek on nixos: 70.62 µs, 7.34× the fastest +P-256 ECDSA sign, RustCrypto + dalek on desktop: 31.32 µs, 4.65× the fastest +P-256 ECDSA sign, RustCrypto + dalek on nixos2: 69.11 µs, 5.27× the fastest +P-256 ECDSA sign, RustCrypto + dalek on kixtop: 43.98 µs, 6.17× the fastest +P-256 ECDSA sign, RustCrypto + dalek on ovh-iad: 107.76 µs, 4.81× the fastest +P-256 ECDSA sign, RustCrypto + dalek on ovh-sea: 107.39 µs, 5.01× the fastest +P-256 ECDSA sign, graviola on nixos: 11.49 µs, 1.19× the fastest +P-256 ECDSA sign, graviola on desktop: 8.97 µs, 1.33× the fastest +P-256 ECDSA sign, graviola on nixos2: 19.89 µs, 1.52× the fastest +P-256 ECDSA sign, graviola on kixtop: 8.58 µs, 1.20× the fastest +P-256 ECDSA sign, libcrux on nixos: 95.47 µs, 9.92× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step +✓ +P-256 ECDSA sign, libcrux on desktop: 61.81 µs, 9.17× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step +✓ +P-256 ECDSA sign, libcrux on nixos2: 102.03 µs, 7.78× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step +✓ +P-256 ECDSA sign, libcrux on kixtop: 66.95 µs, 9.38× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step +✓ +P-256 ECDSA sign, libcrux on ovh-iad: 163.02 µs, 7.27× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step +✓ +P-256 ECDSA sign, libcrux on ovh-sea: 156.95 µs, 7.32× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step +✓ +P-256 ECDSA sign, OpenSSL on nixos: 18.04 µs, 1.88× the fastest +P-256 ECDSA sign, OpenSSL on desktop: 14.45 µs, 2.14× the fastest +P-256 ECDSA sign, OpenSSL on nixos2: 20.35 µs, 1.55× the fastest +P-256 ECDSA sign, OpenSSL on kixtop: 12.43 µs, 1.74× the fastest +P-256 ECDSA sign, OpenSSL on ovh-iad: 32.70 µs, 1.46× the fastest +P-256 ECDSA sign, OpenSSL on ovh-sea: 31.82 µs, 1.48× the fastest P-256 ECDSA verify P-256 ECDSA verify, rind on nixos: 39.25 µs, 1.00× the fastest -P-256 ECDSA verify, rind on desktop: 30.95 µs, 1.03× the fastest +P-256 ECDSA verify, rind on desktop: 30.59 µs, 1.03× the fastest P-256 ECDSA verify, rind on nixos2: 41.56 µs, 1.00× the fastest -P-256 ECDSA verify, rind on kixtop: 27.15 µs, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch and of the nonces' draws through a dyn RandomSource, which Aeneas cannot translate, of its signature API's P-256 ECDSA with SHA-256 and fixed-length signatures, key generation and loading, signing, and verification, down to s2n-bignum's routines, composed with s2n-bignum's HOL Light proofs of p256_scalarmulbase_alt, p256_montjadd_alt, p256_montjdouble_alt, p256_montjmixadd_alt, bignum_inv_p256, bignum_neg_p256, bignum_tomont_p256, bignum_demont_p256, bignum_add_p256, bignum_montmul_p256, bignum_montsqr_p256, bignum_mod_n256_4, bignum_modadd, bignum_montmul, bignum_demont, bignum_modinv, and bignum_eq, of s2n-bignum's own object code, which rind transliterates, with the group laws its twin multiplication relies on proven from Mathlib's and the generator's order n proven, assuming HOL Light's P256_GROUP_ELEMENT_ORDER, that a point has order n, only for verification with a parsed public key, and proving a signature right when signing returns, as its nonce loop has no bound +P-256 ECDSA verify, rind on kixtop: 26.25 µs, 1.00× the fastest; verified: rind's Lean proof, through Aeneas and hand models of the function-pointer dispatch and of the nonces' draws through a dyn RandomSource, which Aeneas cannot translate, of its signature API's P-256 ECDSA with SHA-256 and fixed-length signatures, key generation and loading, signing, and verification, down to s2n-bignum's routines, composed with s2n-bignum's HOL Light proofs of p256_scalarmulbase_alt, p256_montjadd_alt, p256_montjdouble_alt, p256_montjmixadd_alt, bignum_inv_p256, bignum_neg_p256, bignum_tomont_p256, bignum_demont_p256, bignum_add_p256, bignum_montmul_p256, bignum_montsqr_p256, bignum_mod_n256_4, bignum_modadd, bignum_montmul, bignum_demont, bignum_modinv, and bignum_eq, of s2n-bignum's own object code, which rind transliterates, with the group laws its twin multiplication relies on proven from Mathlib's and the generator's order n proven, assuming HOL Light's P256_GROUP_ELEMENT_ORDER, that a point has order n, only for verification with a parsed public key, and proving a signature right when signing returns, as its nonce loop has no bound ✓ P-256 ECDSA verify, rind on ovh-iad: 81.50 µs, 1.05× the fastest P-256 ECDSA verify, rind on ovh-sea: 77.75 µs, 1.04× the fastest -P-256 ECDSA verify, aws-lc-rs on nixos: 40.24 µs, 1.03× the fastest -P-256 ECDSA verify, aws-lc-rs on desktop: 30.08 µs, 1.00× the fastest -P-256 ECDSA verify, aws-lc-rs on nixos2: 43.27 µs, 1.04× the fastest -P-256 ECDSA verify, aws-lc-rs on kixtop: 27.15 µs, 1.00× the fastest -P-256 ECDSA verify, aws-lc-rs on ovh-iad: 77.59 µs, 1.00× the fastest -P-256 ECDSA verify, aws-lc-rs on ovh-sea: 74.54 µs, 1.00× the fastest -P-256 ECDSA verify, ring on nixos: 41.25 µs, 1.05× the fastest -P-256 ECDSA verify, ring on desktop: 33.74 µs, 1.12× the fastest -P-256 ECDSA verify, ring on nixos2: 43.93 µs, 1.06× the fastest -P-256 ECDSA verify, ring on kixtop: 29.35 µs, 1.08× the fastest -P-256 ECDSA verify, ring on ovh-iad: 79.97 µs, 1.03× the fastest -P-256 ECDSA verify, ring on ovh-sea: 78.73 µs, 1.06× the fastest -P-256 ECDSA verify, RustCrypto + dalek on nixos: 226.27 µs, 5.77× the fastest -P-256 ECDSA verify, RustCrypto + dalek on desktop: 104.58 µs, 3.48× the fastest -P-256 ECDSA verify, RustCrypto + dalek on nixos2: 197.15 µs, 4.74× the fastest -P-256 ECDSA verify, RustCrypto + dalek on kixtop: 157.87 µs, 5.82× the fastest -P-256 ECDSA verify, RustCrypto + dalek on ovh-iad: 324.89 µs, 4.19× the fastest -P-256 ECDSA verify, RustCrypto + dalek on ovh-sea: 305.79 µs, 4.10× the fastest -P-256 ECDSA verify, graviola on nixos: 41.92 µs, 1.07× the fastest -P-256 ECDSA verify, graviola on desktop: 32.89 µs, 1.09× the fastest -P-256 ECDSA verify, graviola on nixos2: 44.30 µs, 1.07× the fastest -P-256 ECDSA verify, graviola on kixtop: 28.60 µs, 1.05× the fastest -P-256 ECDSA verify, libcrux on nixos: 215.83 µs, 5.50× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step -✓ -P-256 ECDSA verify, libcrux on desktop: 147.11 µs, 4.89× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step -✓ -P-256 ECDSA verify, libcrux on nixos2: 236.87 µs, 5.70× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step -✓ -P-256 ECDSA verify, libcrux on kixtop: 156.54 µs, 5.77× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step -✓ -P-256 ECDSA verify, libcrux on ovh-iad: 389.47 µs, 5.02× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step -✓ -P-256 ECDSA verify, libcrux on ovh-sea: 363.17 µs, 4.87× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step -✓ -P-256 ECDSA verify, OpenSSL on nixos: 60.27 µs, 1.54× the fastest -P-256 ECDSA verify, OpenSSL on desktop: 46.41 µs, 1.54× the fastest -P-256 ECDSA verify, OpenSSL on nixos2: 68.34 µs, 1.64× the fastest -P-256 ECDSA verify, OpenSSL on kixtop: 41.90 µs, 1.54× the fastest -P-256 ECDSA verify, OpenSSL on ovh-iad: 115.24 µs, 1.49× the fastest -P-256 ECDSA verify, OpenSSL on ovh-sea: 111.98 µs, 1.50× the fastest +P-256 ECDSA verify, aws-lc-rs on nixos: 40.24 µs, 1.03× the fastest +P-256 ECDSA verify, aws-lc-rs on desktop: 29.75 µs, 1.00× the fastest +P-256 ECDSA verify, aws-lc-rs on nixos2: 43.27 µs, 1.04× the fastest +P-256 ECDSA verify, aws-lc-rs on kixtop: 27.38 µs, 1.04× the fastest +P-256 ECDSA verify, aws-lc-rs on ovh-iad: 77.59 µs, 1.00× the fastest +P-256 ECDSA verify, aws-lc-rs on ovh-sea: 74.54 µs, 1.00× the fastest +P-256 ECDSA verify, ring on nixos: 41.25 µs, 1.05× the fastest +P-256 ECDSA verify, ring on desktop: 33.23 µs, 1.12× the fastest +P-256 ECDSA verify, ring on nixos2: 43.93 µs, 1.06× the fastest +P-256 ECDSA verify, ring on kixtop: 29.22 µs, 1.11× the fastest +P-256 ECDSA verify, ring on ovh-iad: 79.97 µs, 1.03× the fastest +P-256 ECDSA verify, ring on ovh-sea: 78.73 µs, 1.06× the fastest +P-256 ECDSA verify, RustCrypto + dalek on nixos: 226.27 µs, 5.77× the fastest +P-256 ECDSA verify, RustCrypto + dalek on desktop: 103.24 µs, 3.47× the fastest +P-256 ECDSA verify, RustCrypto + dalek on nixos2: 197.15 µs, 4.74× the fastest +P-256 ECDSA verify, RustCrypto + dalek on kixtop: 151.69 µs, 5.78× the fastest +P-256 ECDSA verify, RustCrypto + dalek on ovh-iad: 324.89 µs, 4.19× the fastest +P-256 ECDSA verify, RustCrypto + dalek on ovh-sea: 305.79 µs, 4.10× the fastest +P-256 ECDSA verify, graviola on nixos: 41.92 µs, 1.07× the fastest +P-256 ECDSA verify, graviola on desktop: 32.36 µs, 1.09× the fastest +P-256 ECDSA verify, graviola on nixos2: 44.30 µs, 1.07× the fastest +P-256 ECDSA verify, graviola on kixtop: 28.18 µs, 1.07× the fastest +P-256 ECDSA verify, libcrux on nixos: 215.83 µs, 5.50× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step +✓ +P-256 ECDSA verify, libcrux on desktop: 147.27 µs, 4.95× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step +✓ +P-256 ECDSA verify, libcrux on nixos2: 236.87 µs, 5.70× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step +✓ +P-256 ECDSA verify, libcrux on kixtop: 156.18 µs, 5.95× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step +✓ +P-256 ECDSA verify, libcrux on ovh-iad: 389.47 µs, 5.02× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step +✓ +P-256 ECDSA verify, libcrux on ovh-sea: 363.17 µs, 4.87× the fastest; verified: HACL*'s F* proof of Hacl.P256's dh_initiator, dh_responder, ecdsa_sign_p256_sha2, and ecdsa_verif_p256_sha2, compiled to Rust by an unverified step +✓ +P-256 ECDSA verify, OpenSSL on nixos: 60.27 µs, 1.54× the fastest +P-256 ECDSA verify, OpenSSL on desktop: 46.46 µs, 1.56× the fastest +P-256 ECDSA verify, OpenSSL on nixos2: 68.34 µs, 1.64× the fastest +P-256 ECDSA verify, OpenSSL on kixtop: 41.90 µs, 1.60× the fastest +P-256 ECDSA verify, OpenSSL on ovh-iad: 115.24 µs, 1.49× the fastest +P-256 ECDSA verify, OpenSSL on ovh-sea: 111.98 µs, 1.50× the fastest Hashes and KDFs - + SHA-256, 64 B SHA-256, 64 B, rind on nixos: 69 ns, 1.17× the fastest SHA-256, 64 B, rind on desktop: 28 ns, 1.00× the fastest SHA-256, 64 B, rind on nixos2: 244 ns, 1.00× the fastest -SHA-256, 64 B, rind on kixtop: 93 ns, 2.58× the fastest +SHA-256, 64 B, rind on kixtop: 90 ns, 2.54× the fastest SHA-256, 64 B, rind on ovh-iad: 399 ns, 1.00× the fastest SHA-256, 64 B, rind on ovh-sea: 386 ns, 1.00× the fastest -SHA-256, 64 B, aws-lc-rs on nixos: 96 ns, 1.63× the fastest -SHA-256, 64 B, aws-lc-rs on desktop: 57 ns, 2.02× the fastest -SHA-256, 64 B, aws-lc-rs on nixos2: 307 ns, 1.26× the fastest -SHA-256, 64 B, aws-lc-rs on kixtop: 71 ns, 1.97× the fastest -SHA-256, 64 B, aws-lc-rs on ovh-iad: 491 ns, 1.23× the fastest -SHA-256, 64 B, aws-lc-rs on ovh-sea: 481 ns, 1.24× the fastest -SHA-256, 64 B, ring on nixos: 78 ns, 1.34× the fastest -SHA-256, 64 B, ring on desktop: 58 ns, 2.04× the fastest -SHA-256, 64 B, ring on nixos2: 277 ns, 1.13× the fastest -SHA-256, 64 B, ring on kixtop: 45 ns, 1.25× the fastest -SHA-256, 64 B, ring on ovh-iad: 449 ns, 1.13× the fastest -SHA-256, 64 B, ring on ovh-sea: 432 ns, 1.12× the fastest -SHA-256, 64 B, RustCrypto + dalek on nixos: 59 ns, 1.00× the fastest -SHA-256, 64 B, RustCrypto + dalek on desktop: 40 ns, 1.41× the fastest -SHA-256, 64 B, RustCrypto + dalek on nixos2: 473 ns, 1.94× the fastest -SHA-256, 64 B, RustCrypto + dalek on kixtop: 37 ns, 1.03× the fastest -SHA-256, 64 B, RustCrypto + dalek on ovh-iad: 762 ns, 1.91× the fastest -SHA-256, 64 B, RustCrypto + dalek on ovh-sea: 734 ns, 1.90× the fastest -SHA-256, 64 B, graviola on nixos: 67 ns, 1.15× the fastest -SHA-256, 64 B, graviola on desktop: 41 ns, 1.45× the fastest -SHA-256, 64 B, graviola on nixos2: 576 ns, 2.37× the fastest -SHA-256, 64 B, graviola on kixtop: 36 ns, 1.00× the fastest -SHA-256, 64 B, libcrux on nixos: 385 ns, 6.56× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -✓ -SHA-256, 64 B, libcrux on desktop: 211 ns, 7.50× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -✓ -SHA-256, 64 B, libcrux on nixos2: 485 ns, 1.99× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -✓ -SHA-256, 64 B, libcrux on kixtop: 232 ns, 6.45× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -✓ -SHA-256, 64 B, libcrux on ovh-iad: 764 ns, 1.92× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -✓ -SHA-256, 64 B, libcrux on ovh-sea: 760 ns, 1.97× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -✓ -SHA-256, 64 B, OpenSSL on nixos: 244 ns, 4.15× the fastest -SHA-256, 64 B, OpenSSL on desktop: 161 ns, 5.72× the fastest -SHA-256, 64 B, OpenSSL on nixos2: 505 ns, 2.07× the fastest -SHA-256, 64 B, OpenSSL on kixtop: 162 ns, 4.50× the fastest -SHA-256, 64 B, OpenSSL on ovh-iad: 813 ns, 2.04× the fastest -SHA-256, 64 B, OpenSSL on ovh-sea: 801 ns, 2.07× the fastest +SHA-256, 64 B, rind (DIT held) on kixtop: 37 ns, 1.04× the fastest +SHA-256, 64 B, aws-lc-rs on nixos: 96 ns, 1.63× the fastest +SHA-256, 64 B, aws-lc-rs on desktop: 57 ns, 2.02× the fastest +SHA-256, 64 B, aws-lc-rs on nixos2: 307 ns, 1.26× the fastest +SHA-256, 64 B, aws-lc-rs on kixtop: 70 ns, 1.99× the fastest +SHA-256, 64 B, aws-lc-rs on ovh-iad: 491 ns, 1.23× the fastest +SHA-256, 64 B, aws-lc-rs on ovh-sea: 481 ns, 1.24× the fastest +SHA-256, 64 B, ring on nixos: 78 ns, 1.34× the fastest +SHA-256, 64 B, ring on desktop: 56 ns, 2.00× the fastest +SHA-256, 64 B, ring on nixos2: 277 ns, 1.13× the fastest +SHA-256, 64 B, ring on kixtop: 44 ns, 1.25× the fastest +SHA-256, 64 B, ring on ovh-iad: 449 ns, 1.13× the fastest +SHA-256, 64 B, ring on ovh-sea: 432 ns, 1.12× the fastest +SHA-256, 64 B, RustCrypto + dalek on nixos: 59 ns, 1.00× the fastest +SHA-256, 64 B, RustCrypto + dalek on desktop: 39 ns, 1.39× the fastest +SHA-256, 64 B, RustCrypto + dalek on nixos2: 473 ns, 1.94× the fastest +SHA-256, 64 B, RustCrypto + dalek on kixtop: 36 ns, 1.03× the fastest +SHA-256, 64 B, RustCrypto + dalek on ovh-iad: 762 ns, 1.91× the fastest +SHA-256, 64 B, RustCrypto + dalek on ovh-sea: 734 ns, 1.90× the fastest +SHA-256, 64 B, graviola on nixos: 67 ns, 1.15× the fastest +SHA-256, 64 B, graviola on desktop: 40 ns, 1.42× the fastest +SHA-256, 64 B, graviola on nixos2: 576 ns, 2.37× the fastest +SHA-256, 64 B, graviola on kixtop: 35 ns, 1.00× the fastest +SHA-256, 64 B, libcrux on nixos: 385 ns, 6.56× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +✓ +SHA-256, 64 B, libcrux on desktop: 218 ns, 7.72× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +✓ +SHA-256, 64 B, libcrux on nixos2: 485 ns, 1.99× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +✓ +SHA-256, 64 B, libcrux on kixtop: 225 ns, 6.37× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +✓ +SHA-256, 64 B, libcrux on ovh-iad: 764 ns, 1.92× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +✓ +SHA-256, 64 B, libcrux on ovh-sea: 760 ns, 1.97× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +✓ +SHA-256, 64 B, OpenSSL on nixos: 244 ns, 4.15× the fastest +SHA-256, 64 B, OpenSSL on desktop: 158 ns, 5.62× the fastest +SHA-256, 64 B, OpenSSL on nixos2: 505 ns, 2.07× the fastest +SHA-256, 64 B, OpenSSL on kixtop: 159 ns, 4.51× the fastest +SHA-256, 64 B, OpenSSL on ovh-iad: 813 ns, 2.04× the fastest +SHA-256, 64 B, OpenSSL on ovh-sea: 801 ns, 2.07× the fastest SHA-256, 1350 B SHA-256, 1350 B, rind on nixos: 620 ns, 1.00× the fastest -SHA-256, 1350 B, rind on desktop: 279 ns, 1.00× the fastest +SHA-256, 1350 B, rind on desktop: 269 ns, 1.00× the fastest SHA-256, 1350 B, rind on nixos2: 2.46 µs, 1.00× the fastest -SHA-256, 1350 B, rind on kixtop: 484 ns, 1.17× the fastest +SHA-256, 1350 B, rind on kixtop: 485 ns, 1.18× the fastest SHA-256, 1350 B, rind on ovh-iad: 3.87 µs, 1.00× the fastest SHA-256, 1350 B, rind on ovh-sea: 3.85 µs, 1.00× the fastest -SHA-256, 1350 B, aws-lc-rs on nixos: 740 ns, 1.20× the fastest -SHA-256, 1350 B, aws-lc-rs on desktop: 312 ns, 1.12× the fastest -SHA-256, 1350 B, aws-lc-rs on nixos2: 2.79 µs, 1.14× the fastest -SHA-256, 1350 B, aws-lc-rs on kixtop: 440 ns, 1.06× the fastest -SHA-256, 1350 B, aws-lc-rs on ovh-iad: 4.74 µs, 1.22× the fastest -SHA-256, 1350 B, aws-lc-rs on ovh-sea: 4.75 µs, 1.23× the fastest -SHA-256, 1350 B, ring on nixos: 637 ns, 1.03× the fastest -SHA-256, 1350 B, ring on desktop: 304 ns, 1.09× the fastest -SHA-256, 1350 B, ring on nixos2: 2.82 µs, 1.15× the fastest -SHA-256, 1350 B, ring on kixtop: 414 ns, 1.00× the fastest -SHA-256, 1350 B, ring on ovh-iad: 4.47 µs, 1.15× the fastest -SHA-256, 1350 B, ring on ovh-sea: 4.31 µs, 1.12× the fastest -SHA-256, 1350 B, RustCrypto + dalek on nixos: 618 ns, 1.00× the fastest -SHA-256, 1350 B, RustCrypto + dalek on desktop: 296 ns, 1.06× the fastest -SHA-256, 1350 B, RustCrypto + dalek on nixos2: 5.11 µs, 2.08× the fastest -SHA-256, 1350 B, RustCrypto + dalek on kixtop: 475 ns, 1.15× the fastest -SHA-256, 1350 B, RustCrypto + dalek on ovh-iad: 8.13 µs, 2.10× the fastest -SHA-256, 1350 B, RustCrypto + dalek on ovh-sea: 8.29 µs, 2.15× the fastest -SHA-256, 1350 B, graviola on nixos: 637 ns, 1.03× the fastest -SHA-256, 1350 B, graviola on desktop: 297 ns, 1.06× the fastest -SHA-256, 1350 B, graviola on nixos2: 6.07 µs, 2.47× the fastest -SHA-256, 1350 B, graviola on kixtop: 472 ns, 1.14× the fastest -SHA-256, 1350 B, libcrux on nixos: 3.71 µs, 6.00× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -✓ -SHA-256, 1350 B, libcrux on desktop: 2.31 µs, 8.25× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -✓ -SHA-256, 1350 B, libcrux on nixos2: 5.23 µs, 2.13× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -✓ -SHA-256, 1350 B, libcrux on kixtop: 2.52 µs, 6.08× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -✓ -SHA-256, 1350 B, libcrux on ovh-iad: 8.43 µs, 2.18× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -✓ -SHA-256, 1350 B, libcrux on ovh-sea: 8.24 µs, 2.14× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -✓ -SHA-256, 1350 B, OpenSSL on nixos: 815 ns, 1.32× the fastest -SHA-256, 1350 B, OpenSSL on desktop: 415 ns, 1.48× the fastest -SHA-256, 1350 B, OpenSSL on nixos2: 2.68 µs, 1.09× the fastest -SHA-256, 1350 B, OpenSSL on kixtop: 531 ns, 1.28× the fastest -SHA-256, 1350 B, OpenSSL on ovh-iad: 4.34 µs, 1.12× the fastest -SHA-256, 1350 B, OpenSSL on ovh-sea: 4.22 µs, 1.10× the fastest +SHA-256, 1350 B, rind (DIT held) on kixtop: 409 ns, 1.00× the fastest +SHA-256, 1350 B, aws-lc-rs on nixos: 740 ns, 1.20× the fastest +SHA-256, 1350 B, aws-lc-rs on desktop: 306 ns, 1.14× the fastest +SHA-256, 1350 B, aws-lc-rs on nixos2: 2.79 µs, 1.14× the fastest +SHA-256, 1350 B, aws-lc-rs on kixtop: 434 ns, 1.06× the fastest +SHA-256, 1350 B, aws-lc-rs on ovh-iad: 4.74 µs, 1.22× the fastest +SHA-256, 1350 B, aws-lc-rs on ovh-sea: 4.75 µs, 1.23× the fastest +SHA-256, 1350 B, ring on nixos: 637 ns, 1.03× the fastest +SHA-256, 1350 B, ring on desktop: 304 ns, 1.13× the fastest +SHA-256, 1350 B, ring on nixos2: 2.82 µs, 1.15× the fastest +SHA-256, 1350 B, ring on kixtop: 410 ns, 1.00× the fastest +SHA-256, 1350 B, ring on ovh-iad: 4.47 µs, 1.15× the fastest +SHA-256, 1350 B, ring on ovh-sea: 4.31 µs, 1.12× the fastest +SHA-256, 1350 B, RustCrypto + dalek on nixos: 618 ns, 1.00× the fastest +SHA-256, 1350 B, RustCrypto + dalek on desktop: 296 ns, 1.10× the fastest +SHA-256, 1350 B, RustCrypto + dalek on nixos2: 5.11 µs, 2.08× the fastest +SHA-256, 1350 B, RustCrypto + dalek on kixtop: 473 ns, 1.16× the fastest +SHA-256, 1350 B, RustCrypto + dalek on ovh-iad: 8.13 µs, 2.10× the fastest +SHA-256, 1350 B, RustCrypto + dalek on ovh-sea: 8.29 µs, 2.15× the fastest +SHA-256, 1350 B, graviola on nixos: 637 ns, 1.03× the fastest +SHA-256, 1350 B, graviola on desktop: 292 ns, 1.09× the fastest +SHA-256, 1350 B, graviola on nixos2: 6.07 µs, 2.47× the fastest +SHA-256, 1350 B, graviola on kixtop: 480 ns, 1.17× the fastest +SHA-256, 1350 B, libcrux on nixos: 3.71 µs, 6.00× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +✓ +SHA-256, 1350 B, libcrux on desktop: 2.29 µs, 8.50× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +✓ +SHA-256, 1350 B, libcrux on nixos2: 5.23 µs, 2.13× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +✓ +SHA-256, 1350 B, libcrux on kixtop: 2.46 µs, 6.00× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +✓ +SHA-256, 1350 B, libcrux on ovh-iad: 8.43 µs, 2.18× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +✓ +SHA-256, 1350 B, libcrux on ovh-sea: 8.24 µs, 2.14× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +✓ +SHA-256, 1350 B, OpenSSL on nixos: 815 ns, 1.32× the fastest +SHA-256, 1350 B, OpenSSL on desktop: 406 ns, 1.51× the fastest +SHA-256, 1350 B, OpenSSL on nixos2: 2.68 µs, 1.09× the fastest +SHA-256, 1350 B, OpenSSL on kixtop: 533 ns, 1.30× the fastest +SHA-256, 1350 B, OpenSSL on ovh-iad: 4.34 µs, 1.12× the fastest +SHA-256, 1350 B, OpenSSL on ovh-sea: 4.22 µs, 1.10× the fastest SHA-256, 16 KB SHA-256, 16 KB, rind on nixos: 6.86 µs, 1.00× the fastest -SHA-256, 16 KB, rind on desktop: 3.24 µs, 1.00× the fastest +SHA-256, 16 KB, rind on desktop: 3.19 µs, 1.00× the fastest SHA-256, 16 KB, rind on nixos2: 28.06 µs, 1.00× the fastest -SHA-256, 16 KB, rind on kixtop: 4.94 µs, 1.01× the fastest +SHA-256, 16 KB, rind on kixtop: 4.93 µs, 1.02× the fastest SHA-256, 16 KB, rind on ovh-iad: 45.11 µs, 1.00× the fastest SHA-256, 16 KB, rind on ovh-sea: 43.51 µs, 1.00× the fastest -SHA-256, 16 KB, aws-lc-rs on nixos: 6.88 µs, 1.00× the fastest -SHA-256, 16 KB, aws-lc-rs on desktop: 3.28 µs, 1.01× the fastest -SHA-256, 16 KB, aws-lc-rs on nixos2: 31.46 µs, 1.12× the fastest -SHA-256, 16 KB, aws-lc-rs on kixtop: 4.87 µs, 1.00× the fastest -SHA-256, 16 KB, aws-lc-rs on ovh-iad: 50.68 µs, 1.12× the fastest -SHA-256, 16 KB, aws-lc-rs on ovh-sea: 49.41 µs, 1.14× the fastest -SHA-256, 16 KB, ring on nixos: 6.97 µs, 1.01× the fastest -SHA-256, 16 KB, ring on desktop: 3.28 µs, 1.01× the fastest -SHA-256, 16 KB, ring on nixos2: 32.37 µs, 1.15× the fastest -SHA-256, 16 KB, ring on kixtop: 4.90 µs, 1.01× the fastest -SHA-256, 16 KB, ring on ovh-iad: 50.70 µs, 1.12× the fastest -SHA-256, 16 KB, ring on ovh-sea: 51.35 µs, 1.18× the fastest -SHA-256, 16 KB, RustCrypto + dalek on nixos: 7.22 µs, 1.05× the fastest -SHA-256, 16 KB, RustCrypto + dalek on desktop: 3.26 µs, 1.01× the fastest -SHA-256, 16 KB, RustCrypto + dalek on nixos2: 58.17 µs, 2.07× the fastest -SHA-256, 16 KB, RustCrypto + dalek on kixtop: 5.69 µs, 1.17× the fastest -SHA-256, 16 KB, RustCrypto + dalek on ovh-iad: 93.30 µs, 2.07× the fastest -SHA-256, 16 KB, RustCrypto + dalek on ovh-sea: 92.84 µs, 2.13× the fastest -SHA-256, 16 KB, graviola on nixos: 7.08 µs, 1.03× the fastest -SHA-256, 16 KB, graviola on desktop: 3.27 µs, 1.01× the fastest -SHA-256, 16 KB, graviola on nixos2: 69.84 µs, 2.49× the fastest -SHA-256, 16 KB, graviola on kixtop: 5.76 µs, 1.18× the fastest -SHA-256, 16 KB, libcrux on nixos: 43.12 µs, 6.28× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -✓ -SHA-256, 16 KB, libcrux on desktop: 26.81 µs, 8.27× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -✓ -SHA-256, 16 KB, libcrux on nixos2: 61.68 µs, 2.20× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -✓ -SHA-256, 16 KB, libcrux on kixtop: 29.13 µs, 5.98× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -✓ -SHA-256, 16 KB, libcrux on ovh-iad: 96.58 µs, 2.14× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -✓ -SHA-256, 16 KB, libcrux on ovh-sea: 97.66 µs, 2.24× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -✓ -SHA-256, 16 KB, OpenSSL on nixos: 7.37 µs, 1.07× the fastest -SHA-256, 16 KB, OpenSSL on desktop: 3.39 µs, 1.05× the fastest -SHA-256, 16 KB, OpenSSL on nixos2: 28.83 µs, 1.03× the fastest -SHA-256, 16 KB, OpenSSL on kixtop: 5.17 µs, 1.06× the fastest -SHA-256, 16 KB, OpenSSL on ovh-iad: 45.56 µs, 1.01× the fastest -SHA-256, 16 KB, OpenSSL on ovh-sea: 43.72 µs, 1.00× the fastest +SHA-256, 16 KB, rind (DIT held) on kixtop: 5.01 µs, 1.04× the fastest +SHA-256, 16 KB, aws-lc-rs on nixos: 6.88 µs, 1.00× the fastest +SHA-256, 16 KB, aws-lc-rs on desktop: 3.23 µs, 1.01× the fastest +SHA-256, 16 KB, aws-lc-rs on nixos2: 31.46 µs, 1.12× the fastest +SHA-256, 16 KB, aws-lc-rs on kixtop: 4.86 µs, 1.00× the fastest +SHA-256, 16 KB, aws-lc-rs on ovh-iad: 50.68 µs, 1.12× the fastest +SHA-256, 16 KB, aws-lc-rs on ovh-sea: 49.41 µs, 1.14× the fastest +SHA-256, 16 KB, ring on nixos: 6.97 µs, 1.01× the fastest +SHA-256, 16 KB, ring on desktop: 3.22 µs, 1.01× the fastest +SHA-256, 16 KB, ring on nixos2: 32.37 µs, 1.15× the fastest +SHA-256, 16 KB, ring on kixtop: 4.84 µs, 1.00× the fastest +SHA-256, 16 KB, ring on ovh-iad: 50.70 µs, 1.12× the fastest +SHA-256, 16 KB, ring on ovh-sea: 51.35 µs, 1.18× the fastest +SHA-256, 16 KB, RustCrypto + dalek on nixos: 7.22 µs, 1.05× the fastest +SHA-256, 16 KB, RustCrypto + dalek on desktop: 3.22 µs, 1.01× the fastest +SHA-256, 16 KB, RustCrypto + dalek on nixos2: 58.17 µs, 2.07× the fastest +SHA-256, 16 KB, RustCrypto + dalek on kixtop: 5.66 µs, 1.17× the fastest +SHA-256, 16 KB, RustCrypto + dalek on ovh-iad: 93.30 µs, 2.07× the fastest +SHA-256, 16 KB, RustCrypto + dalek on ovh-sea: 92.84 µs, 2.13× the fastest +SHA-256, 16 KB, graviola on nixos: 7.08 µs, 1.03× the fastest +SHA-256, 16 KB, graviola on desktop: 3.22 µs, 1.01× the fastest +SHA-256, 16 KB, graviola on nixos2: 69.84 µs, 2.49× the fastest +SHA-256, 16 KB, graviola on kixtop: 5.79 µs, 1.20× the fastest +SHA-256, 16 KB, libcrux on nixos: 43.12 µs, 6.28× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +✓ +SHA-256, 16 KB, libcrux on desktop: 26.90 µs, 8.43× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +✓ +SHA-256, 16 KB, libcrux on nixos2: 61.68 µs, 2.20× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +✓ +SHA-256, 16 KB, libcrux on kixtop: 29.00 µs, 5.99× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +✓ +SHA-256, 16 KB, libcrux on ovh-iad: 96.58 µs, 2.14× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +✓ +SHA-256, 16 KB, libcrux on ovh-sea: 97.66 µs, 2.24× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +✓ +SHA-256, 16 KB, OpenSSL on nixos: 7.37 µs, 1.07× the fastest +SHA-256, 16 KB, OpenSSL on desktop: 3.36 µs, 1.05× the fastest +SHA-256, 16 KB, OpenSSL on nixos2: 28.83 µs, 1.03× the fastest +SHA-256, 16 KB, OpenSSL on kixtop: 4.98 µs, 1.03× the fastest +SHA-256, 16 KB, OpenSSL on ovh-iad: 45.56 µs, 1.01× the fastest +SHA-256, 16 KB, OpenSSL on ovh-sea: 43.72 µs, 1.00× the fastest SHA-512, 64 B SHA-512, 64 B, rind on nixos: 138 ns, 1.00× the fastest SHA-512, 64 B, rind on desktop: 60 ns, 1.00× the fastest SHA-512, 64 B, rind on nixos2: 198 ns, 1.00× the fastest -SHA-512, 64 B, rind on kixtop: 113 ns, 1.44× the fastest +SHA-512, 64 B, rind on kixtop: 108 ns, 1.41× the fastest SHA-512, 64 B, rind on ovh-iad: 321 ns, 1.00× the fastest SHA-512, 64 B, rind on ovh-sea: 304 ns, 1.00× the fastest -SHA-512, 64 B, aws-lc-rs on nixos: 224 ns, 1.62× the fastest -SHA-512, 64 B, aws-lc-rs on desktop: 136 ns, 2.27× the fastest; verified: aws-lc-verification's SAW proof of SHA-512 through EVP_Digest, padding included, over sha512_block_data_order_avx, which aws-lc runs only on Intel; of aws-lc c21d40da, whose SHA-512 code 5.12.0 keeps -✓ -SHA-512, 64 B, aws-lc-rs on nixos2: 228 ns, 1.15× the fastest; verified: aws-lc-verification's SAW proof of SHA-512 through EVP_Digest, padding included, over sha512_block_data_order_avx, which aws-lc runs only on Intel; of aws-lc c21d40da, whose SHA-512 code 5.12.0 keeps -✓ -SHA-512, 64 B, aws-lc-rs on kixtop: 108 ns, 1.37× the fastest -SHA-512, 64 B, aws-lc-rs on ovh-iad: 389 ns, 1.21× the fastest; verified: aws-lc-verification's SAW proof of SHA-512 through EVP_Digest, padding included, over sha512_block_data_order_avx, which aws-lc runs only on Intel; of aws-lc c21d40da, whose SHA-512 code 5.12.0 keeps -✓ -SHA-512, 64 B, aws-lc-rs on ovh-sea: 362 ns, 1.19× the fastest; verified: aws-lc-verification's SAW proof of SHA-512 through EVP_Digest, padding included, over sha512_block_data_order_avx, which aws-lc runs only on Intel; of aws-lc c21d40da, whose SHA-512 code 5.12.0 keeps -✓ -SHA-512, 64 B, ring on nixos: 198 ns, 1.43× the fastest -SHA-512, 64 B, ring on desktop: 142 ns, 2.36× the fastest -SHA-512, 64 B, ring on nixos2: 203 ns, 1.02× the fastest -SHA-512, 64 B, ring on kixtop: 88 ns, 1.11× the fastest -SHA-512, 64 B, ring on ovh-iad: 321 ns, 1.00× the fastest -SHA-512, 64 B, ring on ovh-sea: 331 ns, 1.09× the fastest -SHA-512, 64 B, RustCrypto + dalek on nixos: 192 ns, 1.39× the fastest -SHA-512, 64 B, RustCrypto + dalek on desktop: 120 ns, 1.99× the fastest -SHA-512, 64 B, RustCrypto + dalek on nixos2: 270 ns, 1.36× the fastest -SHA-512, 64 B, RustCrypto + dalek on kixtop: 79 ns, 1.00× the fastest -SHA-512, 64 B, RustCrypto + dalek on ovh-iad: 435 ns, 1.35× the fastest -SHA-512, 64 B, RustCrypto + dalek on ovh-sea: 424 ns, 1.40× the fastest -SHA-512, 64 B, graviola on nixos: 206 ns, 1.49× the fastest -SHA-512, 64 B, graviola on desktop: 150 ns, 2.49× the fastest -SHA-512, 64 B, graviola on nixos2: 236 ns, 1.19× the fastest -SHA-512, 64 B, graviola on kixtop: 177 ns, 2.25× the fastest -SHA-512, 64 B, libcrux on nixos: 246 ns, 1.78× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -✓ -SHA-512, 64 B, libcrux on desktop: 167 ns, 2.78× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -✓ -SHA-512, 64 B, libcrux on nixos2: 289 ns, 1.45× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -✓ -SHA-512, 64 B, libcrux on kixtop: 141 ns, 1.79× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -✓ -SHA-512, 64 B, libcrux on ovh-iad: 462 ns, 1.44× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -✓ -SHA-512, 64 B, libcrux on ovh-sea: 443 ns, 1.46× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -✓ -SHA-512, 64 B, OpenSSL on nixos: 355 ns, 2.57× the fastest -SHA-512, 64 B, OpenSSL on desktop: 233 ns, 3.87× the fastest -SHA-512, 64 B, OpenSSL on nixos2: 430 ns, 2.17× the fastest -SHA-512, 64 B, OpenSSL on kixtop: 211 ns, 2.68× the fastest -SHA-512, 64 B, OpenSSL on ovh-iad: 699 ns, 2.18× the fastest -SHA-512, 64 B, OpenSSL on ovh-sea: 682 ns, 2.25× the fastest +SHA-512, 64 B, rind (DIT held) on kixtop: 75 ns, 0.98× the fastest +SHA-512, 64 B, aws-lc-rs on nixos: 224 ns, 1.62× the fastest +SHA-512, 64 B, aws-lc-rs on desktop: 134 ns, 2.23× the fastest; verified: aws-lc-verification's SAW proof of SHA-512 through EVP_Digest, padding included, over sha512_block_data_order_avx, which aws-lc runs only on Intel; of aws-lc c21d40da, whose SHA-512 code 5.12.0 keeps +✓ +SHA-512, 64 B, aws-lc-rs on nixos2: 228 ns, 1.15× the fastest; verified: aws-lc-verification's SAW proof of SHA-512 through EVP_Digest, padding included, over sha512_block_data_order_avx, which aws-lc runs only on Intel; of aws-lc c21d40da, whose SHA-512 code 5.12.0 keeps +✓ +SHA-512, 64 B, aws-lc-rs on kixtop: 105 ns, 1.36× the fastest +SHA-512, 64 B, aws-lc-rs on ovh-iad: 389 ns, 1.21× the fastest; verified: aws-lc-verification's SAW proof of SHA-512 through EVP_Digest, padding included, over sha512_block_data_order_avx, which aws-lc runs only on Intel; of aws-lc c21d40da, whose SHA-512 code 5.12.0 keeps +✓ +SHA-512, 64 B, aws-lc-rs on ovh-sea: 362 ns, 1.19× the fastest; verified: aws-lc-verification's SAW proof of SHA-512 through EVP_Digest, padding included, over sha512_block_data_order_avx, which aws-lc runs only on Intel; of aws-lc c21d40da, whose SHA-512 code 5.12.0 keeps +✓ +SHA-512, 64 B, ring on nixos: 198 ns, 1.43× the fastest +SHA-512, 64 B, ring on desktop: 140 ns, 2.33× the fastest +SHA-512, 64 B, ring on nixos2: 203 ns, 1.02× the fastest +SHA-512, 64 B, ring on kixtop: 84 ns, 1.10× the fastest +SHA-512, 64 B, ring on ovh-iad: 321 ns, 1.00× the fastest +SHA-512, 64 B, ring on ovh-sea: 331 ns, 1.09× the fastest +SHA-512, 64 B, RustCrypto + dalek on nixos: 192 ns, 1.39× the fastest +SHA-512, 64 B, RustCrypto + dalek on desktop: 120 ns, 2.00× the fastest +SHA-512, 64 B, RustCrypto + dalek on nixos2: 270 ns, 1.36× the fastest +SHA-512, 64 B, RustCrypto + dalek on kixtop: 77 ns, 1.00× the fastest +SHA-512, 64 B, RustCrypto + dalek on ovh-iad: 435 ns, 1.35× the fastest +SHA-512, 64 B, RustCrypto + dalek on ovh-sea: 424 ns, 1.40× the fastest +SHA-512, 64 B, graviola on nixos: 206 ns, 1.49× the fastest +SHA-512, 64 B, graviola on desktop: 148 ns, 2.47× the fastest +SHA-512, 64 B, graviola on nixos2: 236 ns, 1.19× the fastest +SHA-512, 64 B, graviola on kixtop: 175 ns, 2.27× the fastest +SHA-512, 64 B, libcrux on nixos: 246 ns, 1.78× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +✓ +SHA-512, 64 B, libcrux on desktop: 166 ns, 2.77× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +✓ +SHA-512, 64 B, libcrux on nixos2: 289 ns, 1.45× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +✓ +SHA-512, 64 B, libcrux on kixtop: 142 ns, 1.84× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +✓ +SHA-512, 64 B, libcrux on ovh-iad: 462 ns, 1.44× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +✓ +SHA-512, 64 B, libcrux on ovh-sea: 443 ns, 1.46× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +✓ +SHA-512, 64 B, OpenSSL on nixos: 355 ns, 2.57× the fastest +SHA-512, 64 B, OpenSSL on desktop: 226 ns, 3.76× the fastest +SHA-512, 64 B, OpenSSL on nixos2: 430 ns, 2.17× the fastest +SHA-512, 64 B, OpenSSL on kixtop: 205 ns, 2.67× the fastest +SHA-512, 64 B, OpenSSL on ovh-iad: 699 ns, 2.18× the fastest +SHA-512, 64 B, OpenSSL on ovh-sea: 682 ns, 2.25× the fastest SHA-512, 1350 B SHA-512, 1350 B, rind on nixos: 1.77 µs, 1.01× the fastest -SHA-512, 1350 B, rind on desktop: 470 ns, 1.00× the fastest +SHA-512, 1350 B, rind on desktop: 249 ns, 1.00× the fastest SHA-512, 1350 B, rind on nixos2: 1.65 µs, 1.00× the fastest -SHA-512, 1350 B, rind on kixtop: 827 ns, 1.15× the fastest +SHA-512, 1350 B, rind on kixtop: 810 ns, 1.12× the fastest SHA-512, 1350 B, rind on ovh-iad: 2.60 µs, 1.00× the fastest SHA-512, 1350 B, rind on ovh-sea: 2.54 µs, 1.00× the fastest -SHA-512, 1350 B, aws-lc-rs on nixos: 1.90 µs, 1.08× the fastest -SHA-512, 1350 B, aws-lc-rs on desktop: 1.27 µs, 2.69× the fastest; verified: aws-lc-verification's SAW proof of SHA-512 through EVP_Digest, padding included, over sha512_block_data_order_avx, which aws-lc runs only on Intel; of aws-lc c21d40da, whose SHA-512 code 5.12.0 keeps -✓ -SHA-512, 1350 B, aws-lc-rs on nixos2: 1.97 µs, 1.19× the fastest; verified: aws-lc-verification's SAW proof of SHA-512 through EVP_Digest, padding included, over sha512_block_data_order_avx, which aws-lc runs only on Intel; of aws-lc c21d40da, whose SHA-512 code 5.12.0 keeps -✓ -SHA-512, 1350 B, aws-lc-rs on kixtop: 775 ns, 1.07× the fastest -SHA-512, 1350 B, aws-lc-rs on ovh-iad: 3.12 µs, 1.20× the fastest; verified: aws-lc-verification's SAW proof of SHA-512 through EVP_Digest, padding included, over sha512_block_data_order_avx, which aws-lc runs only on Intel; of aws-lc c21d40da, whose SHA-512 code 5.12.0 keeps -✓ -SHA-512, 1350 B, aws-lc-rs on ovh-sea: 3.04 µs, 1.19× the fastest; verified: aws-lc-verification's SAW proof of SHA-512 through EVP_Digest, padding included, over sha512_block_data_order_avx, which aws-lc runs only on Intel; of aws-lc c21d40da, whose SHA-512 code 5.12.0 keeps -✓ -SHA-512, 1350 B, ring on nixos: 1.87 µs, 1.06× the fastest -SHA-512, 1350 B, ring on desktop: 1.26 µs, 2.69× the fastest -SHA-512, 1350 B, ring on nixos2: 1.93 µs, 1.17× the fastest -SHA-512, 1350 B, ring on kixtop: 737 ns, 1.02× the fastest -SHA-512, 1350 B, ring on ovh-iad: 3.02 µs, 1.16× the fastest -SHA-512, 1350 B, ring on ovh-sea: 2.97 µs, 1.17× the fastest -SHA-512, 1350 B, RustCrypto + dalek on nixos: 1.92 µs, 1.09× the fastest -SHA-512, 1350 B, RustCrypto + dalek on desktop: 1.18 µs, 2.50× the fastest -SHA-512, 1350 B, RustCrypto + dalek on nixos2: 2.67 µs, 1.61× the fastest -SHA-512, 1350 B, RustCrypto + dalek on kixtop: 722 ns, 1.00× the fastest -SHA-512, 1350 B, RustCrypto + dalek on ovh-iad: 4.26 µs, 1.64× the fastest -SHA-512, 1350 B, RustCrypto + dalek on ovh-sea: 4.17 µs, 1.64× the fastest -SHA-512, 1350 B, graviola on nixos: 1.98 µs, 1.13× the fastest -SHA-512, 1350 B, graviola on desktop: 1.51 µs, 3.21× the fastest -SHA-512, 1350 B, graviola on nixos2: 2.35 µs, 1.42× the fastest -SHA-512, 1350 B, graviola on kixtop: 1.88 µs, 2.60× the fastest -SHA-512, 1350 B, libcrux on nixos: 2.94 µs, 1.67× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -✓ -SHA-512, 1350 B, libcrux on desktop: 1.69 µs, 3.59× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -✓ -SHA-512, 1350 B, libcrux on nixos2: 3.08 µs, 1.86× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -✓ -SHA-512, 1350 B, libcrux on kixtop: 1.58 µs, 2.18× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -✓ -SHA-512, 1350 B, libcrux on ovh-iad: 4.91 µs, 1.88× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -✓ -SHA-512, 1350 B, libcrux on ovh-sea: 4.66 µs, 1.83× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -✓ -SHA-512, 1350 B, OpenSSL on nixos: 1.76 µs, 1.00× the fastest -SHA-512, 1350 B, OpenSSL on desktop: 1.20 µs, 2.55× the fastest -SHA-512, 1350 B, OpenSSL on nixos2: 1.90 µs, 1.15× the fastest -SHA-512, 1350 B, OpenSSL on kixtop: 878 ns, 1.22× the fastest -SHA-512, 1350 B, OpenSSL on ovh-iad: 3.10 µs, 1.19× the fastest -SHA-512, 1350 B, OpenSSL on ovh-sea: 2.99 µs, 1.18× the fastest +SHA-512, 1350 B, rind (DIT held) on kixtop: 730 ns, 1.01× the fastest +SHA-512, 1350 B, aws-lc-rs on nixos: 1.90 µs, 1.08× the fastest +SHA-512, 1350 B, aws-lc-rs on desktop: 1.24 µs, 4.99× the fastest; verified: aws-lc-verification's SAW proof of SHA-512 through EVP_Digest, padding included, over sha512_block_data_order_avx, which aws-lc runs only on Intel; of aws-lc c21d40da, whose SHA-512 code 5.12.0 keeps +✓ +SHA-512, 1350 B, aws-lc-rs on nixos2: 1.97 µs, 1.19× the fastest; verified: aws-lc-verification's SAW proof of SHA-512 through EVP_Digest, padding included, over sha512_block_data_order_avx, which aws-lc runs only on Intel; of aws-lc c21d40da, whose SHA-512 code 5.12.0 keeps +✓ +SHA-512, 1350 B, aws-lc-rs on kixtop: 768 ns, 1.06× the fastest +SHA-512, 1350 B, aws-lc-rs on ovh-iad: 3.12 µs, 1.20× the fastest; verified: aws-lc-verification's SAW proof of SHA-512 through EVP_Digest, padding included, over sha512_block_data_order_avx, which aws-lc runs only on Intel; of aws-lc c21d40da, whose SHA-512 code 5.12.0 keeps +✓ +SHA-512, 1350 B, aws-lc-rs on ovh-sea: 3.04 µs, 1.19× the fastest; verified: aws-lc-verification's SAW proof of SHA-512 through EVP_Digest, padding included, over sha512_block_data_order_avx, which aws-lc runs only on Intel; of aws-lc c21d40da, whose SHA-512 code 5.12.0 keeps +✓ +SHA-512, 1350 B, ring on nixos: 1.87 µs, 1.06× the fastest +SHA-512, 1350 B, ring on desktop: 1.26 µs, 5.05× the fastest +SHA-512, 1350 B, ring on nixos2: 1.93 µs, 1.17× the fastest +SHA-512, 1350 B, ring on kixtop: 743 ns, 1.03× the fastest +SHA-512, 1350 B, ring on ovh-iad: 3.02 µs, 1.16× the fastest +SHA-512, 1350 B, ring on ovh-sea: 2.97 µs, 1.17× the fastest +SHA-512, 1350 B, RustCrypto + dalek on nixos: 1.92 µs, 1.09× the fastest +SHA-512, 1350 B, RustCrypto + dalek on desktop: 1.17 µs, 4.68× the fastest +SHA-512, 1350 B, RustCrypto + dalek on nixos2: 2.67 µs, 1.61× the fastest +SHA-512, 1350 B, RustCrypto + dalek on kixtop: 723 ns, 1.00× the fastest +SHA-512, 1350 B, RustCrypto + dalek on ovh-iad: 4.26 µs, 1.64× the fastest +SHA-512, 1350 B, RustCrypto + dalek on ovh-sea: 4.17 µs, 1.64× the fastest +SHA-512, 1350 B, graviola on nixos: 1.98 µs, 1.13× the fastest +SHA-512, 1350 B, graviola on desktop: 1.49 µs, 5.96× the fastest +SHA-512, 1350 B, graviola on nixos2: 2.35 µs, 1.42× the fastest +SHA-512, 1350 B, graviola on kixtop: 1.87 µs, 2.58× the fastest +SHA-512, 1350 B, libcrux on nixos: 2.94 µs, 1.67× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +✓ +SHA-512, 1350 B, libcrux on desktop: 1.72 µs, 6.89× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +✓ +SHA-512, 1350 B, libcrux on nixos2: 3.08 µs, 1.86× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +✓ +SHA-512, 1350 B, libcrux on kixtop: 1.56 µs, 2.16× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +✓ +SHA-512, 1350 B, libcrux on ovh-iad: 4.91 µs, 1.88× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +✓ +SHA-512, 1350 B, libcrux on ovh-sea: 4.66 µs, 1.83× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +✓ +SHA-512, 1350 B, OpenSSL on nixos: 1.76 µs, 1.00× the fastest +SHA-512, 1350 B, OpenSSL on desktop: 1.17 µs, 4.70× the fastest +SHA-512, 1350 B, OpenSSL on nixos2: 1.90 µs, 1.15× the fastest +SHA-512, 1350 B, OpenSSL on kixtop: 893 ns, 1.23× the fastest +SHA-512, 1350 B, OpenSSL on ovh-iad: 3.10 µs, 1.19× the fastest +SHA-512, 1350 B, OpenSSL on ovh-sea: 2.99 µs, 1.18× the fastest SHA-512, 16 KB SHA-512, 16 KB, rind on nixos: 16.28 µs, 1.07× the fastest -SHA-512, 16 KB, rind on desktop: 2.68 µs, 1.00× the fastest +SHA-512, 16 KB, rind on desktop: 2.63 µs, 1.00× the fastest SHA-512, 16 KB, rind on nixos2: 18.53 µs, 1.00× the fastest -SHA-512, 16 KB, rind on kixtop: 8.77 µs, 1.03× the fastest +SHA-512, 16 KB, rind on kixtop: 8.85 µs, 1.03× the fastest SHA-512, 16 KB, rind on ovh-iad: 33.08 µs, 1.03× the fastest SHA-512, 16 KB, rind on ovh-sea: 29.12 µs, 1.00× the fastest -SHA-512, 16 KB, aws-lc-rs on nixos: 25.17 µs, 1.66× the fastest -SHA-512, 16 KB, aws-lc-rs on desktop: 14.32 µs, 5.34× the fastest; verified: aws-lc-verification's SAW proof of SHA-512 through EVP_Digest, padding included, over sha512_block_data_order_avx, which aws-lc runs only on Intel; of aws-lc c21d40da, whose SHA-512 code 5.12.0 keeps -✓ -SHA-512, 16 KB, aws-lc-rs on nixos2: 21.92 µs, 1.18× the fastest; verified: aws-lc-verification's SAW proof of SHA-512 through EVP_Digest, padding included, over sha512_block_data_order_avx, which aws-lc runs only on Intel; of aws-lc c21d40da, whose SHA-512 code 5.12.0 keeps -✓ -SHA-512, 16 KB, aws-lc-rs on kixtop: 8.70 µs, 1.02× the fastest -SHA-512, 16 KB, aws-lc-rs on ovh-iad: 35.17 µs, 1.09× the fastest; verified: aws-lc-verification's SAW proof of SHA-512 through EVP_Digest, padding included, over sha512_block_data_order_avx, which aws-lc runs only on Intel; of aws-lc c21d40da, whose SHA-512 code 5.12.0 keeps -✓ -SHA-512, 16 KB, aws-lc-rs on ovh-sea: 34.42 µs, 1.18× the fastest; verified: aws-lc-verification's SAW proof of SHA-512 through EVP_Digest, padding included, over sha512_block_data_order_avx, which aws-lc runs only on Intel; of aws-lc c21d40da, whose SHA-512 code 5.12.0 keeps -✓ -SHA-512, 16 KB, ring on nixos: 25.38 µs, 1.68× the fastest -SHA-512, 16 KB, ring on desktop: 14.36 µs, 5.35× the fastest -SHA-512, 16 KB, ring on nixos2: 21.75 µs, 1.17× the fastest -SHA-512, 16 KB, ring on kixtop: 8.69 µs, 1.02× the fastest -SHA-512, 16 KB, ring on ovh-iad: 35.28 µs, 1.09× the fastest -SHA-512, 16 KB, ring on ovh-sea: 33.89 µs, 1.16× the fastest -SHA-512, 16 KB, RustCrypto + dalek on nixos: 24.12 µs, 1.59× the fastest -SHA-512, 16 KB, RustCrypto + dalek on desktop: 13.55 µs, 5.05× the fastest -SHA-512, 16 KB, RustCrypto + dalek on nixos2: 30.73 µs, 1.66× the fastest -SHA-512, 16 KB, RustCrypto + dalek on kixtop: 8.50 µs, 1.00× the fastest -SHA-512, 16 KB, RustCrypto + dalek on ovh-iad: 53.82 µs, 1.67× the fastest -SHA-512, 16 KB, RustCrypto + dalek on ovh-sea: 47.69 µs, 1.64× the fastest -SHA-512, 16 KB, graviola on nixos: 21.04 µs, 1.39× the fastest -SHA-512, 16 KB, graviola on desktop: 17.96 µs, 6.70× the fastest -SHA-512, 16 KB, graviola on nixos2: 27.16 µs, 1.47× the fastest -SHA-512, 16 KB, graviola on kixtop: 22.11 µs, 2.60× the fastest -SHA-512, 16 KB, libcrux on nixos: 29.75 µs, 1.96× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -✓ -SHA-512, 16 KB, libcrux on desktop: 20.01 µs, 7.46× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -✓ -SHA-512, 16 KB, libcrux on nixos2: 35.45 µs, 1.91× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -✓ -SHA-512, 16 KB, libcrux on kixtop: 18.41 µs, 2.17× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -✓ -SHA-512, 16 KB, libcrux on ovh-iad: 59.59 µs, 1.85× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -✓ -SHA-512, 16 KB, libcrux on ovh-sea: 54.80 µs, 1.88× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step -✓ -SHA-512, 16 KB, OpenSSL on nixos: 15.14 µs, 1.00× the fastest -SHA-512, 16 KB, OpenSSL on desktop: 12.51 µs, 4.66× the fastest -SHA-512, 16 KB, OpenSSL on nixos2: 18.99 µs, 1.02× the fastest -SHA-512, 16 KB, OpenSSL on kixtop: 8.88 µs, 1.04× the fastest -SHA-512, 16 KB, OpenSSL on ovh-iad: 32.22 µs, 1.00× the fastest -SHA-512, 16 KB, OpenSSL on ovh-sea: 29.59 µs, 1.02× the fastest +SHA-512, 16 KB, rind (DIT held) on kixtop: 8.72 µs, 1.02× the fastest +SHA-512, 16 KB, aws-lc-rs on nixos: 25.17 µs, 1.66× the fastest +SHA-512, 16 KB, aws-lc-rs on desktop: 14.12 µs, 5.38× the fastest; verified: aws-lc-verification's SAW proof of SHA-512 through EVP_Digest, padding included, over sha512_block_data_order_avx, which aws-lc runs only on Intel; of aws-lc c21d40da, whose SHA-512 code 5.12.0 keeps +✓ +SHA-512, 16 KB, aws-lc-rs on nixos2: 21.92 µs, 1.18× the fastest; verified: aws-lc-verification's SAW proof of SHA-512 through EVP_Digest, padding included, over sha512_block_data_order_avx, which aws-lc runs only on Intel; of aws-lc c21d40da, whose SHA-512 code 5.12.0 keeps +✓ +SHA-512, 16 KB, aws-lc-rs on kixtop: 8.91 µs, 1.04× the fastest +SHA-512, 16 KB, aws-lc-rs on ovh-iad: 35.17 µs, 1.09× the fastest; verified: aws-lc-verification's SAW proof of SHA-512 through EVP_Digest, padding included, over sha512_block_data_order_avx, which aws-lc runs only on Intel; of aws-lc c21d40da, whose SHA-512 code 5.12.0 keeps +✓ +SHA-512, 16 KB, aws-lc-rs on ovh-sea: 34.42 µs, 1.18× the fastest; verified: aws-lc-verification's SAW proof of SHA-512 through EVP_Digest, padding included, over sha512_block_data_order_avx, which aws-lc runs only on Intel; of aws-lc c21d40da, whose SHA-512 code 5.12.0 keeps +✓ +SHA-512, 16 KB, ring on nixos: 25.38 µs, 1.68× the fastest +SHA-512, 16 KB, ring on desktop: 14.10 µs, 5.37× the fastest +SHA-512, 16 KB, ring on nixos2: 21.75 µs, 1.17× the fastest +SHA-512, 16 KB, ring on kixtop: 8.70 µs, 1.01× the fastest +SHA-512, 16 KB, ring on ovh-iad: 35.28 µs, 1.09× the fastest +SHA-512, 16 KB, ring on ovh-sea: 33.89 µs, 1.16× the fastest +SHA-512, 16 KB, RustCrypto + dalek on nixos: 24.12 µs, 1.59× the fastest +SHA-512, 16 KB, RustCrypto + dalek on desktop: 13.51 µs, 5.15× the fastest +SHA-512, 16 KB, RustCrypto + dalek on nixos2: 30.73 µs, 1.66× the fastest +SHA-512, 16 KB, RustCrypto + dalek on kixtop: 8.59 µs, 1.00× the fastest +SHA-512, 16 KB, RustCrypto + dalek on ovh-iad: 53.82 µs, 1.67× the fastest +SHA-512, 16 KB, RustCrypto + dalek on ovh-sea: 47.69 µs, 1.64× the fastest +SHA-512, 16 KB, graviola on nixos: 21.04 µs, 1.39× the fastest +SHA-512, 16 KB, graviola on desktop: 17.50 µs, 6.66× the fastest +SHA-512, 16 KB, graviola on nixos2: 27.16 µs, 1.47× the fastest +SHA-512, 16 KB, graviola on kixtop: 21.69 µs, 2.52× the fastest +SHA-512, 16 KB, libcrux on nixos: 29.75 µs, 1.96× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +✓ +SHA-512, 16 KB, libcrux on desktop: 20.10 µs, 7.66× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +✓ +SHA-512, 16 KB, libcrux on nixos2: 35.45 µs, 1.91× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +✓ +SHA-512, 16 KB, libcrux on kixtop: 18.39 µs, 2.14× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +✓ +SHA-512, 16 KB, libcrux on ovh-iad: 59.59 µs, 1.85× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +✓ +SHA-512, 16 KB, libcrux on ovh-sea: 54.80 µs, 1.88× the fastest; verified: HACL*'s F* proof of Hacl.Streaming.SHA2's hash_256 and hash_512, compiled to Rust by an unverified step +✓ +SHA-512, 16 KB, OpenSSL on nixos: 15.14 µs, 1.00× the fastest +SHA-512, 16 KB, OpenSSL on desktop: 12.29 µs, 4.68× the fastest +SHA-512, 16 KB, OpenSSL on nixos2: 18.99 µs, 1.02× the fastest +SHA-512, 16 KB, OpenSSL on kixtop: 9.33 µs, 1.09× the fastest +SHA-512, 16 KB, OpenSSL on ovh-iad: 32.22 µs, 1.00× the fastest +SHA-512, 16 KB, OpenSSL on ovh-sea: 29.59 µs, 1.02× the fastest HMAC-SHA256, 64 B HMAC-SHA256, 64 B, rind on nixos: 147 ns, 1.00× the fastest HMAC-SHA256, 64 B, rind on desktop: 75 ns, 1.00× the fastest HMAC-SHA256, 64 B, rind on nixos2: 628 ns, 1.00× the fastest -HMAC-SHA256, 64 B, rind on kixtop: 191 ns, 1.88× the fastest +HMAC-SHA256, 64 B, rind on kixtop: 189 ns, 1.90× the fastest HMAC-SHA256, 64 B, rind on ovh-iad: 1.16 µs, 1.00× the fastest HMAC-SHA256, 64 B, rind on ovh-sea: 963 ns, 1.00× the fastest -HMAC-SHA256, 64 B, aws-lc-rs on nixos: 264 ns, 1.80× the fastest -HMAC-SHA256, 64 B, aws-lc-rs on desktop: 180 ns, 2.38× the fastest -HMAC-SHA256, 64 B, aws-lc-rs on nixos2: 811 ns, 1.29× the fastest -HMAC-SHA256, 64 B, aws-lc-rs on kixtop: 248 ns, 2.43× the fastest -HMAC-SHA256, 64 B, aws-lc-rs on ovh-iad: 1.60 µs, 1.38× the fastest -HMAC-SHA256, 64 B, aws-lc-rs on ovh-sea: 1.24 µs, 1.29× the fastest -HMAC-SHA256, 64 B, ring on nixos: 214 ns, 1.45× the fastest -HMAC-SHA256, 64 B, ring on desktop: 145 ns, 1.93× the fastest -HMAC-SHA256, 64 B, ring on nixos2: 707 ns, 1.13× the fastest -HMAC-SHA256, 64 B, ring on kixtop: 137 ns, 1.34× the fastest -HMAC-SHA256, 64 B, ring on ovh-iad: 1.64 µs, 1.42× the fastest -HMAC-SHA256, 64 B, ring on ovh-sea: 1.09 µs, 1.13× the fastest -HMAC-SHA256, 64 B, RustCrypto + dalek on nixos: 155 ns, 1.06× the fastest -HMAC-SHA256, 64 B, RustCrypto + dalek on desktop: 104 ns, 1.39× the fastest -HMAC-SHA256, 64 B, RustCrypto + dalek on nixos2: 1.19 µs, 1.89× the fastest -HMAC-SHA256, 64 B, RustCrypto + dalek on kixtop: 102 ns, 1.00× the fastest -HMAC-SHA256, 64 B, RustCrypto + dalek on ovh-iad: 2.13 µs, 1.84× the fastest -HMAC-SHA256, 64 B, RustCrypto + dalek on ovh-sea: 1.82 µs, 1.89× the fastest -HMAC-SHA256, 64 B, graviola on nixos: 172 ns, 1.17× the fastest -HMAC-SHA256, 64 B, graviola on desktop: 115 ns, 1.52× the fastest -HMAC-SHA256, 64 B, graviola on nixos2: 1.44 µs, 2.30× the fastest -HMAC-SHA256, 64 B, graviola on kixtop: 115 ns, 1.12× the fastest -HMAC-SHA256, 64 B, libcrux on nixos: 851 ns, 5.79× the fastest; verified: HACL*'s F* proof of Hacl.HMAC's compute_sha2_256, compiled to Rust by an unverified step -✓ -HMAC-SHA256, 64 B, libcrux on desktop: 536 ns, 7.12× the fastest; verified: HACL*'s F* proof of Hacl.HMAC's compute_sha2_256, compiled to Rust by an unverified step -✓ -HMAC-SHA256, 64 B, libcrux on nixos2: 1.20 µs, 1.92× the fastest; verified: HACL*'s F* proof of Hacl.HMAC's compute_sha2_256, compiled to Rust by an unverified step -✓ -HMAC-SHA256, 64 B, libcrux on kixtop: 568 ns, 5.57× the fastest; verified: HACL*'s F* proof of Hacl.HMAC's compute_sha2_256, compiled to Rust by an unverified step -✓ -HMAC-SHA256, 64 B, libcrux on ovh-iad: 2.36 µs, 2.03× the fastest; verified: HACL*'s F* proof of Hacl.HMAC's compute_sha2_256, compiled to Rust by an unverified step -✓ -HMAC-SHA256, 64 B, libcrux on ovh-sea: 1.83 µs, 1.90× the fastest; verified: HACL*'s F* proof of Hacl.HMAC's compute_sha2_256, compiled to Rust by an unverified step -✓ -HMAC-SHA256, 64 B, OpenSSL on nixos: 2.57 µs, 17.50× the fastest -HMAC-SHA256, 64 B, OpenSSL on desktop: 1.56 µs, 20.76× the fastest -HMAC-SHA256, 64 B, OpenSSL on nixos2: 3.69 µs, 5.88× the fastest -HMAC-SHA256, 64 B, OpenSSL on kixtop: 2.06 µs, 20.24× the fastest -HMAC-SHA256, 64 B, OpenSSL on ovh-iad: 6.68 µs, 5.76× the fastest -HMAC-SHA256, 64 B, OpenSSL on ovh-sea: 5.66 µs, 5.88× the fastest +HMAC-SHA256, 64 B, rind (DIT held) on kixtop: 110 ns, 1.10× the fastest +HMAC-SHA256, 64 B, aws-lc-rs on nixos: 264 ns, 1.80× the fastest +HMAC-SHA256, 64 B, aws-lc-rs on desktop: 180 ns, 2.40× the fastest +HMAC-SHA256, 64 B, aws-lc-rs on nixos2: 811 ns, 1.29× the fastest +HMAC-SHA256, 64 B, aws-lc-rs on kixtop: 245 ns, 2.47× the fastest +HMAC-SHA256, 64 B, aws-lc-rs on ovh-iad: 1.60 µs, 1.38× the fastest +HMAC-SHA256, 64 B, aws-lc-rs on ovh-sea: 1.24 µs, 1.29× the fastest +HMAC-SHA256, 64 B, ring on nixos: 214 ns, 1.45× the fastest +HMAC-SHA256, 64 B, ring on desktop: 145 ns, 1.93× the fastest +HMAC-SHA256, 64 B, ring on nixos2: 707 ns, 1.13× the fastest +HMAC-SHA256, 64 B, ring on kixtop: 134 ns, 1.35× the fastest +HMAC-SHA256, 64 B, ring on ovh-iad: 1.64 µs, 1.42× the fastest +HMAC-SHA256, 64 B, ring on ovh-sea: 1.09 µs, 1.13× the fastest +HMAC-SHA256, 64 B, RustCrypto + dalek on nixos: 155 ns, 1.06× the fastest +HMAC-SHA256, 64 B, RustCrypto + dalek on desktop: 103 ns, 1.37× the fastest +HMAC-SHA256, 64 B, RustCrypto + dalek on nixos2: 1.19 µs, 1.89× the fastest +HMAC-SHA256, 64 B, RustCrypto + dalek on kixtop: 99 ns, 1.00× the fastest +HMAC-SHA256, 64 B, RustCrypto + dalek on ovh-iad: 2.13 µs, 1.84× the fastest +HMAC-SHA256, 64 B, RustCrypto + dalek on ovh-sea: 1.82 µs, 1.89× the fastest +HMAC-SHA256, 64 B, graviola on nixos: 172 ns, 1.17× the fastest +HMAC-SHA256, 64 B, graviola on desktop: 110 ns, 1.47× the fastest +HMAC-SHA256, 64 B, graviola on nixos2: 1.44 µs, 2.30× the fastest +HMAC-SHA256, 64 B, graviola on kixtop: 112 ns, 1.12× the fastest +HMAC-SHA256, 64 B, libcrux on nixos: 851 ns, 5.79× the fastest; verified: HACL*'s F* proof of Hacl.HMAC's compute_sha2_256, compiled to Rust by an unverified step +✓ +HMAC-SHA256, 64 B, libcrux on desktop: 537 ns, 7.15× the fastest; verified: HACL*'s F* proof of Hacl.HMAC's compute_sha2_256, compiled to Rust by an unverified step +✓ +HMAC-SHA256, 64 B, libcrux on nixos2: 1.20 µs, 1.92× the fastest; verified: HACL*'s F* proof of Hacl.HMAC's compute_sha2_256, compiled to Rust by an unverified step +✓ +HMAC-SHA256, 64 B, libcrux on kixtop: 564 ns, 5.67× the fastest; verified: HACL*'s F* proof of Hacl.HMAC's compute_sha2_256, compiled to Rust by an unverified step +✓ +HMAC-SHA256, 64 B, libcrux on ovh-iad: 2.36 µs, 2.03× the fastest; verified: HACL*'s F* proof of Hacl.HMAC's compute_sha2_256, compiled to Rust by an unverified step +✓ +HMAC-SHA256, 64 B, libcrux on ovh-sea: 1.83 µs, 1.90× the fastest; verified: HACL*'s F* proof of Hacl.HMAC's compute_sha2_256, compiled to Rust by an unverified step +✓ +HMAC-SHA256, 64 B, OpenSSL on nixos: 2.57 µs, 17.50× the fastest +HMAC-SHA256, 64 B, OpenSSL on desktop: 1.55 µs, 20.71× the fastest +HMAC-SHA256, 64 B, OpenSSL on nixos2: 3.69 µs, 5.88× the fastest +HMAC-SHA256, 64 B, OpenSSL on kixtop: 2.09 µs, 21.07× the fastest +HMAC-SHA256, 64 B, OpenSSL on ovh-iad: 6.68 µs, 5.76× the fastest +HMAC-SHA256, 64 B, OpenSSL on ovh-sea: 5.66 µs, 5.88× the fastest HMAC-SHA256, 1350 B HMAC-SHA256, 1350 B, rind on nixos: 692 ns, 1.00× the fastest -HMAC-SHA256, 1350 B, rind on desktop: 327 ns, 1.00× the fastest +HMAC-SHA256, 1350 B, rind on desktop: 328 ns, 1.00× the fastest HMAC-SHA256, 1350 B, rind on nixos2: 2.79 µs, 1.00× the fastest HMAC-SHA256, 1350 B, rind on kixtop: 559 ns, 1.11× the fastest HMAC-SHA256, 1350 B, rind on ovh-iad: 4.82 µs, 1.00× the fastest HMAC-SHA256, 1350 B, rind on ovh-sea: 4.31 µs, 1.00× the fastest -HMAC-SHA256, 1350 B, aws-lc-rs on nixos: 853 ns, 1.23× the fastest -HMAC-SHA256, 1350 B, aws-lc-rs on desktop: 434 ns, 1.33× the fastest -HMAC-SHA256, 1350 B, aws-lc-rs on nixos2: 3.30 µs, 1.18× the fastest -HMAC-SHA256, 1350 B, aws-lc-rs on kixtop: 620 ns, 1.24× the fastest -HMAC-SHA256, 1350 B, aws-lc-rs on ovh-iad: 5.59 µs, 1.16× the fastest -HMAC-SHA256, 1350 B, aws-lc-rs on ovh-sea: 5.11 µs, 1.19× the fastest -HMAC-SHA256, 1350 B, ring on nixos: 791 ns, 1.14× the fastest -HMAC-SHA256, 1350 B, ring on desktop: 399 ns, 1.22× the fastest -HMAC-SHA256, 1350 B, ring on nixos2: 3.19 µs, 1.14× the fastest -HMAC-SHA256, 1350 B, ring on kixtop: 502 ns, 1.00× the fastest -HMAC-SHA256, 1350 B, ring on ovh-iad: 5.16 µs, 1.07× the fastest -HMAC-SHA256, 1350 B, ring on ovh-sea: 4.97 µs, 1.15× the fastest -HMAC-SHA256, 1350 B, RustCrypto + dalek on nixos: 728 ns, 1.05× the fastest -HMAC-SHA256, 1350 B, RustCrypto + dalek on desktop: 358 ns, 1.09× the fastest -HMAC-SHA256, 1350 B, RustCrypto + dalek on nixos2: 5.80 µs, 2.08× the fastest -HMAC-SHA256, 1350 B, RustCrypto + dalek on kixtop: 542 ns, 1.08× the fastest -HMAC-SHA256, 1350 B, RustCrypto + dalek on ovh-iad: 9.61 µs, 1.99× the fastest -HMAC-SHA256, 1350 B, RustCrypto + dalek on ovh-sea: 8.95 µs, 2.08× the fastest -HMAC-SHA256, 1350 B, graviola on nixos: 731 ns, 1.06× the fastest -HMAC-SHA256, 1350 B, graviola on desktop: 363 ns, 1.11× the fastest -HMAC-SHA256, 1350 B, graviola on nixos2: 7.05 µs, 2.53× the fastest -HMAC-SHA256, 1350 B, graviola on kixtop: 557 ns, 1.11× the fastest -HMAC-SHA256, 1350 B, libcrux on nixos: 4.39 µs, 6.34× the fastest; verified: HACL*'s F* proof of Hacl.HMAC's compute_sha2_256, compiled to Rust by an unverified step -✓ -HMAC-SHA256, 1350 B, libcrux on desktop: 2.66 µs, 8.15× the fastest; verified: HACL*'s F* proof of Hacl.HMAC's compute_sha2_256, compiled to Rust by an unverified step -✓ -HMAC-SHA256, 1350 B, libcrux on nixos2: 6.02 µs, 2.16× the fastest; verified: HACL*'s F* proof of Hacl.HMAC's compute_sha2_256, compiled to Rust by an unverified step -✓ -HMAC-SHA256, 1350 B, libcrux on kixtop: 2.86 µs, 5.70× the fastest; verified: HACL*'s F* proof of Hacl.HMAC's compute_sha2_256, compiled to Rust by an unverified step -✓ -HMAC-SHA256, 1350 B, libcrux on ovh-iad: 9.65 µs, 2.00× the fastest; verified: HACL*'s F* proof of Hacl.HMAC's compute_sha2_256, compiled to Rust by an unverified step -✓ -HMAC-SHA256, 1350 B, libcrux on ovh-sea: 9.24 µs, 2.14× the fastest; verified: HACL*'s F* proof of Hacl.HMAC's compute_sha2_256, compiled to Rust by an unverified step -✓ -HMAC-SHA256, 1350 B, OpenSSL on nixos: 3.11 µs, 4.50× the fastest -HMAC-SHA256, 1350 B, OpenSSL on desktop: 1.83 µs, 5.60× the fastest -HMAC-SHA256, 1350 B, OpenSSL on nixos2: 5.94 µs, 2.13× the fastest -HMAC-SHA256, 1350 B, OpenSSL on kixtop: 2.43 µs, 4.84× the fastest -HMAC-SHA256, 1350 B, OpenSSL on ovh-iad: 9.44 µs, 1.96× the fastest -HMAC-SHA256, 1350 B, OpenSSL on ovh-sea: 9.08 µs, 2.11× the fastest +HMAC-SHA256, 1350 B, rind (DIT held) on kixtop: 487 ns, 0.97× the fastest +HMAC-SHA256, 1350 B, aws-lc-rs on nixos: 853 ns, 1.23× the fastest +HMAC-SHA256, 1350 B, aws-lc-rs on desktop: 435 ns, 1.33× the fastest +HMAC-SHA256, 1350 B, aws-lc-rs on nixos2: 3.30 µs, 1.18× the fastest +HMAC-SHA256, 1350 B, aws-lc-rs on kixtop: 597 ns, 1.19× the fastest +HMAC-SHA256, 1350 B, aws-lc-rs on ovh-iad: 5.59 µs, 1.16× the fastest +HMAC-SHA256, 1350 B, aws-lc-rs on ovh-sea: 5.11 µs, 1.19× the fastest +HMAC-SHA256, 1350 B, ring on nixos: 791 ns, 1.14× the fastest +HMAC-SHA256, 1350 B, ring on desktop: 397 ns, 1.21× the fastest +HMAC-SHA256, 1350 B, ring on nixos2: 3.19 µs, 1.14× the fastest +HMAC-SHA256, 1350 B, ring on kixtop: 502 ns, 1.00× the fastest +HMAC-SHA256, 1350 B, ring on ovh-iad: 5.16 µs, 1.07× the fastest +HMAC-SHA256, 1350 B, ring on ovh-sea: 4.97 µs, 1.15× the fastest +HMAC-SHA256, 1350 B, RustCrypto + dalek on nixos: 728 ns, 1.05× the fastest +HMAC-SHA256, 1350 B, RustCrypto + dalek on desktop: 356 ns, 1.08× the fastest +HMAC-SHA256, 1350 B, RustCrypto + dalek on nixos2: 5.80 µs, 2.08× the fastest +HMAC-SHA256, 1350 B, RustCrypto + dalek on kixtop: 545 ns, 1.08× the fastest +HMAC-SHA256, 1350 B, RustCrypto + dalek on ovh-iad: 9.61 µs, 1.99× the fastest +HMAC-SHA256, 1350 B, RustCrypto + dalek on ovh-sea: 8.95 µs, 2.08× the fastest +HMAC-SHA256, 1350 B, graviola on nixos: 731 ns, 1.06× the fastest +HMAC-SHA256, 1350 B, graviola on desktop: 358 ns, 1.09× the fastest +HMAC-SHA256, 1350 B, graviola on nixos2: 7.05 µs, 2.53× the fastest +HMAC-SHA256, 1350 B, graviola on kixtop: 562 ns, 1.12× the fastest +HMAC-SHA256, 1350 B, libcrux on nixos: 4.39 µs, 6.34× the fastest; verified: HACL*'s F* proof of Hacl.HMAC's compute_sha2_256, compiled to Rust by an unverified step +✓ +HMAC-SHA256, 1350 B, libcrux on desktop: 2.68 µs, 8.15× the fastest; verified: HACL*'s F* proof of Hacl.HMAC's compute_sha2_256, compiled to Rust by an unverified step +✓ +HMAC-SHA256, 1350 B, libcrux on nixos2: 6.02 µs, 2.16× the fastest; verified: HACL*'s F* proof of Hacl.HMAC's compute_sha2_256, compiled to Rust by an unverified step +✓ +HMAC-SHA256, 1350 B, libcrux on kixtop: 2.80 µs, 5.57× the fastest; verified: HACL*'s F* proof of Hacl.HMAC's compute_sha2_256, compiled to Rust by an unverified step +✓ +HMAC-SHA256, 1350 B, libcrux on ovh-iad: 9.65 µs, 2.00× the fastest; verified: HACL*'s F* proof of Hacl.HMAC's compute_sha2_256, compiled to Rust by an unverified step +✓ +HMAC-SHA256, 1350 B, libcrux on ovh-sea: 9.24 µs, 2.14× the fastest; verified: HACL*'s F* proof of Hacl.HMAC's compute_sha2_256, compiled to Rust by an unverified step +✓ +HMAC-SHA256, 1350 B, OpenSSL on nixos: 3.11 µs, 4.50× the fastest +HMAC-SHA256, 1350 B, OpenSSL on desktop: 1.81 µs, 5.51× the fastest +HMAC-SHA256, 1350 B, OpenSSL on nixos2: 5.94 µs, 2.13× the fastest +HMAC-SHA256, 1350 B, OpenSSL on kixtop: 2.41 µs, 4.80× the fastest +HMAC-SHA256, 1350 B, OpenSSL on ovh-iad: 9.44 µs, 1.96× the fastest +HMAC-SHA256, 1350 B, OpenSSL on ovh-sea: 9.08 µs, 2.11× the fastest HKDF-SHA256 extract and expand HKDF-SHA256 extract and expand, rind on nixos: 257 ns, 1.00× the fastest -HKDF-SHA256 extract and expand, rind on desktop: 152 ns, 1.00× the fastest +HKDF-SHA256 extract and expand, rind on desktop: 158 ns, 1.00× the fastest HKDF-SHA256 extract and expand, rind on nixos2: 1.15 µs, 1.00× the fastest -HKDF-SHA256 extract and expand, rind on kixtop: 343 ns, 1.58× the fastest +HKDF-SHA256 extract and expand, rind on kixtop: 338 ns, 1.60× the fastest HKDF-SHA256 extract and expand, rind on ovh-iad: 2.10 µs, 1.01× the fastest HKDF-SHA256 extract and expand, rind on ovh-sea: 1.70 µs, 1.00× the fastest -HKDF-SHA256 extract and expand, aws-lc-rs on nixos: 369 ns, 1.44× the fastest -HKDF-SHA256 extract and expand, aws-lc-rs on desktop: 288 ns, 1.90× the fastest -HKDF-SHA256 extract and expand, aws-lc-rs on nixos2: 1.44 µs, 1.25× the fastest -HKDF-SHA256 extract and expand, aws-lc-rs on kixtop: 330 ns, 1.52× the fastest -HKDF-SHA256 extract and expand, aws-lc-rs on ovh-iad: 2.36 µs, 1.13× the fastest -HKDF-SHA256 extract and expand, aws-lc-rs on ovh-sea: 2.01 µs, 1.18× the fastest -HKDF-SHA256 extract and expand, ring on nixos: 399 ns, 1.55× the fastest -HKDF-SHA256 extract and expand, ring on desktop: 305 ns, 2.01× the fastest -HKDF-SHA256 extract and expand, ring on nixos2: 1.31 µs, 1.14× the fastest -HKDF-SHA256 extract and expand, ring on kixtop: 274 ns, 1.26× the fastest -HKDF-SHA256 extract and expand, ring on ovh-iad: 2.08 µs, 1.00× the fastest -HKDF-SHA256 extract and expand, ring on ovh-sea: 1.85 µs, 1.09× the fastest -HKDF-SHA256 extract and expand, RustCrypto + dalek on nixos: 309 ns, 1.20× the fastest -HKDF-SHA256 extract and expand, RustCrypto + dalek on desktop: 223 ns, 1.47× the fastest -HKDF-SHA256 extract and expand, RustCrypto + dalek on nixos2: 1.98 µs, 1.72× the fastest -HKDF-SHA256 extract and expand, RustCrypto + dalek on kixtop: 218 ns, 1.00× the fastest -HKDF-SHA256 extract and expand, RustCrypto + dalek on ovh-iad: 3.39 µs, 1.63× the fastest -HKDF-SHA256 extract and expand, RustCrypto + dalek on ovh-sea: 3.01 µs, 1.77× the fastest -HKDF-SHA256 extract and expand, libcrux on nixos: 1.37 µs, 5.34× the fastest; verified: HACL*'s F* proof of Hacl.HKDF's extract_sha2_256 and expand_sha2_256, compiled to Rust by an unverified step -✓ -HKDF-SHA256 extract and expand, libcrux on desktop: 965 ns, 6.36× the fastest; verified: HACL*'s F* proof of Hacl.HKDF's extract_sha2_256 and expand_sha2_256, compiled to Rust by an unverified step -✓ -HKDF-SHA256 extract and expand, libcrux on nixos2: 2.04 µs, 1.77× the fastest; verified: HACL*'s F* proof of Hacl.HKDF's extract_sha2_256 and expand_sha2_256, compiled to Rust by an unverified step -✓ -HKDF-SHA256 extract and expand, libcrux on kixtop: 942 ns, 4.32× the fastest; verified: HACL*'s F* proof of Hacl.HKDF's extract_sha2_256 and expand_sha2_256, compiled to Rust by an unverified step -✓ -HKDF-SHA256 extract and expand, libcrux on ovh-iad: 3.73 µs, 1.80× the fastest; verified: HACL*'s F* proof of Hacl.HKDF's extract_sha2_256 and expand_sha2_256, compiled to Rust by an unverified step -✓ -HKDF-SHA256 extract and expand, libcrux on ovh-sea: 3.08 µs, 1.81× the fastest; verified: HACL*'s F* proof of Hacl.HKDF's extract_sha2_256 and expand_sha2_256, compiled to Rust by an unverified step -✓ -HKDF-SHA256 extract and expand, OpenSSL on nixos: 2.72 µs, 10.57× the fastest -HKDF-SHA256 extract and expand, OpenSSL on desktop: 1.76 µs, 11.57× the fastest -HKDF-SHA256 extract and expand, OpenSSL on nixos2: 4.33 µs, 3.76× the fastest -HKDF-SHA256 extract and expand, OpenSSL on kixtop: 2.14 µs, 9.84× the fastest -HKDF-SHA256 extract and expand, OpenSSL on ovh-iad: 10.10 µs, 4.86× the fastest -HKDF-SHA256 extract and expand, OpenSSL on ovh-sea: 6.80 µs, 3.99× the fastest +HKDF-SHA256 extract and expand, rind (DIT held) on kixtop: 226 ns, 1.07× the fastest +HKDF-SHA256 extract and expand, aws-lc-rs on nixos: 369 ns, 1.44× the fastest +HKDF-SHA256 extract and expand, aws-lc-rs on desktop: 285 ns, 1.80× the fastest +HKDF-SHA256 extract and expand, aws-lc-rs on nixos2: 1.44 µs, 1.25× the fastest +HKDF-SHA256 extract and expand, aws-lc-rs on kixtop: 330 ns, 1.56× the fastest +HKDF-SHA256 extract and expand, aws-lc-rs on ovh-iad: 2.36 µs, 1.13× the fastest +HKDF-SHA256 extract and expand, aws-lc-rs on ovh-sea: 2.01 µs, 1.18× the fastest +HKDF-SHA256 extract and expand, ring on nixos: 399 ns, 1.55× the fastest +HKDF-SHA256 extract and expand, ring on desktop: 303 ns, 1.92× the fastest +HKDF-SHA256 extract and expand, ring on nixos2: 1.31 µs, 1.14× the fastest +HKDF-SHA256 extract and expand, ring on kixtop: 273 ns, 1.29× the fastest +HKDF-SHA256 extract and expand, ring on ovh-iad: 2.08 µs, 1.00× the fastest +HKDF-SHA256 extract and expand, ring on ovh-sea: 1.85 µs, 1.09× the fastest +HKDF-SHA256 extract and expand, RustCrypto + dalek on nixos: 309 ns, 1.20× the fastest +HKDF-SHA256 extract and expand, RustCrypto + dalek on desktop: 223 ns, 1.41× the fastest +HKDF-SHA256 extract and expand, RustCrypto + dalek on nixos2: 1.98 µs, 1.72× the fastest +HKDF-SHA256 extract and expand, RustCrypto + dalek on kixtop: 212 ns, 1.00× the fastest +HKDF-SHA256 extract and expand, RustCrypto + dalek on ovh-iad: 3.39 µs, 1.63× the fastest +HKDF-SHA256 extract and expand, RustCrypto + dalek on ovh-sea: 3.01 µs, 1.77× the fastest +HKDF-SHA256 extract and expand, libcrux on nixos: 1.37 µs, 5.34× the fastest; verified: HACL*'s F* proof of Hacl.HKDF's extract_sha2_256 and expand_sha2_256, compiled to Rust by an unverified step +✓ +HKDF-SHA256 extract and expand, libcrux on desktop: 965 ns, 6.12× the fastest; verified: HACL*'s F* proof of Hacl.HKDF's extract_sha2_256 and expand_sha2_256, compiled to Rust by an unverified step +✓ +HKDF-SHA256 extract and expand, libcrux on nixos2: 2.04 µs, 1.77× the fastest; verified: HACL*'s F* proof of Hacl.HKDF's extract_sha2_256 and expand_sha2_256, compiled to Rust by an unverified step +✓ +HKDF-SHA256 extract and expand, libcrux on kixtop: 936 ns, 4.42× the fastest; verified: HACL*'s F* proof of Hacl.HKDF's extract_sha2_256 and expand_sha2_256, compiled to Rust by an unverified step +✓ +HKDF-SHA256 extract and expand, libcrux on ovh-iad: 3.73 µs, 1.80× the fastest; verified: HACL*'s F* proof of Hacl.HKDF's extract_sha2_256 and expand_sha2_256, compiled to Rust by an unverified step +✓ +HKDF-SHA256 extract and expand, libcrux on ovh-sea: 3.08 µs, 1.81× the fastest; verified: HACL*'s F* proof of Hacl.HKDF's extract_sha2_256 and expand_sha2_256, compiled to Rust by an unverified step +✓ +HKDF-SHA256 extract and expand, OpenSSL on nixos: 2.72 µs, 10.57× the fastest +HKDF-SHA256 extract and expand, OpenSSL on desktop: 1.72 µs, 10.92× the fastest +HKDF-SHA256 extract and expand, OpenSSL on nixos2: 4.33 µs, 3.76× the fastest +HKDF-SHA256 extract and expand, OpenSSL on kixtop: 2.16 µs, 10.20× the fastest +HKDF-SHA256 extract and expand, OpenSSL on ovh-iad: 10.10 µs, 4.86× the fastest +HKDF-SHA256 extract and expand, OpenSSL on ovh-sea: 6.80 µs, 3.99× the fastest HKDF-SHA256 expand HKDF-SHA256 expand, rind on nixos: 89 ns, 1.00× the fastest -HKDF-SHA256 expand, rind on desktop: 47 ns, 1.00× the fastest +HKDF-SHA256 expand, rind on desktop: 66 ns, 1.00× the fastest HKDF-SHA256 expand, rind on nixos2: 300 ns, 1.00× the fastest -HKDF-SHA256 expand, rind on kixtop: 109 ns, 1.55× the fastest +HKDF-SHA256 expand, rind on kixtop: 107 ns, 1.56× the fastest HKDF-SHA256 expand, rind on ovh-iad: 540 ns, 1.00× the fastest HKDF-SHA256 expand, rind on ovh-sea: 464 ns, 1.00× the fastest -HKDF-SHA256 expand, aws-lc-rs on nixos: 179 ns, 2.02× the fastest -HKDF-SHA256 expand, aws-lc-rs on desktop: 126 ns, 2.70× the fastest -HKDF-SHA256 expand, aws-lc-rs on nixos2: 636 ns, 2.12× the fastest -HKDF-SHA256 expand, aws-lc-rs on kixtop: 154 ns, 2.20× the fastest -HKDF-SHA256 expand, aws-lc-rs on ovh-iad: 1.23 µs, 2.29× the fastest -HKDF-SHA256 expand, aws-lc-rs on ovh-sea: 973 ns, 2.10× the fastest -HKDF-SHA256 expand, ring on nixos: 142 ns, 1.60× the fastest -HKDF-SHA256 expand, ring on desktop: 122 ns, 2.63× the fastest -HKDF-SHA256 expand, ring on nixos2: 337 ns, 1.12× the fastest -HKDF-SHA256 expand, ring on kixtop: 94 ns, 1.33× the fastest -HKDF-SHA256 expand, ring on ovh-iad: 651 ns, 1.21× the fastest -HKDF-SHA256 expand, ring on ovh-sea: 508 ns, 1.09× the fastest -HKDF-SHA256 expand, RustCrypto + dalek on nixos: 103 ns, 1.16× the fastest -HKDF-SHA256 expand, RustCrypto + dalek on desktop: 85 ns, 1.83× the fastest -HKDF-SHA256 expand, RustCrypto + dalek on nixos2: 512 ns, 1.71× the fastest -HKDF-SHA256 expand, RustCrypto + dalek on kixtop: 70 ns, 1.00× the fastest -HKDF-SHA256 expand, RustCrypto + dalek on ovh-iad: 887 ns, 1.64× the fastest -HKDF-SHA256 expand, RustCrypto + dalek on ovh-sea: 773 ns, 1.67× the fastest -HKDF-SHA256 expand, libcrux on nixos: 714 ns, 8.06× the fastest; verified: HACL*'s F* proof of Hacl.HKDF's extract_sha2_256 and expand_sha2_256, compiled to Rust by an unverified step -✓ -HKDF-SHA256 expand, libcrux on desktop: 484 ns, 10.38× the fastest; verified: HACL*'s F* proof of Hacl.HKDF's extract_sha2_256 and expand_sha2_256, compiled to Rust by an unverified step -✓ -HKDF-SHA256 expand, libcrux on nixos2: 1.01 µs, 3.37× the fastest; verified: HACL*'s F* proof of Hacl.HKDF's extract_sha2_256 and expand_sha2_256, compiled to Rust by an unverified step -✓ -HKDF-SHA256 expand, libcrux on kixtop: 481 ns, 6.86× the fastest; verified: HACL*'s F* proof of Hacl.HKDF's extract_sha2_256 and expand_sha2_256, compiled to Rust by an unverified step -✓ -HKDF-SHA256 expand, libcrux on ovh-iad: 1.77 µs, 3.28× the fastest; verified: HACL*'s F* proof of Hacl.HKDF's extract_sha2_256 and expand_sha2_256, compiled to Rust by an unverified step -✓ -HKDF-SHA256 expand, libcrux on ovh-sea: 1.58 µs, 3.41× the fastest; verified: HACL*'s F* proof of Hacl.HKDF's extract_sha2_256 and expand_sha2_256, compiled to Rust by an unverified step -✓ -HKDF-SHA256 expand, OpenSSL on nixos: 2.00 µs, 22.59× the fastest -HKDF-SHA256 expand, OpenSSL on desktop: 1.25 µs, 26.79× the fastest -HKDF-SHA256 expand, OpenSSL on nixos2: 2.87 µs, 9.58× the fastest -HKDF-SHA256 expand, OpenSSL on kixtop: 1.54 µs, 21.93× the fastest -HKDF-SHA256 expand, OpenSSL on ovh-iad: 6.74 µs, 12.48× the fastest -HKDF-SHA256 expand, OpenSSL on ovh-sea: 4.62 µs, 9.94× the fastest +HKDF-SHA256 expand, rind (DIT held) on kixtop: 74 ns, 1.08× the fastest +HKDF-SHA256 expand, aws-lc-rs on nixos: 179 ns, 2.02× the fastest +HKDF-SHA256 expand, aws-lc-rs on desktop: 124 ns, 1.88× the fastest +HKDF-SHA256 expand, aws-lc-rs on nixos2: 636 ns, 2.12× the fastest +HKDF-SHA256 expand, aws-lc-rs on kixtop: 154 ns, 2.23× the fastest +HKDF-SHA256 expand, aws-lc-rs on ovh-iad: 1.23 µs, 2.29× the fastest +HKDF-SHA256 expand, aws-lc-rs on ovh-sea: 973 ns, 2.10× the fastest +HKDF-SHA256 expand, ring on nixos: 142 ns, 1.60× the fastest +HKDF-SHA256 expand, ring on desktop: 120 ns, 1.82× the fastest +HKDF-SHA256 expand, ring on nixos2: 337 ns, 1.12× the fastest +HKDF-SHA256 expand, ring on kixtop: 93 ns, 1.35× the fastest +HKDF-SHA256 expand, ring on ovh-iad: 651 ns, 1.21× the fastest +HKDF-SHA256 expand, ring on ovh-sea: 508 ns, 1.09× the fastest +HKDF-SHA256 expand, RustCrypto + dalek on nixos: 103 ns, 1.16× the fastest +HKDF-SHA256 expand, RustCrypto + dalek on desktop: 84 ns, 1.27× the fastest +HKDF-SHA256 expand, RustCrypto + dalek on nixos2: 512 ns, 1.71× the fastest +HKDF-SHA256 expand, RustCrypto + dalek on kixtop: 69 ns, 1.00× the fastest +HKDF-SHA256 expand, RustCrypto + dalek on ovh-iad: 887 ns, 1.64× the fastest +HKDF-SHA256 expand, RustCrypto + dalek on ovh-sea: 773 ns, 1.67× the fastest +HKDF-SHA256 expand, libcrux on nixos: 714 ns, 8.06× the fastest; verified: HACL*'s F* proof of Hacl.HKDF's extract_sha2_256 and expand_sha2_256, compiled to Rust by an unverified step +✓ +HKDF-SHA256 expand, libcrux on desktop: 480 ns, 7.26× the fastest; verified: HACL*'s F* proof of Hacl.HKDF's extract_sha2_256 and expand_sha2_256, compiled to Rust by an unverified step +✓ +HKDF-SHA256 expand, libcrux on nixos2: 1.01 µs, 3.37× the fastest; verified: HACL*'s F* proof of Hacl.HKDF's extract_sha2_256 and expand_sha2_256, compiled to Rust by an unverified step +✓ +HKDF-SHA256 expand, libcrux on kixtop: 481 ns, 7.00× the fastest; verified: HACL*'s F* proof of Hacl.HKDF's extract_sha2_256 and expand_sha2_256, compiled to Rust by an unverified step +✓ +HKDF-SHA256 expand, libcrux on ovh-iad: 1.77 µs, 3.28× the fastest; verified: HACL*'s F* proof of Hacl.HKDF's extract_sha2_256 and expand_sha2_256, compiled to Rust by an unverified step +✓ +HKDF-SHA256 expand, libcrux on ovh-sea: 1.58 µs, 3.41× the fastest; verified: HACL*'s F* proof of Hacl.HKDF's extract_sha2_256 and expand_sha2_256, compiled to Rust by an unverified step +✓ +HKDF-SHA256 expand, OpenSSL on nixos: 2.00 µs, 22.59× the fastest +HKDF-SHA256 expand, OpenSSL on desktop: 1.23 µs, 18.65× the fastest +HKDF-SHA256 expand, OpenSSL on nixos2: 2.87 µs, 9.58× the fastest +HKDF-SHA256 expand, OpenSSL on kixtop: 1.55 µs, 22.51× the fastest +HKDF-SHA256 expand, OpenSSL on ovh-iad: 6.74 µs, 12.48× the fastest +HKDF-SHA256 expand, OpenSSL on ovh-sea: 4.62 µs, 9.94× the fastest RSA - + RSA-2048 PKCS#1 sign RSA-2048 PKCS#1 sign, rind on nixos: 523.17 µs, 1.10× the fastest -RSA-2048 PKCS#1 sign, rind on desktop: 348.43 µs, 1.02× the fastest +RSA-2048 PKCS#1 sign, rind on desktop: 341.49 µs, 1.02× the fastest RSA-2048 PKCS#1 sign, rind on nixos2: 447.43 µs, 1.03× the fastest -RSA-2048 PKCS#1 sign, rind on kixtop: 275.12 µs, 1.00× the fastest +RSA-2048 PKCS#1 sign, rind on kixtop: 275.40 µs, 1.00× the fastest RSA-2048 PKCS#1 sign, rind on ovh-iad: 762.79 µs, 1.00× the fastest RSA-2048 PKCS#1 sign, rind on ovh-sea: 740.76 µs, 1.00× the fastest -RSA-2048 PKCS#1 sign, aws-lc-rs on nixos: 532.39 µs, 1.12× the fastest -RSA-2048 PKCS#1 sign, aws-lc-rs on desktop: 349.47 µs, 1.02× the fastest -RSA-2048 PKCS#1 sign, aws-lc-rs on nixos2: 448.68 µs, 1.03× the fastest -RSA-2048 PKCS#1 sign, aws-lc-rs on kixtop: 285.95 µs, 1.04× the fastest -RSA-2048 PKCS#1 sign, aws-lc-rs on ovh-iad: 796.90 µs, 1.04× the fastest -RSA-2048 PKCS#1 sign, aws-lc-rs on ovh-sea: 779.05 µs, 1.05× the fastest -RSA-2048 PKCS#1 sign, ring on nixos: 523.12 µs, 1.10× the fastest -RSA-2048 PKCS#1 sign, ring on desktop: 341.11 µs, 1.00× the fastest -RSA-2048 PKCS#1 sign, ring on nixos2: 434.47 µs, 1.00× the fastest -RSA-2048 PKCS#1 sign, ring on kixtop: 322.84 µs, 1.17× the fastest -RSA-2048 PKCS#1 sign, ring on ovh-iad: 1.05 ms, 1.38× the fastest -RSA-2048 PKCS#1 sign, ring on ovh-sea: 982.45 µs, 1.33× the fastest -RSA-2048 PKCS#1 sign, RustCrypto + dalek on nixos: 1.26 ms, 2.66× the fastest -RSA-2048 PKCS#1 sign, RustCrypto + dalek on desktop: 588.67 µs, 1.73× the fastest -RSA-2048 PKCS#1 sign, RustCrypto + dalek on nixos2: 1.14 ms, 2.63× the fastest -RSA-2048 PKCS#1 sign, RustCrypto + dalek on kixtop: 586.34 µs, 2.13× the fastest -RSA-2048 PKCS#1 sign, RustCrypto + dalek on ovh-iad: 1.83 ms, 2.40× the fastest -RSA-2048 PKCS#1 sign, RustCrypto + dalek on ovh-sea: 1.78 ms, 2.40× the fastest -RSA-2048 PKCS#1 sign, graviola on nixos: 474.44 µs, 1.00× the fastest -RSA-2048 PKCS#1 sign, graviola on desktop: 343.91 µs, 1.01× the fastest -RSA-2048 PKCS#1 sign, graviola on nixos2: 445.92 µs, 1.03× the fastest -RSA-2048 PKCS#1 sign, graviola on kixtop: 556.70 µs, 2.02× the fastest -RSA-2048 PKCS#1 sign, OpenSSL on nixos: 520.25 µs, 1.10× the fastest -RSA-2048 PKCS#1 sign, OpenSSL on desktop: 397.72 µs, 1.17× the fastest -RSA-2048 PKCS#1 sign, OpenSSL on nixos2: 453.81 µs, 1.04× the fastest -RSA-2048 PKCS#1 sign, OpenSSL on kixtop: 341.31 µs, 1.24× the fastest -RSA-2048 PKCS#1 sign, OpenSSL on ovh-iad: 846.94 µs, 1.11× the fastest -RSA-2048 PKCS#1 sign, OpenSSL on ovh-sea: 777.23 µs, 1.05× the fastest +RSA-2048 PKCS#1 sign, aws-lc-rs on nixos: 532.39 µs, 1.12× the fastest +RSA-2048 PKCS#1 sign, aws-lc-rs on desktop: 344.24 µs, 1.02× the fastest +RSA-2048 PKCS#1 sign, aws-lc-rs on nixos2: 448.68 µs, 1.03× the fastest +RSA-2048 PKCS#1 sign, aws-lc-rs on kixtop: 283.82 µs, 1.03× the fastest +RSA-2048 PKCS#1 sign, aws-lc-rs on ovh-iad: 796.90 µs, 1.04× the fastest +RSA-2048 PKCS#1 sign, aws-lc-rs on ovh-sea: 779.05 µs, 1.05× the fastest +RSA-2048 PKCS#1 sign, ring on nixos: 523.12 µs, 1.10× the fastest +RSA-2048 PKCS#1 sign, ring on desktop: 336.10 µs, 1.00× the fastest +RSA-2048 PKCS#1 sign, ring on nixos2: 434.47 µs, 1.00× the fastest +RSA-2048 PKCS#1 sign, ring on kixtop: 323.02 µs, 1.17× the fastest +RSA-2048 PKCS#1 sign, ring on ovh-iad: 1.05 ms, 1.38× the fastest +RSA-2048 PKCS#1 sign, ring on ovh-sea: 982.45 µs, 1.33× the fastest +RSA-2048 PKCS#1 sign, RustCrypto + dalek on nixos: 1.26 ms, 2.66× the fastest +RSA-2048 PKCS#1 sign, RustCrypto + dalek on desktop: 580.18 µs, 1.73× the fastest +RSA-2048 PKCS#1 sign, RustCrypto + dalek on nixos2: 1.14 ms, 2.63× the fastest +RSA-2048 PKCS#1 sign, RustCrypto + dalek on kixtop: 588.22 µs, 2.14× the fastest +RSA-2048 PKCS#1 sign, RustCrypto + dalek on ovh-iad: 1.83 ms, 2.40× the fastest +RSA-2048 PKCS#1 sign, RustCrypto + dalek on ovh-sea: 1.78 ms, 2.40× the fastest +RSA-2048 PKCS#1 sign, graviola on nixos: 474.44 µs, 1.00× the fastest +RSA-2048 PKCS#1 sign, graviola on desktop: 343.75 µs, 1.02× the fastest +RSA-2048 PKCS#1 sign, graviola on nixos2: 445.92 µs, 1.03× the fastest +RSA-2048 PKCS#1 sign, graviola on kixtop: 551.44 µs, 2.00× the fastest +RSA-2048 PKCS#1 sign, OpenSSL on nixos: 520.25 µs, 1.10× the fastest +RSA-2048 PKCS#1 sign, OpenSSL on desktop: 393.45 µs, 1.17× the fastest +RSA-2048 PKCS#1 sign, OpenSSL on nixos2: 453.81 µs, 1.04× the fastest +RSA-2048 PKCS#1 sign, OpenSSL on kixtop: 340.40 µs, 1.24× the fastest +RSA-2048 PKCS#1 sign, OpenSSL on ovh-iad: 846.94 µs, 1.11× the fastest +RSA-2048 PKCS#1 sign, OpenSSL on ovh-sea: 777.23 µs, 1.05× the fastest RSA-2048 PKCS#1 verify RSA-2048 PKCS#1 verify, rind on nixos: 12.28 µs, 1.00× the fastest -RSA-2048 PKCS#1 verify, rind on desktop: 8.97 µs, 1.00× the fastest +RSA-2048 PKCS#1 verify, rind on desktop: 8.92 µs, 1.00× the fastest RSA-2048 PKCS#1 verify, rind on nixos2: 12.88 µs, 1.00× the fastest -RSA-2048 PKCS#1 verify, rind on kixtop: 8.38 µs, 1.00× the fastest +RSA-2048 PKCS#1 verify, rind on kixtop: 8.41 µs, 1.00× the fastest RSA-2048 PKCS#1 verify, rind on ovh-iad: 30.35 µs, 1.00× the fastest RSA-2048 PKCS#1 verify, rind on ovh-sea: 29.50 µs, 1.00× the fastest -RSA-2048 PKCS#1 verify, aws-lc-rs on nixos: 14.60 µs, 1.19× the fastest -RSA-2048 PKCS#1 verify, aws-lc-rs on desktop: 10.86 µs, 1.21× the fastest -RSA-2048 PKCS#1 verify, aws-lc-rs on nixos2: 15.88 µs, 1.23× the fastest -RSA-2048 PKCS#1 verify, aws-lc-rs on kixtop: 9.48 µs, 1.13× the fastest -RSA-2048 PKCS#1 verify, aws-lc-rs on ovh-iad: 35.39 µs, 1.17× the fastest -RSA-2048 PKCS#1 verify, aws-lc-rs on ovh-sea: 32.95 µs, 1.12× the fastest -RSA-2048 PKCS#1 verify, ring on nixos: 16.56 µs, 1.35× the fastest -RSA-2048 PKCS#1 verify, ring on desktop: 12.70 µs, 1.41× the fastest -RSA-2048 PKCS#1 verify, ring on nixos2: 16.51 µs, 1.28× the fastest -RSA-2048 PKCS#1 verify, ring on kixtop: 11.05 µs, 1.32× the fastest -RSA-2048 PKCS#1 verify, ring on ovh-iad: 39.13 µs, 1.29× the fastest -RSA-2048 PKCS#1 verify, ring on ovh-sea: 37.72 µs, 1.28× the fastest -RSA-2048 PKCS#1 verify, RustCrypto + dalek on nixos: 54.06 µs, 4.40× the fastest -RSA-2048 PKCS#1 verify, RustCrypto + dalek on desktop: 29.41 µs, 3.28× the fastest -RSA-2048 PKCS#1 verify, RustCrypto + dalek on nixos2: 57.81 µs, 4.49× the fastest -RSA-2048 PKCS#1 verify, RustCrypto + dalek on kixtop: 30.77 µs, 3.67× the fastest -RSA-2048 PKCS#1 verify, RustCrypto + dalek on ovh-iad: 92.51 µs, 3.05× the fastest -RSA-2048 PKCS#1 verify, RustCrypto + dalek on ovh-sea: 88.47 µs, 3.00× the fastest -RSA-2048 PKCS#1 verify, graviola on nixos: 19.25 µs, 1.57× the fastest -RSA-2048 PKCS#1 verify, graviola on desktop: 14.06 µs, 1.57× the fastest -RSA-2048 PKCS#1 verify, graviola on nixos2: 19.05 µs, 1.48× the fastest -RSA-2048 PKCS#1 verify, graviola on kixtop: 18.51 µs, 2.21× the fastest -RSA-2048 PKCS#1 verify, OpenSSL on nixos: 23.59 µs, 1.92× the fastest -RSA-2048 PKCS#1 verify, OpenSSL on desktop: 15.59 µs, 1.74× the fastest -RSA-2048 PKCS#1 verify, OpenSSL on nixos2: 24.54 µs, 1.91× the fastest -RSA-2048 PKCS#1 verify, OpenSSL on kixtop: 16.66 µs, 1.99× the fastest -RSA-2048 PKCS#1 verify, OpenSSL on ovh-iad: 50.31 µs, 1.66× the fastest -RSA-2048 PKCS#1 verify, OpenSSL on ovh-sea: 47.30 µs, 1.60× the fastest +RSA-2048 PKCS#1 verify, aws-lc-rs on nixos: 14.60 µs, 1.19× the fastest +RSA-2048 PKCS#1 verify, aws-lc-rs on desktop: 10.96 µs, 1.23× the fastest +RSA-2048 PKCS#1 verify, aws-lc-rs on nixos2: 15.88 µs, 1.23× the fastest +RSA-2048 PKCS#1 verify, aws-lc-rs on kixtop: 9.54 µs, 1.13× the fastest +RSA-2048 PKCS#1 verify, aws-lc-rs on ovh-iad: 35.39 µs, 1.17× the fastest +RSA-2048 PKCS#1 verify, aws-lc-rs on ovh-sea: 32.95 µs, 1.12× the fastest +RSA-2048 PKCS#1 verify, ring on nixos: 16.56 µs, 1.35× the fastest +RSA-2048 PKCS#1 verify, ring on desktop: 12.78 µs, 1.43× the fastest +RSA-2048 PKCS#1 verify, ring on nixos2: 16.51 µs, 1.28× the fastest +RSA-2048 PKCS#1 verify, ring on kixtop: 11.01 µs, 1.31× the fastest +RSA-2048 PKCS#1 verify, ring on ovh-iad: 39.13 µs, 1.29× the fastest +RSA-2048 PKCS#1 verify, ring on ovh-sea: 37.72 µs, 1.28× the fastest +RSA-2048 PKCS#1 verify, RustCrypto + dalek on nixos: 54.06 µs, 4.40× the fastest +RSA-2048 PKCS#1 verify, RustCrypto + dalek on desktop: 29.01 µs, 3.25× the fastest +RSA-2048 PKCS#1 verify, RustCrypto + dalek on nixos2: 57.81 µs, 4.49× the fastest +RSA-2048 PKCS#1 verify, RustCrypto + dalek on kixtop: 30.97 µs, 3.68× the fastest +RSA-2048 PKCS#1 verify, RustCrypto + dalek on ovh-iad: 92.51 µs, 3.05× the fastest +RSA-2048 PKCS#1 verify, RustCrypto + dalek on ovh-sea: 88.47 µs, 3.00× the fastest +RSA-2048 PKCS#1 verify, graviola on nixos: 19.25 µs, 1.57× the fastest +RSA-2048 PKCS#1 verify, graviola on desktop: 13.98 µs, 1.57× the fastest +RSA-2048 PKCS#1 verify, graviola on nixos2: 19.05 µs, 1.48× the fastest +RSA-2048 PKCS#1 verify, graviola on kixtop: 18.43 µs, 2.19× the fastest +RSA-2048 PKCS#1 verify, OpenSSL on nixos: 23.59 µs, 1.92× the fastest +RSA-2048 PKCS#1 verify, OpenSSL on desktop: 15.51 µs, 1.74× the fastest +RSA-2048 PKCS#1 verify, OpenSSL on nixos2: 24.54 µs, 1.91× the fastest +RSA-2048 PKCS#1 verify, OpenSSL on kixtop: 16.81 µs, 2.00× the fastest +RSA-2048 PKCS#1 verify, OpenSSL on ovh-iad: 50.31 µs, 1.66× the fastest +RSA-2048 PKCS#1 verify, OpenSSL on ovh-sea: 47.30 µs, 1.60× the fastest RSA-2048 PSS sign RSA-2048 PSS sign, rind on nixos: 424.30 µs, 1.00× the fastest -RSA-2048 PSS sign, rind on desktop: 346.52 µs, 1.01× the fastest +RSA-2048 PSS sign, rind on desktop: 341.45 µs, 1.00× the fastest RSA-2048 PSS sign, rind on nixos2: 445.92 µs, 1.02× the fastest -RSA-2048 PSS sign, rind on kixtop: 275.29 µs, 1.00× the fastest +RSA-2048 PSS sign, rind on kixtop: 275.82 µs, 1.00× the fastest RSA-2048 PSS sign, rind on ovh-iad: 819.13 µs, 1.01× the fastest RSA-2048 PSS sign, rind on ovh-sea: 743.95 µs, 1.00× the fastest -RSA-2048 PSS sign, aws-lc-rs on nixos: 481.00 µs, 1.13× the fastest -RSA-2048 PSS sign, aws-lc-rs on desktop: 350.45 µs, 1.03× the fastest -RSA-2048 PSS sign, aws-lc-rs on nixos2: 461.87 µs, 1.06× the fastest -RSA-2048 PSS sign, aws-lc-rs on kixtop: 288.58 µs, 1.05× the fastest -RSA-2048 PSS sign, aws-lc-rs on ovh-iad: 807.21 µs, 1.00× the fastest -RSA-2048 PSS sign, aws-lc-rs on ovh-sea: 772.15 µs, 1.04× the fastest -RSA-2048 PSS sign, ring on nixos: 471.53 µs, 1.11× the fastest -RSA-2048 PSS sign, ring on desktop: 341.45 µs, 1.00× the fastest -RSA-2048 PSS sign, ring on nixos2: 437.28 µs, 1.00× the fastest -RSA-2048 PSS sign, ring on kixtop: 324.86 µs, 1.18× the fastest -RSA-2048 PSS sign, ring on ovh-iad: 1.04 ms, 1.29× the fastest -RSA-2048 PSS sign, ring on ovh-sea: 987.95 µs, 1.33× the fastest -RSA-2048 PSS sign, RustCrypto + dalek on nixos: 1.06 ms, 2.50× the fastest -RSA-2048 PSS sign, RustCrypto + dalek on desktop: 588.33 µs, 1.72× the fastest -RSA-2048 PSS sign, RustCrypto + dalek on nixos2: 1.15 ms, 2.63× the fastest -RSA-2048 PSS sign, RustCrypto + dalek on kixtop: 588.38 µs, 2.14× the fastest -RSA-2048 PSS sign, RustCrypto + dalek on ovh-iad: 1.91 ms, 2.36× the fastest -RSA-2048 PSS sign, RustCrypto + dalek on ovh-sea: 1.81 ms, 2.44× the fastest -RSA-2048 PSS sign, graviola on nixos: 448.54 µs, 1.06× the fastest -RSA-2048 PSS sign, graviola on desktop: 342.67 µs, 1.00× the fastest -RSA-2048 PSS sign, graviola on nixos2: 450.24 µs, 1.03× the fastest -RSA-2048 PSS sign, graviola on kixtop: 558.57 µs, 2.03× the fastest -RSA-2048 PSS sign, libcrux on nixos: 5.86 ms, 13.81× the fastest; verified: HACL*'s F* proof of Hacl.RSAPSS's rsapss_skey_sign and rsapss_pkey_verify, signing without the CRT, compiled to Rust by an unverified step -✓ -RSA-2048 PSS sign, libcrux on desktop: 4.10 ms, 12.00× the fastest; verified: HACL*'s F* proof of Hacl.RSAPSS's rsapss_skey_sign and rsapss_pkey_verify, signing without the CRT, compiled to Rust by an unverified step -✓ -RSA-2048 PSS sign, libcrux on nixos2: 7.22 ms, 16.51× the fastest; verified: HACL*'s F* proof of Hacl.RSAPSS's rsapss_skey_sign and rsapss_pkey_verify, signing without the CRT, compiled to Rust by an unverified step -✓ -RSA-2048 PSS sign, libcrux on kixtop: 4.48 ms, 16.28× the fastest; verified: HACL*'s F* proof of Hacl.RSAPSS's rsapss_skey_sign and rsapss_pkey_verify, signing without the CRT, compiled to Rust by an unverified step -✓ -RSA-2048 PSS sign, libcrux on ovh-iad: 11.56 ms, 14.33× the fastest; verified: HACL*'s F* proof of Hacl.RSAPSS's rsapss_skey_sign and rsapss_pkey_verify, signing without the CRT, compiled to Rust by an unverified step -✓ -RSA-2048 PSS sign, libcrux on ovh-sea: 10.86 ms, 14.60× the fastest; verified: HACL*'s F* proof of Hacl.RSAPSS's rsapss_skey_sign and rsapss_pkey_verify, signing without the CRT, compiled to Rust by an unverified step -✓ -RSA-2048 PSS sign, OpenSSL on nixos: 474.99 µs, 1.12× the fastest -RSA-2048 PSS sign, OpenSSL on desktop: 395.81 µs, 1.16× the fastest -RSA-2048 PSS sign, OpenSSL on nixos2: 456.55 µs, 1.04× the fastest -RSA-2048 PSS sign, OpenSSL on kixtop: 342.61 µs, 1.24× the fastest -RSA-2048 PSS sign, OpenSSL on ovh-iad: 830.22 µs, 1.03× the fastest -RSA-2048 PSS sign, OpenSSL on ovh-sea: 796.27 µs, 1.07× the fastest +RSA-2048 PSS sign, aws-lc-rs on nixos: 481.00 µs, 1.13× the fastest +RSA-2048 PSS sign, aws-lc-rs on desktop: 346.55 µs, 1.01× the fastest +RSA-2048 PSS sign, aws-lc-rs on nixos2: 461.87 µs, 1.06× the fastest +RSA-2048 PSS sign, aws-lc-rs on kixtop: 285.36 µs, 1.03× the fastest +RSA-2048 PSS sign, aws-lc-rs on ovh-iad: 807.21 µs, 1.00× the fastest +RSA-2048 PSS sign, aws-lc-rs on ovh-sea: 772.15 µs, 1.04× the fastest +RSA-2048 PSS sign, ring on nixos: 471.53 µs, 1.11× the fastest +RSA-2048 PSS sign, ring on desktop: 342.49 µs, 1.00× the fastest +RSA-2048 PSS sign, ring on nixos2: 437.28 µs, 1.00× the fastest +RSA-2048 PSS sign, ring on kixtop: 323.17 µs, 1.17× the fastest +RSA-2048 PSS sign, ring on ovh-iad: 1.04 ms, 1.29× the fastest +RSA-2048 PSS sign, ring on ovh-sea: 987.95 µs, 1.33× the fastest +RSA-2048 PSS sign, RustCrypto + dalek on nixos: 1.06 ms, 2.50× the fastest +RSA-2048 PSS sign, RustCrypto + dalek on desktop: 581.16 µs, 1.70× the fastest +RSA-2048 PSS sign, RustCrypto + dalek on nixos2: 1.15 ms, 2.63× the fastest +RSA-2048 PSS sign, RustCrypto + dalek on kixtop: 589.96 µs, 2.14× the fastest +RSA-2048 PSS sign, RustCrypto + dalek on ovh-iad: 1.91 ms, 2.36× the fastest +RSA-2048 PSS sign, RustCrypto + dalek on ovh-sea: 1.81 ms, 2.44× the fastest +RSA-2048 PSS sign, graviola on nixos: 448.54 µs, 1.06× the fastest +RSA-2048 PSS sign, graviola on desktop: 344.58 µs, 1.01× the fastest +RSA-2048 PSS sign, graviola on nixos2: 450.24 µs, 1.03× the fastest +RSA-2048 PSS sign, graviola on kixtop: 551.49 µs, 2.00× the fastest +RSA-2048 PSS sign, libcrux on nixos: 5.86 ms, 13.81× the fastest; verified: HACL*'s F* proof of Hacl.RSAPSS's rsapss_skey_sign and rsapss_pkey_verify, signing without the CRT, compiled to Rust by an unverified step +✓ +RSA-2048 PSS sign, libcrux on desktop: 3.69 ms, 10.79× the fastest; verified: HACL*'s F* proof of Hacl.RSAPSS's rsapss_skey_sign and rsapss_pkey_verify, signing without the CRT, compiled to Rust by an unverified step +✓ +RSA-2048 PSS sign, libcrux on nixos2: 7.22 ms, 16.51× the fastest; verified: HACL*'s F* proof of Hacl.RSAPSS's rsapss_skey_sign and rsapss_pkey_verify, signing without the CRT, compiled to Rust by an unverified step +✓ +RSA-2048 PSS sign, libcrux on kixtop: 4.47 ms, 16.20× the fastest; verified: HACL*'s F* proof of Hacl.RSAPSS's rsapss_skey_sign and rsapss_pkey_verify, signing without the CRT, compiled to Rust by an unverified step +✓ +RSA-2048 PSS sign, libcrux on ovh-iad: 11.56 ms, 14.33× the fastest; verified: HACL*'s F* proof of Hacl.RSAPSS's rsapss_skey_sign and rsapss_pkey_verify, signing without the CRT, compiled to Rust by an unverified step +✓ +RSA-2048 PSS sign, libcrux on ovh-sea: 10.86 ms, 14.60× the fastest; verified: HACL*'s F* proof of Hacl.RSAPSS's rsapss_skey_sign and rsapss_pkey_verify, signing without the CRT, compiled to Rust by an unverified step +✓ +RSA-2048 PSS sign, OpenSSL on nixos: 474.99 µs, 1.12× the fastest +RSA-2048 PSS sign, OpenSSL on desktop: 390.44 µs, 1.14× the fastest +RSA-2048 PSS sign, OpenSSL on nixos2: 456.55 µs, 1.04× the fastest +RSA-2048 PSS sign, OpenSSL on kixtop: 341.81 µs, 1.24× the fastest +RSA-2048 PSS sign, OpenSSL on ovh-iad: 830.22 µs, 1.03× the fastest +RSA-2048 PSS sign, OpenSSL on ovh-sea: 796.27 µs, 1.07× the fastest RSA-2048 PSS verify RSA-2048 PSS verify, rind on nixos: 12.67 µs, 1.00× the fastest -RSA-2048 PSS verify, rind on desktop: 9.18 µs, 1.00× the fastest +RSA-2048 PSS verify, rind on desktop: 9.15 µs, 1.00× the fastest RSA-2048 PSS verify, rind on nixos2: 14.36 µs, 1.00× the fastest -RSA-2048 PSS verify, rind on kixtop: 8.71 µs, 1.00× the fastest +RSA-2048 PSS verify, rind on kixtop: 8.74 µs, 1.00× the fastest RSA-2048 PSS verify, rind on ovh-iad: 35.06 µs, 1.00× the fastest RSA-2048 PSS verify, rind on ovh-sea: 31.99 µs, 1.00× the fastest -RSA-2048 PSS verify, aws-lc-rs on nixos: 15.94 µs, 1.26× the fastest -RSA-2048 PSS verify, aws-lc-rs on desktop: 11.17 µs, 1.22× the fastest -RSA-2048 PSS verify, aws-lc-rs on nixos2: 17.01 µs, 1.18× the fastest -RSA-2048 PSS verify, aws-lc-rs on kixtop: 9.84 µs, 1.13× the fastest -RSA-2048 PSS verify, aws-lc-rs on ovh-iad: 36.78 µs, 1.05× the fastest -RSA-2048 PSS verify, aws-lc-rs on ovh-sea: 35.48 µs, 1.11× the fastest -RSA-2048 PSS verify, ring on nixos: 18.03 µs, 1.42× the fastest -RSA-2048 PSS verify, ring on desktop: 13.31 µs, 1.45× the fastest -RSA-2048 PSS verify, ring on nixos2: 18.22 µs, 1.27× the fastest -RSA-2048 PSS verify, ring on kixtop: 11.48 µs, 1.32× the fastest -RSA-2048 PSS verify, ring on ovh-iad: 42.45 µs, 1.21× the fastest -RSA-2048 PSS verify, ring on ovh-sea: 40.12 µs, 1.25× the fastest -RSA-2048 PSS verify, RustCrypto + dalek on nixos: 64.70 µs, 5.11× the fastest -RSA-2048 PSS verify, RustCrypto + dalek on desktop: 35.62 µs, 3.88× the fastest -RSA-2048 PSS verify, RustCrypto + dalek on nixos2: 70.02 µs, 4.88× the fastest -RSA-2048 PSS verify, RustCrypto + dalek on kixtop: 39.26 µs, 4.51× the fastest -RSA-2048 PSS verify, RustCrypto + dalek on ovh-iad: 117.27 µs, 3.35× the fastest -RSA-2048 PSS verify, RustCrypto + dalek on ovh-sea: 106.80 µs, 3.34× the fastest -RSA-2048 PSS verify, graviola on nixos: 19.63 µs, 1.55× the fastest -RSA-2048 PSS verify, graviola on desktop: 14.44 µs, 1.57× the fastest -RSA-2048 PSS verify, graviola on nixos2: 21.85 µs, 1.52× the fastest -RSA-2048 PSS verify, graviola on kixtop: 18.79 µs, 2.16× the fastest -RSA-2048 PSS verify, libcrux on nixos: 312.23 µs, 24.64× the fastest; verified: HACL*'s F* proof of Hacl.RSAPSS's rsapss_skey_sign and rsapss_pkey_verify, signing without the CRT, compiled to Rust by an unverified step -✓ -RSA-2048 PSS verify, libcrux on desktop: 252.13 µs, 27.46× the fastest; verified: HACL*'s F* proof of Hacl.RSAPSS's rsapss_skey_sign and rsapss_pkey_verify, signing without the CRT, compiled to Rust by an unverified step -✓ -RSA-2048 PSS verify, libcrux on nixos2: 377.87 µs, 26.32× the fastest; verified: HACL*'s F* proof of Hacl.RSAPSS's rsapss_skey_sign and rsapss_pkey_verify, signing without the CRT, compiled to Rust by an unverified step -✓ -RSA-2048 PSS verify, libcrux on kixtop: 299.96 µs, 34.44× the fastest; verified: HACL*'s F* proof of Hacl.RSAPSS's rsapss_skey_sign and rsapss_pkey_verify, signing without the CRT, compiled to Rust by an unverified step -✓ -RSA-2048 PSS verify, libcrux on ovh-iad: 636.67 µs, 18.16× the fastest; verified: HACL*'s F* proof of Hacl.RSAPSS's rsapss_skey_sign and rsapss_pkey_verify, signing without the CRT, compiled to Rust by an unverified step -✓ -RSA-2048 PSS verify, libcrux on ovh-sea: 583.13 µs, 18.23× the fastest; verified: HACL*'s F* proof of Hacl.RSAPSS's rsapss_skey_sign and rsapss_pkey_verify, signing without the CRT, compiled to Rust by an unverified step -✓ -RSA-2048 PSS verify, OpenSSL on nixos: 23.60 µs, 1.86× the fastest -RSA-2048 PSS verify, OpenSSL on desktop: 16.36 µs, 1.78× the fastest -RSA-2048 PSS verify, OpenSSL on nixos2: 27.16 µs, 1.89× the fastest -RSA-2048 PSS verify, OpenSSL on kixtop: 17.44 µs, 2.00× the fastest -RSA-2048 PSS verify, OpenSSL on ovh-iad: 55.18 µs, 1.57× the fastest -RSA-2048 PSS verify, OpenSSL on ovh-sea: 50.44 µs, 1.58× the fastest +RSA-2048 PSS verify, aws-lc-rs on nixos: 15.94 µs, 1.26× the fastest +RSA-2048 PSS verify, aws-lc-rs on desktop: 11.16 µs, 1.22× the fastest +RSA-2048 PSS verify, aws-lc-rs on nixos2: 17.01 µs, 1.18× the fastest +RSA-2048 PSS verify, aws-lc-rs on kixtop: 9.89 µs, 1.13× the fastest +RSA-2048 PSS verify, aws-lc-rs on ovh-iad: 36.78 µs, 1.05× the fastest +RSA-2048 PSS verify, aws-lc-rs on ovh-sea: 35.48 µs, 1.11× the fastest +RSA-2048 PSS verify, ring on nixos: 18.03 µs, 1.42× the fastest +RSA-2048 PSS verify, ring on desktop: 13.19 µs, 1.44× the fastest +RSA-2048 PSS verify, ring on nixos2: 18.22 µs, 1.27× the fastest +RSA-2048 PSS verify, ring on kixtop: 11.43 µs, 1.31× the fastest +RSA-2048 PSS verify, ring on ovh-iad: 42.45 µs, 1.21× the fastest +RSA-2048 PSS verify, ring on ovh-sea: 40.12 µs, 1.25× the fastest +RSA-2048 PSS verify, RustCrypto + dalek on nixos: 64.70 µs, 5.11× the fastest +RSA-2048 PSS verify, RustCrypto + dalek on desktop: 35.27 µs, 3.86× the fastest +RSA-2048 PSS verify, RustCrypto + dalek on nixos2: 70.02 µs, 4.88× the fastest +RSA-2048 PSS verify, RustCrypto + dalek on kixtop: 38.88 µs, 4.45× the fastest +RSA-2048 PSS verify, RustCrypto + dalek on ovh-iad: 117.27 µs, 3.35× the fastest +RSA-2048 PSS verify, RustCrypto + dalek on ovh-sea: 106.80 µs, 3.34× the fastest +RSA-2048 PSS verify, graviola on nixos: 19.63 µs, 1.55× the fastest +RSA-2048 PSS verify, graviola on desktop: 14.30 µs, 1.56× the fastest +RSA-2048 PSS verify, graviola on nixos2: 21.85 µs, 1.52× the fastest +RSA-2048 PSS verify, graviola on kixtop: 18.77 µs, 2.15× the fastest +RSA-2048 PSS verify, libcrux on nixos: 312.23 µs, 24.64× the fastest; verified: HACL*'s F* proof of Hacl.RSAPSS's rsapss_skey_sign and rsapss_pkey_verify, signing without the CRT, compiled to Rust by an unverified step +✓ +RSA-2048 PSS verify, libcrux on desktop: 251.91 µs, 27.53× the fastest; verified: HACL*'s F* proof of Hacl.RSAPSS's rsapss_skey_sign and rsapss_pkey_verify, signing without the CRT, compiled to Rust by an unverified step +✓ +RSA-2048 PSS verify, libcrux on nixos2: 377.87 µs, 26.32× the fastest; verified: HACL*'s F* proof of Hacl.RSAPSS's rsapss_skey_sign and rsapss_pkey_verify, signing without the CRT, compiled to Rust by an unverified step +✓ +RSA-2048 PSS verify, libcrux on kixtop: 297.72 µs, 34.06× the fastest; verified: HACL*'s F* proof of Hacl.RSAPSS's rsapss_skey_sign and rsapss_pkey_verify, signing without the CRT, compiled to Rust by an unverified step +✓ +RSA-2048 PSS verify, libcrux on ovh-iad: 636.67 µs, 18.16× the fastest; verified: HACL*'s F* proof of Hacl.RSAPSS's rsapss_skey_sign and rsapss_pkey_verify, signing without the CRT, compiled to Rust by an unverified step +✓ +RSA-2048 PSS verify, libcrux on ovh-sea: 583.13 µs, 18.23× the fastest; verified: HACL*'s F* proof of Hacl.RSAPSS's rsapss_skey_sign and rsapss_pkey_verify, signing without the CRT, compiled to Rust by an unverified step +✓ +RSA-2048 PSS verify, OpenSSL on nixos: 23.60 µs, 1.86× the fastest +RSA-2048 PSS verify, OpenSSL on desktop: 16.25 µs, 1.78× the fastest +RSA-2048 PSS verify, OpenSSL on nixos2: 27.16 µs, 1.89× the fastest +RSA-2048 PSS verify, OpenSSL on kixtop: 17.47 µs, 2.00× the fastest +RSA-2048 PSS verify, OpenSSL on ovh-iad: 55.18 µs, 1.57× the fastest +RSA-2048 PSS verify, OpenSSL on ovh-sea: 50.44 µs, 1.58× the fastest ML-KEM - + ML-KEM-768 key generation ML-KEM-768 key generation, rind on nixos: 8.43 µs, 1.00× the fastest -ML-KEM-768 key generation, rind on desktop: 6.45 µs, 1.00× the fastest +ML-KEM-768 key generation, rind on desktop: 6.35 µs, 1.00× the fastest ML-KEM-768 key generation, rind on nixos2: 10.24 µs, 1.00× the fastest -ML-KEM-768 key generation, rind on kixtop: 6.20 µs, 1.00× the fastest +ML-KEM-768 key generation, rind on kixtop: 6.11 µs, 1.00× the fastest ML-KEM-768 key generation, rind on ovh-iad: 18.79 µs, 1.00× the fastest ML-KEM-768 key generation, rind on ovh-sea: 17.44 µs, 1.00× the fastest -ML-KEM-768 key generation, aws-lc-rs on nixos: 9.41 µs, 1.12× the fastest -ML-KEM-768 key generation, aws-lc-rs on desktop: 8.27 µs, 1.28× the fastest -ML-KEM-768 key generation, aws-lc-rs on nixos2: 18.44 µs, 1.80× the fastest -ML-KEM-768 key generation, aws-lc-rs on kixtop: 7.46 µs, 1.20× the fastest -ML-KEM-768 key generation, aws-lc-rs on ovh-iad: 25.06 µs, 1.33× the fastest -ML-KEM-768 key generation, aws-lc-rs on ovh-sea: 23.21 µs, 1.33× the fastest -ML-KEM-768 key generation, RustCrypto + dalek on nixos: 60.18 µs, 7.14× the fastest -ML-KEM-768 key generation, RustCrypto + dalek on desktop: 40.26 µs, 6.24× the fastest -ML-KEM-768 key generation, RustCrypto + dalek on nixos2: 59.97 µs, 5.86× the fastest -ML-KEM-768 key generation, RustCrypto + dalek on kixtop: 26.57 µs, 4.29× the fastest -ML-KEM-768 key generation, RustCrypto + dalek on ovh-iad: 100.59 µs, 5.35× the fastest -ML-KEM-768 key generation, RustCrypto + dalek on ovh-sea: 92.84 µs, 5.32× the fastest -ML-KEM-768 key generation, graviola on nixos: 9.28 µs, 1.10× the fastest -ML-KEM-768 key generation, graviola on desktop: 7.67 µs, 1.19× the fastest -ML-KEM-768 key generation, graviola on nixos2: 10.41 µs, 1.02× the fastest -ML-KEM-768 key generation, graviola on kixtop: 6.22 µs, 1.00× the fastest -ML-KEM-768 key generation, libcrux on nixos: 18.15 µs, 2.15× the fastest -ML-KEM-768 key generation, libcrux on desktop: 15.15 µs, 2.35× the fastest -ML-KEM-768 key generation, libcrux on nixos2: 20.05 µs, 1.96× the fastest -ML-KEM-768 key generation, libcrux on kixtop: 12.01 µs, 1.94× the fastest -ML-KEM-768 key generation, libcrux on ovh-iad: 36.95 µs, 1.97× the fastest -ML-KEM-768 key generation, libcrux on ovh-sea: 34.54 µs, 1.98× the fastest -ML-KEM-768 key generation, OpenSSL on nixos: 26.82 µs, 3.18× the fastest -ML-KEM-768 key generation, OpenSSL on desktop: 19.80 µs, 3.07× the fastest -ML-KEM-768 key generation, OpenSSL on nixos2: 40.63 µs, 3.97× the fastest -ML-KEM-768 key generation, OpenSSL on kixtop: 25.06 µs, 4.04× the fastest -ML-KEM-768 key generation, OpenSSL on ovh-iad: 69.54 µs, 3.70× the fastest -ML-KEM-768 key generation, OpenSSL on ovh-sea: 62.78 µs, 3.60× the fastest +ML-KEM-768 key generation, aws-lc-rs on nixos: 9.41 µs, 1.12× the fastest +ML-KEM-768 key generation, aws-lc-rs on desktop: 8.13 µs, 1.28× the fastest +ML-KEM-768 key generation, aws-lc-rs on nixos2: 18.44 µs, 1.80× the fastest +ML-KEM-768 key generation, aws-lc-rs on kixtop: 7.31 µs, 1.20× the fastest +ML-KEM-768 key generation, aws-lc-rs on ovh-iad: 25.06 µs, 1.33× the fastest +ML-KEM-768 key generation, aws-lc-rs on ovh-sea: 23.21 µs, 1.33× the fastest +ML-KEM-768 key generation, RustCrypto + dalek on nixos: 60.18 µs, 7.14× the fastest +ML-KEM-768 key generation, RustCrypto + dalek on desktop: 39.63 µs, 6.24× the fastest +ML-KEM-768 key generation, RustCrypto + dalek on nixos2: 59.97 µs, 5.86× the fastest +ML-KEM-768 key generation, RustCrypto + dalek on kixtop: 26.29 µs, 4.30× the fastest +ML-KEM-768 key generation, RustCrypto + dalek on ovh-iad: 100.59 µs, 5.35× the fastest +ML-KEM-768 key generation, RustCrypto + dalek on ovh-sea: 92.84 µs, 5.32× the fastest +ML-KEM-768 key generation, graviola on nixos: 9.28 µs, 1.10× the fastest +ML-KEM-768 key generation, graviola on desktop: 7.37 µs, 1.16× the fastest +ML-KEM-768 key generation, graviola on nixos2: 10.41 µs, 1.02× the fastest +ML-KEM-768 key generation, graviola on kixtop: 6.11 µs, 1.00× the fastest +ML-KEM-768 key generation, libcrux on nixos: 18.15 µs, 2.15× the fastest +ML-KEM-768 key generation, libcrux on desktop: 15.02 µs, 2.37× the fastest +ML-KEM-768 key generation, libcrux on nixos2: 20.05 µs, 1.96× the fastest +ML-KEM-768 key generation, libcrux on kixtop: 11.77 µs, 1.93× the fastest +ML-KEM-768 key generation, libcrux on ovh-iad: 36.95 µs, 1.97× the fastest +ML-KEM-768 key generation, libcrux on ovh-sea: 34.54 µs, 1.98× the fastest +ML-KEM-768 key generation, OpenSSL on nixos: 26.82 µs, 3.18× the fastest +ML-KEM-768 key generation, OpenSSL on desktop: 19.81 µs, 3.12× the fastest +ML-KEM-768 key generation, OpenSSL on nixos2: 40.63 µs, 3.97× the fastest +ML-KEM-768 key generation, OpenSSL on kixtop: 24.90 µs, 4.08× the fastest +ML-KEM-768 key generation, OpenSSL on ovh-iad: 69.54 µs, 3.70× the fastest +ML-KEM-768 key generation, OpenSSL on ovh-sea: 62.78 µs, 3.60× the fastest ML-KEM-768 encapsulate ML-KEM-768 encapsulate, rind on nixos: 8.53 µs, 1.00× the fastest -ML-KEM-768 encapsulate, rind on desktop: 6.65 µs, 1.00× the fastest +ML-KEM-768 encapsulate, rind on desktop: 6.50 µs, 1.00× the fastest ML-KEM-768 encapsulate, rind on nixos2: 10.61 µs, 1.00× the fastest -ML-KEM-768 encapsulate, rind on kixtop: 6.84 µs, 1.07× the fastest +ML-KEM-768 encapsulate, rind on kixtop: 6.77 µs, 1.07× the fastest ML-KEM-768 encapsulate, rind on ovh-iad: 18.94 µs, 1.00× the fastest ML-KEM-768 encapsulate, rind on ovh-sea: 18.36 µs, 1.00× the fastest -ML-KEM-768 encapsulate, aws-lc-rs on nixos: 10.41 µs, 1.22× the fastest -ML-KEM-768 encapsulate, aws-lc-rs on desktop: 8.68 µs, 1.31× the fastest -ML-KEM-768 encapsulate, aws-lc-rs on nixos2: 18.73 µs, 1.76× the fastest -ML-KEM-768 encapsulate, aws-lc-rs on kixtop: 8.01 µs, 1.25× the fastest -ML-KEM-768 encapsulate, aws-lc-rs on ovh-iad: 25.08 µs, 1.32× the fastest -ML-KEM-768 encapsulate, aws-lc-rs on ovh-sea: 23.94 µs, 1.30× the fastest -ML-KEM-768 encapsulate, RustCrypto + dalek on nixos: 72.03 µs, 8.44× the fastest -ML-KEM-768 encapsulate, RustCrypto + dalek on desktop: 41.71 µs, 6.27× the fastest -ML-KEM-768 encapsulate, RustCrypto + dalek on nixos2: 67.03 µs, 6.31× the fastest -ML-KEM-768 encapsulate, RustCrypto + dalek on kixtop: 27.77 µs, 4.34× the fastest -ML-KEM-768 encapsulate, RustCrypto + dalek on ovh-iad: 104.24 µs, 5.50× the fastest -ML-KEM-768 encapsulate, RustCrypto + dalek on ovh-sea: 101.88 µs, 5.55× the fastest -ML-KEM-768 encapsulate, graviola on nixos: 10.95 µs, 1.28× the fastest -ML-KEM-768 encapsulate, graviola on desktop: 9.11 µs, 1.37× the fastest -ML-KEM-768 encapsulate, graviola on nixos2: 11.12 µs, 1.05× the fastest -ML-KEM-768 encapsulate, graviola on kixtop: 6.40 µs, 1.00× the fastest -ML-KEM-768 encapsulate, libcrux on nixos: 16.03 µs, 1.88× the fastest -ML-KEM-768 encapsulate, libcrux on desktop: 12.94 µs, 1.94× the fastest -ML-KEM-768 encapsulate, libcrux on nixos2: 18.13 µs, 1.71× the fastest -ML-KEM-768 encapsulate, libcrux on kixtop: 9.39 µs, 1.47× the fastest -ML-KEM-768 encapsulate, libcrux on ovh-iad: 32.18 µs, 1.70× the fastest -ML-KEM-768 encapsulate, libcrux on ovh-sea: 31.26 µs, 1.70× the fastest -ML-KEM-768 encapsulate, OpenSSL on nixos: 30.02 µs, 3.52× the fastest -ML-KEM-768 encapsulate, OpenSSL on desktop: 18.77 µs, 2.82× the fastest -ML-KEM-768 encapsulate, OpenSSL on nixos2: 41.18 µs, 3.88× the fastest -ML-KEM-768 encapsulate, OpenSSL on kixtop: 24.07 µs, 3.76× the fastest -ML-KEM-768 encapsulate, OpenSSL on ovh-iad: 66.54 µs, 3.51× the fastest -ML-KEM-768 encapsulate, OpenSSL on ovh-sea: 63.41 µs, 3.45× the fastest +ML-KEM-768 encapsulate, aws-lc-rs on nixos: 10.41 µs, 1.22× the fastest +ML-KEM-768 encapsulate, aws-lc-rs on desktop: 8.48 µs, 1.30× the fastest +ML-KEM-768 encapsulate, aws-lc-rs on nixos2: 18.73 µs, 1.76× the fastest +ML-KEM-768 encapsulate, aws-lc-rs on kixtop: 7.91 µs, 1.25× the fastest +ML-KEM-768 encapsulate, aws-lc-rs on ovh-iad: 25.08 µs, 1.32× the fastest +ML-KEM-768 encapsulate, aws-lc-rs on ovh-sea: 23.94 µs, 1.30× the fastest +ML-KEM-768 encapsulate, RustCrypto + dalek on nixos: 72.03 µs, 8.44× the fastest +ML-KEM-768 encapsulate, RustCrypto + dalek on desktop: 41.38 µs, 6.36× the fastest +ML-KEM-768 encapsulate, RustCrypto + dalek on nixos2: 67.03 µs, 6.31× the fastest +ML-KEM-768 encapsulate, RustCrypto + dalek on kixtop: 27.87 µs, 4.41× the fastest +ML-KEM-768 encapsulate, RustCrypto + dalek on ovh-iad: 104.24 µs, 5.50× the fastest +ML-KEM-768 encapsulate, RustCrypto + dalek on ovh-sea: 101.88 µs, 5.55× the fastest +ML-KEM-768 encapsulate, graviola on nixos: 10.95 µs, 1.28× the fastest +ML-KEM-768 encapsulate, graviola on desktop: 9.00 µs, 1.38× the fastest +ML-KEM-768 encapsulate, graviola on nixos2: 11.12 µs, 1.05× the fastest +ML-KEM-768 encapsulate, graviola on kixtop: 6.32 µs, 1.00× the fastest +ML-KEM-768 encapsulate, libcrux on nixos: 16.03 µs, 1.88× the fastest +ML-KEM-768 encapsulate, libcrux on desktop: 12.80 µs, 1.97× the fastest +ML-KEM-768 encapsulate, libcrux on nixos2: 18.13 µs, 1.71× the fastest +ML-KEM-768 encapsulate, libcrux on kixtop: 9.25 µs, 1.46× the fastest +ML-KEM-768 encapsulate, libcrux on ovh-iad: 32.18 µs, 1.70× the fastest +ML-KEM-768 encapsulate, libcrux on ovh-sea: 31.26 µs, 1.70× the fastest +ML-KEM-768 encapsulate, OpenSSL on nixos: 30.02 µs, 3.52× the fastest +ML-KEM-768 encapsulate, OpenSSL on desktop: 18.77 µs, 2.89× the fastest +ML-KEM-768 encapsulate, OpenSSL on nixos2: 41.18 µs, 3.88× the fastest +ML-KEM-768 encapsulate, OpenSSL on kixtop: 23.89 µs, 3.78× the fastest +ML-KEM-768 encapsulate, OpenSSL on ovh-iad: 66.54 µs, 3.51× the fastest +ML-KEM-768 encapsulate, OpenSSL on ovh-sea: 63.41 µs, 3.45× the fastest ML-KEM-768 decapsulate ML-KEM-768 decapsulate, rind on nixos: 6.07 µs, 1.00× the fastest -ML-KEM-768 decapsulate, rind on desktop: 4.69 µs, 1.00× the fastest +ML-KEM-768 decapsulate, rind on desktop: 4.64 µs, 1.00× the fastest ML-KEM-768 decapsulate, rind on nixos2: 7.07 µs, 1.00× the fastest -ML-KEM-768 decapsulate, rind on kixtop: 4.17 µs, 1.03× the fastest +ML-KEM-768 decapsulate, rind on kixtop: 4.12 µs, 1.02× the fastest ML-KEM-768 decapsulate, rind on ovh-iad: 12.89 µs, 1.00× the fastest ML-KEM-768 decapsulate, rind on ovh-sea: 12.15 µs, 1.00× the fastest -ML-KEM-768 decapsulate, aws-lc-rs on nixos: 11.96 µs, 1.97× the fastest -ML-KEM-768 decapsulate, aws-lc-rs on desktop: 9.02 µs, 1.92× the fastest -ML-KEM-768 decapsulate, aws-lc-rs on nixos2: 16.01 µs, 2.26× the fastest -ML-KEM-768 decapsulate, aws-lc-rs on kixtop: 7.75 µs, 1.91× the fastest -ML-KEM-768 decapsulate, aws-lc-rs on ovh-iad: 28.78 µs, 2.23× the fastest -ML-KEM-768 decapsulate, aws-lc-rs on ovh-sea: 27.57 µs, 2.27× the fastest -ML-KEM-768 decapsulate, RustCrypto + dalek on nixos: 95.17 µs, 15.68× the fastest -ML-KEM-768 decapsulate, RustCrypto + dalek on desktop: 54.19 µs, 11.55× the fastest -ML-KEM-768 decapsulate, RustCrypto + dalek on nixos2: 84.37 µs, 11.93× the fastest -ML-KEM-768 decapsulate, RustCrypto + dalek on kixtop: 34.06 µs, 8.41× the fastest -ML-KEM-768 decapsulate, RustCrypto + dalek on ovh-iad: 148.48 µs, 11.52× the fastest -ML-KEM-768 decapsulate, RustCrypto + dalek on ovh-sea: 130.57 µs, 10.75× the fastest -ML-KEM-768 decapsulate, graviola on nixos: 7.72 µs, 1.27× the fastest -ML-KEM-768 decapsulate, graviola on desktop: 6.59 µs, 1.41× the fastest -ML-KEM-768 decapsulate, graviola on nixos2: 7.42 µs, 1.05× the fastest -ML-KEM-768 decapsulate, graviola on kixtop: 4.05 µs, 1.00× the fastest -ML-KEM-768 decapsulate, libcrux on nixos: 16.22 µs, 2.67× the fastest -ML-KEM-768 decapsulate, libcrux on desktop: 13.44 µs, 2.87× the fastest -ML-KEM-768 decapsulate, libcrux on nixos2: 19.04 µs, 2.69× the fastest -ML-KEM-768 decapsulate, libcrux on kixtop: 9.58 µs, 2.36× the fastest -ML-KEM-768 decapsulate, libcrux on ovh-iad: 35.04 µs, 2.72× the fastest -ML-KEM-768 decapsulate, libcrux on ovh-sea: 33.12 µs, 2.73× the fastest -ML-KEM-768 decapsulate, OpenSSL on nixos: 24.64 µs, 4.06× the fastest -ML-KEM-768 decapsulate, OpenSSL on desktop: 16.05 µs, 3.42× the fastest -ML-KEM-768 decapsulate, OpenSSL on nixos2: 31.67 µs, 4.48× the fastest -ML-KEM-768 decapsulate, OpenSSL on kixtop: 24.43 µs, 6.03× the fastest -ML-KEM-768 decapsulate, OpenSSL on ovh-iad: 49.78 µs, 3.86× the fastest -ML-KEM-768 decapsulate, OpenSSL on ovh-sea: 48.94 µs, 4.03× the fastest +ML-KEM-768 decapsulate, aws-lc-rs on nixos: 11.96 µs, 1.97× the fastest +ML-KEM-768 decapsulate, aws-lc-rs on desktop: 8.90 µs, 1.92× the fastest +ML-KEM-768 decapsulate, aws-lc-rs on nixos2: 16.01 µs, 2.26× the fastest +ML-KEM-768 decapsulate, aws-lc-rs on kixtop: 7.67 µs, 1.91× the fastest +ML-KEM-768 decapsulate, aws-lc-rs on ovh-iad: 28.78 µs, 2.23× the fastest +ML-KEM-768 decapsulate, aws-lc-rs on ovh-sea: 27.57 µs, 2.27× the fastest +ML-KEM-768 decapsulate, RustCrypto + dalek on nixos: 95.17 µs, 15.68× the fastest +ML-KEM-768 decapsulate, RustCrypto + dalek on desktop: 54.87 µs, 11.81× the fastest +ML-KEM-768 decapsulate, RustCrypto + dalek on nixos2: 84.37 µs, 11.93× the fastest +ML-KEM-768 decapsulate, RustCrypto + dalek on kixtop: 33.92 µs, 8.43× the fastest +ML-KEM-768 decapsulate, RustCrypto + dalek on ovh-iad: 148.48 µs, 11.52× the fastest +ML-KEM-768 decapsulate, RustCrypto + dalek on ovh-sea: 130.57 µs, 10.75× the fastest +ML-KEM-768 decapsulate, graviola on nixos: 7.72 µs, 1.27× the fastest +ML-KEM-768 decapsulate, graviola on desktop: 6.54 µs, 1.41× the fastest +ML-KEM-768 decapsulate, graviola on nixos2: 7.42 µs, 1.05× the fastest +ML-KEM-768 decapsulate, graviola on kixtop: 4.02 µs, 1.00× the fastest +ML-KEM-768 decapsulate, libcrux on nixos: 16.22 µs, 2.67× the fastest +ML-KEM-768 decapsulate, libcrux on desktop: 13.44 µs, 2.89× the fastest +ML-KEM-768 decapsulate, libcrux on nixos2: 19.04 µs, 2.69× the fastest +ML-KEM-768 decapsulate, libcrux on kixtop: 9.48 µs, 2.36× the fastest +ML-KEM-768 decapsulate, libcrux on ovh-iad: 35.04 µs, 2.72× the fastest +ML-KEM-768 decapsulate, libcrux on ovh-sea: 33.12 µs, 2.73× the fastest +ML-KEM-768 decapsulate, OpenSSL on nixos: 24.64 µs, 4.06× the fastest +ML-KEM-768 decapsulate, OpenSSL on desktop: 15.77 µs, 3.40× the fastest +ML-KEM-768 decapsulate, OpenSSL on nixos2: 31.67 µs, 4.48× the fastest +ML-KEM-768 decapsulate, OpenSSL on kixtop: 24.66 µs, 6.13× the fastest +ML-KEM-768 decapsulate, OpenSSL on ovh-iad: 49.78 µs, 3.86× the fastest +ML-KEM-768 decapsulate, OpenSSL on ovh-sea: 48.94 µs, 4.03× the fastest P-384 and P-521 - + P-384 ECDH P-384 ECDH, rind on nixos: 179.71 µs, 1.00× the fastest -P-384 ECDH, rind on desktop: 100.08 µs, 1.00× the fastest +P-384 ECDH, rind on desktop: 100.20 µs, 1.00× the fastest P-384 ECDH, rind on nixos2: 150.97 µs, 1.00× the fastest -P-384 ECDH, rind on kixtop: 91.49 µs, 1.00× the fastest +P-384 ECDH, rind on kixtop: 90.11 µs, 1.00× the fastest P-384 ECDH, rind on ovh-iad: 295.16 µs, 1.00× the fastest P-384 ECDH, rind on ovh-sea: 264.09 µs, 1.00× the fastest -P-384 ECDH, aws-lc-rs on nixos: 180.49 µs, 1.00× the fastest -P-384 ECDH, aws-lc-rs on desktop: 111.11 µs, 1.11× the fastest -P-384 ECDH, aws-lc-rs on nixos2: 174.62 µs, 1.16× the fastest -P-384 ECDH, aws-lc-rs on kixtop: 105.75 µs, 1.16× the fastest -P-384 ECDH, aws-lc-rs on ovh-iad: 310.31 µs, 1.05× the fastest -P-384 ECDH, aws-lc-rs on ovh-sea: 291.94 µs, 1.11× the fastest -P-384 ECDH, ring on nixos: 601.49 µs, 3.35× the fastest -P-384 ECDH, ring on desktop: 369.71 µs, 3.69× the fastest -P-384 ECDH, ring on nixos2: 645.54 µs, 4.28× the fastest -P-384 ECDH, ring on kixtop: 412.48 µs, 4.51× the fastest -P-384 ECDH, ring on ovh-iad: 1.02 ms, 3.45× the fastest -P-384 ECDH, ring on ovh-sea: 980.96 µs, 3.71× the fastest -P-384 ECDH, RustCrypto + dalek on nixos: 1.04 ms, 5.80× the fastest -P-384 ECDH, RustCrypto + dalek on desktop: 401.25 µs, 4.01× the fastest -P-384 ECDH, RustCrypto + dalek on nixos2: 769.61 µs, 5.10× the fastest -P-384 ECDH, RustCrypto + dalek on kixtop: 494.20 µs, 5.40× the fastest -P-384 ECDH, RustCrypto + dalek on ovh-iad: 1.23 ms, 4.16× the fastest -P-384 ECDH, RustCrypto + dalek on ovh-sea: 1.20 ms, 4.56× the fastest -P-384 ECDH, graviola on nixos: 302.57 µs, 1.68× the fastest -P-384 ECDH, graviola on desktop: 170.94 µs, 1.71× the fastest -P-384 ECDH, graviola on nixos2: 245.24 µs, 1.62× the fastest -P-384 ECDH, graviola on kixtop: 153.84 µs, 1.68× the fastest -P-384 ECDH, OpenSSL on nixos: 656.67 µs, 3.65× the fastest -P-384 ECDH, OpenSSL on desktop: 264.84 µs, 2.65× the fastest -P-384 ECDH, OpenSSL on nixos2: 483.50 µs, 3.20× the fastest -P-384 ECDH, OpenSSL on kixtop: 279.51 µs, 3.06× the fastest -P-384 ECDH, OpenSSL on ovh-iad: 860.17 µs, 2.91× the fastest -P-384 ECDH, OpenSSL on ovh-sea: 765.55 µs, 2.90× the fastest +P-384 ECDH, aws-lc-rs on nixos: 180.49 µs, 1.00× the fastest +P-384 ECDH, aws-lc-rs on desktop: 109.34 µs, 1.09× the fastest +P-384 ECDH, aws-lc-rs on nixos2: 174.62 µs, 1.16× the fastest +P-384 ECDH, aws-lc-rs on kixtop: 104.99 µs, 1.17× the fastest +P-384 ECDH, aws-lc-rs on ovh-iad: 310.31 µs, 1.05× the fastest +P-384 ECDH, aws-lc-rs on ovh-sea: 291.94 µs, 1.11× the fastest +P-384 ECDH, ring on nixos: 601.49 µs, 3.35× the fastest +P-384 ECDH, ring on desktop: 369.83 µs, 3.69× the fastest +P-384 ECDH, ring on nixos2: 645.54 µs, 4.28× the fastest +P-384 ECDH, ring on kixtop: 413.70 µs, 4.59× the fastest +P-384 ECDH, ring on ovh-iad: 1.02 ms, 3.45× the fastest +P-384 ECDH, ring on ovh-sea: 980.96 µs, 3.71× the fastest +P-384 ECDH, RustCrypto + dalek on nixos: 1.04 ms, 5.80× the fastest +P-384 ECDH, RustCrypto + dalek on desktop: 402.09 µs, 4.01× the fastest +P-384 ECDH, RustCrypto + dalek on nixos2: 769.61 µs, 5.10× the fastest +P-384 ECDH, RustCrypto + dalek on kixtop: 488.31 µs, 5.42× the fastest +P-384 ECDH, RustCrypto + dalek on ovh-iad: 1.23 ms, 4.16× the fastest +P-384 ECDH, RustCrypto + dalek on ovh-sea: 1.20 ms, 4.56× the fastest +P-384 ECDH, graviola on nixos: 302.57 µs, 1.68× the fastest +P-384 ECDH, graviola on desktop: 174.12 µs, 1.74× the fastest +P-384 ECDH, graviola on nixos2: 245.24 µs, 1.62× the fastest +P-384 ECDH, graviola on kixtop: 150.93 µs, 1.67× the fastest +P-384 ECDH, OpenSSL on nixos: 656.67 µs, 3.65× the fastest +P-384 ECDH, OpenSSL on desktop: 265.21 µs, 2.65× the fastest +P-384 ECDH, OpenSSL on nixos2: 483.50 µs, 3.20× the fastest +P-384 ECDH, OpenSSL on kixtop: 280.83 µs, 3.12× the fastest +P-384 ECDH, OpenSSL on ovh-iad: 860.17 µs, 2.91× the fastest +P-384 ECDH, OpenSSL on ovh-sea: 765.55 µs, 2.90× the fastest P-384 ECDSA sign P-384 ECDSA sign, rind on nixos: 53.07 µs, 1.00× the fastest -P-384 ECDSA sign, rind on desktop: 23.53 µs, 1.00× the fastest +P-384 ECDSA sign, rind on desktop: 23.48 µs, 1.00× the fastest P-384 ECDSA sign, rind on nixos2: 39.62 µs, 1.00× the fastest -P-384 ECDSA sign, rind on kixtop: 22.93 µs, 1.00× the fastest +P-384 ECDSA sign, rind on kixtop: 22.30 µs, 1.00× the fastest P-384 ECDSA sign, rind on ovh-iad: 71.60 µs, 1.00× the fastest P-384 ECDSA sign, rind on ovh-sea: 67.08 µs, 1.00× the fastest -P-384 ECDSA sign, aws-lc-rs on nixos: 97.47 µs, 1.84× the fastest -P-384 ECDSA sign, aws-lc-rs on desktop: 46.52 µs, 1.98× the fastest -P-384 ECDSA sign, aws-lc-rs on nixos2: 82.65 µs, 2.09× the fastest -P-384 ECDSA sign, aws-lc-rs on kixtop: 49.16 µs, 2.14× the fastest -P-384 ECDSA sign, aws-lc-rs on ovh-iad: 127.99 µs, 1.79× the fastest -P-384 ECDSA sign, aws-lc-rs on ovh-sea: 126.33 µs, 1.88× the fastest -P-384 ECDSA sign, ring on nixos: 474.64 µs, 8.94× the fastest -P-384 ECDSA sign, ring on desktop: 200.86 µs, 8.54× the fastest -P-384 ECDSA sign, ring on nixos2: 343.16 µs, 8.66× the fastest -P-384 ECDSA sign, ring on kixtop: 223.72 µs, 9.76× the fastest -P-384 ECDSA sign, ring on ovh-iad: 549.99 µs, 7.68× the fastest -P-384 ECDSA sign, ring on ovh-sea: 534.87 µs, 7.97× the fastest -P-384 ECDSA sign, RustCrypto + dalek on nixos: 238.31 µs, 4.49× the fastest -P-384 ECDSA sign, RustCrypto + dalek on desktop: 86.86 µs, 3.69× the fastest -P-384 ECDSA sign, RustCrypto + dalek on nixos2: 170.64 µs, 4.31× the fastest -P-384 ECDSA sign, RustCrypto + dalek on kixtop: 112.64 µs, 4.91× the fastest -P-384 ECDSA sign, RustCrypto + dalek on ovh-iad: 268.38 µs, 3.75× the fastest -P-384 ECDSA sign, RustCrypto + dalek on ovh-sea: 262.54 µs, 3.91× the fastest -P-384 ECDSA sign, graviola on nixos: 185.15 µs, 3.49× the fastest -P-384 ECDSA sign, graviola on desktop: 90.69 µs, 3.85× the fastest -P-384 ECDSA sign, graviola on nixos2: 128.64 µs, 3.25× the fastest -P-384 ECDSA sign, graviola on kixtop: 81.12 µs, 3.54× the fastest -P-384 ECDSA sign, OpenSSL on nixos: 235.52 µs, 4.44× the fastest -P-384 ECDSA sign, OpenSSL on desktop: 89.64 µs, 3.81× the fastest -P-384 ECDSA sign, OpenSSL on nixos2: 164.53 µs, 4.15× the fastest -P-384 ECDSA sign, OpenSSL on kixtop: 104.84 µs, 4.57× the fastest -P-384 ECDSA sign, OpenSSL on ovh-iad: 272.00 µs, 3.80× the fastest -P-384 ECDSA sign, OpenSSL on ovh-sea: 253.00 µs, 3.77× the fastest +P-384 ECDSA sign, aws-lc-rs on nixos: 97.47 µs, 1.84× the fastest +P-384 ECDSA sign, aws-lc-rs on desktop: 46.55 µs, 1.98× the fastest +P-384 ECDSA sign, aws-lc-rs on nixos2: 82.65 µs, 2.09× the fastest +P-384 ECDSA sign, aws-lc-rs on kixtop: 49.21 µs, 2.21× the fastest +P-384 ECDSA sign, aws-lc-rs on ovh-iad: 127.99 µs, 1.79× the fastest +P-384 ECDSA sign, aws-lc-rs on ovh-sea: 126.33 µs, 1.88× the fastest +P-384 ECDSA sign, ring on nixos: 474.64 µs, 8.94× the fastest +P-384 ECDSA sign, ring on desktop: 197.31 µs, 8.40× the fastest +P-384 ECDSA sign, ring on nixos2: 343.16 µs, 8.66× the fastest +P-384 ECDSA sign, ring on kixtop: 222.34 µs, 9.97× the fastest +P-384 ECDSA sign, ring on ovh-iad: 549.99 µs, 7.68× the fastest +P-384 ECDSA sign, ring on ovh-sea: 534.87 µs, 7.97× the fastest +P-384 ECDSA sign, RustCrypto + dalek on nixos: 238.31 µs, 4.49× the fastest +P-384 ECDSA sign, RustCrypto + dalek on desktop: 85.50 µs, 3.64× the fastest +P-384 ECDSA sign, RustCrypto + dalek on nixos2: 170.64 µs, 4.31× the fastest +P-384 ECDSA sign, RustCrypto + dalek on kixtop: 111.89 µs, 5.02× the fastest +P-384 ECDSA sign, RustCrypto + dalek on ovh-iad: 268.38 µs, 3.75× the fastest +P-384 ECDSA sign, RustCrypto + dalek on ovh-sea: 262.54 µs, 3.91× the fastest +P-384 ECDSA sign, graviola on nixos: 185.15 µs, 3.49× the fastest +P-384 ECDSA sign, graviola on desktop: 90.29 µs, 3.85× the fastest +P-384 ECDSA sign, graviola on nixos2: 128.64 µs, 3.25× the fastest +P-384 ECDSA sign, graviola on kixtop: 80.22 µs, 3.60× the fastest +P-384 ECDSA sign, OpenSSL on nixos: 235.52 µs, 4.44× the fastest +P-384 ECDSA sign, OpenSSL on desktop: 88.98 µs, 3.79× the fastest +P-384 ECDSA sign, OpenSSL on nixos2: 164.53 µs, 4.15× the fastest +P-384 ECDSA sign, OpenSSL on kixtop: 102.69 µs, 4.60× the fastest +P-384 ECDSA sign, OpenSSL on ovh-iad: 272.00 µs, 3.80× the fastest +P-384 ECDSA sign, OpenSSL on ovh-sea: 253.00 µs, 3.77× the fastest P-384 ECDSA verify P-384 ECDSA verify, rind on nixos: 157.33 µs, 1.00× the fastest -P-384 ECDSA verify, rind on desktop: 98.87 µs, 1.00× the fastest +P-384 ECDSA verify, rind on desktop: 100.10 µs, 1.00× the fastest P-384 ECDSA verify, rind on nixos2: 141.44 µs, 1.00× the fastest -P-384 ECDSA verify, rind on kixtop: 88.12 µs, 1.00× the fastest +P-384 ECDSA verify, rind on kixtop: 84.01 µs, 1.00× the fastest P-384 ECDSA verify, rind on ovh-iad: 255.43 µs, 1.00× the fastest P-384 ECDSA verify, rind on ovh-sea: 247.76 µs, 1.00× the fastest -P-384 ECDSA verify, aws-lc-rs on nixos: 199.21 µs, 1.27× the fastest -P-384 ECDSA verify, aws-lc-rs on desktop: 116.66 µs, 1.18× the fastest -P-384 ECDSA verify, aws-lc-rs on nixos2: 175.92 µs, 1.24× the fastest -P-384 ECDSA verify, aws-lc-rs on kixtop: 111.27 µs, 1.26× the fastest -P-384 ECDSA verify, aws-lc-rs on ovh-iad: 316.06 µs, 1.24× the fastest -P-384 ECDSA verify, aws-lc-rs on ovh-sea: 299.75 µs, 1.21× the fastest -P-384 ECDSA verify, ring on nixos: 727.10 µs, 4.62× the fastest -P-384 ECDSA verify, ring on desktop: 360.29 µs, 3.64× the fastest -P-384 ECDSA verify, ring on nixos2: 622.90 µs, 4.40× the fastest -P-384 ECDSA verify, ring on kixtop: 396.57 µs, 4.50× the fastest -P-384 ECDSA verify, ring on ovh-iad: 1.00 ms, 3.92× the fastest -P-384 ECDSA verify, ring on ovh-sea: 951.59 µs, 3.84× the fastest -P-384 ECDSA verify, RustCrypto + dalek on nixos: 872.06 µs, 5.54× the fastest -P-384 ECDSA verify, RustCrypto + dalek on desktop: 360.21 µs, 3.64× the fastest -P-384 ECDSA verify, RustCrypto + dalek on nixos2: 695.04 µs, 4.91× the fastest -P-384 ECDSA verify, RustCrypto + dalek on kixtop: 426.43 µs, 4.84× the fastest -P-384 ECDSA verify, RustCrypto + dalek on ovh-iad: 1.08 ms, 4.21× the fastest -P-384 ECDSA verify, RustCrypto + dalek on ovh-sea: 1.05 ms, 4.23× the fastest -P-384 ECDSA verify, graviola on nixos: 315.99 µs, 2.01× the fastest -P-384 ECDSA verify, graviola on desktop: 167.40 µs, 1.69× the fastest -P-384 ECDSA verify, graviola on nixos2: 239.41 µs, 1.69× the fastest -P-384 ECDSA verify, graviola on kixtop: 151.78 µs, 1.72× the fastest -P-384 ECDSA verify, OpenSSL on nixos: 551.89 µs, 3.51× the fastest -P-384 ECDSA verify, OpenSSL on desktop: 215.86 µs, 2.18× the fastest -P-384 ECDSA verify, OpenSSL on nixos2: 399.63 µs, 2.83× the fastest -P-384 ECDSA verify, OpenSSL on kixtop: 238.33 µs, 2.70× the fastest -P-384 ECDSA verify, OpenSSL on ovh-iad: 652.34 µs, 2.55× the fastest -P-384 ECDSA verify, OpenSSL on ovh-sea: 612.24 µs, 2.47× the fastest +P-384 ECDSA verify, aws-lc-rs on nixos: 199.21 µs, 1.27× the fastest +P-384 ECDSA verify, aws-lc-rs on desktop: 115.71 µs, 1.16× the fastest +P-384 ECDSA verify, aws-lc-rs on nixos2: 175.92 µs, 1.24× the fastest +P-384 ECDSA verify, aws-lc-rs on kixtop: 110.79 µs, 1.32× the fastest +P-384 ECDSA verify, aws-lc-rs on ovh-iad: 316.06 µs, 1.24× the fastest +P-384 ECDSA verify, aws-lc-rs on ovh-sea: 299.75 µs, 1.21× the fastest +P-384 ECDSA verify, ring on nixos: 727.10 µs, 4.62× the fastest +P-384 ECDSA verify, ring on desktop: 357.26 µs, 3.57× the fastest +P-384 ECDSA verify, ring on nixos2: 622.90 µs, 4.40× the fastest +P-384 ECDSA verify, ring on kixtop: 397.21 µs, 4.73× the fastest +P-384 ECDSA verify, ring on ovh-iad: 1.00 ms, 3.92× the fastest +P-384 ECDSA verify, ring on ovh-sea: 951.59 µs, 3.84× the fastest +P-384 ECDSA verify, RustCrypto + dalek on nixos: 872.06 µs, 5.54× the fastest +P-384 ECDSA verify, RustCrypto + dalek on desktop: 359.61 µs, 3.59× the fastest +P-384 ECDSA verify, RustCrypto + dalek on nixos2: 695.04 µs, 4.91× the fastest +P-384 ECDSA verify, RustCrypto + dalek on kixtop: 422.13 µs, 5.02× the fastest +P-384 ECDSA verify, RustCrypto + dalek on ovh-iad: 1.08 ms, 4.21× the fastest +P-384 ECDSA verify, RustCrypto + dalek on ovh-sea: 1.05 ms, 4.23× the fastest +P-384 ECDSA verify, graviola on nixos: 315.99 µs, 2.01× the fastest +P-384 ECDSA verify, graviola on desktop: 166.49 µs, 1.66× the fastest +P-384 ECDSA verify, graviola on nixos2: 239.41 µs, 1.69× the fastest +P-384 ECDSA verify, graviola on kixtop: 148.92 µs, 1.77× the fastest +P-384 ECDSA verify, OpenSSL on nixos: 551.89 µs, 3.51× the fastest +P-384 ECDSA verify, OpenSSL on desktop: 216.27 µs, 2.16× the fastest +P-384 ECDSA verify, OpenSSL on nixos2: 399.63 µs, 2.83× the fastest +P-384 ECDSA verify, OpenSSL on kixtop: 237.68 µs, 2.83× the fastest +P-384 ECDSA verify, OpenSSL on ovh-iad: 652.34 µs, 2.55× the fastest +P-384 ECDSA verify, OpenSSL on ovh-sea: 612.24 µs, 2.47× the fastest P-521 ECDH P-521 ECDH, rind on nixos: 283.91 µs, 1.00× the fastest -P-521 ECDH, rind on desktop: 160.77 µs, 1.00× the fastest +P-521 ECDH, rind on desktop: 159.57 µs, 1.00× the fastest P-521 ECDH, rind on nixos2: 233.76 µs, 1.00× the fastest -P-521 ECDH, rind on kixtop: 130.92 µs, 1.00× the fastest +P-521 ECDH, rind on kixtop: 129.82 µs, 1.00× the fastest P-521 ECDH, rind on ovh-iad: 467.34 µs, 1.00× the fastest P-521 ECDH, rind on ovh-sea: 442.81 µs, 1.00× the fastest -P-521 ECDH, aws-lc-rs on nixos: 288.17 µs, 1.01× the fastest -P-521 ECDH, aws-lc-rs on desktop: 170.98 µs, 1.06× the fastest -P-521 ECDH, aws-lc-rs on nixos2: 262.34 µs, 1.12× the fastest -P-521 ECDH, aws-lc-rs on kixtop: 143.20 µs, 1.09× the fastest -P-521 ECDH, aws-lc-rs on ovh-iad: 510.81 µs, 1.09× the fastest -P-521 ECDH, aws-lc-rs on ovh-sea: 479.78 µs, 1.08× the fastest -P-521 ECDH, RustCrypto + dalek on nixos: 868.41 µs, 3.06× the fastest -P-521 ECDH, RustCrypto + dalek on desktop: 431.17 µs, 2.68× the fastest -P-521 ECDH, RustCrypto + dalek on nixos2: 841.50 µs, 3.60× the fastest -P-521 ECDH, RustCrypto + dalek on kixtop: 397.10 µs, 3.03× the fastest -P-521 ECDH, RustCrypto + dalek on ovh-iad: 1.39 ms, 2.97× the fastest -P-521 ECDH, RustCrypto + dalek on ovh-sea: 1.19 ms, 2.68× the fastest -P-521 ECDH, OpenSSL on nixos: 505.62 µs, 1.78× the fastest -P-521 ECDH, OpenSSL on desktop: 276.21 µs, 1.72× the fastest -P-521 ECDH, OpenSSL on nixos2: 497.39 µs, 2.13× the fastest -P-521 ECDH, OpenSSL on kixtop: 247.22 µs, 1.89× the fastest -P-521 ECDH, OpenSSL on ovh-iad: 750.80 µs, 1.61× the fastest -P-521 ECDH, OpenSSL on ovh-sea: 722.01 µs, 1.63× the fastest +P-521 ECDH, aws-lc-rs on nixos: 288.17 µs, 1.01× the fastest +P-521 ECDH, aws-lc-rs on desktop: 171.50 µs, 1.07× the fastest +P-521 ECDH, aws-lc-rs on nixos2: 262.34 µs, 1.12× the fastest +P-521 ECDH, aws-lc-rs on kixtop: 142.27 µs, 1.10× the fastest +P-521 ECDH, aws-lc-rs on ovh-iad: 510.81 µs, 1.09× the fastest +P-521 ECDH, aws-lc-rs on ovh-sea: 479.78 µs, 1.08× the fastest +P-521 ECDH, RustCrypto + dalek on nixos: 868.41 µs, 3.06× the fastest +P-521 ECDH, RustCrypto + dalek on desktop: 428.27 µs, 2.68× the fastest +P-521 ECDH, RustCrypto + dalek on nixos2: 841.50 µs, 3.60× the fastest +P-521 ECDH, RustCrypto + dalek on kixtop: 396.28 µs, 3.05× the fastest +P-521 ECDH, RustCrypto + dalek on ovh-iad: 1.39 ms, 2.97× the fastest +P-521 ECDH, RustCrypto + dalek on ovh-sea: 1.19 ms, 2.68× the fastest +P-521 ECDH, OpenSSL on nixos: 505.62 µs, 1.78× the fastest +P-521 ECDH, OpenSSL on desktop: 276.64 µs, 1.73× the fastest +P-521 ECDH, OpenSSL on nixos2: 497.39 µs, 2.13× the fastest +P-521 ECDH, OpenSSL on kixtop: 247.04 µs, 1.90× the fastest +P-521 ECDH, OpenSSL on ovh-iad: 750.80 µs, 1.61× the fastest +P-521 ECDH, OpenSSL on ovh-sea: 722.01 µs, 1.63× the fastest P-521 ECDSA sign P-521 ECDSA sign, rind on nixos: 58.32 µs, 1.00× the fastest -P-521 ECDSA sign, rind on desktop: 40.56 µs, 1.00× the fastest +P-521 ECDSA sign, rind on desktop: 40.09 µs, 1.00× the fastest P-521 ECDSA sign, rind on nixos2: 64.26 µs, 1.00× the fastest -P-521 ECDSA sign, rind on kixtop: 36.32 µs, 1.00× the fastest +P-521 ECDSA sign, rind on kixtop: 36.25 µs, 1.00× the fastest P-521 ECDSA sign, rind on ovh-iad: 132.36 µs, 1.00× the fastest P-521 ECDSA sign, rind on ovh-sea: 116.50 µs, 1.00× the fastest -P-521 ECDSA sign, aws-lc-rs on nixos: 152.35 µs, 2.61× the fastest -P-521 ECDSA sign, aws-lc-rs on desktop: 89.64 µs, 2.21× the fastest -P-521 ECDSA sign, aws-lc-rs on nixos2: 158.67 µs, 2.47× the fastest -P-521 ECDSA sign, aws-lc-rs on kixtop: 84.33 µs, 2.32× the fastest -P-521 ECDSA sign, aws-lc-rs on ovh-iad: 279.63 µs, 2.11× the fastest -P-521 ECDSA sign, aws-lc-rs on ovh-sea: 256.02 µs, 2.20× the fastest -P-521 ECDSA sign, RustCrypto + dalek on nixos: 177.47 µs, 3.04× the fastest -P-521 ECDSA sign, RustCrypto + dalek on desktop: 95.29 µs, 2.35× the fastest -P-521 ECDSA sign, RustCrypto + dalek on nixos2: 185.93 µs, 2.89× the fastest -P-521 ECDSA sign, RustCrypto + dalek on kixtop: 79.73 µs, 2.20× the fastest -P-521 ECDSA sign, RustCrypto + dalek on ovh-iad: 302.65 µs, 2.29× the fastest -P-521 ECDSA sign, RustCrypto + dalek on ovh-sea: 287.24 µs, 2.47× the fastest -P-521 ECDSA sign, OpenSSL on nixos: 219.60 µs, 3.77× the fastest -P-521 ECDSA sign, OpenSSL on desktop: 129.20 µs, 3.19× the fastest -P-521 ECDSA sign, OpenSSL on nixos2: 221.00 µs, 3.44× the fastest -P-521 ECDSA sign, OpenSSL on kixtop: 132.13 µs, 3.64× the fastest -P-521 ECDSA sign, OpenSSL on ovh-iad: 359.52 µs, 2.72× the fastest -P-521 ECDSA sign, OpenSSL on ovh-sea: 344.79 µs, 2.96× the fastest +P-521 ECDSA sign, aws-lc-rs on nixos: 152.35 µs, 2.61× the fastest +P-521 ECDSA sign, aws-lc-rs on desktop: 88.28 µs, 2.20× the fastest +P-521 ECDSA sign, aws-lc-rs on nixos2: 158.67 µs, 2.47× the fastest +P-521 ECDSA sign, aws-lc-rs on kixtop: 84.10 µs, 2.32× the fastest +P-521 ECDSA sign, aws-lc-rs on ovh-iad: 279.63 µs, 2.11× the fastest +P-521 ECDSA sign, aws-lc-rs on ovh-sea: 256.02 µs, 2.20× the fastest +P-521 ECDSA sign, RustCrypto + dalek on nixos: 177.47 µs, 3.04× the fastest +P-521 ECDSA sign, RustCrypto + dalek on desktop: 94.09 µs, 2.35× the fastest +P-521 ECDSA sign, RustCrypto + dalek on nixos2: 185.93 µs, 2.89× the fastest +P-521 ECDSA sign, RustCrypto + dalek on kixtop: 80.09 µs, 2.21× the fastest +P-521 ECDSA sign, RustCrypto + dalek on ovh-iad: 302.65 µs, 2.29× the fastest +P-521 ECDSA sign, RustCrypto + dalek on ovh-sea: 287.24 µs, 2.47× the fastest +P-521 ECDSA sign, OpenSSL on nixos: 219.60 µs, 3.77× the fastest +P-521 ECDSA sign, OpenSSL on desktop: 127.93 µs, 3.19× the fastest +P-521 ECDSA sign, OpenSSL on nixos2: 221.00 µs, 3.44× the fastest +P-521 ECDSA sign, OpenSSL on kixtop: 132.31 µs, 3.65× the fastest +P-521 ECDSA sign, OpenSSL on ovh-iad: 359.52 µs, 2.72× the fastest +P-521 ECDSA sign, OpenSSL on ovh-sea: 344.79 µs, 2.96× the fastest P-521 ECDSA verify P-521 ECDSA verify, rind on nixos: 222.28 µs, 1.00× the fastest -P-521 ECDSA verify, rind on desktop: 147.09 µs, 1.00× the fastest +P-521 ECDSA verify, rind on desktop: 145.10 µs, 1.00× the fastest P-521 ECDSA verify, rind on nixos2: 214.43 µs, 1.00× the fastest -P-521 ECDSA verify, rind on kixtop: 121.06 µs, 1.00× the fastest +P-521 ECDSA verify, rind on kixtop: 120.99 µs, 1.00× the fastest P-521 ECDSA verify, rind on ovh-iad: 423.15 µs, 1.00× the fastest P-521 ECDSA verify, rind on ovh-sea: 402.02 µs, 1.00× the fastest -P-521 ECDSA verify, aws-lc-rs on nixos: 327.35 µs, 1.47× the fastest -P-521 ECDSA verify, aws-lc-rs on desktop: 186.61 µs, 1.27× the fastest -P-521 ECDSA verify, aws-lc-rs on nixos2: 303.23 µs, 1.41× the fastest -P-521 ECDSA verify, aws-lc-rs on kixtop: 167.21 µs, 1.38× the fastest -P-521 ECDSA verify, aws-lc-rs on ovh-iad: 547.94 µs, 1.29× the fastest -P-521 ECDSA verify, aws-lc-rs on ovh-sea: 519.35 µs, 1.29× the fastest -P-521 ECDSA verify, RustCrypto + dalek on nixos: 610.17 µs, 2.75× the fastest -P-521 ECDSA verify, RustCrypto + dalek on desktop: 359.57 µs, 2.44× the fastest -P-521 ECDSA verify, RustCrypto + dalek on nixos2: 636.37 µs, 2.97× the fastest -P-521 ECDSA verify, RustCrypto + dalek on kixtop: 253.06 µs, 2.09× the fastest -P-521 ECDSA verify, RustCrypto + dalek on ovh-iad: 1.01 ms, 2.38× the fastest -P-521 ECDSA verify, RustCrypto + dalek on ovh-sea: 975.40 µs, 2.43× the fastest -P-521 ECDSA verify, OpenSSL on nixos: 473.66 µs, 2.13× the fastest -P-521 ECDSA verify, OpenSSL on desktop: 267.51 µs, 1.82× the fastest -P-521 ECDSA verify, OpenSSL on nixos2: 460.02 µs, 2.15× the fastest -P-521 ECDSA verify, OpenSSL on kixtop: 254.80 µs, 2.10× the fastest -P-521 ECDSA verify, OpenSSL on ovh-iad: 740.33 µs, 1.75× the fastest -P-521 ECDSA verify, OpenSSL on ovh-sea: 699.48 µs, 1.74× the fastest +P-521 ECDSA verify, aws-lc-rs on nixos: 327.35 µs, 1.47× the fastest +P-521 ECDSA verify, aws-lc-rs on desktop: 186.69 µs, 1.29× the fastest +P-521 ECDSA verify, aws-lc-rs on nixos2: 303.23 µs, 1.41× the fastest +P-521 ECDSA verify, aws-lc-rs on kixtop: 166.73 µs, 1.38× the fastest +P-521 ECDSA verify, aws-lc-rs on ovh-iad: 547.94 µs, 1.29× the fastest +P-521 ECDSA verify, aws-lc-rs on ovh-sea: 519.35 µs, 1.29× the fastest +P-521 ECDSA verify, RustCrypto + dalek on nixos: 610.17 µs, 2.75× the fastest +P-521 ECDSA verify, RustCrypto + dalek on desktop: 352.95 µs, 2.43× the fastest +P-521 ECDSA verify, RustCrypto + dalek on nixos2: 636.37 µs, 2.97× the fastest +P-521 ECDSA verify, RustCrypto + dalek on kixtop: 251.97 µs, 2.08× the fastest +P-521 ECDSA verify, RustCrypto + dalek on ovh-iad: 1.01 ms, 2.38× the fastest +P-521 ECDSA verify, RustCrypto + dalek on ovh-sea: 975.40 µs, 2.43× the fastest +P-521 ECDSA verify, OpenSSL on nixos: 473.66 µs, 2.13× the fastest +P-521 ECDSA verify, OpenSSL on desktop: 261.10 µs, 1.80× the fastest +P-521 ECDSA verify, OpenSSL on nixos2: 460.02 µs, 2.15× the fastest +P-521 ECDSA verify, OpenSSL on kixtop: 254.26 µs, 2.10× the fastest +P-521 ECDSA verify, OpenSSL on ovh-iad: 740.33 µs, 1.75× the fastest +P-521 ECDSA verify, OpenSSL on ovh-sea: 699.48 µs, 1.74× the fastest diff --git a/quest/m1/README.md b/quest/m1/README.md index 53800c614..0368a3ae5 100644 --- a/quest/m1/README.md +++ b/quest/m1/README.md @@ -11,5 +11,4 @@ Bun's fastest asymmetric operations run on rind, ahead of Bun writing its own. - [Bun runs its fastest asymmetric crypto on rind](/quest/m1/bun.md) - Ed25519, X25519, P-384, and P-521 in Bun on rind, before Bun writes its own - [The launch post can say what building rind cost in AI tokens, time, and money](/quest/m1/ai-usage.md) - tokens, agent and maintainer hours, and API-price cost, before the post - [rind's launch blog post is published](/quest/m1/launch-post.md) - the Bun PR waits on it -- [The bench report has a quiet Arrow Lake run and kixtop's build cost](/quest/m1/bench-apple-m4.md) - a fresh desktop column and M4 build costs before the launch post - [rind covers MoQ](/quest/m1/moq/README.md) - the primitives, CPU check, armv7 backend, and `rind-*` adapters MoQ needs, verified and released diff --git a/quest/m1/bench-apple-m4.md b/quest/m1/bench-apple-m4.md deleted file mode 100644 index ecb6da1df..000000000 --- a/quest/m1/bench-apple-m4.md +++ /dev/null @@ -1,16 +0,0 @@ -# [XS] The bench report has a quiet Arrow Lake run and kixtop's build cost - -## Goal - -`BENCHMARKS.md`'s `desktop` (Arrow Lake) column comes from a fresh run that `admin/bench-report` doesn't flag as noisy, and `kixtop` (Apple M4) has a build-cost table and a rind (DIT held) column, before the launch post. Every gap either opens a speed quest or gets a recorded reason in `benchmarks/gaps.toml`. - -## Plan - -What remains of adding `kixtop` to the report, which [moq-dev/rind#435](https://github.com/moq-dev/rind/pull/435) did. The [end-of-m2 refresh](/quest/m3/bench-report-refresh.md)'s settled choices (libraries, hosts, the ✓ rule, the triage rule) apply here unchanged. - -- Re-collect `desktop` with `admin/bench-report collect --host desktop`. The `rustls-bulk/aes128-gcm` and `xchacha20poly1305/1350B` gaps there are recorded as noise awaiting a recheck, so drop or triage them. -- Re-collect `kixtop` too, since `collect` measures speed and build cost together; rerun noisy rows rather than recording noise. -- On 2026-11-07, `collect` refused `desktop` three times: 16.8, 4.7, and 5.3 of its 24 CPUs were busy, against a limit of 2.4, from other sessions' builds outside any gate. One attempt waited an hour for its host hold: the `quest` those sessions run predates [moq-dev/quest#526](https://github.com/moq-dev/quest/pull/526), so their gated commands were admitted past it. `kixtop` measured quietly on the second of two runs, but both runs' build costs were refused, at 11.6 and 6.6 of its 10 CPUs busy. - -- Decided with the maintainer on 2026-11-07: run it at about 5 am Pacific, when no session is building on `desktop` or `kixtop`; a scheduled agent starts it then. Those hosts' `quest` still predates [moq-dev/quest#526](https://github.com/moq-dev/quest/pull/526), so the host hold can't keep other sessions out; if `collect` still refuses a host as busy, record the load and stop, rather than waiting on the hold. -- The `kixtop` re-collect adds the rind (DIT held) column, which [moq-dev/rind#441](https://github.com/moq-dev/rind/pull/441) times on CPUs with DIT, so import a quiet run even without a build cost. Its held times replace the noisy `ec4b720d` figures the DIT gap's reason in `benchmarks/gaps.toml` cites. If that PR has not merged when the run starts, collect `kixtop` again once it has.