Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

crypto: refactor to avoid unsafe array iteration #37364

Merged
merged 1 commit into from
Feb 19, 2021

Conversation

aduh95
Copy link
Contributor

@aduh95 aduh95 commented Feb 13, 2021

No description provided.

@nodejs-github-bot nodejs-github-bot added the lib / src Issues and PRs related to general changes in the lib or src directory. label Feb 13, 2021
@aduh95
Copy link
Contributor Author

aduh95 commented Feb 13, 2021

Benchmark CI: https://ci.nodejs.org/view/Node.js%20benchmark/job/benchmark-node-micro-benchmarks/948/

EDIT: Overall perf looks good.

                                                                                                               confidence improvement accuracy (*)    (**)   (***)
crypto/cipher-stream.jsapi='legacy' len=1048576 type='utf' cipher='AES256' writes=500                                   *     -6.73 %       ±6.35%  ±8.47% ±11.06%
crypto/cipher-stream.jsapi='legacy' len=2 type='utf' cipher='AES192' writes=500                                         *      5.66 %       ±5.64%  ±7.52%  ±9.80%
crypto/cipher-stream.jsapi='stream' len=1048576 type='buf' cipher='AES192' writes=500                                   *      5.90 %       ±5.26%  ±7.00%  ±9.12%
crypto/cipher-stream.jsapi='stream' len=2 type='utf' cipher='AES192' writes=500                                         *    -10.01 %       ±8.78% ±11.73% ±15.37%
crypto/hash-stream-creation.jsapi='legacy' len=102400 out='binary' type='asc' algo='md5' writes=500                   ***      6.51 %       ±3.64%  ±4.85%  ±6.31%
crypto/hash-stream-creation.jsapi='legacy' len=1024 out='buffer' type='utf' algo='sha256' writes=500                    *     -4.35 %       ±3.76%  ±5.01%  ±6.52%
crypto/hash-stream-creation.jsapi='legacy' len=1024 out='hex' type='buf' algo='md5' writes=500                         **     -7.38 %       ±5.42%  ±7.24%  ±9.49%
crypto/hash-stream-creation.jsapi='legacy' len=1024 out='hex' type='utf' algo='sha256' writes=500                       *      7.62 %       ±6.94%  ±9.28% ±12.16%
crypto/hash-stream-creation.jsapi='legacy' len=1048576 out='buffer' type='buf' algo='md5' writes=500                    *     -2.97 %       ±2.55%  ±3.40%  ±4.42%
crypto/hash-stream-creation.jsapi='legacy' len=1048576 out='buffer' type='utf' algo='md5' writes=500                    *     -2.58 %       ±2.34%  ±3.12%  ±4.07%
crypto/hash-stream-throughput.jsapi='legacy' len=102400 type='buf' algo='sha1' writes=500                               *     -4.05 %       ±3.59%  ±4.78%  ±6.22%
crypto/hash-stream-throughput.jsapi='legacy' len=2 type='asc' algo='sha1' writes=500                                    *      5.99 %       ±4.69%  ±6.25%  ±8.17%
crypto/hash-stream-throughput.jsapi='stream' len=102400 type='asc' algo='sha512' writes=500                             *     -3.60 %       ±2.88%  ±3.83%  ±4.99%
crypto/hash-stream-throughput.jsapi='stream' len=1048576 type='buf' algo='sha256' writes=500                            *     -1.92 %       ±1.65%  ±2.21%  ±2.91%
crypto/hkdf.jsn=1000 hash='sha256' info='info' salt='' key='a' size=10 sync=1                                           *      9.59 %       ±8.72% ±11.60% ±15.11%
crypto/hkdf.jsn=1000 hash='sha256' info='info' salt='' key='a' size=64 sync=1                                          **     10.72 %       ±6.36%  ±8.46% ±11.02%
crypto/hkdf.jsn=1000 hash='sha256' info='info' salt='' key='secret' size=10 sync=1                                      *      8.36 %       ±8.33% ±11.08% ±14.43%
crypto/hkdf.jsn=1000 hash='sha256' info='info' salt='' key='secret' size=64 sync=1                                      *      8.94 %       ±6.84%  ±9.11% ±11.87%
crypto/hkdf.jsn=1000 hash='sha256' info='info' salt='' key='this-is-a-much-longer-secret' size=1024 sync=1              *      8.02 %       ±6.21%  ±8.26% ±10.75%
crypto/hkdf.jsn=1000 hash='sha256' info='info' salt='' key='this-is-a-much-longer-secret' size=10 sync=1                *     10.30 %       ±9.51% ±12.69% ±16.59%
crypto/hkdf.jsn=1000 hash='sha256' info='info' salt='' key='this-is-a-much-longer-secret' size=64 sync=1                *      7.75 %       ±7.70% ±10.26% ±13.36%
crypto/hkdf.jsn=1000 hash='sha256' info='info' salt='salt' key='a' size=1024 sync=1                                     *      7.21 %       ±6.26%  ±8.33% ±10.84%
crypto/hkdf.jsn=1000 hash='sha256' info='info' salt='salt' key='a' size=10 sync=1                                       *     13.82 %      ±10.82% ±14.40% ±18.75%
crypto/hkdf.jsn=1000 hash='sha256' info='info' salt='salt' key='a' size=64 sync=1                                     ***     13.38 %       ±5.09%  ±6.78%  ±8.83%
crypto/hkdf.jsn=1000 hash='sha256' info='info' salt='salt' key='secret' size=1024 sync=1                                *      9.98 %       ±8.13% ±10.82% ±14.08%
crypto/hkdf.jsn=1000 hash='sha256' info='info' salt='salt' key='secret' size=10 sync=1                                  *     11.30 %       ±8.97% ±11.94% ±15.55%
crypto/hkdf.jsn=1000 hash='sha256' info='info' salt='salt' key='secret' size=64 sync=1                                ***     15.49 %       ±8.06% ±10.72% ±13.96%
crypto/hkdf.jsn=1000 hash='sha256' info='info' salt='salt' key='this-is-a-much-longer-secret' size=1024 sync=1        ***     13.69 %       ±5.47%  ±7.29%  ±9.51%
crypto/hkdf.jsn=1000 hash='sha256' info='info' salt='salt' key='this-is-a-much-longer-secret' size=10 sync=1          ***     16.70 %       ±8.21% ±10.93% ±14.24%
crypto/hkdf.jsn=1000 hash='sha256' info='info' salt='salt' key='this-is-a-much-longer-secret' size=64 sync=1            *      8.50 %       ±7.22%  ±9.60% ±12.50%
crypto/hkdf.jsn=1000 hash='sha256' info='' salt='salt' key='a' size=1024 sync=1                                        **     10.72 %       ±6.59%  ±8.77% ±11.41%
crypto/hkdf.jsn=1000 hash='sha256' info='' salt='salt' key='a' size=10 sync=1                                          **     14.02 %      ±10.28% ±13.70% ±17.86%
crypto/hkdf.jsn=1000 hash='sha256' info='' salt='salt' key='a' size=64 sync=1                                          **     14.12 %       ±9.84% ±13.14% ±17.19%
crypto/hkdf.jsn=1000 hash='sha256' info='' salt='salt' key='secret' size=1024 sync=1                                  ***     11.11 %       ±5.90%  ±7.86% ±10.25%
crypto/hkdf.jsn=1000 hash='sha256' info='' salt='salt' key='secret' size=64 sync=1                                    ***     14.88 %       ±7.44%  ±9.93% ±12.99%
crypto/hkdf.jsn=1000 hash='sha256' info='' salt='salt' key='this-is-a-much-longer-secret' size=1024 sync=1              *      6.08 %       ±5.78%  ±7.69% ±10.02%
crypto/hkdf.jsn=1000 hash='sha256' info='' salt='salt' key='this-is-a-much-longer-secret' size=10 sync=1               **     13.93 %       ±8.09% ±10.77% ±14.03%
crypto/hkdf.jsn=1000 hash='sha512' info='info' salt='' key='secret' size=1024 sync=1                                    *      7.21 %       ±5.86%  ±7.81% ±10.17%
crypto/hkdf.jsn=1000 hash='sha512' info='info' salt='' key='secret' size=10 sync=1                                     **     10.93 %       ±7.67% ±10.21% ±13.31%
crypto/hkdf.jsn=1000 hash='sha512' info='info' salt='' key='this-is-a-much-longer-secret' size=10 sync=1                *      7.30 %       ±6.99%  ±9.31% ±12.12%
crypto/hkdf.jsn=1000 hash='sha512' info='info' salt='salt' key='a' size=10 sync=1                                      **     13.25 %       ±8.15% ±10.86% ±14.15%
crypto/hkdf.jsn=1000 hash='sha512' info='info' salt='salt' key='a' size=64 sync=1                                       *      7.74 %       ±6.41%  ±8.52% ±11.10%
crypto/hkdf.jsn=1000 hash='sha512' info='info' salt='salt' key='secret' size=1024 sync=1                               **      8.83 %       ±5.48%  ±7.30%  ±9.50%
crypto/hkdf.jsn=1000 hash='sha512' info='info' salt='salt' key='secret' size=10 sync=1                                  *      9.42 %       ±9.39% ±12.49% ±16.26%
crypto/hkdf.jsn=1000 hash='sha512' info='info' salt='salt' key='this-is-a-much-longer-secret' size=1024 sync=1         **      8.08 %       ±5.84%  ±7.78% ±10.15%
crypto/hkdf.jsn=1000 hash='sha512' info='info' salt='salt' key='this-is-a-much-longer-secret' size=10 sync=1          ***     15.25 %       ±6.96%  ±9.28% ±12.11%
crypto/hkdf.jsn=1000 hash='sha512' info='info' salt='salt' key='this-is-a-much-longer-secret' size=64 sync=1            *      8.97 %       ±7.77% ±10.34% ±13.48%
crypto/hkdf.jsn=1000 hash='sha512' info='' salt='salt' key='a' size=1024 sync=0                                         *      8.79 %       ±7.87% ±10.50% ±13.70%
crypto/hkdf.jsn=1000 hash='sha512' info='' salt='salt' key='a' size=64 sync=1                                         ***     11.94 %       ±5.74%  ±7.64%  ±9.95%
crypto/hkdf.jsn=1000 hash='sha512' info='' salt='salt' key='secret' size=1024 sync=1                                    *      8.67 %       ±6.93%  ±9.23% ±12.03%
crypto/hkdf.jsn=1000 hash='sha512' info='' salt='salt' key='secret' size=64 sync=1                                     **      9.94 %       ±7.16%  ±9.53% ±12.41%
crypto/hkdf.jsn=1000 hash='sha512' info='' salt='salt' key='this-is-a-much-longer-secret' size=1024 sync=1            ***     13.80 %       ±6.47%  ±8.62% ±11.26%
crypto/hkdf.jsn=1000 hash='sha512' info='' salt='salt' key='this-is-a-much-longer-secret' size=10 sync=1                *     10.72 %       ±8.64% ±11.51% ±14.99%
crypto/hkdf.jsn=1000 hash='sha512' info='' salt='salt' key='this-is-a-much-longer-secret' size=64 sync=1              ***     19.75 %      ±10.25% ±13.70% ±17.98%
crypto/rsa-sign-verify-throughput.jslen=1024 keylen='2048' algo='SHA256' writes=500                                     *    -11.63 %      ±11.07% ±14.88% ±19.70%
crypto/webcrypto-digest.jsn=1000 method='SHA-384' data=10 sync='createHash'                                             *     -9.02 %       ±8.63% ±11.48% ±14.95%
                                                                                                               confidence improvement accuracy (*)    (**)   (***)
crypto/aes-gcm-throughput.jslen=1024 cipher='aes-128-gcm' n=500                                                                1.80 %       ±8.04% ±10.69% ±13.92%
crypto/aes-gcm-throughput.jslen=1024 cipher='aes-192-gcm' n=500                                                                2.51 %       ±6.12%  ±8.15% ±10.61%
crypto/aes-gcm-throughput.jslen=1024 cipher='aes-256-gcm' n=500                                                               -3.01 %       ±6.49%  ±8.64% ±11.26%
crypto/aes-gcm-throughput.jslen=1048576 cipher='aes-128-gcm' n=500                                                            -2.34 %       ±8.58% ±11.41% ±14.86%
crypto/aes-gcm-throughput.jslen=1048576 cipher='aes-192-gcm' n=500                                                            -1.51 %       ±7.49%  ±9.97% ±12.97%
crypto/aes-gcm-throughput.jslen=1048576 cipher='aes-256-gcm' n=500                                                            -3.04 %       ±8.22% ±10.94% ±14.24%
crypto/aes-gcm-throughput.jslen=16384 cipher='aes-128-gcm' n=500                                                               0.58 %       ±7.42%  ±9.89% ±12.88%
crypto/aes-gcm-throughput.jslen=16384 cipher='aes-192-gcm' n=500                                                               3.88 %       ±7.09%  ±9.44% ±12.28%
crypto/aes-gcm-throughput.jslen=16384 cipher='aes-256-gcm' n=500                                                               0.74 %       ±7.22%  ±9.62% ±12.53%
crypto/aes-gcm-throughput.jslen=262144 cipher='aes-128-gcm' n=500                                                              2.25 %       ±8.55% ±11.38% ±14.82%
crypto/aes-gcm-throughput.jslen=262144 cipher='aes-192-gcm' n=500                                                             -1.88 %       ±7.18%  ±9.56% ±12.45%
crypto/aes-gcm-throughput.jslen=262144 cipher='aes-256-gcm' n=500                                                             -2.03 %       ±7.45%  ±9.92% ±12.92%
crypto/aes-gcm-throughput.jslen=4096 cipher='aes-128-gcm' n=500                                                               -2.14 %       ±9.37% ±12.46% ±16.23%
crypto/aes-gcm-throughput.jslen=4096 cipher='aes-192-gcm' n=500                                                                6.31 %       ±8.11% ±10.79% ±14.06%
crypto/aes-gcm-throughput.jslen=4096 cipher='aes-256-gcm' n=500                                                               -2.67 %       ±8.03% ±10.68% ±13.91%
crypto/aes-gcm-throughput.jslen=65536 cipher='aes-128-gcm' n=500                                                               1.44 %       ±8.23% ±10.98% ±14.35%
crypto/aes-gcm-throughput.jslen=65536 cipher='aes-192-gcm' n=500                                                              -5.95 %       ±8.93% ±11.89% ±15.49%
crypto/aes-gcm-throughput.jslen=65536 cipher='aes-256-gcm' n=500                                                              -0.78 %       ±6.96%  ±9.26% ±12.06%
crypto/cipher-stream.jsapi='legacy' len=102400 type='asc' cipher='AES192' writes=500                                           3.19 %       ±6.07%  ±8.11% ±10.60%
crypto/cipher-stream.jsapi='legacy' len=102400 type='asc' cipher='AES256' writes=500                                           1.57 %       ±3.66%  ±4.87%  ±6.36%
crypto/cipher-stream.jsapi='legacy' len=102400 type='buf' cipher='AES192' writes=500                                          -1.91 %       ±4.92%  ±6.54%  ±8.52%
crypto/cipher-stream.jsapi='legacy' len=102400 type='buf' cipher='AES256' writes=500                                           4.31 %       ±9.23% ±12.37% ±16.29%
crypto/cipher-stream.jsapi='legacy' len=102400 type='utf' cipher='AES192' writes=500                                           0.84 %       ±4.24%  ±5.64%  ±7.34%
crypto/cipher-stream.jsapi='legacy' len=102400 type='utf' cipher='AES256' writes=500                                           1.66 %       ±5.50%  ±7.34%  ±9.58%
crypto/cipher-stream.jsapi='legacy' len=1024 type='asc' cipher='AES192' writes=500                                             2.40 %       ±6.28%  ±8.37% ±10.92%
crypto/cipher-stream.jsapi='legacy' len=1024 type='asc' cipher='AES256' writes=500                                             1.03 %       ±5.26%  ±6.99%  ±9.11%
crypto/cipher-stream.jsapi='legacy' len=1024 type='buf' cipher='AES192' writes=500                                            -0.38 %       ±5.26%  ±7.00%  ±9.11%
crypto/cipher-stream.jsapi='legacy' len=1024 type='buf' cipher='AES256' writes=500                                             1.77 %       ±6.45%  ±8.59% ±11.19%
crypto/cipher-stream.jsapi='legacy' len=1024 type='utf' cipher='AES192' writes=500                                             4.39 %       ±4.88%  ±6.50%  ±8.46%
crypto/cipher-stream.jsapi='legacy' len=1024 type='utf' cipher='AES256' writes=500                                            -0.61 %       ±4.53%  ±6.02%  ±7.85%
crypto/cipher-stream.jsapi='legacy' len=1048576 type='asc' cipher='AES192' writes=500                                          2.59 %       ±5.74%  ±7.64%  ±9.95%
crypto/cipher-stream.jsapi='legacy' len=1048576 type='asc' cipher='AES256' writes=500                                          0.06 %       ±5.16%  ±6.86%  ±8.94%
crypto/cipher-stream.jsapi='legacy' len=1048576 type='buf' cipher='AES192' writes=500                                          2.29 %       ±5.47%  ±7.28%  ±9.48%
crypto/cipher-stream.jsapi='legacy' len=1048576 type='buf' cipher='AES256' writes=500                                          1.16 %       ±6.00%  ±7.99% ±10.40%
crypto/cipher-stream.jsapi='legacy' len=1048576 type='utf' cipher='AES192' writes=500                                          5.21 %       ±7.28%  ±9.69% ±12.61%
crypto/cipher-stream.jsapi='legacy' len=1048576 type='utf' cipher='AES256' writes=500                                   *     -6.73 %       ±6.35%  ±8.47% ±11.06%
crypto/cipher-stream.jsapi='legacy' len=2 type='asc' cipher='AES192' writes=500                                                2.67 %       ±5.94%  ±7.94% ±10.41%
crypto/cipher-stream.jsapi='legacy' len=2 type='asc' cipher='AES256' writes=500                                               -2.08 %       ±6.83%  ±9.09% ±11.83%
crypto/cipher-stream.jsapi='legacy' len=2 type='buf' cipher='AES192' writes=500                                               -0.58 %       ±6.89%  ±9.17% ±11.94%
crypto/cipher-stream.jsapi='legacy' len=2 type='buf' cipher='AES256' writes=500                                               -0.92 %       ±5.47%  ±7.27%  ±9.47%
crypto/cipher-stream.jsapi='legacy' len=2 type='utf' cipher='AES192' writes=500                                         *      5.66 %       ±5.64%  ±7.52%  ±9.80%
crypto/cipher-stream.jsapi='legacy' len=2 type='utf' cipher='AES256' writes=500                                               -0.41 %       ±4.84%  ±6.44%  ±8.38%
crypto/cipher-stream.jsapi='stream' len=102400 type='asc' cipher='AES192' writes=500                                           0.38 %       ±4.42%  ±5.88%  ±7.66%
crypto/cipher-stream.jsapi='stream' len=102400 type='asc' cipher='AES256' writes=500                                           0.02 %       ±4.62%  ±6.14%  ±8.00%
crypto/cipher-stream.jsapi='stream' len=102400 type='buf' cipher='AES192' writes=500                                           2.12 %       ±3.42%  ±4.55%  ±5.92%
crypto/cipher-stream.jsapi='stream' len=102400 type='buf' cipher='AES256' writes=500                                          -4.02 %       ±6.45%  ±8.63% ±11.31%
crypto/cipher-stream.jsapi='stream' len=102400 type='utf' cipher='AES192' writes=500                                           2.74 %       ±5.45%  ±7.27%  ±9.49%
crypto/cipher-stream.jsapi='stream' len=102400 type='utf' cipher='AES256' writes=500                                          -0.98 %       ±5.85%  ±7.80% ±10.19%
crypto/cipher-stream.jsapi='stream' len=1024 type='asc' cipher='AES192' writes=500                                             6.38 %      ±10.96% ±14.62% ±19.09%
crypto/cipher-stream.jsapi='stream' len=1024 type='asc' cipher='AES256' writes=500                                            -5.35 %       ±8.98% ±11.95% ±15.56%
crypto/cipher-stream.jsapi='stream' len=1024 type='buf' cipher='AES192' writes=500                                            -7.04 %       ±8.53% ±11.35% ±14.78%
crypto/cipher-stream.jsapi='stream' len=1024 type='buf' cipher='AES256' writes=500                                            -0.20 %       ±8.92% ±11.86% ±15.44%
crypto/cipher-stream.jsapi='stream' len=1024 type='utf' cipher='AES192' writes=500                                             6.16 %       ±9.39% ±12.49% ±16.27%
crypto/cipher-stream.jsapi='stream' len=1024 type='utf' cipher='AES256' writes=500                                             3.38 %       ±9.21% ±12.26% ±15.96%
crypto/cipher-stream.jsapi='stream' len=1048576 type='asc' cipher='AES192' writes=500                                         -1.23 %       ±5.00%  ±6.66%  ±8.68%
crypto/cipher-stream.jsapi='stream' len=1048576 type='asc' cipher='AES256' writes=500                                          0.82 %       ±4.40%  ±5.85%  ±7.62%
crypto/cipher-stream.jsapi='stream' len=1048576 type='buf' cipher='AES192' writes=500                                   *      5.90 %       ±5.26%  ±7.00%  ±9.12%
crypto/cipher-stream.jsapi='stream' len=1048576 type='buf' cipher='AES256' writes=500                                         -0.54 %       ±4.07%  ±5.42%  ±7.05%
crypto/cipher-stream.jsapi='stream' len=1048576 type='utf' cipher='AES192' writes=500                                          0.75 %       ±6.47%  ±8.61% ±11.21%
crypto/cipher-stream.jsapi='stream' len=1048576 type='utf' cipher='AES256' writes=500                                         -0.18 %       ±6.44%  ±8.57% ±11.15%
crypto/cipher-stream.jsapi='stream' len=2 type='asc' cipher='AES192' writes=500                                               -4.20 %       ±8.11% ±10.81% ±14.09%
crypto/cipher-stream.jsapi='stream' len=2 type='asc' cipher='AES256' writes=500                                               -2.09 %       ±7.06%  ±9.40% ±12.23%
crypto/cipher-stream.jsapi='stream' len=2 type='buf' cipher='AES192' writes=500                                               -5.87 %       ±6.63%  ±8.82% ±11.47%
crypto/cipher-stream.jsapi='stream' len=2 type='buf' cipher='AES256' writes=500                                                3.21 %       ±8.45% ±11.26% ±14.67%
crypto/cipher-stream.jsapi='stream' len=2 type='utf' cipher='AES192' writes=500                                         *    -10.01 %       ±8.78% ±11.73% ±15.37%
crypto/cipher-stream.jsapi='stream' len=2 type='utf' cipher='AES256' writes=500                                               -2.79 %       ±8.54% ±11.39% ±14.86%
crypto/get-ciphers.jsv='crypto' n=1                                                                                           -2.15 %       ±5.57%  ±7.44%  ±9.73%
crypto/get-ciphers.jsv='crypto' n=5000                                                                                         0.15 %       ±5.80%  ±7.72% ±10.07%
crypto/get-ciphers.jsv='tls' n=1                                                                                               4.46 %       ±4.61%  ±6.15%  ±8.01%
crypto/get-ciphers.jsv='tls' n=5000                                                                                            6.22 %       ±7.12%  ±9.49% ±12.38%
crypto/hash-stream-creation.jsapi='legacy' len=102400 out='binary' type='asc' algo='md5' writes=500                   ***      6.51 %       ±3.64%  ±4.85%  ±6.31%
crypto/hash-stream-creation.jsapi='legacy' len=102400 out='binary' type='asc' algo='sha256' writes=500                         0.90 %       ±2.50%  ±3.33%  ±4.34%
crypto/hash-stream-creation.jsapi='legacy' len=102400 out='binary' type='buf' algo='md5' writes=500                            0.14 %       ±2.63%  ±3.50%  ±4.56%
crypto/hash-stream-creation.jsapi='legacy' len=102400 out='binary' type='buf' algo='sha256' writes=500                        -1.37 %       ±1.68%  ±2.24%  ±2.91%
crypto/hash-stream-creation.jsapi='legacy' len=102400 out='binary' type='utf' algo='md5' writes=500                           -0.68 %       ±2.00%  ±2.67%  ±3.48%
crypto/hash-stream-creation.jsapi='legacy' len=102400 out='binary' type='utf' algo='sha256' writes=500                         0.87 %       ±1.59%  ±2.13%  ±2.78%
crypto/hash-stream-creation.jsapi='legacy' len=102400 out='buffer' type='asc' algo='md5' writes=500                            2.12 %       ±3.78%  ±5.03%  ±6.56%
crypto/hash-stream-creation.jsapi='legacy' len=102400 out='buffer' type='asc' algo='sha256' writes=500                         2.56 %       ±3.48%  ±4.63%  ±6.02%
crypto/hash-stream-creation.jsapi='legacy' len=102400 out='buffer' type='buf' algo='md5' writes=500                           -1.54 %       ±2.31%  ±3.07%  ±3.99%
crypto/hash-stream-creation.jsapi='legacy' len=102400 out='buffer' type='buf' algo='sha256' writes=500                        -1.95 %       ±2.53%  ±3.36%  ±4.38%
crypto/hash-stream-creation.jsapi='legacy' len=102400 out='buffer' type='utf' algo='md5' writes=500                            2.97 %       ±3.58%  ±4.77%  ±6.21%
crypto/hash-stream-creation.jsapi='legacy' len=102400 out='buffer' type='utf' algo='sha256' writes=500                        -1.96 %       ±2.79%  ±3.72%  ±4.85%
crypto/hash-stream-creation.jsapi='legacy' len=102400 out='hex' type='asc' algo='md5' writes=500                              -1.34 %       ±4.34%  ±5.77%  ±7.51%
crypto/hash-stream-creation.jsapi='legacy' len=102400 out='hex' type='asc' algo='sha256' writes=500                            1.66 %       ±2.54%  ±3.38%  ±4.41%
crypto/hash-stream-creation.jsapi='legacy' len=102400 out='hex' type='buf' algo='md5' writes=500                              -1.33 %       ±4.10%  ±5.49%  ±7.22%
crypto/hash-stream-creation.jsapi='legacy' len=102400 out='hex' type='buf' algo='sha256' writes=500                           -0.84 %       ±2.16%  ±2.88%  ±3.75%
crypto/hash-stream-creation.jsapi='legacy' len=102400 out='hex' type='utf' algo='md5' writes=500                               1.41 %       ±2.40%  ±3.19%  ±4.16%
crypto/hash-stream-creation.jsapi='legacy' len=102400 out='hex' type='utf' algo='sha256' writes=500                            5.23 %       ±6.85%  ±9.21% ±12.18%
crypto/hash-stream-creation.jsapi='legacy' len=1024 out='binary' type='asc' algo='md5' writes=500                              3.78 %       ±6.28%  ±8.37% ±10.93%
crypto/hash-stream-creation.jsapi='legacy' len=1024 out='binary' type='asc' algo='sha256' writes=500                          -0.87 %       ±6.68%  ±8.88% ±11.56%
crypto/hash-stream-creation.jsapi='legacy' len=1024 out='binary' type='buf' algo='md5' writes=500                             -2.49 %       ±5.80%  ±7.72% ±10.05%
crypto/hash-stream-creation.jsapi='legacy' len=1024 out='binary' type='buf' algo='sha256' writes=500                           4.25 %       ±9.92% ±13.27% ±17.40%
crypto/hash-stream-creation.jsapi='legacy' len=1024 out='binary' type='utf' algo='md5' writes=500                             -1.24 %       ±3.62%  ±4.81%  ±6.26%
crypto/hash-stream-creation.jsapi='legacy' len=1024 out='binary' type='utf' algo='sha256' writes=500                          -3.51 %       ±5.08%  ±6.79%  ±8.89%
crypto/hash-stream-creation.jsapi='legacy' len=1024 out='buffer' type='asc' algo='md5' writes=500                              3.21 %       ±5.15%  ±6.86%  ±8.92%
crypto/hash-stream-creation.jsapi='legacy' len=1024 out='buffer' type='asc' algo='sha256' writes=500                          -1.69 %       ±7.88% ±10.53% ±13.81%
crypto/hash-stream-creation.jsapi='legacy' len=1024 out='buffer' type='buf' algo='md5' writes=500                             -0.71 %       ±4.90%  ±6.52%  ±8.49%
crypto/hash-stream-creation.jsapi='legacy' len=1024 out='buffer' type='buf' algo='sha256' writes=500                          -3.55 %       ±4.56%  ±6.08%  ±7.94%
crypto/hash-stream-creation.jsapi='legacy' len=1024 out='buffer' type='utf' algo='md5' writes=500                              1.21 %       ±4.42%  ±5.87%  ±7.65%
crypto/hash-stream-creation.jsapi='legacy' len=1024 out='buffer' type='utf' algo='sha256' writes=500                    *     -4.35 %       ±3.76%  ±5.01%  ±6.52%
crypto/hash-stream-creation.jsapi='legacy' len=1024 out='hex' type='asc' algo='md5' writes=500                                -0.75 %       ±6.46%  ±8.60% ±11.21%
crypto/hash-stream-creation.jsapi='legacy' len=1024 out='hex' type='asc' algo='sha256' writes=500                             -2.68 %       ±5.40%  ±7.19%  ±9.37%
crypto/hash-stream-creation.jsapi='legacy' len=1024 out='hex' type='buf' algo='md5' writes=500                         **     -7.38 %       ±5.42%  ±7.24%  ±9.49%
crypto/hash-stream-creation.jsapi='legacy' len=1024 out='hex' type='buf' algo='sha256' writes=500                             -0.20 %       ±5.68%  ±7.56%  ±9.84%
crypto/hash-stream-creation.jsapi='legacy' len=1024 out='hex' type='utf' algo='md5' writes=500                                -0.73 %       ±3.98%  ±5.30%  ±6.91%
crypto/hash-stream-creation.jsapi='legacy' len=1024 out='hex' type='utf' algo='sha256' writes=500                       *      7.62 %       ±6.94%  ±9.28% ±12.16%
crypto/hash-stream-creation.jsapi='legacy' len=1048576 out='binary' type='asc' algo='md5' writes=500                          -0.40 %       ±1.35%  ±1.80%  ±2.34%
crypto/hash-stream-creation.jsapi='legacy' len=1048576 out='binary' type='asc' algo='sha256' writes=500                       -0.52 %       ±1.17%  ±1.56%  ±2.03%
crypto/hash-stream-creation.jsapi='legacy' len=1048576 out='binary' type='buf' algo='md5' writes=500                          -1.14 %       ±2.56%  ±3.43%  ±4.51%
crypto/hash-stream-creation.jsapi='legacy' len=1048576 out='binary' type='buf' algo='sha256' writes=500                        1.36 %       ±1.92%  ±2.56%  ±3.35%
crypto/hash-stream-creation.jsapi='legacy' len=1048576 out='binary' type='utf' algo='md5' writes=500                          -0.15 %       ±1.58%  ±2.11%  ±2.76%
crypto/hash-stream-creation.jsapi='legacy' len=1048576 out='binary' type='utf' algo='sha256' writes=500                       -0.36 %       ±1.33%  ±1.79%  ±2.34%
crypto/hash-stream-creation.jsapi='legacy' len=1048576 out='buffer' type='asc' algo='md5' writes=500                           1.07 %       ±2.93%  ±3.90%  ±5.07%
crypto/hash-stream-creation.jsapi='legacy' len=1048576 out='buffer' type='asc' algo='sha256' writes=500                       -0.49 %       ±2.99%  ±3.98%  ±5.18%
crypto/hash-stream-creation.jsapi='legacy' len=1048576 out='buffer' type='buf' algo='md5' writes=500                    *     -2.97 %       ±2.55%  ±3.40%  ±4.42%
crypto/hash-stream-creation.jsapi='legacy' len=1048576 out='buffer' type='buf' algo='sha256' writes=500                       -1.02 %       ±2.16%  ±2.88%  ±3.75%
crypto/hash-stream-creation.jsapi='legacy' len=1048576 out='buffer' type='utf' algo='md5' writes=500                    *     -2.58 %       ±2.34%  ±3.12%  ±4.07%
crypto/hash-stream-creation.jsapi='legacy' len=1048576 out='buffer' type='utf' algo='sha256' writes=500                       -1.98 %       ±2.54%  ±3.38%  ±4.40%
crypto/hash-stream-creation.jsapi='legacy' len=1048576 out='hex' type='asc' algo='md5' writes=500                             -0.31 %       ±1.76%  ±2.34%  ±3.05%
crypto/hash-stream-creation.jsapi='legacy' len=1048576 out='hex' type='asc' algo='sha256' writes=500                           0.30 %       ±0.87%  ±1.16%  ±1.51%
crypto/hash-stream-creation.jsapi='legacy' len=1048576 out='hex' type='buf' algo='md5' writes=500                              0.67 %       ±2.07%  ±2.78%  ±3.66%
crypto/hash-stream-creation.jsapi='legacy' len=1048576 out='hex' type='buf' algo='sha256' writes=500                           0.41 %       ±0.93%  ±1.24%  ±1.61%
crypto/hash-stream-creation.jsapi='legacy' len=1048576 out='hex' type='utf' algo='md5' writes=500                              0.48 %       ±0.88%  ±1.17%  ±1.52%
crypto/hash-stream-creation.jsapi='legacy' len=1048576 out='hex' type='utf' algo='sha256' writes=500                           0.14 %       ±0.96%  ±1.28%  ±1.67%
crypto/hash-stream-creation.jsapi='legacy' len=2 out='binary' type='asc' algo='md5' writes=500                                -1.62 %       ±5.92%  ±7.88% ±10.26%
crypto/hash-stream-creation.jsapi='legacy' len=2 out='binary' type='asc' algo='sha256' writes=500                              6.05 %       ±8.74% ±11.70% ±15.38%
crypto/hash-stream-creation.jsapi='legacy' len=2 out='binary' type='buf' algo='md5' writes=500                                -1.61 %       ±4.50%  ±5.99%  ±7.80%
crypto/hash-stream-creation.jsapi='legacy' len=2 out='binary' type='buf' algo='sha256' writes=500                              2.11 %       ±9.73% ±13.00% ±17.03%
crypto/hash-stream-creation.jsapi='legacy' len=2 out='binary' type='utf' algo='md5' writes=500                                -0.08 %       ±4.56%  ±6.07%  ±7.91%
crypto/hash-stream-creation.jsapi='legacy' len=2 out='binary' type='utf' algo='sha256' writes=500                             -0.14 %       ±4.74%  ±6.32%  ±8.25%
crypto/hash-stream-creation.jsapi='legacy' len=2 out='buffer' type='asc' algo='md5' writes=500                                -5.45 %       ±7.86% ±10.50% ±13.74%
crypto/hash-stream-creation.jsapi='legacy' len=2 out='buffer' type='asc' algo='sha256' writes=500                              0.00 %       ±5.38%  ±7.15%  ±9.31%
crypto/hash-stream-creation.jsapi='legacy' len=2 out='buffer' type='buf' algo='md5' writes=500                                -3.17 %       ±8.29% ±11.09% ±14.54%
crypto/hash-stream-creation.jsapi='legacy' len=2 out='buffer' type='buf' algo='sha256' writes=500                              0.64 %       ±8.22% ±10.95% ±14.28%
crypto/hash-stream-creation.jsapi='legacy' len=2 out='buffer' type='utf' algo='md5' writes=500                                -2.10 %       ±6.11%  ±8.14% ±10.61%
crypto/hash-stream-creation.jsapi='legacy' len=2 out='buffer' type='utf' algo='sha256' writes=500                              0.46 %      ±10.59% ±14.14% ±18.49%
crypto/hash-stream-creation.jsapi='legacy' len=2 out='hex' type='asc' algo='md5' writes=500                                    3.37 %      ±10.43% ±14.03% ±18.56%
crypto/hash-stream-creation.jsapi='legacy' len=2 out='hex' type='asc' algo='sha256' writes=500                                 1.84 %       ±4.76%  ±6.34%  ±8.25%
crypto/hash-stream-creation.jsapi='legacy' len=2 out='hex' type='buf' algo='md5' writes=500                                    2.66 %       ±9.29% ±12.42% ±16.28%
crypto/hash-stream-creation.jsapi='legacy' len=2 out='hex' type='buf' algo='sha256' writes=500                                 9.49 %      ±10.96% ±14.72% ±19.42%
crypto/hash-stream-creation.jsapi='legacy' len=2 out='hex' type='utf' algo='md5' writes=500                                    6.19 %       ±7.83% ±10.49% ±13.81%
crypto/hash-stream-creation.jsapi='legacy' len=2 out='hex' type='utf' algo='sha256' writes=500                                 8.18 %      ±13.19% ±17.71% ±23.39%
crypto/hash-stream-creation.jsapi='stream' len=102400 out='binary' type='asc' algo='md5' writes=500                           -0.81 %       ±3.27%  ±4.36%  ±5.68%
crypto/hash-stream-creation.jsapi='stream' len=102400 out='binary' type='asc' algo='sha256' writes=500                         0.37 %       ±3.07%  ±4.09%  ±5.33%
crypto/hash-stream-creation.jsapi='stream' len=102400 out='binary' type='buf' algo='md5' writes=500                           -0.36 %       ±5.07%  ±6.75%  ±8.79%
crypto/hash-stream-creation.jsapi='stream' len=102400 out='binary' type='buf' algo='sha256' writes=500                         2.05 %       ±3.01%  ±4.00%  ±5.21%
crypto/hash-stream-creation.jsapi='stream' len=102400 out='binary' type='utf' algo='md5' writes=500                            1.23 %       ±4.02%  ±5.34%  ±6.95%
crypto/hash-stream-creation.jsapi='stream' len=102400 out='binary' type='utf' algo='sha256' writes=500                        -0.36 %       ±2.47%  ±3.29%  ±4.28%
crypto/hash-stream-creation.jsapi='stream' len=102400 out='buffer' type='asc' algo='md5' writes=500                            2.23 %       ±4.65%  ±6.19%  ±8.05%
crypto/hash-stream-creation.jsapi='stream' len=102400 out='buffer' type='asc' algo='sha256' writes=500                        -0.60 %       ±4.39%  ±5.85%  ±7.62%
crypto/hash-stream-creation.jsapi='stream' len=102400 out='buffer' type='buf' algo='md5' writes=500                           -1.71 %       ±4.39%  ±5.84%  ±7.60%
crypto/hash-stream-creation.jsapi='stream' len=102400 out='buffer' type='buf' algo='sha256' writes=500                        -3.23 %       ±3.59%  ±4.79%  ±6.24%
crypto/hash-stream-creation.jsapi='stream' len=102400 out='buffer' type='utf' algo='md5' writes=500                            0.24 %       ±3.79%  ±5.05%  ±6.57%
crypto/hash-stream-creation.jsapi='stream' len=102400 out='buffer' type='utf' algo='sha256' writes=500                        -2.60 %       ±3.29%  ±4.38%  ±5.72%
crypto/hash-stream-creation.jsapi='stream' len=102400 out='hex' type='asc' algo='md5' writes=500                               0.74 %       ±4.15%  ±5.52%  ±7.19%
crypto/hash-stream-creation.jsapi='stream' len=102400 out='hex' type='asc' algo='sha256' writes=500                            0.82 %       ±3.58%  ±4.76%  ±6.20%
crypto/hash-stream-creation.jsapi='stream' len=102400 out='hex' type='buf' algo='md5' writes=500                              -0.69 %       ±4.55%  ±6.06%  ±7.90%
crypto/hash-stream-creation.jsapi='stream' len=102400 out='hex' type='buf' algo='sha256' writes=500                            1.49 %       ±6.40%  ±8.57% ±11.25%
crypto/hash-stream-creation.jsapi='stream' len=102400 out='hex' type='utf' algo='md5' writes=500                              -0.87 %       ±3.06%  ±4.08%  ±5.32%
crypto/hash-stream-creation.jsapi='stream' len=102400 out='hex' type='utf' algo='sha256' writes=500                            1.47 %       ±2.79%  ±3.72%  ±4.84%
crypto/hash-stream-creation.jsapi='stream' len=1024 out='binary' type='asc' algo='md5' writes=500                              1.85 %       ±5.67%  ±7.56%  ±9.87%
crypto/hash-stream-creation.jsapi='stream' len=1024 out='binary' type='asc' algo='sha256' writes=500                          -2.42 %       ±5.30%  ±7.05%  ±9.17%
crypto/hash-stream-creation.jsapi='stream' len=1024 out='binary' type='buf' algo='md5' writes=500                             -0.52 %       ±4.88%  ±6.50%  ±8.48%
crypto/hash-stream-creation.jsapi='stream' len=1024 out='binary' type='buf' algo='sha256' writes=500                          -5.39 %       ±6.88%  ±9.16% ±11.93%
crypto/hash-stream-creation.jsapi='stream' len=1024 out='binary' type='utf' algo='md5' writes=500                              0.24 %       ±4.84%  ±6.44%  ±8.38%
crypto/hash-stream-creation.jsapi='stream' len=1024 out='binary' type='utf' algo='sha256' writes=500                           1.57 %       ±7.86% ±10.49% ±13.73%
crypto/hash-stream-creation.jsapi='stream' len=1024 out='buffer' type='asc' algo='md5' writes=500                              1.95 %       ±4.69%  ±6.24%  ±8.13%
crypto/hash-stream-creation.jsapi='stream' len=1024 out='buffer' type='asc' algo='sha256' writes=500                           4.76 %       ±6.30%  ±8.39% ±10.92%
crypto/hash-stream-creation.jsapi='stream' len=1024 out='buffer' type='buf' algo='md5' writes=500                              1.65 %       ±5.69%  ±7.57%  ±9.86%
crypto/hash-stream-creation.jsapi='stream' len=1024 out='buffer' type='buf' algo='sha256' writes=500                          -2.36 %       ±5.57%  ±7.42%  ±9.65%
crypto/hash-stream-creation.jsapi='stream' len=1024 out='buffer' type='utf' algo='md5' writes=500                             -0.57 %       ±5.33%  ±7.10%  ±9.24%
crypto/hash-stream-creation.jsapi='stream' len=1024 out='buffer' type='utf' algo='sha256' writes=500                           3.41 %       ±5.90%  ±7.86% ±10.25%
crypto/hash-stream-creation.jsapi='stream' len=1024 out='hex' type='asc' algo='md5' writes=500                                -1.43 %       ±5.75%  ±7.67% ±10.01%
crypto/hash-stream-creation.jsapi='stream' len=1024 out='hex' type='asc' algo='sha256' writes=500                             -2.46 %       ±4.60%  ±6.12%  ±7.98%
crypto/hash-stream-creation.jsapi='stream' len=1024 out='hex' type='buf' algo='md5' writes=500                                -0.56 %       ±4.51%  ±6.01%  ±7.82%
crypto/hash-stream-creation.jsapi='stream' len=1024 out='hex' type='buf' algo='sha256' writes=500                             -2.68 %       ±5.82%  ±7.75% ±10.10%
crypto/hash-stream-creation.jsapi='stream' len=1024 out='hex' type='utf' algo='md5' writes=500                                 1.25 %       ±5.32%  ±7.08%  ±9.22%
crypto/hash-stream-creation.jsapi='stream' len=1024 out='hex' type='utf' algo='sha256' writes=500                              2.42 %       ±6.09%  ±8.11% ±10.56%
crypto/hash-stream-creation.jsapi='stream' len=1048576 out='binary' type='asc' algo='md5' writes=500                           3.03 %       ±5.54%  ±7.37%  ±9.60%
crypto/hash-stream-creation.jsapi='stream' len=1048576 out='binary' type='asc' algo='sha256' writes=500                        2.40 %       ±4.07%  ±5.42%  ±7.05%
crypto/hash-stream-creation.jsapi='stream' len=1048576 out='binary' type='buf' algo='md5' writes=500                          -0.89 %       ±5.78%  ±7.70% ±10.04%
crypto/hash-stream-creation.jsapi='stream' len=1048576 out='binary' type='buf' algo='sha256' writes=500                        2.72 %       ±5.75%  ±7.66%  ±9.99%
crypto/hash-stream-creation.jsapi='stream' len=1048576 out='binary' type='utf' algo='md5' writes=500                          -0.55 %       ±4.70%  ±6.25%  ±8.14%
crypto/hash-stream-creation.jsapi='stream' len=1048576 out='binary' type='utf' algo='sha256' writes=500                       -1.59 %       ±4.07%  ±5.42%  ±7.06%
crypto/hash-stream-creation.jsapi='stream' len=1048576 out='buffer' type='asc' algo='md5' writes=500                           2.62 %       ±4.58%  ±6.09%  ±7.93%
crypto/hash-stream-creation.jsapi='stream' len=1048576 out='buffer' type='asc' algo='sha256' writes=500                        0.79 %       ±4.87%  ±6.47%  ±8.43%
crypto/hash-stream-creation.jsapi='stream' len=1048576 out='buffer' type='buf' algo='md5' writes=500                           1.53 %       ±4.25%  ±5.66%  ±7.37%
crypto/hash-stream-creation.jsapi='stream' len=1048576 out='buffer' type='buf' algo='sha256' writes=500                        3.45 %       ±4.81%  ±6.41%  ±8.36%
crypto/hash-stream-creation.jsapi='stream' len=1048576 out='buffer' type='utf' algo='md5' writes=500                           2.19 %       ±4.36%  ±5.80%  ±7.55%
crypto/hash-stream-creation.jsapi='stream' len=1048576 out='buffer' type='utf' algo='sha256' writes=500                        3.29 %       ±3.70%  ±4.93%  ±6.42%
crypto/hash-stream-creation.jsapi='stream' len=1048576 out='hex' type='asc' algo='md5' writes=500                              3.23 %       ±4.16%  ±5.54%  ±7.21%
crypto/hash-stream-creation.jsapi='stream' len=1048576 out='hex' type='asc' algo='sha256' writes=500                           2.13 %       ±3.82%  ±5.08%  ±6.61%
crypto/hash-stream-creation.jsapi='stream' len=1048576 out='hex' type='buf' algo='md5' writes=500                             -1.23 %       ±3.45%  ±4.59%  ±5.98%
crypto/hash-stream-creation.jsapi='stream' len=1048576 out='hex' type='buf' algo='sha256' writes=500                          -1.26 %       ±5.23%  ±6.96%  ±9.06%
crypto/hash-stream-creation.jsapi='stream' len=1048576 out='hex' type='utf' algo='md5' writes=500                              0.73 %       ±5.20%  ±6.92%  ±9.02%
crypto/hash-stream-creation.jsapi='stream' len=1048576 out='hex' type='utf' algo='sha256' writes=500                           4.00 %       ±4.06%  ±5.40%  ±7.03%
crypto/hash-stream-creation.jsapi='stream' len=2 out='binary' type='asc' algo='md5' writes=500                                -0.89 %       ±4.88%  ±6.49%  ±8.46%
crypto/hash-stream-creation.jsapi='stream' len=2 out='binary' type='asc' algo='sha256' writes=500                              0.30 %       ±5.72%  ±7.61%  ±9.90%
crypto/hash-stream-creation.jsapi='stream' len=2 out='binary' type='buf' algo='md5' writes=500                                 0.16 %       ±4.27%  ±5.68%  ±7.39%
crypto/hash-stream-creation.jsapi='stream' len=2 out='binary' type='buf' algo='sha256' writes=500                             -3.79 %       ±6.82%  ±9.08% ±11.82%
crypto/hash-stream-creation.jsapi='stream' len=2 out='binary' type='utf' algo='md5' writes=500                                 1.92 %       ±4.74%  ±6.30%  ±8.20%
crypto/hash-stream-creation.jsapi='stream' len=2 out='binary' type='utf' algo='sha256' writes=500                              0.01 %       ±5.44%  ±7.25%  ±9.44%
crypto/hash-stream-creation.jsapi='stream' len=2 out='buffer' type='asc' algo='md5' writes=500                                 2.95 %       ±7.19%  ±9.57% ±12.47%
crypto/hash-stream-creation.jsapi='stream' len=2 out='buffer' type='asc' algo='sha256' writes=500                              5.39 %       ±7.07%  ±9.42% ±12.30%
crypto/hash-stream-creation.jsapi='stream' len=2 out='buffer' type='buf' algo='md5' writes=500                                 0.77 %       ±4.16%  ±5.53%  ±7.21%
crypto/hash-stream-creation.jsapi='stream' len=2 out='buffer' type='buf' algo='sha256' writes=500                              2.28 %       ±7.70% ±10.27% ±13.41%
crypto/hash-stream-creation.jsapi='stream' len=2 out='buffer' type='utf' algo='md5' writes=500                                 0.47 %       ±6.80%  ±9.10% ±11.95%
crypto/hash-stream-creation.jsapi='stream' len=2 out='buffer' type='utf' algo='sha256' writes=500                              1.52 %       ±6.25%  ±8.32% ±10.83%
crypto/hash-stream-creation.jsapi='stream' len=2 out='hex' type='asc' algo='md5' writes=500                                   -1.93 %       ±4.74%  ±6.30%  ±8.21%
crypto/hash-stream-creation.jsapi='stream' len=2 out='hex' type='asc' algo='sha256' writes=500                                 1.12 %       ±5.96%  ±7.93% ±10.33%
crypto/hash-stream-creation.jsapi='stream' len=2 out='hex' type='buf' algo='md5' writes=500                                   -0.65 %       ±5.39%  ±7.17%  ±9.34%
crypto/hash-stream-creation.jsapi='stream' len=2 out='hex' type='buf' algo='sha256' writes=500                                 4.11 %       ±7.92% ±10.62% ±13.99%
crypto/hash-stream-creation.jsapi='stream' len=2 out='hex' type='utf' algo='md5' writes=500                                   -1.00 %       ±3.46%  ±4.61%  ±6.00%
crypto/hash-stream-creation.jsapi='stream' len=2 out='hex' type='utf' algo='sha256' writes=500                                 3.24 %       ±5.77%  ±7.69% ±10.04%
crypto/hash-stream-throughput.jsapi='legacy' len=102400 type='asc' algo='sha1' writes=500                                     -1.61 %       ±6.14%  ±8.24% ±10.87%
crypto/hash-stream-throughput.jsapi='legacy' len=102400 type='asc' algo='sha256' writes=500                                    0.58 %       ±1.78%  ±2.37%  ±3.08%
crypto/hash-stream-throughput.jsapi='legacy' len=102400 type='asc' algo='sha512' writes=500                                    1.64 %       ±2.16%  ±2.88%  ±3.75%
crypto/hash-stream-throughput.jsapi='legacy' len=102400 type='buf' algo='sha1' writes=500                               *     -4.05 %       ±3.59%  ±4.78%  ±6.22%
crypto/hash-stream-throughput.jsapi='legacy' len=102400 type='buf' algo='sha256' writes=500                                   -1.39 %       ±1.39%  ±1.86%  ±2.42%
crypto/hash-stream-throughput.jsapi='legacy' len=102400 type='buf' algo='sha512' writes=500                                   -0.37 %       ±2.33%  ±3.10%  ±4.04%
crypto/hash-stream-throughput.jsapi='legacy' len=102400 type='utf' algo='sha1' writes=500                                     -5.43 %       ±7.07%  ±9.50% ±12.56%
crypto/hash-stream-throughput.jsapi='legacy' len=102400 type='utf' algo='sha256' writes=500                                    1.88 %       ±3.11%  ±4.18%  ±5.53%
crypto/hash-stream-throughput.jsapi='legacy' len=102400 type='utf' algo='sha512' writes=500                                    0.59 %       ±1.65%  ±2.20%  ±2.87%
crypto/hash-stream-throughput.jsapi='legacy' len=1024 type='asc' algo='sha1' writes=500                                       -2.55 %       ±8.85% ±11.86% ±15.62%
crypto/hash-stream-throughput.jsapi='legacy' len=1024 type='asc' algo='sha256' writes=500                                     -2.01 %       ±9.21% ±12.28% ±16.04%
crypto/hash-stream-throughput.jsapi='legacy' len=1024 type='asc' algo='sha512' writes=500                                     -3.62 %       ±5.12%  ±6.83%  ±8.91%
crypto/hash-stream-throughput.jsapi='legacy' len=1024 type='buf' algo='sha1' writes=500                                        1.25 %       ±5.66%  ±7.53%  ±9.80%
crypto/hash-stream-throughput.jsapi='legacy' len=1024 type='buf' algo='sha256' writes=500                                     -1.55 %       ±5.19%  ±6.91%  ±9.00%
crypto/hash-stream-throughput.jsapi='legacy' len=1024 type='buf' algo='sha512' writes=500                                     10.13 %      ±12.71% ±17.10% ±22.64%
crypto/hash-stream-throughput.jsapi='legacy' len=1024 type='utf' algo='sha1' writes=500                                       -6.57 %       ±9.28% ±12.45% ±16.42%
crypto/hash-stream-throughput.jsapi='legacy' len=1024 type='utf' algo='sha256' writes=500                                      9.80 %      ±10.79% ±14.50% ±19.17%
crypto/hash-stream-throughput.jsapi='legacy' len=1024 type='utf' algo='sha512' writes=500                                      1.05 %       ±5.99%  ±7.98% ±10.38%
crypto/hash-stream-throughput.jsapi='legacy' len=1048576 type='asc' algo='sha1' writes=500                                    -0.34 %       ±3.56%  ±4.76%  ±6.24%
crypto/hash-stream-throughput.jsapi='legacy' len=1048576 type='asc' algo='sha256' writes=500                                   0.17 %       ±2.56%  ±3.43%  ±4.50%
crypto/hash-stream-throughput.jsapi='legacy' len=1048576 type='asc' algo='sha512' writes=500                                   0.27 %       ±1.78%  ±2.37%  ±3.09%
crypto/hash-stream-throughput.jsapi='legacy' len=1048576 type='buf' algo='sha1' writes=500                                     0.49 %       ±2.75%  ±3.66%  ±4.78%
crypto/hash-stream-throughput.jsapi='legacy' len=1048576 type='buf' algo='sha256' writes=500                                  -0.11 %       ±1.04%  ±1.38%  ±1.80%
crypto/hash-stream-throughput.jsapi='legacy' len=1048576 type='buf' algo='sha512' writes=500                                  -0.58 %       ±3.57%  ±4.80%  ±6.35%
crypto/hash-stream-throughput.jsapi='legacy' len=1048576 type='utf' algo='sha1' writes=500                                     1.37 %       ±2.75%  ±3.69%  ±4.88%
crypto/hash-stream-throughput.jsapi='legacy' len=1048576 type='utf' algo='sha256' writes=500                                  -0.09 %       ±0.93%  ±1.23%  ±1.61%
crypto/hash-stream-throughput.jsapi='legacy' len=1048576 type='utf' algo='sha512' writes=500                                  -0.08 %       ±1.17%  ±1.55%  ±2.03%
crypto/hash-stream-throughput.jsapi='legacy' len=2 type='asc' algo='sha1' writes=500                                    *      5.99 %       ±4.69%  ±6.25%  ±8.17%
crypto/hash-stream-throughput.jsapi='legacy' len=2 type='asc' algo='sha256' writes=500                                         2.51 %      ±13.65% ±18.19% ±23.74%
crypto/hash-stream-throughput.jsapi='legacy' len=2 type='asc' algo='sha512' writes=500                                         0.50 %       ±6.37%  ±8.48% ±11.03%
crypto/hash-stream-throughput.jsapi='legacy' len=2 type='buf' algo='sha1' writes=500                                           1.26 %       ±4.46%  ±5.94%  ±7.75%
crypto/hash-stream-throughput.jsapi='legacy' len=2 type='buf' algo='sha256' writes=500                                        -1.94 %       ±8.30% ±11.10% ±14.57%
crypto/hash-stream-throughput.jsapi='legacy' len=2 type='buf' algo='sha512' writes=500                                         6.28 %       ±9.35% ±12.52% ±16.47%
crypto/hash-stream-throughput.jsapi='legacy' len=2 type='utf' algo='sha1' writes=500                                          -9.95 %      ±15.27% ±20.38% ±26.64%
crypto/hash-stream-throughput.jsapi='legacy' len=2 type='utf' algo='sha256' writes=500                                        -0.15 %       ±4.50%  ±5.99%  ±7.80%
crypto/hash-stream-throughput.jsapi='legacy' len=2 type='utf' algo='sha512' writes=500                                         1.78 %       ±3.81%  ±5.09%  ±6.65%
crypto/hash-stream-throughput.jsapi='stream' len=102400 type='asc' algo='sha1' writes=500                                     -3.47 %       ±5.60%  ±7.48%  ±9.81%
crypto/hash-stream-throughput.jsapi='stream' len=102400 type='asc' algo='sha256' writes=500                                    1.16 %       ±6.05%  ±8.12% ±10.72%
crypto/hash-stream-throughput.jsapi='stream' len=102400 type='asc' algo='sha512' writes=500                             *     -3.60 %       ±2.88%  ±3.83%  ±4.99%
crypto/hash-stream-throughput.jsapi='stream' len=102400 type='buf' algo='sha1' writes=500                                     -1.57 %       ±2.29%  ±3.05%  ±3.97%
crypto/hash-stream-throughput.jsapi='stream' len=102400 type='buf' algo='sha256' writes=500                                    0.26 %       ±1.25%  ±1.66%  ±2.16%
crypto/hash-stream-throughput.jsapi='stream' len=102400 type='buf' algo='sha512' writes=500                                    1.37 %       ±2.29%  ±3.05%  ±3.99%
crypto/hash-stream-throughput.jsapi='stream' len=102400 type='utf' algo='sha1' writes=500                                     -1.33 %       ±1.79%  ±2.38%  ±3.11%
crypto/hash-stream-throughput.jsapi='stream' len=102400 type='utf' algo='sha256' writes=500                                    1.83 %       ±2.46%  ±3.30%  ±4.35%
crypto/hash-stream-throughput.jsapi='stream' len=102400 type='utf' algo='sha512' writes=500                                    0.05 %       ±1.78%  ±2.36%  ±3.08%
crypto/hash-stream-throughput.jsapi='stream' len=1024 type='asc' algo='sha1' writes=500                                       -0.19 %       ±4.12%  ±5.48%  ±7.14%
crypto/hash-stream-throughput.jsapi='stream' len=1024 type='asc' algo='sha256' writes=500                                      3.73 %       ±6.81%  ±9.06% ±11.80%
crypto/hash-stream-throughput.jsapi='stream' len=1024 type='asc' algo='sha512' writes=500                                     -0.86 %       ±8.69% ±11.58% ±15.11%
crypto/hash-stream-throughput.jsapi='stream' len=1024 type='buf' algo='sha1' writes=500                                        2.00 %       ±4.83%  ±6.43%  ±8.38%
crypto/hash-stream-throughput.jsapi='stream' len=1024 type='buf' algo='sha256' writes=500                                      1.57 %       ±5.79%  ±7.71% ±10.06%
crypto/hash-stream-throughput.jsapi='stream' len=1024 type='buf' algo='sha512' writes=500                                     -3.47 %       ±4.82%  ±6.41%  ±8.34%
crypto/hash-stream-throughput.jsapi='stream' len=1024 type='utf' algo='sha1' writes=500                                       -7.32 %       ±8.00% ±10.73% ±14.14%
crypto/hash-stream-throughput.jsapi='stream' len=1024 type='utf' algo='sha256' writes=500                                     -2.93 %       ±6.25%  ±8.33% ±10.88%
crypto/hash-stream-throughput.jsapi='stream' len=1024 type='utf' algo='sha512' writes=500                                      2.19 %       ±5.43%  ±7.22%  ±9.40%
crypto/hash-stream-throughput.jsapi='stream' len=1048576 type='asc' algo='sha1' writes=500                                    -0.73 %       ±5.65%  ±7.51%  ±9.78%
crypto/hash-stream-throughput.jsapi='stream' len=1048576 type='asc' algo='sha256' writes=500                                  -1.16 %       ±2.78%  ±3.70%  ±4.84%
crypto/hash-stream-throughput.jsapi='stream' len=1048576 type='asc' algo='sha512' writes=500                                  -0.11 %       ±2.37%  ±3.19%  ±4.21%
crypto/hash-stream-throughput.jsapi='stream' len=1048576 type='buf' algo='sha1' writes=500                                     0.45 %       ±3.40%  ±4.53%  ±5.92%
crypto/hash-stream-throughput.jsapi='stream' len=1048576 type='buf' algo='sha256' writes=500                            *     -1.92 %       ±1.65%  ±2.21%  ±2.91%
crypto/hash-stream-throughput.jsapi='stream' len=1048576 type='buf' algo='sha512' writes=500                                  -0.80 %       ±3.56%  ±4.74%  ±6.18%
crypto/hash-stream-throughput.jsapi='stream' len=1048576 type='utf' algo='sha1' writes=500                                    -0.76 %       ±2.05%  ±2.73%  ±3.57%
crypto/hash-stream-throughput.jsapi='stream' len=1048576 type='utf' algo='sha256' writes=500                                   0.46 %       ±2.58%  ±3.45%  ±4.54%
crypto/hash-stream-throughput.jsapi='stream' len=1048576 type='utf' algo='sha512' writes=500                                  -1.27 %       ±2.54%  ±3.39%  ±4.42%
crypto/hash-stream-throughput.jsapi='stream' len=2 type='asc' algo='sha1' writes=500                                          -3.10 %       ±8.27% ±11.08% ±14.59%
crypto/hash-stream-throughput.jsapi='stream' len=2 type='asc' algo='sha256' writes=500                                        -5.03 %       ±7.10%  ±9.52% ±12.53%
crypto/hash-stream-throughput.jsapi='stream' len=2 type='asc' algo='sha512' writes=500                                        -0.69 %       ±3.84%  ±5.12%  ±6.67%
crypto/hash-stream-throughput.jsapi='stream' len=2 type='buf' algo='sha1' writes=500                                           1.65 %       ±5.53%  ±7.36%  ±9.59%
crypto/hash-stream-throughput.jsapi='stream' len=2 type='buf' algo='sha256' writes=500                                         1.68 %       ±5.81%  ±7.74% ±10.08%
crypto/hash-stream-throughput.jsapi='stream' len=2 type='buf' algo='sha512' writes=500                                        -1.03 %       ±4.50%  ±5.99%  ±7.80%
crypto/hash-stream-throughput.jsapi='stream' len=2 type='utf' algo='sha1' writes=500                                           3.80 %       ±8.69% ±11.61% ±15.20%
crypto/hash-stream-throughput.jsapi='stream' len=2 type='utf' algo='sha256' writes=500                                         5.46 %       ±9.32% ±12.42% ±16.22%
crypto/hash-stream-throughput.jsapi='stream' len=2 type='utf' algo='sha512' writes=500                                         1.46 %       ±4.93%  ±6.56%  ±8.53%
crypto/hkdf.jsn=1000 hash='sha256' info='info' salt='' key='a' size=1024 sync=0                                               -0.48 %       ±7.98% ±10.62% ±13.83%
crypto/hkdf.jsn=1000 hash='sha256' info='info' salt='' key='a' size=1024 sync=1                                                2.45 %       ±6.59%  ±8.77% ±11.41%
crypto/hkdf.jsn=1000 hash='sha256' info='info' salt='' key='a' size=10 sync=0                                                 -3.70 %       ±5.83%  ±7.76% ±10.10%
crypto/hkdf.jsn=1000 hash='sha256' info='info' salt='' key='a' size=10 sync=1                                           *      9.59 %       ±8.72% ±11.60% ±15.11%
crypto/hkdf.jsn=1000 hash='sha256' info='info' salt='' key='a' size=64 sync=0                                                 -6.41 %       ±7.18%  ±9.56% ±12.44%
crypto/hkdf.jsn=1000 hash='sha256' info='info' salt='' key='a' size=64 sync=1                                          **     10.72 %       ±6.36%  ±8.46% ±11.02%
crypto/hkdf.jsn=1000 hash='sha256' info='info' salt='' key='secret' size=1024 sync=0                                           5.89 %       ±8.65% ±11.51% ±14.98%
crypto/hkdf.jsn=1000 hash='sha256' info='info' salt='' key='secret' size=1024 sync=1                                           2.35 %       ±5.47%  ±7.29%  ±9.50%
crypto/hkdf.jsn=1000 hash='sha256' info='info' salt='' key='secret' size=10 sync=0                                             0.31 %       ±8.66% ±11.53% ±15.00%
crypto/hkdf.jsn=1000 hash='sha256' info='info' salt='' key='secret' size=10 sync=1                                      *      8.36 %       ±8.33% ±11.08% ±14.43%
crypto/hkdf.jsn=1000 hash='sha256' info='info' salt='' key='secret' size=64 sync=0                                             1.68 %       ±8.65% ±11.51% ±14.99%
crypto/hkdf.jsn=1000 hash='sha256' info='info' salt='' key='secret' size=64 sync=1                                      *      8.94 %       ±6.84%  ±9.11% ±11.87%
crypto/hkdf.jsn=1000 hash='sha256' info='info' salt='' key='this-is-a-much-longer-secret' size=1024 sync=0                     2.29 %       ±9.14% ±12.16% ±15.84%
crypto/hkdf.jsn=1000 hash='sha256' info='info' salt='' key='this-is-a-much-longer-secret' size=1024 sync=1              *      8.02 %       ±6.21%  ±8.26% ±10.75%
crypto/hkdf.jsn=1000 hash='sha256' info='info' salt='' key='this-is-a-much-longer-secret' size=10 sync=0                      -2.73 %       ±7.40%  ±9.84% ±12.81%
crypto/hkdf.jsn=1000 hash='sha256' info='info' salt='' key='this-is-a-much-longer-secret' size=10 sync=1                *     10.30 %       ±9.51% ±12.69% ±16.59%
crypto/hkdf.jsn=1000 hash='sha256' info='info' salt='' key='this-is-a-much-longer-secret' size=64 sync=0                      -0.15 %       ±7.04%  ±9.38% ±12.23%
crypto/hkdf.jsn=1000 hash='sha256' info='info' salt='' key='this-is-a-much-longer-secret' size=64 sync=1                *      7.75 %       ±7.70% ±10.26% ±13.36%
crypto/hkdf.jsn=1000 hash='sha256' info='info' salt='salt' key='a' size=1024 sync=0                                           -6.22 %       ±8.33% ±11.09% ±14.47%
crypto/hkdf.jsn=1000 hash='sha256' info='info' salt='salt' key='a' size=1024 sync=1                                     *      7.21 %       ±6.26%  ±8.33% ±10.84%
crypto/hkdf.jsn=1000 hash='sha256' info='info' salt='salt' key='a' size=10 sync=0                                              7.20 %       ±7.27%  ±9.67% ±12.59%
crypto/hkdf.jsn=1000 hash='sha256' info='info' salt='salt' key='a' size=10 sync=1                                       *     13.82 %      ±10.82% ±14.40% ±18.75%
crypto/hkdf.jsn=1000 hash='sha256' info='info' salt='salt' key='a' size=64 sync=0                                              2.35 %       ±7.41%  ±9.86% ±12.83%
crypto/hkdf.jsn=1000 hash='sha256' info='info' salt='salt' key='a' size=64 sync=1                                     ***     13.38 %       ±5.09%  ±6.78%  ±8.83%
crypto/hkdf.jsn=1000 hash='sha256' info='info' salt='salt' key='secret' size=1024 sync=0                                       1.24 %       ±9.54% ±12.70% ±16.54%
crypto/hkdf.jsn=1000 hash='sha256' info='info' salt='salt' key='secret' size=1024 sync=1                                *      9.98 %       ±8.13% ±10.82% ±14.08%
crypto/hkdf.jsn=1000 hash='sha256' info='info' salt='salt' key='secret' size=10 sync=0                                        -1.28 %       ±7.48%  ±9.95% ±12.96%
crypto/hkdf.jsn=1000 hash='sha256' info='info' salt='salt' key='secret' size=10 sync=1                                  *     11.30 %       ±8.97% ±11.94% ±15.55%
crypto/hkdf.jsn=1000 hash='sha256' info='info' salt='salt' key='secret' size=64 sync=0                                         0.96 %       ±8.13% ±10.81% ±14.07%
crypto/hkdf.jsn=1000 hash='sha256' info='info' salt='salt' key='secret' size=64 sync=1                                ***     15.49 %       ±8.06% ±10.72% ±13.96%
crypto/hkdf.jsn=1000 hash='sha256' info='info' salt='salt' key='this-is-a-much-longer-secret' size=1024 sync=0                -0.73 %       ±9.19% ±12.23% ±15.91%
crypto/hkdf.jsn=1000 hash='sha256' info='info' salt='salt' key='this-is-a-much-longer-secret' size=1024 sync=1        ***     13.69 %       ±5.47%  ±7.29%  ±9.51%
crypto/hkdf.jsn=1000 hash='sha256' info='info' salt='salt' key='this-is-a-much-longer-secret' size=10 sync=0                   1.44 %       ±6.21%  ±8.26% ±10.75%
crypto/hkdf.jsn=1000 hash='sha256' info='info' salt='salt' key='this-is-a-much-longer-secret' size=10 sync=1          ***     16.70 %       ±8.21% ±10.93% ±14.24%
crypto/hkdf.jsn=1000 hash='sha256' info='info' salt='salt' key='this-is-a-much-longer-secret' size=64 sync=0                  -4.47 %       ±7.97% ±10.62% ±13.87%
crypto/hkdf.jsn=1000 hash='sha256' info='info' salt='salt' key='this-is-a-much-longer-secret' size=64 sync=1            *      8.50 %       ±7.22%  ±9.60% ±12.50%
crypto/hkdf.jsn=1000 hash='sha256' info='' salt='' key='a' size=1024 sync=0                                                    0.24 %       ±8.51% ±11.34% ±14.78%
crypto/hkdf.jsn=1000 hash='sha256' info='' salt='' key='a' size=1024 sync=1                                                   -0.82 %       ±6.00%  ±7.98% ±10.40%
crypto/hkdf.jsn=1000 hash='sha256' info='' salt='' key='a' size=10 sync=0                                                      4.95 %       ±6.08%  ±8.13% ±10.65%
crypto/hkdf.jsn=1000 hash='sha256' info='' salt='' key='a' size=10 sync=1                                                      4.24 %       ±7.62% ±10.14% ±13.20%
crypto/hkdf.jsn=1000 hash='sha256' info='' salt='' key='a' size=64 sync=0                                                      1.59 %       ±6.90%  ±9.18% ±11.95%
crypto/hkdf.jsn=1000 hash='sha256' info='' salt='' key='a' size=64 sync=1                                                      0.56 %       ±7.98% ±10.63% ±13.84%
crypto/hkdf.jsn=1000 hash='sha256' info='' salt='' key='secret' size=1024 sync=0                                               3.34 %       ±9.49% ±12.63% ±16.44%
crypto/hkdf.jsn=1000 hash='sha256' info='' salt='' key='secret' size=1024 sync=1                                               5.26 %       ±7.47%  ±9.96% ±13.00%
crypto/hkdf.jsn=1000 hash='sha256' info='' salt='' key='secret' size=10 sync=0                                                 4.88 %       ±7.62% ±10.14% ±13.21%
crypto/hkdf.jsn=1000 hash='sha256' info='' salt='' key='secret' size=10 sync=1                                                -0.88 %       ±9.11% ±12.13% ±15.78%
crypto/hkdf.jsn=1000 hash='sha256' info='' salt='' key='secret' size=64 sync=0                                                -1.65 %       ±7.49%  ±9.97% ±12.98%
crypto/hkdf.jsn=1000 hash='sha256' info='' salt='' key='secret' size=64 sync=1                                                 0.93 %       ±6.09%  ±8.12% ±10.60%
crypto/hkdf.jsn=1000 hash='sha256' info='' salt='' key='this-is-a-much-longer-secret' size=1024 sync=0                        -1.20 %       ±8.60% ±11.44% ±14.89%
crypto/hkdf.jsn=1000 hash='sha256' info='' salt='' key='this-is-a-much-longer-secret' size=1024 sync=1                         3.01 %       ±6.55%  ±8.73% ±11.38%
crypto/hkdf.jsn=1000 hash='sha256' info='' salt='' key='this-is-a-much-longer-secret' size=10 sync=0                           0.81 %       ±6.63%  ±8.82% ±11.47%
crypto/hkdf.jsn=1000 hash='sha256' info='' salt='' key='this-is-a-much-longer-secret' size=10 sync=1                           1.37 %       ±8.26% ±10.99% ±14.31%
crypto/hkdf.jsn=1000 hash='sha256' info='' salt='' key='this-is-a-much-longer-secret' size=64 sync=0                           1.07 %       ±6.83%  ±9.09% ±11.84%
crypto/hkdf.jsn=1000 hash='sha256' info='' salt='' key='this-is-a-much-longer-secret' size=64 sync=1                          -2.34 %       ±5.63%  ±7.49%  ±9.76%
crypto/hkdf.jsn=1000 hash='sha256' info='' salt='salt' key='a' size=1024 sync=0                                                1.61 %       ±9.25% ±12.31% ±16.02%
crypto/hkdf.jsn=1000 hash='sha256' info='' salt='salt' key='a' size=1024 sync=1                                        **     10.72 %       ±6.59%  ±8.77% ±11.41%
crypto/hkdf.jsn=1000 hash='sha256' info='' salt='salt' key='a' size=10 sync=0                                                  1.04 %       ±6.77%  ±9.01% ±11.74%
crypto/hkdf.jsn=1000 hash='sha256' info='' salt='salt' key='a' size=10 sync=1                                          **     14.02 %      ±10.28% ±13.70% ±17.86%
crypto/hkdf.jsn=1000 hash='sha256' info='' salt='salt' key='a' size=64 sync=0                                                  2.72 %       ±7.32%  ±9.76% ±12.72%
crypto/hkdf.jsn=1000 hash='sha256' info='' salt='salt' key='a' size=64 sync=1                                          **     14.12 %       ±9.84% ±13.14% ±17.19%
crypto/hkdf.jsn=1000 hash='sha256' info='' salt='salt' key='secret' size=1024 sync=0                                           3.19 %       ±9.46% ±12.60% ±16.42%
crypto/hkdf.jsn=1000 hash='sha256' info='' salt='salt' key='secret' size=1024 sync=1                                  ***     11.11 %       ±5.90%  ±7.86% ±10.25%
crypto/hkdf.jsn=1000 hash='sha256' info='' salt='salt' key='secret' size=10 sync=0                                            -2.09 %       ±7.50%  ±9.98% ±13.00%
crypto/hkdf.jsn=1000 hash='sha256' info='' salt='salt' key='secret' size=10 sync=1                                             5.88 %       ±7.23%  ±9.64% ±12.58%
crypto/hkdf.jsn=1000 hash='sha256' info='' salt='salt' key='secret' size=64 sync=0                                             0.04 %       ±7.76% ±10.33% ±13.46%
crypto/hkdf.jsn=1000 hash='sha256' info='' salt='salt' key='secret' size=64 sync=1                                    ***     14.88 %       ±7.44%  ±9.93% ±12.99%
crypto/hkdf.jsn=1000 hash='sha256' info='' salt='salt' key='this-is-a-much-longer-secret' size=1024 sync=0                     0.77 %       ±7.98% ±10.63% ±13.84%
crypto/hkdf.jsn=1000 hash='sha256' info='' salt='salt' key='this-is-a-much-longer-secret' size=1024 sync=1              *      6.08 %       ±5.78%  ±7.69% ±10.02%
crypto/hkdf.jsn=1000 hash='sha256' info='' salt='salt' key='this-is-a-much-longer-secret' size=10 sync=0                       0.05 %       ±8.43% ±11.22% ±14.62%
crypto/hkdf.jsn=1000 hash='sha256' info='' salt='salt' key='this-is-a-much-longer-secret' size=10 sync=1               **     13.93 %       ±8.09% ±10.77% ±14.03%
crypto/hkdf.jsn=1000 hash='sha256' info='' salt='salt' key='this-is-a-much-longer-secret' size=64 sync=0                      -0.49 %       ±6.34%  ±8.44% ±10.99%
crypto/hkdf.jsn=1000 hash='sha256' info='' salt='salt' key='this-is-a-much-longer-secret' size=64 sync=1                       6.05 %       ±6.55%  ±8.72% ±11.35%
crypto/hkdf.jsn=1000 hash='sha512' info='info' salt='' key='a' size=1024 sync=0                                                4.60 %       ±7.91% ±10.53% ±13.71%
crypto/hkdf.jsn=1000 hash='sha512' info='info' salt='' key='a' size=1024 sync=1                                                4.83 %       ±5.16%  ±6.87%  ±8.94%
crypto/hkdf.jsn=1000 hash='sha512' info='info' salt='' key='a' size=10 sync=0                                                  3.02 %       ±5.85%  ±7.79% ±10.14%
crypto/hkdf.jsn=1000 hash='sha512' info='info' salt='' key='a' size=10 sync=1                                                  1.39 %       ±8.99% ±11.97% ±15.59%
crypto/hkdf.jsn=1000 hash='sha512' info='info' salt='' key='a' size=64 sync=0                                                 -1.49 %       ±7.57% ±10.08% ±13.12%
crypto/hkdf.jsn=1000 hash='sha512' info='info' salt='' key='a' size=64 sync=1                                                  3.65 %       ±5.89%  ±7.83% ±10.20%
crypto/hkdf.jsn=1000 hash='sha512' info='info' salt='' key='secret' size=1024 sync=0                                           2.20 %       ±8.35% ±11.11% ±14.46%
crypto/hkdf.jsn=1000 hash='sha512' info='info' salt='' key='secret' size=1024 sync=1                                    *      7.21 %       ±5.86%  ±7.81% ±10.17%
crypto/hkdf.jsn=1000 hash='sha512' info='info' salt='' key='secret' size=10 sync=0                                            -2.04 %       ±7.43%  ±9.89% ±12.87%
crypto/hkdf.jsn=1000 hash='sha512' info='info' salt='' key='secret' size=10 sync=1                                     **     10.93 %       ±7.67% ±10.21% ±13.31%
crypto/hkdf.jsn=1000 hash='sha512' info='info' salt='' key='secret' size=64 sync=0                                            -4.05 %       ±7.15%  ±9.51% ±12.38%
crypto/hkdf.jsn=1000 hash='sha512' info='info' salt='' key='secret' size=64 sync=1                                             2.45 %       ±6.38%  ±8.50% ±11.07%
crypto/hkdf.jsn=1000 hash='sha512' info='info' salt='' key='this-is-a-much-longer-secret' size=1024 sync=0                     2.67 %       ±7.92% ±10.54% ±13.72%
crypto/hkdf.jsn=1000 hash='sha512' info='info' salt='' key='this-is-a-much-longer-secret' size=1024 sync=1                     4.09 %       ±6.70%  ±8.92% ±11.62%
crypto/hkdf.jsn=1000 hash='sha512' info='info' salt='' key='this-is-a-much-longer-secret' size=10 sync=0                      -5.08 %       ±7.05%  ±9.39% ±12.22%
crypto/hkdf.jsn=1000 hash='sha512' info='info' salt='' key='this-is-a-much-longer-secret' size=10 sync=1                *      7.30 %       ±6.99%  ±9.31% ±12.12%
crypto/hkdf.jsn=1000 hash='sha512' info='info' salt='' key='this-is-a-much-longer-secret' size=64 sync=0                      -2.82 %       ±5.07%  ±6.75%  ±8.79%
crypto/hkdf.jsn=1000 hash='sha512' info='info' salt='' key='this-is-a-much-longer-secret' size=64 sync=1                       5.16 %       ±6.36%  ±8.49% ±11.09%
crypto/hkdf.jsn=1000 hash='sha512' info='info' salt='salt' key='a' size=1024 sync=0                                            1.74 %       ±8.73% ±11.61% ±15.11%
crypto/hkdf.jsn=1000 hash='sha512' info='info' salt='salt' key='a' size=1024 sync=1                                            4.69 %       ±5.81%  ±7.73% ±10.07%
crypto/hkdf.jsn=1000 hash='sha512' info='info' salt='salt' key='a' size=10 sync=0                                              5.64 %       ±7.80% ±10.39% ±13.55%
crypto/hkdf.jsn=1000 hash='sha512' info='info' salt='salt' key='a' size=10 sync=1                                      **     13.25 %       ±8.15% ±10.86% ±14.15%
crypto/hkdf.jsn=1000 hash='sha512' info='info' salt='salt' key='a' size=64 sync=0                                             -0.15 %       ±6.76%  ±8.99% ±11.70%
crypto/hkdf.jsn=1000 hash='sha512' info='info' salt='salt' key='a' size=64 sync=1                                       *      7.74 %       ±6.41%  ±8.52% ±11.10%
crypto/hkdf.jsn=1000 hash='sha512' info='info' salt='salt' key='secret' size=1024 sync=0                                       0.89 %       ±7.09%  ±9.43% ±12.28%
crypto/hkdf.jsn=1000 hash='sha512' info='info' salt='salt' key='secret' size=1024 sync=1                               **      8.83 %       ±5.48%  ±7.30%  ±9.50%
crypto/hkdf.jsn=1000 hash='sha512' info='info' salt='salt' key='secret' size=10 sync=0                                        -1.11 %       ±7.87% ±10.47% ±13.63%
crypto/hkdf.jsn=1000 hash='sha512' info='info' salt='salt' key='secret' size=10 sync=1                                  *      9.42 %       ±9.39% ±12.49% ±16.26%
crypto/hkdf.jsn=1000 hash='sha512' info='info' salt='salt' key='secret' size=64 sync=0                                         6.32 %       ±7.55% ±10.05% ±13.08%
crypto/hkdf.jsn=1000 hash='sha512' info='info' salt='salt' key='secret' size=64 sync=1                                         7.02 %       ±8.00% ±10.65% ±13.86%
crypto/hkdf.jsn=1000 hash='sha512' info='info' salt='salt' key='this-is-a-much-longer-secret' size=1024 sync=0                -3.54 %       ±8.08% ±10.76% ±14.01%
crypto/hkdf.jsn=1000 hash='sha512' info='info' salt='salt' key='this-is-a-much-longer-secret' size=1024 sync=1         **      8.08 %       ±5.84%  ±7.78% ±10.15%
crypto/hkdf.jsn=1000 hash='sha512' info='info' salt='salt' key='this-is-a-much-longer-secret' size=10 sync=0                  -3.96 %       ±7.41%  ±9.88% ±12.87%
crypto/hkdf.jsn=1000 hash='sha512' info='info' salt='salt' key='this-is-a-much-longer-secret' size=10 sync=1          ***     15.25 %       ±6.96%  ±9.28% ±12.11%
crypto/hkdf.jsn=1000 hash='sha512' info='info' salt='salt' key='this-is-a-much-longer-secret' size=64 sync=0                  -5.34 %       ±5.55%  ±7.38%  ±9.61%
crypto/hkdf.jsn=1000 hash='sha512' info='info' salt='salt' key='this-is-a-much-longer-secret' size=64 sync=1            *      8.97 %       ±7.77% ±10.34% ±13.48%
crypto/hkdf.jsn=1000 hash='sha512' info='' salt='' key='a' size=1024 sync=0                                                    0.27 %       ±8.12% ±10.81% ±14.07%
crypto/hkdf.jsn=1000 hash='sha512' info='' salt='' key='a' size=1024 sync=1                                                   -0.03 %       ±5.92%  ±7.88% ±10.27%
crypto/hkdf.jsn=1000 hash='sha512' info='' salt='' key='a' size=10 sync=0                                                      2.88 %       ±4.95%  ±6.59%  ±8.59%
crypto/hkdf.jsn=1000 hash='sha512' info='' salt='' key='a' size=10 sync=1                                                     -3.00 %       ±8.47% ±11.27% ±14.67%
crypto/hkdf.jsn=1000 hash='sha512' info='' salt='' key='a' size=64 sync=0                                                     -3.84 %       ±7.05%  ±9.38% ±12.21%
crypto/hkdf.jsn=1000 hash='sha512' info='' salt='' key='a' size=64 sync=1                                                     -0.76 %       ±6.23%  ±8.30% ±10.81%
crypto/hkdf.jsn=1000 hash='sha512' info='' salt='' key='secret' size=1024 sync=0                                               5.29 %       ±7.90% ±10.51% ±13.68%
crypto/hkdf.jsn=1000 hash='sha512' info='' salt='' key='secret' size=1024 sync=1                                               2.00 %       ±7.12%  ±9.48% ±12.35%
crypto/hkdf.jsn=1000 hash='sha512' info='' salt='' key='secret' size=10 sync=0                                                -3.76 %       ±7.79% ±10.37% ±13.50%
crypto/hkdf.jsn=1000 hash='sha512' info='' salt='' key='secret' size=10 sync=1                                                -1.12 %       ±7.27%  ±9.68% ±12.60%
crypto/hkdf.jsn=1000 hash='sha512' info='' salt='' key='secret' size=64 sync=0                                                 1.39 %       ±6.76%  ±9.00% ±11.72%
crypto/hkdf.jsn=1000 hash='sha512' info='' salt='' key='secret' size=64 sync=1                                                 3.83 %       ±6.82%  ±9.08% ±11.83%
crypto/hkdf.jsn=1000 hash='sha512' info='' salt='' key='this-is-a-much-longer-secret' size=1024 sync=0                         0.44 %       ±8.56% ±11.38% ±14.82%
crypto/hkdf.jsn=1000 hash='sha512' info='' salt='' key='this-is-a-much-longer-secret' size=1024 sync=1                         1.29 %       ±6.39%  ±8.50% ±11.06%
crypto/hkdf.jsn=1000 hash='sha512' info='' salt='' key='this-is-a-much-longer-secret' size=10 sync=0                           1.84 %       ±6.87%  ±9.14% ±11.91%
crypto/hkdf.jsn=1000 hash='sha512' info='' salt='' key='this-is-a-much-longer-secret' size=10 sync=1                          -3.27 %       ±7.51%  ±9.99% ±13.02%
crypto/hkdf.jsn=1000 hash='sha512' info='' salt='' key='this-is-a-much-longer-secret' size=64 sync=0                          -7.32 %       ±7.58% ±10.09% ±13.14%
crypto/hkdf.jsn=1000 hash='sha512' info='' salt='' key='this-is-a-much-longer-secret' size=64 sync=1                          -1.13 %       ±6.18%  ±8.23% ±10.71%
crypto/hkdf.jsn=1000 hash='sha512' info='' salt='salt' key='a' size=1024 sync=0                                         *      8.79 %       ±7.87% ±10.50% ±13.70%
crypto/hkdf.jsn=1000 hash='sha512' info='' salt='salt' key='a' size=1024 sync=1                                               -0.39 %       ±6.14%  ±8.17% ±10.64%
crypto/hkdf.jsn=1000 hash='sha512' info='' salt='salt' key='a' size=10 sync=0                                                  2.47 %       ±6.82%  ±9.08% ±11.84%
crypto/hkdf.jsn=1000 hash='sha512' info='' salt='salt' key='a' size=10 sync=1                                                  7.15 %       ±8.25% ±10.98% ±14.31%
crypto/hkdf.jsn=1000 hash='sha512' info='' salt='salt' key='a' size=64 sync=0                                                  1.12 %       ±6.88%  ±9.16% ±11.92%
crypto/hkdf.jsn=1000 hash='sha512' info='' salt='salt' key='a' size=64 sync=1                                         ***     11.94 %       ±5.74%  ±7.64%  ±9.95%
crypto/hkdf.jsn=1000 hash='sha512' info='' salt='salt' key='secret' size=1024 sync=0                                          -4.51 %       ±7.64% ±10.17% ±13.26%
crypto/hkdf.jsn=1000 hash='sha512' info='' salt='salt' key='secret' size=1024 sync=1                                    *      8.67 %       ±6.93%  ±9.23% ±12.03%
crypto/hkdf.jsn=1000 hash='sha512' info='' salt='salt' key='secret' size=10 sync=0                                            -5.58 %       ±7.63% ±10.15% ±13.22%
crypto/hkdf.jsn=1000 hash='sha512' info='' salt='salt' key='secret' size=10 sync=1                                             4.45 %       ±7.56% ±10.06% ±13.10%
crypto/hkdf.jsn=1000 hash='sha512' info='' salt='salt' key='secret' size=64 sync=0                                            -3.68 %       ±7.50%  ±9.98% ±13.00%
crypto/hkdf.jsn=1000 hash='sha512' info='' salt='salt' key='secret' size=64 sync=1                                     **      9.94 %       ±7.16%  ±9.53% ±12.41%
crypto/hkdf.jsn=1000 hash='sha512' info='' salt='salt' key='this-is-a-much-longer-secret' size=1024 sync=0                    -4.74 %       ±7.12%  ±9.48% ±12.34%
crypto/hkdf.jsn=1000 hash='sha512' info='' salt='salt' key='this-is-a-much-longer-secret' size=1024 sync=1            ***     13.80 %       ±6.47%  ±8.62% ±11.26%
crypto/hkdf.jsn=1000 hash='sha512' info='' salt='salt' key='this-is-a-much-longer-secret' size=10 sync=0                      -2.04 %       ±7.33%  ±9.76% ±12.72%
crypto/hkdf.jsn=1000 hash='sha512' info='' salt='salt' key='this-is-a-much-longer-secret' size=10 sync=1                *     10.72 %       ±8.64% ±11.51% ±14.99%
crypto/hkdf.jsn=1000 hash='sha512' info='' salt='salt' key='this-is-a-much-longer-secret' size=64 sync=0                      -2.44 %       ±6.78%  ±9.02% ±11.74%
crypto/hkdf.jsn=1000 hash='sha512' info='' salt='salt' key='this-is-a-much-longer-secret' size=64 sync=1              ***     19.75 %      ±10.25% ±13.70% ±17.98%
crypto/keygen.jsn=100 method='dsaAsync'                                                                                       -1.00 %       ±3.05%  ±4.07%  ±5.31%
crypto/keygen.jsn=100 method='dsaSync'                                                                                         0.55 %       ±3.05%  ±4.06%  ±5.29%
crypto/keygen.jsn=100 method='rsaAsync'                                                                                       -0.36 %       ±2.83%  ±3.77%  ±4.90%
crypto/keygen.jsn=100 method='rsaSync'                                                                                        -1.40 %       ±3.18%  ±4.23%  ±5.51%
crypto/randomBytes.jsn=1000 size=1024                                                                                          1.74 %      ±10.95% ±14.58% ±19.00%
crypto/randomBytes.jsn=1000 size=524288                                                                                       -0.70 %       ±7.91% ±10.53% ±13.72%
crypto/randomBytes.jsn=1000 size=64                                                                                            0.78 %       ±9.08% ±12.09% ±15.73%
crypto/randomBytes.jsn=1000 size=8192                                                                                          3.93 %      ±10.40% ±13.86% ±18.08%
crypto/randomUUID.jsdisableEntropyCache=0 n=10000000                                                                           0.39 %       ±3.56%  ±4.74%  ±6.17%
crypto/randomUUID.jsdisableEntropyCache=1 n=10000000                                                                          -0.49 %       ±2.21%  ±2.94%  ±3.84%
crypto/rsa-encrypt-decrypt-throughput.jslen=16 keylen='1024' n=500                                                             1.41 %       ±3.08%  ±4.10%  ±5.34%
crypto/rsa-encrypt-decrypt-throughput.jslen=16 keylen='2048' n=500                                                            -3.15 %       ±3.75%  ±5.00%  ±6.52%
crypto/rsa-encrypt-decrypt-throughput.jslen=16 keylen='4096' n=500                                                            -1.17 %       ±3.01%  ±4.01%  ±5.23%
crypto/rsa-encrypt-decrypt-throughput.jslen=32 keylen='1024' n=500                                                            -1.05 %       ±5.88%  ±7.86% ±10.29%
crypto/rsa-encrypt-decrypt-throughput.jslen=32 keylen='2048' n=500                                                             1.54 %       ±4.53%  ±6.03%  ±7.85%
crypto/rsa-encrypt-decrypt-throughput.jslen=32 keylen='4096' n=500                                                            -0.16 %       ±3.15%  ±4.20%  ±5.48%
crypto/rsa-encrypt-decrypt-throughput.jslen=64 keylen='1024' n=500                                                            -3.07 %       ±6.67%  ±8.92% ±11.72%
crypto/rsa-encrypt-decrypt-throughput.jslen=64 keylen='2048' n=500                                                            -2.88 %       ±4.92%  ±6.57%  ±8.60%
crypto/rsa-encrypt-decrypt-throughput.jslen=64 keylen='4096' n=500                                                             1.41 %       ±3.16%  ±4.21%  ±5.49%
crypto/rsa-sign-verify-throughput.jslen=102400 keylen='1024' algo='SHA1' writes=500                                           -2.80 %       ±3.87%  ±5.20%  ±6.87%
crypto/rsa-sign-verify-throughput.jslen=102400 keylen='1024' algo='SHA224' writes=500                                          4.82 %       ±5.80%  ±7.81% ±10.35%
crypto/rsa-sign-verify-throughput.jslen=102400 keylen='1024' algo='SHA256' writes=500                                         -1.71 %       ±5.38%  ±7.18%  ±9.39%
crypto/rsa-sign-verify-throughput.jslen=102400 keylen='1024' algo='SHA384' writes=500                                         -0.71 %       ±5.55%  ±7.42%  ±9.73%
crypto/rsa-sign-verify-throughput.jslen=102400 keylen='1024' algo='SHA512' writes=500                                         -1.73 %       ±5.06%  ±6.81%  ±9.02%
crypto/rsa-sign-verify-throughput.jslen=102400 keylen='2048' algo='SHA1' writes=500                                           -0.67 %       ±1.72%  ±2.30%  ±3.00%
crypto/rsa-sign-verify-throughput.jslen=102400 keylen='2048' algo='SHA224' writes=500                                         -1.35 %       ±3.19%  ±4.29%  ±5.68%
crypto/rsa-sign-verify-throughput.jslen=102400 keylen='2048' algo='SHA256' writes=500                                         -0.09 %       ±3.95%  ±5.25%  ±6.83%
crypto/rsa-sign-verify-throughput.jslen=102400 keylen='2048' algo='SHA384' writes=500                                         -2.31 %       ±2.83%  ±3.80%  ±5.03%
crypto/rsa-sign-verify-throughput.jslen=102400 keylen='2048' algo='SHA512' writes=500                                          2.02 %       ±4.05%  ±5.46%  ±7.24%
crypto/rsa-sign-verify-throughput.jslen=1024 keylen='1024' algo='SHA1' writes=500                                              3.02 %       ±5.45%  ±7.26%  ±9.45%
crypto/rsa-sign-verify-throughput.jslen=1024 keylen='1024' algo='SHA224' writes=500                                           -0.14 %       ±4.06%  ±5.40%  ±7.03%
crypto/rsa-sign-verify-throughput.jslen=1024 keylen='1024' algo='SHA256' writes=500                                            8.27 %      ±10.04% ±13.48% ±17.78%
crypto/rsa-sign-verify-throughput.jslen=1024 keylen='1024' algo='SHA384' writes=500                                           -2.78 %       ±5.38%  ±7.18%  ±9.39%
crypto/rsa-sign-verify-throughput.jslen=1024 keylen='1024' algo='SHA512' writes=500                                           -2.78 %       ±4.30%  ±5.72%  ±7.44%
crypto/rsa-sign-verify-throughput.jslen=1024 keylen='2048' algo='SHA1' writes=500                                             -0.97 %      ±13.19% ±17.55% ±22.84%
crypto/rsa-sign-verify-throughput.jslen=1024 keylen='2048' algo='SHA224' writes=500                                            3.43 %      ±10.35% ±13.83% ±18.13%
crypto/rsa-sign-verify-throughput.jslen=1024 keylen='2048' algo='SHA256' writes=500                                     *    -11.63 %      ±11.07% ±14.88% ±19.70%
crypto/rsa-sign-verify-throughput.jslen=1024 keylen='2048' algo='SHA384' writes=500                                            0.09 %       ±2.50%  ±3.33%  ±4.34%
crypto/rsa-sign-verify-throughput.jslen=1024 keylen='2048' algo='SHA512' writes=500                                           -2.53 %       ±4.82%  ±6.43%  ±8.40%
crypto/rsa-sign-verify-throughput.jslen=1048576 keylen='1024' algo='SHA1' writes=500                                           0.04 %       ±0.99%  ±1.32%  ±1.71%
crypto/rsa-sign-verify-throughput.jslen=1048576 keylen='1024' algo='SHA224' writes=500                                        -0.16 %       ±1.46%  ±1.95%  ±2.55%
crypto/rsa-sign-verify-throughput.jslen=1048576 keylen='1024' algo='SHA256' writes=500                                        -2.27 %       ±3.24%  ±4.36%  ±5.77%
crypto/rsa-sign-verify-throughput.jslen=1048576 keylen='1024' algo='SHA384' writes=500                                         0.91 %       ±2.77%  ±3.71%  ±4.87%
crypto/rsa-sign-verify-throughput.jslen=1048576 keylen='1024' algo='SHA512' writes=500                                        -0.25 %       ±1.52%  ±2.03%  ±2.64%
crypto/rsa-sign-verify-throughput.jslen=1048576 keylen='2048' algo='SHA1' writes=500                                          -1.32 %       ±1.76%  ±2.35%  ±3.07%
crypto/rsa-sign-verify-throughput.jslen=1048576 keylen='2048' algo='SHA224' writes=500                                         0.94 %       ±3.21%  ±4.28%  ±5.60%
crypto/rsa-sign-verify-throughput.jslen=1048576 keylen='2048' algo='SHA256' writes=500                                         1.64 %       ±2.99%  ±4.01%  ±5.29%
crypto/rsa-sign-verify-throughput.jslen=1048576 keylen='2048' algo='SHA384' writes=500                                        -1.23 %       ±1.29%  ±1.72%  ±2.24%
crypto/rsa-sign-verify-throughput.jslen=1048576 keylen='2048' algo='SHA512' writes=500                                        -1.00 %       ±1.51%  ±2.03%  ±2.68%
crypto/rsa-sign-verify-throughput.jslen=204800 keylen='1024' algo='SHA1' writes=500                                            0.78 %       ±0.95%  ±1.26%  ±1.65%
crypto/rsa-sign-verify-throughput.jslen=204800 keylen='1024' algo='SHA224' writes=500                                          0.78 %       ±1.68%  ±2.24%  ±2.92%
crypto/rsa-sign-verify-throughput.jslen=204800 keylen='1024' algo='SHA256' writes=500                                         -0.44 %       ±5.01%  ±6.67%  ±8.69%
crypto/rsa-sign-verify-throughput.jslen=204800 keylen='1024' algo='SHA384' writes=500                                          2.05 %       ±4.80%  ±6.44%  ±8.51%
crypto/rsa-sign-verify-throughput.jslen=204800 keylen='1024' algo='SHA512' writes=500                                          0.11 %       ±1.00%  ±1.34%  ±1.75%
crypto/rsa-sign-verify-throughput.jslen=204800 keylen='2048' algo='SHA1' writes=500                                           -3.04 %       ±5.37%  ±7.23%  ±9.59%
crypto/rsa-sign-verify-throughput.jslen=204800 keylen='2048' algo='SHA224' writes=500                                          2.24 %       ±4.48%  ±5.98%  ±7.83%
crypto/rsa-sign-verify-throughput.jslen=204800 keylen='2048' algo='SHA256' writes=500                                          0.59 %       ±2.04%  ±2.72%  ±3.54%
crypto/rsa-sign-verify-throughput.jslen=204800 keylen='2048' algo='SHA384' writes=500                                          1.15 %       ±4.96%  ±6.64%  ±8.72%
crypto/rsa-sign-verify-throughput.jslen=204800 keylen='2048' algo='SHA512' writes=500                                         -0.26 %       ±0.74%  ±0.98%  ±1.28%
crypto/rsa-sign-verify-throughput.jslen=307200 keylen='1024' algo='SHA1' writes=500                                           -0.45 %       ±1.83%  ±2.45%  ±3.22%
crypto/rsa-sign-verify-throughput.jslen=307200 keylen='1024' algo='SHA224' writes=500                                         -0.58 %       ±4.65%  ±6.21%  ±8.14%
crypto/rsa-sign-verify-throughput.jslen=307200 keylen='1024' algo='SHA256' writes=500                                          2.30 %       ±3.48%  ±4.66%  ±6.12%
crypto/rsa-sign-verify-throughput.jslen=307200 keylen='1024' algo='SHA384' writes=500                                          2.75 %       ±4.35%  ±5.83%  ±7.67%
crypto/rsa-sign-verify-throughput.jslen=307200 keylen='1024' algo='SHA512' writes=500                                         -0.25 %       ±1.67%  ±2.22%  ±2.89%
crypto/rsa-sign-verify-throughput.jslen=307200 keylen='2048' algo='SHA1' writes=500                                            0.22 %       ±1.90%  ±2.55%  ±3.35%
crypto/rsa-sign-verify-throughput.jslen=307200 keylen='2048' algo='SHA224' writes=500                                         -0.68 %       ±5.32%  ±7.10%  ±9.29%
crypto/rsa-sign-verify-throughput.jslen=307200 keylen='2048' algo='SHA256' writes=500                                         -1.97 %       ±4.01%  ±5.39%  ±7.13%
crypto/rsa-sign-verify-throughput.jslen=307200 keylen='2048' algo='SHA384' writes=500                                          1.83 %       ±3.40%  ±4.53%  ±5.90%
crypto/rsa-sign-verify-throughput.jslen=307200 keylen='2048' algo='SHA512' writes=500                                         -2.36 %       ±5.28%  ±7.10%  ±9.38%
crypto/webcrypto-digest.jsn=1000 method='SHA-1' data=100 sync='createHash'                                                     3.12 %       ±7.92% ±10.54% ±13.72%
crypto/webcrypto-digest.jsn=1000 method='SHA-1' data=100 sync='subtle'                                                        -0.67 %       ±8.09% ±10.77% ±14.01%
crypto/webcrypto-digest.jsn=1000 method='SHA-1' data=10 sync='createHash'                                                     -1.26 %       ±7.58% ±10.09% ±13.14%
crypto/webcrypto-digest.jsn=1000 method='SHA-1' data=10 sync='subtle'                                                         -1.74 %       ±6.45%  ±8.59% ±11.18%
crypto/webcrypto-digest.jsn=1000 method='SHA-1' data=20 sync='createHash'                                                     -5.66 %      ±10.89% ±14.52% ±18.94%
crypto/webcrypto-digest.jsn=1000 method='SHA-1' data=20 sync='subtle'                                                          5.15 %       ±8.79% ±11.70% ±15.25%
crypto/webcrypto-digest.jsn=1000 method='SHA-1' data=50 sync='createHash'                                                      1.97 %       ±8.44% ±11.24% ±14.65%
crypto/webcrypto-digest.jsn=1000 method='SHA-1' data=50 sync='subtle'                                                         -4.11 %       ±7.43%  ±9.89% ±12.87%
crypto/webcrypto-digest.jsn=1000 method='SHA-256' data=100 sync='createHash'                                                   4.46 %      ±10.06% ±13.50% ±17.79%
crypto/webcrypto-digest.jsn=1000 method='SHA-256' data=100 sync='subtle'                                                       4.09 %       ±8.41% ±11.19% ±14.58%
crypto/webcrypto-digest.jsn=1000 method='SHA-256' data=10 sync='createHash'                                                   -6.08 %       ±9.23% ±12.28% ±15.98%
crypto/webcrypto-digest.jsn=1000 method='SHA-256' data=10 sync='subtle'                                                       -2.19 %       ±6.95%  ±9.25% ±12.06%
crypto/webcrypto-digest.jsn=1000 method='SHA-256' data=20 sync='createHash'                                                   -5.86 %       ±7.70% ±10.25% ±13.36%
crypto/webcrypto-digest.jsn=1000 method='SHA-256' data=20 sync='subtle'                                                       -3.12 %       ±7.21%  ±9.59% ±12.48%
crypto/webcrypto-digest.jsn=1000 method='SHA-256' data=50 sync='createHash'                                                    4.72 %      ±10.19% ±13.56% ±17.65%
crypto/webcrypto-digest.jsn=1000 method='SHA-256' data=50 sync='subtle'                                                        3.87 %       ±9.76% ±12.99% ±16.92%
crypto/webcrypto-digest.jsn=1000 method='SHA-384' data=100 sync='createHash'                                                  -1.71 %       ±7.04%  ±9.36% ±12.19%
crypto/webcrypto-digest.jsn=1000 method='SHA-384' data=100 sync='subtle'                                                       2.56 %       ±9.31% ±12.39% ±16.12%
crypto/webcrypto-digest.jsn=1000 method='SHA-384' data=10 sync='createHash'                                             *     -9.02 %       ±8.63% ±11.48% ±14.95%
crypto/webcrypto-digest.jsn=1000 method='SHA-384' data=10 sync='subtle'                                                        0.28 %       ±6.12%  ±8.15% ±10.62%
crypto/webcrypto-digest.jsn=1000 method='SHA-384' data=20 sync='createHash'                                                   -1.40 %       ±9.88% ±13.15% ±17.14%
crypto/webcrypto-digest.jsn=1000 method='SHA-384' data=20 sync='subtle'                                                        3.95 %       ±8.22% ±10.94% ±14.25%
crypto/webcrypto-digest.jsn=1000 method='SHA-384' data=50 sync='createHash'                                                    0.21 %       ±9.75% ±12.98% ±16.89%
crypto/webcrypto-digest.jsn=1000 method='SHA-384' data=50 sync='subtle'                                                        3.61 %       ±8.47% ±11.27% ±14.68%
crypto/webcrypto-digest.jsn=1000 method='SHA-512' data=100 sync='createHash'                                                  -1.73 %       ±6.90%  ±9.19% ±11.97%
crypto/webcrypto-digest.jsn=1000 method='SHA-512' data=100 sync='subtle'                                                      -0.13 %       ±9.01% ±11.98% ±15.60%
crypto/webcrypto-digest.jsn=1000 method='SHA-512' data=10 sync='createHash'                                                   -2.16 %       ±8.66% ±11.52% ±14.99%
crypto/webcrypto-digest.jsn=1000 method='SHA-512' data=10 sync='subtle'                                                        6.20 %       ±9.01% ±11.98% ±15.60%
crypto/webcrypto-digest.jsn=1000 method='SHA-512' data=20 sync='createHash'                                                    7.28 %       ±8.54% ±11.38% ±14.84%
crypto/webcrypto-digest.jsn=1000 method='SHA-512' data=20 sync='subtle'                                                       -5.47 %       ±9.23% ±12.29% ±16.03%
crypto/webcrypto-digest.jsn=1000 method='SHA-512' data=50 sync='createHash'                                                    0.04 %       ±9.23% ±12.32% ±16.09%
crypto/webcrypto-digest.jsn=1000 method='SHA-512' data=50 sync='subtle'                                                       -3.44 %       ±7.43%  ±9.90% ±12.90%

Be aware that when doing many comparisons the risk of a false-positive
result increases. In this case, there are 531 comparisons, you can thus
expect the following amount of false-positive results:
  26.55 false positives, when considering a   5% risk acceptance (*, **, ***),
  5.31 false positives, when considering a   1% risk acceptance (**, ***),
  0.53 false positives, when considering a 0.1% risk acceptance (***)

@aduh95 aduh95 added author ready PRs that have at least one approval, no pending requests for changes, and a CI started. crypto Issues and PRs related to the crypto subsystem. labels Feb 14, 2021
@nodejs-github-bot
Copy link
Collaborator

Copy link
Member

@tniessen tniessen left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am beginning to wonder if we could use some kind of transpiler instead to avoid making our source code less readable and harder to understand, for marginal benefits.

lib/internal/crypto/keys.js Show resolved Hide resolved
} else if (!allowKeyObject) {
return ArrayPrototypeSlice(types, 0, 5);
}
return types;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is so much less intuitive than the original implementation...

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agreed, I have considered using .push to add the entries instead of slicing them out, but ended up doing it that way to improve the performance.

@nodejs-github-bot
Copy link
Collaborator

@nodejs-github-bot
Copy link
Collaborator

Copy link
Member

@tniessen tniessen left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

😐

if (name !== 'AES-KW')
ArrayPrototypePush(checkUsages, 'encrypt', 'decrypt');

const usagesSet = new SafeSet(keyUsages);
if (hasAnyNotIn(usagesSet, ...checkUsages)) {
if (ReflectApply(hasAnyNotIn, null, checkUsages)) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These call sites of hasAnyNotIn are much harder to read now, for no real benefit.

It might be better to simply change hasAnyNotIn to accept an array as the second argument instead of a variable number of arguments.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK, I'll try that, if it doesn't have a negative perf impact I'm all for it.

break;
}
if (hasAnyNotIn(usages, ...checkSet)) {
if (ReflectApply(hasAnyNotIn, null, args)) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dito.

break;
}
if (hasAnyNotIn(usages, ...checkSet)) {
if (hasAnyNotIn(usages, check)) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dito.

break;
}
}
if (hasAnyNotIn(usages, ...checkSet)) {
if (ReflectApply(hasAnyNotIn, null, args)) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dito.

break;
}
}
if (hasAnyNotIn(usages, ...checkSet)) {
if (ReflectApply(hasAnyNotIn, null, args)) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dito.

@aduh95 aduh95 removed the author ready PRs that have at least one approval, no pending requests for changes, and a CI started. label Feb 18, 2021
@aduh95
Copy link
Contributor Author

aduh95 commented Feb 18, 2021

Blocked by #37433.

@aduh95
Copy link
Contributor Author

aduh95 commented Feb 19, 2021

Actually, I don't think it's useful to wait for #37433, I'll resolve the git conflict there.

PR-URL: nodejs#37364
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Zijian Liu <lxxyxzj@gmail.com>
@aduh95
Copy link
Contributor Author

aduh95 commented Feb 19, 2021

Landed in 08a2383

@aduh95 aduh95 merged commit 08a2383 into nodejs:master Feb 19, 2021
@aduh95 aduh95 deleted the crypto-array-iteration branch February 19, 2021 11:57
targos pushed a commit that referenced this pull request Feb 28, 2021
PR-URL: #37364
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Zijian Liu <lxxyxzj@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
crypto Issues and PRs related to the crypto subsystem. lib / src Issues and PRs related to general changes in the lib or src directory.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants