lockstitch 0.7.0

Lockstitch is an incremental, stateful cryptographic primitive for symmetric-key cryptographic operations in complex protocols.
Documentation
# Performance

## `x86_64` (GCP `n2-standard-4`, Intel Ice Lake, `+aes,+ssse3`)

```text
hash/16B                time:   [149.81 ns 149.93 ns 150.06 ns]
                        thrpt:  [101.68 MiB/s 101.77 MiB/s 101.86 MiB/s]
hash/256B               time:   [349.10 ns 349.30 ns 349.54 ns]
                        thrpt:  [698.46 MiB/s 698.94 MiB/s 699.35 MiB/s]
hash/1KiB               time:   [930.84 ns 931.50 ns 932.26 ns]
                        thrpt:  [1.0230 GiB/s 1.0238 GiB/s 1.0245 GiB/s]
hash/16KiB              time:   [12.560 µs 12.566 µs 12.573 µs]
                        thrpt:  [1.2136 GiB/s 1.2143 GiB/s 1.2148 GiB/s]
hash/1MiB               time:   [862.61 µs 866.48 µs 870.23 µs]
                        thrpt:  [1.1222 GiB/s 1.1271 GiB/s 1.1321 GiB/s]

prf/16B                 time:   [147.68 ns 147.77 ns 147.87 ns]
                        thrpt:  [103.19 MiB/s 103.26 MiB/s 103.33 MiB/s]
prf/256B                time:   [159.37 ns 159.47 ns 159.58 ns]
                        thrpt:  [1.4941 GiB/s 1.4951 GiB/s 1.4960 GiB/s]
prf/1KiB                time:   [202.63 ns 202.73 ns 202.86 ns]
                        thrpt:  [4.7012 GiB/s 4.7041 GiB/s 4.7065 GiB/s]
prf/16KiB               time:   [1.1910 µs 1.1924 µs 1.1940 µs]
                        thrpt:  [12.779 GiB/s 12.796 GiB/s 12.812 GiB/s]
prf/1MiB                time:   [67.491 µs 67.584 µs 67.682 µs]
                        thrpt:  [14.429 GiB/s 14.450 GiB/s 14.469 GiB/s]

stream/16B              time:   [290.60 ns 290.95 ns 291.33 ns]
                        thrpt:  [52.377 MiB/s 52.445 MiB/s 52.507 MiB/s]
stream/256B             time:   [303.10 ns 303.21 ns 303.33 ns]
                        thrpt:  [804.87 MiB/s 805.19 MiB/s 805.49 MiB/s]
stream/1KiB             time:   [356.88 ns 357.05 ns 357.25 ns]
                        thrpt:  [2.6695 GiB/s 2.6710 GiB/s 2.6723 GiB/s]
stream/16KiB            time:   [1.4098 µs 1.4107 µs 1.4117 µs]
                        thrpt:  [10.809 GiB/s 10.817 GiB/s 10.824 GiB/s]
stream/1MiB             time:   [72.744 µs 72.863 µs 72.986 µs]
                        thrpt:  [13.380 GiB/s 13.403 GiB/s 13.425 GiB/s]

aead/16B                time:   [300.31 ns 300.49 ns 300.71 ns]
                        thrpt:  [50.743 MiB/s 50.779 MiB/s 50.811 MiB/s]
aead/256B               time:   [312.80 ns 312.89 ns 312.99 ns]
                        thrpt:  [780.02 MiB/s 780.28 MiB/s 780.49 MiB/s]
aead/1KiB               time:   [364.74 ns 365.04 ns 365.42 ns]
                        thrpt:  [2.6098 GiB/s 2.6125 GiB/s 2.6146 GiB/s]
aead/16KiB              time:   [1.4197 µs 1.4208 µs 1.4221 µs]
                        thrpt:  [10.730 GiB/s 10.740 GiB/s 10.748 GiB/s]
aead/1MiB               time:   [72.788 µs 72.838 µs 72.902 µs]
                        thrpt:  [13.396 GiB/s 13.407 GiB/s 13.416 GiB/s]
```

## `aarch64` (Apple M2 Air 2022)

```text
hash/16B                time:   [125.83 ns 126.04 ns 126.27 ns]
                        thrpt:  [120.84 MiB/s 121.06 MiB/s 121.26 MiB/s]
hash/256B               time:   [229.50 ns 230.25 ns 231.05 ns]
                        thrpt:  [1.0319 GiB/s 1.0355 GiB/s 1.0389 GiB/s]
hash/1KiB               time:   [569.37 ns 571.65 ns 574.03 ns]
                        thrpt:  [1.6614 GiB/s 1.6683 GiB/s 1.6750 GiB/s]
hash/16KiB              time:   [7.2963 µs 7.3259 µs 7.3567 µs]
                        thrpt:  [2.0741 GiB/s 2.0828 GiB/s 2.0913 GiB/s]
hash/1MiB               time:   [457.78 µs 461.74 µs 466.65 µs]
                        thrpt:  [2.0927 GiB/s 2.1150 GiB/s 2.1333 GiB/s]

prf/16B                 time:   [123.37 ns 124.37 ns 125.50 ns]
                        thrpt:  [121.58 MiB/s 122.69 MiB/s 123.69 MiB/s]
prf/256B                time:   [148.18 ns 151.09 ns 154.87 ns]
                        thrpt:  [1.5395 GiB/s 1.5780 GiB/s 1.6090 GiB/s]
prf/1KiB                time:   [194.99 ns 195.17 ns 195.38 ns]
                        thrpt:  [4.8812 GiB/s 4.8864 GiB/s 4.8909 GiB/s]
prf/16KiB               time:   [1.1498 µs 1.1507 µs 1.1519 µs]
                        thrpt:  [13.247 GiB/s 13.260 GiB/s 13.271 GiB/s]
prf/1MiB                time:   [71.181 µs 71.535 µs 71.920 µs]
                        thrpt:  [13.578 GiB/s 13.652 GiB/s 13.719 GiB/s]

stream/16B              time:   [225.11 ns 225.86 ns 226.63 ns]
                        thrpt:  [67.328 MiB/s 67.560 MiB/s 67.784 MiB/s]
stream/256B             time:   [245.29 ns 245.82 ns 246.44 ns]
                        thrpt:  [990.67 MiB/s 993.17 MiB/s 995.33 MiB/s]
stream/1KiB             time:   [305.40 ns 305.72 ns 306.15 ns]
                        thrpt:  [3.1150 GiB/s 3.1194 GiB/s 3.1227 GiB/s]
stream/16KiB            time:   [1.5011 µs 1.5022 µs 1.5035 µs]
                        thrpt:  [10.149 GiB/s 10.158 GiB/s 10.165 GiB/s]
stream/1MiB             time:   [86.080 µs 86.182 µs 86.294 µs]
                        thrpt:  [11.317 GiB/s 11.331 GiB/s 11.345 GiB/s]

aead/16B                time:   [223.06 ns 223.35 ns 223.76 ns]
                        thrpt:  [68.192 MiB/s 68.317 MiB/s 68.406 MiB/s]
aead/256B               time:   [242.15 ns 242.25 ns 242.37 ns]
                        thrpt:  [1007.3 MiB/s 1007.8 MiB/s 1008.2 MiB/s]
aead/1KiB               time:   [316.91 ns 326.41 ns 338.41 ns]
                        thrpt:  [2.8181 GiB/s 2.9217 GiB/s 3.0093 GiB/s]
aead/16KiB              time:   [1.4976 µs 1.4987 µs 1.4998 µs]
                        thrpt:  [10.174 GiB/s 10.182 GiB/s 10.189 GiB/s]
aead/1MiB               time:   [86.031 µs 86.099 µs 86.192 µs]
                        thrpt:  [11.330 GiB/s 11.342 GiB/s 11.351 GiB/s]
```