Skip to content

Faster AEAD Primitives#795

Closed
adrianosela wants to merge 1 commit intopion:masterfrom
adrianosela:faster-aead
Closed

Faster AEAD Primitives#795
adrianosela wants to merge 1 commit intopion:masterfrom
adrianosela:faster-aead

Conversation

@adrianosela
Copy link
Copy Markdown
Contributor

@adrianosela adrianosela commented Feb 6, 2026

Faster AEAD Primitives

I've found that I can make all AEAD crypto primitives even faster by having a single re-usable buffer for nonces in encrypt, and another re-usable buffer for nonces in decrypt instead of using buffer pools, e.g.:

type aead struct {
	localAEAD     cipher.AEAD
	remoteAEAD    cipher.AEAD
	localWriteIV  []byte
	remoteWriteIV []byte
	tagLength     int

	encryptNonceBuf []byte // reusable buffer for encryption
	decryptNonceBuf []byte // reusable buffer for decryption
}

The numbers are really significant:

  • CBC: 4-11% faster
  • CCM: 8-22% faster
  • GCM: 2-9% faster

However, making the change would make Encrypt() and Decrypt() each thread-unsafe i.e. encrypt and decrypt can run at the same time but no more than one go routine can run Encrypt(), and no more than one go routine can run Decrypt() simultaneously.

This is OK given usage here in pion/dtls (packets are processed sequentially per connection)... there is never more than one Encrypt() or Decrypt() on the same cipher object at the same time...

Unfortunately this package is public (/pkg/crypto/ciphersuite) and who knows how its being used outside of pion/dtls, it could be being used as a generic crypto primitive outside of the context of dtls e.g.

gcm, _ := ciphersuite.NewGCM(key, iv, key, iv)

go encryptFile(gcm, "file1.txt")
go encryptFile(gcm, "file2.txt")
go encryptFile(gcm, "file3.txt")

...So it would be unwise to go from thread-safe to thread-unsafe without a major release. I will remember to make that change right before the next major release.

Keeping this PR in draft mode until we plan on shipping a major release and decide what to do with this. Will share benchmark results soon.

@codecov
Copy link
Copy Markdown

codecov bot commented Feb 6, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 82.14%. Comparing base (46ee7c3) to head (35d9ddb).
⚠️ Report is 8 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master     #795      +/-   ##
==========================================
- Coverage   82.18%   82.14%   -0.05%     
==========================================
  Files         111      111              
  Lines        6490     6480      -10     
==========================================
- Hits         5334     5323      -11     
  Misses        759      759              
- Partials      397      398       +1     
Flag Coverage Δ
go 82.14% <100.00%> (-0.05%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@adrianosela
Copy link
Copy Markdown
Contributor Author

Benchmarking results below.

Raw Benchmark Test Output (BEFORE):

Click to see results
13:41 $ go test -tags=bench -bench=. -benchmem -count 5
goos: darwin
goarch: arm64
pkg: github.com/pion/dtls/v3/pkg/crypto/ciphersuite
cpu: Apple M1 Pro
BenchmarkCBCEncrypt/016B-8           	 1492273	       788.8 ns/op	  20.28 MB/s	     896 B/op	      13 allocs/op
BenchmarkCBCEncrypt/016B-8           	 1521388	       790.4 ns/op	  20.24 MB/s	     896 B/op	      13 allocs/op
BenchmarkCBCEncrypt/016B-8           	 1519272	       792.9 ns/op	  20.18 MB/s	     896 B/op	      13 allocs/op
BenchmarkCBCEncrypt/016B-8           	 1516897	       789.3 ns/op	  20.27 MB/s	     896 B/op	      13 allocs/op
BenchmarkCBCEncrypt/016B-8           	 1515970	       790.4 ns/op	  20.24 MB/s	     896 B/op	      13 allocs/op
BenchmarkCBCEncrypt/064B-8           	 1335884	       870.5 ns/op	  73.52 MB/s	    1040 B/op	      12 allocs/op
BenchmarkCBCEncrypt/064B-8           	 1352386	       866.7 ns/op	  73.84 MB/s	    1040 B/op	      12 allocs/op
BenchmarkCBCEncrypt/064B-8           	 1380874	       867.9 ns/op	  73.74 MB/s	    1040 B/op	      12 allocs/op
BenchmarkCBCEncrypt/064B-8           	 1389514	       867.3 ns/op	  73.79 MB/s	    1040 B/op	      12 allocs/op
BenchmarkCBCEncrypt/064B-8           	 1384197	       866.2 ns/op	  73.89 MB/s	    1040 B/op	      12 allocs/op
BenchmarkCBCEncrypt/128B-8           	 1214169	       986.1 ns/op	 129.80 MB/s	    1424 B/op	      12 allocs/op
BenchmarkCBCEncrypt/128B-8           	 1213244	       997.6 ns/op	 128.31 MB/s	    1424 B/op	      12 allocs/op
BenchmarkCBCEncrypt/128B-8           	 1200334	      1200 ns/op	 106.63 MB/s	    1424 B/op	      12 allocs/op
BenchmarkCBCEncrypt/128B-8           	 1000000	      1403 ns/op	  91.21 MB/s	    1424 B/op	      12 allocs/op
BenchmarkCBCEncrypt/128B-8           	  968457	      1098 ns/op	 116.61 MB/s	    1424 B/op	      12 allocs/op
BenchmarkCBCEncrypt/256B-8           	  883990	      1327 ns/op	 192.99 MB/s	    2240 B/op	      12 allocs/op
BenchmarkCBCEncrypt/256B-8           	  886202	      1265 ns/op	 202.40 MB/s	    2240 B/op	      12 allocs/op
BenchmarkCBCEncrypt/256B-8           	  875539	      1306 ns/op	 195.98 MB/s	    2240 B/op	      12 allocs/op
BenchmarkCBCEncrypt/256B-8           	  874364	      1297 ns/op	 197.30 MB/s	    2240 B/op	      12 allocs/op
BenchmarkCBCEncrypt/256B-8           	  785942	      1452 ns/op	 176.31 MB/s	    2240 B/op	      12 allocs/op
BenchmarkCBCEncrypt/512B-8           	  644288	      1908 ns/op	 268.29 MB/s	    3488 B/op	      12 allocs/op
BenchmarkCBCEncrypt/512B-8           	  627169	      1889 ns/op	 271.04 MB/s	    3488 B/op	      12 allocs/op
BenchmarkCBCEncrypt/512B-8           	  639700	      1895 ns/op	 270.21 MB/s	    3488 B/op	      12 allocs/op
BenchmarkCBCEncrypt/512B-8           	  640382	      1921 ns/op	 266.58 MB/s	    3488 B/op	      12 allocs/op
BenchmarkCBCEncrypt/512B-8           	  632510	      1934 ns/op	 264.71 MB/s	    3488 B/op	      12 allocs/op
BenchmarkCBCEncrypt/800B-8           	  468150	      2448 ns/op	 326.80 MB/s	    4896 B/op	      12 allocs/op
BenchmarkCBCEncrypt/800B-8           	  503438	      2280 ns/op	 350.92 MB/s	    4896 B/op	      12 allocs/op
BenchmarkCBCEncrypt/800B-8           	  477652	      2334 ns/op	 342.79 MB/s	    4896 B/op	      12 allocs/op
BenchmarkCBCEncrypt/800B-8           	  502056	      2242 ns/op	 356.81 MB/s	    4896 B/op	      12 allocs/op
BenchmarkCBCEncrypt/800B-8           	  495843	      2260 ns/op	 354.05 MB/s	    4896 B/op	      12 allocs/op
BenchmarkCBCEncrypt/1KB-8            	  427365	      2978 ns/op	 343.80 MB/s	    5920 B/op	      12 allocs/op
BenchmarkCBCEncrypt/1KB-8            	  330156	      3314 ns/op	 309.01 MB/s	    5920 B/op	      12 allocs/op
BenchmarkCBCEncrypt/1KB-8            	  386966	      3202 ns/op	 319.83 MB/s	    5920 B/op	      12 allocs/op
BenchmarkCBCEncrypt/1KB-8            	  393697	      2991 ns/op	 342.32 MB/s	    5920 B/op	      12 allocs/op
BenchmarkCBCEncrypt/1KB-8            	  383854	      2707 ns/op	 378.27 MB/s	    5920 B/op	      12 allocs/op
BenchmarkCBCEncrypt/1.1KB-8          	  385994	      3082 ns/op	 389.38 MB/s	    6688 B/op	      12 allocs/op
BenchmarkCBCEncrypt/1.1KB-8          	  382546	      3183 ns/op	 377.01 MB/s	    6688 B/op	      12 allocs/op
BenchmarkCBCEncrypt/1.1KB-8          	  356973	      3320 ns/op	 361.47 MB/s	    6688 B/op	      12 allocs/op
BenchmarkCBCEncrypt/1.1KB-8          	  365665	      3404 ns/op	 352.56 MB/s	    6688 B/op	      12 allocs/op
BenchmarkCBCEncrypt/1.1KB-8          	  361425	      3221 ns/op	 372.52 MB/s	    6688 B/op	      12 allocs/op
BenchmarkCBCEncrypt/1.4KB-8          	  325722	      3884 ns/op	 386.22 MB/s	    8480 B/op	      12 allocs/op
BenchmarkCBCEncrypt/1.4KB-8          	  300446	      3720 ns/op	 403.17 MB/s	    8480 B/op	      12 allocs/op
BenchmarkCBCEncrypt/1.4KB-8          	  318957	      3625 ns/op	 413.82 MB/s	    8480 B/op	      12 allocs/op
BenchmarkCBCEncrypt/1.4KB-8          	  335311	      3652 ns/op	 410.71 MB/s	    8480 B/op	      12 allocs/op
BenchmarkCBCEncrypt/1.4KB-8          	  335654	      3642 ns/op	 411.92 MB/s	    8480 B/op	      12 allocs/op
BenchmarkCBCEncrypt/4KB-8            	  147067	      8298 ns/op	 493.60 MB/s	   21024 B/op	      12 allocs/op
BenchmarkCBCEncrypt/4KB-8            	  145128	      8128 ns/op	 503.96 MB/s	   21024 B/op	      12 allocs/op
BenchmarkCBCEncrypt/4KB-8            	  145641	      8152 ns/op	 502.46 MB/s	   21024 B/op	      12 allocs/op
BenchmarkCBCEncrypt/4KB-8            	  141673	      8098 ns/op	 505.83 MB/s	   21024 B/op	      12 allocs/op
BenchmarkCBCEncrypt/4KB-8            	  148485	      8096 ns/op	 505.90 MB/s	   21024 B/op	      12 allocs/op
BenchmarkCBCEncrypt/8KB-8            	   76503	     15236 ns/op	 537.67 MB/s	   41248 B/op	      12 allocs/op
BenchmarkCBCEncrypt/8KB-8            	   77198	     15291 ns/op	 535.73 MB/s	   41248 B/op	      12 allocs/op
BenchmarkCBCEncrypt/8KB-8            	   77886	     15230 ns/op	 537.87 MB/s	   41248 B/op	      12 allocs/op
BenchmarkCBCEncrypt/8KB-8            	   78111	     15696 ns/op	 521.93 MB/s	   41248 B/op	      12 allocs/op
BenchmarkCBCEncrypt/8KB-8            	   75100	     15415 ns/op	 531.44 MB/s	   41248 B/op	      12 allocs/op
BenchmarkCBCDecrypt/016B-8           	 2376333	       505.2 ns/op	  31.67 MB/s	     752 B/op	       9 allocs/op
BenchmarkCBCDecrypt/016B-8           	 2367526	       508.8 ns/op	  31.45 MB/s	     752 B/op	       9 allocs/op
BenchmarkCBCDecrypt/016B-8           	 2373922	       506.0 ns/op	  31.62 MB/s	     752 B/op	       9 allocs/op
BenchmarkCBCDecrypt/016B-8           	 2361662	       506.5 ns/op	  31.59 MB/s	     752 B/op	       9 allocs/op
BenchmarkCBCDecrypt/016B-8           	 2321018	       527.5 ns/op	  30.33 MB/s	     752 B/op	       9 allocs/op
BenchmarkCBCDecrypt/064B-8           	 1925778	       629.0 ns/op	 101.76 MB/s	     800 B/op	       9 allocs/op
BenchmarkCBCDecrypt/064B-8           	 1897490	       664.4 ns/op	  96.33 MB/s	     800 B/op	       9 allocs/op
BenchmarkCBCDecrypt/064B-8           	 1816564	       648.9 ns/op	  98.63 MB/s	     800 B/op	       9 allocs/op
BenchmarkCBCDecrypt/064B-8           	 1818765	       635.6 ns/op	 100.68 MB/s	     800 B/op	       9 allocs/op
BenchmarkCBCDecrypt/064B-8           	 1750010	       758.4 ns/op	  84.38 MB/s	     800 B/op	       9 allocs/op
BenchmarkCBCDecrypt/256B-8           	 1000000	      1027 ns/op	 249.39 MB/s	    1008 B/op	       9 allocs/op
BenchmarkCBCDecrypt/256B-8           	 1000000	      1079 ns/op	 237.26 MB/s	    1008 B/op	       9 allocs/op
BenchmarkCBCDecrypt/256B-8           	 1000000	      1019 ns/op	 251.26 MB/s	    1008 B/op	       9 allocs/op
BenchmarkCBCDecrypt/256B-8           	 1000000	      1002 ns/op	 255.48 MB/s	    1008 B/op	       9 allocs/op
BenchmarkCBCDecrypt/256B-8           	 1000000	      1085 ns/op	 236.04 MB/s	    1008 B/op	       9 allocs/op
BenchmarkCBCDecrypt/512B-8           	  921879	      1267 ns/op	 403.99 MB/s	    1296 B/op	       9 allocs/op
BenchmarkCBCDecrypt/512B-8           	  897073	      1282 ns/op	 399.53 MB/s	    1296 B/op	       9 allocs/op
BenchmarkCBCDecrypt/512B-8           	  897502	      1241 ns/op	 412.70 MB/s	    1296 B/op	       9 allocs/op
BenchmarkCBCDecrypt/512B-8           	  937896	      1239 ns/op	 413.24 MB/s	    1296 B/op	       9 allocs/op
BenchmarkCBCDecrypt/512B-8           	  930601	      1238 ns/op	 413.69 MB/s	    1296 B/op	       9 allocs/op
BenchmarkCBCDecrypt/1KB-8            	  661568	      1765 ns/op	 580.30 MB/s	    1808 B/op	       9 allocs/op
BenchmarkCBCDecrypt/1KB-8            	  661369	      1772 ns/op	 577.99 MB/s	    1808 B/op	       9 allocs/op
BenchmarkCBCDecrypt/1KB-8            	  652658	      1808 ns/op	 566.50 MB/s	    1808 B/op	       9 allocs/op
BenchmarkCBCDecrypt/1KB-8            	  640128	      1835 ns/op	 558.11 MB/s	    1808 B/op	       9 allocs/op
BenchmarkCBCDecrypt/1KB-8            	  672516	      1812 ns/op	 565.08 MB/s	    1808 B/op	       9 allocs/op
BenchmarkCBCDecrypt/1.4KB-8          	  500619	      2316 ns/op	 647.62 MB/s	    2448 B/op	       9 allocs/op
BenchmarkCBCDecrypt/1.4KB-8          	  501224	      2359 ns/op	 635.93 MB/s	    2448 B/op	       9 allocs/op
BenchmarkCBCDecrypt/1.4KB-8          	  515241	      2490 ns/op	 602.33 MB/s	    2448 B/op	       9 allocs/op
BenchmarkCBCDecrypt/1.4KB-8          	  495411	      2442 ns/op	 614.16 MB/s	    2448 B/op	       9 allocs/op
BenchmarkCBCDecrypt/1.4KB-8          	  495418	      2391 ns/op	 627.23 MB/s	    2448 B/op	       9 allocs/op
BenchmarkCCMEncrypt/016B-8           	 3192336	       396.7 ns/op	  40.33 MB/s	     672 B/op	       7 allocs/op
BenchmarkCCMEncrypt/016B-8           	 3231351	       375.2 ns/op	  42.65 MB/s	     672 B/op	       7 allocs/op
BenchmarkCCMEncrypt/016B-8           	 3222243	       373.7 ns/op	  42.82 MB/s	     672 B/op	       7 allocs/op
BenchmarkCCMEncrypt/016B-8           	 3321712	       364.9 ns/op	  43.84 MB/s	     672 B/op	       7 allocs/op
BenchmarkCCMEncrypt/016B-8           	 3245694	       370.9 ns/op	  43.14 MB/s	     672 B/op	       7 allocs/op
BenchmarkCCMEncrypt/064B-8           	 2675642	       443.4 ns/op	 144.35 MB/s	     768 B/op	       7 allocs/op
BenchmarkCCMEncrypt/064B-8           	 2727744	       446.5 ns/op	 143.35 MB/s	     768 B/op	       7 allocs/op
BenchmarkCCMEncrypt/064B-8           	 2755156	       448.2 ns/op	 142.80 MB/s	     768 B/op	       7 allocs/op
BenchmarkCCMEncrypt/064B-8           	 2682102	       440.3 ns/op	 145.37 MB/s	     768 B/op	       7 allocs/op
BenchmarkCCMEncrypt/064B-8           	 2751405	       437.3 ns/op	 146.35 MB/s	     768 B/op	       7 allocs/op
BenchmarkCCMEncrypt/128B-8           	 2224977	       540.4 ns/op	 236.87 MB/s	     896 B/op	       7 allocs/op
BenchmarkCCMEncrypt/128B-8           	 2211456	       565.7 ns/op	 226.27 MB/s	     896 B/op	       7 allocs/op
BenchmarkCCMEncrypt/128B-8           	 2246071	       538.0 ns/op	 237.92 MB/s	     896 B/op	       7 allocs/op
BenchmarkCCMEncrypt/128B-8           	 2220681	       538.9 ns/op	 237.50 MB/s	     896 B/op	       7 allocs/op
BenchmarkCCMEncrypt/128B-8           	 2232416	       538.3 ns/op	 237.80 MB/s	     896 B/op	       7 allocs/op
BenchmarkCCMEncrypt/256B-8           	 1625496	       745.0 ns/op	 343.63 MB/s	    1184 B/op	       7 allocs/op
BenchmarkCCMEncrypt/256B-8           	 1646250	       724.0 ns/op	 353.61 MB/s	    1184 B/op	       7 allocs/op
BenchmarkCCMEncrypt/256B-8           	 1650644	       723.8 ns/op	 353.68 MB/s	    1184 B/op	       7 allocs/op
BenchmarkCCMEncrypt/256B-8           	 1654566	       725.9 ns/op	 352.65 MB/s	    1184 B/op	       7 allocs/op
BenchmarkCCMEncrypt/256B-8           	 1649877	       761.0 ns/op	 336.41 MB/s	    1184 B/op	       7 allocs/op
BenchmarkCCMEncrypt/512B-8           	 1000000	      1150 ns/op	 445.25 MB/s	    1728 B/op	       7 allocs/op
BenchmarkCCMEncrypt/512B-8           	  995798	      1154 ns/op	 443.53 MB/s	    1728 B/op	       7 allocs/op
BenchmarkCCMEncrypt/512B-8           	 1000000	      1114 ns/op	 459.62 MB/s	    1728 B/op	       7 allocs/op
BenchmarkCCMEncrypt/512B-8           	 1000000	      1126 ns/op	 454.85 MB/s	    1728 B/op	       7 allocs/op
BenchmarkCCMEncrypt/512B-8           	 1000000	      1110 ns/op	 461.18 MB/s	    1728 B/op	       7 allocs/op
BenchmarkCCMEncrypt/800B-8           	  709423	      1556 ns/op	 513.99 MB/s	    2368 B/op	       7 allocs/op
BenchmarkCCMEncrypt/800B-8           	  733540	      1544 ns/op	 518.00 MB/s	    2368 B/op	       7 allocs/op
BenchmarkCCMEncrypt/800B-8           	  734892	      1543 ns/op	 518.59 MB/s	    2368 B/op	       7 allocs/op
BenchmarkCCMEncrypt/800B-8           	  742418	      1548 ns/op	 516.88 MB/s	    2368 B/op	       7 allocs/op
BenchmarkCCMEncrypt/800B-8           	  759867	      1542 ns/op	 518.87 MB/s	    2368 B/op	       7 allocs/op
BenchmarkCCMEncrypt/1KB-8            	  612872	      1887 ns/op	 542.61 MB/s	    2880 B/op	       7 allocs/op
BenchmarkCCMEncrypt/1KB-8            	  599383	      1880 ns/op	 544.71 MB/s	    2880 B/op	       7 allocs/op
BenchmarkCCMEncrypt/1KB-8            	  612858	      1884 ns/op	 543.55 MB/s	    2880 B/op	       7 allocs/op
BenchmarkCCMEncrypt/1KB-8            	  605857	      1914 ns/op	 535.14 MB/s	    2880 B/op	       7 allocs/op
BenchmarkCCMEncrypt/1KB-8            	  594577	      2016 ns/op	 507.90 MB/s	    2880 B/op	       7 allocs/op
BenchmarkCCMEncrypt/1.1KB-8          	  511821	      2160 ns/op	 555.48 MB/s	    3137 B/op	       7 allocs/op
BenchmarkCCMEncrypt/1.1KB-8          	  539186	      2152 ns/op	 557.65 MB/s	    3137 B/op	       7 allocs/op
BenchmarkCCMEncrypt/1.1KB-8          	  531543	      2348 ns/op	 511.02 MB/s	    3137 B/op	       7 allocs/op
BenchmarkCCMEncrypt/1.1KB-8          	  524566	      2278 ns/op	 526.74 MB/s	    3137 B/op	       7 allocs/op
BenchmarkCCMEncrypt/1.1KB-8          	  517476	      2342 ns/op	 512.39 MB/s	    3137 B/op	       7 allocs/op
BenchmarkCCMEncrypt/1.4KB-8          	  412954	      2820 ns/op	 531.84 MB/s	    3905 B/op	       7 allocs/op
BenchmarkCCMEncrypt/1.4KB-8          	  438360	      2639 ns/op	 568.41 MB/s	    3905 B/op	       7 allocs/op
BenchmarkCCMEncrypt/1.4KB-8          	  422386	      2884 ns/op	 520.11 MB/s	    3905 B/op	       7 allocs/op
BenchmarkCCMEncrypt/1.4KB-8          	  421708	      2907 ns/op	 516.03 MB/s	    3905 B/op	       7 allocs/op
BenchmarkCCMEncrypt/1.4KB-8          	  410431	      2985 ns/op	 502.56 MB/s	    3905 B/op	       7 allocs/op
BenchmarkCCMEncrypt/4KB-8            	  168142	      6833 ns/op	 599.46 MB/s	   10307 B/op	       7 allocs/op
BenchmarkCCMEncrypt/4KB-8            	  170899	      7108 ns/op	 576.29 MB/s	   10307 B/op	       7 allocs/op
BenchmarkCCMEncrypt/4KB-8            	  182451	      7104 ns/op	 576.56 MB/s	   10307 B/op	       7 allocs/op
BenchmarkCCMEncrypt/4KB-8            	  153822	      6804 ns/op	 601.97 MB/s	   10307 B/op	       7 allocs/op
BenchmarkCCMEncrypt/4KB-8            	  171595	      6942 ns/op	 590.05 MB/s	   10307 B/op	       7 allocs/op
BenchmarkCCMEncrypt/8KB-8            	   87622	     12961 ns/op	 632.06 MB/s	   19526 B/op	       7 allocs/op
BenchmarkCCMEncrypt/8KB-8            	   94958	     12945 ns/op	 632.82 MB/s	   19526 B/op	       7 allocs/op
BenchmarkCCMEncrypt/8KB-8            	   90561	     13118 ns/op	 624.51 MB/s	   19526 B/op	       7 allocs/op
BenchmarkCCMEncrypt/8KB-8            	   88195	     13760 ns/op	 595.37 MB/s	   19526 B/op	       7 allocs/op
BenchmarkCCMEncrypt/8KB-8            	   92433	     13279 ns/op	 616.91 MB/s	   19526 B/op	       7 allocs/op
BenchmarkCCMDecrypt/016B-8           	 4038172	       319.3 ns/op	  50.11 MB/s	     656 B/op	       7 allocs/op
BenchmarkCCMDecrypt/016B-8           	 4083902	       292.3 ns/op	  54.74 MB/s	     656 B/op	       7 allocs/op
BenchmarkCCMDecrypt/016B-8           	 4120485	       287.2 ns/op	  55.71 MB/s	     656 B/op	       7 allocs/op
BenchmarkCCMDecrypt/016B-8           	 4218748	       284.9 ns/op	  56.16 MB/s	     656 B/op	       7 allocs/op
BenchmarkCCMDecrypt/016B-8           	 4104463	       300.3 ns/op	  53.27 MB/s	     656 B/op	       7 allocs/op
BenchmarkCCMDecrypt/064B-8           	 3223347	       367.5 ns/op	 174.14 MB/s	     752 B/op	       7 allocs/op
BenchmarkCCMDecrypt/064B-8           	 3260619	       374.0 ns/op	 171.12 MB/s	     752 B/op	       7 allocs/op
BenchmarkCCMDecrypt/064B-8           	 3270019	       370.1 ns/op	 172.90 MB/s	     752 B/op	       7 allocs/op
BenchmarkCCMDecrypt/064B-8           	 3242348	       381.8 ns/op	 167.61 MB/s	     752 B/op	       7 allocs/op
BenchmarkCCMDecrypt/064B-8           	 3183375	       369.8 ns/op	 173.07 MB/s	     752 B/op	       7 allocs/op
BenchmarkCCMDecrypt/256B-8           	 1737621	       679.8 ns/op	 376.59 MB/s	    1152 B/op	       7 allocs/op
BenchmarkCCMDecrypt/256B-8           	 1856934	       674.5 ns/op	 379.54 MB/s	    1152 B/op	       7 allocs/op
BenchmarkCCMDecrypt/256B-8           	 1839315	       706.4 ns/op	 362.38 MB/s	    1152 B/op	       7 allocs/op
BenchmarkCCMDecrypt/256B-8           	 1719156	       668.9 ns/op	 382.72 MB/s	    1152 B/op	       7 allocs/op
BenchmarkCCMDecrypt/256B-8           	 1750438	       686.7 ns/op	 372.81 MB/s	    1152 B/op	       7 allocs/op
BenchmarkCCMDecrypt/512B-8           	 1000000	      1126 ns/op	 454.89 MB/s	    1664 B/op	       7 allocs/op
BenchmarkCCMDecrypt/512B-8           	 1000000	      1048 ns/op	 488.70 MB/s	    1664 B/op	       7 allocs/op
BenchmarkCCMDecrypt/512B-8           	 1000000	      1040 ns/op	 492.40 MB/s	    1664 B/op	       7 allocs/op
BenchmarkCCMDecrypt/512B-8           	 1000000	      1078 ns/op	 475.16 MB/s	    1664 B/op	       7 allocs/op
BenchmarkCCMDecrypt/512B-8           	 1000000	      1061 ns/op	 482.65 MB/s	    1664 B/op	       7 allocs/op
BenchmarkCCMDecrypt/1KB-8            	  611713	      1904 ns/op	 537.86 MB/s	    2752 B/op	       7 allocs/op
BenchmarkCCMDecrypt/1KB-8            	  630199	      1871 ns/op	 547.16 MB/s	    2752 B/op	       7 allocs/op
BenchmarkCCMDecrypt/1KB-8            	  617858	      2033 ns/op	 503.59 MB/s	    2752 B/op	       7 allocs/op
BenchmarkCCMDecrypt/1KB-8            	  605838	      1867 ns/op	 548.54 MB/s	    2752 B/op	       7 allocs/op
BenchmarkCCMDecrypt/1KB-8            	  627026	      1862 ns/op	 549.84 MB/s	    2752 B/op	       7 allocs/op
BenchmarkCCMDecrypt/1.4KB-8          	  431302	      2738 ns/op	 547.83 MB/s	    3905 B/op	       7 allocs/op
BenchmarkCCMDecrypt/1.4KB-8          	  443224	      2717 ns/op	 552.10 MB/s	    3905 B/op	       7 allocs/op
BenchmarkCCMDecrypt/1.4KB-8          	  448317	      2633 ns/op	 569.66 MB/s	    3905 B/op	       7 allocs/op
BenchmarkCCMDecrypt/1.4KB-8          	  431710	      2614 ns/op	 573.83 MB/s	    3905 B/op	       7 allocs/op
BenchmarkCCMDecrypt/1.4KB-8          	  463338	      2576 ns/op	 582.20 MB/s	    3905 B/op	       7 allocs/op
BenchmarkChaCha20Poly1305Encrypt/016B-8         	 2863556	       422.5 ns/op	  37.87 MB/s	     112 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/016B-8         	 2855761	       434.2 ns/op	  36.85 MB/s	     112 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/016B-8         	 2820774	       426.0 ns/op	  37.56 MB/s	     112 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/016B-8         	 2831140	       426.9 ns/op	  37.48 MB/s	     112 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/016B-8         	 2849323	       419.2 ns/op	  38.16 MB/s	     112 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/064B-8         	 2627205	       458.1 ns/op	 139.71 MB/s	     208 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/064B-8         	 2551522	       492.9 ns/op	 129.84 MB/s	     208 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/064B-8         	 2531866	       476.2 ns/op	 134.39 MB/s	     208 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/064B-8         	 2641160	       471.1 ns/op	 135.86 MB/s	     208 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/064B-8         	 2638965	       457.7 ns/op	 139.83 MB/s	     208 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/128B-8         	 2293755	       524.0 ns/op	 244.26 MB/s	     336 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/128B-8         	 2219131	       526.9 ns/op	 242.91 MB/s	     336 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/128B-8         	 2286682	       523.5 ns/op	 244.50 MB/s	     336 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/128B-8         	 2255845	       526.3 ns/op	 243.21 MB/s	     336 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/128B-8         	 2275700	       529.5 ns/op	 241.72 MB/s	     336 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/256B-8         	 1485604	       807.0 ns/op	 317.22 MB/s	     624 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/256B-8         	 1494932	       807.0 ns/op	 317.21 MB/s	     624 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/256B-8         	 1502072	       807.8 ns/op	 316.93 MB/s	     624 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/256B-8         	 1445994	       851.4 ns/op	 300.70 MB/s	     624 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/256B-8         	 1448780	       823.4 ns/op	 310.92 MB/s	     624 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/512B-8         	  951895	      1183 ns/op	 432.68 MB/s	    1168 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/512B-8         	 1000000	      1213 ns/op	 422.27 MB/s	    1168 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/512B-8         	  957213	      1172 ns/op	 436.95 MB/s	    1168 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/512B-8         	 1000000	      1252 ns/op	 408.83 MB/s	    1168 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/512B-8         	  781130	      1356 ns/op	 377.62 MB/s	    1168 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/800B-8         	  732819	      1557 ns/op	 513.97 MB/s	    1808 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/800B-8         	  766177	      1602 ns/op	 499.46 MB/s	    1808 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/800B-8         	  758792	      1538 ns/op	 520.11 MB/s	    1808 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/800B-8         	  808413	      1665 ns/op	 480.48 MB/s	    1808 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/800B-8         	  628075	      1687 ns/op	 474.34 MB/s	    1808 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/1KB-8          	  635331	      1886 ns/op	 543.01 MB/s	    2320 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/1KB-8          	  645582	      1813 ns/op	 564.89 MB/s	    2320 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/1KB-8          	  638778	      1911 ns/op	 535.98 MB/s	    2320 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/1KB-8          	  593373	      1918 ns/op	 533.78 MB/s	    2320 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/1KB-8          	  638305	      1860 ns/op	 550.45 MB/s	    2320 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/1.1KB-8        	  599136	      1916 ns/op	 626.43 MB/s	    2576 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/1.1KB-8        	  605458	      1910 ns/op	 628.32 MB/s	    2576 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/1.1KB-8        	  605480	      1953 ns/op	 614.34 MB/s	    2576 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/1.1KB-8        	  614458	      1931 ns/op	 621.28 MB/s	    2576 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/1.1KB-8        	  607561	      1935 ns/op	 620.23 MB/s	    2576 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/1.4KB-8        	  468944	      2457 ns/op	 610.41 MB/s	    3345 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/1.4KB-8        	  473988	      2447 ns/op	 612.89 MB/s	    3345 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/1.4KB-8        	  471763	      2484 ns/op	 603.83 MB/s	    3345 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/1.4KB-8        	  470032	      2596 ns/op	 577.85 MB/s	    3345 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/1.4KB-8        	  444613	      2613 ns/op	 573.97 MB/s	    3345 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/4KB-8          	  196704	      6025 ns/op	 679.87 MB/s	    9747 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/4KB-8          	  194714	      6000 ns/op	 682.64 MB/s	    9747 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/4KB-8          	  209832	      5825 ns/op	 703.17 MB/s	    9747 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/4KB-8          	  205977	      5867 ns/op	 698.12 MB/s	    9747 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/4KB-8          	  198030	      5896 ns/op	 694.71 MB/s	    9747 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/8KB-8          	  109182	     10931 ns/op	 749.45 MB/s	   18966 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/8KB-8          	  110910	     10766 ns/op	 760.90 MB/s	   18966 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/8KB-8          	  110523	     10901 ns/op	 751.47 MB/s	   18966 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/8KB-8          	  110752	     10948 ns/op	 748.25 MB/s	   18966 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/8KB-8          	  110887	     10757 ns/op	 761.55 MB/s	   18966 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Decrypt/016B-8         	 3945021	       313.2 ns/op	  51.08 MB/s	      80 B/op	       2 allocs/op
BenchmarkChaCha20Poly1305Decrypt/016B-8         	 3942936	       302.2 ns/op	  52.95 MB/s	      80 B/op	       2 allocs/op
BenchmarkChaCha20Poly1305Decrypt/016B-8         	 3929630	       310.2 ns/op	  51.59 MB/s	      80 B/op	       2 allocs/op
BenchmarkChaCha20Poly1305Decrypt/016B-8         	 3629592	       323.4 ns/op	  49.47 MB/s	      80 B/op	       2 allocs/op
BenchmarkChaCha20Poly1305Decrypt/016B-8         	 3970833	       310.9 ns/op	  51.47 MB/s	      80 B/op	       2 allocs/op
BenchmarkChaCha20Poly1305Decrypt/064B-8         	 3546702	       335.6 ns/op	 190.69 MB/s	     128 B/op	       2 allocs/op
BenchmarkChaCha20Poly1305Decrypt/064B-8         	 3595584	       334.5 ns/op	 191.35 MB/s	     128 B/op	       2 allocs/op
BenchmarkChaCha20Poly1305Decrypt/064B-8         	 3345298	       353.4 ns/op	 181.11 MB/s	     128 B/op	       2 allocs/op
BenchmarkChaCha20Poly1305Decrypt/064B-8         	 3552616	       347.4 ns/op	 184.25 MB/s	     128 B/op	       2 allocs/op
BenchmarkChaCha20Poly1305Decrypt/064B-8         	 3378624	       404.5 ns/op	 158.22 MB/s	     128 B/op	       2 allocs/op
BenchmarkChaCha20Poly1305Decrypt/256B-8         	 1727340	       682.3 ns/op	 375.22 MB/s	     336 B/op	       2 allocs/op
BenchmarkChaCha20Poly1305Decrypt/256B-8         	 1657614	       727.1 ns/op	 352.11 MB/s	     336 B/op	       2 allocs/op
BenchmarkChaCha20Poly1305Decrypt/256B-8         	 1715906	       712.0 ns/op	 359.54 MB/s	     336 B/op	       2 allocs/op
BenchmarkChaCha20Poly1305Decrypt/256B-8         	 1701831	       709.0 ns/op	 361.07 MB/s	     336 B/op	       2 allocs/op
BenchmarkChaCha20Poly1305Decrypt/256B-8         	 1706634	       690.2 ns/op	 370.93 MB/s	     336 B/op	       2 allocs/op
BenchmarkChaCha20Poly1305Decrypt/512B-8         	 1000000	      1017 ns/op	 503.33 MB/s	     592 B/op	       2 allocs/op
BenchmarkChaCha20Poly1305Decrypt/512B-8         	 1000000	      1048 ns/op	 488.38 MB/s	     592 B/op	       2 allocs/op
BenchmarkChaCha20Poly1305Decrypt/512B-8         	 1000000	      1031 ns/op	 496.80 MB/s	     592 B/op	       2 allocs/op
BenchmarkChaCha20Poly1305Decrypt/512B-8         	 1000000	      1021 ns/op	 501.51 MB/s	     592 B/op	       2 allocs/op
BenchmarkChaCha20Poly1305Decrypt/512B-8         	 1000000	      1007 ns/op	 508.32 MB/s	     592 B/op	       2 allocs/op
BenchmarkChaCha20Poly1305Decrypt/1KB-8          	  710097	      1633 ns/op	 627.04 MB/s	    1168 B/op	       2 allocs/op
BenchmarkChaCha20Poly1305Decrypt/1KB-8          	  724670	      1626 ns/op	 629.59 MB/s	    1168 B/op	       2 allocs/op
BenchmarkChaCha20Poly1305Decrypt/1KB-8          	  710164	      1658 ns/op	 617.77 MB/s	    1168 B/op	       2 allocs/op
BenchmarkChaCha20Poly1305Decrypt/1KB-8          	  721503	      1607 ns/op	 637.03 MB/s	    1168 B/op	       2 allocs/op
BenchmarkChaCha20Poly1305Decrypt/1KB-8          	  709400	      1617 ns/op	 633.11 MB/s	    1168 B/op	       2 allocs/op
BenchmarkChaCha20Poly1305Decrypt/1.4KB-8        	  529196	      2211 ns/op	 678.37 MB/s	    1808 B/op	       2 allocs/op
BenchmarkChaCha20Poly1305Decrypt/1.4KB-8        	  532209	      2219 ns/op	 675.87 MB/s	    1808 B/op	       2 allocs/op
BenchmarkChaCha20Poly1305Decrypt/1.4KB-8        	  517626	      2263 ns/op	 662.80 MB/s	    1808 B/op	       2 allocs/op
BenchmarkChaCha20Poly1305Decrypt/1.4KB-8        	  480895	      2380 ns/op	 630.36 MB/s	    1808 B/op	       2 allocs/op
BenchmarkChaCha20Poly1305Decrypt/1.4KB-8        	  536877	      2271 ns/op	 660.38 MB/s	    1808 B/op	       2 allocs/op
BenchmarkGCMEncrypt/016B-8                      	 5547640	       215.4 ns/op	  74.27 MB/s	     112 B/op	       3 allocs/op
BenchmarkGCMEncrypt/016B-8                      	 5569899	       215.8 ns/op	  74.13 MB/s	     112 B/op	       3 allocs/op
BenchmarkGCMEncrypt/016B-8                      	 5497106	       217.4 ns/op	  73.61 MB/s	     112 B/op	       3 allocs/op
BenchmarkGCMEncrypt/016B-8                      	 5484741	       219.2 ns/op	  72.99 MB/s	     112 B/op	       3 allocs/op
BenchmarkGCMEncrypt/016B-8                      	 5478183	       230.0 ns/op	  69.55 MB/s	     112 B/op	       3 allocs/op
BenchmarkGCMEncrypt/064B-8                      	 4508162	       261.1 ns/op	 245.16 MB/s	     208 B/op	       3 allocs/op
BenchmarkGCMEncrypt/064B-8                      	 4678344	       256.7 ns/op	 249.31 MB/s	     208 B/op	       3 allocs/op
BenchmarkGCMEncrypt/064B-8                      	 4580127	       261.7 ns/op	 244.59 MB/s	     208 B/op	       3 allocs/op
BenchmarkGCMEncrypt/064B-8                      	 4611972	       266.8 ns/op	 239.87 MB/s	     208 B/op	       3 allocs/op
BenchmarkGCMEncrypt/064B-8                      	 4174666	       256.7 ns/op	 249.33 MB/s	     208 B/op	       3 allocs/op
BenchmarkGCMEncrypt/128B-8                      	 4784863	       254.2 ns/op	 503.48 MB/s	     336 B/op	       3 allocs/op
BenchmarkGCMEncrypt/128B-8                      	 4767460	       254.8 ns/op	 502.34 MB/s	     336 B/op	       3 allocs/op
BenchmarkGCMEncrypt/128B-8                      	 4608432	       251.8 ns/op	 508.43 MB/s	     336 B/op	       3 allocs/op
BenchmarkGCMEncrypt/128B-8                      	 4790046	       256.6 ns/op	 498.89 MB/s	     336 B/op	       3 allocs/op
BenchmarkGCMEncrypt/128B-8                      	 4570347	       255.8 ns/op	 500.40 MB/s	     336 B/op	       3 allocs/op
BenchmarkGCMEncrypt/256B-8                      	 4148302	       304.2 ns/op	 841.65 MB/s	     624 B/op	       3 allocs/op
BenchmarkGCMEncrypt/256B-8                      	 4124254	       289.8 ns/op	 883.28 MB/s	     624 B/op	       3 allocs/op
BenchmarkGCMEncrypt/256B-8                      	 4076655	       289.9 ns/op	 882.98 MB/s	     624 B/op	       3 allocs/op
BenchmarkGCMEncrypt/256B-8                      	 3730696	       310.7 ns/op	 823.98 MB/s	     624 B/op	       3 allocs/op
BenchmarkGCMEncrypt/256B-8                      	 3922077	       305.0 ns/op	 839.45 MB/s	     624 B/op	       3 allocs/op
BenchmarkGCMEncrypt/512B-8                      	 3096878	       389.7 ns/op	1313.95 MB/s	    1168 B/op	       3 allocs/op
BenchmarkGCMEncrypt/512B-8                      	 3130941	       391.6 ns/op	1307.44 MB/s	    1168 B/op	       3 allocs/op
BenchmarkGCMEncrypt/512B-8                      	 3035605	       390.1 ns/op	1312.58 MB/s	    1168 B/op	       3 allocs/op
BenchmarkGCMEncrypt/512B-8                      	 2957745	       384.4 ns/op	1331.84 MB/s	    1168 B/op	       3 allocs/op
BenchmarkGCMEncrypt/512B-8                      	 3103064	       402.5 ns/op	1271.99 MB/s	    1168 B/op	       3 allocs/op
BenchmarkGCMEncrypt/800B-8                      	 2425758	       511.5 ns/op	1564.00 MB/s	    1808 B/op	       3 allocs/op
BenchmarkGCMEncrypt/800B-8                      	 2126394	       513.4 ns/op	1558.28 MB/s	    1808 B/op	       3 allocs/op
BenchmarkGCMEncrypt/800B-8                      	 2309545	       500.0 ns/op	1599.93 MB/s	    1808 B/op	       3 allocs/op
BenchmarkGCMEncrypt/800B-8                      	 2416965	       497.7 ns/op	1607.23 MB/s	    1808 B/op	       3 allocs/op
BenchmarkGCMEncrypt/800B-8                      	 2390226	       501.4 ns/op	1595.58 MB/s	    1808 B/op	       3 allocs/op
BenchmarkGCMEncrypt/1KB-8                       	 2003064	       620.5 ns/op	1650.17 MB/s	    2320 B/op	       3 allocs/op
BenchmarkGCMEncrypt/1KB-8                       	 1838439	       629.7 ns/op	1626.13 MB/s	    2320 B/op	       3 allocs/op
BenchmarkGCMEncrypt/1KB-8                       	 2065098	       585.0 ns/op	1750.42 MB/s	    2320 B/op	       3 allocs/op
BenchmarkGCMEncrypt/1KB-8                       	 2101845	       587.7 ns/op	1742.51 MB/s	    2320 B/op	       3 allocs/op
BenchmarkGCMEncrypt/1KB-8                       	 2118142	       574.3 ns/op	1782.92 MB/s	    2320 B/op	       3 allocs/op
BenchmarkGCMEncrypt/1.1KB-8                     	 1762347	       649.7 ns/op	1846.89 MB/s	    2576 B/op	       3 allocs/op
BenchmarkGCMEncrypt/1.1KB-8                     	 1735674	       659.3 ns/op	1819.99 MB/s	    2576 B/op	       3 allocs/op
BenchmarkGCMEncrypt/1.1KB-8                     	 1847626	       657.6 ns/op	1824.92 MB/s	    2576 B/op	       3 allocs/op
BenchmarkGCMEncrypt/1.1KB-8                     	 1831604	       669.6 ns/op	1792.01 MB/s	    2576 B/op	       3 allocs/op
BenchmarkGCMEncrypt/1.1KB-8                     	 1830840	       662.2 ns/op	1812.12 MB/s	    2576 B/op	       3 allocs/op
BenchmarkGCMEncrypt/1.4KB-8                     	 1513846	       773.7 ns/op	1938.70 MB/s	    3345 B/op	       3 allocs/op
BenchmarkGCMEncrypt/1.4KB-8                     	 1544923	       778.6 ns/op	1926.43 MB/s	    3345 B/op	       3 allocs/op
BenchmarkGCMEncrypt/1.4KB-8                     	 1549476	       790.4 ns/op	1897.87 MB/s	    3345 B/op	       3 allocs/op
BenchmarkGCMEncrypt/1.4KB-8                     	 1507431	       791.6 ns/op	1894.98 MB/s	    3345 B/op	       3 allocs/op
BenchmarkGCMEncrypt/1.4KB-8                     	 1542538	       795.4 ns/op	1885.76 MB/s	    3345 B/op	       3 allocs/op
BenchmarkGCMEncrypt/4KB-8                       	  664251	      1644 ns/op	2490.77 MB/s	    9747 B/op	       3 allocs/op
BenchmarkGCMEncrypt/4KB-8                       	  691870	      1659 ns/op	2469.34 MB/s	    9747 B/op	       3 allocs/op
BenchmarkGCMEncrypt/4KB-8                       	  662659	      1643 ns/op	2493.56 MB/s	    9747 B/op	       3 allocs/op
BenchmarkGCMEncrypt/4KB-8                       	  725676	      1659 ns/op	2468.43 MB/s	    9747 B/op	       3 allocs/op
BenchmarkGCMEncrypt/4KB-8                       	  699848	      1654 ns/op	2477.14 MB/s	    9747 B/op	       3 allocs/op
BenchmarkGCMEncrypt/8KB-8                       	  377952	      2942 ns/op	2784.91 MB/s	   18967 B/op	       3 allocs/op
BenchmarkGCMEncrypt/8KB-8                       	  408315	      2983 ns/op	2746.12 MB/s	   18967 B/op	       3 allocs/op
BenchmarkGCMEncrypt/8KB-8                       	  379305	      3004 ns/op	2726.85 MB/s	   18967 B/op	       3 allocs/op
BenchmarkGCMEncrypt/8KB-8                       	  388965	      3010 ns/op	2721.35 MB/s	   18967 B/op	       3 allocs/op
BenchmarkGCMEncrypt/8KB-8                       	  376875	      2955 ns/op	2772.61 MB/s	   18967 B/op	       3 allocs/op
BenchmarkGCMDecrypt/016B-8                      	11968527	       100.4 ns/op	 159.33 MB/s	      80 B/op	       2 allocs/op
BenchmarkGCMDecrypt/016B-8                      	11793655	        99.36 ns/op	 161.03 MB/s	      80 B/op	       2 allocs/op
BenchmarkGCMDecrypt/016B-8                      	12110390	        99.77 ns/op	 160.36 MB/s	      80 B/op	       2 allocs/op
BenchmarkGCMDecrypt/016B-8                      	12094386	        99.79 ns/op	 160.33 MB/s	      80 B/op	       2 allocs/op
BenchmarkGCMDecrypt/016B-8                      	11966925	        98.97 ns/op	 161.66 MB/s	      80 B/op	       2 allocs/op
BenchmarkGCMDecrypt/064B-8                      	 8771103	       135.0 ns/op	 473.93 MB/s	     128 B/op	       2 allocs/op
BenchmarkGCMDecrypt/064B-8                      	 8897132	       133.9 ns/op	 477.84 MB/s	     128 B/op	       2 allocs/op
BenchmarkGCMDecrypt/064B-8                      	 9038494	       134.3 ns/op	 476.48 MB/s	     128 B/op	       2 allocs/op
BenchmarkGCMDecrypt/064B-8                      	 8894587	       133.9 ns/op	 477.99 MB/s	     128 B/op	       2 allocs/op
BenchmarkGCMDecrypt/064B-8                      	 8913218	       135.7 ns/op	 471.46 MB/s	     128 B/op	       2 allocs/op
BenchmarkGCMDecrypt/256B-8                      	 7891108	       153.0 ns/op	1672.81 MB/s	     336 B/op	       2 allocs/op
BenchmarkGCMDecrypt/256B-8                      	 7823955	       152.5 ns/op	1678.42 MB/s	     336 B/op	       2 allocs/op
BenchmarkGCMDecrypt/256B-8                      	 8004423	       151.6 ns/op	1688.64 MB/s	     336 B/op	       2 allocs/op
BenchmarkGCMDecrypt/256B-8                      	 7911465	       151.7 ns/op	1687.80 MB/s	     336 B/op	       2 allocs/op
BenchmarkGCMDecrypt/256B-8                      	 7838625	       151.3 ns/op	1691.58 MB/s	     336 B/op	       2 allocs/op
BenchmarkGCMDecrypt/512B-8                      	 5372277	       218.6 ns/op	2342.47 MB/s	     592 B/op	       2 allocs/op
BenchmarkGCMDecrypt/512B-8                      	 5408053	       225.3 ns/op	2272.50 MB/s	     592 B/op	       2 allocs/op
BenchmarkGCMDecrypt/512B-8                      	 5464396	       220.6 ns/op	2321.27 MB/s	     592 B/op	       2 allocs/op
BenchmarkGCMDecrypt/512B-8                      	 5329471	       224.0 ns/op	2285.26 MB/s	     592 B/op	       2 allocs/op
BenchmarkGCMDecrypt/512B-8                      	 5413034	       222.6 ns/op	2299.87 MB/s	     592 B/op	       2 allocs/op
BenchmarkGCMDecrypt/1KB-8                       	 3311175	       363.0 ns/op	2821.08 MB/s	    1168 B/op	       2 allocs/op
BenchmarkGCMDecrypt/1KB-8                       	 3389248	       353.6 ns/op	2895.64 MB/s	    1168 B/op	       2 allocs/op
BenchmarkGCMDecrypt/1KB-8                       	 3368019	       367.1 ns/op	2789.18 MB/s	    1168 B/op	       2 allocs/op
BenchmarkGCMDecrypt/1KB-8                       	 3081631	       359.2 ns/op	2851.16 MB/s	    1168 B/op	       2 allocs/op
BenchmarkGCMDecrypt/1KB-8                       	 3323348	       367.6 ns/op	2785.88 MB/s	    1168 B/op	       2 allocs/op
BenchmarkGCMDecrypt/1.4KB-8                     	 2303808	       522.7 ns/op	2869.86 MB/s	    1808 B/op	       2 allocs/op
BenchmarkGCMDecrypt/1.4KB-8                     	 2272477	       526.9 ns/op	2846.91 MB/s	    1808 B/op	       2 allocs/op
BenchmarkGCMDecrypt/1.4KB-8                     	 2329747	       522.3 ns/op	2872.11 MB/s	    1808 B/op	       2 allocs/op
BenchmarkGCMDecrypt/1.4KB-8                     	 2218104	       524.0 ns/op	2862.73 MB/s	    1808 B/op	       2 allocs/op
BenchmarkGCMDecrypt/1.4KB-8                     	 2324534	       515.3 ns/op	2910.75 MB/s	    1808 B/op	       2 allocs/op
PASS
ok  	github.com/pion/dtls/v3/pkg/crypto/ciphersuite	489.656s

Raw Benchmark Test Output (AFTER):

Click to see results
13:50 $ go test -tags=bench -bench=. -benchmem -count 5
goos: darwin
goarch: arm64
pkg: github.com/pion/dtls/v3/pkg/crypto/ciphersuite
cpu: Apple M1 Pro
BenchmarkCBCEncrypt/016B-8           	 1500296	       793.4 ns/op	  20.17 MB/s	     896 B/op	      13 allocs/op
BenchmarkCBCEncrypt/016B-8           	 1471645	       906.1 ns/op	  17.66 MB/s	     896 B/op	      13 allocs/op
BenchmarkCBCEncrypt/016B-8           	 1419187	       823.4 ns/op	  19.43 MB/s	     896 B/op	      13 allocs/op
BenchmarkCBCEncrypt/016B-8           	 1474836	       818.8 ns/op	  19.54 MB/s	     896 B/op	      13 allocs/op
BenchmarkCBCEncrypt/016B-8           	 1475058	       824.6 ns/op	  19.40 MB/s	     896 B/op	      13 allocs/op
BenchmarkCBCEncrypt/064B-8           	 1353531	       906.0 ns/op	  70.64 MB/s	    1040 B/op	      12 allocs/op
BenchmarkCBCEncrypt/064B-8           	 1355961	       878.6 ns/op	  72.85 MB/s	    1040 B/op	      12 allocs/op
BenchmarkCBCEncrypt/064B-8           	 1387159	       872.1 ns/op	  73.39 MB/s	    1040 B/op	      12 allocs/op
BenchmarkCBCEncrypt/064B-8           	 1384456	       863.3 ns/op	  74.13 MB/s	    1040 B/op	      12 allocs/op
BenchmarkCBCEncrypt/064B-8           	 1383794	       861.3 ns/op	  74.30 MB/s	    1040 B/op	      12 allocs/op
BenchmarkCBCEncrypt/128B-8           	 1000000	      1016 ns/op	 126.03 MB/s	    1424 B/op	      12 allocs/op
BenchmarkCBCEncrypt/128B-8           	 1000000	      1001 ns/op	 127.88 MB/s	    1424 B/op	      12 allocs/op
BenchmarkCBCEncrypt/128B-8           	 1203100	       998.0 ns/op	 128.26 MB/s	    1424 B/op	      12 allocs/op
BenchmarkCBCEncrypt/128B-8           	 1000000	      1000 ns/op	 127.95 MB/s	    1424 B/op	      12 allocs/op
BenchmarkCBCEncrypt/128B-8           	 1000000	      1001 ns/op	 127.92 MB/s	    1424 B/op	      12 allocs/op
BenchmarkCBCEncrypt/256B-8           	  881056	      1281 ns/op	 199.79 MB/s	    2240 B/op	      12 allocs/op
BenchmarkCBCEncrypt/256B-8           	  878989	      1277 ns/op	 200.46 MB/s	    2240 B/op	      12 allocs/op
BenchmarkCBCEncrypt/256B-8           	  835053	      1543 ns/op	 165.86 MB/s	    2240 B/op	      12 allocs/op
BenchmarkCBCEncrypt/256B-8           	  837571	      1479 ns/op	 173.05 MB/s	    2240 B/op	      12 allocs/op
BenchmarkCBCEncrypt/256B-8           	  883684	      1386 ns/op	 184.69 MB/s	    2240 B/op	      12 allocs/op
BenchmarkCBCEncrypt/512B-8           	  637954	      1801 ns/op	 284.25 MB/s	    3488 B/op	      12 allocs/op
BenchmarkCBCEncrypt/512B-8           	  670225	      1728 ns/op	 296.25 MB/s	    3488 B/op	      12 allocs/op
BenchmarkCBCEncrypt/512B-8           	  671841	      1730 ns/op	 295.87 MB/s	    3488 B/op	      12 allocs/op
BenchmarkCBCEncrypt/512B-8           	  664515	      1745 ns/op	 293.37 MB/s	    3488 B/op	      12 allocs/op
BenchmarkCBCEncrypt/512B-8           	  671173	      1768 ns/op	 289.54 MB/s	    3488 B/op	      12 allocs/op
BenchmarkCBCEncrypt/800B-8           	  504944	      2333 ns/op	 342.98 MB/s	    4896 B/op	      12 allocs/op
BenchmarkCBCEncrypt/800B-8           	  489398	      2486 ns/op	 321.76 MB/s	    4896 B/op	      12 allocs/op
BenchmarkCBCEncrypt/800B-8           	  490134	      2410 ns/op	 331.95 MB/s	    4896 B/op	      12 allocs/op
BenchmarkCBCEncrypt/800B-8           	  489760	      2335 ns/op	 342.65 MB/s	    4896 B/op	      12 allocs/op
BenchmarkCBCEncrypt/800B-8           	  506869	      2308 ns/op	 346.69 MB/s	    4896 B/op	      12 allocs/op
BenchmarkCBCEncrypt/1KB-8            	  386797	      2752 ns/op	 372.04 MB/s	    5920 B/op	      12 allocs/op
BenchmarkCBCEncrypt/1KB-8            	  438354	      2749 ns/op	 372.46 MB/s	    5920 B/op	      12 allocs/op
BenchmarkCBCEncrypt/1KB-8            	  398048	      2687 ns/op	 381.11 MB/s	    5920 B/op	      12 allocs/op
BenchmarkCBCEncrypt/1KB-8            	  439171	      2698 ns/op	 379.57 MB/s	    5920 B/op	      12 allocs/op
BenchmarkCBCEncrypt/1KB-8            	  396686	      2842 ns/op	 360.32 MB/s	    5920 B/op	      12 allocs/op
BenchmarkCBCEncrypt/1.1KB-8          	  361608	      3154 ns/op	 380.50 MB/s	    6688 B/op	      12 allocs/op
BenchmarkCBCEncrypt/1.1KB-8          	  381210	      3118 ns/op	 384.89 MB/s	    6688 B/op	      12 allocs/op
BenchmarkCBCEncrypt/1.1KB-8          	  389235	      3004 ns/op	 399.46 MB/s	    6688 B/op	      12 allocs/op
BenchmarkCBCEncrypt/1.1KB-8          	  394404	      2958 ns/op	 405.69 MB/s	    6688 B/op	      12 allocs/op
BenchmarkCBCEncrypt/1.1KB-8          	  395090	      2976 ns/op	 403.29 MB/s	    6688 B/op	      12 allocs/op
BenchmarkCBCEncrypt/1.4KB-8          	  319266	      3586 ns/op	 418.32 MB/s	    8480 B/op	      12 allocs/op
BenchmarkCBCEncrypt/1.4KB-8          	  321044	      3611 ns/op	 415.42 MB/s	    8480 B/op	      12 allocs/op
BenchmarkCBCEncrypt/1.4KB-8          	  317251	      3650 ns/op	 410.92 MB/s	    8480 B/op	      12 allocs/op
BenchmarkCBCEncrypt/1.4KB-8          	  339502	      3548 ns/op	 422.72 MB/s	    8480 B/op	      12 allocs/op
BenchmarkCBCEncrypt/1.4KB-8          	  326576	      3589 ns/op	 417.94 MB/s	    8480 B/op	      12 allocs/op
BenchmarkCBCEncrypt/4KB-8            	  141073	      8306 ns/op	 493.16 MB/s	   21024 B/op	      12 allocs/op
BenchmarkCBCEncrypt/4KB-8            	  142630	      8496 ns/op	 482.11 MB/s	   21024 B/op	      12 allocs/op
BenchmarkCBCEncrypt/4KB-8            	  139632	      9057 ns/op	 452.27 MB/s	   21024 B/op	      12 allocs/op
BenchmarkCBCEncrypt/4KB-8            	  144338	      8261 ns/op	 495.82 MB/s	   21024 B/op	      12 allocs/op
BenchmarkCBCEncrypt/4KB-8            	  142144	      8281 ns/op	 494.60 MB/s	   21024 B/op	      12 allocs/op
BenchmarkCBCEncrypt/8KB-8            	   77371	     15741 ns/op	 520.41 MB/s	   41248 B/op	      12 allocs/op
BenchmarkCBCEncrypt/8KB-8            	   77422	     15538 ns/op	 527.23 MB/s	   41248 B/op	      12 allocs/op
BenchmarkCBCEncrypt/8KB-8            	   76672	     15509 ns/op	 528.21 MB/s	   41248 B/op	      12 allocs/op
BenchmarkCBCEncrypt/8KB-8            	   77860	     15642 ns/op	 523.72 MB/s	   41248 B/op	      12 allocs/op
BenchmarkCBCEncrypt/8KB-8            	   77874	     15666 ns/op	 522.91 MB/s	   41248 B/op	      12 allocs/op
BenchmarkCBCDecrypt/016B-8           	 2316627	       510.8 ns/op	  31.32 MB/s	     752 B/op	       9 allocs/op
BenchmarkCBCDecrypt/016B-8           	 2339618	       511.4 ns/op	  31.28 MB/s	     752 B/op	       9 allocs/op
BenchmarkCBCDecrypt/016B-8           	 2369001	       511.4 ns/op	  31.29 MB/s	     752 B/op	       9 allocs/op
BenchmarkCBCDecrypt/016B-8           	 2361710	       507.3 ns/op	  31.54 MB/s	     752 B/op	       9 allocs/op
BenchmarkCBCDecrypt/016B-8           	 2365363	       514.2 ns/op	  31.12 MB/s	     752 B/op	       9 allocs/op
BenchmarkCBCDecrypt/064B-8           	 1912448	       624.0 ns/op	 102.56 MB/s	     800 B/op	       9 allocs/op
BenchmarkCBCDecrypt/064B-8           	 1929006	       621.9 ns/op	 102.91 MB/s	     800 B/op	       9 allocs/op
BenchmarkCBCDecrypt/064B-8           	 1918423	       624.4 ns/op	 102.49 MB/s	     800 B/op	       9 allocs/op
BenchmarkCBCDecrypt/064B-8           	 1878354	       626.1 ns/op	 102.21 MB/s	     800 B/op	       9 allocs/op
BenchmarkCBCDecrypt/064B-8           	 1924936	       629.8 ns/op	 101.61 MB/s	     800 B/op	       9 allocs/op
BenchmarkCBCDecrypt/256B-8           	 1241418	      1014 ns/op	 252.37 MB/s	    1008 B/op	       9 allocs/op
BenchmarkCBCDecrypt/256B-8           	 1220869	       972.4 ns/op	 263.26 MB/s	    1008 B/op	       9 allocs/op
BenchmarkCBCDecrypt/256B-8           	 1244138	       968.7 ns/op	 264.27 MB/s	    1008 B/op	       9 allocs/op
BenchmarkCBCDecrypt/256B-8           	 1000000	      1027 ns/op	 249.17 MB/s	    1008 B/op	       9 allocs/op
BenchmarkCBCDecrypt/256B-8           	 1000000	      1014 ns/op	 252.57 MB/s	    1008 B/op	       9 allocs/op
BenchmarkCBCDecrypt/512B-8           	  928803	      1292 ns/op	 396.26 MB/s	    1296 B/op	       9 allocs/op
BenchmarkCBCDecrypt/512B-8           	  915104	      1269 ns/op	 403.35 MB/s	    1296 B/op	       9 allocs/op
BenchmarkCBCDecrypt/512B-8           	  927703	      1260 ns/op	 406.32 MB/s	    1296 B/op	       9 allocs/op
BenchmarkCBCDecrypt/512B-8           	  949551	      1267 ns/op	 403.95 MB/s	    1296 B/op	       9 allocs/op
BenchmarkCBCDecrypt/512B-8           	  945824	      1256 ns/op	 407.56 MB/s	    1296 B/op	       9 allocs/op
BenchmarkCBCDecrypt/1KB-8            	  653748	      1792 ns/op	 571.32 MB/s	    1808 B/op	       9 allocs/op
BenchmarkCBCDecrypt/1KB-8            	  673770	      1804 ns/op	 567.78 MB/s	    1808 B/op	       9 allocs/op
BenchmarkCBCDecrypt/1KB-8            	  663037	      1793 ns/op	 571.19 MB/s	    1808 B/op	       9 allocs/op
BenchmarkCBCDecrypt/1KB-8            	  656390	      1787 ns/op	 572.95 MB/s	    1808 B/op	       9 allocs/op
BenchmarkCBCDecrypt/1KB-8            	  650954	      1767 ns/op	 579.49 MB/s	    1808 B/op	       9 allocs/op
BenchmarkCBCDecrypt/1.4KB-8          	  516984	      2247 ns/op	 667.67 MB/s	    2448 B/op	       9 allocs/op
BenchmarkCBCDecrypt/1.4KB-8          	  526760	      2251 ns/op	 666.40 MB/s	    2448 B/op	       9 allocs/op
BenchmarkCBCDecrypt/1.4KB-8          	  519970	      2262 ns/op	 663.27 MB/s	    2448 B/op	       9 allocs/op
BenchmarkCBCDecrypt/1.4KB-8          	  520738	      2254 ns/op	 665.52 MB/s	    2448 B/op	       9 allocs/op
BenchmarkCBCDecrypt/1.4KB-8          	  517777	      2298 ns/op	 652.80 MB/s	    2448 B/op	       9 allocs/op
BenchmarkCCMEncrypt/016B-8           	 3257377	       367.7 ns/op	  43.51 MB/s	     672 B/op	       7 allocs/op
BenchmarkCCMEncrypt/016B-8           	 3286388	       364.9 ns/op	  43.85 MB/s	     672 B/op	       7 allocs/op
BenchmarkCCMEncrypt/016B-8           	 3343348	       359.5 ns/op	  44.50 MB/s	     672 B/op	       7 allocs/op
BenchmarkCCMEncrypt/016B-8           	 3214224	       367.1 ns/op	  43.59 MB/s	     672 B/op	       7 allocs/op
BenchmarkCCMEncrypt/016B-8           	 3256576	       379.3 ns/op	  42.19 MB/s	     672 B/op	       7 allocs/op
BenchmarkCCMEncrypt/064B-8           	 2696314	       436.1 ns/op	 146.76 MB/s	     768 B/op	       7 allocs/op
BenchmarkCCMEncrypt/064B-8           	 2763174	       448.1 ns/op	 142.83 MB/s	     768 B/op	       7 allocs/op
BenchmarkCCMEncrypt/064B-8           	 2697940	       436.2 ns/op	 146.71 MB/s	     768 B/op	       7 allocs/op
BenchmarkCCMEncrypt/064B-8           	 2659125	       456.0 ns/op	 140.36 MB/s	     768 B/op	       7 allocs/op
BenchmarkCCMEncrypt/064B-8           	 2684742	       443.3 ns/op	 144.38 MB/s	     768 B/op	       7 allocs/op
BenchmarkCCMEncrypt/128B-8           	 2271372	       556.3 ns/op	 230.10 MB/s	     896 B/op	       7 allocs/op
BenchmarkCCMEncrypt/128B-8           	 2223421	       592.8 ns/op	 215.92 MB/s	     896 B/op	       7 allocs/op
BenchmarkCCMEncrypt/128B-8           	 1965686	       707.9 ns/op	 180.81 MB/s	     896 B/op	       7 allocs/op
BenchmarkCCMEncrypt/128B-8           	 2040261	       666.4 ns/op	 192.08 MB/s	     896 B/op	       7 allocs/op
BenchmarkCCMEncrypt/128B-8           	 1939869	       623.0 ns/op	 205.46 MB/s	     896 B/op	       7 allocs/op
BenchmarkCCMEncrypt/256B-8           	 1586392	       748.0 ns/op	 342.26 MB/s	    1184 B/op	       7 allocs/op
BenchmarkCCMEncrypt/256B-8           	 1557853	       753.1 ns/op	 339.91 MB/s	    1184 B/op	       7 allocs/op
BenchmarkCCMEncrypt/256B-8           	 1619094	       742.5 ns/op	 344.78 MB/s	    1184 B/op	       7 allocs/op
BenchmarkCCMEncrypt/256B-8           	 1658048	       731.3 ns/op	 350.06 MB/s	    1184 B/op	       7 allocs/op
BenchmarkCCMEncrypt/256B-8           	 1668403	       795.7 ns/op	 321.72 MB/s	    1184 B/op	       7 allocs/op
BenchmarkCCMEncrypt/512B-8           	 1000000	      1129 ns/op	 453.69 MB/s	    1728 B/op	       7 allocs/op
BenchmarkCCMEncrypt/512B-8           	 1000000	      1104 ns/op	 463.66 MB/s	    1728 B/op	       7 allocs/op
BenchmarkCCMEncrypt/512B-8           	 1000000	      1102 ns/op	 464.69 MB/s	    1728 B/op	       7 allocs/op
BenchmarkCCMEncrypt/512B-8           	 1000000	      1123 ns/op	 456.08 MB/s	    1728 B/op	       7 allocs/op
BenchmarkCCMEncrypt/512B-8           	 1000000	      1149 ns/op	 445.50 MB/s	    1728 B/op	       7 allocs/op
BenchmarkCCMEncrypt/800B-8           	  729926	      1622 ns/op	 493.07 MB/s	    2368 B/op	       7 allocs/op
BenchmarkCCMEncrypt/800B-8           	  740832	      1614 ns/op	 495.73 MB/s	    2368 B/op	       7 allocs/op
BenchmarkCCMEncrypt/800B-8           	  715018	      1628 ns/op	 491.45 MB/s	    2368 B/op	       7 allocs/op
BenchmarkCCMEncrypt/800B-8           	  727579	      1577 ns/op	 507.34 MB/s	    2368 B/op	       7 allocs/op
BenchmarkCCMEncrypt/800B-8           	  737415	      1583 ns/op	 505.25 MB/s	    2368 B/op	       7 allocs/op
BenchmarkCCMEncrypt/1KB-8            	  629031	      1952 ns/op	 524.55 MB/s	    2880 B/op	       7 allocs/op
BenchmarkCCMEncrypt/1KB-8            	  609870	      2022 ns/op	 506.39 MB/s	    2880 B/op	       7 allocs/op
BenchmarkCCMEncrypt/1KB-8            	  624864	      1989 ns/op	 514.85 MB/s	    2880 B/op	       7 allocs/op
BenchmarkCCMEncrypt/1KB-8            	  589884	      1913 ns/op	 535.26 MB/s	    2880 B/op	       7 allocs/op
BenchmarkCCMEncrypt/1KB-8            	  615640	      1910 ns/op	 536.00 MB/s	    2880 B/op	       7 allocs/op
BenchmarkCCMEncrypt/1.1KB-8          	  523819	      2145 ns/op	 559.45 MB/s	    3136 B/op	       7 allocs/op
BenchmarkCCMEncrypt/1.1KB-8          	  540266	      2200 ns/op	 545.57 MB/s	    3136 B/op	       7 allocs/op
BenchmarkCCMEncrypt/1.1KB-8          	  539797	      2595 ns/op	 462.52 MB/s	    3136 B/op	       7 allocs/op
BenchmarkCCMEncrypt/1.1KB-8          	  494433	      2409 ns/op	 498.08 MB/s	    3136 B/op	       7 allocs/op
BenchmarkCCMEncrypt/1.1KB-8          	  516163	      2362 ns/op	 508.05 MB/s	    3136 B/op	       7 allocs/op
BenchmarkCCMEncrypt/1.4KB-8          	  406131	      2781 ns/op	 539.29 MB/s	    3904 B/op	       7 allocs/op
BenchmarkCCMEncrypt/1.4KB-8          	  417144	      2756 ns/op	 544.17 MB/s	    3904 B/op	       7 allocs/op
BenchmarkCCMEncrypt/1.4KB-8          	  454830	      2659 ns/op	 564.09 MB/s	    3904 B/op	       7 allocs/op
BenchmarkCCMEncrypt/1.4KB-8          	  451011	      2708 ns/op	 553.91 MB/s	    3904 B/op	       7 allocs/op
BenchmarkCCMEncrypt/1.4KB-8          	  446209	      2707 ns/op	 554.10 MB/s	    3904 B/op	       7 allocs/op
BenchmarkCCMEncrypt/4KB-8            	  182956	      6677 ns/op	 613.41 MB/s	   10304 B/op	       7 allocs/op
BenchmarkCCMEncrypt/4KB-8            	  181030	      6982 ns/op	 586.62 MB/s	   10304 B/op	       7 allocs/op
BenchmarkCCMEncrypt/4KB-8            	  172778	      6860 ns/op	 597.04 MB/s	   10304 B/op	       7 allocs/op
BenchmarkCCMEncrypt/4KB-8            	  174447	      6553 ns/op	 625.10 MB/s	   10304 B/op	       7 allocs/op
BenchmarkCCMEncrypt/4KB-8            	  178724	      6571 ns/op	 623.37 MB/s	   10304 B/op	       7 allocs/op
BenchmarkCCMEncrypt/8KB-8            	   95672	     12726 ns/op	 643.74 MB/s	   19520 B/op	       7 allocs/op
BenchmarkCCMEncrypt/8KB-8            	   94749	     12810 ns/op	 639.49 MB/s	   19520 B/op	       7 allocs/op
BenchmarkCCMEncrypt/8KB-8            	   91668	     13105 ns/op	 625.09 MB/s	   19520 B/op	       7 allocs/op
BenchmarkCCMEncrypt/8KB-8            	   89401	     13297 ns/op	 616.09 MB/s	   19520 B/op	       7 allocs/op
BenchmarkCCMEncrypt/8KB-8            	   90726	     13472 ns/op	 608.09 MB/s	   19520 B/op	       7 allocs/op
BenchmarkCCMDecrypt/016B-8           	 4228270	       280.5 ns/op	  57.04 MB/s	     656 B/op	       7 allocs/op
BenchmarkCCMDecrypt/016B-8           	 4273838	       261.4 ns/op	  61.21 MB/s	     656 B/op	       7 allocs/op
BenchmarkCCMDecrypt/016B-8           	 4447682	       267.9 ns/op	  59.72 MB/s	     656 B/op	       7 allocs/op
BenchmarkCCMDecrypt/016B-8           	 4192789	       269.8 ns/op	  59.30 MB/s	     656 B/op	       7 allocs/op
BenchmarkCCMDecrypt/016B-8           	 4420653	       256.1 ns/op	  62.48 MB/s	     656 B/op	       7 allocs/op
BenchmarkCCMDecrypt/064B-8           	 3579178	       347.1 ns/op	 184.37 MB/s	     752 B/op	       7 allocs/op
BenchmarkCCMDecrypt/064B-8           	 3382611	       345.5 ns/op	 185.22 MB/s	     752 B/op	       7 allocs/op
BenchmarkCCMDecrypt/064B-8           	 3418431	       428.1 ns/op	 149.48 MB/s	     752 B/op	       7 allocs/op
BenchmarkCCMDecrypt/064B-8           	 3142977	       394.3 ns/op	 162.33 MB/s	     752 B/op	       7 allocs/op
BenchmarkCCMDecrypt/064B-8           	 3161072	       371.2 ns/op	 172.43 MB/s	     752 B/op	       7 allocs/op
BenchmarkCCMDecrypt/256B-8           	 1834294	       631.4 ns/op	 405.45 MB/s	    1152 B/op	       7 allocs/op
BenchmarkCCMDecrypt/256B-8           	 1860896	       634.4 ns/op	 403.54 MB/s	    1152 B/op	       7 allocs/op
BenchmarkCCMDecrypt/256B-8           	 1919125	       632.7 ns/op	 404.63 MB/s	    1152 B/op	       7 allocs/op
BenchmarkCCMDecrypt/256B-8           	 1877425	       641.6 ns/op	 398.98 MB/s	    1152 B/op	       7 allocs/op
BenchmarkCCMDecrypt/256B-8           	 1818001	       703.9 ns/op	 363.70 MB/s	    1152 B/op	       7 allocs/op
BenchmarkCCMDecrypt/512B-8           	 1000000	      1063 ns/op	 481.48 MB/s	    1664 B/op	       7 allocs/op
BenchmarkCCMDecrypt/512B-8           	 1000000	      1042 ns/op	 491.47 MB/s	    1664 B/op	       7 allocs/op
BenchmarkCCMDecrypt/512B-8           	 1000000	      1038 ns/op	 493.18 MB/s	    1664 B/op	       7 allocs/op
BenchmarkCCMDecrypt/512B-8           	 1000000	      1026 ns/op	 498.84 MB/s	    1664 B/op	       7 allocs/op
BenchmarkCCMDecrypt/512B-8           	 1000000	      1012 ns/op	 506.11 MB/s	    1664 B/op	       7 allocs/op
BenchmarkCCMDecrypt/1KB-8            	  621384	      1836 ns/op	 557.86 MB/s	    2752 B/op	       7 allocs/op
BenchmarkCCMDecrypt/1KB-8            	  623433	      1904 ns/op	 537.84 MB/s	    2752 B/op	       7 allocs/op
BenchmarkCCMDecrypt/1KB-8            	  638967	      1979 ns/op	 517.31 MB/s	    2752 B/op	       7 allocs/op
BenchmarkCCMDecrypt/1KB-8            	  591565	      1944 ns/op	 526.79 MB/s	    2752 B/op	       7 allocs/op
BenchmarkCCMDecrypt/1KB-8            	  598762	      1907 ns/op	 536.96 MB/s	    2752 B/op	       7 allocs/op
BenchmarkCCMDecrypt/1.4KB-8          	  405823	      2677 ns/op	 560.24 MB/s	    3904 B/op	       7 allocs/op
BenchmarkCCMDecrypt/1.4KB-8          	  414654	      2712 ns/op	 553.20 MB/s	    3904 B/op	       7 allocs/op
BenchmarkCCMDecrypt/1.4KB-8          	  367521	      2751 ns/op	 545.20 MB/s	    3904 B/op	       7 allocs/op
BenchmarkCCMDecrypt/1.4KB-8          	  451246	      2575 ns/op	 582.62 MB/s	    3904 B/op	       7 allocs/op
BenchmarkCCMDecrypt/1.4KB-8          	  470084	      2546 ns/op	 589.22 MB/s	    3904 B/op	       7 allocs/op
BenchmarkChaCha20Poly1305Encrypt/016B-8         	 2938255	       409.1 ns/op	  39.11 MB/s	     112 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/016B-8         	 2949507	       408.2 ns/op	  39.19 MB/s	     112 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/016B-8         	 2950040	       426.3 ns/op	  37.53 MB/s	     112 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/016B-8         	 2934248	       407.8 ns/op	  39.24 MB/s	     112 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/016B-8         	 2851467	       415.3 ns/op	  38.53 MB/s	     112 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/064B-8         	 2654674	       482.6 ns/op	 132.63 MB/s	     208 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/064B-8         	 2704162	       449.9 ns/op	 142.25 MB/s	     208 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/064B-8         	 2721858	       450.9 ns/op	 141.93 MB/s	     208 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/064B-8         	 2640494	       452.3 ns/op	 141.50 MB/s	     208 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/064B-8         	 2681448	       446.1 ns/op	 143.46 MB/s	     208 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/128B-8         	 2339846	       510.4 ns/op	 250.78 MB/s	     336 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/128B-8         	 2349177	       509.3 ns/op	 251.33 MB/s	     336 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/128B-8         	 2355211	       512.6 ns/op	 249.72 MB/s	     336 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/128B-8         	 2336180	       511.7 ns/op	 250.14 MB/s	     336 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/128B-8         	 2348994	       513.9 ns/op	 249.07 MB/s	     336 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/256B-8         	 1513580	       794.4 ns/op	 322.26 MB/s	     624 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/256B-8         	 1506636	       792.1 ns/op	 323.17 MB/s	     624 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/256B-8         	 1517772	       793.6 ns/op	 322.59 MB/s	     624 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/256B-8         	 1511623	       792.8 ns/op	 322.90 MB/s	     624 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/256B-8         	 1520616	       795.9 ns/op	 321.66 MB/s	     624 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/512B-8         	 1000000	      1116 ns/op	 458.76 MB/s	    1168 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/512B-8         	 1000000	      1118 ns/op	 457.78 MB/s	    1168 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/512B-8         	 1000000	      1119 ns/op	 457.62 MB/s	    1168 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/512B-8         	 1000000	      1122 ns/op	 456.34 MB/s	    1168 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/512B-8         	 1000000	      1121 ns/op	 456.75 MB/s	    1168 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/800B-8         	  787194	      1505 ns/op	 531.41 MB/s	    1808 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/800B-8         	  782497	      1495 ns/op	 534.98 MB/s	    1808 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/800B-8         	  784554	      1485 ns/op	 538.78 MB/s	    1808 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/800B-8         	  797824	      1479 ns/op	 540.86 MB/s	    1808 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/800B-8         	  797865	      1479 ns/op	 540.94 MB/s	    1808 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/1KB-8          	  635089	      1804 ns/op	 567.71 MB/s	    2320 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/1KB-8          	  639158	      1861 ns/op	 550.25 MB/s	    2320 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/1KB-8          	  604040	      2031 ns/op	 504.28 MB/s	    2320 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/1KB-8          	  630904	      1879 ns/op	 544.94 MB/s	    2320 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/1KB-8          	  650901	      1833 ns/op	 558.53 MB/s	    2320 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/1.1KB-8        	  592965	      1947 ns/op	 616.45 MB/s	    2576 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/1.1KB-8        	  609848	      1932 ns/op	 621.18 MB/s	    2576 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/1.1KB-8        	  590490	      2005 ns/op	 598.40 MB/s	    2576 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/1.1KB-8        	  620152	      2291 ns/op	 523.73 MB/s	    2576 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/1.1KB-8        	  601766	      1981 ns/op	 605.70 MB/s	    2576 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/1.4KB-8        	  475545	      2468 ns/op	 607.78 MB/s	    3344 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/1.4KB-8        	  481210	      2484 ns/op	 603.91 MB/s	    3344 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/1.4KB-8        	  479120	      2438 ns/op	 615.23 MB/s	    3344 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/1.4KB-8        	  487585	      2426 ns/op	 618.36 MB/s	    3344 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/1.4KB-8        	  464905	      2424 ns/op	 618.87 MB/s	    3344 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/4KB-8          	  208153	      5732 ns/op	 714.53 MB/s	    9744 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/4KB-8          	  210694	      5701 ns/op	 718.42 MB/s	    9744 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/4KB-8          	  206947	      5687 ns/op	 720.21 MB/s	    9744 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/4KB-8          	  210055	      5802 ns/op	 706.02 MB/s	    9744 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/4KB-8          	  187431	      6025 ns/op	 679.81 MB/s	    9744 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/8KB-8          	  110980	     10903 ns/op	 751.34 MB/s	   18960 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/8KB-8          	  109444	     10739 ns/op	 762.81 MB/s	   18960 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/8KB-8          	  111445	     10742 ns/op	 762.60 MB/s	   18960 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/8KB-8          	  111284	     10702 ns/op	 765.48 MB/s	   18960 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Encrypt/8KB-8          	  111184	     10818 ns/op	 757.28 MB/s	   18960 B/op	       3 allocs/op
BenchmarkChaCha20Poly1305Decrypt/016B-8         	 4146835	       289.7 ns/op	  55.22 MB/s	      80 B/op	       2 allocs/op
BenchmarkChaCha20Poly1305Decrypt/016B-8         	 4142948	       295.1 ns/op	  54.23 MB/s	      80 B/op	       2 allocs/op
BenchmarkChaCha20Poly1305Decrypt/016B-8         	 4125177	       314.0 ns/op	  50.95 MB/s	      80 B/op	       2 allocs/op
BenchmarkChaCha20Poly1305Decrypt/016B-8         	 3997840	       300.7 ns/op	  53.21 MB/s	      80 B/op	       2 allocs/op
BenchmarkChaCha20Poly1305Decrypt/016B-8         	 4078890	       309.1 ns/op	  51.76 MB/s	      80 B/op	       2 allocs/op
BenchmarkChaCha20Poly1305Decrypt/064B-8         	 3671378	       343.8 ns/op	 186.18 MB/s	     128 B/op	       2 allocs/op
BenchmarkChaCha20Poly1305Decrypt/064B-8         	 3578529	       339.1 ns/op	 188.73 MB/s	     128 B/op	       2 allocs/op
BenchmarkChaCha20Poly1305Decrypt/064B-8         	 3610921	       334.1 ns/op	 191.57 MB/s	     128 B/op	       2 allocs/op
BenchmarkChaCha20Poly1305Decrypt/064B-8         	 3630500	       329.6 ns/op	 194.19 MB/s	     128 B/op	       2 allocs/op
BenchmarkChaCha20Poly1305Decrypt/064B-8         	 3690325	       343.5 ns/op	 186.29 MB/s	     128 B/op	       2 allocs/op
BenchmarkChaCha20Poly1305Decrypt/256B-8         	 1789717	       682.1 ns/op	 375.33 MB/s	     336 B/op	       2 allocs/op
BenchmarkChaCha20Poly1305Decrypt/256B-8         	 1774113	       679.5 ns/op	 376.75 MB/s	     336 B/op	       2 allocs/op
BenchmarkChaCha20Poly1305Decrypt/256B-8         	 1778750	       671.4 ns/op	 381.29 MB/s	     336 B/op	       2 allocs/op
BenchmarkChaCha20Poly1305Decrypt/256B-8         	 1807645	       685.5 ns/op	 373.47 MB/s	     336 B/op	       2 allocs/op
BenchmarkChaCha20Poly1305Decrypt/256B-8         	 1633622	       701.8 ns/op	 364.75 MB/s	     336 B/op	       2 allocs/op
BenchmarkChaCha20Poly1305Decrypt/512B-8         	 1000000	      1065 ns/op	 480.54 MB/s	     592 B/op	       2 allocs/op
BenchmarkChaCha20Poly1305Decrypt/512B-8         	 1000000	      1047 ns/op	 489.14 MB/s	     592 B/op	       2 allocs/op
BenchmarkChaCha20Poly1305Decrypt/512B-8         	 1228983	      1109 ns/op	 461.67 MB/s	     592 B/op	       2 allocs/op
BenchmarkChaCha20Poly1305Decrypt/512B-8         	 1000000	      1103 ns/op	 464.20 MB/s	     592 B/op	       2 allocs/op
BenchmarkChaCha20Poly1305Decrypt/512B-8         	 1000000	      1031 ns/op	 496.50 MB/s	     592 B/op	       2 allocs/op
BenchmarkChaCha20Poly1305Decrypt/1KB-8          	  713749	      1676 ns/op	 611.07 MB/s	    1168 B/op	       2 allocs/op
BenchmarkChaCha20Poly1305Decrypt/1KB-8          	  740222	      1717 ns/op	 596.32 MB/s	    1168 B/op	       2 allocs/op
BenchmarkChaCha20Poly1305Decrypt/1KB-8          	  712472	      1633 ns/op	 627.09 MB/s	    1168 B/op	       2 allocs/op
BenchmarkChaCha20Poly1305Decrypt/1KB-8          	  729174	      1636 ns/op	 625.82 MB/s	    1168 B/op	       2 allocs/op
BenchmarkChaCha20Poly1305Decrypt/1KB-8          	  698902	      1692 ns/op	 605.18 MB/s	    1168 B/op	       2 allocs/op
BenchmarkChaCha20Poly1305Decrypt/1.4KB-8        	  510288	      2302 ns/op	 651.52 MB/s	    1808 B/op	       2 allocs/op
BenchmarkChaCha20Poly1305Decrypt/1.4KB-8        	  540086	      2322 ns/op	 645.99 MB/s	    1808 B/op	       2 allocs/op
BenchmarkChaCha20Poly1305Decrypt/1.4KB-8        	  516016	      2290 ns/op	 655.00 MB/s	    1808 B/op	       2 allocs/op
BenchmarkChaCha20Poly1305Decrypt/1.4KB-8        	  519340	      2499 ns/op	 600.28 MB/s	    1808 B/op	       2 allocs/op
BenchmarkChaCha20Poly1305Decrypt/1.4KB-8        	  517773	      2257 ns/op	 664.54 MB/s	    1808 B/op	       2 allocs/op
BenchmarkGCMEncrypt/016B-8                      	 5773401	       206.4 ns/op	  77.53 MB/s	     112 B/op	       3 allocs/op
BenchmarkGCMEncrypt/016B-8                      	 5888430	       200.3 ns/op	  79.87 MB/s	     112 B/op	       3 allocs/op
BenchmarkGCMEncrypt/016B-8                      	 5991150	       214.7 ns/op	  74.52 MB/s	     112 B/op	       3 allocs/op
BenchmarkGCMEncrypt/016B-8                      	 5807270	       200.5 ns/op	  79.81 MB/s	     112 B/op	       3 allocs/op
BenchmarkGCMEncrypt/016B-8                      	 5979693	       204.0 ns/op	  78.44 MB/s	     112 B/op	       3 allocs/op
BenchmarkGCMEncrypt/064B-8                      	 4770534	       245.5 ns/op	 260.73 MB/s	     208 B/op	       3 allocs/op
BenchmarkGCMEncrypt/064B-8                      	 4585828	       279.6 ns/op	 228.89 MB/s	     208 B/op	       3 allocs/op
BenchmarkGCMEncrypt/064B-8                      	 4677345	       262.8 ns/op	 243.51 MB/s	     208 B/op	       3 allocs/op
BenchmarkGCMEncrypt/064B-8                      	 3950611	       312.8 ns/op	 204.58 MB/s	     208 B/op	       3 allocs/op
BenchmarkGCMEncrypt/064B-8                      	 4281972	       259.1 ns/op	 247.03 MB/s	     208 B/op	       3 allocs/op
BenchmarkGCMEncrypt/128B-8                      	 4791242	       239.3 ns/op	 534.95 MB/s	     336 B/op	       3 allocs/op
BenchmarkGCMEncrypt/128B-8                      	 4987111	       240.2 ns/op	 532.96 MB/s	     336 B/op	       3 allocs/op
BenchmarkGCMEncrypt/128B-8                      	 5032400	       238.2 ns/op	 537.33 MB/s	     336 B/op	       3 allocs/op
BenchmarkGCMEncrypt/128B-8                      	 5036925	       240.3 ns/op	 532.63 MB/s	     336 B/op	       3 allocs/op
BenchmarkGCMEncrypt/128B-8                      	 5005264	       239.0 ns/op	 535.47 MB/s	     336 B/op	       3 allocs/op
BenchmarkGCMEncrypt/256B-8                      	 4262770	       280.9 ns/op	 911.34 MB/s	     624 B/op	       3 allocs/op
BenchmarkGCMEncrypt/256B-8                      	 4299194	       281.6 ns/op	 909.12 MB/s	     624 B/op	       3 allocs/op
BenchmarkGCMEncrypt/256B-8                      	 4278021	       281.0 ns/op	 911.12 MB/s	     624 B/op	       3 allocs/op
BenchmarkGCMEncrypt/256B-8                      	 4257583	       281.0 ns/op	 911.15 MB/s	     624 B/op	       3 allocs/op
BenchmarkGCMEncrypt/256B-8                      	 4218825	       280.6 ns/op	 912.29 MB/s	     624 B/op	       3 allocs/op
BenchmarkGCMEncrypt/512B-8                      	 3214484	       366.3 ns/op	1397.76 MB/s	    1168 B/op	       3 allocs/op
BenchmarkGCMEncrypt/512B-8                      	 3285105	       368.2 ns/op	1390.61 MB/s	    1168 B/op	       3 allocs/op
BenchmarkGCMEncrypt/512B-8                      	 3242370	       370.6 ns/op	1381.60 MB/s	    1168 B/op	       3 allocs/op
BenchmarkGCMEncrypt/512B-8                      	 3239163	       371.6 ns/op	1377.70 MB/s	    1168 B/op	       3 allocs/op
BenchmarkGCMEncrypt/512B-8                      	 3160822	       381.1 ns/op	1343.58 MB/s	    1168 B/op	       3 allocs/op
BenchmarkGCMEncrypt/800B-8                      	 2215339	       483.5 ns/op	1654.65 MB/s	    1808 B/op	       3 allocs/op
BenchmarkGCMEncrypt/800B-8                      	 2455807	       486.3 ns/op	1645.08 MB/s	    1808 B/op	       3 allocs/op
BenchmarkGCMEncrypt/800B-8                      	 2475063	       492.8 ns/op	1623.47 MB/s	    1808 B/op	       3 allocs/op
BenchmarkGCMEncrypt/800B-8                      	 2426401	       494.8 ns/op	1616.86 MB/s	    1808 B/op	       3 allocs/op
BenchmarkGCMEncrypt/800B-8                      	 2446114	       486.1 ns/op	1645.87 MB/s	    1808 B/op	       3 allocs/op
BenchmarkGCMEncrypt/1KB-8                       	 2161261	       558.6 ns/op	1833.23 MB/s	    2320 B/op	       3 allocs/op
BenchmarkGCMEncrypt/1KB-8                       	 2150302	       557.1 ns/op	1838.16 MB/s	    2320 B/op	       3 allocs/op
BenchmarkGCMEncrypt/1KB-8                       	 2078341	       555.1 ns/op	1844.70 MB/s	    2320 B/op	       3 allocs/op
BenchmarkGCMEncrypt/1KB-8                       	 2164021	       554.0 ns/op	1848.29 MB/s	    2320 B/op	       3 allocs/op
BenchmarkGCMEncrypt/1KB-8                       	 2167441	       560.6 ns/op	1826.63 MB/s	    2320 B/op	       3 allocs/op
BenchmarkGCMEncrypt/1.1KB-8                     	 1862774	       635.1 ns/op	1889.54 MB/s	    2576 B/op	       3 allocs/op
BenchmarkGCMEncrypt/1.1KB-8                     	 1919536	       634.3 ns/op	1891.94 MB/s	    2576 B/op	       3 allocs/op
BenchmarkGCMEncrypt/1.1KB-8                     	 1857417	       635.1 ns/op	1889.58 MB/s	    2576 B/op	       3 allocs/op
BenchmarkGCMEncrypt/1.1KB-8                     	 1875909	       642.2 ns/op	1868.68 MB/s	    2576 B/op	       3 allocs/op
BenchmarkGCMEncrypt/1.1KB-8                     	 1881064	       631.8 ns/op	1899.25 MB/s	    2576 B/op	       3 allocs/op
BenchmarkGCMEncrypt/1.4KB-8                     	 1587321	       763.6 ns/op	1964.28 MB/s	    3344 B/op	       3 allocs/op
BenchmarkGCMEncrypt/1.4KB-8                     	 1581339	       774.4 ns/op	1937.08 MB/s	    3344 B/op	       3 allocs/op
BenchmarkGCMEncrypt/1.4KB-8                     	 1554403	       763.0 ns/op	1965.97 MB/s	    3344 B/op	       3 allocs/op
BenchmarkGCMEncrypt/1.4KB-8                     	 1565442	       761.8 ns/op	1969.09 MB/s	    3344 B/op	       3 allocs/op
BenchmarkGCMEncrypt/1.4KB-8                     	 1533340	       785.1 ns/op	1910.48 MB/s	    3344 B/op	       3 allocs/op
BenchmarkGCMEncrypt/4KB-8                       	  692312	      1611 ns/op	2541.94 MB/s	    9744 B/op	       3 allocs/op
BenchmarkGCMEncrypt/4KB-8                       	  684003	      1612 ns/op	2540.25 MB/s	    9744 B/op	       3 allocs/op
BenchmarkGCMEncrypt/4KB-8                       	  714177	      1609 ns/op	2545.69 MB/s	    9744 B/op	       3 allocs/op
BenchmarkGCMEncrypt/4KB-8                       	  719103	      1612 ns/op	2541.26 MB/s	    9744 B/op	       3 allocs/op
BenchmarkGCMEncrypt/4KB-8                       	  700639	      1624 ns/op	2522.80 MB/s	    9744 B/op	       3 allocs/op
BenchmarkGCMEncrypt/8KB-8                       	  358912	      2925 ns/op	2800.26 MB/s	   18960 B/op	       3 allocs/op
BenchmarkGCMEncrypt/8KB-8                       	  390552	      2906 ns/op	2818.67 MB/s	   18960 B/op	       3 allocs/op
BenchmarkGCMEncrypt/8KB-8                       	  392398	      3035 ns/op	2699.13 MB/s	   18960 B/op	       3 allocs/op
BenchmarkGCMEncrypt/8KB-8                       	  339969	      2994 ns/op	2736.40 MB/s	   18960 B/op	       3 allocs/op
BenchmarkGCMEncrypt/8KB-8                       	  386730	      2979 ns/op	2749.57 MB/s	   18960 B/op	       3 allocs/op
BenchmarkGCMDecrypt/016B-8                      	13099822	        92.53 ns/op	 172.91 MB/s	      80 B/op	       2 allocs/op
BenchmarkGCMDecrypt/016B-8                      	13239936	        99.39 ns/op	 160.98 MB/s	      80 B/op	       2 allocs/op
BenchmarkGCMDecrypt/016B-8                      	11964897	       102.2 ns/op	 156.50 MB/s	      80 B/op	       2 allocs/op
BenchmarkGCMDecrypt/016B-8                      	12483105	       100.6 ns/op	 159.06 MB/s	      80 B/op	       2 allocs/op
BenchmarkGCMDecrypt/016B-8                      	12113676	        94.80 ns/op	 168.78 MB/s	      80 B/op	       2 allocs/op
BenchmarkGCMDecrypt/064B-8                      	 9403123	       126.9 ns/op	 504.22 MB/s	     128 B/op	       2 allocs/op
BenchmarkGCMDecrypt/064B-8                      	 9276506	       129.9 ns/op	 492.55 MB/s	     128 B/op	       2 allocs/op
BenchmarkGCMDecrypt/064B-8                      	 9276843	       134.9 ns/op	 474.47 MB/s	     128 B/op	       2 allocs/op
BenchmarkGCMDecrypt/064B-8                      	 9383995	       127.0 ns/op	 504.13 MB/s	     128 B/op	       2 allocs/op
BenchmarkGCMDecrypt/064B-8                      	 9664934	       126.0 ns/op	 507.82 MB/s	     128 B/op	       2 allocs/op
BenchmarkGCMDecrypt/256B-8                      	 8129622	       144.1 ns/op	1776.07 MB/s	     336 B/op	       2 allocs/op
BenchmarkGCMDecrypt/256B-8                      	 8472147	       143.9 ns/op	1779.14 MB/s	     336 B/op	       2 allocs/op
BenchmarkGCMDecrypt/256B-8                      	 8224926	       148.9 ns/op	1719.49 MB/s	     336 B/op	       2 allocs/op
BenchmarkGCMDecrypt/256B-8                      	 7969016	       150.9 ns/op	1696.23 MB/s	     336 B/op	       2 allocs/op
BenchmarkGCMDecrypt/256B-8                      	 8129254	       143.5 ns/op	1784.22 MB/s	     336 B/op	       2 allocs/op
BenchmarkGCMDecrypt/512B-8                      	 5776734	       220.3 ns/op	2324.24 MB/s	     592 B/op	       2 allocs/op
BenchmarkGCMDecrypt/512B-8                      	 5753419	       208.8 ns/op	2452.17 MB/s	     592 B/op	       2 allocs/op
BenchmarkGCMDecrypt/512B-8                      	 5749317	       214.8 ns/op	2383.25 MB/s	     592 B/op	       2 allocs/op
BenchmarkGCMDecrypt/512B-8                      	 5354787	       210.7 ns/op	2429.64 MB/s	     592 B/op	       2 allocs/op
BenchmarkGCMDecrypt/512B-8                      	 5586874	       218.1 ns/op	2347.24 MB/s	     592 B/op	       2 allocs/op
BenchmarkGCMDecrypt/1KB-8                       	 3383574	       344.2 ns/op	2974.90 MB/s	    1168 B/op	       2 allocs/op
BenchmarkGCMDecrypt/1KB-8                       	 3517551	       342.6 ns/op	2988.81 MB/s	    1168 B/op	       2 allocs/op
BenchmarkGCMDecrypt/1KB-8                       	 3509110	       338.4 ns/op	3025.72 MB/s	    1168 B/op	       2 allocs/op
BenchmarkGCMDecrypt/1KB-8                       	 3533719	       344.6 ns/op	2971.49 MB/s	    1168 B/op	       2 allocs/op
BenchmarkGCMDecrypt/1KB-8                       	 3530554	       354.0 ns/op	2892.98 MB/s	    1168 B/op	       2 allocs/op
BenchmarkGCMDecrypt/1.4KB-8                     	 2361441	       523.9 ns/op	2863.06 MB/s	    1808 B/op	       2 allocs/op
BenchmarkGCMDecrypt/1.4KB-8                     	 2260014	       523.9 ns/op	2863.40 MB/s	    1808 B/op	       2 allocs/op
BenchmarkGCMDecrypt/1.4KB-8                     	 2285779	       506.4 ns/op	2962.32 MB/s	    1808 B/op	       2 allocs/op
BenchmarkGCMDecrypt/1.4KB-8                     	 2359293	       535.1 ns/op	2803.05 MB/s	    1808 B/op	       2 allocs/op
BenchmarkGCMDecrypt/1.4KB-8                     	 2280825	       518.2 ns/op	2894.73 MB/s	    1808 B/op	       2 allocs/op
PASS
ok  	github.com/pion/dtls/v3/pkg/crypto/ciphersuite	495.453s

Analysis of Diff (with benchstat):

TODO

@adrianosela
Copy link
Copy Markdown
Contributor Author

There have been changes in the AEAD abstraction, so I will close this PR, and re-benchmark all the ciphers.

My plan is to favor speed over code-reuse... so I might end up ditching the AEAD abstraction for concrete implementations for each cipher. E.g. After some quick testing, I found that some approaches for the nonce buffers work better for some ciphers e.g. buffer pool, stack allocated buffer, shared heap buffer, etc.

@adrianosela adrianosela deleted the faster-aead branch February 13, 2026 16:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant