From b3a072ac4aea712bb3a9fb792e6dd748bb997fbd Mon Sep 17 00:00:00 2001 From: Michael Primeaux Date: Mon, 29 Dec 2025 15:06:06 -0600 Subject: [PATCH] debt: Upgraded to nanoid v1.59.0 --- CHANGELOG/CHANGELOG-1.x.md | 15 +- Makefile | 2 +- go.mod | 8 +- go.sum | 16 +- .../github.com/sixafter/aes-ctr-drbg/Makefile | 2 +- .../sixafter/aes-ctr-drbg/README.md | 428 +++++++++--------- .../sixafter/aes-ctr-drbg/aes_ctr_drbg.go | 47 +- .../sixafter/aes-ctr-drbg/config.go | 56 ++- .../sixafter/aes-ctr-drbg/selftest.go | 78 ++++ vendor/github.com/sixafter/nanoid/Makefile | 2 +- vendor/github.com/sixafter/nanoid/README.md | 18 +- .../github.com/sixafter/prng-chacha/Makefile | 2 +- .../github.com/sixafter/prng-chacha/README.md | 8 +- .../github.com/sixafter/prng-chacha/config.go | 3 + .../github.com/sixafter/prng-chacha/prng.go | 10 +- .../github.com/sixafter/semver/CHANGELOG.md | 17 +- vendor/github.com/sixafter/semver/Makefile | 6 +- vendor/github.com/sixafter/semver/README.md | 4 +- vendor/modules.txt | 8 +- 19 files changed, 459 insertions(+), 271 deletions(-) create mode 100644 vendor/github.com/sixafter/aes-ctr-drbg/selftest.go diff --git a/CHANGELOG/CHANGELOG-1.x.md b/CHANGELOG/CHANGELOG-1.x.md index a2208f7..91e9d45 100644 --- a/CHANGELOG/CHANGELOG-1.x.md +++ b/CHANGELOG/CHANGELOG-1.x.md @@ -10,9 +10,21 @@ Date format: `YYYY-MM-DD` --- ## [Unreleased] +### Added +### Changed +### Deprecated +### Removed +### Fixed +### Security + +--- + +## [1.44.0] - 2025-12-29 + ### Added ### Changed - **debt:** Upgraded dependencies to their latest stable versions. +- **debt:** Upgraded to [sixafter/nanoid@v1.59.0](https://github.com/sixafter/nanoid/releases/tag/v1.59.0). ### Deprecated ### Removed @@ -712,7 +724,8 @@ Date format: `YYYY-MM-DD` ### Fixed ### Security -[Unreleased]: https://github.com/sixafter/nanoid-cli/compare/v1.43.0...HEAD +[Unreleased]: https://github.com/sixafter/nanoid-cli/compare/v1.44.0...HEAD +[1.44.0]: https://github.com/sixafter/nanoid-cli/compare/v1.43.0...v1.44.0 [1.43.0]: https://github.com/sixafter/nanoid-cli/compare/v1.42.0...v1.43.0 [1.42.0]: https://github.com/sixafter/nanoid-cli/compare/v1.41.0...v1.42.0 [1.41.0]: https://github.com/sixafter/nanoid-cli/compare/v1.40.0...v1.41.0 diff --git a/Makefile b/Makefile index 9336a18..5d8339a 100644 --- a/Makefile +++ b/Makefile @@ -21,7 +21,7 @@ GO_WORK_FILE := ./go.work export BINARY_NAME=out/nanoid .PHONY: all -all: deps vendor update vendor tidy clean test +all: deps update tidy vendor clean test .PHONY: build build: ## Build the binary executable. diff --git a/go.mod b/go.mod index d570603..c0a3d04 100644 --- a/go.mod +++ b/go.mod @@ -9,8 +9,8 @@ go 1.25 require ( github.com/dustin/go-humanize v1.0.1 - github.com/sixafter/nanoid v1.58.0 - github.com/sixafter/semver v1.11.0 + github.com/sixafter/nanoid v1.59.0 + github.com/sixafter/semver v1.12.0 github.com/spf13/cobra v1.10.2 github.com/stretchr/testify v1.11.1 ) @@ -19,8 +19,8 @@ require ( github.com/davecgh/go-spew v1.1.1 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/sixafter/aes-ctr-drbg v1.14.5 // indirect - github.com/sixafter/prng-chacha v1.11.0 // indirect + github.com/sixafter/aes-ctr-drbg v1.15.0 // indirect + github.com/sixafter/prng-chacha v1.12.0 // indirect github.com/spf13/pflag v1.0.10 // indirect golang.org/x/crypto v0.46.0 // indirect golang.org/x/sys v0.39.0 // indirect diff --git a/go.sum b/go.sum index e07f951..8395cdd 100644 --- a/go.sum +++ b/go.sum @@ -10,14 +10,14 @@ github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLf github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/sixafter/aes-ctr-drbg v1.14.5 h1:PBvRbBxcI1Smz1jY644ILaZZI9W4WDAyLIqWViL3YXc= -github.com/sixafter/aes-ctr-drbg v1.14.5/go.mod h1:k0MnzFOGf7ks7ixN/N72wQAT/7u+lIknQWa7H9Iqew4= -github.com/sixafter/nanoid v1.58.0 h1:khudExKaJyTxLrE1IMgF2pZW4fftWFYSOGolWTpz1NM= -github.com/sixafter/nanoid v1.58.0/go.mod h1:95ihBEwjnpwNUuUSI5+3aF2f0jmNi1KHcpA6IivEwgM= -github.com/sixafter/prng-chacha v1.11.0 h1:G6StPb5m/qySbq+wV4ICygAQVPT4PuUT6ugEWVsOB9Q= -github.com/sixafter/prng-chacha v1.11.0/go.mod h1:o0pZhHQUWC8eTFFJUBH4gp9a9fwRGrxyCf+vzMMVzmk= -github.com/sixafter/semver v1.11.0 h1:Cbh38wwtFq/MuQWzYQr3WnsLSiFvity14gOdlQYnGwc= -github.com/sixafter/semver v1.11.0/go.mod h1:kIkw1gO0r6JtGoOam9xesWKqOFUH8kfTViLVbiC4WmA= +github.com/sixafter/aes-ctr-drbg v1.15.0 h1:xsB6UkaMY1xyk1E+c6TjyYfJMQRuQLjpQggrxjtr2zI= +github.com/sixafter/aes-ctr-drbg v1.15.0/go.mod h1:k0MnzFOGf7ks7ixN/N72wQAT/7u+lIknQWa7H9Iqew4= +github.com/sixafter/nanoid v1.59.0 h1:DywNPAnRYkHF2K0vOniFsbdtUCUb5J+TSW+1L0E4pMc= +github.com/sixafter/nanoid v1.59.0/go.mod h1:dVZXxHMZ74z+0nCCIrvgJqwaUhQLuiKj5kevHmz1EAY= +github.com/sixafter/prng-chacha v1.12.0 h1:6b2kqh7/qfNsHkT2u6ni8Tr2PO26azvQwQsk1M4JgtY= +github.com/sixafter/prng-chacha v1.12.0/go.mod h1:o0pZhHQUWC8eTFFJUBH4gp9a9fwRGrxyCf+vzMMVzmk= +github.com/sixafter/semver v1.12.0 h1:OAC3ux2sExqKOJSPnxpeBTyprEfAKHna0OBh6SdhXRQ= +github.com/sixafter/semver v1.12.0/go.mod h1:kIkw1gO0r6JtGoOam9xesWKqOFUH8kfTViLVbiC4WmA= github.com/spf13/cobra v1.10.2 h1:DMTTonx5m65Ic0GOoRY2c16WCbHxOOw6xxezuLaBpcU= github.com/spf13/cobra v1.10.2/go.mod h1:7C1pvHqHw5A4vrJfjNwvOdzYu0Gml16OCs2GRiTUUS4= github.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= diff --git a/vendor/github.com/sixafter/aes-ctr-drbg/Makefile b/vendor/github.com/sixafter/aes-ctr-drbg/Makefile index 1364e00..26b892c 100644 --- a/vendor/github.com/sixafter/aes-ctr-drbg/Makefile +++ b/vendor/github.com/sixafter/aes-ctr-drbg/Makefile @@ -20,7 +20,7 @@ GO_WORK_FILE := ./go.work FUZZTIME ?= 25s .PHONY: all -all: deps vendor update vendor tidy clean test +all: deps update tidy vendor clean test .PHONY: deps deps: ## Get the dependencies and vendor diff --git a/vendor/github.com/sixafter/aes-ctr-drbg/README.md b/vendor/github.com/sixafter/aes-ctr-drbg/README.md index 24c1c1f..a5bb233 100644 --- a/vendor/github.com/sixafter/aes-ctr-drbg/README.md +++ b/vendor/github.com/sixafter/aes-ctr-drbg/README.md @@ -117,10 +117,10 @@ For a detailed mapping between the implementation and NIST SP 800-90A requiremen To verify the integrity of the release tarball, you can use Cosign to check the signature and checksums. Follow these steps: ```sh -# Fetch the latest release tag from GitHub API (e.g., "v1.14.0") +# Fetch the latest release tag from GitHub API (e.g., "v1.15.0") TAG=$(curl -s https://api.github.com/repos/sixafter/aes-ctr-drbg/releases/latest | jq -r .tag_name) -# Remove leading "v" for filenames (e.g., "v1.14.0" -> "1.14.0") +# Remove leading "v" for filenames (e.g., "v1.15.0" -> "1.15.0") VERSION=${TAG#v} # --------------------------------------------------------------------- @@ -281,201 +281,193 @@ goos: darwin goarch: arm64 pkg: github.com/sixafter/aes-ctr-drbg cpu: Apple M4 Max -BenchmarkDRBG_SyncPool_Baseline_Concurrent/G2-16 1000000000 0.6696 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_SyncPool_Baseline_Concurrent/G4-16 1000000000 0.6740 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_SyncPool_Baseline_Concurrent/G8-16 1000000000 0.6520 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_SyncPool_Baseline_Concurrent/G16-16 1000000000 0.6885 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_SyncPool_Baseline_Concurrent/G32-16 1000000000 0.6353 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_SyncPool_Baseline_Concurrent/G64-16 1000000000 0.6401 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_SyncPool_Baseline_Concurrent/G128-16 1000000000 0.6474 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_Serial/Serial_Read_16Bytes-16 29874123 36.11 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_Serial/Serial_Read_32Bytes-16 28411921 42.00 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_Serial/Serial_Read_64Bytes-16 22326446 53.37 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_Serial/Serial_Read_256Bytes-16 9796570 122.1 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_Serial/Serial_Read_512Bytes-16 5619010 213.4 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_Serial/Serial_Read_4096Bytes-16 798786 1470 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_Serial/Serial_Read_16384Bytes-16 203523 5781 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_Concurrent/Concurrent_Read_16Bytes_2Goroutines-16 19856755 86.58 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_Concurrent/Concurrent_Read_16Bytes_4Goroutines-16 19652169 84.27 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_Concurrent/Concurrent_Read_16Bytes_8Goroutines-16 19535383 88.98 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_Concurrent/Concurrent_Read_16Bytes_16Goroutines-16 19280488 88.56 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_Concurrent/Concurrent_Read_16Bytes_32Goroutines-16 18911883 88.54 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_Concurrent/Concurrent_Read_16Bytes_64Goroutines-16 20954308 81.26 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_Concurrent/Concurrent_Read_16Bytes_128Goroutines-16 20513842 73.62 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_Concurrent/Concurrent_Read_32Bytes_2Goroutines-16 18478191 75.79 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_Concurrent/Concurrent_Read_32Bytes_4Goroutines-16 19357531 74.66 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_Concurrent/Concurrent_Read_32Bytes_8Goroutines-16 20106480 86.12 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_Concurrent/Concurrent_Read_32Bytes_16Goroutines-16 19378123 74.65 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_Concurrent/Concurrent_Read_32Bytes_32Goroutines-16 19684783 77.99 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_Concurrent/Concurrent_Read_32Bytes_64Goroutines-16 19942705 78.12 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_Concurrent/Concurrent_Read_32Bytes_128Goroutines-16 20817882 60.40 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_Concurrent/Concurrent_Read_64Bytes_2Goroutines-16 19866068 75.31 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_Concurrent/Concurrent_Read_64Bytes_4Goroutines-16 19591770 87.64 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_Concurrent/Concurrent_Read_64Bytes_8Goroutines-16 19219963 76.07 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_Concurrent/Concurrent_Read_64Bytes_16Goroutines-16 19804158 79.80 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_Concurrent/Concurrent_Read_64Bytes_32Goroutines-16 19630122 67.15 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_Concurrent/Concurrent_Read_64Bytes_64Goroutines-16 19981904 78.98 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_Concurrent/Concurrent_Read_64Bytes_128Goroutines-16 19985551 81.36 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_Concurrent/Concurrent_Read_256Bytes_2Goroutines-16 10538402 160.8 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_Concurrent/Concurrent_Read_256Bytes_4Goroutines-16 10828724 161.7 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_Concurrent/Concurrent_Read_256Bytes_8Goroutines-16 10997553 158.9 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_Concurrent/Concurrent_Read_256Bytes_16Goroutines-16 10632771 161.5 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_Concurrent/Concurrent_Read_256Bytes_32Goroutines-16 10377925 160.6 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_Concurrent/Concurrent_Read_256Bytes_64Goroutines-16 10851642 148.4 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_Concurrent/Concurrent_Read_256Bytes_128Goroutines-16 11019211 158.4 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_Concurrent/Concurrent_Read_512Bytes_2Goroutines-16 10556665 153.7 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_Concurrent/Concurrent_Read_512Bytes_4Goroutines-16 10974860 160.1 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_Concurrent/Concurrent_Read_512Bytes_8Goroutines-16 11132241 156.5 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_Concurrent/Concurrent_Read_512Bytes_16Goroutines-16 10818664 154.8 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_Concurrent/Concurrent_Read_512Bytes_32Goroutines-16 10574911 162.6 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_Concurrent/Concurrent_Read_512Bytes_64Goroutines-16 11106015 158.2 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_Concurrent/Concurrent_Read_512Bytes_128Goroutines-16 11131617 157.8 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_Concurrent/Concurrent_Read_4096Bytes_2Goroutines-16 7474005 221.3 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_Concurrent/Concurrent_Read_4096Bytes_4Goroutines-16 6751184 219.0 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_Concurrent/Concurrent_Read_4096Bytes_8Goroutines-16 5899460 220.4 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_Concurrent/Concurrent_Read_4096Bytes_16Goroutines-16 6126216 220.6 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_Concurrent/Concurrent_Read_4096Bytes_32Goroutines-16 6938299 220.1 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_Concurrent/Concurrent_Read_4096Bytes_64Goroutines-16 7048448 215.8 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_Concurrent/Concurrent_Read_4096Bytes_128Goroutines-16 7366938 206.9 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_Concurrent/Concurrent_Read_16384Bytes_2Goroutines-16 1439043 826.1 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_Concurrent/Concurrent_Read_16384Bytes_4Goroutines-16 1478479 851.5 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_Concurrent/Concurrent_Read_16384Bytes_8Goroutines-16 1434871 812.5 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_Concurrent/Concurrent_Read_16384Bytes_16Goroutines-16 1692771 682.5 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_Concurrent/Concurrent_Read_16384Bytes_32Goroutines-16 1452622 847.3 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_Concurrent/Concurrent_Read_16384Bytes_64Goroutines-16 1626038 844.8 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_Concurrent/Concurrent_Read_16384Bytes_128Goroutines-16 1523498 847.4 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_LargeSizes_Sequential/Serial_Read_Large_4096Bytes-16 778651 1476 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_LargeSizes_Sequential/Serial_Read_Large_16384Bytes-16 208345 5873 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_LargeSizes_Sequential/Serial_Read_Large_65536Bytes-16 51400 23373 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_LargeSizes_Sequential/Serial_Read_Large_1048576Bytes-16 3177 381062 ns/op 11 B/op 0 allocs/op -BenchmarkDRBG_Read_LargeSizes_Concurrent/Concurrent_Read_Large_4096Bytes_2Goroutines-16 7376702 221.4 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_LargeSizes_Concurrent/Concurrent_Read_Large_4096Bytes_4Goroutines-16 5193856 213.5 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_LargeSizes_Concurrent/Concurrent_Read_Large_4096Bytes_8Goroutines-16 6114523 224.6 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_LargeSizes_Concurrent/Concurrent_Read_Large_4096Bytes_16Goroutines-16 7188720 205.1 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_LargeSizes_Concurrent/Concurrent_Read_Large_4096Bytes_32Goroutines-16 7138792 217.6 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_LargeSizes_Concurrent/Concurrent_Read_Large_4096Bytes_64Goroutines-16 5875122 221.0 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_LargeSizes_Concurrent/Concurrent_Read_Large_4096Bytes_128Goroutines-16 6167787 219.8 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_LargeSizes_Concurrent/Concurrent_Read_Large_16384Bytes_2Goroutines-16 1475030 831.7 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_LargeSizes_Concurrent/Concurrent_Read_Large_16384Bytes_4Goroutines-16 1454176 806.5 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_LargeSizes_Concurrent/Concurrent_Read_Large_16384Bytes_8Goroutines-16 1561255 809.1 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_LargeSizes_Concurrent/Concurrent_Read_Large_16384Bytes_16Goroutines-16 1520268 835.0 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_LargeSizes_Concurrent/Concurrent_Read_Large_16384Bytes_32Goroutines-16 1454516 839.5 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_LargeSizes_Concurrent/Concurrent_Read_Large_16384Bytes_64Goroutines-16 1456448 837.4 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_LargeSizes_Concurrent/Concurrent_Read_Large_16384Bytes_128Goroutines-16 1503434 807.8 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_LargeSizes_Concurrent/Concurrent_Read_Large_65536Bytes_2Goroutines-16 481670 2853 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_LargeSizes_Concurrent/Concurrent_Read_Large_65536Bytes_4Goroutines-16 436726 2932 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_LargeSizes_Concurrent/Concurrent_Read_Large_65536Bytes_8Goroutines-16 467893 2903 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_LargeSizes_Concurrent/Concurrent_Read_Large_65536Bytes_16Goroutines-16 473342 2837 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_LargeSizes_Concurrent/Concurrent_Read_Large_65536Bytes_32Goroutines-16 474193 2911 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_LargeSizes_Concurrent/Concurrent_Read_Large_65536Bytes_64Goroutines-16 462038 2924 ns/op 1 B/op 0 allocs/op -BenchmarkDRBG_Read_LargeSizes_Concurrent/Concurrent_Read_Large_65536Bytes_128Goroutines-16 475135 2924 ns/op 1 B/op 0 allocs/op -BenchmarkDRBG_Read_LargeSizes_Concurrent/Concurrent_Read_Large_1048576Bytes_2Goroutines-16 29137 42209 ns/op 3 B/op 0 allocs/op -BenchmarkDRBG_Read_LargeSizes_Concurrent/Concurrent_Read_Large_1048576Bytes_4Goroutines-16 29096 42039 ns/op 3 B/op 0 allocs/op -BenchmarkDRBG_Read_LargeSizes_Concurrent/Concurrent_Read_Large_1048576Bytes_8Goroutines-16 29031 41666 ns/op 4 B/op 0 allocs/op -BenchmarkDRBG_Read_LargeSizes_Concurrent/Concurrent_Read_Large_1048576Bytes_16Goroutines-16 28812 41482 ns/op 7 B/op 0 allocs/op -BenchmarkDRBG_Read_LargeSizes_Concurrent/Concurrent_Read_Large_1048576Bytes_32Goroutines-16 29179 41477 ns/op 10 B/op 0 allocs/op -BenchmarkDRBG_Read_LargeSizes_Concurrent/Concurrent_Read_Large_1048576Bytes_64Goroutines-16 29031 42093 ns/op 17 B/op 0 allocs/op -BenchmarkDRBG_Read_LargeSizes_Concurrent/Concurrent_Read_Large_1048576Bytes_128Goroutines-16 28680 42144 ns/op 20 B/op 0 allocs/op -BenchmarkDRBG_Read_VariableSizes/Serial_Read_Variable_16Bytes-16 32761209 35.89 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_VariableSizes/Serial_Read_Variable_32Bytes-16 28607130 41.87 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_VariableSizes/Serial_Read_Variable_64Bytes-16 22548178 53.11 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_VariableSizes/Serial_Read_Variable_128Bytes-16 15760812 76.34 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_VariableSizes/Serial_Read_Variable_256Bytes-16 9770961 122.5 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_VariableSizes/Serial_Read_Variable_512Bytes-16 5631610 213.4 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_VariableSizes/Serial_Read_Variable_1024Bytes-16 3079610 395.7 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_VariableSizes/Serial_Read_Variable_2048Bytes-16 1599415 757.3 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_VariableSizes/Serial_Read_Variable_4096Bytes-16 805844 1500 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_16Bytes_2Goroutines-16 18766542 90.00 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_16Bytes_4Goroutines-16 19131636 87.84 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_16Bytes_8Goroutines-16 18264330 88.93 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_16Bytes_16Goroutines-16 19677601 83.92 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_16Bytes_32Goroutines-16 19468838 86.37 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_16Bytes_64Goroutines-16 19406863 86.51 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_16Bytes_128Goroutines-16 18875232 85.87 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_32Bytes_2Goroutines-16 18813998 70.36 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_32Bytes_4Goroutines-16 19586839 73.45 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_32Bytes_8Goroutines-16 19415864 87.21 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_32Bytes_16Goroutines-16 18120147 84.09 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_32Bytes_32Goroutines-16 19511706 81.57 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_32Bytes_64Goroutines-16 19756026 85.11 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_32Bytes_128Goroutines-16 19666300 84.13 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_64Bytes_2Goroutines-16 18756825 89.42 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_64Bytes_4Goroutines-16 16706818 80.92 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_64Bytes_8Goroutines-16 19674012 86.17 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_64Bytes_16Goroutines-16 17465998 87.80 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_64Bytes_32Goroutines-16 19747316 82.86 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_64Bytes_64Goroutines-16 19630255 77.58 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_64Bytes_128Goroutines-16 20142564 70.42 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_128Bytes_2Goroutines-16 11142530 143.1 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_128Bytes_4Goroutines-16 10331701 144.2 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_128Bytes_8Goroutines-16 11674490 129.5 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_128Bytes_16Goroutines-16 8749474 124.9 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_128Bytes_32Goroutines-16 11025412 117.2 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_128Bytes_64Goroutines-16 11193232 116.4 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_128Bytes_128Goroutines-16 10937000 108.3 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_256Bytes_2Goroutines-16 9248961 111.8 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_256Bytes_4Goroutines-16 11058454 134.8 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_256Bytes_8Goroutines-16 11100536 121.2 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_256Bytes_16Goroutines-16 10285585 115.0 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_256Bytes_32Goroutines-16 10852808 107.5 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_256Bytes_64Goroutines-16 9899952 123.4 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_256Bytes_128Goroutines-16 11235616 130.8 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_512Bytes_2Goroutines-16 10088126 110.2 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_512Bytes_4Goroutines-16 8867764 147.6 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_512Bytes_8Goroutines-16 8720042 115.7 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_512Bytes_16Goroutines-16 11546450 120.1 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_512Bytes_32Goroutines-16 10706088 119.0 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_512Bytes_64Goroutines-16 10183741 140.5 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_512Bytes_128Goroutines-16 11463069 103.3 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_1024Bytes_2Goroutines-16 12553362 95.83 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_1024Bytes_4Goroutines-16 12499902 95.99 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_1024Bytes_8Goroutines-16 12535980 93.40 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_1024Bytes_16Goroutines-16 12506155 95.98 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_1024Bytes_32Goroutines-16 12727627 93.93 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_1024Bytes_64Goroutines-16 12669898 94.98 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_1024Bytes_128Goroutines-16 12720594 93.38 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_2048Bytes_2Goroutines-16 12157644 99.74 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_2048Bytes_4Goroutines-16 12303175 100.5 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_2048Bytes_8Goroutines-16 11785392 100.0 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_2048Bytes_16Goroutines-16 11959412 118.3 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_2048Bytes_32Goroutines-16 12079330 109.1 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_2048Bytes_64Goroutines-16 11362237 103.0 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_2048Bytes_128Goroutines-16 11637774 120.4 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_4096Bytes_2Goroutines-16 6880490 168.8 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_4096Bytes_4Goroutines-16 7228526 168.8 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_4096Bytes_8Goroutines-16 7195345 169.0 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_4096Bytes_16Goroutines-16 7188027 168.1 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_4096Bytes_32Goroutines-16 7118646 168.9 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_4096Bytes_64Goroutines-16 7124090 172.9 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_4096Bytes_128Goroutines-16 7097014 169.6 ns/op 0 B/op 0 allocs/op -BenchmarkDRBG_Read_ExtremeSizes/Serial_Read_Extreme_10485760Bytes-16 295 3929851 ns/op 224 B/op 0 allocs/op -BenchmarkDRBG_Read_ExtremeSizes/Concurrent_Read_Extreme_10485760Bytes_2Goroutines-16 3172 381380 ns/op 91 B/op 0 allocs/op -BenchmarkDRBG_Read_ExtremeSizes/Concurrent_Read_Extreme_10485760Bytes_4Goroutines-16 2817 380624 ns/op 117 B/op 0 allocs/op -BenchmarkDRBG_Read_ExtremeSizes/Concurrent_Read_Extreme_10485760Bytes_8Goroutines-16 3079 384180 ns/op 127 B/op 0 allocs/op -BenchmarkDRBG_Read_ExtremeSizes/Concurrent_Read_Extreme_10485760Bytes_16Goroutines-16 3080 385891 ns/op 159 B/op 0 allocs/op -BenchmarkDRBG_Read_ExtremeSizes/Concurrent_Read_Extreme_10485760Bytes_32Goroutines-16 2972 398988 ns/op 156 B/op 1 allocs/op -BenchmarkDRBG_Read_ExtremeSizes/Concurrent_Read_Extreme_10485760Bytes_64Goroutines-16 2919 403091 ns/op 167 B/op 1 allocs/op -BenchmarkDRBG_Read_ExtremeSizes/Concurrent_Read_Extreme_10485760Bytes_128Goroutines-16 2972 397429 ns/op 284 B/op 2 allocs/op -BenchmarkDRBG_Read_ExtremeSizes/Serial_Read_Extreme_52428800Bytes-16 54 19975266 ns/op 1222 B/op 1 allocs/op -BenchmarkDRBG_Read_ExtremeSizes/Concurrent_Read_Extreme_52428800Bytes_2Goroutines-16 608 1995378 ns/op 352 B/op 1 allocs/op -BenchmarkDRBG_Read_ExtremeSizes/Concurrent_Read_Extreme_52428800Bytes_4Goroutines-16 553 2018336 ns/op 428 B/op 2 allocs/op -BenchmarkDRBG_Read_ExtremeSizes/Concurrent_Read_Extreme_52428800Bytes_8Goroutines-16 566 2034392 ns/op 511 B/op 2 allocs/op -BenchmarkDRBG_Read_ExtremeSizes/Concurrent_Read_Extreme_52428800Bytes_16Goroutines-16 558 1969891 ns/op 547 B/op 3 allocs/op -BenchmarkDRBG_Read_ExtremeSizes/Concurrent_Read_Extreme_52428800Bytes_32Goroutines-16 588 1971865 ns/op 505 B/op 3 allocs/op -BenchmarkDRBG_Read_ExtremeSizes/Concurrent_Read_Extreme_52428800Bytes_64Goroutines-16 571 2006916 ns/op 914 B/op 7 allocs/op -BenchmarkDRBG_Read_ExtremeSizes/Concurrent_Read_Extreme_52428800Bytes_128Goroutines-16 573 1977134 ns/op 1045 B/op 11 allocs/op -BenchmarkDRBG_Read_ExtremeSizes/Serial_Read_Extreme_104857600Bytes-16 28 39731435 ns/op 1663 B/op 2 allocs/op -BenchmarkDRBG_Read_ExtremeSizes/Concurrent_Read_Extreme_104857600Bytes_2Goroutines-16 286 3826714 ns/op 619 B/op 3 allocs/op -BenchmarkDRBG_Read_ExtremeSizes/Concurrent_Read_Extreme_104857600Bytes_4Goroutines-16 266 3791460 ns/op 740 B/op 3 allocs/op -BenchmarkDRBG_Read_ExtremeSizes/Concurrent_Read_Extreme_104857600Bytes_8Goroutines-16 274 3849177 ns/op 752 B/op 4 allocs/op -BenchmarkDRBG_Read_ExtremeSizes/Concurrent_Read_Extreme_104857600Bytes_16Goroutines-16 278 3827166 ns/op 846 B/op 5 allocs/op -BenchmarkDRBG_Read_ExtremeSizes/Concurrent_Read_Extreme_104857600Bytes_32Goroutines-16 292 3948489 ns/op 1099 B/op 8 allocs/op -BenchmarkDRBG_Read_ExtremeSizes/Concurrent_Read_Extreme_104857600Bytes_64Goroutines-16 300 3867839 ns/op 1226 B/op 11 allocs/op -BenchmarkDRBG_Read_ExtremeSizes/Concurrent_Read_Extreme_104857600Bytes_128Goroutines-16 289 3847689 ns/op 1528 B/op 18 allocs/op -BenchmarkDRBG_Read_WithKeyRotation-16 5003805 238.5 ns/op 198 B/op 1 allocs/op -BenchmarkDRBG_Read_PredictionResistance-16 2632755 456.1 ns/op 634 B/op 3 allocs/op +BenchmarkDRBG_SyncPool_Baseline_Concurrent/G2-16 1000000000 0.6112 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_SyncPool_Baseline_Concurrent/G4-16 1000000000 0.6134 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_SyncPool_Baseline_Concurrent/G8-16 1000000000 0.5971 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_SyncPool_Baseline_Concurrent/G16-16 1000000000 0.5937 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_SyncPool_Baseline_Concurrent/G32-16 1000000000 0.5700 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_SyncPool_Baseline_Concurrent/G64-16 1000000000 0.5587 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_SyncPool_Baseline_Concurrent/G128-16 1000000000 0.5644 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_Serial/Serial_Read_16Bytes-16 34062441 34.18 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_Serial/Serial_Read_32Bytes-16 29895489 39.54 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_Serial/Serial_Read_64Bytes-16 24042694 50.42 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_Serial/Serial_Read_256Bytes-16 10366684 115.3 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_Serial/Serial_Read_512Bytes-16 5998489 200.1 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_Serial/Serial_Read_4096Bytes-16 871158 1377 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_Serial/Serial_Read_16384Bytes-16 222878 5376 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_Concurrent/Concurrent_Read_16Bytes_2Goroutines-16 19962072 85.99 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_Concurrent/Concurrent_Read_16Bytes_4Goroutines-16 19596702 84.39 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_Concurrent/Concurrent_Read_16Bytes_8Goroutines-16 19851349 80.85 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_Concurrent/Concurrent_Read_16Bytes_16Goroutines-16 19654436 64.24 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_Concurrent/Concurrent_Read_16Bytes_32Goroutines-16 19521876 81.78 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_Concurrent/Concurrent_Read_16Bytes_64Goroutines-16 19818331 82.29 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_Concurrent/Concurrent_Read_16Bytes_128Goroutines-16 20155250 82.61 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_Concurrent/Concurrent_Read_32Bytes_2Goroutines-16 18829485 88.29 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_Concurrent/Concurrent_Read_32Bytes_4Goroutines-16 19666596 88.22 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_Concurrent/Concurrent_Read_32Bytes_8Goroutines-16 19722001 83.93 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_Concurrent/Concurrent_Read_32Bytes_16Goroutines-16 19440373 85.58 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_Concurrent/Concurrent_Read_32Bytes_32Goroutines-16 19804376 84.60 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_Concurrent/Concurrent_Read_32Bytes_64Goroutines-16 19879699 84.29 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_Concurrent/Concurrent_Read_32Bytes_128Goroutines-16 19940580 82.55 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_Concurrent/Concurrent_Read_64Bytes_2Goroutines-16 18446626 80.89 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_Concurrent/Concurrent_Read_64Bytes_4Goroutines-16 19594609 84.27 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_Concurrent/Concurrent_Read_64Bytes_8Goroutines-16 19475618 84.79 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_Concurrent/Concurrent_Read_64Bytes_16Goroutines-16 19886919 85.68 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_Concurrent/Concurrent_Read_64Bytes_32Goroutines-16 19558533 81.82 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_Concurrent/Concurrent_Read_64Bytes_64Goroutines-16 19842116 82.01 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_Concurrent/Concurrent_Read_64Bytes_128Goroutines-16 20000374 83.86 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_Concurrent/Concurrent_Read_256Bytes_2Goroutines-16 10465203 161.9 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_Concurrent/Concurrent_Read_256Bytes_4Goroutines-16 10905505 158.3 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_Concurrent/Concurrent_Read_256Bytes_8Goroutines-16 10895772 154.3 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_Concurrent/Concurrent_Read_256Bytes_16Goroutines-16 10901005 156.7 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_Concurrent/Concurrent_Read_256Bytes_32Goroutines-16 10952331 151.1 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_Concurrent/Concurrent_Read_256Bytes_64Goroutines-16 11080442 156.5 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_Concurrent/Concurrent_Read_256Bytes_128Goroutines-16 11141888 156.4 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_Concurrent/Concurrent_Read_512Bytes_2Goroutines-16 10665208 160.2 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_Concurrent/Concurrent_Read_512Bytes_4Goroutines-16 10822701 161.1 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_Concurrent/Concurrent_Read_512Bytes_8Goroutines-16 10816222 155.9 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_Concurrent/Concurrent_Read_512Bytes_16Goroutines-16 11038309 148.1 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_Concurrent/Concurrent_Read_512Bytes_32Goroutines-16 10907218 156.2 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_Concurrent/Concurrent_Read_512Bytes_64Goroutines-16 11146635 156.9 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_Concurrent/Concurrent_Read_512Bytes_128Goroutines-16 11120167 154.9 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_Concurrent/Concurrent_Read_4096Bytes_2Goroutines-16 7884975 205.0 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_Concurrent/Concurrent_Read_4096Bytes_4Goroutines-16 7952276 203.5 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_Concurrent/Concurrent_Read_4096Bytes_8Goroutines-16 6754220 200.4 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_Concurrent/Concurrent_Read_4096Bytes_16Goroutines-16 6395343 191.9 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_Concurrent/Concurrent_Read_4096Bytes_32Goroutines-16 6827542 203.3 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_Concurrent/Concurrent_Read_4096Bytes_64Goroutines-16 7638505 197.6 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_Concurrent/Concurrent_Read_4096Bytes_128Goroutines-16 7684468 187.9 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_Concurrent/Concurrent_Read_16384Bytes_2Goroutines-16 1792022 730.2 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_Concurrent/Concurrent_Read_16384Bytes_4Goroutines-16 1782008 752.2 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_Concurrent/Concurrent_Read_16384Bytes_8Goroutines-16 1811017 811.3 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_Concurrent/Concurrent_Read_16384Bytes_16Goroutines-16 1553781 773.5 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_Concurrent/Concurrent_Read_16384Bytes_32Goroutines-16 1644704 775.5 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_Concurrent/Concurrent_Read_16384Bytes_64Goroutines-16 1553227 758.5 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_Concurrent/Concurrent_Read_16384Bytes_128Goroutines-16 1627238 789.1 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_LargeSizes_Sequential/Serial_Read_Large_4096Bytes-16 724966 1396 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_LargeSizes_Sequential/Serial_Read_Large_16384Bytes-16 217694 5471 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_LargeSizes_Sequential/Serial_Read_Large_65536Bytes-16 56064 21448 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_LargeSizes_Concurrent/Concurrent_Read_Large_4096Bytes_2Goroutines-16 7686088 190.3 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_LargeSizes_Concurrent/Concurrent_Read_Large_4096Bytes_4Goroutines-16 7127140 193.1 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_LargeSizes_Concurrent/Concurrent_Read_Large_4096Bytes_8Goroutines-16 6847946 203.1 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_LargeSizes_Concurrent/Concurrent_Read_Large_4096Bytes_16Goroutines-16 7394517 202.3 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_LargeSizes_Concurrent/Concurrent_Read_Large_4096Bytes_32Goroutines-16 7078538 198.7 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_LargeSizes_Concurrent/Concurrent_Read_Large_4096Bytes_64Goroutines-16 7311069 213.6 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_LargeSizes_Concurrent/Concurrent_Read_Large_4096Bytes_128Goroutines-16 7093018 199.1 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_LargeSizes_Concurrent/Concurrent_Read_Large_16384Bytes_2Goroutines-16 1553928 787.7 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_LargeSizes_Concurrent/Concurrent_Read_Large_16384Bytes_4Goroutines-16 1505232 806.0 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_LargeSizes_Concurrent/Concurrent_Read_Large_16384Bytes_8Goroutines-16 1586379 824.8 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_LargeSizes_Concurrent/Concurrent_Read_Large_16384Bytes_16Goroutines-16 1567017 834.4 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_LargeSizes_Concurrent/Concurrent_Read_Large_16384Bytes_32Goroutines-16 1515153 826.6 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_LargeSizes_Concurrent/Concurrent_Read_Large_16384Bytes_64Goroutines-16 1498590 835.3 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_LargeSizes_Concurrent/Concurrent_Read_Large_16384Bytes_128Goroutines-16 1637242 823.0 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_LargeSizes_Concurrent/Concurrent_Read_Large_65536Bytes_2Goroutines-16 500164 2770 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_LargeSizes_Concurrent/Concurrent_Read_Large_65536Bytes_4Goroutines-16 498936 2767 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_LargeSizes_Concurrent/Concurrent_Read_Large_65536Bytes_8Goroutines-16 508104 2763 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_LargeSizes_Concurrent/Concurrent_Read_Large_65536Bytes_16Goroutines-16 486643 2768 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_LargeSizes_Concurrent/Concurrent_Read_Large_65536Bytes_32Goroutines-16 493526 2734 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_LargeSizes_Concurrent/Concurrent_Read_Large_65536Bytes_64Goroutines-16 511357 2723 ns/op 1 B/op 0 allocs/op +BenchmarkDRBG_Read_LargeSizes_Concurrent/Concurrent_Read_Large_65536Bytes_128Goroutines-16 512506 2734 ns/op 1 B/op 0 allocs/op +BenchmarkDRBG_Read_VariableSizes/Serial_Read_Variable_16Bytes-16 34138875 33.64 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_VariableSizes/Serial_Read_Variable_32Bytes-16 30298119 39.34 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_VariableSizes/Serial_Read_Variable_64Bytes-16 24156391 50.14 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_VariableSizes/Serial_Read_Variable_128Bytes-16 16411648 71.70 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_VariableSizes/Serial_Read_Variable_256Bytes-16 10339018 116.3 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_VariableSizes/Serial_Read_Variable_512Bytes-16 6003164 200.0 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_VariableSizes/Serial_Read_Variable_1024Bytes-16 3275638 368.3 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_VariableSizes/Serial_Read_Variable_2048Bytes-16 1683925 717.7 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_VariableSizes/Serial_Read_Variable_4096Bytes-16 828991 1396 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_16Bytes_2Goroutines-16 19667361 81.35 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_16Bytes_4Goroutines-16 19478792 82.87 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_16Bytes_8Goroutines-16 20362839 77.59 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_16Bytes_16Goroutines-16 19621669 79.42 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_16Bytes_32Goroutines-16 19656086 85.41 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_16Bytes_64Goroutines-16 20029543 73.63 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_16Bytes_128Goroutines-16 20244778 80.71 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_32Bytes_2Goroutines-16 18923464 86.25 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_32Bytes_4Goroutines-16 19499445 83.80 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_32Bytes_8Goroutines-16 19745245 85.16 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_32Bytes_16Goroutines-16 19773741 81.00 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_32Bytes_32Goroutines-16 19825248 84.00 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_32Bytes_64Goroutines-16 19899246 82.07 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_32Bytes_128Goroutines-16 19991892 83.84 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_64Bytes_2Goroutines-16 19272760 85.83 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_64Bytes_4Goroutines-16 19945840 84.05 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_64Bytes_8Goroutines-16 19978730 86.82 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_64Bytes_16Goroutines-16 19746584 82.55 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_64Bytes_32Goroutines-16 20115018 83.09 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_64Bytes_64Goroutines-16 19668866 80.67 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_64Bytes_128Goroutines-16 20351356 82.02 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_128Bytes_2Goroutines-16 10806562 156.5 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_128Bytes_4Goroutines-16 10851708 160.1 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_128Bytes_8Goroutines-16 10542328 155.5 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_128Bytes_16Goroutines-16 10863722 155.0 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_128Bytes_32Goroutines-16 10945759 147.8 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_128Bytes_64Goroutines-16 11071387 153.9 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_128Bytes_128Goroutines-16 11136016 155.5 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_256Bytes_2Goroutines-16 10442144 158.8 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_256Bytes_4Goroutines-16 10719852 156.1 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_256Bytes_8Goroutines-16 10798916 156.8 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_256Bytes_16Goroutines-16 10926900 157.0 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_256Bytes_32Goroutines-16 10761366 143.9 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_256Bytes_64Goroutines-16 11546500 122.6 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_256Bytes_128Goroutines-16 12631794 114.2 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_512Bytes_2Goroutines-16 10984488 156.9 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_512Bytes_4Goroutines-16 11054596 153.6 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_512Bytes_8Goroutines-16 9367392 148.2 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_512Bytes_16Goroutines-16 11085548 149.3 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_512Bytes_32Goroutines-16 10982490 151.5 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_512Bytes_64Goroutines-16 11193729 145.6 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_512Bytes_128Goroutines-16 11057155 153.8 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_1024Bytes_2Goroutines-16 12433735 140.3 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_1024Bytes_4Goroutines-16 12563049 142.4 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_1024Bytes_8Goroutines-16 12526951 137.4 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_1024Bytes_16Goroutines-16 12434395 137.8 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_1024Bytes_32Goroutines-16 12830301 136.6 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_1024Bytes_64Goroutines-16 12661705 146.1 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_1024Bytes_128Goroutines-16 12534420 147.0 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_2048Bytes_2Goroutines-16 12307370 124.3 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_2048Bytes_4Goroutines-16 12567220 105.7 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_2048Bytes_8Goroutines-16 12071736 100.2 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_2048Bytes_16Goroutines-16 11801464 106.6 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_2048Bytes_32Goroutines-16 12380242 115.7 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_2048Bytes_64Goroutines-16 12019501 110.1 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_2048Bytes_128Goroutines-16 12071012 115.3 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_4096Bytes_2Goroutines-16 6966630 220.9 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_4096Bytes_4Goroutines-16 7283623 222.9 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_4096Bytes_8Goroutines-16 7271518 216.2 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_4096Bytes_16Goroutines-16 7153774 217.6 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_4096Bytes_32Goroutines-16 7220374 215.7 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_4096Bytes_64Goroutines-16 6965928 197.0 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_VariableSizes_Concurrent/Concurrent_Read_Variable_4096Bytes_128Goroutines-16 6695487 211.7 ns/op 0 B/op 0 allocs/op +BenchmarkDRBG_Read_ExtremeSizes/Serial_Read_Extreme_10485760Bytes-16 328 3549165 ns/op 163 B/op 0 allocs/op +BenchmarkDRBG_Read_ExtremeSizes/Concurrent_Read_Extreme_10485760Bytes_2Goroutines-16 3732 339168 ns/op 91 B/op 0 allocs/op +BenchmarkDRBG_Read_ExtremeSizes/Concurrent_Read_Extreme_10485760Bytes_4Goroutines-16 3270 346786 ns/op 113 B/op 0 allocs/op +BenchmarkDRBG_Read_ExtremeSizes/Concurrent_Read_Extreme_10485760Bytes_8Goroutines-16 3276 346405 ns/op 133 B/op 0 allocs/op +BenchmarkDRBG_Read_ExtremeSizes/Concurrent_Read_Extreme_10485760Bytes_16Goroutines-16 3267 349331 ns/op 149 B/op 0 allocs/op +BenchmarkDRBG_Read_ExtremeSizes/Concurrent_Read_Extreme_10485760Bytes_32Goroutines-16 3325 349511 ns/op 177 B/op 1 allocs/op +BenchmarkDRBG_Read_ExtremeSizes/Concurrent_Read_Extreme_10485760Bytes_64Goroutines-16 3267 354763 ns/op 262 B/op 1 allocs/op +BenchmarkDRBG_Read_ExtremeSizes/Concurrent_Read_Extreme_10485760Bytes_128Goroutines-16 3253 355026 ns/op 277 B/op 2 allocs/op +BenchmarkDRBG_Read_ExtremeSizes/Serial_Read_Extreme_52428800Bytes-16 61 17701644 ns/op 1019 B/op 2 allocs/op +BenchmarkDRBG_Read_ExtremeSizes/Concurrent_Read_Extreme_52428800Bytes_2Goroutines-16 717 1717468 ns/op 457 B/op 2 allocs/op +BenchmarkDRBG_Read_ExtremeSizes/Concurrent_Read_Extreme_52428800Bytes_4Goroutines-16 645 1733391 ns/op 575 B/op 3 allocs/op +BenchmarkDRBG_Read_ExtremeSizes/Concurrent_Read_Extreme_52428800Bytes_8Goroutines-16 656 1740158 ns/op 608 B/op 3 allocs/op +BenchmarkDRBG_Read_ExtremeSizes/Concurrent_Read_Extreme_52428800Bytes_16Goroutines-16 642 1738901 ns/op 763 B/op 4 allocs/op +BenchmarkDRBG_Read_ExtremeSizes/Concurrent_Read_Extreme_52428800Bytes_32Goroutines-16 625 1764412 ns/op 754 B/op 5 allocs/op +BenchmarkDRBG_Read_ExtremeSizes/Concurrent_Read_Extreme_52428800Bytes_64Goroutines-16 660 1753616 ns/op 1038 B/op 7 allocs/op +BenchmarkDRBG_Read_ExtremeSizes/Concurrent_Read_Extreme_52428800Bytes_128Goroutines-16 627 1769634 ns/op 1249 B/op 11 allocs/op +BenchmarkDRBG_Read_ExtremeSizes/Serial_Read_Extreme_104857600Bytes-16 31 35179063 ns/op 1601 B/op 2 allocs/op +BenchmarkDRBG_Read_ExtremeSizes/Concurrent_Read_Extreme_104857600Bytes_2Goroutines-16 338 3426444 ns/op 973 B/op 5 allocs/op +BenchmarkDRBG_Read_ExtremeSizes/Concurrent_Read_Extreme_104857600Bytes_4Goroutines-16 336 3494822 ns/op 1085 B/op 6 allocs/op +BenchmarkDRBG_Read_ExtremeSizes/Concurrent_Read_Extreme_104857600Bytes_8Goroutines-16 314 3478031 ns/op 1293 B/op 7 allocs/op +BenchmarkDRBG_Read_ExtremeSizes/Concurrent_Read_Extreme_104857600Bytes_16Goroutines-16 338 3507727 ns/op 1410 B/op 8 allocs/op +BenchmarkDRBG_Read_ExtremeSizes/Concurrent_Read_Extreme_104857600Bytes_32Goroutines-16 320 3539974 ns/op 1687 B/op 11 allocs/op +BenchmarkDRBG_Read_ExtremeSizes/Concurrent_Read_Extreme_104857600Bytes_64Goroutines-16 296 3483667 ns/op 2022 B/op 15 allocs/op +BenchmarkDRBG_Read_ExtremeSizes/Concurrent_Read_Extreme_104857600Bytes_128Goroutines-16 289 3470399 ns/op 2329 B/op 23 allocs/op +BenchmarkDRBG_Read_WithKeyRotation-16 5215118 227.6 ns/op 196 B/op 1 allocs/op +BenchmarkDRBG_Read_PredictionResistance-16 2658322 450.1 ns/op 633 B/op 3 allocs/op PASS -ok github.com/sixafter/aes-ctr-drbg 291.367s +ok github.com/sixafter/aes-ctr-drbg 293.330s ``` @@ -505,35 +497,35 @@ Notes:
Expand to see results - ```shell +```shell make bench-uuid go test -bench='^BenchmarkUUID_' -run=^$ -benchmem -memprofile=mem.out -cpuprofile=cpu.out . goos: darwin goarch: arm64 pkg: github.com/sixafter/aes-ctr-drbg cpu: Apple M4 Max -BenchmarkUUID_v4_Default_Serial-16 6473760 180.6 ns/op 16 B/op 1 allocs/op -BenchmarkUUID_v4_Default_Parallel-16 2705866 445.4 ns/op 16 B/op 1 allocs/op -BenchmarkUUID_v4_Default_Concurrent/Goroutines_2-16 2883284 413.2 ns/op 16 B/op 1 allocs/op -BenchmarkUUID_v4_Default_Concurrent/Goroutines_4-16 2806682 428.5 ns/op 16 B/op 1 allocs/op -BenchmarkUUID_v4_Default_Concurrent/Goroutines_8-16 2462146 484.6 ns/op 16 B/op 1 allocs/op -BenchmarkUUID_v4_Default_Concurrent/Goroutines_16-16 2685201 458.2 ns/op 16 B/op 1 allocs/op -BenchmarkUUID_v4_Default_Concurrent/Goroutines_32-16 2366074 506.3 ns/op 16 B/op 1 allocs/op -BenchmarkUUID_v4_Default_Concurrent/Goroutines_64-16 2358429 506.9 ns/op 16 B/op 1 allocs/op -BenchmarkUUID_v4_Default_Concurrent/Goroutines_128-16 2388648 508.2 ns/op 16 B/op 1 allocs/op -BenchmarkUUID_v4_Default_Concurrent/Goroutines_256-16 2364384 511.8 ns/op 16 B/op 1 allocs/op -BenchmarkUUID_v4_CTRDRBG_Serial-16 29120706 40.78 ns/op 16 B/op 1 allocs/op -BenchmarkUUID_v4_CTRDRBG_Parallel-16 100000000 10.56 ns/op 16 B/op 1 allocs/op -BenchmarkUUID_v4_CTRDRBG_Concurrent/Goroutines_2-16 52686843 21.91 ns/op 16 B/op 1 allocs/op -BenchmarkUUID_v4_CTRDRBG_Concurrent/Goroutines_4-16 92968908 12.77 ns/op 16 B/op 1 allocs/op -BenchmarkUUID_v4_CTRDRBG_Concurrent/Goroutines_8-16 121979662 9.741 ns/op 16 B/op 1 allocs/op -BenchmarkUUID_v4_CTRDRBG_Concurrent/Goroutines_16-16 153623710 7.668 ns/op 16 B/op 1 allocs/op -BenchmarkUUID_v4_CTRDRBG_Concurrent/Goroutines_32-16 154797238 7.688 ns/op 16 B/op 1 allocs/op -BenchmarkUUID_v4_CTRDRBG_Concurrent/Goroutines_64-16 156757164 7.641 ns/op 16 B/op 1 allocs/op -BenchmarkUUID_v4_CTRDRBG_Concurrent/Goroutines_128-16 156462766 7.632 ns/op 16 B/op 1 allocs/op -BenchmarkUUID_v4_CTRDRBG_Concurrent/Goroutines_256-16 154197008 7.795 ns/op 16 B/op 1 allocs/op +BenchmarkUUID_v4_Default_Serial-16 5764681 207.8 ns/op 16 B/op 1 allocs/op +BenchmarkUUID_v4_Default_Parallel-16 2523262 467.4 ns/op 16 B/op 1 allocs/op +BenchmarkUUID_v4_Default_Concurrent/Goroutines_2-16 3328860 360.3 ns/op 16 B/op 1 allocs/op +BenchmarkUUID_v4_Default_Concurrent/Goroutines_4-16 2731453 436.8 ns/op 16 B/op 1 allocs/op +BenchmarkUUID_v4_Default_Concurrent/Goroutines_8-16 2447664 491.7 ns/op 16 B/op 1 allocs/op +BenchmarkUUID_v4_Default_Concurrent/Goroutines_16-16 2558335 473.6 ns/op 16 B/op 1 allocs/op +BenchmarkUUID_v4_Default_Concurrent/Goroutines_32-16 2366698 510.7 ns/op 16 B/op 1 allocs/op +BenchmarkUUID_v4_Default_Concurrent/Goroutines_64-16 2340867 511.9 ns/op 16 B/op 1 allocs/op +BenchmarkUUID_v4_Default_Concurrent/Goroutines_128-16 2345401 510.6 ns/op 16 B/op 1 allocs/op +BenchmarkUUID_v4_Default_Concurrent/Goroutines_256-16 2329904 515.1 ns/op 16 B/op 1 allocs/op +BenchmarkUUID_v4_CTRDRBG_Serial-16 23044700 50.41 ns/op 16 B/op 1 allocs/op +BenchmarkUUID_v4_CTRDRBG_Parallel-16 94280326 12.50 ns/op 16 B/op 1 allocs/op +BenchmarkUUID_v4_CTRDRBG_Concurrent/Goroutines_2-16 43251036 26.58 ns/op 16 B/op 1 allocs/op +BenchmarkUUID_v4_CTRDRBG_Concurrent/Goroutines_4-16 80453218 14.85 ns/op 16 B/op 1 allocs/op +BenchmarkUUID_v4_CTRDRBG_Concurrent/Goroutines_8-16 100000000 10.95 ns/op 16 B/op 1 allocs/op +BenchmarkUUID_v4_CTRDRBG_Concurrent/Goroutines_16-16 139321384 8.189 ns/op 16 B/op 1 allocs/op +BenchmarkUUID_v4_CTRDRBG_Concurrent/Goroutines_32-16 146813631 8.137 ns/op 16 B/op 1 allocs/op +BenchmarkUUID_v4_CTRDRBG_Concurrent/Goroutines_64-16 144867888 8.253 ns/op 16 B/op 1 allocs/op +BenchmarkUUID_v4_CTRDRBG_Concurrent/Goroutines_128-16 147125661 8.219 ns/op 16 B/op 1 allocs/op +BenchmarkUUID_v4_CTRDRBG_Concurrent/Goroutines_256-16 143012491 8.396 ns/op 16 B/op 1 allocs/op PASS -ok github.com/sixafter/aes-ctr-drbg 33.515s +ok github.com/sixafter/aes-ctr-drbg 32.857s ```
diff --git a/vendor/github.com/sixafter/aes-ctr-drbg/aes_ctr_drbg.go b/vendor/github.com/sixafter/aes-ctr-drbg/aes_ctr_drbg.go index 08af9c6..ccc353b 100644 --- a/vendor/github.com/sixafter/aes-ctr-drbg/aes_ctr_drbg.go +++ b/vendor/github.com/sixafter/aes-ctr-drbg/aes_ctr_drbg.go @@ -7,7 +7,7 @@ // // This package implements a cryptographically secure, pool-backed Deterministic Random Bit Generator // (DRBG) following the NIST SP 800-90A AES-CTR-DRBG construction, specifically as defined in -// Section 10.2.1 of NIST SP 800-90A Rev. 1 ("Recommendation for Random Number Generation Using +// §10.2.1 of NIST SP 800-90A Rev. 1 ("Recommendation for Random Number Generation Using // Deterministic Random Bit Generators"). // // Each generator instance uses an AES block cipher in counter (CTR) mode to produce cryptographically @@ -18,7 +18,7 @@ // // Reference: // -// NIST Special Publication 800-90A Rev. 1, Section 10.2.1 (CTR_DRBG Construction) +// NIST Special Publication 800-90A Rev. 1, §10.2.1 (CTR_DRBG Construction) // https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-90Ar1.pdf package ctrdrbg @@ -26,6 +26,8 @@ import ( "crypto/aes" "crypto/cipher" "crypto/rand" + "crypto/subtle" + "errors" "fmt" "io" mrand "math/rand/v2" @@ -35,6 +37,14 @@ import ( "time" ) +const ( + // MaxBytesPerRequest is the NIST SP 800-90A maximum bytes per request for CTR_DRBG (2^19 bits = 64 KB). + MaxBytesPerRequest = 1 << 16 +) + +// ErrRequestTooLarge is returned when a Read request exceeds the NIST SP 800-90A maximum (64 KB). +var ErrRequestTooLarge = errors.New("ctrdrbg: request exceeds NIST SP 800-90A max_number_of_bits_per_request (64 KB)") + // Reader is a package-level, cryptographically secure random source suitable for high-concurrency applications. // // Reader is initialized at package load time via NewReader and is safe for concurrent use. If initialization fails @@ -193,6 +203,13 @@ func NewReader(opts ...Option) (Interface, error) { opt(&cfg) } + // FIPS 140-2 §4.9.1: Run Known Answer Tests if enabled. + if cfg.EnableSelfTests { + if err := RunSelfTests(); err != nil { + return nil, err + } + } + // Validate the configured key size is appropriate for AES. // Only 16, 24, or 32 bytes (AES-128, AES-192, AES-256) are supported. switch cfg.KeySize { @@ -541,6 +558,11 @@ func (d *drbg) Read(b []byte) (int, error) { return 0, nil } + // NIST SP 800-90A §10.2.1: Validate max_number_of_bits_per_request (64 KB). + if n > MaxBytesPerRequest { + return 0, ErrRequestTooLarge + } + d.reseedIfForked() // Prediction Resistance @@ -650,6 +672,11 @@ func (d *drbg) ReadWithAdditionalInput(b []byte, additionalInput []byte) (int, e return 0, nil } + // NIST SP 800-90A §10.2.1: Validate max_number_of_bits_per_request (64 KB). + if n > MaxBytesPerRequest { + return 0, ErrRequestTooLarge + } + d.reseedIfForked() // If PredictionResistance is enabled, always reseed from fresh entropy before output, @@ -1074,8 +1101,18 @@ func (d *drbg) asyncRekey() { copy(key[:], seed[:d.config.KeySize]) var v [16]byte copy(v[:], seed[d.config.KeySize:]) - block, err := aes.NewCipher(key[:d.config.KeySize]) + var block cipher.Block + block, err = aes.NewCipher(key[:d.config.KeySize]) if err == nil { + // FIPS 140-2 §4.7.6: Zeroize old key material before replacement. + if d.config.EnableZeroization { + if oldState := d.state.Load(); oldState != nil { + // Use subtle.XORBytes to prevent compiler optimization. + subtle.XORBytes(oldState.key[:], oldState.key[:], oldState.key[:]) + subtle.XORBytes(oldState.v[:], oldState.v[:], oldState.v[:]) + } + } + // Store new cryptographic state atomically. newState := &state{ block: block, @@ -1087,6 +1124,10 @@ func (d *drbg) asyncRekey() { // Reset the working counter (v) under mutex lock to ensure no overlap. d.vMu.Lock() + // Zeroize old working counter before overwriting. + if d.config.EnableZeroization { + subtle.XORBytes(d.v[:], d.v[:], d.v[:]) + } copy(d.v[:], v[:]) d.vMu.Unlock() return // Rekey complete. diff --git a/vendor/github.com/sixafter/aes-ctr-drbg/config.go b/vendor/github.com/sixafter/aes-ctr-drbg/config.go index cd1f272..0a62bf6 100644 --- a/vendor/github.com/sixafter/aes-ctr-drbg/config.go +++ b/vendor/github.com/sixafter/aes-ctr-drbg/config.go @@ -40,6 +40,11 @@ const ( KeySize256 KeySize = 32 ) +const ( + // maxReseedInterval is the NIST SP 800-90A maximum reseed interval for CTR_DRBG (2^48). + maxReseedInterval uint64 = 1 << 48 +) + // Config defines the tunable parameters for AES-CTR-DRBG instances and the DRBG pool. // // It supports fine-grained control over key size, key rotation, rekeying policies, @@ -153,7 +158,7 @@ type Config struct { // // When set to true, the DRBG will automatically reseed from fresh system entropy before every // output generation (each call to Read or ReadWithAdditionalInput), as required for compliance - // with "prediction resistance" in Section 9.3 of SP 800-90A. This defeats state compromise + // with "prediction resistance" in §9.3 of SP 800-90A. This defeats state compromise // extension and protects against backtracking even if the DRBG's internal state is exposed. // // When enabled: @@ -177,6 +182,21 @@ type Config struct { // If false, output may be generated in place, which is typically faster and allocation-free. // Defaults to false. UseZeroBuffer bool + + // EnableSelfTests controls whether FIPS 140-2 Known Answer Tests (KAT) are run + // on first use of the DRBG to verify AES-CTR is functioning correctly. + // + // When true, RunSelfTests() is called automatically on the first NewReader() invocation. + // When false (default), self-tests are skipped for performance. + EnableSelfTests bool + + // EnableZeroization controls whether cryptographic key material is securely + // erased from memory during key rotation operations. + // + // When true, old keys and counters are zeroized using crypto/subtle before + // being replaced, providing forward secrecy hardening per FIPS 140-2 section 4.7.6. + // When false (default), old key material is simply overwritten. + EnableZeroization bool } // Default configuration constants for AES-CTR-DRBG. @@ -197,7 +217,7 @@ const ( defaultRekeyBackoff = 100 * time.Millisecond ) -// DefaultConfig returns a Config struct populated with production-safe, NIST SP 800-90A Section 10.2.1-aligned defaults. +// DefaultConfig returns a Config struct populated with production-safe, NIST SP 800-90A §10.2.1-aligned defaults. // // This function provides a robust baseline configuration for AES-CTR-DRBG instances, suitable for general-purpose // cryptographic use and high-concurrency workloads. All parameters are selected to ensure strong security, compliance @@ -213,7 +233,9 @@ const ( // - MaxRekeyAttempts: 5 attempts per automatic key rotation // - MaxRekeyBackoff: 2 seconds (maximum exponential backoff between failed rekey attempts) // - RekeyBackoff: 100 milliseconds (initial backoff for rekey attempts) -// - EnableKeyRotation: false (key rotation is disabled by default—**set to true for forward secrecy**) +// - EnableKeyRotation: false (key rotation is disabled by default—set to true for forward secrecy) +// - EnableSelfTests: false (FIPS 140-2 KAT self-tests disabled; enable via WithSelfTests for compliance) +// - EnableZeroization: false (key zeroization disabled; enable via WithZeroization for FIPS 140-2 compliance) // - Personalization: nil (no domain separation unless set by the caller) // - UseZeroBuffer: false (random output generated directly into caller's buffer) // - DefaultBufferSize: 0 (no preallocation of zero-filled buffers) @@ -222,7 +244,7 @@ const ( // - ForkDetectionInterval: 0 (fork detection performed on every output request for maximum safety) // // NIST Reference: -// - See NIST SP 800-90A, Section 10.2.1 (CTR DRBG) for cryptographic construction details. +// - See NIST SP 800-90A, §10.2.1 (CTR DRBG) for cryptographic construction details. // // Example usage: // @@ -376,9 +398,15 @@ func WithReseedInterval(d time.Duration) Option { // WithReseedRequests returns an Option that sets the maximum number of output requests (calls to Read) // allowed before forcing an automatic reseed from system entropy. // +// Values exceeding the NIST SP 800-90A maximum (2^48) are clamped to the maximum. // Set to zero to disable reseed-on-request-count behavior. func WithReseedRequests(n uint64) Option { - return func(cfg *Config) { cfg.ReseedRequests = n } + return func(cfg *Config) { + if n > maxReseedInterval { + n = maxReseedInterval + } + cfg.ReseedRequests = n + } } // WithForkDetectionInterval sets the number of output requests between fork detection checks. @@ -388,3 +416,21 @@ func WithReseedRequests(n uint64) Option { func WithForkDetectionInterval(n uint64) Option { return func(cfg *Config) { cfg.ForkDetectionInterval = n } } + +// WithSelfTests returns an Option that enables or disables FIPS 140-2 Known Answer Tests (KAT). +// +// When enabled, RunSelfTests() is called automatically on first NewReader() invocation +// to verify AES-CTR is functioning correctly before generating output. +// Defaults to false. +func WithSelfTests(enable bool) Option { + return func(cfg *Config) { cfg.EnableSelfTests = enable } +} + +// WithZeroization returns an Option that enables or disables secure key zeroization. +// +// When enabled, old cryptographic key material is securely erased from memory +// during key rotation operations per FIPS 140-2 section 4.7.6. +// Defaults to false. +func WithZeroization(enable bool) Option { + return func(cfg *Config) { cfg.EnableZeroization = enable } +} diff --git a/vendor/github.com/sixafter/aes-ctr-drbg/selftest.go b/vendor/github.com/sixafter/aes-ctr-drbg/selftest.go new file mode 100644 index 0000000..2c6952a --- /dev/null +++ b/vendor/github.com/sixafter/aes-ctr-drbg/selftest.go @@ -0,0 +1,78 @@ +// Copyright (c) 2024-2025 Six After, Inc +// +// This source code is licensed under the Apache 2.0 License found in the +// LICENSE file in the root directory of this source tree. + +package ctrdrbg + +import ( + "bytes" + "crypto/aes" + "crypto/cipher" + "errors" + "sync" +) + +var ( + selfTestOnce sync.Once + selfTestErr error +) + +// ErrSelfTestFailed indicates the FIPS 140-2 power-on self-test did not pass. +var ErrSelfTestFailed = errors.New("ctrdrbg: FIPS 140-2 self-test failed") + +// RunSelfTests executes FIPS 140-2 Known Answer Tests (KAT) for AES-CTR. +// +// This function verifies that the AES-CTR cryptographic primitive is functioning +// correctly by comparing output against known NIST CAVP test vectors. +// +// RunSelfTests is safe for concurrent use and executes only once per process +// via sync.Once. Subsequent calls return the cached result. +// +// Returns nil on success, or ErrSelfTestFailed if the test fails. +func RunSelfTests() error { + selfTestOnce.Do(func() { + selfTestErr = runKAT() + }) + return selfTestErr +} + +// runKAT performs the Known Answer Test using NIST CAVP test vectors. +// +// Test vector source: NIST SP 800-38A, §F.5.5 +// AES-256-CTR test vector +func runKAT() error { + // NIST SP 800-38A F.5.5 AES-256-CTR test vector + key := [32]byte{ + 0x60, 0x3d, 0xeb, 0x10, 0x15, 0xca, 0x71, 0xbe, + 0x2b, 0x73, 0xae, 0xf0, 0x85, 0x7d, 0x77, 0x81, + 0x1f, 0x35, 0x2c, 0x07, 0x3b, 0x61, 0x08, 0xd7, + 0x2d, 0x98, 0x10, 0xa3, 0x09, 0x14, 0xdf, 0xf4, + } + iv := [16]byte{ + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, + 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, + } + plaintext := [16]byte{ + 0x6b, 0xc1, 0xbe, 0xe2, 0x2e, 0x40, 0x9f, 0x96, + 0xe9, 0x3d, 0x7e, 0x11, 0x73, 0x93, 0x17, 0x2a, + } + expected := [16]byte{ + 0x60, 0x1e, 0xc3, 0x13, 0x77, 0x57, 0x89, 0xa5, + 0xb7, 0xa7, 0xf5, 0x04, 0xbb, 0xf3, 0xd2, 0x28, + } + + block, err := aes.NewCipher(key[:]) + if err != nil { + return ErrSelfTestFailed + } + + stream := cipher.NewCTR(block, iv[:]) + var out [16]byte + stream.XORKeyStream(out[:], plaintext[:]) + + if !bytes.Equal(out[:], expected[:]) { + return ErrSelfTestFailed + } + return nil +} diff --git a/vendor/github.com/sixafter/nanoid/Makefile b/vendor/github.com/sixafter/nanoid/Makefile index 6bc6dc1..ce2acbe 100644 --- a/vendor/github.com/sixafter/nanoid/Makefile +++ b/vendor/github.com/sixafter/nanoid/Makefile @@ -20,7 +20,7 @@ GO_WORK_FILE := ./go.work FUZZTIME ?= 15s .PHONY: all -all: deps vendor update vendor tidy clean test +all: deps update tidy vendor clean test .PHONY: deps deps: ## Get the dependencies and vendor diff --git a/vendor/github.com/sixafter/nanoid/README.md b/vendor/github.com/sixafter/nanoid/README.md index ee07c3a..3952ffb 100644 --- a/vendor/github.com/sixafter/nanoid/README.md +++ b/vendor/github.com/sixafter/nanoid/README.md @@ -65,10 +65,10 @@ Please see the [nanoid-cli](https://github.com/sixafter/nanoid-cli) for a comman To verify the integrity of the release, you can use Cosign to check the signature and checksums. Follow these steps: ```sh -# Fetch the latest release tag from GitHub API (e.g., "v1.56.0") -TAG=$(curl -s https://api.github.com/repos/sixafter/nanoid-go/releases/latest | jq -r .tag_name) +# Fetch the latest release tag from GitHub API (e.g., "v1.59.0") +TAG=$(curl -s https://api.github.com/repos/sixafter/nanoid/releases/latest | jq -r .tag_name) -# Remove leading "v" for filenames (e.g., "v1.56.0" -> "1.56.0") +# Remove leading "v" for filenames (e.g., "v1.59.0" -> "1.59.0") VERSION=${TAG#v} # --------------------------------------------------------------------- @@ -76,12 +76,12 @@ VERSION=${TAG#v} # --------------------------------------------------------------------- # Download the release tarball and its signature bundle -curl -LO "https://github.com/sixafter/nanoid-go/releases/download/${TAG}/nanoid-${VERSION}.tar.gz" -curl -LO "https://github.com/sixafter/nanoid-go/releases/download/${TAG}/nanoid-${VERSION}.tar.gz.sigstore.json" +curl -LO "https://github.com/sixafter/nanoid/releases/download/${TAG}/nanoid-${VERSION}.tar.gz" +curl -LO "https://github.com/sixafter/nanoid/releases/download/${TAG}/nanoid-${VERSION}.tar.gz.sigstore.json" # Verify the tarball with Cosign using the published public key cosign verify-blob \ - --key "https://raw.githubusercontent.com/sixafter/nanoid-go/main/cosign.pub" \ + --key "https://raw.githubusercontent.com/sixafter/nanoid/main/cosign.pub" \ --bundle "nanoid-${VERSION}.tar.gz.sigstore.json" \ "nanoid-${VERSION}.tar.gz" @@ -89,11 +89,11 @@ cosign verify-blob \ # Verify the checksums manifest using Sigstore bundles # --------------------------------------------------------------------- -curl -LO "https://github.com/sixafter/nanoid-go/releases/download/${TAG}/checksums.txt" -curl -LO "https://github.com/sixafter/nanoid-go/releases/download/${TAG}/checksums.txt.sigstore.json" +curl -LO "https://github.com/sixafter/nanoid/releases/download/${TAG}/checksums.txt" +curl -LO "https://github.com/sixafter/nanoid/releases/download/${TAG}/checksums.txt.sigstore.json" cosign verify-blob \ - --key "https://raw.githubusercontent.com/sixafter/nanoid-go/main/cosign.pub" \ + --key "https://raw.githubusercontent.com/sixafter/nanoid/main/cosign.pub" \ --bundle "checksums.txt.sigstore.json" \ "checksums.txt" diff --git a/vendor/github.com/sixafter/prng-chacha/Makefile b/vendor/github.com/sixafter/prng-chacha/Makefile index cb42d7c..dd0f774 100644 --- a/vendor/github.com/sixafter/prng-chacha/Makefile +++ b/vendor/github.com/sixafter/prng-chacha/Makefile @@ -20,7 +20,7 @@ GO_WORK_FILE := ./go.work FUZZTIME ?= 20s .PHONY: all -all: deps vendor update vendor tidy clean test +all: deps update tidy vendor clean test .PHONY: deps deps: ## Get the dependencies and vendor diff --git a/vendor/github.com/sixafter/prng-chacha/README.md b/vendor/github.com/sixafter/prng-chacha/README.md index b28971e..04c54bf 100644 --- a/vendor/github.com/sixafter/prng-chacha/README.md +++ b/vendor/github.com/sixafter/prng-chacha/README.md @@ -57,10 +57,10 @@ Please see the [godoc](https://pkg.go.dev/github.com/sixafter/prng-chacha) for d To verify the integrity of the release tarball, you can use Cosign to check the signature against the public key. ```sh -# Fetch the latest release tag from GitHub API (e.g., "v1.14.0") +# Fetch the latest release tag from GitHub API (e.g., "v1.12.0") TAG=$(curl -s https://api.github.com/repos/sixafter/prng-chacha/releases/latest | jq -r .tag_name) -# Remove leading "v" for filenames (e.g., "v1.14.0" -> "1.14.0") +# Remove leading "v" for filenames (e.g., "v1.12.0" -> "1.12.0") VERSION=${TAG#v} # --------------------------------------------------------------------- @@ -133,7 +133,7 @@ package main import ( "fmt" - "github.com/sixafter/sixafter/prng-chacha" + "github.com/sixafter/prng-chacha" ) func main() { @@ -155,7 +155,7 @@ import ( "fmt" "github.com/google/uuid" - "github.com/sixafter/sixafter/prng-chacha" + "github.com/sixafter/prng-chacha" ) func main() { diff --git a/vendor/github.com/sixafter/prng-chacha/config.go b/vendor/github.com/sixafter/prng-chacha/config.go index 0fe373d..8ee44cd 100644 --- a/vendor/github.com/sixafter/prng-chacha/config.go +++ b/vendor/github.com/sixafter/prng-chacha/config.go @@ -230,6 +230,9 @@ func WithDefaultBufferSize(n int) Option { // See: https://github.com/golang/go/issues/73193 func WithShards(n int) Option { return func(cfg *Config) { + if n <= 0 { + n = runtime.GOMAXPROCS(0) + } cfg.Shards = n } } diff --git a/vendor/github.com/sixafter/prng-chacha/prng.go b/vendor/github.com/sixafter/prng-chacha/prng.go index aaffa79..b4f59d7 100644 --- a/vendor/github.com/sixafter/prng-chacha/prng.go +++ b/vendor/github.com/sixafter/prng-chacha/prng.go @@ -181,17 +181,17 @@ func NewReader(opts ...Option) (Interface, error) { // Step 3: Eagerly test the pool initialization to ensure that any catastrophic // failure is caught immediately, not deferred to the first use. // This triggers pool.New, which may return nil on failure. Any nil value is converted to an error. - var initErr error + var err error item := pools[i].Get() if item == nil { - initErr = fmt.Errorf("prng pool initialization failed after %d retries", cfg.MaxInitRetries) + err = fmt.Errorf("prng pool initialization failed after %d retries", cfg.MaxInitRetries) } else { pools[i].Put(item) } // Step 4: If initialization failed, return it as an error. - if initErr != nil { - return nil, initErr + if err != nil { + return nil, err } } @@ -484,7 +484,7 @@ func (p *prng) asyncRekey() { // If cipher initialization failed, jitter the retry delay by a random amount. var b [8]byte - if _, err := rand.Read(b[:]); err == nil { + if _, err = rand.Read(b[:]); err == nil { // Interpret b as a big-endian uint64 for jitter. rnd := binary.BigEndian.Uint64(b[:]) diff --git a/vendor/github.com/sixafter/semver/CHANGELOG.md b/vendor/github.com/sixafter/semver/CHANGELOG.md index c891ccc..5cfbdd9 100644 --- a/vendor/github.com/sixafter/semver/CHANGELOG.md +++ b/vendor/github.com/sixafter/semver/CHANGELOG.md @@ -19,6 +19,20 @@ Date format: `YYYY-MM-DD` --- +## [1.12.0] - 2025-12-17 + +### Added +### Changed +- **debt:** Upgraded dependencies to their latest stable versions. +- **risk:** Add defensive logic to module verification make target. + +### Deprecated +### Removed +### Fixed +### Security + +--- + ## [1.11.0] - 2025-11-20 ### Added @@ -197,7 +211,8 @@ Date format: `YYYY-MM-DD` ### Fixed ### Security -[Unreleased]: https://github.com/sixafter/semver/compare/v1.11.0...HEAD +[Unreleased]: https://github.com/sixafter/semver/compare/v1.12.0...HEAD +[1.12.0]: https://github.com/sixafter/semver/compare/v1.11.0...v1.12.0 [1.11.0]: https://github.com/sixafter/semver/compare/v1.10.3...v1.11.0 [1.10.3]: https://github.com/sixafter/semver/compare/v1.10.1...v1.10.3 [1.10.1]: https://github.com/sixafter/semver/compare/v1.10.0...v1.10.1 diff --git a/vendor/github.com/sixafter/semver/Makefile b/vendor/github.com/sixafter/semver/Makefile index 6f275a8..350fd09 100644 --- a/vendor/github.com/sixafter/semver/Makefile +++ b/vendor/github.com/sixafter/semver/Makefile @@ -19,7 +19,7 @@ GO_WORK=$(GO_CMD) work GO_WORK_FILE := ./go.work .PHONY: all -all: clean test +all: deps vendor update vendor tidy clean test .PHONY: deps deps: ## Get the dependencies and vendor @@ -84,8 +84,8 @@ release-verify: ## Verify the release @scripts/verify-release.sh .PHONY: module-verify -mod-verify: ## Verify Go module integrity - @scripts/verify-mod.sh +module-verify: ## Verify Go module integrity + @TAG=$(TAG) scripts/verify-mod.sh .PHONY: signature-verify signature-verify: ## Verify latest release's digital signatures diff --git a/vendor/github.com/sixafter/semver/README.md b/vendor/github.com/sixafter/semver/README.md index 24af543..d09cb85 100644 --- a/vendor/github.com/sixafter/semver/README.md +++ b/vendor/github.com/sixafter/semver/README.md @@ -33,10 +33,10 @@ A Semantic Versioning 2.0.0 compliant parser and utility library written in Go. To verify the integrity of the release, you can use Cosign to check the signature and checksums. Follow these steps: ```sh -# Fetch the latest release tag from GitHub API (e.g., "v1.11.0") +# Fetch the latest release tag from GitHub API (e.g., "v1.12.0") TAG=$(curl -s https://api.github.com/repos/sixafter/semver/releases/latest | jq -r .tag_name) -# Remove leading "v" for filenames (e.g., "v1.11.0" -> "1.11.0") +# Remove leading "v" for filenames (e.g., "v1.12.0" -> "1.12.0") VERSION=${TAG#v} # --------------------------------------------------------------------- diff --git a/vendor/modules.txt b/vendor/modules.txt index 283c6d5..46dc323 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -10,16 +10,16 @@ github.com/inconshreveable/mousetrap # github.com/pmezard/go-difflib v1.0.0 ## explicit github.com/pmezard/go-difflib/difflib -# github.com/sixafter/aes-ctr-drbg v1.14.5 +# github.com/sixafter/aes-ctr-drbg v1.15.0 ## explicit; go 1.25 github.com/sixafter/aes-ctr-drbg -# github.com/sixafter/nanoid v1.58.0 +# github.com/sixafter/nanoid v1.59.0 ## explicit; go 1.25 github.com/sixafter/nanoid -# github.com/sixafter/prng-chacha v1.11.0 +# github.com/sixafter/prng-chacha v1.12.0 ## explicit; go 1.25 github.com/sixafter/prng-chacha -# github.com/sixafter/semver v1.11.0 +# github.com/sixafter/semver v1.12.0 ## explicit; go 1.25 github.com/sixafter/semver # github.com/spf13/cobra v1.10.2