diff options
100 files changed, 11605 insertions, 2597 deletions
@@ -4773,3 +4773,7 @@ net-mgmt/netdata-go|net-mgmt/netdata|2025-09-08|The netdata-go plugin is include finance/myphpmoney||2025-09-08|Has expired: Unmaintained upstream and most probably does not work with modern PHP versions databases/adminerevo||2025-09-09|Has expired: Abandoned upstream, repo archived Jan 24, 2025 databases/redisdesktopmanager||2025-09-09|Has expired: RedisDesktopManager is no longer maintained upstream as the project has been replaced by RedisInsight +games/palomino||2025-09-11|Has expired: Obsolete and abandoneed, last release in 2013, not playable +graphics/osg34||2025-09-11|Has expired: Obsolete version released in 2015 +games/motogt||2025-09-11|Has expired: Depends on obsolete devel/sfml1 +devel/sfml1|devel/sfml|2025-09-11|Has expired: Broken obsolete version diff --git a/deskutils/remind/Makefile b/deskutils/remind/Makefile index 3417e5b287d7..0d16c830c516 100644 --- a/deskutils/remind/Makefile +++ b/deskutils/remind/Makefile @@ -1,5 +1,5 @@ PORTNAME= remind -DISTVERSION= 06.00.01 +DISTVERSION= 06.01.00 CATEGORIES= deskutils # upstream moves distfiles to OLD once a new release appears MASTER_SITES= https://dianne.skoll.ca/projects/remind/download/ \ @@ -24,7 +24,7 @@ BUILD_WRKSRC= ${WRKSRC}/src INSTALL_WRKSRC= ${BUILD_WRKSRC} # disable LTO on riscv64 -EXTRA_PATCHES_riscv64= ${FILESDIR}/extra-patch-configure.in +EXTRA_PATCHES_riscv64= ${FILESDIR}/extra-patch-configure.ac EXTRA_PATCHES= ${EXTRA_PATCHES_${ARCH}} OPTIONS_DEFINE= A4 TCLTK REM2HTML REM2PDF diff --git a/deskutils/remind/distinfo b/deskutils/remind/distinfo index 3558196d7ed7..71301c8eb555 100644 --- a/deskutils/remind/distinfo +++ b/deskutils/remind/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1756286386 -SHA256 (remind-06.00.01.tar.gz) = 0705b6f700d6cd7b0f59af106495f7dd726ea14b641d9d8408f532fb28d2f007 -SIZE (remind-06.00.01.tar.gz) = 8998734 +TIMESTAMP = 1757410558 +SHA256 (remind-06.01.00.tar.gz) = 7f10ce82be9b2ed413984c96bca1d402a8d803b499bbc93eebd5b7af4fcb4ea3 +SIZE (remind-06.01.00.tar.gz) = 9005847 diff --git a/deskutils/remind/files/extra-patch-configure.in b/deskutils/remind/files/extra-patch-configure.ac index bac6c6366f21..826ae75fd27d 100644 --- a/deskutils/remind/files/extra-patch-configure.in +++ b/deskutils/remind/files/extra-patch-configure.ac @@ -1,5 +1,5 @@ ---- configure.in.orig 2022-10-13 14:15:40 UTC -+++ configure.in +--- configure.ac.orig 2022-10-13 14:15:40 UTC ++++ configure.ac @@ -51,7 +51,6 @@ if test "$GCC" = yes; then AC_MSG_CHECKING([whether $CC supports $f]) if $CC -E $f /dev/null > /dev/null 2>&1 ; then diff --git a/devel/Makefile b/devel/Makefile index df9dee91cc8d..521ae61264b3 100644 --- a/devel/Makefile +++ b/devel/Makefile @@ -4887,6 +4887,7 @@ SUBDIR += py-fastjsonschema SUBDIR += py-fastnumbers SUBDIR += py-fastprogress + SUBDIR += py-fastuuid SUBDIR += py-fiddle SUBDIR += py-fields SUBDIR += py-filebytes @@ -6149,6 +6150,7 @@ SUBDIR += py-user_agents SUBDIR += py-userpath SUBDIR += py-usort + SUBDIR += py-uuid7 SUBDIR += py-uv-dynamic-versioning SUBDIR += py-uvloop SUBDIR += py-validate-pyproject @@ -8196,7 +8198,6 @@ SUBDIR += serd SUBDIR += serdisplib SUBDIR += sfml - SUBDIR += sfml1 SUBDIR += sfsexp SUBDIR += sgb SUBDIR += shadered diff --git a/devel/go-tools/Makefile b/devel/go-tools/Makefile index 2873151c5eb5..bfa9f065485e 100644 --- a/devel/go-tools/Makefile +++ b/devel/go-tools/Makefile @@ -1,6 +1,6 @@ PORTNAME= tools DISTVERSIONPREFIX= v -DISTVERSION= 0.36.0 +DISTVERSION= 0.37.0 PORTEPOCH= 1 CATEGORIES= devel PKGNAMEPREFIX= go- @@ -12,7 +12,7 @@ WWW= https://godoc.org/golang.org/x/tools LICENSE= BSD3CLAUSE LICENSE_FILE= ${WRKSRC}/LICENSE -USES= go:modules,1.23 +USES= go:modules,1.24 GO_MODULE= golang.org/x/tools GO_TARGET= ./cmd/bisect \ ./cmd/bundle \ @@ -25,7 +25,6 @@ GO_TARGET= ./cmd/bisect \ ./cmd/fiximports \ ./cmd/go-contrib-init \ ./cmd/godex \ - ./cmd/godoc \ ./cmd/goimports \ ./cmd/gomvpkg \ ./cmd/gonew \ diff --git a/devel/go-tools/distinfo b/devel/go-tools/distinfo index bc3e44600942..206444dbc61f 100644 --- a/devel/go-tools/distinfo +++ b/devel/go-tools/distinfo @@ -1,5 +1,5 @@ -TIMESTAMP = 1755157007 -SHA256 (go/devel_go-tools/tools-v0.36.0/v0.36.0.mod) = 53792e623827ef40be8f1af36dcf12790e82780b3d33b4b0944f56a3584bc429 -SIZE (go/devel_go-tools/tools-v0.36.0/v0.36.0.mod) = 301 -SHA256 (go/devel_go-tools/tools-v0.36.0/v0.36.0.zip) = 85b486030e995cd5b4d56dea92f247b32bf4e0ae2fe6816b29d4514b5a43fec8 -SIZE (go/devel_go-tools/tools-v0.36.0/v0.36.0.zip) = 3553586 +TIMESTAMP = 1757582437 +SHA256 (go/devel_go-tools/tools-v0.37.0/v0.37.0.mod) = dbd04ecd296d4dab2706766adfcdd2d52c27345613d631682f8fa4371af54aef +SIZE (go/devel_go-tools/tools-v0.37.0/v0.37.0.mod) = 301 +SHA256 (go/devel_go-tools/tools-v0.37.0/v0.37.0.zip) = 429b25131b8564084cce722043b12dd8e3ff5231ac6cd63a405b4f3e6fd69204 +SIZE (go/devel_go-tools/tools-v0.37.0/v0.37.0.zip) = 2683863 diff --git a/devel/goreleaser/Makefile b/devel/goreleaser/Makefile index 605cc80ee7de..cfe4155f03c8 100644 --- a/devel/goreleaser/Makefile +++ b/devel/goreleaser/Makefile @@ -1,7 +1,6 @@ PORTNAME= goreleaser DISTVERSIONPREFIX= v -DISTVERSION= 2.11.2 -PORTREVISION= 1 +DISTVERSION= 2.12.0 CATEGORIES= devel MAINTAINER= fuz@FreeBSD.org @@ -11,7 +10,7 @@ WWW= https://goreleaser.com/ LICENSE= MIT LICENSE_FILE= ${WRKSRC}/LICENSE.md -USES= go:1.24,modules +USES= go:1.25,modules GO_MODULE= github.com/goreleaser/goreleaser/v2 GO_TARGET= .:goreleaser GO_BUILDFLAGS= -ldflags="-X main.version=${PKGVERSION} -X 'main.builtBy=FreeBSD ports' ${STRIP}" diff --git a/devel/goreleaser/distinfo b/devel/goreleaser/distinfo index cfc66e31df07..58b2083b6a75 100644 --- a/devel/goreleaser/distinfo +++ b/devel/goreleaser/distinfo @@ -1,5 +1,5 @@ -TIMESTAMP = 1754342029 -SHA256 (go/devel_goreleaser/goreleaser-v2.11.2/v2.11.2.mod) = aef2abf2d4957a0b16866180d611cb78887623b71c59cc061e847c65f3d96fbc -SIZE (go/devel_goreleaser/goreleaser-v2.11.2/v2.11.2.mod) = 20901 -SHA256 (go/devel_goreleaser/goreleaser-v2.11.2/v2.11.2.zip) = 8644808ddb068b5ab1616a305b10f8ba87d28e22d38060fb247cca84f15a2196 -SIZE (go/devel_goreleaser/goreleaser-v2.11.2/v2.11.2.zip) = 3375884 +TIMESTAMP = 1756896483 +SHA256 (go/devel_goreleaser/goreleaser-v2.12.0/v2.12.0.mod) = b2b49b93b3255d09e27f193394f90f152088a92f2789560f63b84a106a572e08 +SIZE (go/devel_goreleaser/goreleaser-v2.12.0/v2.12.0.mod) = 20963 +SHA256 (go/devel_goreleaser/goreleaser-v2.12.0/v2.12.0.zip) = 639e4bd86701effa56fb1f04c5f8d20d8c8c5af37c7e07102b822a4fc0e809ab +SIZE (go/devel_goreleaser/goreleaser-v2.12.0/v2.12.0.zip) = 3408662 diff --git a/devel/gotestsum/Makefile b/devel/gotestsum/Makefile index 094930a53549..ca83efae4eed 100644 --- a/devel/gotestsum/Makefile +++ b/devel/gotestsum/Makefile @@ -1,7 +1,6 @@ PORTNAME= gotestsum DISTVERSIONPREFIX= v -DISTVERSION= 1.12.3 -PORTREVISION= 1 +DISTVERSION= 1.13.0 CATEGORIES= devel MAINTAINER= adamw@FreeBSD.org diff --git a/devel/gotestsum/distinfo b/devel/gotestsum/distinfo index e621abda1e72..bdb1e0568603 100644 --- a/devel/gotestsum/distinfo +++ b/devel/gotestsum/distinfo @@ -1,5 +1,5 @@ -TIMESTAMP = 1755615589 -SHA256 (go/devel_gotestsum/gotestsum-v1.12.3/v1.12.3.mod) = f81e03c518a0af15594245c050274007bb9a81c4960273890be887e72a1d3aee -SIZE (go/devel_gotestsum/gotestsum-v1.12.3/v1.12.3.mod) = 608 -SHA256 (go/devel_gotestsum/gotestsum-v1.12.3/v1.12.3.zip) = 74fb757cdaa7711cdc5e3ed38658f0b67d76b56c870ba45a70ed830acd0f7600 -SIZE (go/devel_gotestsum/gotestsum-v1.12.3/v1.12.3.zip) = 184119 +TIMESTAMP = 1757599902 +SHA256 (go/devel_gotestsum/gotestsum-v1.13.0/v1.13.0.mod) = 0529691902224feb8047c69fe0da20c793972c6ea3d1151eaacb0b5b58f4fffb +SIZE (go/devel_gotestsum/gotestsum-v1.13.0/v1.13.0.mod) = 608 +SHA256 (go/devel_gotestsum/gotestsum-v1.13.0/v1.13.0.zip) = f9a484530bafb51bc7c211c0b251fa0d3aaf58a3035b2cc12ff981ddd8f3c832 +SIZE (go/devel_gotestsum/gotestsum-v1.13.0/v1.13.0.zip) = 187104 diff --git a/devel/py-fastuuid/Makefile b/devel/py-fastuuid/Makefile new file mode 100644 index 000000000000..47934234b9bd --- /dev/null +++ b/devel/py-fastuuid/Makefile @@ -0,0 +1,33 @@ +PORTNAME= fastuuid +DISTVERSION= 0.12.0 +CATEGORIES= devel python +MASTER_SITES= PYPI +PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} +DISTFILES= ${DISTNAME}${EXTRACT_SUFX} + +MAINTAINER= tagattie@FreeBSD.org +COMMENT= Library providing CPython bindings to Rust's UUID library #' +WWW= https://github.com/fastuuid/fastuuid + +LICENSE= BSD3CLAUSE +LICENSE_FILE= ${WRKSRC}/LICENSE + +BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}maturin>=1.0<2.0:devel/py-maturin@${PY_FLAVOR} +TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}hypothesis>0:devel/py-hypothesis@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}pytest-benchmark>0:devel/py-pytest-benchmark@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}uuid7>0:devel/py-uuid7@${PY_FLAVOR} + +USES= cargo python +USE_PYTHON= autoplist pep517 pytest + +CARGO_BUILD= no +CARGO_INSTALL= no +CARGO_TEST= no + +MAKE_ENV= ${CARGO_ENV} +TEST_ENV= PYTHONPATH=${STAGEDIR}${PYTHONPREFIX_SITELIBDIR} + +post-install: + @${STRIP_CMD} ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}/fastuuid/*.so + +.include <bsd.port.mk> diff --git a/devel/py-fastuuid/Makefile.crates b/devel/py-fastuuid/Makefile.crates new file mode 100644 index 000000000000..90ebffc5f1fd --- /dev/null +++ b/devel/py-fastuuid/Makefile.crates @@ -0,0 +1,39 @@ +CARGO_CRATES= atomic-0.6.0 \ + autocfg-1.4.0 \ + block-buffer-0.10.4 \ + bytemuck-1.21.0 \ + byteorder-1.5.0 \ + cfg-if-1.0.0 \ + crypto-common-0.1.6 \ + digest-0.10.7 \ + generic-array-0.14.7 \ + getrandom-0.2.15 \ + heck-0.5.0 \ + indoc-2.0.5 \ + libc-0.2.169 \ + md-5-0.10.6 \ + memoffset-0.9.1 \ + once_cell-1.20.2 \ + portable-atomic-1.10.0 \ + ppv-lite86-0.2.20 \ + proc-macro2-1.0.93 \ + pyo3-0.22.6 \ + pyo3-build-config-0.22.6 \ + pyo3-ffi-0.22.6 \ + pyo3-macros-0.22.6 \ + pyo3-macros-backend-0.22.6 \ + quote-1.0.38 \ + rand-0.8.5 \ + rand_chacha-0.3.1 \ + rand_core-0.6.4 \ + sha1_smol-1.0.1 \ + syn-2.0.96 \ + target-lexicon-0.12.16 \ + typenum-1.17.0 \ + unicode-ident-1.0.15 \ + unindent-0.2.3 \ + uuid-1.12.1 \ + version_check-0.9.5 \ + wasi-0.11.0+wasi-snapshot-preview1 \ + zerocopy-0.7.35 \ + zerocopy-derive-0.7.35 diff --git a/devel/py-fastuuid/distinfo b/devel/py-fastuuid/distinfo new file mode 100644 index 000000000000..15b4c051a2f3 --- /dev/null +++ b/devel/py-fastuuid/distinfo @@ -0,0 +1,81 @@ +TIMESTAMP = 1757570719 +SHA256 (fastuuid-0.12.0.tar.gz) = d0bd4e5b35aad2826403f4411937c89e7c88857b1513fe10f696544c03e9bd8e +SIZE (fastuuid-0.12.0.tar.gz) = 19180 +SHA256 (rust/crates/atomic-0.6.0.crate) = 8d818003e740b63afc82337e3160717f4f63078720a810b7b903e70a5d1d2994 +SIZE (rust/crates/atomic-0.6.0.crate) = 12919 +SHA256 (rust/crates/autocfg-1.4.0.crate) = ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26 +SIZE (rust/crates/autocfg-1.4.0.crate) = 17712 +SHA256 (rust/crates/block-buffer-0.10.4.crate) = 3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71 +SIZE (rust/crates/block-buffer-0.10.4.crate) = 10538 +SHA256 (rust/crates/bytemuck-1.21.0.crate) = ef657dfab802224e671f5818e9a4935f9b1957ed18e58292690cc39e7a4092a3 +SIZE (rust/crates/bytemuck-1.21.0.crate) = 51553 +SHA256 (rust/crates/byteorder-1.5.0.crate) = 1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b +SIZE (rust/crates/byteorder-1.5.0.crate) = 23288 +SHA256 (rust/crates/cfg-if-1.0.0.crate) = baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd +SIZE (rust/crates/cfg-if-1.0.0.crate) = 7934 +SHA256 (rust/crates/crypto-common-0.1.6.crate) = 1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3 +SIZE (rust/crates/crypto-common-0.1.6.crate) = 8760 +SHA256 (rust/crates/digest-0.10.7.crate) = 9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292 +SIZE (rust/crates/digest-0.10.7.crate) = 19557 +SHA256 (rust/crates/generic-array-0.14.7.crate) = 85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a +SIZE (rust/crates/generic-array-0.14.7.crate) = 15950 +SHA256 (rust/crates/getrandom-0.2.15.crate) = c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7 +SIZE (rust/crates/getrandom-0.2.15.crate) = 37163 +SHA256 (rust/crates/heck-0.5.0.crate) = 2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea +SIZE (rust/crates/heck-0.5.0.crate) = 11517 +SHA256 (rust/crates/indoc-2.0.5.crate) = b248f5224d1d606005e02c97f5aa4e88eeb230488bcc03bc9ca4d7991399f2b5 +SIZE (rust/crates/indoc-2.0.5.crate) = 14396 +SHA256 (rust/crates/libc-0.2.169.crate) = b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a +SIZE (rust/crates/libc-0.2.169.crate) = 757901 +SHA256 (rust/crates/md-5-0.10.6.crate) = d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf +SIZE (rust/crates/md-5-0.10.6.crate) = 16161 +SHA256 (rust/crates/memoffset-0.9.1.crate) = 488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a +SIZE (rust/crates/memoffset-0.9.1.crate) = 9032 +SHA256 (rust/crates/once_cell-1.20.2.crate) = 1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775 +SIZE (rust/crates/once_cell-1.20.2.crate) = 33394 +SHA256 (rust/crates/portable-atomic-1.10.0.crate) = 280dc24453071f1b63954171985a0b0d30058d287960968b9b2aca264c8d4ee6 +SIZE (rust/crates/portable-atomic-1.10.0.crate) = 174760 +SHA256 (rust/crates/ppv-lite86-0.2.20.crate) = 77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04 +SIZE (rust/crates/ppv-lite86-0.2.20.crate) = 22478 +SHA256 (rust/crates/proc-macro2-1.0.93.crate) = 60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99 +SIZE (rust/crates/proc-macro2-1.0.93.crate) = 52388 +SHA256 (rust/crates/pyo3-0.22.6.crate) = f402062616ab18202ae8319da13fa4279883a2b8a9d9f83f20dbade813ce1884 +SIZE (rust/crates/pyo3-0.22.6.crate) = 546746 +SHA256 (rust/crates/pyo3-build-config-0.22.6.crate) = b14b5775b5ff446dd1056212d778012cbe8a0fbffd368029fd9e25b514479c38 +SIZE (rust/crates/pyo3-build-config-0.22.6.crate) = 31369 +SHA256 (rust/crates/pyo3-ffi-0.22.6.crate) = 9ab5bcf04a2cdcbb50c7d6105de943f543f9ed92af55818fd17b660390fc8636 +SIZE (rust/crates/pyo3-ffi-0.22.6.crate) = 69352 +SHA256 (rust/crates/pyo3-macros-0.22.6.crate) = 0fd24d897903a9e6d80b968368a34e1525aeb719d568dba8b3d4bfa5dc67d453 +SIZE (rust/crates/pyo3-macros-0.22.6.crate) = 8182 +SHA256 (rust/crates/pyo3-macros-backend-0.22.6.crate) = 36c011a03ba1e50152b4b394b479826cad97e7a21eb52df179cd91ac411cbfbe +SIZE (rust/crates/pyo3-macros-backend-0.22.6.crate) = 66312 +SHA256 (rust/crates/quote-1.0.38.crate) = 0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc +SIZE (rust/crates/quote-1.0.38.crate) = 31252 +SHA256 (rust/crates/rand-0.8.5.crate) = 34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404 +SIZE (rust/crates/rand-0.8.5.crate) = 87113 +SHA256 (rust/crates/rand_chacha-0.3.1.crate) = e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88 +SIZE (rust/crates/rand_chacha-0.3.1.crate) = 15251 +SHA256 (rust/crates/rand_core-0.6.4.crate) = ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c +SIZE (rust/crates/rand_core-0.6.4.crate) = 22666 +SHA256 (rust/crates/sha1_smol-1.0.1.crate) = bbfa15b3dddfee50a0fff136974b3e1bde555604ba463834a7eb7deb6417705d +SIZE (rust/crates/sha1_smol-1.0.1.crate) = 9809 +SHA256 (rust/crates/syn-2.0.96.crate) = d5d0adab1ae378d7f53bdebc67a39f1f151407ef230f0ce2883572f5d8985c80 +SIZE (rust/crates/syn-2.0.96.crate) = 297497 +SHA256 (rust/crates/target-lexicon-0.12.16.crate) = 61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1 +SIZE (rust/crates/target-lexicon-0.12.16.crate) = 26488 +SHA256 (rust/crates/typenum-1.17.0.crate) = 42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825 +SIZE (rust/crates/typenum-1.17.0.crate) = 42849 +SHA256 (rust/crates/unicode-ident-1.0.15.crate) = 11cd88e12b17c6494200a9c1b683a04fcac9573ed74cd1b62aeb2727c5592243 +SIZE (rust/crates/unicode-ident-1.0.15.crate) = 47463 +SHA256 (rust/crates/unindent-0.2.3.crate) = c7de7d73e1754487cb58364ee906a499937a0dfabd86bcb980fa99ec8c8fa2ce +SIZE (rust/crates/unindent-0.2.3.crate) = 7306 +SHA256 (rust/crates/uuid-1.12.1.crate) = b3758f5e68192bb96cc8f9b7e2c2cfdabb435499a28499a42f8f984092adad4b +SIZE (rust/crates/uuid-1.12.1.crate) = 48851 +SHA256 (rust/crates/version_check-0.9.5.crate) = 0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a +SIZE (rust/crates/version_check-0.9.5.crate) = 15554 +SHA256 (rust/crates/wasi-0.11.0+wasi-snapshot-preview1.crate) = 9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423 +SIZE (rust/crates/wasi-0.11.0+wasi-snapshot-preview1.crate) = 28131 +SHA256 (rust/crates/zerocopy-0.7.35.crate) = 1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0 +SIZE (rust/crates/zerocopy-0.7.35.crate) = 152645 +SHA256 (rust/crates/zerocopy-derive-0.7.35.crate) = fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e +SIZE (rust/crates/zerocopy-derive-0.7.35.crate) = 37829 diff --git a/devel/py-fastuuid/pkg-descr b/devel/py-fastuuid/pkg-descr new file mode 100644 index 000000000000..5cee122ebb55 --- /dev/null +++ b/devel/py-fastuuid/pkg-descr @@ -0,0 +1,5 @@ +FastUUID is a library which provides CPython bindings to Rust's UUID +library. The provided API is exactly as Python's builtin UUID class. + +It is much faster than Python's pure-python implementation and it is +stricter when parsing hexadecimal representation of UUIDs. diff --git a/devel/py-uuid7/Makefile b/devel/py-uuid7/Makefile new file mode 100644 index 000000000000..cc9728e84495 --- /dev/null +++ b/devel/py-uuid7/Makefile @@ -0,0 +1,27 @@ +PORTNAME= uuid7 +DISTVERSION= 0.1.0 +CATEGORIES= devel python +MASTER_SITES= PYPI +PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} + +MAINTAINER= tagattie@FreeBSD.org +COMMENT= UUID version 7, which are time-sortable +WWW= https://github.com/stevesimmons/uuid7 + +LICENSE= MIT +LICENSE_FILE= ${WRKSRC}/LICENSE + +USES= python +USE_PYTHON= autoplist distutils pytest + +NO_ARCH= yes + +PORTDOCS= CONTRIBUTING.rst README.rst + +OPTIONS_DEFINE= DOCS + +post-install-DOCS-on: + @${MKDIR} ${STAGEDIR}${DOCSDIR} + ${INSTALL_MAN} ${PORTDOCS:S|^|${WRKSRC}/|} ${STAGEDIR}${DOCSDIR} + +.include <bsd.port.mk> diff --git a/devel/py-uuid7/distinfo b/devel/py-uuid7/distinfo new file mode 100644 index 000000000000..883397eb2e14 --- /dev/null +++ b/devel/py-uuid7/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1757571998 +SHA256 (uuid7-0.1.0.tar.gz) = 8c57aa32ee7456d3cc68c95c4530bc571646defac01895cfc73545449894a63c +SIZE (uuid7-0.1.0.tar.gz) = 14052 diff --git a/devel/py-uuid7/pkg-descr b/devel/py-uuid7/pkg-descr new file mode 100644 index 000000000000..8356f1d52a4b --- /dev/null +++ b/devel/py-uuid7/pkg-descr @@ -0,0 +1,9 @@ +This module implements the version 7 UUIDs, proposed by Peabody and +Davis in +https://www.ietf.org/id/draft-peabody-dispatch-new-uuid-format-02.html +as an extension to RFC4122. + +Version 7 has the nice characteristic that the start of a UUID encodes +the time with a chronological sort order and potentially ~50ns time +resolution, while the end of the UUID includes sufficient random bits +to ensure consecutive UUIDs will remain unique. diff --git a/devel/sfml1/Makefile b/devel/sfml1/Makefile deleted file mode 100644 index 4f0dcf67e7e0..000000000000 --- a/devel/sfml1/Makefile +++ /dev/null @@ -1,54 +0,0 @@ -PORTNAME= sfml -PORTVERSION= 1.6 -PORTREVISION= 8 -CATEGORIES= devel -MASTER_SITES= https://www.sfml-dev.org/files/ -PKGNAMESUFFIX= 1 -DISTNAME= SFML-${PORTVERSION}-sdk-linux-32 - -MAINTAINER= amdmi3@FreeBSD.org -COMMENT= Simple and Fast Multimedia Library -WWW= https://www.sfml-dev.org/ - -BROKEN= Does not build -DEPRECATED= Broken obsolete version -EXPIRATION_DATE=2025-09-10 - -LICENSE= ZLIB -LICENSE_FILE= ${WRKSRC}/license.txt - -LIB_DEPENDS= libsndfile.so:audio/libsndfile \ - libpng.so:graphics/png \ - libfreetype.so:print/freetype2 - -USES= gmake jpeg gl openal:al pkgconfig dos2unix xorg -DOS2UNIX_GLOB= Makefile ResourcePtr.inl -USE_XORG= x11 xrandr -USE_GL= gl glu -USE_LDCONFIG= yes -USE_CXXSTD= c++98 -DESTDIRNAME= STAGEDIR - -WRKSRC= ${WRKDIR}/SFML-${PORTVERSION} - -DOCSDIR= ${PREFIX}/share/doc/${PORTNAME}${PKGNAMESUFFIX} -PORTDOCS= * - -PORTSCOUT= limit:[^c]$$ - -OPTIONS_DEFINE= DOCS - -post-extract: - @${RM} ${WRKSRC}/lib/* - @${FIND} ${WRKSRC}/samples/bin/ -type f -maxdepth 1 -delete - -post-install: - @${FIND} ${STAGEDIR}${PREFIX}/include/SFML -name "*.hpp" -exec ${REINPLACE_CMD} -i '' -e '/#include/ s|SFML|&1|' {} \; - @${MV} ${STAGEDIR}${PREFIX}/include/SFML ${STAGEDIR}${PREFIX}/include/SFML${PKGNAMESUFFIX} - @${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/*.so - -post-install-DOCS-on: - @${MKDIR} ${STAGEDIR}${DOCSDIR} - cd ${WRKSRC}/doc && ${COPYTREE_SHARE} . ${STAGEDIR}${DOCSDIR}/ - -.include <bsd.port.mk> diff --git a/devel/sfml1/distinfo b/devel/sfml1/distinfo deleted file mode 100644 index 65042a5c4cc2..000000000000 --- a/devel/sfml1/distinfo +++ /dev/null @@ -1,2 +0,0 @@ -SHA256 (SFML-1.6-sdk-linux-32.tar.gz) = b1c18f9b99c54ebb4cd433792f33ed2b85c846cca28eb871a12b3191dc1532f8 -SIZE (SFML-1.6-sdk-linux-32.tar.gz) = 12937755 diff --git a/devel/sfml1/files/patch-include_SFML_System_ResourcePtr.inl b/devel/sfml1/files/patch-include_SFML_System_ResourcePtr.inl deleted file mode 100644 index e2923b8c4917..000000000000 --- a/devel/sfml1/files/patch-include_SFML_System_ResourcePtr.inl +++ /dev/null @@ -1,10 +0,0 @@ ---- include/SFML/System/ResourcePtr.inl.orig 2010-01-27 16:53:54.000000000 +0300 -+++ include/SFML/System/ResourcePtr.inl 2015-03-27 15:46:53.809250000 +0300 -@@ -22,6 +22,7 @@ - // - //////////////////////////////////////////////////////////// - -+#include <cstddef> - - //////////////////////////////////////////////////////////// - /// Default constructor diff --git a/devel/sfml1/files/patch-src__SFML__Audio__Makefile b/devel/sfml1/files/patch-src__SFML__Audio__Makefile deleted file mode 100644 index f64ca2a4c4d1..000000000000 --- a/devel/sfml1/files/patch-src__SFML__Audio__Makefile +++ /dev/null @@ -1,30 +0,0 @@ ---- src/SFML/Audio/Makefile.orig 2014-08-18 16:51:52.000000000 +0400 -+++ src/SFML/Audio/Makefile 2014-08-18 16:52:27.000000000 +0400 -@@ -8,7 +8,7 @@ - LIBNAME = $(LIBPATH)/$(LIB) - INSTALL = - else -- LIB = libsfml-audio.so -+ LIB = libsfml1-audio.so - LIBNAME = $(LIBPATH)/$(LIB).$(VERSION) - INSTALL = && $(LN) $(LNFLAGS) $(LIB).$(VERSION) $(DESTLIBDIR)/$(LIB) - endif -@@ -18,14 +18,14 @@ - libsfml-audio-s.a: $(OBJ) $(OBJVORBIS) - $(AR) $(ARFLAGS) $(LIBNAME) $(OBJ) $(OBJVORBIS) - --libsfml-audio.so: $(OBJ) $(OBJVORBIS) -- $(CPP) $(LDFLAGS) -Wl,-soname,$(LIB).$(VERSION) -o $(LIBNAME) $(OBJ) $(OBJVORBIS) -lsndfile -lopenal -+libsfml1-audio.so: $(OBJ) $(OBJVORBIS) -+ $(CXX) $(LDFLAGS) -Wl,-soname,$(LIB).$(VERSION) -o $(LIBNAME) $(OBJ) $(OBJVORBIS) -lsndfile -lopenal - - $(OBJ): %.o: %.cpp -- $(CPP) -o $@ -c $< $(CFLAGS) -+ $(CXX) -o $@ -c $< $(CXXFLAGS) - - $(OBJVORBIS): %.o: %.c -- $(CC) -o $@ -c $< $(CFLAGSEXT) -+ $(CC) -o $@ -c $< $(CFLAGS) - - .PHONY: clean mrproper - diff --git a/devel/sfml1/files/patch-src__SFML__Graphics__Makefile b/devel/sfml1/files/patch-src__SFML__Graphics__Makefile deleted file mode 100644 index e567ea54e24a..000000000000 --- a/devel/sfml1/files/patch-src__SFML__Graphics__Makefile +++ /dev/null @@ -1,30 +0,0 @@ ---- src/SFML/Graphics/Makefile.orig 2014-08-18 16:51:52.000000000 +0400 -+++ src/SFML/Graphics/Makefile 2014-08-18 16:52:41.000000000 +0400 -@@ -16,7 +16,7 @@ - LIBNAME = $(LIBPATH)/$(LIB) - INSTALL = - else -- LIB = libsfml-graphics.so -+ LIB = libsfml1-graphics.so - LIBNAME = $(LIBPATH)/$(LIB).$(VERSION) - INSTALL = && $(LN) $(LNFLAGS) $(LIB).$(VERSION) $(DESTLIBDIR)/$(LIB) - endif -@@ -26,14 +26,14 @@ - libsfml-graphics-s.a: $(OBJ) $(OBJGLEW) $(OBJJPEG) $(OBJPNG) $(OBJSOIL) $(OBJZLIB) - $(AR) $(ARFLAGS) $(LIBNAME) $(OBJ) $(OBJGLEW) $(OBJJPEG) $(OBJPNG) $(OBJSOIL) $(OBJZLIB) - --libsfml-graphics.so: $(OBJ) $(OBJGLEW) $(OBJJPEG) $(OBJPNG) $(OBJSOIL) $(OBJZLIB) -- $(CPP) $(LDFLAGS) -Wl,-soname,$(LIB).$(VERSION) -o $(LIBNAME) $(OBJ) $(OBJGLEW) $(OBJJPEG) $(OBJPNG) $(OBJSOIL) $(OBJZLIB) -lfreetype -lX11 -lGL -+libsfml1-graphics.so: $(OBJ) $(OBJGLEW) $(OBJSOIL) -+ $(CXX) $(LDFLAGS) -Wl,-soname,$(LIB).$(VERSION) -o $(LIBNAME) $(OBJ) $(OBJGLEW) $(OBJSOIL) -lfreetype -lX11 -lGL -lpng -ljpeg -lz - - $(OBJ): %.o: %.cpp -- $(CPP) -o $@ -c $< $(CFLAGS) -I/usr/include/freetype2 -+ $(CXX) -o $@ -c $< $(CXXFLAGS) -I/usr/include/freetype2 - - $(OBJGLEW) $(OBJJPEG) $(OBJPNG) $(OBJSOIL) $(OBJZLIB): %.o: %.c -- $(CC) -o $@ -c $< $(CFLAGSEXT) -DSTBI_FAILURE_USERMSG -+ $(CC) -o $@ -c $< $(CFLAGS) -DSTBI_FAILURE_USERMSG - - .PHONY: clean mrproper - diff --git a/devel/sfml1/files/patch-src__SFML__Makefile b/devel/sfml1/files/patch-src__SFML__Makefile deleted file mode 100644 index e135231d049f..000000000000 --- a/devel/sfml1/files/patch-src__SFML__Makefile +++ /dev/null @@ -1,40 +0,0 @@ ---- src/SFML/Makefile.orig 2010-01-27 17:00:37.000000000 +0300 -+++ src/SFML/Makefile 2010-08-25 07:08:45.000000000 +0400 -@@ -4,7 +4,7 @@ - ifeq ($(DEBUGBUILD), yes) - DEBUGFLAGS = -g -DDEBUG - else -- DEBUGFLAGS = -O2 -DNDEBUG -+ DEBUGFLAGS = - endif - - ifeq ($(STATIC), no) -@@ -15,11 +15,11 @@ - LINKFLAGS = - endif - --export CC = gcc --export CPP = g++ --export CFLAGS = -W -Wall -pedantic -I../../../include -I../../ $(DEBUGFLAGS) $(BUILDFLAGS) --export CFLAGSEXT = -I../../../include -I../.. $(DEBUGFLAGS) $(BUILDFLAGS) --export LDFLAGS = $(LINKFLAGS) -+export CC ?= gcc -+export CXX ?= g++ -+export CFLAGS += -I../../../include -I../.. $(DEBUGFLAGS) $(BUILDFLAGS) -I${LOCALBASE}/include -I${LOCALBASE}/include/freetype2 -+export CXXFLAGS += -W -Wall -pedantic -I../../../include -I../../ $(DEBUGFLAGS) $(BUILDFLAGS) -I${LOCALBASE}/include -I${LOCALBASE}/include/freetype2 -+export LDFLAGS = -L${LOCALBASE}/lib $(LINKFLAGS) - export LIBPATH = ../../../lib - export VERSION = 1.6 - export CP = cp -@@ -27,9 +27,9 @@ - export LNFLAGS = -s -f - export AR = ar - export ARFLAGS = rcs --export DESTDIR = /usr/local -+export DESTDIR = ${STAGEDIR}${PREFIX} - export DESTLIBDIR = $(DESTDIR)/lib --export DESTINCDIR = $(DESTDIR)/include -+export DESTINCDIR = $(DESTDIR)/include/SFML - - all: sfml-system sfml-window sfml-network sfml-graphics sfml-audio - diff --git a/devel/sfml1/files/patch-src__SFML__Network__Makefile b/devel/sfml1/files/patch-src__SFML__Network__Makefile deleted file mode 100644 index 466a8280bcb2..000000000000 --- a/devel/sfml1/files/patch-src__SFML__Network__Makefile +++ /dev/null @@ -1,26 +0,0 @@ ---- src/SFML/Network/Makefile.orig 2014-08-18 16:51:52.000000000 +0400 -+++ src/SFML/Network/Makefile 2014-08-18 16:53:09.000000000 +0400 -@@ -6,7 +6,7 @@ - LIBNAME = $(LIBPATH)/$(LIB) - INSTALL = - else -- LIB = libsfml-network.so -+ LIB = libsfml1-network.so - LIBNAME = $(LIBPATH)/$(LIB).$(VERSION) - INSTALL = && $(LN) $(LNFLAGS) $(LIB).$(VERSION) $(DESTLIBDIR)/$(LIB) - endif -@@ -16,11 +16,11 @@ - libsfml-network-s.a: $(OBJ) - $(AR) $(ARFLAGS) $(LIBNAME) $(OBJ) - --libsfml-network.so: $(OBJ) -- $(CPP) $(LDFLAGS) -Wl,-soname,$(LIB).$(VERSION) -o $(LIBNAME) $(OBJ) -+libsfml1-network.so: $(OBJ) -+ $(CXX) $(LDFLAGS) -Wl,-soname,$(LIB).$(VERSION) -o $(LIBNAME) $(OBJ) - - $(OBJ): %.o: %.cpp -- $(CPP) -o $@ -c $< $(CFLAGS) -+ $(CXX) -o $@ -c $< $(CXXFLAGS) - - .PHONY: clean mrproper - diff --git a/devel/sfml1/files/patch-src__SFML__System__Makefile b/devel/sfml1/files/patch-src__SFML__System__Makefile deleted file mode 100644 index fd2be586cb4c..000000000000 --- a/devel/sfml1/files/patch-src__SFML__System__Makefile +++ /dev/null @@ -1,26 +0,0 @@ ---- src/SFML/System/Makefile.orig 2014-08-18 16:51:52.000000000 +0400 -+++ src/SFML/System/Makefile 2014-08-18 16:52:53.000000000 +0400 -@@ -6,7 +6,7 @@ - LIBNAME = $(LIBPATH)/$(LIB) - INSTALL = - else -- LIB = libsfml-system.so -+ LIB = libsfml1-system.so - LIBNAME = $(LIBPATH)/$(LIB).$(VERSION) - INSTALL = && $(LN) $(LNFLAGS) $(LIB).$(VERSION) $(DESTLIBDIR)/$(LIB) - endif -@@ -16,11 +16,11 @@ - libsfml-system-s.a: $(OBJ) - $(AR) $(ARFLAGS) $(LIBNAME) $(OBJ) - --libsfml-system.so: $(OBJ) -- $(CPP) $(LDFLAGS) -Wl,-soname,$(LIB).$(VERSION) -o $(LIBNAME) $(OBJ) -lpthread -+libsfml1-system.so: $(OBJ) -+ $(CXX) $(LDFLAGS) -Wl,-soname,$(LIB).$(VERSION) -o $(LIBNAME) $(OBJ) -lpthread - - $(OBJ): %.o: %.cpp -- $(CPP) -o $@ -c $< $(CFLAGS) -+ $(CXX) -o $@ -c $< $(CXXFLAGS) - - .PHONY: clean mrproper - diff --git a/devel/sfml1/files/patch-src__SFML__Window__Makefile b/devel/sfml1/files/patch-src__SFML__Window__Makefile deleted file mode 100644 index 6d3f8e272000..000000000000 --- a/devel/sfml1/files/patch-src__SFML__Window__Makefile +++ /dev/null @@ -1,26 +0,0 @@ ---- src/SFML/Window/Makefile.orig 2014-08-18 16:51:52.000000000 +0400 -+++ src/SFML/Window/Makefile 2014-08-18 16:53:01.000000000 +0400 -@@ -7,7 +7,7 @@ - LIBNAME = $(LIBPATH)/$(LIB) - INSTALL = - else -- LIB = libsfml-window.so -+ LIB = libsfml1-window.so - LIBNAME = $(LIBPATH)/$(LIB).$(VERSION) - INSTALL = && $(LN) $(LNFLAGS) $(LIB).$(VERSION) $(DESTLIBDIR)/$(LIB) - endif -@@ -17,11 +17,11 @@ - libsfml-window-s.a: $(OBJ) - $(AR) $(ARFLAGS) $(LIBNAME) $(OBJ) - --libsfml-window.so: $(OBJ) -- $(CPP) $(LDFLAGS) -Wl,-soname,$(LIB).$(VERSION) -o $(LIBNAME) $(OBJ) $(OBJGLEW) -lX11 -lXrandr -lGL -+libsfml1-window.so: $(OBJ) -+ $(CXX) $(LDFLAGS) -Wl,-soname,$(LIB).$(VERSION) -o $(LIBNAME) $(OBJ) $(OBJGLEW) -lX11 -lXrandr -lGL - - $(OBJ): %.o: %.cpp -- $(CPP) -o $@ -c $< $(CFLAGS) -+ $(CXX) -o $@ -c $< $(CXXFLAGS) - - .PHONY: clean mrproper - diff --git a/devel/sfml1/pkg-descr b/devel/sfml1/pkg-descr deleted file mode 100644 index 1ff9a8306396..000000000000 --- a/devel/sfml1/pkg-descr +++ /dev/null @@ -1,7 +0,0 @@ -SFML is a portable and easy to use multimedia API written in C++. -You can see it as a modern, object-oriented alternative to SDL. - -SFML is composed of several packages to perfectly suit your needs. -You can use SFML as a minimal windowing system to interface with -OpenGL, or as a fully-featured multimedia library for building games -or interactive programs. diff --git a/devel/sfml1/pkg-plist b/devel/sfml1/pkg-plist deleted file mode 100644 index 833c471316a9..000000000000 --- a/devel/sfml1/pkg-plist +++ /dev/null @@ -1,83 +0,0 @@ -include/SFML1/Audio.hpp -include/SFML1/Audio/AudioResource.hpp -include/SFML1/Audio/Listener.hpp -include/SFML1/Audio/Music.hpp -include/SFML1/Audio/Sound.hpp -include/SFML1/Audio/SoundBuffer.hpp -include/SFML1/Audio/SoundBufferRecorder.hpp -include/SFML1/Audio/SoundRecorder.hpp -include/SFML1/Audio/SoundStream.hpp -include/SFML1/Config.hpp -include/SFML1/Graphics.hpp -include/SFML1/Graphics/Color.hpp -include/SFML1/Graphics/Drawable.hpp -include/SFML1/Graphics/Font.hpp -include/SFML1/Graphics/Glyph.hpp -include/SFML1/Graphics/Image.hpp -include/SFML1/Graphics/Matrix3.hpp -include/SFML1/Graphics/Matrix3.inl -include/SFML1/Graphics/PostFX.hpp -include/SFML1/Graphics/Rect.hpp -include/SFML1/Graphics/Rect.inl -include/SFML1/Graphics/RenderTarget.hpp -include/SFML1/Graphics/RenderWindow.hpp -include/SFML1/Graphics/Shape.hpp -include/SFML1/Graphics/Sprite.hpp -include/SFML1/Graphics/String.hpp -include/SFML1/Graphics/View.hpp -include/SFML1/Network.hpp -include/SFML1/Network/Ftp.hpp -include/SFML1/Network/Http.hpp -include/SFML1/Network/IPAddress.hpp -include/SFML1/Network/Packet.hpp -include/SFML1/Network/Selector.hpp -include/SFML1/Network/Selector.inl -include/SFML1/Network/SelectorBase.hpp -include/SFML1/Network/SocketHelper.hpp -include/SFML1/Network/SocketTCP.hpp -include/SFML1/Network/SocketUDP.hpp -include/SFML1/Network/Sockets.hpp -include/SFML1/Network/Unix/SocketHelper.hpp -include/SFML1/Network/Win32/SocketHelper.hpp -include/SFML1/System.hpp -include/SFML1/System/Clock.hpp -include/SFML1/System/Lock.hpp -include/SFML1/System/Mutex.hpp -include/SFML1/System/NonCopyable.hpp -include/SFML1/System/Randomizer.hpp -include/SFML1/System/Resource.hpp -include/SFML1/System/Resource.inl -include/SFML1/System/ResourcePtr.inl -include/SFML1/System/Sleep.hpp -include/SFML1/System/Thread.hpp -include/SFML1/System/Unicode.hpp -include/SFML1/System/Unicode.inl -include/SFML1/System/Unix/Mutex.hpp -include/SFML1/System/Unix/Thread.hpp -include/SFML1/System/Vector2.hpp -include/SFML1/System/Vector2.inl -include/SFML1/System/Vector3.hpp -include/SFML1/System/Vector3.inl -include/SFML1/System/Win32/Mutex.hpp -include/SFML1/System/Win32/Thread.hpp -include/SFML1/Window.hpp -include/SFML1/Window/Context.hpp -include/SFML1/Window/Event.hpp -include/SFML1/Window/Input.hpp -include/SFML1/Window/OpenGL.hpp -include/SFML1/Window/VideoMode.hpp -include/SFML1/Window/Window.hpp -include/SFML1/Window/WindowHandle.hpp -include/SFML1/Window/WindowListener.hpp -include/SFML1/Window/WindowSettings.hpp -include/SFML1/Window/WindowStyle.hpp -lib/libsfml1-audio.so -lib/libsfml1-audio.so.1.6 -lib/libsfml1-graphics.so -lib/libsfml1-graphics.so.1.6 -lib/libsfml1-network.so -lib/libsfml1-network.so.1.6 -lib/libsfml1-system.so -lib/libsfml1-system.so.1.6 -lib/libsfml1-window.so -lib/libsfml1-window.so.1.6 diff --git a/devel/wasi-compiler-rt21/Makefile b/devel/wasi-compiler-rt21/Makefile index ae90a63d04cf..83bf4c9217c2 100644 --- a/devel/wasi-compiler-rt21/Makefile +++ b/devel/wasi-compiler-rt21/Makefile @@ -1,5 +1,5 @@ # must sync with devel/llvm21 -DISTVERSION= 21.1.0 +DISTVERSION= 21.1.1 MASTERDIR= ${.CURDIR}/../wasi-compiler-rt diff --git a/devel/wasi-libcxx21/Makefile b/devel/wasi-libcxx21/Makefile index 43c4c028e2f0..00d67cd33423 100644 --- a/devel/wasi-libcxx21/Makefile +++ b/devel/wasi-libcxx21/Makefile @@ -1,5 +1,5 @@ # must sync with devel/llvm21 -DISTVERSION= 21.1.0 +DISTVERSION= 21.1.1 MASTERDIR= ${.CURDIR}/../wasi-libcxx diff --git a/editors/rehex/Makefile b/editors/rehex/Makefile index 496d94fef03c..0996aa3bb04d 100644 --- a/editors/rehex/Makefile +++ b/editors/rehex/Makefile @@ -1,6 +1,5 @@ PORTNAME= rehex -DISTVERSION= 0.63.2 -PORTREVISION= 1 +DISTVERSION= 0.63.3 CATEGORIES= editors MAINTAINER= fuz@FreeBSD.org diff --git a/editors/rehex/distinfo b/editors/rehex/distinfo index a43df9ec609d..415f26075ffd 100644 --- a/editors/rehex/distinfo +++ b/editors/rehex/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1752691830 -SHA256 (solemnwarning-rehex-0.63.2_GH0.tar.gz) = 37dea3383eeae8ff993653960a5e23da101aadd829951dcb5dbebee131843ea5 -SIZE (solemnwarning-rehex-0.63.2_GH0.tar.gz) = 5030730 +TIMESTAMP = 1757409294 +SHA256 (solemnwarning-rehex-0.63.3_GH0.tar.gz) = 46770bdcab3686dd4ef511b128388e5d32e8cc8edd4e72d7b2756396bc8be61e +SIZE (solemnwarning-rehex-0.63.3_GH0.tar.gz) = 5048992 diff --git a/finance/ticker/Makefile b/finance/ticker/Makefile index 0d51b1d0b225..dcd8021e4615 100644 --- a/finance/ticker/Makefile +++ b/finance/ticker/Makefile @@ -1,7 +1,6 @@ PORTNAME= ticker DISTVERSIONPREFIX= v -DISTVERSION= 5.0.5 -PORTREVISION= 4 +DISTVERSION= 5.0.6 CATEGORIES= finance MAINTAINER= fuz@FreeBSD.org diff --git a/finance/ticker/distinfo b/finance/ticker/distinfo index f60fc79b3e24..45e600d2ff1c 100644 --- a/finance/ticker/distinfo +++ b/finance/ticker/distinfo @@ -1,5 +1,5 @@ -TIMESTAMP = 1748594739 -SHA256 (go/finance_ticker/ticker-v5.0.5/v5.0.5.mod) = 10accf450dbe9c9fb2b387858c95eb7e437d46c2cf228ebcc1a3ad46fd169561 -SIZE (go/finance_ticker/ticker-v5.0.5/v5.0.5.mod) = 2598 -SHA256 (go/finance_ticker/ticker-v5.0.5/v5.0.5.zip) = 93fa3b2ec1d29d6e52063ef7e30ea2f8df2c24e1f56a1b7d0e3253555dc6a88d -SIZE (go/finance_ticker/ticker-v5.0.5/v5.0.5.zip) = 1673693 +TIMESTAMP = 1757410706 +SHA256 (go/finance_ticker/ticker-v5.0.6/v5.0.6.mod) = 8dbac1083855a53eb0671a0289fdc1cd66ddc51258957eef6130c5d3b015ef2f +SIZE (go/finance_ticker/ticker-v5.0.6/v5.0.6.mod) = 2587 +SHA256 (go/finance_ticker/ticker-v5.0.6/v5.0.6.zip) = 84e82731ceed245c83f6672e2e25ea48b0585752f455a1e3b3e9bb872d9a4961 +SIZE (go/finance_ticker/ticker-v5.0.6/v5.0.6.zip) = 1673591 diff --git a/games/Makefile b/games/Makefile index 6673cb615ead..aba48ab1d7c5 100644 --- a/games/Makefile +++ b/games/Makefile @@ -643,7 +643,6 @@ SUBDIR += moonlight-embedded-devel SUBDIR += moonlight-qt SUBDIR += moria - SUBDIR += motogt SUBDIR += mrboom SUBDIR += mt_dolphin_ia SUBDIR += mt_gtk_client @@ -754,7 +753,6 @@ SUBDIR += pachi SUBDIR += pacmanarena SUBDIR += palapeli - SUBDIR += palomino SUBDIR += pangzero SUBDIR += passage SUBDIR += patapizza-tetris diff --git a/games/motogt/Makefile b/games/motogt/Makefile deleted file mode 100644 index 5bdec9b13474..000000000000 --- a/games/motogt/Makefile +++ /dev/null @@ -1,47 +0,0 @@ -PORTNAME= motogt -PORTVERSION= 20110505 -PORTREVISION= 9 -CATEGORIES= games -MASTER_SITES= SF/motogt/MotoGT1/ -DISTNAME= MotoGT-${PORTVERSION} - -MAINTAINER= amdmi3@FreeBSD.org -COMMENT= 2D top-viewed motorcycle racing game -WWW= https://motogt.sourceforge.net/ - -DEPRECATED= Depends on obsolete devel/sfml1 -EXPIRATION_DATE=2025-09-10 - -LICENSE= GPLv2 CC-BY-SA-3.0 -LICENSE_COMB= multi -LICENSE_FILE_CC-BY-SA-3.0= ${WRKSRC}/doc/cc-by-sa.txt -LICENSE_FILE_GPLv2= ${WRKSRC}/doc/gpl.txt - -LIB_DEPENDS= libsfml1-system.so:devel/sfml1 \ - libpng.so:graphics/png - -USES= gl localbase:ldflags zip -USE_CXXSTD= c++14 -USE_GL= gl - -MAKEFILE= Makefile.lnx -MAKE_JOBS_UNSAFE= yes - -SUB_FILES= motogt - -BUILD_WRKSRC= ${WRKSRC}/src -WRKSRC= ${WRKDIR}/MotoGT - -PLIST_FILES= bin/${PORTNAME} libexec/MotoGT.bin -PORTDATA= * - -post-patch: - @${REINPLACE_CMD} -e '/#include/ s|SFML|&1|' ${WRKSRC}/data/src/editor.cpp ${WRKSRC}/src/*.h - @${REINPLACE_CMD} -e 's|-lsfml|&1|g' ${WRKSRC}/src/Makefile.lnx - -do-install: - ${INSTALL_PROGRAM} ${WRKSRC}/MotoGT.bin ${STAGEDIR}${PREFIX}/libexec/ - ${INSTALL_SCRIPT} ${WRKDIR}/motogt ${STAGEDIR}${PREFIX}/bin/ - cd ${WRKSRC} && ${COPYTREE_SHARE} data ${STAGEDIR}${DATADIR}/ - -.include <bsd.port.mk> diff --git a/games/motogt/distinfo b/games/motogt/distinfo deleted file mode 100644 index 645efcc4ceb3..000000000000 --- a/games/motogt/distinfo +++ /dev/null @@ -1,2 +0,0 @@ -SHA256 (MotoGT-20110505.zip) = a5d780c048a92e0f68b4cc83ccb9c45ee504772e651d4037468925525c2988a2 -SIZE (MotoGT-20110505.zip) = 87736858 diff --git a/games/motogt/files/motogt.in b/games/motogt/files/motogt.in deleted file mode 100644 index c3bf7972a061..000000000000 --- a/games/motogt/files/motogt.in +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh - -cd %%DATADIR%% || exit 1 -exec %%PREFIX%%/libexec/MotoGT.bin "$@" diff --git a/games/motogt/files/patch-Makefile b/games/motogt/files/patch-Makefile deleted file mode 100644 index 86ad265d849c..000000000000 --- a/games/motogt/files/patch-Makefile +++ /dev/null @@ -1,10 +0,0 @@ ---- Makefile.orig 2011-01-10 20:25:23.000000000 +0300 -+++ Makefile 2011-09-27 08:44:25.000000000 +0400 -@@ -1,5 +1,5 @@ - all: -- make -C src -f Makefile.lnx -+ ${MAKE} -C src -f Makefile.lnx - - clean: -- make -C src -f Makefile.lnx clean -+ ${MAKE} -C src -f Makefile.lnx clean diff --git a/games/motogt/files/patch-src-Circuito.cpp b/games/motogt/files/patch-src-Circuito.cpp deleted file mode 100644 index fb5ae7a7398f..000000000000 --- a/games/motogt/files/patch-src-Circuito.cpp +++ /dev/null @@ -1,11 +0,0 @@ ---- src/Circuito.cpp.orig 2011-01-12 20:20:23.000000000 +0300 -+++ src/Circuito.cpp 2011-09-26 23:13:03.000000000 +0400 -@@ -171,7 +171,7 @@ - if (!osd) {image=NULL; sprite=NULL; return; } - image = new Image*[image_c]; - sprite = new Sprite*[image_c]; -- string image_dir=data->tracks[track_index].dir+"t00.png"; -+ string image_dir=home_dir + data->tracks[track_index].dir + "t00.png"; - for (int i=0;i<image_c;i++) { - image[i]=new Image[image_r]; - sprite[i]=new Sprite[image_r]; diff --git a/games/motogt/files/patch-src-Config.cpp b/games/motogt/files/patch-src-Config.cpp deleted file mode 100644 index 148cd380aa43..000000000000 --- a/games/motogt/files/patch-src-Config.cpp +++ /dev/null @@ -1,22 +0,0 @@ ---- src/Config.cpp.orig 2011-01-18 06:52:35.000000000 +0300 -+++ src/Config.cpp 2014-02-02 21:13:04.124154052 +0400 -@@ -139,6 +139,9 @@ - } - - void Config::ChangeResolution(bool up) { -+ if (num_modes == 0) -+ return; -+ - if (cur_mode!=num_modes) cur_mode+=up?1:num_modes-1; - cur_mode=cur_mode%num_modes; - real_w=modes_w[cur_mode]; -@@ -226,7 +229,8 @@ - old_fullscreen=fullscreen; - changed=false; - ofstream fil((home_dir+"settings.lst").c_str(),ios::trunc); -- fil<<"version="<<(config->version=VERSION)<<endl; -+ fil<<"version="<<VERSION<<endl; -+ if (config) config->version = VERSION; - fil<<"fullscreen="<<(fullscreen?1:0)<<endl; - fil<<"low_textures="<<(low_textures?1:0)<<endl; - fil<<"sound="<<(sound_on?1:0)<<endl; diff --git a/games/motogt/files/patch-src-MakeData.cpp b/games/motogt/files/patch-src-MakeData.cpp deleted file mode 100644 index dc130a164795..000000000000 --- a/games/motogt/files/patch-src-MakeData.cpp +++ /dev/null @@ -1,48 +0,0 @@ ---- src/MakeData.cpp.orig 2011-01-10 17:40:30 UTC -+++ src/MakeData.cpp -@@ -5,6 +5,7 @@ - #define PNG_DEBUG 3 - #include <png.h> - #include <fstream> -+#include <sys/stat.h> - #include "global.h" - #include "Config.h" - #include "Confirm.h" -@@ -109,10 +110,10 @@ struct PngFile { - - png_read_info(png_ptr, info_ptr); - -- width = info_ptr->width; -- height = info_ptr->height; -- color_type = info_ptr->color_type; -- bit_depth = info_ptr->bit_depth; -+ width = png_get_image_width(png_ptr, info_ptr); -+ height = png_get_image_height(png_ptr, info_ptr); -+ color_type = png_get_color_type(png_ptr, info_ptr); -+ bit_depth = png_get_bit_depth(png_ptr, info_ptr); - - number_of_passes = png_set_interlace_handling(png_ptr); - png_read_update_info(png_ptr, info_ptr); -@@ -125,7 +126,7 @@ struct PngFile { - - row_pointers = (png_bytep*) malloc(sizeof(png_bytep) * height); - for (int y=0; y<height; y++) -- row_pointers[y] = (png_byte*) malloc(info_ptr->rowbytes); -+ row_pointers[y] = (png_byte*) malloc(png_get_rowbytes(png_ptr,info_ptr)); - - png_read_image(png_ptr, row_pointers); - -@@ -376,7 +377,12 @@ struct PngFile { - } - fname[2]='0'+i; - fname[1]='0'+j; -- if (!f2->Save((dir+fname).c_str())) -+ size_t pos = 0; -+ do { -+ pos = dir.find('/', pos+1); -+ mkdir((home_dir+dir.substr(0, pos)).c_str(), 0755); -+ } while (pos != string::npos); -+ if (!f2->Save((home_dir+dir+fname).c_str())) - return false; - f2->width=ancho2; f2->height=ancho2; - } diff --git a/games/motogt/files/patch-src-Makefile.common b/games/motogt/files/patch-src-Makefile.common deleted file mode 100644 index 7b6fb39a5948..000000000000 --- a/games/motogt/files/patch-src-Makefile.common +++ /dev/null @@ -1,149 +0,0 @@ ---- src/Makefile.common.orig 2011-01-10 20:40:30.000000000 +0300 -+++ src/Makefile.common 2011-09-27 08:39:09.000000000 +0400 -@@ -1,110 +1,110 @@ - OBJS=${TEMP_DIR}/BikeSelection.o ${TEMP_DIR}/Data.o ${TEMP_DIR}/main.o ${TEMP_DIR}/Particulas.o ${TEMP_DIR}/Carrera.o ${TEMP_DIR}/Circuito.o ${TEMP_DIR}/Moto.o ${TEMP_DIR}/global.o ${TEMP_DIR}/OSD.o ${TEMP_DIR}/MyFont.o ${TEMP_DIR}/Menu.o ${TEMP_DIR}/Loading.o ${TEMP_DIR}/Confirm.o ${TEMP_DIR}/Jukebox.o ${TEMP_DIR}/RaceExtras.o ${TEMP_DIR}/SelectionWheel.o ${TEMP_DIR}/TrackSelection.o ${TEMP_DIR}/RaceResults.o ${TEMP_DIR}/Shader.o ${TEMP_DIR}/TextViewer.o ${TEMP_DIR}/text.o ${TEMP_DIR}/RaceMenu.o ${TEMP_DIR}/ChampionshipMenu.o ${TEMP_DIR}/MakeData.o ${TEMP_DIR}/ChampionshipData.o ${TEMP_DIR}/Profile.o ${TEMP_DIR}/Config.o ${TEMP_DIR}/MyRenderWindow.o ${TEMP_DIR}/SlideShow.o ${TEMP_DIR}/Experience.o ${TEMP_DIR}/LangSelection.o ${TEMP_DIR}/Records.o ${TEMP_DIR}/StyleOsd.o ${TEMP_DIR}/Intro.o ${TEMP_DIR}/HiddenDriver.o ${TEMP_DIR}/text_hidden.o - - ${TEMP_DIR}/BikeSelection.o: BikeSelection.cpp global.h MyRenderWindow.h Data.h BikeSelection.h Drawer.h MyFont.h SelectionWheel.h Confirm.h Loading.h Config.h Profile.h Jukebox.h -- ${GPP} ${FLAGS} -c BikeSelection.cpp -o $@ -+ ${CXX} ${CXXFLAGS} -c BikeSelection.cpp -o $@ - - ${TEMP_DIR}/Data.o: Data.cpp Data.h global.h MyRenderWindow.h Jukebox.h Particulas.h Shader.h ChampionshipData.h Profile.h Config.h -- ${GPP} ${FLAGS} -c Data.cpp -o $@ -+ ${CXX} ${CXXFLAGS} -c Data.cpp -o $@ - - ${TEMP_DIR}/main.o: main.cpp global.h MyRenderWindow.h Data.h OSD.h RaceExtras.h Carrera.h Drawer.h Particulas.h Menu.h MyFont.h Loading.h Confirm.h Jukebox.h SelectionWheel.h Shader.h ChampionshipData.h Config.h Profile.h SlideShow.h version.h Circuito.h LangSelection.h StyleOsd.h Intro.h text_hidden.h HiddenDriver.h -- ${GPP} ${FLAGS} -c main.cpp -o $@ -+ ${CXX} ${CXXFLAGS} -c main.cpp -o $@ - - ${TEMP_DIR}/Particulas.o: Particulas.cpp Particulas.h global.h MyRenderWindow.h Data.h Moto.h Circuito.h -- ${GPP} ${FLAGS} -c Particulas.cpp -o $@ -+ ${CXX} ${CXXFLAGS} -c Particulas.cpp -o $@ - - ${TEMP_DIR}/Carrera.o: Carrera.cpp Carrera.h global.h MyRenderWindow.h Data.h Drawer.h Confirm.h RaceExtras.h Circuito.h Particulas.h Moto.h OSD.h Loading.h Shader.h Jukebox.h Profile.h Config.h TextViewer.h text.h StyleOsd.h -- ${GPP} ${FLAGS} -c Carrera.cpp -o $@ -+ ${CXX} ${CXXFLAGS} -c Carrera.cpp -o $@ - - ${TEMP_DIR}/Circuito.o: Circuito.cpp Circuito.h global.h MyRenderWindow.h Data.h Jukebox.h Loading.h Drawer.h Confirm.h MakeData.h Profile.h Config.h OSD.h -- ${GPP} ${FLAGS} -c Circuito.cpp -o $@ -+ ${CXX} ${CXXFLAGS} -c Circuito.cpp -o $@ - - ${TEMP_DIR}/Moto.o: Moto.cpp Moto.h Circuito.h global.h MyRenderWindow.h Data.h Jukebox.h RaceExtras.h Particulas.h Carrera.h Drawer.h Loading.h Profile.h Config.h StyleOsd.h -- ${GPP} ${FLAGS} -c Moto.cpp -o $@ -+ ${CXX} ${CXXFLAGS} -c Moto.cpp -o $@ - - ${TEMP_DIR}/global.o: global.cpp global.h MyRenderWindow.h Data.h -- ${GPP} ${FLAGS} -c global.cpp -o $@ -+ ${CXX} ${CXXFLAGS} -c global.cpp -o $@ - - ${TEMP_DIR}/OSD.o: OSD.cpp OSD.h global.h MyRenderWindow.h Data.h Carrera.h Drawer.h Moto.h Circuito.h MyFont.h Config.h -- ${GPP} ${FLAGS} -c OSD.cpp -o $@ -+ ${CXX} ${CXXFLAGS} -c OSD.cpp -o $@ - - ${TEMP_DIR}/MyFont.o: MyFont.cpp MyFont.h global.h MyRenderWindow.h Data.h -- ${GPP} ${FLAGS} -c MyFont.cpp -o $@ -+ ${CXX} ${CXXFLAGS} -c MyFont.cpp -o $@ - - ${TEMP_DIR}/Menu.o: Menu.cpp Menu.h global.h MyRenderWindow.h Data.h Drawer.h Carrera.h MyFont.h Jukebox.h Confirm.h Loading.h EnterName.h SelectionWheel.h TrackSelection.h RaceResults.h RaceExtras.h Particulas.h TextViewer.h text.h Shader.h Circuito.h RaceMenu.h version.h BikeSelection.h ChampionshipMenu.h Config.h Profile.h OSD.h Records.h HiddenDriver.h text_hidden.h -- ${GPP} ${FLAGS} -c Menu.cpp -o $@ -+ ${CXX} ${CXXFLAGS} -c Menu.cpp -o $@ - - ${TEMP_DIR}/Loading.o: Loading.cpp Loading.h global.h MyRenderWindow.h Data.h Drawer.h -- ${GPP} ${FLAGS} -c Loading.cpp -o $@ -+ ${CXX} ${CXXFLAGS} -c Loading.cpp -o $@ - - ${TEMP_DIR}/Confirm.o: Confirm.cpp Confirm.h global.h MyRenderWindow.h Data.h Drawer.h MyFont.h Config.h Jukebox.h Loading.h -- ${GPP} ${FLAGS} -c Confirm.cpp -o $@ -+ ${CXX} ${CXXFLAGS} -c Confirm.cpp -o $@ - - ${TEMP_DIR}/Jukebox.o: Jukebox.cpp Jukebox.h global.h MyRenderWindow.h Data.h Config.h -- ${GPP} ${FLAGS} -c Jukebox.cpp -o $@ -+ ${CXX} ${CXXFLAGS} -c Jukebox.cpp -o $@ - - ${TEMP_DIR}/RaceExtras.o: RaceExtras.cpp RaceExtras.h global.h MyRenderWindow.h Data.h Carrera.h Drawer.h MyFont.h -- ${GPP} ${FLAGS} -c RaceExtras.cpp -o $@ -+ ${CXX} ${CXXFLAGS} -c RaceExtras.cpp -o $@ - - ${TEMP_DIR}/SelectionWheel.o: SelectionWheel.cpp SelectionWheel.h global.h MyRenderWindow.h Data.h -- ${GPP} ${FLAGS} -c SelectionWheel.cpp -o $@ -+ ${CXX} ${CXXFLAGS} -c SelectionWheel.cpp -o $@ - - ${TEMP_DIR}/TrackSelection.o: TrackSelection.cpp TrackSelection.h global.h MyRenderWindow.h Data.h Drawer.h MyFont.h SelectionWheel.h Loading.h Profile.h Config.h Confirm.h ChampionshipData.h Jukebox.h -- ${GPP} ${FLAGS} -c TrackSelection.cpp -o $@ -+ ${CXX} ${CXXFLAGS} -c TrackSelection.cpp -o $@ - - ${TEMP_DIR}/RaceResults.o: RaceResults.cpp RaceResults.h global.h MyRenderWindow.h Data.h Drawer.h Carrera.h MyFont.h Moto.h Circuito.h SelectionWheel.h Jukebox.h ChampionshipData.h Config.h Profile.h -- ${GPP} ${FLAGS} -c RaceResults.cpp -o $@ -+ ${CXX} ${CXXFLAGS} -c RaceResults.cpp -o $@ - - ${TEMP_DIR}/Shader.o: Shader.cpp Shader.h global.h MyRenderWindow.h Data.h -- ${GPP} ${FLAGS} -c Shader.cpp -o $@ -+ ${CXX} ${CXXFLAGS} -c Shader.cpp -o $@ - - ${TEMP_DIR}/TextViewer.o: TextViewer.cpp TextViewer.h global.h MyRenderWindow.h Data.h text.h MyFont.h Config.h Jukebox.h -- ${GPP} ${FLAGS} -c TextViewer.cpp -o $@ -+ ${CXX} ${CXXFLAGS} -c TextViewer.cpp -o $@ - - ${TEMP_DIR}/text.o: text.cpp -- ${GPP} ${FLAGS} -c text.cpp -o $@ -+ ${CXX} ${CXXFLAGS} -c text.cpp -o $@ - - ${TEMP_DIR}/RaceMenu.o: RaceMenu.cpp RaceMenu.h global.h MyRenderWindow.h Data.h Drawer.h MyFont.h SelectionWheel.h TextViewer.h text.h Loading.h Circuito.h Carrera.h Moto.h Confirm.h RaceResults.h BikeSelection.h Profile.h Config.h ChampionshipData.h Jukebox.h Experience.h HiddenDriver.h text_hidden.h -- ${GPP} ${FLAGS} -c RaceMenu.cpp -o $@ -+ ${CXX} ${CXXFLAGS} -c RaceMenu.cpp -o $@ - - ${TEMP_DIR}/ChampionshipMenu.o: ChampionshipMenu.cpp ChampionshipMenu.h global.h MyRenderWindow.h Data.h Drawer.h Config.h MyFont.h SelectionWheel.h TextViewer.h text.h Loading.h Circuito.h Carrera.h Moto.h Confirm.h RaceResults.h BikeSelection.h ChampionshipData.h Profile.h TrackSelection.h RaceMenu.h Jukebox.h SlideShow.h HiddenDriver.h text_hidden.h -- ${GPP} ${FLAGS} -c ChampionshipMenu.cpp -o $@ -+ ${CXX} ${CXXFLAGS} -c ChampionshipMenu.cpp -o $@ - - ${TEMP_DIR}/MakeData.o: MakeData.cpp global.h MyRenderWindow.h Data.h Config.h Confirm.h Drawer.h -- ${GPP} ${FLAGS} -c MakeData.cpp -o $@ -+ ${CXX} ${CXXFLAGS} -c MakeData.cpp -o $@ - - ${TEMP_DIR}/ChampionshipData.o: ChampionshipData.cpp ChampionshipData.h Data.h global.h MyRenderWindow.h Profile.h Moto.h Circuito.h Experience.h -- ${GPP} ${FLAGS} -c ChampionshipData.cpp -o $@ -+ ${CXX} ${CXXFLAGS} -c ChampionshipData.cpp -o $@ - - ${TEMP_DIR}/Profile.o: Profile.cpp Profile.h global.h MyRenderWindow.h Data.h ChampionshipData.h -- ${GPP} ${FLAGS} -c Profile.cpp -o $@ -+ ${CXX} ${CXXFLAGS} -c Profile.cpp -o $@ - - ${TEMP_DIR}/Config.o: Config.cpp Config.h global.h MyRenderWindow.h Data.h Shader.h Particulas.h Jukebox.h -- ${GPP} ${FLAGS} -c Config.cpp -o $@ -+ ${CXX} ${CXXFLAGS} -c Config.cpp -o $@ - - ${TEMP_DIR}/MyRenderWindow.o: MyRenderWindow.cpp global.h MyRenderWindow.h Data.h Config.h -- ${GPP} ${FLAGS} -c MyRenderWindow.cpp -o $@ -+ ${CXX} ${CXXFLAGS} -c MyRenderWindow.cpp -o $@ - - ${TEMP_DIR}/SlideShow.o: SlideShow.cpp SlideShow.h global.h MyRenderWindow.h Data.h Config.h Jukebox.h Loading.h Drawer.h -- ${GPP} ${FLAGS} -c SlideShow.cpp -o $@ -+ ${CXX} ${CXXFLAGS} -c SlideShow.cpp -o $@ - - ${TEMP_DIR}/Experience.o: Experience.cpp Experience.h global.h MyRenderWindow.h Data.h MyFont.h Config.h SelectionWheel.h Jukebox.h -- ${GPP} ${FLAGS} -c Experience.cpp -o $@ -+ ${CXX} ${CXXFLAGS} -c Experience.cpp -o $@ - - ${TEMP_DIR}/LangSelection.o: LangSelection.cpp LangSelection.h global.h MyRenderWindow.h Data.h Config.h -- ${GPP} ${FLAGS} -c LangSelection.cpp -o $@ -+ ${CXX} ${CXXFLAGS} -c LangSelection.cpp -o $@ - - ${TEMP_DIR}/Records.o: Records.cpp Records.h global.h MyRenderWindow.h Data.h Config.h Jukebox.h SelectionWheel.h MyFont.h -- ${GPP} ${FLAGS} -c Records.cpp -o $@ -+ ${CXX} ${CXXFLAGS} -c Records.cpp -o $@ - - ${TEMP_DIR}/StyleOsd.o: StyleOsd.cpp StyleOsd.h global.h MyRenderWindow.h Data.h -- ${GPP} ${FLAGS} -c StyleOsd.cpp -o $@ -+ ${CXX} ${CXXFLAGS} -c StyleOsd.cpp -o $@ - - ${TEMP_DIR}/Intro.o: Intro.cpp Intro.h global.h MyRenderWindow.h Data.h -- ${GPP} ${FLAGS} -c Intro.cpp -o $@ -+ ${CXX} ${CXXFLAGS} -c Intro.cpp -o $@ - - ${TEMP_DIR}/HiddenDriver.o: HiddenDriver.cpp HiddenDriver.h global.h MyRenderWindow.h Data.h text_hidden.h Config.h Jukebox.h MyFont.h -- ${GPP} ${FLAGS} -c HiddenDriver.cpp -o $@ -+ ${CXX} ${CXXFLAGS} -c HiddenDriver.cpp -o $@ - - ${TEMP_DIR}/text_hidden.o: text_hidden.cpp text_hidden.h -- ${GPP} ${FLAGS} -c text_hidden.cpp -o $@ -+ ${CXX} ${CXXFLAGS} -c text_hidden.cpp -o $@ - diff --git a/games/motogt/files/patch-src-Makefile.lnx b/games/motogt/files/patch-src-Makefile.lnx deleted file mode 100644 index aba2597dfd59..000000000000 --- a/games/motogt/files/patch-src-Makefile.lnx +++ /dev/null @@ -1,25 +0,0 @@ ---- src/Makefile.lnx.orig 2011-01-10 20:54:57.000000000 +0300 -+++ src/Makefile.lnx 2011-09-27 08:41:42.000000000 +0400 -@@ -1,8 +1,8 @@ --GPP=g++ --GCC=gcc --FLAGS= -O2 -ffast-math --LIBS= -s -lpng -lsfml-window -lsfml-graphics -lsfml-system -lsfml-audio --TEMP_DIR=../tmp-lnx -+CXX?= g++ -+CXXFLAGS?= -O2 -ffast-math -+LIBS= -lpng -lsfml-window -lsfml-graphics -lsfml-system -lsfml-audio -lGL -+LDFLAGS?= -s -+TEMP_DIR= ../tmp-lnx - - all: ${TEMP_DIR} ../MotoGT.bin - -@@ -12,7 +12,7 @@ - rm -rf ${OBJS} ../MotoGT.bin - - ../MotoGT.bin: ${OBJS} -- ${GPP} ${OBJS} ${LIBS} -o $@ -+ ${CXX} ${LDFLAGS} ${LIBS} ${OBJS} -o $@ - - ${TEMP_DIR}: - mkdir ${TEMP_DIR} diff --git a/games/motogt/pkg-descr b/games/motogt/pkg-descr deleted file mode 100644 index ed5668d67f8a..000000000000 --- a/games/motogt/pkg-descr +++ /dev/null @@ -1,5 +0,0 @@ -MotoGT is 2D top-viewed game where you drive a MotoGP bike, and you -want to win races. In career mode you start with a regular bike, -but when you win races you get experience, and experience let's you -improve your bike. If you win championships, you can also unlock -hidden features. diff --git a/games/openclonk/Makefile b/games/openclonk/Makefile index e23354bf7ea1..a461147ee165 100644 --- a/games/openclonk/Makefile +++ b/games/openclonk/Makefile @@ -1,7 +1,7 @@ PORTNAME= openclonk DISTVERSION= 8.1 -PORTREVISION= 7 DISTVERSIONSUFFIX= -src +PORTREVISION= 8 CATEGORIES= games MASTER_SITES= http://www.openclonk.org/builds/release/${DISTVERSION}/ @@ -13,7 +13,6 @@ LICENSE= ISCL CC0-1.0 LICENSE_COMB= multi LICENSE_FILE_ISCL= ${WRKSRC}/COPYING -BROKEN_aarch64= fails to compile: mmintrin.h:50:12: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size BROKEN_powerpc64= fails to compile: C4Texture.cpp:260:13: error: 'stoul' is not a member of 'std' LIB_DEPENDS= libalut.so:audio/freealut \ @@ -24,8 +23,6 @@ LIB_DEPENDS= libalut.so:audio/freealut \ libtinyxml.so:textproc/tinyxml \ libvorbis.so:audio/libvorbis -WRKSRC= ${WRKDIR}/openclonk-release-${PORTVERSION}-src - # make install has parallel issues with ninja USES= cmake:noninja compiler:c++14-lang desktop-file-utils gl gnome jpeg openal \ pkgconfig sdl tar:bzip2 xorg @@ -35,6 +32,7 @@ USE_XORG= x11 xpm CMAKE_ARGS= -DAudio_TK:STRING="OpenAL" CFLAGS_powerpc64le= -DNO_WARN_X86_INTRINSICS LDFLAGS_i386= -Wl,-znotext +WRKSRC= ${WRKDIR}/openclonk-release-${PORTVERSION}-src .include <bsd.port.pre.mk> @@ -42,8 +40,4 @@ LDFLAGS_i386= -Wl,-znotext LDFLAGS_i386+= -Wl,--no-check-dynamic-relocations .endif -post-patch: - @${REINPLACE_CMD} -e 's|DESTINATION games|DESTINATION bin|' \ - -e 's|share/games|share|' ${WRKSRC}/CMakeLists.txt - .include <bsd.port.post.mk> diff --git a/games/openclonk/distinfo b/games/openclonk/distinfo index 5da768b39294..463b137202dc 100644 --- a/games/openclonk/distinfo +++ b/games/openclonk/distinfo @@ -1,3 +1,7 @@ -TIMESTAMP = 1531177508 +TIMESTAMP = 1756900968 SHA256 (openclonk-8.1-src.tar.bz2) = 337677f25457e7137eac7818adb4ad02992d562593386c19b885738aaec4b346 SIZE (openclonk-8.1-src.tar.bz2) = 120149164 +SHA256 (288e9f339b2e0aba9a136e2c91283213d863c7d4.diff) = f5365d3d38d5ffe3708bce4dc79dd3737472f91c5ac75febe0b5895a46e89bca +SIZE (288e9f339b2e0aba9a136e2c91283213d863c7d4.diff) = 5112218 +SHA256 (c1ee1bdac7990605ad0271f2bcb09edea4524c5a.diff) = 2ca0700e27b3de680501837437fee7e6961ef1a43230f743641733e8ded81f24 +SIZE (c1ee1bdac7990605ad0271f2bcb09edea4524c5a.diff) = 139333 diff --git a/games/openclonk/files/patch-CMakeLists.txt b/games/openclonk/files/patch-CMakeLists.txt index 24afcb82ee29..592aebc110e9 100644 --- a/games/openclonk/files/patch-CMakeLists.txt +++ b/games/openclonk/files/patch-CMakeLists.txt @@ -1,6 +1,6 @@ --- CMakeLists.txt.orig 2018-03-16 17:25:33 UTC +++ CMakeLists.txt -@@ -91,7 +91,6 @@ function(add_linker_flags) +@@ -91,7 +91,6 @@ endfunction() endforeach() endfunction() @@ -8,7 +8,16 @@ if(USE_GCC_STYLE_LTCG) set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -flto") set(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} -flto") -@@ -337,8 +336,6 @@ if(READLINE_FOUND) +@@ -167,7 +166,7 @@ if(UNIX) + endif() + + if(UNIX) +- add_definitions("-DOC_SYSTEM_DATA_DIR=\"${CMAKE_INSTALL_PREFIX}/share/games/openclonk\"") ++ add_definitions("-DOC_SYSTEM_DATA_DIR=\"${CMAKE_INSTALL_PREFIX}/share/openclonk\"") + endif() + + if(APPLE) +@@ -337,8 +336,6 @@ SET(HAVE_LIBREADLINE ${READLINE_FOUND} CACHE INTERNAL endif() SET(HAVE_LIBREADLINE ${READLINE_FOUND} CACHE INTERNAL "libreadline available") @@ -17,7 +26,7 @@ # Select an audio library find_package("Audio") if(Audio_FOUND) -@@ -356,8 +353,6 @@ set(HAVE_SDL ${SDL2_FOUND}) +@@ -356,8 +353,6 @@ include_directories(SYSTEM ${SDL2_INCLUDE_DIRS}) include_directories(SYSTEM ${SDL2_INCLUDE_DIRS}) # Qt5 for editor @@ -26,3 +35,28 @@ if(Qt5Widgets_FOUND) SET(WITH_QT_EDITOR ${Qt5Widgets_FOUND} "Qt editor dialogues available") set(CMAKE_AUTOMOC ON) +@@ -1537,13 +1532,13 @@ foreach(group ${OC_C4GROUPS}) + DEPENDS "${native_c4group}" + VERBATIM + ) +- install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${group} DESTINATION share/games/openclonk) ++ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${group} DESTINATION share/openclonk) + endif() + endforeach() + + if(NOT APPLE) + if(NOT HEADLESS_ONLY) +- install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/planet/Music.ocg DESTINATION share/games/openclonk) ++ install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/planet/Music.ocg DESTINATION share/openclonk) + endif() + # group files (game data) + add_custom_target(groups DEPENDS ${OC_C4GROUPS}) +@@ -1563,7 +1558,7 @@ if(NOT HEADLESS_ONLY) + install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/openclonk.appdata.xml DESTINATION share/appdata) + + # Install binaries +- install(TARGETS openclonk DESTINATION games) ++ install(TARGETS openclonk DESTINATION bin) + else() + install(TARGETS openclonk + BUNDLE DESTINATION . diff --git a/games/openclonk/files/patch-blake2 b/games/openclonk/files/patch-blake2 new file mode 100644 index 000000000000..f7aa744692dd --- /dev/null +++ b/games/openclonk/files/patch-blake2 @@ -0,0 +1,10621 @@ +This patch set updates blake2 and enables compilation on non-x86. It is +an amalgamation of the following upstream patches, which could not be +taken from upstream directly due to the presence of a merge: + +c1ee1bdac Fix the most horrible merge I've done yet +c29148803 Merge branch 'blake2-no-sse2' into stable-8 +e0850947b BLAKE2: Fall back to plain C implementation on non-amd64 platforms +288e9f339 Merge commit '9493ed1277ef924c3005a9ff51f194d1cda87947' as 'thirdparty/blake2' + +Files not needed for compilation were omitted to save space. + +--- thirdparty/blake2/CMakeLists.txt.orig 2018-03-16 17:25:33 UTC ++++ thirdparty/blake2/CMakeLists.txt +@@ -11,33 +11,64 @@ + # To redistribute this file separately, substitute the full license texts + # for the above references. + +-add_library(blake2 STATIC +- blake2.h +-) ++include(CheckCSourceCompiles) + +-target_sources(blake2 +- PRIVATE +- blake2b.c +- blake2bp.c +- blake2s.c +- blake2sp.c +- blake2xb.c +- blake2xs.c +- blake2b-load-sse2.h +- blake2b-load-sse41.h +- blake2b-round.h +- blake2s-load-sse2.h +- blake2s-load-sse41.h +- blake2s-load-xop.h +- blake2s-round.h +- blake2-config.h +- blake2-impl.h +-) ++CHECK_C_SOURCE_COMPILES(" ++#if __x86_64 || __x86_64__ || __amd64 || __AMD64 || _M_X64 ++// x86-64 target system ++#else ++#error Not building for x86-64 ++#endif ++int main() {} ++" HAVE_X86_64) + +-include(CheckCCompilerFlag) +-CHECK_C_COMPILER_FLAG("-msse2" HAVE_CFLAG_MSSE2) +-target_compile_definitions(blake2 PRIVATE -DHAVE_SSE2) +-if(HAVE_CFLAG_MSSE2) +- target_compile_options(blake2 PUBLIC -msse2) ++option(BLAKE2B_USE_SSE2 "Use SSE2 instructions for BLAKE2b" ${HAVE_X86_64}) ++ ++if (BLAKE2B_USE_SSE2) ++ add_library(blake2 STATIC ++ sse/blake2.h ++ ) ++ ++ target_sources(blake2 ++ PRIVATE ++ sse/blake2b.c ++ sse/blake2bp.c ++ sse/blake2s.c ++ sse/blake2sp.c ++ sse/blake2xb.c ++ sse/blake2xs.c ++ sse/blake2b-load-sse2.h ++ sse/blake2b-load-sse41.h ++ sse/blake2b-round.h ++ sse/blake2s-load-sse2.h ++ sse/blake2s-load-sse41.h ++ sse/blake2s-load-xop.h ++ sse/blake2s-round.h ++ sse/blake2-config.h ++ sse/blake2-impl.h ++ ) ++ ++ include(CheckCCompilerFlag) ++ CHECK_C_COMPILER_FLAG("-msse2" HAVE_CFLAG_MSSE2) ++ target_compile_definitions(blake2 PRIVATE -DHAVE_SSE2) ++ if(HAVE_CFLAG_MSSE2) ++ target_compile_options(blake2 PUBLIC -msse2) ++ endif() ++ target_include_directories(blake2 PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/sse) ++else() ++ add_library(blake2 STATIC ++ ref/blake2.h ++ ) ++ ++ target_sources(blake2 ++ PRIVATE ++ ref/blake2bp-ref.c ++ ref/blake2b-ref.c ++ ref/blake2sp-ref.c ++ ref/blake2s-ref.c ++ ref/blake2xb-ref.c ++ ref/blake2xs-ref.c ++ ref/blake2-impl.h ++ ) ++ target_include_directories(blake2 PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/ref) + endif() +-target_include_directories(blake2 PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) +--- thirdparty/blake2/blake2-config.h.orig 2018-03-16 17:25:33 UTC ++++ thirdparty/blake2/blake2-config.h +@@ -1,72 +0,0 @@ +-/* +- BLAKE2 reference source code package - optimized C implementations +- +- Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the +- terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at +- your option. The terms of these licenses can be found at: +- +- - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 +- - OpenSSL license : https://www.openssl.org/source/license.html +- - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 +- +- More information about the BLAKE2 hash function can be found at +- https://blake2.net. +-*/ +-#ifndef BLAKE2_CONFIG_H +-#define BLAKE2_CONFIG_H +- +-/* These don't work everywhere */ +-#if defined(__SSE2__) || defined(__x86_64__) || defined(__amd64__) +-#define HAVE_SSE2 +-#endif +- +-#if defined(__SSSE3__) +-#define HAVE_SSSE3 +-#endif +- +-#if defined(__SSE4_1__) +-#define HAVE_SSE41 +-#endif +- +-#if defined(__AVX__) +-#define HAVE_AVX +-#endif +- +-#if defined(__XOP__) +-#define HAVE_XOP +-#endif +- +- +-#ifdef HAVE_AVX2 +-#ifndef HAVE_AVX +-#define HAVE_AVX +-#endif +-#endif +- +-#ifdef HAVE_XOP +-#ifndef HAVE_AVX +-#define HAVE_AVX +-#endif +-#endif +- +-#ifdef HAVE_AVX +-#ifndef HAVE_SSE41 +-#define HAVE_SSE41 +-#endif +-#endif +- +-#ifdef HAVE_SSE41 +-#ifndef HAVE_SSSE3 +-#define HAVE_SSSE3 +-#endif +-#endif +- +-#ifdef HAVE_SSSE3 +-#define HAVE_SSE2 +-#endif +- +-#if !defined(HAVE_SSE2) +-#error "This code requires at least SSE2." +-#endif +- +-#endif +--- thirdparty/blake2/blake2-impl.h.orig 2018-03-16 17:25:33 UTC ++++ thirdparty/blake2/blake2-impl.h +@@ -1,160 +0,0 @@ +-/* +- BLAKE2 reference source code package - reference C implementations +- +- Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the +- terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at +- your option. The terms of these licenses can be found at: +- +- - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 +- - OpenSSL license : https://www.openssl.org/source/license.html +- - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 +- +- More information about the BLAKE2 hash function can be found at +- https://blake2.net. +-*/ +-#ifndef BLAKE2_IMPL_H +-#define BLAKE2_IMPL_H +- +-#include <stdint.h> +-#include <string.h> +- +-#if !defined(__cplusplus) && (!defined(__STDC_VERSION__) || __STDC_VERSION__ < 199901L) +- #if defined(_MSC_VER) +- #define BLAKE2_INLINE __inline +- #elif defined(__GNUC__) +- #define BLAKE2_INLINE __inline__ +- #else +- #define BLAKE2_INLINE +- #endif +-#else +- #define BLAKE2_INLINE inline +-#endif +- +-static BLAKE2_INLINE uint32_t load32( const void *src ) +-{ +-#if defined(NATIVE_LITTLE_ENDIAN) +- uint32_t w; +- memcpy(&w, src, sizeof w); +- return w; +-#else +- const uint8_t *p = ( const uint8_t * )src; +- return (( uint32_t )( p[0] ) << 0) | +- (( uint32_t )( p[1] ) << 8) | +- (( uint32_t )( p[2] ) << 16) | +- (( uint32_t )( p[3] ) << 24) ; +-#endif +-} +- +-static BLAKE2_INLINE uint64_t load64( const void *src ) +-{ +-#if defined(NATIVE_LITTLE_ENDIAN) +- uint64_t w; +- memcpy(&w, src, sizeof w); +- return w; +-#else +- const uint8_t *p = ( const uint8_t * )src; +- return (( uint64_t )( p[0] ) << 0) | +- (( uint64_t )( p[1] ) << 8) | +- (( uint64_t )( p[2] ) << 16) | +- (( uint64_t )( p[3] ) << 24) | +- (( uint64_t )( p[4] ) << 32) | +- (( uint64_t )( p[5] ) << 40) | +- (( uint64_t )( p[6] ) << 48) | +- (( uint64_t )( p[7] ) << 56) ; +-#endif +-} +- +-static BLAKE2_INLINE uint16_t load16( const void *src ) +-{ +-#if defined(NATIVE_LITTLE_ENDIAN) +- uint16_t w; +- memcpy(&w, src, sizeof w); +- return w; +-#else +- const uint8_t *p = ( const uint8_t * )src; +- return (( uint16_t )( p[0] ) << 0) | +- (( uint16_t )( p[1] ) << 8) ; +-#endif +-} +- +-static BLAKE2_INLINE void store16( void *dst, uint16_t w ) +-{ +-#if defined(NATIVE_LITTLE_ENDIAN) +- memcpy(dst, &w, sizeof w); +-#else +- uint8_t *p = ( uint8_t * )dst; +- *p++ = ( uint8_t )w; w >>= 8; +- *p++ = ( uint8_t )w; +-#endif +-} +- +-static BLAKE2_INLINE void store32( void *dst, uint32_t w ) +-{ +-#if defined(NATIVE_LITTLE_ENDIAN) +- memcpy(dst, &w, sizeof w); +-#else +- uint8_t *p = ( uint8_t * )dst; +- p[0] = (uint8_t)(w >> 0); +- p[1] = (uint8_t)(w >> 8); +- p[2] = (uint8_t)(w >> 16); +- p[3] = (uint8_t)(w >> 24); +-#endif +-} +- +-static BLAKE2_INLINE void store64( void *dst, uint64_t w ) +-{ +-#if defined(NATIVE_LITTLE_ENDIAN) +- memcpy(dst, &w, sizeof w); +-#else +- uint8_t *p = ( uint8_t * )dst; +- p[0] = (uint8_t)(w >> 0); +- p[1] = (uint8_t)(w >> 8); +- p[2] = (uint8_t)(w >> 16); +- p[3] = (uint8_t)(w >> 24); +- p[4] = (uint8_t)(w >> 32); +- p[5] = (uint8_t)(w >> 40); +- p[6] = (uint8_t)(w >> 48); +- p[7] = (uint8_t)(w >> 56); +-#endif +-} +- +-static BLAKE2_INLINE uint64_t load48( const void *src ) +-{ +- const uint8_t *p = ( const uint8_t * )src; +- return (( uint64_t )( p[0] ) << 0) | +- (( uint64_t )( p[1] ) << 8) | +- (( uint64_t )( p[2] ) << 16) | +- (( uint64_t )( p[3] ) << 24) | +- (( uint64_t )( p[4] ) << 32) | +- (( uint64_t )( p[5] ) << 40) ; +-} +- +-static BLAKE2_INLINE void store48( void *dst, uint64_t w ) +-{ +- uint8_t *p = ( uint8_t * )dst; +- p[0] = (uint8_t)(w >> 0); +- p[1] = (uint8_t)(w >> 8); +- p[2] = (uint8_t)(w >> 16); +- p[3] = (uint8_t)(w >> 24); +- p[4] = (uint8_t)(w >> 32); +- p[5] = (uint8_t)(w >> 40); +-} +- +-static BLAKE2_INLINE uint32_t rotr32( const uint32_t w, const unsigned c ) +-{ +- return ( w >> c ) | ( w << ( 32 - c ) ); +-} +- +-static BLAKE2_INLINE uint64_t rotr64( const uint64_t w, const unsigned c ) +-{ +- return ( w >> c ) | ( w << ( 64 - c ) ); +-} +- +-/* prevents compiler optimizing out memset() */ +-static BLAKE2_INLINE void secure_zero_memory(void *v, size_t n) +-{ +- static void *(*const volatile memset_v)(void *, int, size_t) = &memset; +- memset_v(v, 0, n); +-} +- +-#endif +--- thirdparty/blake2/blake2.h.orig 2018-03-16 17:25:33 UTC ++++ thirdparty/blake2/blake2.h +@@ -1,195 +0,0 @@ +-/* +- BLAKE2 reference source code package - reference C implementations +- +- Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the +- terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at +- your option. The terms of these licenses can be found at: +- +- - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 +- - OpenSSL license : https://www.openssl.org/source/license.html +- - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 +- +- More information about the BLAKE2 hash function can be found at +- https://blake2.net. +-*/ +-#ifndef BLAKE2_H +-#define BLAKE2_H +- +-#include <stddef.h> +-#include <stdint.h> +- +-#if defined(_MSC_VER) +-#define BLAKE2_PACKED(x) __pragma(pack(push, 1)) x __pragma(pack(pop)) +-#else +-#define BLAKE2_PACKED(x) x __attribute__((packed)) +-#endif +- +-#if defined(__cplusplus) +-extern "C" { +-#endif +- +- enum blake2s_constant +- { +- BLAKE2S_BLOCKBYTES = 64, +- BLAKE2S_OUTBYTES = 32, +- BLAKE2S_KEYBYTES = 32, +- BLAKE2S_SALTBYTES = 8, +- BLAKE2S_PERSONALBYTES = 8 +- }; +- +- enum blake2b_constant +- { +- BLAKE2B_BLOCKBYTES = 128, +- BLAKE2B_OUTBYTES = 64, +- BLAKE2B_KEYBYTES = 64, +- BLAKE2B_SALTBYTES = 16, +- BLAKE2B_PERSONALBYTES = 16 +- }; +- +- typedef struct blake2s_state__ +- { +- uint32_t h[8]; +- uint32_t t[2]; +- uint32_t f[2]; +- uint8_t buf[BLAKE2S_BLOCKBYTES]; +- size_t buflen; +- size_t outlen; +- uint8_t last_node; +- } blake2s_state; +- +- typedef struct blake2b_state__ +- { +- uint64_t h[8]; +- uint64_t t[2]; +- uint64_t f[2]; +- uint8_t buf[BLAKE2B_BLOCKBYTES]; +- size_t buflen; +- size_t outlen; +- uint8_t last_node; +- } blake2b_state; +- +- typedef struct blake2sp_state__ +- { +- blake2s_state S[8][1]; +- blake2s_state R[1]; +- uint8_t buf[8 * BLAKE2S_BLOCKBYTES]; +- size_t buflen; +- size_t outlen; +- } blake2sp_state; +- +- typedef struct blake2bp_state__ +- { +- blake2b_state S[4][1]; +- blake2b_state R[1]; +- uint8_t buf[4 * BLAKE2B_BLOCKBYTES]; +- size_t buflen; +- size_t outlen; +- } blake2bp_state; +- +- +- BLAKE2_PACKED(struct blake2s_param__ +- { +- uint8_t digest_length; /* 1 */ +- uint8_t key_length; /* 2 */ +- uint8_t fanout; /* 3 */ +- uint8_t depth; /* 4 */ +- uint32_t leaf_length; /* 8 */ +- uint32_t node_offset; /* 12 */ +- uint16_t xof_length; /* 14 */ +- uint8_t node_depth; /* 15 */ +- uint8_t inner_length; /* 16 */ +- /* uint8_t reserved[0]; */ +- uint8_t salt[BLAKE2S_SALTBYTES]; /* 24 */ +- uint8_t personal[BLAKE2S_PERSONALBYTES]; /* 32 */ +- }); +- +- typedef struct blake2s_param__ blake2s_param; +- +- BLAKE2_PACKED(struct blake2b_param__ +- { +- uint8_t digest_length; /* 1 */ +- uint8_t key_length; /* 2 */ +- uint8_t fanout; /* 3 */ +- uint8_t depth; /* 4 */ +- uint32_t leaf_length; /* 8 */ +- uint32_t node_offset; /* 12 */ +- uint32_t xof_length; /* 16 */ +- uint8_t node_depth; /* 17 */ +- uint8_t inner_length; /* 18 */ +- uint8_t reserved[14]; /* 32 */ +- uint8_t salt[BLAKE2B_SALTBYTES]; /* 48 */ +- uint8_t personal[BLAKE2B_PERSONALBYTES]; /* 64 */ +- }); +- +- typedef struct blake2b_param__ blake2b_param; +- +- typedef struct blake2xs_state__ +- { +- blake2s_state S[1]; +- blake2s_param P[1]; +- } blake2xs_state; +- +- typedef struct blake2xb_state__ +- { +- blake2b_state S[1]; +- blake2b_param P[1]; +- } blake2xb_state; +- +- /* Padded structs result in a compile-time error */ +- enum { +- BLAKE2_DUMMY_1 = 1/(sizeof(blake2s_param) == BLAKE2S_OUTBYTES), +- BLAKE2_DUMMY_2 = 1/(sizeof(blake2b_param) == BLAKE2B_OUTBYTES) +- }; +- +- /* Streaming API */ +- int blake2s_init( blake2s_state *S, size_t outlen ); +- int blake2s_init_key( blake2s_state *S, size_t outlen, const void *key, size_t keylen ); +- int blake2s_init_param( blake2s_state *S, const blake2s_param *P ); +- int blake2s_update( blake2s_state *S, const void *in, size_t inlen ); +- int blake2s_final( blake2s_state *S, void *out, size_t outlen ); +- +- int blake2b_init( blake2b_state *S, size_t outlen ); +- int blake2b_init_key( blake2b_state *S, size_t outlen, const void *key, size_t keylen ); +- int blake2b_init_param( blake2b_state *S, const blake2b_param *P ); +- int blake2b_update( blake2b_state *S, const void *in, size_t inlen ); +- int blake2b_final( blake2b_state *S, void *out, size_t outlen ); +- +- int blake2sp_init( blake2sp_state *S, size_t outlen ); +- int blake2sp_init_key( blake2sp_state *S, size_t outlen, const void *key, size_t keylen ); +- int blake2sp_update( blake2sp_state *S, const void *in, size_t inlen ); +- int blake2sp_final( blake2sp_state *S, void *out, size_t outlen ); +- +- int blake2bp_init( blake2bp_state *S, size_t outlen ); +- int blake2bp_init_key( blake2bp_state *S, size_t outlen, const void *key, size_t keylen ); +- int blake2bp_update( blake2bp_state *S, const void *in, size_t inlen ); +- int blake2bp_final( blake2bp_state *S, void *out, size_t outlen ); +- +- /* Variable output length API */ +- int blake2xs_init( blake2xs_state *S, const size_t outlen ); +- int blake2xs_init_key( blake2xs_state *S, const size_t outlen, const void *key, size_t keylen ); +- int blake2xs_update( blake2xs_state *S, const void *in, size_t inlen ); +- int blake2xs_final(blake2xs_state *S, void *out, size_t outlen); +- +- int blake2xb_init( blake2xb_state *S, const size_t outlen ); +- int blake2xb_init_key( blake2xb_state *S, const size_t outlen, const void *key, size_t keylen ); +- int blake2xb_update( blake2xb_state *S, const void *in, size_t inlen ); +- int blake2xb_final(blake2xb_state *S, void *out, size_t outlen); +- +- /* Simple API */ +- int blake2s( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen ); +- int blake2b( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen ); +- +- int blake2sp( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen ); +- int blake2bp( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen ); +- +- int blake2xs( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen ); +- int blake2xb( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen ); +- +- /* This is simply an alias for blake2b */ +- int blake2( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen ); +- +-#if defined(__cplusplus) +-} +-#endif +- +-#endif +--- thirdparty/blake2/blake2b-load-sse2.h.orig 2018-03-16 17:25:33 UTC ++++ thirdparty/blake2/blake2b-load-sse2.h +@@ -1,68 +0,0 @@ +-/* +- BLAKE2 reference source code package - optimized C implementations +- +- Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the +- terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at +- your option. The terms of these licenses can be found at: +- +- - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 +- - OpenSSL license : https://www.openssl.org/source/license.html +- - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 +- +- More information about the BLAKE2 hash function can be found at +- https://blake2.net. +-*/ +-#ifndef BLAKE2B_LOAD_SSE2_H +-#define BLAKE2B_LOAD_SSE2_H +- +-#define LOAD_MSG_0_1(b0, b1) b0 = _mm_set_epi64x(m2, m0); b1 = _mm_set_epi64x(m6, m4) +-#define LOAD_MSG_0_2(b0, b1) b0 = _mm_set_epi64x(m3, m1); b1 = _mm_set_epi64x(m7, m5) +-#define LOAD_MSG_0_3(b0, b1) b0 = _mm_set_epi64x(m10, m8); b1 = _mm_set_epi64x(m14, m12) +-#define LOAD_MSG_0_4(b0, b1) b0 = _mm_set_epi64x(m11, m9); b1 = _mm_set_epi64x(m15, m13) +-#define LOAD_MSG_1_1(b0, b1) b0 = _mm_set_epi64x(m4, m14); b1 = _mm_set_epi64x(m13, m9) +-#define LOAD_MSG_1_2(b0, b1) b0 = _mm_set_epi64x(m8, m10); b1 = _mm_set_epi64x(m6, m15) +-#define LOAD_MSG_1_3(b0, b1) b0 = _mm_set_epi64x(m0, m1); b1 = _mm_set_epi64x(m5, m11) +-#define LOAD_MSG_1_4(b0, b1) b0 = _mm_set_epi64x(m2, m12); b1 = _mm_set_epi64x(m3, m7) +-#define LOAD_MSG_2_1(b0, b1) b0 = _mm_set_epi64x(m12, m11); b1 = _mm_set_epi64x(m15, m5) +-#define LOAD_MSG_2_2(b0, b1) b0 = _mm_set_epi64x(m0, m8); b1 = _mm_set_epi64x(m13, m2) +-#define LOAD_MSG_2_3(b0, b1) b0 = _mm_set_epi64x(m3, m10); b1 = _mm_set_epi64x(m9, m7) +-#define LOAD_MSG_2_4(b0, b1) b0 = _mm_set_epi64x(m6, m14); b1 = _mm_set_epi64x(m4, m1) +-#define LOAD_MSG_3_1(b0, b1) b0 = _mm_set_epi64x(m3, m7); b1 = _mm_set_epi64x(m11, m13) +-#define LOAD_MSG_3_2(b0, b1) b0 = _mm_set_epi64x(m1, m9); b1 = _mm_set_epi64x(m14, m12) +-#define LOAD_MSG_3_3(b0, b1) b0 = _mm_set_epi64x(m5, m2); b1 = _mm_set_epi64x(m15, m4) +-#define LOAD_MSG_3_4(b0, b1) b0 = _mm_set_epi64x(m10, m6); b1 = _mm_set_epi64x(m8, m0) +-#define LOAD_MSG_4_1(b0, b1) b0 = _mm_set_epi64x(m5, m9); b1 = _mm_set_epi64x(m10, m2) +-#define LOAD_MSG_4_2(b0, b1) b0 = _mm_set_epi64x(m7, m0); b1 = _mm_set_epi64x(m15, m4) +-#define LOAD_MSG_4_3(b0, b1) b0 = _mm_set_epi64x(m11, m14); b1 = _mm_set_epi64x(m3, m6) +-#define LOAD_MSG_4_4(b0, b1) b0 = _mm_set_epi64x(m12, m1); b1 = _mm_set_epi64x(m13, m8) +-#define LOAD_MSG_5_1(b0, b1) b0 = _mm_set_epi64x(m6, m2); b1 = _mm_set_epi64x(m8, m0) +-#define LOAD_MSG_5_2(b0, b1) b0 = _mm_set_epi64x(m10, m12); b1 = _mm_set_epi64x(m3, m11) +-#define LOAD_MSG_5_3(b0, b1) b0 = _mm_set_epi64x(m7, m4); b1 = _mm_set_epi64x(m1, m15) +-#define LOAD_MSG_5_4(b0, b1) b0 = _mm_set_epi64x(m5, m13); b1 = _mm_set_epi64x(m9, m14) +-#define LOAD_MSG_6_1(b0, b1) b0 = _mm_set_epi64x(m1, m12); b1 = _mm_set_epi64x(m4, m14) +-#define LOAD_MSG_6_2(b0, b1) b0 = _mm_set_epi64x(m15, m5); b1 = _mm_set_epi64x(m10, m13) +-#define LOAD_MSG_6_3(b0, b1) b0 = _mm_set_epi64x(m6, m0); b1 = _mm_set_epi64x(m8, m9) +-#define LOAD_MSG_6_4(b0, b1) b0 = _mm_set_epi64x(m3, m7); b1 = _mm_set_epi64x(m11, m2) +-#define LOAD_MSG_7_1(b0, b1) b0 = _mm_set_epi64x(m7, m13); b1 = _mm_set_epi64x(m3, m12) +-#define LOAD_MSG_7_2(b0, b1) b0 = _mm_set_epi64x(m14, m11); b1 = _mm_set_epi64x(m9, m1) +-#define LOAD_MSG_7_3(b0, b1) b0 = _mm_set_epi64x(m15, m5); b1 = _mm_set_epi64x(m2, m8) +-#define LOAD_MSG_7_4(b0, b1) b0 = _mm_set_epi64x(m4, m0); b1 = _mm_set_epi64x(m10, m6) +-#define LOAD_MSG_8_1(b0, b1) b0 = _mm_set_epi64x(m14, m6); b1 = _mm_set_epi64x(m0, m11) +-#define LOAD_MSG_8_2(b0, b1) b0 = _mm_set_epi64x(m9, m15); b1 = _mm_set_epi64x(m8, m3) +-#define LOAD_MSG_8_3(b0, b1) b0 = _mm_set_epi64x(m13, m12); b1 = _mm_set_epi64x(m10, m1) +-#define LOAD_MSG_8_4(b0, b1) b0 = _mm_set_epi64x(m7, m2); b1 = _mm_set_epi64x(m5, m4) +-#define LOAD_MSG_9_1(b0, b1) b0 = _mm_set_epi64x(m8, m10); b1 = _mm_set_epi64x(m1, m7) +-#define LOAD_MSG_9_2(b0, b1) b0 = _mm_set_epi64x(m4, m2); b1 = _mm_set_epi64x(m5, m6) +-#define LOAD_MSG_9_3(b0, b1) b0 = _mm_set_epi64x(m9, m15); b1 = _mm_set_epi64x(m13, m3) +-#define LOAD_MSG_9_4(b0, b1) b0 = _mm_set_epi64x(m14, m11); b1 = _mm_set_epi64x(m0, m12) +-#define LOAD_MSG_10_1(b0, b1) b0 = _mm_set_epi64x(m2, m0); b1 = _mm_set_epi64x(m6, m4) +-#define LOAD_MSG_10_2(b0, b1) b0 = _mm_set_epi64x(m3, m1); b1 = _mm_set_epi64x(m7, m5) +-#define LOAD_MSG_10_3(b0, b1) b0 = _mm_set_epi64x(m10, m8); b1 = _mm_set_epi64x(m14, m12) +-#define LOAD_MSG_10_4(b0, b1) b0 = _mm_set_epi64x(m11, m9); b1 = _mm_set_epi64x(m15, m13) +-#define LOAD_MSG_11_1(b0, b1) b0 = _mm_set_epi64x(m4, m14); b1 = _mm_set_epi64x(m13, m9) +-#define LOAD_MSG_11_2(b0, b1) b0 = _mm_set_epi64x(m8, m10); b1 = _mm_set_epi64x(m6, m15) +-#define LOAD_MSG_11_3(b0, b1) b0 = _mm_set_epi64x(m0, m1); b1 = _mm_set_epi64x(m5, m11) +-#define LOAD_MSG_11_4(b0, b1) b0 = _mm_set_epi64x(m2, m12); b1 = _mm_set_epi64x(m3, m7) +- +- +-#endif +--- thirdparty/blake2/blake2b-load-sse41.h.orig 2018-03-16 17:25:33 UTC ++++ thirdparty/blake2/blake2b-load-sse41.h +@@ -1,402 +0,0 @@ +-/* +- BLAKE2 reference source code package - optimized C implementations +- +- Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the +- terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at +- your option. The terms of these licenses can be found at: +- +- - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 +- - OpenSSL license : https://www.openssl.org/source/license.html +- - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 +- +- More information about the BLAKE2 hash function can be found at +- https://blake2.net. +-*/ +-#ifndef BLAKE2B_LOAD_SSE41_H +-#define BLAKE2B_LOAD_SSE41_H +- +-#define LOAD_MSG_0_1(b0, b1) \ +-do \ +-{ \ +-b0 = _mm_unpacklo_epi64(m0, m1); \ +-b1 = _mm_unpacklo_epi64(m2, m3); \ +-} while(0) +- +- +-#define LOAD_MSG_0_2(b0, b1) \ +-do \ +-{ \ +-b0 = _mm_unpackhi_epi64(m0, m1); \ +-b1 = _mm_unpackhi_epi64(m2, m3); \ +-} while(0) +- +- +-#define LOAD_MSG_0_3(b0, b1) \ +-do \ +-{ \ +-b0 = _mm_unpacklo_epi64(m4, m5); \ +-b1 = _mm_unpacklo_epi64(m6, m7); \ +-} while(0) +- +- +-#define LOAD_MSG_0_4(b0, b1) \ +-do \ +-{ \ +-b0 = _mm_unpackhi_epi64(m4, m5); \ +-b1 = _mm_unpackhi_epi64(m6, m7); \ +-} while(0) +- +- +-#define LOAD_MSG_1_1(b0, b1) \ +-do \ +-{ \ +-b0 = _mm_unpacklo_epi64(m7, m2); \ +-b1 = _mm_unpackhi_epi64(m4, m6); \ +-} while(0) +- +- +-#define LOAD_MSG_1_2(b0, b1) \ +-do \ +-{ \ +-b0 = _mm_unpacklo_epi64(m5, m4); \ +-b1 = _mm_alignr_epi8(m3, m7, 8); \ +-} while(0) +- +- +-#define LOAD_MSG_1_3(b0, b1) \ +-do \ +-{ \ +-b0 = _mm_shuffle_epi32(m0, _MM_SHUFFLE(1,0,3,2)); \ +-b1 = _mm_unpackhi_epi64(m5, m2); \ +-} while(0) +- +- +-#define LOAD_MSG_1_4(b0, b1) \ +-do \ +-{ \ +-b0 = _mm_unpacklo_epi64(m6, m1); \ +-b1 = _mm_unpackhi_epi64(m3, m1); \ +-} while(0) +- +- +-#define LOAD_MSG_2_1(b0, b1) \ +-do \ +-{ \ +-b0 = _mm_alignr_epi8(m6, m5, 8); \ +-b1 = _mm_unpackhi_epi64(m2, m7); \ +-} while(0) +- +- +-#define LOAD_MSG_2_2(b0, b1) \ +-do \ +-{ \ +-b0 = _mm_unpacklo_epi64(m4, m0); \ +-b1 = _mm_blend_epi16(m1, m6, 0xF0); \ +-} while(0) +- +- +-#define LOAD_MSG_2_3(b0, b1) \ +-do \ +-{ \ +-b0 = _mm_blend_epi16(m5, m1, 0xF0); \ +-b1 = _mm_unpackhi_epi64(m3, m4); \ +-} while(0) +- +- +-#define LOAD_MSG_2_4(b0, b1) \ +-do \ +-{ \ +-b0 = _mm_unpacklo_epi64(m7, m3); \ +-b1 = _mm_alignr_epi8(m2, m0, 8); \ +-} while(0) +- +- +-#define LOAD_MSG_3_1(b0, b1) \ +-do \ +-{ \ +-b0 = _mm_unpackhi_epi64(m3, m1); \ +-b1 = _mm_unpackhi_epi64(m6, m5); \ +-} while(0) +- +- +-#define LOAD_MSG_3_2(b0, b1) \ +-do \ +-{ \ +-b0 = _mm_unpackhi_epi64(m4, m0); \ +-b1 = _mm_unpacklo_epi64(m6, m7); \ +-} while(0) +- +- +-#define LOAD_MSG_3_3(b0, b1) \ +-do \ +-{ \ +-b0 = _mm_blend_epi16(m1, m2, 0xF0); \ +-b1 = _mm_blend_epi16(m2, m7, 0xF0); \ +-} while(0) +- +- +-#define LOAD_MSG_3_4(b0, b1) \ +-do \ +-{ \ +-b0 = _mm_unpacklo_epi64(m3, m5); \ +-b1 = _mm_unpacklo_epi64(m0, m4); \ +-} while(0) +- +- +-#define LOAD_MSG_4_1(b0, b1) \ +-do \ +-{ \ +-b0 = _mm_unpackhi_epi64(m4, m2); \ +-b1 = _mm_unpacklo_epi64(m1, m5); \ +-} while(0) +- +- +-#define LOAD_MSG_4_2(b0, b1) \ +-do \ +-{ \ +-b0 = _mm_blend_epi16(m0, m3, 0xF0); \ +-b1 = _mm_blend_epi16(m2, m7, 0xF0); \ +-} while(0) +- +- +-#define LOAD_MSG_4_3(b0, b1) \ +-do \ +-{ \ +-b0 = _mm_blend_epi16(m7, m5, 0xF0); \ +-b1 = _mm_blend_epi16(m3, m1, 0xF0); \ +-} while(0) +- +- +-#define LOAD_MSG_4_4(b0, b1) \ +-do \ +-{ \ +-b0 = _mm_alignr_epi8(m6, m0, 8); \ +-b1 = _mm_blend_epi16(m4, m6, 0xF0); \ +-} while(0) +- +- +-#define LOAD_MSG_5_1(b0, b1) \ +-do \ +-{ \ +-b0 = _mm_unpacklo_epi64(m1, m3); \ +-b1 = _mm_unpacklo_epi64(m0, m4); \ +-} while(0) +- +- +-#define LOAD_MSG_5_2(b0, b1) \ +-do \ +-{ \ +-b0 = _mm_unpacklo_epi64(m6, m5); \ +-b1 = _mm_unpackhi_epi64(m5, m1); \ +-} while(0) +- +- +-#define LOAD_MSG_5_3(b0, b1) \ +-do \ +-{ \ +-b0 = _mm_blend_epi16(m2, m3, 0xF0); \ +-b1 = _mm_unpackhi_epi64(m7, m0); \ +-} while(0) +- +- +-#define LOAD_MSG_5_4(b0, b1) \ +-do \ +-{ \ +-b0 = _mm_unpackhi_epi64(m6, m2); \ +-b1 = _mm_blend_epi16(m7, m4, 0xF0); \ +-} while(0) +- +- +-#define LOAD_MSG_6_1(b0, b1) \ +-do \ +-{ \ +-b0 = _mm_blend_epi16(m6, m0, 0xF0); \ +-b1 = _mm_unpacklo_epi64(m7, m2); \ +-} while(0) +- +- +-#define LOAD_MSG_6_2(b0, b1) \ +-do \ +-{ \ +-b0 = _mm_unpackhi_epi64(m2, m7); \ +-b1 = _mm_alignr_epi8(m5, m6, 8); \ +-} while(0) +- +- +-#define LOAD_MSG_6_3(b0, b1) \ +-do \ +-{ \ +-b0 = _mm_unpacklo_epi64(m0, m3); \ +-b1 = _mm_shuffle_epi32(m4, _MM_SHUFFLE(1,0,3,2)); \ +-} while(0) +- +- +-#define LOAD_MSG_6_4(b0, b1) \ +-do \ +-{ \ +-b0 = _mm_unpackhi_epi64(m3, m1); \ +-b1 = _mm_blend_epi16(m1, m5, 0xF0); \ +-} while(0) +- +- +-#define LOAD_MSG_7_1(b0, b1) \ +-do \ +-{ \ +-b0 = _mm_unpackhi_epi64(m6, m3); \ +-b1 = _mm_blend_epi16(m6, m1, 0xF0); \ +-} while(0) +- +- +-#define LOAD_MSG_7_2(b0, b1) \ +-do \ +-{ \ +-b0 = _mm_alignr_epi8(m7, m5, 8); \ +-b1 = _mm_unpackhi_epi64(m0, m4); \ +-} while(0) +- +- +-#define LOAD_MSG_7_3(b0, b1) \ +-do \ +-{ \ +-b0 = _mm_unpackhi_epi64(m2, m7); \ +-b1 = _mm_unpacklo_epi64(m4, m1); \ +-} while(0) +- +- +-#define LOAD_MSG_7_4(b0, b1) \ +-do \ +-{ \ +-b0 = _mm_unpacklo_epi64(m0, m2); \ +-b1 = _mm_unpacklo_epi64(m3, m5); \ +-} while(0) +- +- +-#define LOAD_MSG_8_1(b0, b1) \ +-do \ +-{ \ +-b0 = _mm_unpacklo_epi64(m3, m7); \ +-b1 = _mm_alignr_epi8(m0, m5, 8); \ +-} while(0) +- +- +-#define LOAD_MSG_8_2(b0, b1) \ +-do \ +-{ \ +-b0 = _mm_unpackhi_epi64(m7, m4); \ +-b1 = _mm_alignr_epi8(m4, m1, 8); \ +-} while(0) +- +- +-#define LOAD_MSG_8_3(b0, b1) \ +-do \ +-{ \ +-b0 = m6; \ +-b1 = _mm_alignr_epi8(m5, m0, 8); \ +-} while(0) +- +- +-#define LOAD_MSG_8_4(b0, b1) \ +-do \ +-{ \ +-b0 = _mm_blend_epi16(m1, m3, 0xF0); \ +-b1 = m2; \ +-} while(0) +- +- +-#define LOAD_MSG_9_1(b0, b1) \ +-do \ +-{ \ +-b0 = _mm_unpacklo_epi64(m5, m4); \ +-b1 = _mm_unpackhi_epi64(m3, m0); \ +-} while(0) +- +- +-#define LOAD_MSG_9_2(b0, b1) \ +-do \ +-{ \ +-b0 = _mm_unpacklo_epi64(m1, m2); \ +-b1 = _mm_blend_epi16(m3, m2, 0xF0); \ +-} while(0) +- +- +-#define LOAD_MSG_9_3(b0, b1) \ +-do \ +-{ \ +-b0 = _mm_unpackhi_epi64(m7, m4); \ +-b1 = _mm_unpackhi_epi64(m1, m6); \ +-} while(0) +- +- +-#define LOAD_MSG_9_4(b0, b1) \ +-do \ +-{ \ +-b0 = _mm_alignr_epi8(m7, m5, 8); \ +-b1 = _mm_unpacklo_epi64(m6, m0); \ +-} while(0) +- +- +-#define LOAD_MSG_10_1(b0, b1) \ +-do \ +-{ \ +-b0 = _mm_unpacklo_epi64(m0, m1); \ +-b1 = _mm_unpacklo_epi64(m2, m3); \ +-} while(0) +- +- +-#define LOAD_MSG_10_2(b0, b1) \ +-do \ +-{ \ +-b0 = _mm_unpackhi_epi64(m0, m1); \ +-b1 = _mm_unpackhi_epi64(m2, m3); \ +-} while(0) +- +- +-#define LOAD_MSG_10_3(b0, b1) \ +-do \ +-{ \ +-b0 = _mm_unpacklo_epi64(m4, m5); \ +-b1 = _mm_unpacklo_epi64(m6, m7); \ +-} while(0) +- +- +-#define LOAD_MSG_10_4(b0, b1) \ +-do \ +-{ \ +-b0 = _mm_unpackhi_epi64(m4, m5); \ +-b1 = _mm_unpackhi_epi64(m6, m7); \ +-} while(0) +- +- +-#define LOAD_MSG_11_1(b0, b1) \ +-do \ +-{ \ +-b0 = _mm_unpacklo_epi64(m7, m2); \ +-b1 = _mm_unpackhi_epi64(m4, m6); \ +-} while(0) +- +- +-#define LOAD_MSG_11_2(b0, b1) \ +-do \ +-{ \ +-b0 = _mm_unpacklo_epi64(m5, m4); \ +-b1 = _mm_alignr_epi8(m3, m7, 8); \ +-} while(0) +- +- +-#define LOAD_MSG_11_3(b0, b1) \ +-do \ +-{ \ +-b0 = _mm_shuffle_epi32(m0, _MM_SHUFFLE(1,0,3,2)); \ +-b1 = _mm_unpackhi_epi64(m5, m2); \ +-} while(0) +- +- +-#define LOAD_MSG_11_4(b0, b1) \ +-do \ +-{ \ +-b0 = _mm_unpacklo_epi64(m6, m1); \ +-b1 = _mm_unpackhi_epi64(m3, m1); \ +-} while(0) +- +- +-#endif +--- thirdparty/blake2/blake2b-round.h.orig 2018-03-16 17:25:33 UTC ++++ thirdparty/blake2/blake2b-round.h +@@ -1,157 +0,0 @@ +-/* +- BLAKE2 reference source code package - optimized C implementations +- +- Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the +- terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at +- your option. The terms of these licenses can be found at: +- +- - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 +- - OpenSSL license : https://www.openssl.org/source/license.html +- - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 +- +- More information about the BLAKE2 hash function can be found at +- https://blake2.net. +-*/ +-#ifndef BLAKE2B_ROUND_H +-#define BLAKE2B_ROUND_H +- +-#define LOADU(p) _mm_loadu_si128( (const __m128i *)(p) ) +-#define STOREU(p,r) _mm_storeu_si128((__m128i *)(p), r) +- +-#define TOF(reg) _mm_castsi128_ps((reg)) +-#define TOI(reg) _mm_castps_si128((reg)) +- +-#define LIKELY(x) __builtin_expect((x),1) +- +- +-/* Microarchitecture-specific macros */ +-#ifndef HAVE_XOP +-#ifdef HAVE_SSSE3 +-#define _mm_roti_epi64(x, c) \ +- (-(c) == 32) ? _mm_shuffle_epi32((x), _MM_SHUFFLE(2,3,0,1)) \ +- : (-(c) == 24) ? _mm_shuffle_epi8((x), r24) \ +- : (-(c) == 16) ? _mm_shuffle_epi8((x), r16) \ +- : (-(c) == 63) ? _mm_xor_si128(_mm_srli_epi64((x), -(c)), _mm_add_epi64((x), (x))) \ +- : _mm_xor_si128(_mm_srli_epi64((x), -(c)), _mm_slli_epi64((x), 64-(-(c)))) +-#else +-#define _mm_roti_epi64(r, c) _mm_xor_si128(_mm_srli_epi64( (r), -(c) ),_mm_slli_epi64( (r), 64-(-(c)) )) +-#endif +-#else +-/* ... */ +-#endif +- +- +- +-#define G1(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1) \ +- row1l = _mm_add_epi64(_mm_add_epi64(row1l, b0), row2l); \ +- row1h = _mm_add_epi64(_mm_add_epi64(row1h, b1), row2h); \ +- \ +- row4l = _mm_xor_si128(row4l, row1l); \ +- row4h = _mm_xor_si128(row4h, row1h); \ +- \ +- row4l = _mm_roti_epi64(row4l, -32); \ +- row4h = _mm_roti_epi64(row4h, -32); \ +- \ +- row3l = _mm_add_epi64(row3l, row4l); \ +- row3h = _mm_add_epi64(row3h, row4h); \ +- \ +- row2l = _mm_xor_si128(row2l, row3l); \ +- row2h = _mm_xor_si128(row2h, row3h); \ +- \ +- row2l = _mm_roti_epi64(row2l, -24); \ +- row2h = _mm_roti_epi64(row2h, -24); \ +- +-#define G2(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1) \ +- row1l = _mm_add_epi64(_mm_add_epi64(row1l, b0), row2l); \ +- row1h = _mm_add_epi64(_mm_add_epi64(row1h, b1), row2h); \ +- \ +- row4l = _mm_xor_si128(row4l, row1l); \ +- row4h = _mm_xor_si128(row4h, row1h); \ +- \ +- row4l = _mm_roti_epi64(row4l, -16); \ +- row4h = _mm_roti_epi64(row4h, -16); \ +- \ +- row3l = _mm_add_epi64(row3l, row4l); \ +- row3h = _mm_add_epi64(row3h, row4h); \ +- \ +- row2l = _mm_xor_si128(row2l, row3l); \ +- row2h = _mm_xor_si128(row2h, row3h); \ +- \ +- row2l = _mm_roti_epi64(row2l, -63); \ +- row2h = _mm_roti_epi64(row2h, -63); \ +- +-#if defined(HAVE_SSSE3) +-#define DIAGONALIZE(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h) \ +- t0 = _mm_alignr_epi8(row2h, row2l, 8); \ +- t1 = _mm_alignr_epi8(row2l, row2h, 8); \ +- row2l = t0; \ +- row2h = t1; \ +- \ +- t0 = row3l; \ +- row3l = row3h; \ +- row3h = t0; \ +- \ +- t0 = _mm_alignr_epi8(row4h, row4l, 8); \ +- t1 = _mm_alignr_epi8(row4l, row4h, 8); \ +- row4l = t1; \ +- row4h = t0; +- +-#define UNDIAGONALIZE(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h) \ +- t0 = _mm_alignr_epi8(row2l, row2h, 8); \ +- t1 = _mm_alignr_epi8(row2h, row2l, 8); \ +- row2l = t0; \ +- row2h = t1; \ +- \ +- t0 = row3l; \ +- row3l = row3h; \ +- row3h = t0; \ +- \ +- t0 = _mm_alignr_epi8(row4l, row4h, 8); \ +- t1 = _mm_alignr_epi8(row4h, row4l, 8); \ +- row4l = t1; \ +- row4h = t0; +-#else +- +-#define DIAGONALIZE(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h) \ +- t0 = row4l;\ +- t1 = row2l;\ +- row4l = row3l;\ +- row3l = row3h;\ +- row3h = row4l;\ +- row4l = _mm_unpackhi_epi64(row4h, _mm_unpacklo_epi64(t0, t0)); \ +- row4h = _mm_unpackhi_epi64(t0, _mm_unpacklo_epi64(row4h, row4h)); \ +- row2l = _mm_unpackhi_epi64(row2l, _mm_unpacklo_epi64(row2h, row2h)); \ +- row2h = _mm_unpackhi_epi64(row2h, _mm_unpacklo_epi64(t1, t1)) +- +-#define UNDIAGONALIZE(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h) \ +- t0 = row3l;\ +- row3l = row3h;\ +- row3h = t0;\ +- t0 = row2l;\ +- t1 = row4l;\ +- row2l = _mm_unpackhi_epi64(row2h, _mm_unpacklo_epi64(row2l, row2l)); \ +- row2h = _mm_unpackhi_epi64(t0, _mm_unpacklo_epi64(row2h, row2h)); \ +- row4l = _mm_unpackhi_epi64(row4l, _mm_unpacklo_epi64(row4h, row4h)); \ +- row4h = _mm_unpackhi_epi64(row4h, _mm_unpacklo_epi64(t1, t1)) +- +-#endif +- +-#if defined(HAVE_SSE41) +-#include "blake2b-load-sse41.h" +-#else +-#include "blake2b-load-sse2.h" +-#endif +- +-#define ROUND(r) \ +- LOAD_MSG_ ##r ##_1(b0, b1); \ +- G1(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1); \ +- LOAD_MSG_ ##r ##_2(b0, b1); \ +- G2(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1); \ +- DIAGONALIZE(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h); \ +- LOAD_MSG_ ##r ##_3(b0, b1); \ +- G1(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1); \ +- LOAD_MSG_ ##r ##_4(b0, b1); \ +- G2(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1); \ +- UNDIAGONALIZE(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h); +- +-#endif +--- thirdparty/blake2/blake2b.c.orig 2018-03-16 17:25:33 UTC ++++ thirdparty/blake2/blake2b.c +@@ -1,373 +0,0 @@ +-/* +- BLAKE2 reference source code package - optimized C implementations +- +- Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the +- terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at +- your option. The terms of these licenses can be found at: +- +- - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 +- - OpenSSL license : https://www.openssl.org/source/license.html +- - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 +- +- More information about the BLAKE2 hash function can be found at +- https://blake2.net. +-*/ +- +-#include <stdint.h> +-#include <string.h> +-#include <stdio.h> +- +-#include "blake2.h" +-#include "blake2-impl.h" +- +-#include "blake2-config.h" +- +-#ifdef _MSC_VER +-#include <intrin.h> /* for _mm_set_epi64x */ +-#endif +-#include <emmintrin.h> +-#if defined(HAVE_SSSE3) +-#include <tmmintrin.h> +-#endif +-#if defined(HAVE_SSE41) +-#include <smmintrin.h> +-#endif +-#if defined(HAVE_AVX) +-#include <immintrin.h> +-#endif +-#if defined(HAVE_XOP) +-#include <x86intrin.h> +-#endif +- +-#include "blake2b-round.h" +- +-static const uint64_t blake2b_IV[8] = +-{ +- 0x6a09e667f3bcc908ULL, 0xbb67ae8584caa73bULL, +- 0x3c6ef372fe94f82bULL, 0xa54ff53a5f1d36f1ULL, +- 0x510e527fade682d1ULL, 0x9b05688c2b3e6c1fULL, +- 0x1f83d9abfb41bd6bULL, 0x5be0cd19137e2179ULL +-}; +- +-/* Some helper functions */ +-static void blake2b_set_lastnode( blake2b_state *S ) +-{ +- S->f[1] = (uint64_t)-1; +-} +- +-static int blake2b_is_lastblock( const blake2b_state *S ) +-{ +- return S->f[0] != 0; +-} +- +-static void blake2b_set_lastblock( blake2b_state *S ) +-{ +- if( S->last_node ) blake2b_set_lastnode( S ); +- +- S->f[0] = (uint64_t)-1; +-} +- +-static void blake2b_increment_counter( blake2b_state *S, const uint64_t inc ) +-{ +- S->t[0] += inc; +- S->t[1] += ( S->t[0] < inc ); +-} +- +-/* init xors IV with input parameter block */ +-int blake2b_init_param( blake2b_state *S, const blake2b_param *P ) +-{ +- size_t i; +- /*blake2b_init0( S ); */ +- const unsigned char * v = ( const unsigned char * )( blake2b_IV ); +- const unsigned char * p = ( const unsigned char * )( P ); +- unsigned char * h = ( unsigned char * )( S->h ); +- /* IV XOR ParamBlock */ +- memset( S, 0, sizeof( blake2b_state ) ); +- +- for( i = 0; i < BLAKE2B_OUTBYTES; ++i ) h[i] = v[i] ^ p[i]; +- +- S->outlen = P->digest_length; +- return 0; +-} +- +- +-/* Some sort of default parameter block initialization, for sequential blake2b */ +-int blake2b_init( blake2b_state *S, size_t outlen ) +-{ +- blake2b_param P[1]; +- +- if ( ( !outlen ) || ( outlen > BLAKE2B_OUTBYTES ) ) return -1; +- +- P->digest_length = (uint8_t)outlen; +- P->key_length = 0; +- P->fanout = 1; +- P->depth = 1; +- store32( &P->leaf_length, 0 ); +- store32( &P->node_offset, 0 ); +- store32( &P->xof_length, 0 ); +- P->node_depth = 0; +- P->inner_length = 0; +- memset( P->reserved, 0, sizeof( P->reserved ) ); +- memset( P->salt, 0, sizeof( P->salt ) ); +- memset( P->personal, 0, sizeof( P->personal ) ); +- +- return blake2b_init_param( S, P ); +-} +- +-int blake2b_init_key( blake2b_state *S, size_t outlen, const void *key, size_t keylen ) +-{ +- blake2b_param P[1]; +- +- if ( ( !outlen ) || ( outlen > BLAKE2B_OUTBYTES ) ) return -1; +- +- if ( ( !keylen ) || keylen > BLAKE2B_KEYBYTES ) return -1; +- +- P->digest_length = (uint8_t)outlen; +- P->key_length = (uint8_t)keylen; +- P->fanout = 1; +- P->depth = 1; +- store32( &P->leaf_length, 0 ); +- store32( &P->node_offset, 0 ); +- store32( &P->xof_length, 0 ); +- P->node_depth = 0; +- P->inner_length = 0; +- memset( P->reserved, 0, sizeof( P->reserved ) ); +- memset( P->salt, 0, sizeof( P->salt ) ); +- memset( P->personal, 0, sizeof( P->personal ) ); +- +- if( blake2b_init_param( S, P ) < 0 ) +- return 0; +- +- { +- uint8_t block[BLAKE2B_BLOCKBYTES]; +- memset( block, 0, BLAKE2B_BLOCKBYTES ); +- memcpy( block, key, keylen ); +- blake2b_update( S, block, BLAKE2B_BLOCKBYTES ); +- secure_zero_memory( block, BLAKE2B_BLOCKBYTES ); /* Burn the key from stack */ +- } +- return 0; +-} +- +-static void blake2b_compress( blake2b_state *S, const uint8_t block[BLAKE2B_BLOCKBYTES] ) +-{ +- __m128i row1l, row1h; +- __m128i row2l, row2h; +- __m128i row3l, row3h; +- __m128i row4l, row4h; +- __m128i b0, b1; +- __m128i t0, t1; +-#if defined(HAVE_SSSE3) && !defined(HAVE_XOP) +- const __m128i r16 = _mm_setr_epi8( 2, 3, 4, 5, 6, 7, 0, 1, 10, 11, 12, 13, 14, 15, 8, 9 ); +- const __m128i r24 = _mm_setr_epi8( 3, 4, 5, 6, 7, 0, 1, 2, 11, 12, 13, 14, 15, 8, 9, 10 ); +-#endif +-#if defined(HAVE_SSE41) +- const __m128i m0 = LOADU( block + 00 ); +- const __m128i m1 = LOADU( block + 16 ); +- const __m128i m2 = LOADU( block + 32 ); +- const __m128i m3 = LOADU( block + 48 ); +- const __m128i m4 = LOADU( block + 64 ); +- const __m128i m5 = LOADU( block + 80 ); +- const __m128i m6 = LOADU( block + 96 ); +- const __m128i m7 = LOADU( block + 112 ); +-#else +- const uint64_t m0 = load64(block + 0 * sizeof(uint64_t)); +- const uint64_t m1 = load64(block + 1 * sizeof(uint64_t)); +- const uint64_t m2 = load64(block + 2 * sizeof(uint64_t)); +- const uint64_t m3 = load64(block + 3 * sizeof(uint64_t)); +- const uint64_t m4 = load64(block + 4 * sizeof(uint64_t)); +- const uint64_t m5 = load64(block + 5 * sizeof(uint64_t)); +- const uint64_t m6 = load64(block + 6 * sizeof(uint64_t)); +- const uint64_t m7 = load64(block + 7 * sizeof(uint64_t)); +- const uint64_t m8 = load64(block + 8 * sizeof(uint64_t)); +- const uint64_t m9 = load64(block + 9 * sizeof(uint64_t)); +- const uint64_t m10 = load64(block + 10 * sizeof(uint64_t)); +- const uint64_t m11 = load64(block + 11 * sizeof(uint64_t)); +- const uint64_t m12 = load64(block + 12 * sizeof(uint64_t)); +- const uint64_t m13 = load64(block + 13 * sizeof(uint64_t)); +- const uint64_t m14 = load64(block + 14 * sizeof(uint64_t)); +- const uint64_t m15 = load64(block + 15 * sizeof(uint64_t)); +-#endif +- row1l = LOADU( &S->h[0] ); +- row1h = LOADU( &S->h[2] ); +- row2l = LOADU( &S->h[4] ); +- row2h = LOADU( &S->h[6] ); +- row3l = LOADU( &blake2b_IV[0] ); +- row3h = LOADU( &blake2b_IV[2] ); +- row4l = _mm_xor_si128( LOADU( &blake2b_IV[4] ), LOADU( &S->t[0] ) ); +- row4h = _mm_xor_si128( LOADU( &blake2b_IV[6] ), LOADU( &S->f[0] ) ); +- ROUND( 0 ); +- ROUND( 1 ); +- ROUND( 2 ); +- ROUND( 3 ); +- ROUND( 4 ); +- ROUND( 5 ); +- ROUND( 6 ); +- ROUND( 7 ); +- ROUND( 8 ); +- ROUND( 9 ); +- ROUND( 10 ); +- ROUND( 11 ); +- row1l = _mm_xor_si128( row3l, row1l ); +- row1h = _mm_xor_si128( row3h, row1h ); +- STOREU( &S->h[0], _mm_xor_si128( LOADU( &S->h[0] ), row1l ) ); +- STOREU( &S->h[2], _mm_xor_si128( LOADU( &S->h[2] ), row1h ) ); +- row2l = _mm_xor_si128( row4l, row2l ); +- row2h = _mm_xor_si128( row4h, row2h ); +- STOREU( &S->h[4], _mm_xor_si128( LOADU( &S->h[4] ), row2l ) ); +- STOREU( &S->h[6], _mm_xor_si128( LOADU( &S->h[6] ), row2h ) ); +-} +- +- +-int blake2b_update( blake2b_state *S, const void *pin, size_t inlen ) +-{ +- const unsigned char * in = (const unsigned char *)pin; +- if( inlen > 0 ) +- { +- size_t left = S->buflen; +- size_t fill = BLAKE2B_BLOCKBYTES - left; +- if( inlen > fill ) +- { +- S->buflen = 0; +- memcpy( S->buf + left, in, fill ); /* Fill buffer */ +- blake2b_increment_counter( S, BLAKE2B_BLOCKBYTES ); +- blake2b_compress( S, S->buf ); /* Compress */ +- in += fill; inlen -= fill; +- while(inlen > BLAKE2B_BLOCKBYTES) { +- blake2b_increment_counter(S, BLAKE2B_BLOCKBYTES); +- blake2b_compress( S, in ); +- in += BLAKE2B_BLOCKBYTES; +- inlen -= BLAKE2B_BLOCKBYTES; +- } +- } +- memcpy( S->buf + S->buflen, in, inlen ); +- S->buflen += inlen; +- } +- return 0; +-} +- +- +-int blake2b_final( blake2b_state *S, void *out, size_t outlen ) +-{ +- if( out == NULL || outlen < S->outlen ) +- return -1; +- +- if( blake2b_is_lastblock( S ) ) +- return -1; +- +- blake2b_increment_counter( S, S->buflen ); +- blake2b_set_lastblock( S ); +- memset( S->buf + S->buflen, 0, BLAKE2B_BLOCKBYTES - S->buflen ); /* Padding */ +- blake2b_compress( S, S->buf ); +- +- memcpy( out, &S->h[0], S->outlen ); +- return 0; +-} +- +- +-int blake2b( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen ) +-{ +- blake2b_state S[1]; +- +- /* Verify parameters */ +- if ( NULL == in && inlen > 0 ) return -1; +- +- if ( NULL == out ) return -1; +- +- if( NULL == key && keylen > 0 ) return -1; +- +- if( !outlen || outlen > BLAKE2B_OUTBYTES ) return -1; +- +- if( keylen > BLAKE2B_KEYBYTES ) return -1; +- +- if( keylen ) +- { +- if( blake2b_init_key( S, outlen, key, keylen ) < 0 ) return -1; +- } +- else +- { +- if( blake2b_init( S, outlen ) < 0 ) return -1; +- } +- +- blake2b_update( S, ( const uint8_t * )in, inlen ); +- blake2b_final( S, out, outlen ); +- return 0; +-} +- +-int blake2( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen ) { +- return blake2b(out, outlen, in, inlen, key, keylen); +-} +- +-#if defined(SUPERCOP) +-int crypto_hash( unsigned char *out, unsigned char *in, unsigned long long inlen ) +-{ +- return blake2b( out, BLAKE2B_OUTBYTES, in, inlen, NULL, 0 ); +-} +-#endif +- +-#if defined(BLAKE2B_SELFTEST) +-#include <string.h> +-#include "blake2-kat.h" +-int main( void ) +-{ +- uint8_t key[BLAKE2B_KEYBYTES]; +- uint8_t buf[BLAKE2_KAT_LENGTH]; +- size_t i, step; +- +- for( i = 0; i < BLAKE2B_KEYBYTES; ++i ) +- key[i] = ( uint8_t )i; +- +- for( i = 0; i < BLAKE2_KAT_LENGTH; ++i ) +- buf[i] = ( uint8_t )i; +- +- /* Test simple API */ +- for( i = 0; i < BLAKE2_KAT_LENGTH; ++i ) +- { +- uint8_t hash[BLAKE2B_OUTBYTES]; +- blake2b( hash, BLAKE2B_OUTBYTES, buf, i, key, BLAKE2B_KEYBYTES ); +- +- if( 0 != memcmp( hash, blake2b_keyed_kat[i], BLAKE2B_OUTBYTES ) ) +- { +- goto fail; +- } +- } +- +- /* Test streaming API */ +- for(step = 1; step < BLAKE2B_BLOCKBYTES; ++step) { +- for (i = 0; i < BLAKE2_KAT_LENGTH; ++i) { +- uint8_t hash[BLAKE2B_OUTBYTES]; +- blake2b_state S; +- uint8_t * p = buf; +- size_t mlen = i; +- int err = 0; +- +- if( (err = blake2b_init_key(&S, BLAKE2B_OUTBYTES, key, BLAKE2B_KEYBYTES)) < 0 ) { +- goto fail; +- } +- +- while (mlen >= step) { +- if ( (err = blake2b_update(&S, p, step)) < 0 ) { +- goto fail; +- } +- mlen -= step; +- p += step; +- } +- if ( (err = blake2b_update(&S, p, mlen)) < 0) { +- goto fail; +- } +- if ( (err = blake2b_final(&S, hash, BLAKE2B_OUTBYTES)) < 0) { +- goto fail; +- } +- +- if (0 != memcmp(hash, blake2b_keyed_kat[i], BLAKE2B_OUTBYTES)) { +- goto fail; +- } +- } +- } +- +- puts( "ok" ); +- return 0; +-fail: +- puts("error"); +- return -1; +-} +-#endif +--- thirdparty/blake2/blake2bp.c.orig 2018-03-16 17:25:33 UTC ++++ thirdparty/blake2/blake2bp.c +@@ -1,361 +0,0 @@ +-/* +- BLAKE2 reference source code package - optimized C implementations +- +- Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the +- terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at +- your option. The terms of these licenses can be found at: +- +- - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 +- - OpenSSL license : https://www.openssl.org/source/license.html +- - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 +- +- More information about the BLAKE2 hash function can be found at +- https://blake2.net. +-*/ +- +-#include <stdio.h> +-#include <stdlib.h> +-#include <string.h> +-#include <stdint.h> +- +-#if defined(_OPENMP) +-#include <omp.h> +-#endif +- +-#include "blake2.h" +-#include "blake2-impl.h" +- +-#define PARALLELISM_DEGREE 4 +- +-/* +- blake2b_init_param defaults to setting the expecting output length +- from the digest_length parameter block field. +- +- In some cases, however, we do not want this, as the output length +- of these instances is given by inner_length instead. +-*/ +-static int blake2bp_init_leaf_param( blake2b_state *S, const blake2b_param *P ) +-{ +- int err = blake2b_init_param(S, P); +- S->outlen = P->inner_length; +- return err; +-} +- +-static int blake2bp_init_leaf( blake2b_state *S, size_t outlen, size_t keylen, uint64_t offset ) +-{ +- blake2b_param P[1]; +- P->digest_length = (uint8_t)outlen; +- P->key_length = (uint8_t)keylen; +- P->fanout = PARALLELISM_DEGREE; +- P->depth = 2; +- P->leaf_length = 0; +- P->node_offset = offset; +- P->xof_length = 0; +- P->node_depth = 0; +- P->inner_length = BLAKE2B_OUTBYTES; +- memset( P->reserved, 0, sizeof( P->reserved ) ); +- memset( P->salt, 0, sizeof( P->salt ) ); +- memset( P->personal, 0, sizeof( P->personal ) ); +- return blake2bp_init_leaf_param( S, P ); +-} +- +-static int blake2bp_init_root( blake2b_state *S, size_t outlen, size_t keylen ) +-{ +- blake2b_param P[1]; +- P->digest_length = (uint8_t)outlen; +- P->key_length = (uint8_t)keylen; +- P->fanout = PARALLELISM_DEGREE; +- P->depth = 2; +- P->leaf_length = 0; +- P->node_offset = 0; +- P->xof_length = 0; +- P->node_depth = 1; +- P->inner_length = BLAKE2B_OUTBYTES; +- memset( P->reserved, 0, sizeof( P->reserved ) ); +- memset( P->salt, 0, sizeof( P->salt ) ); +- memset( P->personal, 0, sizeof( P->personal ) ); +- return blake2b_init_param( S, P ); +-} +- +- +-int blake2bp_init( blake2bp_state *S, size_t outlen ) +-{ +- size_t i; +- if( !outlen || outlen > BLAKE2B_OUTBYTES ) return -1; +- +- memset( S->buf, 0, sizeof( S->buf ) ); +- S->buflen = 0; +- S->outlen = outlen; +- +- if( blake2bp_init_root( S->R, outlen, 0 ) < 0 ) +- return -1; +- +- for( i = 0; i < PARALLELISM_DEGREE; ++i ) +- if( blake2bp_init_leaf( S->S[i], outlen, 0, i ) < 0 ) return -1; +- +- S->R->last_node = 1; +- S->S[PARALLELISM_DEGREE - 1]->last_node = 1; +- return 0; +-} +- +-int blake2bp_init_key( blake2bp_state *S, size_t outlen, const void *key, size_t keylen ) +-{ +- size_t i; +- +- if( !outlen || outlen > BLAKE2B_OUTBYTES ) return -1; +- +- if( !key || !keylen || keylen > BLAKE2B_KEYBYTES ) return -1; +- +- memset( S->buf, 0, sizeof( S->buf ) ); +- S->buflen = 0; +- S->outlen = outlen; +- +- if( blake2bp_init_root( S->R, outlen, keylen ) < 0 ) +- return -1; +- +- for( i = 0; i < PARALLELISM_DEGREE; ++i ) +- if( blake2bp_init_leaf( S->S[i], outlen, keylen, i ) < 0 ) return -1; +- +- S->R->last_node = 1; +- S->S[PARALLELISM_DEGREE - 1]->last_node = 1; +- { +- uint8_t block[BLAKE2B_BLOCKBYTES]; +- memset( block, 0, BLAKE2B_BLOCKBYTES ); +- memcpy( block, key, keylen ); +- +- for( i = 0; i < PARALLELISM_DEGREE; ++i ) +- blake2b_update( S->S[i], block, BLAKE2B_BLOCKBYTES ); +- +- secure_zero_memory( block, BLAKE2B_BLOCKBYTES ); /* Burn the key from stack */ +- } +- return 0; +-} +- +- +-int blake2bp_update( blake2bp_state *S, const void *pin, size_t inlen ) +-{ +- const unsigned char * in = (const unsigned char *)pin; +- size_t left = S->buflen; +- size_t fill = sizeof( S->buf ) - left; +- size_t i; +- +- if( left && inlen >= fill ) +- { +- memcpy( S->buf + left, in, fill ); +- +- for( i = 0; i < PARALLELISM_DEGREE; ++i ) +- blake2b_update( S->S[i], S->buf + i * BLAKE2B_BLOCKBYTES, BLAKE2B_BLOCKBYTES ); +- +- in += fill; +- inlen -= fill; +- left = 0; +- } +- +-#if defined(_OPENMP) +- #pragma omp parallel shared(S), num_threads(PARALLELISM_DEGREE) +-#else +- +- for( i = 0; i < PARALLELISM_DEGREE; ++i ) +-#endif +- { +-#if defined(_OPENMP) +- size_t i = omp_get_thread_num(); +-#endif +- size_t inlen__ = inlen; +- const unsigned char *in__ = ( const unsigned char * )in; +- in__ += i * BLAKE2B_BLOCKBYTES; +- +- while( inlen__ >= PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES ) +- { +- blake2b_update( S->S[i], in__, BLAKE2B_BLOCKBYTES ); +- in__ += PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES; +- inlen__ -= PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES; +- } +- } +- +- in += inlen - inlen % ( PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES ); +- inlen %= PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES; +- +- if( inlen > 0 ) +- memcpy( S->buf + left, in, inlen ); +- +- S->buflen = left + inlen; +- return 0; +-} +- +- +- +-int blake2bp_final( blake2bp_state *S, void *out, size_t outlen ) +-{ +- uint8_t hash[PARALLELISM_DEGREE][BLAKE2B_OUTBYTES]; +- size_t i; +- +- if(out == NULL || outlen < S->outlen) { +- return -1; +- } +- +- for( i = 0; i < PARALLELISM_DEGREE; ++i ) +- { +- if( S->buflen > i * BLAKE2B_BLOCKBYTES ) +- { +- size_t left = S->buflen - i * BLAKE2B_BLOCKBYTES; +- +- if( left > BLAKE2B_BLOCKBYTES ) left = BLAKE2B_BLOCKBYTES; +- +- blake2b_update( S->S[i], S->buf + i * BLAKE2B_BLOCKBYTES, left ); +- } +- +- blake2b_final( S->S[i], hash[i], BLAKE2B_OUTBYTES ); +- } +- +- for( i = 0; i < PARALLELISM_DEGREE; ++i ) +- blake2b_update( S->R, hash[i], BLAKE2B_OUTBYTES ); +- +- return blake2b_final( S->R, out, S->outlen ); +-} +- +-int blake2bp( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen ) +-{ +- uint8_t hash[PARALLELISM_DEGREE][BLAKE2B_OUTBYTES]; +- blake2b_state S[PARALLELISM_DEGREE][1]; +- blake2b_state FS[1]; +- size_t i; +- +- /* Verify parameters */ +- if ( NULL == in && inlen > 0 ) return -1; +- +- if ( NULL == out ) return -1; +- +- if( NULL == key && keylen > 0 ) return -1; +- +- if( !outlen || outlen > BLAKE2B_OUTBYTES ) return -1; +- +- if( keylen > BLAKE2B_KEYBYTES ) return -1; +- +- for( i = 0; i < PARALLELISM_DEGREE; ++i ) +- if( blake2bp_init_leaf( S[i], outlen, keylen, i ) < 0 ) return -1; +- +- S[PARALLELISM_DEGREE - 1]->last_node = 1; /* mark last node */ +- +- if( keylen > 0 ) +- { +- uint8_t block[BLAKE2B_BLOCKBYTES]; +- memset( block, 0, BLAKE2B_BLOCKBYTES ); +- memcpy( block, key, keylen ); +- +- for( i = 0; i < PARALLELISM_DEGREE; ++i ) +- blake2b_update( S[i], block, BLAKE2B_BLOCKBYTES ); +- +- secure_zero_memory( block, BLAKE2B_BLOCKBYTES ); /* Burn the key from stack */ +- } +- +-#if defined(_OPENMP) +- #pragma omp parallel shared(S,hash), num_threads(PARALLELISM_DEGREE) +-#else +- +- for( i = 0; i < PARALLELISM_DEGREE; ++i ) +-#endif +- { +-#if defined(_OPENMP) +- size_t i = omp_get_thread_num(); +-#endif +- size_t inlen__ = inlen; +- const unsigned char *in__ = ( const unsigned char * )in; +- in__ += i * BLAKE2B_BLOCKBYTES; +- +- while( inlen__ >= PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES ) +- { +- blake2b_update( S[i], in__, BLAKE2B_BLOCKBYTES ); +- in__ += PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES; +- inlen__ -= PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES; +- } +- +- if( inlen__ > i * BLAKE2B_BLOCKBYTES ) +- { +- const size_t left = inlen__ - i * BLAKE2B_BLOCKBYTES; +- const size_t len = left <= BLAKE2B_BLOCKBYTES ? left : BLAKE2B_BLOCKBYTES; +- blake2b_update( S[i], in__, len ); +- } +- +- blake2b_final( S[i], hash[i], BLAKE2B_OUTBYTES ); +- } +- +- if( blake2bp_init_root( FS, outlen, keylen ) < 0 ) +- return -1; +- +- FS->last_node = 1; /* Mark as last node */ +- +- for( i = 0; i < PARALLELISM_DEGREE; ++i ) +- blake2b_update( FS, hash[i], BLAKE2B_OUTBYTES ); +- +- return blake2b_final( FS, out, outlen ); +-} +- +- +-#if defined(BLAKE2BP_SELFTEST) +-#include <string.h> +-#include "blake2-kat.h" +-int main( void ) +-{ +- uint8_t key[BLAKE2B_KEYBYTES]; +- uint8_t buf[BLAKE2_KAT_LENGTH]; +- size_t i, step; +- +- for( i = 0; i < BLAKE2B_KEYBYTES; ++i ) +- key[i] = ( uint8_t )i; +- +- for( i = 0; i < BLAKE2_KAT_LENGTH; ++i ) +- buf[i] = ( uint8_t )i; +- +- /* Test simple API */ +- for( i = 0; i < BLAKE2_KAT_LENGTH; ++i ) +- { +- uint8_t hash[BLAKE2B_OUTBYTES]; +- blake2bp( hash, BLAKE2B_OUTBYTES, buf, i, key, BLAKE2B_KEYBYTES ); +- +- if( 0 != memcmp( hash, blake2bp_keyed_kat[i], BLAKE2B_OUTBYTES ) ) +- { +- goto fail; +- } +- } +- +- /* Test streaming API */ +- for(step = 1; step < BLAKE2B_BLOCKBYTES; ++step) { +- for (i = 0; i < BLAKE2_KAT_LENGTH; ++i) { +- uint8_t hash[BLAKE2B_OUTBYTES]; +- blake2bp_state S; +- uint8_t * p = buf; +- size_t mlen = i; +- int err = 0; +- +- if( (err = blake2bp_init_key(&S, BLAKE2B_OUTBYTES, key, BLAKE2B_KEYBYTES)) < 0 ) { +- goto fail; +- } +- +- while (mlen >= step) { +- if ( (err = blake2bp_update(&S, p, step)) < 0 ) { +- goto fail; +- } +- mlen -= step; +- p += step; +- } +- if ( (err = blake2bp_update(&S, p, mlen)) < 0) { +- goto fail; +- } +- if ( (err = blake2bp_final(&S, hash, BLAKE2B_OUTBYTES)) < 0) { +- goto fail; +- } +- +- if (0 != memcmp(hash, blake2bp_keyed_kat[i], BLAKE2B_OUTBYTES)) { +- goto fail; +- } +- } +- } +- +- puts( "ok" ); +- return 0; +-fail: +- puts("error"); +- return -1; +-} +-#endif +--- thirdparty/blake2/blake2s-load-sse2.h.orig 2018-03-16 17:25:33 UTC ++++ thirdparty/blake2/blake2s-load-sse2.h +@@ -1,60 +0,0 @@ +-/* +- BLAKE2 reference source code package - optimized C implementations +- +- Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the +- terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at +- your option. The terms of these licenses can be found at: +- +- - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 +- - OpenSSL license : https://www.openssl.org/source/license.html +- - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 +- +- More information about the BLAKE2 hash function can be found at +- https://blake2.net. +-*/ +-#ifndef BLAKE2S_LOAD_SSE2_H +-#define BLAKE2S_LOAD_SSE2_H +- +-#define LOAD_MSG_0_1(buf) buf = _mm_set_epi32(m6,m4,m2,m0) +-#define LOAD_MSG_0_2(buf) buf = _mm_set_epi32(m7,m5,m3,m1) +-#define LOAD_MSG_0_3(buf) buf = _mm_set_epi32(m14,m12,m10,m8) +-#define LOAD_MSG_0_4(buf) buf = _mm_set_epi32(m15,m13,m11,m9) +-#define LOAD_MSG_1_1(buf) buf = _mm_set_epi32(m13,m9,m4,m14) +-#define LOAD_MSG_1_2(buf) buf = _mm_set_epi32(m6,m15,m8,m10) +-#define LOAD_MSG_1_3(buf) buf = _mm_set_epi32(m5,m11,m0,m1) +-#define LOAD_MSG_1_4(buf) buf = _mm_set_epi32(m3,m7,m2,m12) +-#define LOAD_MSG_2_1(buf) buf = _mm_set_epi32(m15,m5,m12,m11) +-#define LOAD_MSG_2_2(buf) buf = _mm_set_epi32(m13,m2,m0,m8) +-#define LOAD_MSG_2_3(buf) buf = _mm_set_epi32(m9,m7,m3,m10) +-#define LOAD_MSG_2_4(buf) buf = _mm_set_epi32(m4,m1,m6,m14) +-#define LOAD_MSG_3_1(buf) buf = _mm_set_epi32(m11,m13,m3,m7) +-#define LOAD_MSG_3_2(buf) buf = _mm_set_epi32(m14,m12,m1,m9) +-#define LOAD_MSG_3_3(buf) buf = _mm_set_epi32(m15,m4,m5,m2) +-#define LOAD_MSG_3_4(buf) buf = _mm_set_epi32(m8,m0,m10,m6) +-#define LOAD_MSG_4_1(buf) buf = _mm_set_epi32(m10,m2,m5,m9) +-#define LOAD_MSG_4_2(buf) buf = _mm_set_epi32(m15,m4,m7,m0) +-#define LOAD_MSG_4_3(buf) buf = _mm_set_epi32(m3,m6,m11,m14) +-#define LOAD_MSG_4_4(buf) buf = _mm_set_epi32(m13,m8,m12,m1) +-#define LOAD_MSG_5_1(buf) buf = _mm_set_epi32(m8,m0,m6,m2) +-#define LOAD_MSG_5_2(buf) buf = _mm_set_epi32(m3,m11,m10,m12) +-#define LOAD_MSG_5_3(buf) buf = _mm_set_epi32(m1,m15,m7,m4) +-#define LOAD_MSG_5_4(buf) buf = _mm_set_epi32(m9,m14,m5,m13) +-#define LOAD_MSG_6_1(buf) buf = _mm_set_epi32(m4,m14,m1,m12) +-#define LOAD_MSG_6_2(buf) buf = _mm_set_epi32(m10,m13,m15,m5) +-#define LOAD_MSG_6_3(buf) buf = _mm_set_epi32(m8,m9,m6,m0) +-#define LOAD_MSG_6_4(buf) buf = _mm_set_epi32(m11,m2,m3,m7) +-#define LOAD_MSG_7_1(buf) buf = _mm_set_epi32(m3,m12,m7,m13) +-#define LOAD_MSG_7_2(buf) buf = _mm_set_epi32(m9,m1,m14,m11) +-#define LOAD_MSG_7_3(buf) buf = _mm_set_epi32(m2,m8,m15,m5) +-#define LOAD_MSG_7_4(buf) buf = _mm_set_epi32(m10,m6,m4,m0) +-#define LOAD_MSG_8_1(buf) buf = _mm_set_epi32(m0,m11,m14,m6) +-#define LOAD_MSG_8_2(buf) buf = _mm_set_epi32(m8,m3,m9,m15) +-#define LOAD_MSG_8_3(buf) buf = _mm_set_epi32(m10,m1,m13,m12) +-#define LOAD_MSG_8_4(buf) buf = _mm_set_epi32(m5,m4,m7,m2) +-#define LOAD_MSG_9_1(buf) buf = _mm_set_epi32(m1,m7,m8,m10) +-#define LOAD_MSG_9_2(buf) buf = _mm_set_epi32(m5,m6,m4,m2) +-#define LOAD_MSG_9_3(buf) buf = _mm_set_epi32(m13,m3,m9,m15) +-#define LOAD_MSG_9_4(buf) buf = _mm_set_epi32(m0,m12,m14,m11) +- +- +-#endif +--- thirdparty/blake2/blake2s-load-sse41.h.orig 2018-03-16 17:25:33 UTC ++++ thirdparty/blake2/blake2s-load-sse41.h +@@ -1,229 +0,0 @@ +-/* +- BLAKE2 reference source code package - optimized C implementations +- +- Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the +- terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at +- your option. The terms of these licenses can be found at: +- +- - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 +- - OpenSSL license : https://www.openssl.org/source/license.html +- - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 +- +- More information about the BLAKE2 hash function can be found at +- https://blake2.net. +-*/ +-#ifndef BLAKE2S_LOAD_SSE41_H +-#define BLAKE2S_LOAD_SSE41_H +- +-#define LOAD_MSG_0_1(buf) \ +-buf = TOI(_mm_shuffle_ps(TOF(m0), TOF(m1), _MM_SHUFFLE(2,0,2,0))); +- +-#define LOAD_MSG_0_2(buf) \ +-buf = TOI(_mm_shuffle_ps(TOF(m0), TOF(m1), _MM_SHUFFLE(3,1,3,1))); +- +-#define LOAD_MSG_0_3(buf) \ +-buf = TOI(_mm_shuffle_ps(TOF(m2), TOF(m3), _MM_SHUFFLE(2,0,2,0))); +- +-#define LOAD_MSG_0_4(buf) \ +-buf = TOI(_mm_shuffle_ps(TOF(m2), TOF(m3), _MM_SHUFFLE(3,1,3,1))); +- +-#define LOAD_MSG_1_1(buf) \ +-t0 = _mm_blend_epi16(m1, m2, 0x0C); \ +-t1 = _mm_slli_si128(m3, 4); \ +-t2 = _mm_blend_epi16(t0, t1, 0xF0); \ +-buf = _mm_shuffle_epi32(t2, _MM_SHUFFLE(2,1,0,3)); +- +-#define LOAD_MSG_1_2(buf) \ +-t0 = _mm_shuffle_epi32(m2,_MM_SHUFFLE(0,0,2,0)); \ +-t1 = _mm_blend_epi16(m1,m3,0xC0); \ +-t2 = _mm_blend_epi16(t0, t1, 0xF0); \ +-buf = _mm_shuffle_epi32(t2, _MM_SHUFFLE(2,3,0,1)); +- +-#define LOAD_MSG_1_3(buf) \ +-t0 = _mm_slli_si128(m1, 4); \ +-t1 = _mm_blend_epi16(m2, t0, 0x30); \ +-t2 = _mm_blend_epi16(m0, t1, 0xF0); \ +-buf = _mm_shuffle_epi32(t2, _MM_SHUFFLE(2,3,0,1)); +- +-#define LOAD_MSG_1_4(buf) \ +-t0 = _mm_unpackhi_epi32(m0,m1); \ +-t1 = _mm_slli_si128(m3, 4); \ +-t2 = _mm_blend_epi16(t0, t1, 0x0C); \ +-buf = _mm_shuffle_epi32(t2, _MM_SHUFFLE(2,3,0,1)); +- +-#define LOAD_MSG_2_1(buf) \ +-t0 = _mm_unpackhi_epi32(m2,m3); \ +-t1 = _mm_blend_epi16(m3,m1,0x0C); \ +-t2 = _mm_blend_epi16(t0, t1, 0x0F); \ +-buf = _mm_shuffle_epi32(t2, _MM_SHUFFLE(3,1,0,2)); +- +-#define LOAD_MSG_2_2(buf) \ +-t0 = _mm_unpacklo_epi32(m2,m0); \ +-t1 = _mm_blend_epi16(t0, m0, 0xF0); \ +-t2 = _mm_slli_si128(m3, 8); \ +-buf = _mm_blend_epi16(t1, t2, 0xC0); +- +-#define LOAD_MSG_2_3(buf) \ +-t0 = _mm_blend_epi16(m0, m2, 0x3C); \ +-t1 = _mm_srli_si128(m1, 12); \ +-t2 = _mm_blend_epi16(t0,t1,0x03); \ +-buf = _mm_shuffle_epi32(t2, _MM_SHUFFLE(1,0,3,2)); +- +-#define LOAD_MSG_2_4(buf) \ +-t0 = _mm_slli_si128(m3, 4); \ +-t1 = _mm_blend_epi16(m0, m1, 0x33); \ +-t2 = _mm_blend_epi16(t1, t0, 0xC0); \ +-buf = _mm_shuffle_epi32(t2, _MM_SHUFFLE(0,1,2,3)); +- +-#define LOAD_MSG_3_1(buf) \ +-t0 = _mm_unpackhi_epi32(m0,m1); \ +-t1 = _mm_unpackhi_epi32(t0, m2); \ +-t2 = _mm_blend_epi16(t1, m3, 0x0C); \ +-buf = _mm_shuffle_epi32(t2, _MM_SHUFFLE(3,1,0,2)); +- +-#define LOAD_MSG_3_2(buf) \ +-t0 = _mm_slli_si128(m2, 8); \ +-t1 = _mm_blend_epi16(m3,m0,0x0C); \ +-t2 = _mm_blend_epi16(t1, t0, 0xC0); \ +-buf = _mm_shuffle_epi32(t2, _MM_SHUFFLE(2,0,1,3)); +- +-#define LOAD_MSG_3_3(buf) \ +-t0 = _mm_blend_epi16(m0,m1,0x0F); \ +-t1 = _mm_blend_epi16(t0, m3, 0xC0); \ +-buf = _mm_shuffle_epi32(t1, _MM_SHUFFLE(3,0,1,2)); +- +-#define LOAD_MSG_3_4(buf) \ +-t0 = _mm_unpacklo_epi32(m0,m2); \ +-t1 = _mm_unpackhi_epi32(m1,m2); \ +-buf = _mm_unpacklo_epi64(t1,t0); +- +-#define LOAD_MSG_4_1(buf) \ +-t0 = _mm_unpacklo_epi64(m1,m2); \ +-t1 = _mm_unpackhi_epi64(m0,m2); \ +-t2 = _mm_blend_epi16(t0,t1,0x33); \ +-buf = _mm_shuffle_epi32(t2, _MM_SHUFFLE(2,0,1,3)); +- +-#define LOAD_MSG_4_2(buf) \ +-t0 = _mm_unpackhi_epi64(m1,m3); \ +-t1 = _mm_unpacklo_epi64(m0,m1); \ +-buf = _mm_blend_epi16(t0,t1,0x33); +- +-#define LOAD_MSG_4_3(buf) \ +-t0 = _mm_unpackhi_epi64(m3,m1); \ +-t1 = _mm_unpackhi_epi64(m2,m0); \ +-buf = _mm_blend_epi16(t1,t0,0x33); +- +-#define LOAD_MSG_4_4(buf) \ +-t0 = _mm_blend_epi16(m0,m2,0x03); \ +-t1 = _mm_slli_si128(t0, 8); \ +-t2 = _mm_blend_epi16(t1,m3,0x0F); \ +-buf = _mm_shuffle_epi32(t2, _MM_SHUFFLE(1,2,0,3)); +- +-#define LOAD_MSG_5_1(buf) \ +-t0 = _mm_unpackhi_epi32(m0,m1); \ +-t1 = _mm_unpacklo_epi32(m0,m2); \ +-buf = _mm_unpacklo_epi64(t0,t1); +- +-#define LOAD_MSG_5_2(buf) \ +-t0 = _mm_srli_si128(m2, 4); \ +-t1 = _mm_blend_epi16(m0,m3,0x03); \ +-buf = _mm_blend_epi16(t1,t0,0x3C); +- +-#define LOAD_MSG_5_3(buf) \ +-t0 = _mm_blend_epi16(m1,m0,0x0C); \ +-t1 = _mm_srli_si128(m3, 4); \ +-t2 = _mm_blend_epi16(t0,t1,0x30); \ +-buf = _mm_shuffle_epi32(t2, _MM_SHUFFLE(1,2,3,0)); +- +-#define LOAD_MSG_5_4(buf) \ +-t0 = _mm_unpacklo_epi64(m1,m2); \ +-t1= _mm_shuffle_epi32(m3, _MM_SHUFFLE(0,2,0,1)); \ +-buf = _mm_blend_epi16(t0,t1,0x33); +- +-#define LOAD_MSG_6_1(buf) \ +-t0 = _mm_slli_si128(m1, 12); \ +-t1 = _mm_blend_epi16(m0,m3,0x33); \ +-buf = _mm_blend_epi16(t1,t0,0xC0); +- +-#define LOAD_MSG_6_2(buf) \ +-t0 = _mm_blend_epi16(m3,m2,0x30); \ +-t1 = _mm_srli_si128(m1, 4); \ +-t2 = _mm_blend_epi16(t0,t1,0x03); \ +-buf = _mm_shuffle_epi32(t2, _MM_SHUFFLE(2,1,3,0)); +- +-#define LOAD_MSG_6_3(buf) \ +-t0 = _mm_unpacklo_epi64(m0,m2); \ +-t1 = _mm_srli_si128(m1, 4); \ +-buf = _mm_shuffle_epi32(_mm_blend_epi16(t0,t1,0x0C), _MM_SHUFFLE(2,3,1,0)); +- +-#define LOAD_MSG_6_4(buf) \ +-t0 = _mm_unpackhi_epi32(m1,m2); \ +-t1 = _mm_unpackhi_epi64(m0,t0); \ +-buf = _mm_shuffle_epi32(t1, _MM_SHUFFLE(3,0,1,2)); +- +-#define LOAD_MSG_7_1(buf) \ +-t0 = _mm_unpackhi_epi32(m0,m1); \ +-t1 = _mm_blend_epi16(t0,m3,0x0F); \ +-buf = _mm_shuffle_epi32(t1,_MM_SHUFFLE(2,0,3,1)); +- +-#define LOAD_MSG_7_2(buf) \ +-t0 = _mm_blend_epi16(m2,m3,0x30); \ +-t1 = _mm_srli_si128(m0,4); \ +-t2 = _mm_blend_epi16(t0,t1,0x03); \ +-buf = _mm_shuffle_epi32(t2, _MM_SHUFFLE(1,0,2,3)); +- +-#define LOAD_MSG_7_3(buf) \ +-t0 = _mm_unpackhi_epi64(m0,m3); \ +-t1 = _mm_unpacklo_epi64(m1,m2); \ +-t2 = _mm_blend_epi16(t0,t1,0x3C); \ +-buf = _mm_shuffle_epi32(t2,_MM_SHUFFLE(0,2,3,1)); +- +-#define LOAD_MSG_7_4(buf) \ +-t0 = _mm_unpacklo_epi32(m0,m1); \ +-t1 = _mm_unpackhi_epi32(m1,m2); \ +-buf = _mm_unpacklo_epi64(t0,t1); +- +-#define LOAD_MSG_8_1(buf) \ +-t0 = _mm_unpackhi_epi32(m1,m3); \ +-t1 = _mm_unpacklo_epi64(t0,m0); \ +-t2 = _mm_blend_epi16(t1,m2,0xC0); \ +-buf = _mm_shufflehi_epi16(t2,_MM_SHUFFLE(1,0,3,2)); +- +-#define LOAD_MSG_8_2(buf) \ +-t0 = _mm_unpackhi_epi32(m0,m3); \ +-t1 = _mm_blend_epi16(m2,t0,0xF0); \ +-buf = _mm_shuffle_epi32(t1,_MM_SHUFFLE(0,2,1,3)); +- +-#define LOAD_MSG_8_3(buf) \ +-t0 = _mm_blend_epi16(m2,m0,0x0C); \ +-t1 = _mm_slli_si128(t0,4); \ +-buf = _mm_blend_epi16(t1,m3,0x0F); +- +-#define LOAD_MSG_8_4(buf) \ +-t0 = _mm_blend_epi16(m1,m0,0x30); \ +-buf = _mm_shuffle_epi32(t0,_MM_SHUFFLE(1,0,3,2)); +- +-#define LOAD_MSG_9_1(buf) \ +-t0 = _mm_blend_epi16(m0,m2,0x03); \ +-t1 = _mm_blend_epi16(m1,m2,0x30); \ +-t2 = _mm_blend_epi16(t1,t0,0x0F); \ +-buf = _mm_shuffle_epi32(t2,_MM_SHUFFLE(1,3,0,2)); +- +-#define LOAD_MSG_9_2(buf) \ +-t0 = _mm_slli_si128(m0,4); \ +-t1 = _mm_blend_epi16(m1,t0,0xC0); \ +-buf = _mm_shuffle_epi32(t1,_MM_SHUFFLE(1,2,0,3)); +- +-#define LOAD_MSG_9_3(buf) \ +-t0 = _mm_unpackhi_epi32(m0,m3); \ +-t1 = _mm_unpacklo_epi32(m2,m3); \ +-t2 = _mm_unpackhi_epi64(t0,t1); \ +-buf = _mm_shuffle_epi32(t2,_MM_SHUFFLE(3,0,2,1)); +- +-#define LOAD_MSG_9_4(buf) \ +-t0 = _mm_blend_epi16(m3,m2,0xC0); \ +-t1 = _mm_unpacklo_epi32(m0,m3); \ +-t2 = _mm_blend_epi16(t0,t1,0x0F); \ +-buf = _mm_shuffle_epi32(t2,_MM_SHUFFLE(0,1,2,3)); +- +-#endif +--- thirdparty/blake2/blake2s-load-xop.h.orig 2018-03-16 17:25:33 UTC ++++ thirdparty/blake2/blake2s-load-xop.h +@@ -1,191 +0,0 @@ +-/* +- BLAKE2 reference source code package - optimized C implementations +- +- Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the +- terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at +- your option. The terms of these licenses can be found at: +- +- - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 +- - OpenSSL license : https://www.openssl.org/source/license.html +- - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 +- +- More information about the BLAKE2 hash function can be found at +- https://blake2.net. +-*/ +-#ifndef BLAKE2S_LOAD_XOP_H +-#define BLAKE2S_LOAD_XOP_H +- +-#define TOB(x) ((x)*4*0x01010101 + 0x03020100) /* ..or not TOB */ +- +-#if 0 +-/* Basic VPPERM emulation, for testing purposes */ +-static __m128i _mm_perm_epi8(const __m128i src1, const __m128i src2, const __m128i sel) +-{ +- const __m128i sixteen = _mm_set1_epi8(16); +- const __m128i t0 = _mm_shuffle_epi8(src1, sel); +- const __m128i s1 = _mm_shuffle_epi8(src2, _mm_sub_epi8(sel, sixteen)); +- const __m128i mask = _mm_or_si128(_mm_cmpeq_epi8(sel, sixteen), +- _mm_cmpgt_epi8(sel, sixteen)); /* (>=16) = 0xff : 00 */ +- return _mm_blendv_epi8(t0, s1, mask); +-} +-#endif +- +-#define LOAD_MSG_0_1(buf) \ +-buf = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(6),TOB(4),TOB(2),TOB(0)) ); +- +-#define LOAD_MSG_0_2(buf) \ +-buf = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(7),TOB(5),TOB(3),TOB(1)) ); +- +-#define LOAD_MSG_0_3(buf) \ +-buf = _mm_perm_epi8(m2, m3, _mm_set_epi32(TOB(6),TOB(4),TOB(2),TOB(0)) ); +- +-#define LOAD_MSG_0_4(buf) \ +-buf = _mm_perm_epi8(m2, m3, _mm_set_epi32(TOB(7),TOB(5),TOB(3),TOB(1)) ); +- +-#define LOAD_MSG_1_1(buf) \ +-t0 = _mm_perm_epi8(m1, m2, _mm_set_epi32(TOB(0),TOB(5),TOB(0),TOB(0)) ); \ +-buf = _mm_perm_epi8(t0, m3, _mm_set_epi32(TOB(5),TOB(2),TOB(1),TOB(6)) ); +- +-#define LOAD_MSG_1_2(buf) \ +-t1 = _mm_perm_epi8(m1, m2, _mm_set_epi32(TOB(2),TOB(0),TOB(4),TOB(6)) ); \ +-buf = _mm_perm_epi8(t1, m3, _mm_set_epi32(TOB(3),TOB(7),TOB(1),TOB(0)) ); +- +-#define LOAD_MSG_1_3(buf) \ +-t0 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(5),TOB(0),TOB(0),TOB(1)) ); \ +-buf = _mm_perm_epi8(t0, m2, _mm_set_epi32(TOB(3),TOB(7),TOB(1),TOB(0)) ); +- +-#define LOAD_MSG_1_4(buf) \ +-t1 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(3),TOB(7),TOB(2),TOB(0)) ); \ +-buf = _mm_perm_epi8(t1, m3, _mm_set_epi32(TOB(3),TOB(2),TOB(1),TOB(4)) ); +- +-#define LOAD_MSG_2_1(buf) \ +-t0 = _mm_perm_epi8(m1, m2, _mm_set_epi32(TOB(0),TOB(1),TOB(0),TOB(7)) ); \ +-buf = _mm_perm_epi8(t0, m3, _mm_set_epi32(TOB(7),TOB(2),TOB(4),TOB(0)) ); +- +-#define LOAD_MSG_2_2(buf) \ +-t1 = _mm_perm_epi8(m0, m2, _mm_set_epi32(TOB(0),TOB(2),TOB(0),TOB(4)) ); \ +-buf = _mm_perm_epi8(t1, m3, _mm_set_epi32(TOB(5),TOB(2),TOB(1),TOB(0)) ); +- +-#define LOAD_MSG_2_3(buf) \ +-t0 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(0),TOB(7),TOB(3),TOB(0)) ); \ +-buf = _mm_perm_epi8(t0, m2, _mm_set_epi32(TOB(5),TOB(2),TOB(1),TOB(6)) ); +- +-#define LOAD_MSG_2_4(buf) \ +-t1 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(4),TOB(1),TOB(6),TOB(0)) ); \ +-buf = _mm_perm_epi8(t1, m3, _mm_set_epi32(TOB(3),TOB(2),TOB(1),TOB(6)) ); +- +-#define LOAD_MSG_3_1(buf) \ +-t0 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(0),TOB(0),TOB(3),TOB(7)) ); \ +-t0 = _mm_perm_epi8(t0, m2, _mm_set_epi32(TOB(7),TOB(2),TOB(1),TOB(0)) ); \ +-buf = _mm_perm_epi8(t0, m3, _mm_set_epi32(TOB(3),TOB(5),TOB(1),TOB(0)) ); +- +-#define LOAD_MSG_3_2(buf) \ +-t1 = _mm_perm_epi8(m0, m2, _mm_set_epi32(TOB(0),TOB(0),TOB(1),TOB(5)) ); \ +-buf = _mm_perm_epi8(t1, m3, _mm_set_epi32(TOB(6),TOB(4),TOB(1),TOB(0)) ); +- +-#define LOAD_MSG_3_3(buf) \ +-t0 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(0),TOB(4),TOB(5),TOB(2)) ); \ +-buf = _mm_perm_epi8(t0, m3, _mm_set_epi32(TOB(7),TOB(2),TOB(1),TOB(0)) ); +- +-#define LOAD_MSG_3_4(buf) \ +-t1 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(0),TOB(0),TOB(0),TOB(6)) ); \ +-buf = _mm_perm_epi8(t1, m2, _mm_set_epi32(TOB(4),TOB(2),TOB(6),TOB(0)) ); +- +-#define LOAD_MSG_4_1(buf) \ +-t0 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(0),TOB(2),TOB(5),TOB(0)) ); \ +-buf = _mm_perm_epi8(t0, m2, _mm_set_epi32(TOB(6),TOB(2),TOB(1),TOB(5)) ); +- +-#define LOAD_MSG_4_2(buf) \ +-t1 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(0),TOB(4),TOB(7),TOB(0)) ); \ +-buf = _mm_perm_epi8(t1, m3, _mm_set_epi32(TOB(7),TOB(2),TOB(1),TOB(0)) ); +- +-#define LOAD_MSG_4_3(buf) \ +-t0 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(3),TOB(6),TOB(0),TOB(0)) ); \ +-t0 = _mm_perm_epi8(t0, m2, _mm_set_epi32(TOB(3),TOB(2),TOB(7),TOB(0)) ); \ +-buf = _mm_perm_epi8(t0, m3, _mm_set_epi32(TOB(3),TOB(2),TOB(1),TOB(6)) ); +- +-#define LOAD_MSG_4_4(buf) \ +-t1 = _mm_perm_epi8(m0, m2, _mm_set_epi32(TOB(0),TOB(4),TOB(0),TOB(1)) ); \ +-buf = _mm_perm_epi8(t1, m3, _mm_set_epi32(TOB(5),TOB(2),TOB(4),TOB(0)) ); +- +-#define LOAD_MSG_5_1(buf) \ +-t0 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(0),TOB(0),TOB(6),TOB(2)) ); \ +-buf = _mm_perm_epi8(t0, m2, _mm_set_epi32(TOB(4),TOB(2),TOB(1),TOB(0)) ); +- +-#define LOAD_MSG_5_2(buf) \ +-t1 = _mm_perm_epi8(m0, m2, _mm_set_epi32(TOB(3),TOB(7),TOB(6),TOB(0)) ); \ +-buf = _mm_perm_epi8(t1, m3, _mm_set_epi32(TOB(3),TOB(2),TOB(1),TOB(4)) ); +- +-#define LOAD_MSG_5_3(buf) \ +-t0 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(1),TOB(0),TOB(7),TOB(4)) ); \ +-buf = _mm_perm_epi8(t0, m3, _mm_set_epi32(TOB(3),TOB(7),TOB(1),TOB(0)) ); +- +-#define LOAD_MSG_5_4(buf) \ +-t1 = _mm_perm_epi8(m1, m2, _mm_set_epi32(TOB(5),TOB(0),TOB(1),TOB(0)) ); \ +-buf = _mm_perm_epi8(t1, m3, _mm_set_epi32(TOB(3),TOB(6),TOB(1),TOB(5)) ); +- +-#define LOAD_MSG_6_1(buf) \ +-t0 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(4),TOB(0),TOB(1),TOB(0)) ); \ +-buf = _mm_perm_epi8(t0, m3, _mm_set_epi32(TOB(3),TOB(6),TOB(1),TOB(4)) ); +- +-#define LOAD_MSG_6_2(buf) \ +-t1 = _mm_perm_epi8(m1, m2, _mm_set_epi32(TOB(6),TOB(0),TOB(0),TOB(1)) ); \ +-buf = _mm_perm_epi8(t1, m3, _mm_set_epi32(TOB(3),TOB(5),TOB(7),TOB(0)) ); +- +-#define LOAD_MSG_6_3(buf) \ +-t0 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(0),TOB(0),TOB(6),TOB(0)) ); \ +-buf = _mm_perm_epi8(t0, m2, _mm_set_epi32(TOB(4),TOB(5),TOB(1),TOB(0)) ); +- +-#define LOAD_MSG_6_4(buf) \ +-t1 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(0),TOB(2),TOB(3),TOB(7)) ); \ +-buf = _mm_perm_epi8(t1, m2, _mm_set_epi32(TOB(7),TOB(2),TOB(1),TOB(0)) ); +- +-#define LOAD_MSG_7_1(buf) \ +-t0 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(3),TOB(0),TOB(7),TOB(0)) ); \ +-buf = _mm_perm_epi8(t0, m3, _mm_set_epi32(TOB(3),TOB(4),TOB(1),TOB(5)) ); +- +-#define LOAD_MSG_7_2(buf) \ +-t1 = _mm_perm_epi8(m0, m2, _mm_set_epi32(TOB(5),TOB(1),TOB(0),TOB(7)) ); \ +-buf = _mm_perm_epi8(t1, m3, _mm_set_epi32(TOB(3),TOB(2),TOB(6),TOB(0)) ); +- +-#define LOAD_MSG_7_3(buf) \ +-t0 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(2),TOB(0),TOB(0),TOB(5)) ); \ +-t0 = _mm_perm_epi8(t0, m2, _mm_set_epi32(TOB(3),TOB(4),TOB(1),TOB(0)) ); \ +-buf = _mm_perm_epi8(t0, m3, _mm_set_epi32(TOB(3),TOB(2),TOB(7),TOB(0)) ); +- +-#define LOAD_MSG_7_4(buf) \ +-t1 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(0),TOB(6),TOB(4),TOB(0)) ); \ +-buf = _mm_perm_epi8(t1, m2, _mm_set_epi32(TOB(6),TOB(2),TOB(1),TOB(0)) ); +- +-#define LOAD_MSG_8_1(buf) \ +-t0 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(0),TOB(0),TOB(0),TOB(6)) ); \ +-t0 = _mm_perm_epi8(t0, m2, _mm_set_epi32(TOB(3),TOB(7),TOB(1),TOB(0)) ); \ +-buf = _mm_perm_epi8(t0, m3, _mm_set_epi32(TOB(3),TOB(2),TOB(6),TOB(0)) ); +- +-#define LOAD_MSG_8_2(buf) \ +-t1 = _mm_perm_epi8(m0, m2, _mm_set_epi32(TOB(4),TOB(3),TOB(5),TOB(0)) ); \ +-buf = _mm_perm_epi8(t1, m3, _mm_set_epi32(TOB(3),TOB(2),TOB(1),TOB(7)) ); +- +-#define LOAD_MSG_8_3(buf) \ +-t0 = _mm_perm_epi8(m0, m2, _mm_set_epi32(TOB(6),TOB(1),TOB(0),TOB(0)) ); \ +-buf = _mm_perm_epi8(t0, m3, _mm_set_epi32(TOB(3),TOB(2),TOB(5),TOB(4)) ); \ +- +-#define LOAD_MSG_8_4(buf) \ +-buf = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(5),TOB(4),TOB(7),TOB(2)) ); +- +-#define LOAD_MSG_9_1(buf) \ +-t0 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(1),TOB(7),TOB(0),TOB(0)) ); \ +-buf = _mm_perm_epi8(t0, m2, _mm_set_epi32(TOB(3),TOB(2),TOB(4),TOB(6)) ); +- +-#define LOAD_MSG_9_2(buf) \ +-buf = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(5),TOB(6),TOB(4),TOB(2)) ); +- +-#define LOAD_MSG_9_3(buf) \ +-t0 = _mm_perm_epi8(m0, m2, _mm_set_epi32(TOB(0),TOB(3),TOB(5),TOB(0)) ); \ +-buf = _mm_perm_epi8(t0, m3, _mm_set_epi32(TOB(5),TOB(2),TOB(1),TOB(7)) ); +- +-#define LOAD_MSG_9_4(buf) \ +-t1 = _mm_perm_epi8(m0, m2, _mm_set_epi32(TOB(0),TOB(0),TOB(0),TOB(7)) ); \ +-buf = _mm_perm_epi8(t1, m3, _mm_set_epi32(TOB(3),TOB(4),TOB(6),TOB(0)) ); +- +-#endif +--- thirdparty/blake2/blake2s-round.h.orig 2018-03-16 17:25:33 UTC ++++ thirdparty/blake2/blake2s-round.h +@@ -1,88 +0,0 @@ +-/* +- BLAKE2 reference source code package - optimized C implementations +- +- Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the +- terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at +- your option. The terms of these licenses can be found at: +- +- - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 +- - OpenSSL license : https://www.openssl.org/source/license.html +- - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 +- +- More information about the BLAKE2 hash function can be found at +- https://blake2.net. +-*/ +-#ifndef BLAKE2S_ROUND_H +-#define BLAKE2S_ROUND_H +- +-#define LOADU(p) _mm_loadu_si128( (const __m128i *)(p) ) +-#define STOREU(p,r) _mm_storeu_si128((__m128i *)(p), r) +- +-#define TOF(reg) _mm_castsi128_ps((reg)) +-#define TOI(reg) _mm_castps_si128((reg)) +- +-#define LIKELY(x) __builtin_expect((x),1) +- +- +-/* Microarchitecture-specific macros */ +-#ifndef HAVE_XOP +-#ifdef HAVE_SSSE3 +-#define _mm_roti_epi32(r, c) ( \ +- (8==-(c)) ? _mm_shuffle_epi8(r,r8) \ +- : (16==-(c)) ? _mm_shuffle_epi8(r,r16) \ +- : _mm_xor_si128(_mm_srli_epi32( (r), -(c) ),_mm_slli_epi32( (r), 32-(-(c)) )) ) +-#else +-#define _mm_roti_epi32(r, c) _mm_xor_si128(_mm_srli_epi32( (r), -(c) ),_mm_slli_epi32( (r), 32-(-(c)) )) +-#endif +-#else +-/* ... */ +-#endif +- +- +-#define G1(row1,row2,row3,row4,buf) \ +- row1 = _mm_add_epi32( _mm_add_epi32( row1, buf), row2 ); \ +- row4 = _mm_xor_si128( row4, row1 ); \ +- row4 = _mm_roti_epi32(row4, -16); \ +- row3 = _mm_add_epi32( row3, row4 ); \ +- row2 = _mm_xor_si128( row2, row3 ); \ +- row2 = _mm_roti_epi32(row2, -12); +- +-#define G2(row1,row2,row3,row4,buf) \ +- row1 = _mm_add_epi32( _mm_add_epi32( row1, buf), row2 ); \ +- row4 = _mm_xor_si128( row4, row1 ); \ +- row4 = _mm_roti_epi32(row4, -8); \ +- row3 = _mm_add_epi32( row3, row4 ); \ +- row2 = _mm_xor_si128( row2, row3 ); \ +- row2 = _mm_roti_epi32(row2, -7); +- +-#define DIAGONALIZE(row1,row2,row3,row4) \ +- row4 = _mm_shuffle_epi32( row4, _MM_SHUFFLE(2,1,0,3) ); \ +- row3 = _mm_shuffle_epi32( row3, _MM_SHUFFLE(1,0,3,2) ); \ +- row2 = _mm_shuffle_epi32( row2, _MM_SHUFFLE(0,3,2,1) ); +- +-#define UNDIAGONALIZE(row1,row2,row3,row4) \ +- row4 = _mm_shuffle_epi32( row4, _MM_SHUFFLE(0,3,2,1) ); \ +- row3 = _mm_shuffle_epi32( row3, _MM_SHUFFLE(1,0,3,2) ); \ +- row2 = _mm_shuffle_epi32( row2, _MM_SHUFFLE(2,1,0,3) ); +- +-#if defined(HAVE_XOP) +-#include "blake2s-load-xop.h" +-#elif defined(HAVE_SSE41) +-#include "blake2s-load-sse41.h" +-#else +-#include "blake2s-load-sse2.h" +-#endif +- +-#define ROUND(r) \ +- LOAD_MSG_ ##r ##_1(buf1); \ +- G1(row1,row2,row3,row4,buf1); \ +- LOAD_MSG_ ##r ##_2(buf2); \ +- G2(row1,row2,row3,row4,buf2); \ +- DIAGONALIZE(row1,row2,row3,row4); \ +- LOAD_MSG_ ##r ##_3(buf3); \ +- G1(row1,row2,row3,row4,buf3); \ +- LOAD_MSG_ ##r ##_4(buf4); \ +- G2(row1,row2,row3,row4,buf4); \ +- UNDIAGONALIZE(row1,row2,row3,row4); \ +- +-#endif +--- thirdparty/blake2/blake2s.c.orig 2018-03-16 17:25:33 UTC ++++ thirdparty/blake2/blake2s.c +@@ -1,363 +0,0 @@ +-/* +- BLAKE2 reference source code package - optimized C implementations +- +- Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the +- terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at +- your option. The terms of these licenses can be found at: +- +- - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 +- - OpenSSL license : https://www.openssl.org/source/license.html +- - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 +- +- More information about the BLAKE2 hash function can be found at +- https://blake2.net. +-*/ +- +-#include <stdint.h> +-#include <string.h> +-#include <stdio.h> +- +-#include "blake2.h" +-#include "blake2-impl.h" +- +-#include "blake2-config.h" +- +- +-#include <emmintrin.h> +-#if defined(HAVE_SSSE3) +-#include <tmmintrin.h> +-#endif +-#if defined(HAVE_SSE41) +-#include <smmintrin.h> +-#endif +-#if defined(HAVE_AVX) +-#include <immintrin.h> +-#endif +-#if defined(HAVE_XOP) +-#include <x86intrin.h> +-#endif +- +-#include "blake2s-round.h" +- +-static const uint32_t blake2s_IV[8] = +-{ +- 0x6A09E667UL, 0xBB67AE85UL, 0x3C6EF372UL, 0xA54FF53AUL, +- 0x510E527FUL, 0x9B05688CUL, 0x1F83D9ABUL, 0x5BE0CD19UL +-}; +- +-/* Some helper functions */ +-static void blake2s_set_lastnode( blake2s_state *S ) +-{ +- S->f[1] = (uint32_t)-1; +-} +- +-static int blake2s_is_lastblock( const blake2s_state *S ) +-{ +- return S->f[0] != 0; +-} +- +-static void blake2s_set_lastblock( blake2s_state *S ) +-{ +- if( S->last_node ) blake2s_set_lastnode( S ); +- +- S->f[0] = (uint32_t)-1; +-} +- +-static void blake2s_increment_counter( blake2s_state *S, const uint32_t inc ) +-{ +- uint64_t t = ( ( uint64_t )S->t[1] << 32 ) | S->t[0]; +- t += inc; +- S->t[0] = ( uint32_t )( t >> 0 ); +- S->t[1] = ( uint32_t )( t >> 32 ); +-} +- +-/* init2 xors IV with input parameter block */ +-int blake2s_init_param( blake2s_state *S, const blake2s_param *P ) +-{ +- size_t i; +- /*blake2s_init0( S ); */ +- const uint8_t * v = ( const uint8_t * )( blake2s_IV ); +- const uint8_t * p = ( const uint8_t * )( P ); +- uint8_t * h = ( uint8_t * )( S->h ); +- /* IV XOR ParamBlock */ +- memset( S, 0, sizeof( blake2s_state ) ); +- +- for( i = 0; i < BLAKE2S_OUTBYTES; ++i ) h[i] = v[i] ^ p[i]; +- +- S->outlen = P->digest_length; +- return 0; +-} +- +- +-/* Some sort of default parameter block initialization, for sequential blake2s */ +-int blake2s_init( blake2s_state *S, size_t outlen ) +-{ +- blake2s_param P[1]; +- +- /* Move interval verification here? */ +- if ( ( !outlen ) || ( outlen > BLAKE2S_OUTBYTES ) ) return -1; +- +- P->digest_length = (uint8_t)outlen; +- P->key_length = 0; +- P->fanout = 1; +- P->depth = 1; +- store32( &P->leaf_length, 0 ); +- store32( &P->node_offset, 0 ); +- store16( &P->xof_length, 0 ); +- P->node_depth = 0; +- P->inner_length = 0; +- /* memset(P->reserved, 0, sizeof(P->reserved) ); */ +- memset( P->salt, 0, sizeof( P->salt ) ); +- memset( P->personal, 0, sizeof( P->personal ) ); +- +- return blake2s_init_param( S, P ); +-} +- +- +-int blake2s_init_key( blake2s_state *S, size_t outlen, const void *key, size_t keylen ) +-{ +- blake2s_param P[1]; +- +- /* Move interval verification here? */ +- if ( ( !outlen ) || ( outlen > BLAKE2S_OUTBYTES ) ) return -1; +- +- if ( ( !key ) || ( !keylen ) || keylen > BLAKE2S_KEYBYTES ) return -1; +- +- P->digest_length = (uint8_t)outlen; +- P->key_length = (uint8_t)keylen; +- P->fanout = 1; +- P->depth = 1; +- store32( &P->leaf_length, 0 ); +- store32( &P->node_offset, 0 ); +- store16( &P->xof_length, 0 ); +- P->node_depth = 0; +- P->inner_length = 0; +- /* memset(P->reserved, 0, sizeof(P->reserved) ); */ +- memset( P->salt, 0, sizeof( P->salt ) ); +- memset( P->personal, 0, sizeof( P->personal ) ); +- +- if( blake2s_init_param( S, P ) < 0 ) +- return -1; +- +- { +- uint8_t block[BLAKE2S_BLOCKBYTES]; +- memset( block, 0, BLAKE2S_BLOCKBYTES ); +- memcpy( block, key, keylen ); +- blake2s_update( S, block, BLAKE2S_BLOCKBYTES ); +- secure_zero_memory( block, BLAKE2S_BLOCKBYTES ); /* Burn the key from stack */ +- } +- return 0; +-} +- +- +-static void blake2s_compress( blake2s_state *S, const uint8_t block[BLAKE2S_BLOCKBYTES] ) +-{ +- __m128i row1, row2, row3, row4; +- __m128i buf1, buf2, buf3, buf4; +-#if defined(HAVE_SSE41) +- __m128i t0, t1; +-#if !defined(HAVE_XOP) +- __m128i t2; +-#endif +-#endif +- __m128i ff0, ff1; +-#if defined(HAVE_SSSE3) && !defined(HAVE_XOP) +- const __m128i r8 = _mm_set_epi8( 12, 15, 14, 13, 8, 11, 10, 9, 4, 7, 6, 5, 0, 3, 2, 1 ); +- const __m128i r16 = _mm_set_epi8( 13, 12, 15, 14, 9, 8, 11, 10, 5, 4, 7, 6, 1, 0, 3, 2 ); +-#endif +-#if defined(HAVE_SSE41) +- const __m128i m0 = LOADU( block + 00 ); +- const __m128i m1 = LOADU( block + 16 ); +- const __m128i m2 = LOADU( block + 32 ); +- const __m128i m3 = LOADU( block + 48 ); +-#else +- const uint32_t m0 = load32(block + 0 * sizeof(uint32_t)); +- const uint32_t m1 = load32(block + 1 * sizeof(uint32_t)); +- const uint32_t m2 = load32(block + 2 * sizeof(uint32_t)); +- const uint32_t m3 = load32(block + 3 * sizeof(uint32_t)); +- const uint32_t m4 = load32(block + 4 * sizeof(uint32_t)); +- const uint32_t m5 = load32(block + 5 * sizeof(uint32_t)); +- const uint32_t m6 = load32(block + 6 * sizeof(uint32_t)); +- const uint32_t m7 = load32(block + 7 * sizeof(uint32_t)); +- const uint32_t m8 = load32(block + 8 * sizeof(uint32_t)); +- const uint32_t m9 = load32(block + 9 * sizeof(uint32_t)); +- const uint32_t m10 = load32(block + 10 * sizeof(uint32_t)); +- const uint32_t m11 = load32(block + 11 * sizeof(uint32_t)); +- const uint32_t m12 = load32(block + 12 * sizeof(uint32_t)); +- const uint32_t m13 = load32(block + 13 * sizeof(uint32_t)); +- const uint32_t m14 = load32(block + 14 * sizeof(uint32_t)); +- const uint32_t m15 = load32(block + 15 * sizeof(uint32_t)); +-#endif +- row1 = ff0 = LOADU( &S->h[0] ); +- row2 = ff1 = LOADU( &S->h[4] ); +- row3 = _mm_loadu_si128( (__m128i const *)&blake2s_IV[0] ); +- row4 = _mm_xor_si128( _mm_loadu_si128( (__m128i const *)&blake2s_IV[4] ), LOADU( &S->t[0] ) ); +- ROUND( 0 ); +- ROUND( 1 ); +- ROUND( 2 ); +- ROUND( 3 ); +- ROUND( 4 ); +- ROUND( 5 ); +- ROUND( 6 ); +- ROUND( 7 ); +- ROUND( 8 ); +- ROUND( 9 ); +- STOREU( &S->h[0], _mm_xor_si128( ff0, _mm_xor_si128( row1, row3 ) ) ); +- STOREU( &S->h[4], _mm_xor_si128( ff1, _mm_xor_si128( row2, row4 ) ) ); +-} +- +-int blake2s_update( blake2s_state *S, const void *pin, size_t inlen ) +-{ +- const unsigned char * in = (const unsigned char *)pin; +- if( inlen > 0 ) +- { +- size_t left = S->buflen; +- size_t fill = BLAKE2S_BLOCKBYTES - left; +- if( inlen > fill ) +- { +- S->buflen = 0; +- memcpy( S->buf + left, in, fill ); /* Fill buffer */ +- blake2s_increment_counter( S, BLAKE2S_BLOCKBYTES ); +- blake2s_compress( S, S->buf ); /* Compress */ +- in += fill; inlen -= fill; +- while(inlen > BLAKE2S_BLOCKBYTES) { +- blake2s_increment_counter(S, BLAKE2S_BLOCKBYTES); +- blake2s_compress( S, in ); +- in += BLAKE2S_BLOCKBYTES; +- inlen -= BLAKE2S_BLOCKBYTES; +- } +- } +- memcpy( S->buf + S->buflen, in, inlen ); +- S->buflen += inlen; +- } +- return 0; +-} +- +-int blake2s_final( blake2s_state *S, void *out, size_t outlen ) +-{ +- uint8_t buffer[BLAKE2S_OUTBYTES] = {0}; +- size_t i; +- +- if( out == NULL || outlen < S->outlen ) +- return -1; +- +- if( blake2s_is_lastblock( S ) ) +- return -1; +- +- blake2s_increment_counter( S, (uint32_t)S->buflen ); +- blake2s_set_lastblock( S ); +- memset( S->buf + S->buflen, 0, BLAKE2S_BLOCKBYTES - S->buflen ); /* Padding */ +- blake2s_compress( S, S->buf ); +- +- for( i = 0; i < 8; ++i ) /* Output full hash to temp buffer */ +- store32( buffer + sizeof( S->h[i] ) * i, S->h[i] ); +- +- memcpy( out, buffer, S->outlen ); +- secure_zero_memory( buffer, sizeof(buffer) ); +- return 0; +-} +- +-/* inlen, at least, should be uint64_t. Others can be size_t. */ +-int blake2s( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen ) +-{ +- blake2s_state S[1]; +- +- /* Verify parameters */ +- if ( NULL == in && inlen > 0 ) return -1; +- +- if ( NULL == out ) return -1; +- +- if ( NULL == key && keylen > 0) return -1; +- +- if( !outlen || outlen > BLAKE2S_OUTBYTES ) return -1; +- +- if( keylen > BLAKE2S_KEYBYTES ) return -1; +- +- if( keylen > 0 ) +- { +- if( blake2s_init_key( S, outlen, key, keylen ) < 0 ) return -1; +- } +- else +- { +- if( blake2s_init( S, outlen ) < 0 ) return -1; +- } +- +- blake2s_update( S, ( const uint8_t * )in, inlen ); +- blake2s_final( S, out, outlen ); +- return 0; +-} +- +-#if defined(SUPERCOP) +-int crypto_hash( unsigned char *out, unsigned char *in, unsigned long long inlen ) +-{ +- return blake2s( out, BLAKE2S_OUTBYTES, in, inlen, NULL, 0 ); +-} +-#endif +- +-#if defined(BLAKE2S_SELFTEST) +-#include <string.h> +-#include "blake2-kat.h" +-int main( void ) +-{ +- uint8_t key[BLAKE2S_KEYBYTES]; +- uint8_t buf[BLAKE2_KAT_LENGTH]; +- size_t i, step; +- +- for( i = 0; i < BLAKE2S_KEYBYTES; ++i ) +- key[i] = ( uint8_t )i; +- +- for( i = 0; i < BLAKE2_KAT_LENGTH; ++i ) +- buf[i] = ( uint8_t )i; +- +- /* Test simple API */ +- for( i = 0; i < BLAKE2_KAT_LENGTH; ++i ) +- { +- uint8_t hash[BLAKE2S_OUTBYTES]; +- blake2s( hash, BLAKE2S_OUTBYTES, buf, i, key, BLAKE2S_KEYBYTES ); +- +- if( 0 != memcmp( hash, blake2s_keyed_kat[i], BLAKE2S_OUTBYTES ) ) +- { +- goto fail; +- } +- } +- +- /* Test streaming API */ +- for(step = 1; step < BLAKE2S_BLOCKBYTES; ++step) { +- for (i = 0; i < BLAKE2_KAT_LENGTH; ++i) { +- uint8_t hash[BLAKE2S_OUTBYTES]; +- blake2s_state S; +- uint8_t * p = buf; +- size_t mlen = i; +- int err = 0; +- +- if( (err = blake2s_init_key(&S, BLAKE2S_OUTBYTES, key, BLAKE2S_KEYBYTES)) < 0 ) { +- goto fail; +- } +- +- while (mlen >= step) { +- if ( (err = blake2s_update(&S, p, step)) < 0 ) { +- goto fail; +- } +- mlen -= step; +- p += step; +- } +- if ( (err = blake2s_update(&S, p, mlen)) < 0) { +- goto fail; +- } +- if ( (err = blake2s_final(&S, hash, BLAKE2S_OUTBYTES)) < 0) { +- goto fail; +- } +- +- if (0 != memcmp(hash, blake2s_keyed_kat[i], BLAKE2S_OUTBYTES)) { +- goto fail; +- } +- } +- } +- +- puts( "ok" ); +- return 0; +-fail: +- puts("error"); +- return -1; +-} +-#endif +--- thirdparty/blake2/blake2sp.c.orig 2018-03-16 17:25:33 UTC ++++ thirdparty/blake2/blake2sp.c +@@ -1,358 +0,0 @@ +-/* +- BLAKE2 reference source code package - optimized C implementations +- +- Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the +- terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at +- your option. The terms of these licenses can be found at: +- +- - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 +- - OpenSSL license : https://www.openssl.org/source/license.html +- - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 +- +- More information about the BLAKE2 hash function can be found at +- https://blake2.net. +-*/ +- +-#include <stdlib.h> +-#include <string.h> +-#include <stdio.h> +- +-#if defined(_OPENMP) +-#include <omp.h> +-#endif +- +-#include "blake2.h" +-#include "blake2-impl.h" +- +-#define PARALLELISM_DEGREE 8 +- +-/* +- blake2sp_init_param defaults to setting the expecting output length +- from the digest_length parameter block field. +- +- In some cases, however, we do not want this, as the output length +- of these instances is given by inner_length instead. +-*/ +-static int blake2sp_init_leaf_param( blake2s_state *S, const blake2s_param *P ) +-{ +- int err = blake2s_init_param(S, P); +- S->outlen = P->inner_length; +- return err; +-} +- +-static int blake2sp_init_leaf( blake2s_state *S, size_t outlen, size_t keylen, uint64_t offset ) +-{ +- blake2s_param P[1]; +- P->digest_length = (uint8_t)outlen; +- P->key_length = (uint8_t)keylen; +- P->fanout = PARALLELISM_DEGREE; +- P->depth = 2; +- P->leaf_length = 0; +- P->node_offset = offset; +- P->xof_length = 0; +- P->node_depth = 0; +- P->inner_length = BLAKE2S_OUTBYTES; +- memset( P->salt, 0, sizeof( P->salt ) ); +- memset( P->personal, 0, sizeof( P->personal ) ); +- return blake2sp_init_leaf_param( S, P ); +-} +- +-static int blake2sp_init_root( blake2s_state *S, size_t outlen, size_t keylen ) +-{ +- blake2s_param P[1]; +- P->digest_length = (uint8_t)outlen; +- P->key_length = (uint8_t)keylen; +- P->fanout = PARALLELISM_DEGREE; +- P->depth = 2; +- P->leaf_length = 0; +- P->node_offset = 0; +- P->xof_length = 0; +- P->node_depth = 1; +- P->inner_length = BLAKE2S_OUTBYTES; +- memset( P->salt, 0, sizeof( P->salt ) ); +- memset( P->personal, 0, sizeof( P->personal ) ); +- return blake2s_init_param( S, P ); +-} +- +- +-int blake2sp_init( blake2sp_state *S, size_t outlen ) +-{ +- size_t i; +- +- if( !outlen || outlen > BLAKE2S_OUTBYTES ) return -1; +- +- memset( S->buf, 0, sizeof( S->buf ) ); +- S->buflen = 0; +- S->outlen = outlen; +- +- if( blake2sp_init_root( S->R, outlen, 0 ) < 0 ) +- return -1; +- +- for( i = 0; i < PARALLELISM_DEGREE; ++i ) +- if( blake2sp_init_leaf( S->S[i], outlen, 0, i ) < 0 ) return -1; +- +- S->R->last_node = 1; +- S->S[PARALLELISM_DEGREE - 1]->last_node = 1; +- return 0; +-} +- +-int blake2sp_init_key( blake2sp_state *S, size_t outlen, const void *key, size_t keylen ) +-{ +- size_t i; +- +- if( !outlen || outlen > BLAKE2S_OUTBYTES ) return -1; +- +- if( !key || !keylen || keylen > BLAKE2S_KEYBYTES ) return -1; +- +- memset( S->buf, 0, sizeof( S->buf ) ); +- S->buflen = 0; +- S->outlen = outlen; +- +- if( blake2sp_init_root( S->R, outlen, keylen ) < 0 ) +- return -1; +- +- for( i = 0; i < PARALLELISM_DEGREE; ++i ) +- if( blake2sp_init_leaf( S->S[i], outlen, keylen, i ) < 0 ) return -1; +- +- S->R->last_node = 1; +- S->S[PARALLELISM_DEGREE - 1]->last_node = 1; +- { +- uint8_t block[BLAKE2S_BLOCKBYTES]; +- memset( block, 0, BLAKE2S_BLOCKBYTES ); +- memcpy( block, key, keylen ); +- +- for( i = 0; i < PARALLELISM_DEGREE; ++i ) +- blake2s_update( S->S[i], block, BLAKE2S_BLOCKBYTES ); +- +- secure_zero_memory( block, BLAKE2S_BLOCKBYTES ); /* Burn the key from stack */ +- } +- return 0; +-} +- +- +-int blake2sp_update( blake2sp_state *S, const void *pin, size_t inlen ) +-{ +- const unsigned char * in = (const unsigned char *)pin; +- size_t left = S->buflen; +- size_t fill = sizeof( S->buf ) - left; +- size_t i; +- +- if( left && inlen >= fill ) +- { +- memcpy( S->buf + left, in, fill ); +- +- for( i = 0; i < PARALLELISM_DEGREE; ++i ) +- blake2s_update( S->S[i], S->buf + i * BLAKE2S_BLOCKBYTES, BLAKE2S_BLOCKBYTES ); +- +- in += fill; +- inlen -= fill; +- left = 0; +- } +- +-#if defined(_OPENMP) +- #pragma omp parallel shared(S), num_threads(PARALLELISM_DEGREE) +-#else +- +- for( i = 0; i < PARALLELISM_DEGREE; ++i ) +-#endif +- { +-#if defined(_OPENMP) +- size_t i = omp_get_thread_num(); +-#endif +- size_t inlen__ = inlen; +- const unsigned char *in__ = ( const unsigned char * )in; +- in__ += i * BLAKE2S_BLOCKBYTES; +- +- while( inlen__ >= PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES ) +- { +- blake2s_update( S->S[i], in__, BLAKE2S_BLOCKBYTES ); +- in__ += PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES; +- inlen__ -= PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES; +- } +- } +- +- in += inlen - inlen % ( PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES ); +- inlen %= PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES; +- +- if( inlen > 0 ) +- memcpy( S->buf + left, in, inlen ); +- +- S->buflen = left + inlen; +- return 0; +-} +- +- +-int blake2sp_final( blake2sp_state *S, void *out, size_t outlen ) +-{ +- uint8_t hash[PARALLELISM_DEGREE][BLAKE2S_OUTBYTES]; +- size_t i; +- +- if(out == NULL || outlen < S->outlen) { +- return -1; +- } +- +- for( i = 0; i < PARALLELISM_DEGREE; ++i ) +- { +- if( S->buflen > i * BLAKE2S_BLOCKBYTES ) +- { +- size_t left = S->buflen - i * BLAKE2S_BLOCKBYTES; +- +- if( left > BLAKE2S_BLOCKBYTES ) left = BLAKE2S_BLOCKBYTES; +- +- blake2s_update( S->S[i], S->buf + i * BLAKE2S_BLOCKBYTES, left ); +- } +- +- blake2s_final( S->S[i], hash[i], BLAKE2S_OUTBYTES ); +- } +- +- for( i = 0; i < PARALLELISM_DEGREE; ++i ) +- blake2s_update( S->R, hash[i], BLAKE2S_OUTBYTES ); +- +- return blake2s_final( S->R, out, S->outlen ); +-} +- +- +-int blake2sp( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen ) +-{ +- uint8_t hash[PARALLELISM_DEGREE][BLAKE2S_OUTBYTES]; +- blake2s_state S[PARALLELISM_DEGREE][1]; +- blake2s_state FS[1]; +- size_t i; +- +- /* Verify parameters */ +- if ( NULL == in && inlen > 0 ) return -1; +- +- if ( NULL == out ) return -1; +- +- if ( NULL == key && keylen > 0) return -1; +- +- if( !outlen || outlen > BLAKE2S_OUTBYTES ) return -1; +- +- if( keylen > BLAKE2S_KEYBYTES ) return -1; +- +- for( i = 0; i < PARALLELISM_DEGREE; ++i ) +- if( blake2sp_init_leaf( S[i], outlen, keylen, i ) < 0 ) return -1; +- +- S[PARALLELISM_DEGREE - 1]->last_node = 1; /* mark last node */ +- +- if( keylen > 0 ) +- { +- uint8_t block[BLAKE2S_BLOCKBYTES]; +- memset( block, 0, BLAKE2S_BLOCKBYTES ); +- memcpy( block, key, keylen ); +- +- for( i = 0; i < PARALLELISM_DEGREE; ++i ) +- blake2s_update( S[i], block, BLAKE2S_BLOCKBYTES ); +- +- secure_zero_memory( block, BLAKE2S_BLOCKBYTES ); /* Burn the key from stack */ +- } +- +-#if defined(_OPENMP) +- #pragma omp parallel shared(S,hash), num_threads(PARALLELISM_DEGREE) +-#else +- +- for( i = 0; i < PARALLELISM_DEGREE; ++i ) +-#endif +- { +-#if defined(_OPENMP) +- size_t i = omp_get_thread_num(); +-#endif +- size_t inlen__ = inlen; +- const unsigned char *in__ = ( const unsigned char * )in; +- in__ += i * BLAKE2S_BLOCKBYTES; +- +- while( inlen__ >= PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES ) +- { +- blake2s_update( S[i], in__, BLAKE2S_BLOCKBYTES ); +- in__ += PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES; +- inlen__ -= PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES; +- } +- +- if( inlen__ > i * BLAKE2S_BLOCKBYTES ) +- { +- const size_t left = inlen__ - i * BLAKE2S_BLOCKBYTES; +- const size_t len = left <= BLAKE2S_BLOCKBYTES ? left : BLAKE2S_BLOCKBYTES; +- blake2s_update( S[i], in__, len ); +- } +- +- blake2s_final( S[i], hash[i], BLAKE2S_OUTBYTES ); +- } +- +- if( blake2sp_init_root( FS, outlen, keylen ) < 0 ) +- return -1; +- +- FS->last_node = 1; +- +- for( i = 0; i < PARALLELISM_DEGREE; ++i ) +- blake2s_update( FS, hash[i], BLAKE2S_OUTBYTES ); +- +- return blake2s_final( FS, out, outlen ); +-} +- +-#if defined(BLAKE2SP_SELFTEST) +-#include <string.h> +-#include "blake2-kat.h" +-int main( void ) +-{ +- uint8_t key[BLAKE2S_KEYBYTES]; +- uint8_t buf[BLAKE2_KAT_LENGTH]; +- size_t i, step; +- +- for( i = 0; i < BLAKE2S_KEYBYTES; ++i ) +- key[i] = ( uint8_t )i; +- +- for( i = 0; i < BLAKE2_KAT_LENGTH; ++i ) +- buf[i] = ( uint8_t )i; +- +- /* Test simple API */ +- for( i = 0; i < BLAKE2_KAT_LENGTH; ++i ) +- { +- uint8_t hash[BLAKE2S_OUTBYTES]; +- blake2sp( hash, BLAKE2S_OUTBYTES, buf, i, key, BLAKE2S_KEYBYTES ); +- +- if( 0 != memcmp( hash, blake2sp_keyed_kat[i], BLAKE2S_OUTBYTES ) ) +- { +- goto fail; +- } +- } +- +- /* Test streaming API */ +- for(step = 1; step < BLAKE2S_BLOCKBYTES; ++step) { +- for (i = 0; i < BLAKE2_KAT_LENGTH; ++i) { +- uint8_t hash[BLAKE2S_OUTBYTES]; +- blake2sp_state S; +- uint8_t * p = buf; +- size_t mlen = i; +- int err = 0; +- +- if( (err = blake2sp_init_key(&S, BLAKE2S_OUTBYTES, key, BLAKE2S_KEYBYTES)) < 0 ) { +- goto fail; +- } +- +- while (mlen >= step) { +- if ( (err = blake2sp_update(&S, p, step)) < 0 ) { +- goto fail; +- } +- mlen -= step; +- p += step; +- } +- if ( (err = blake2sp_update(&S, p, mlen)) < 0) { +- goto fail; +- } +- if ( (err = blake2sp_final(&S, hash, BLAKE2S_OUTBYTES)) < 0) { +- goto fail; +- } +- +- if (0 != memcmp(hash, blake2sp_keyed_kat[i], BLAKE2S_OUTBYTES)) { +- goto fail; +- } +- } +- } +- +- puts( "ok" ); +- return 0; +-fail: +- puts("error"); +- return -1; +-} +-#endif +--- thirdparty/blake2/blake2xb.c.orig 2018-03-16 17:25:33 UTC ++++ thirdparty/blake2/blake2xb.c +@@ -1,241 +0,0 @@ +-/* +- BLAKE2 reference source code package - reference C implementations +- +- Copyright 2016, JP Aumasson <jeanphilippe.aumasson@gmail.com>. +- Copyright 2016, Samuel Neves <sneves@dei.uc.pt>. +- +- You may use this under the terms of the CC0, the OpenSSL Licence, or +- the Apache Public License 2.0, at your option. The terms of these +- licenses can be found at: +- +- - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 +- - OpenSSL license : https://www.openssl.org/source/license.html +- - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 +- +- More information about the BLAKE2 hash function can be found at +- https://blake2.net. +-*/ +- +-#include <stdint.h> +-#include <string.h> +-#include <stdio.h> +- +-#include "blake2.h" +-#include "blake2-impl.h" +- +-int blake2xb_init( blake2xb_state *S, const size_t outlen ) { +- return blake2xb_init_key(S, outlen, NULL, 0); +-} +- +-int blake2xb_init_key( blake2xb_state *S, const size_t outlen, const void *key, size_t keylen) +-{ +- if ( outlen == 0 || outlen > 0xFFFFFFFFUL ) { +- return -1; +- } +- +- if (NULL != key && keylen > BLAKE2B_KEYBYTES) { +- return -1; +- } +- +- if (NULL == key && keylen > 0) { +- return -1; +- } +- +- /* Initialize parameter block */ +- S->P->digest_length = BLAKE2B_OUTBYTES; +- S->P->key_length = keylen; +- S->P->fanout = 1; +- S->P->depth = 1; +- store32( &S->P->leaf_length, 0 ); +- store32( &S->P->node_offset, 0 ); +- store32( &S->P->xof_length, outlen ); +- S->P->node_depth = 0; +- S->P->inner_length = 0; +- memset( S->P->reserved, 0, sizeof( S->P->reserved ) ); +- memset( S->P->salt, 0, sizeof( S->P->salt ) ); +- memset( S->P->personal, 0, sizeof( S->P->personal ) ); +- +- if( blake2b_init_param( S->S, S->P ) < 0 ) { +- return -1; +- } +- +- if (keylen > 0) { +- uint8_t block[BLAKE2B_BLOCKBYTES]; +- memset(block, 0, BLAKE2B_BLOCKBYTES); +- memcpy(block, key, keylen); +- blake2b_update(S->S, block, BLAKE2B_BLOCKBYTES); +- secure_zero_memory(block, BLAKE2B_BLOCKBYTES); +- } +- return 0; +-} +- +-int blake2xb_update( blake2xb_state *S, const void *in, size_t inlen ) { +- return blake2b_update( S->S, in, inlen ); +-} +- +-int blake2xb_final( blake2xb_state *S, void *out, size_t outlen) { +- +- blake2b_state C[1]; +- blake2b_param P[1]; +- uint32_t xof_length = load32(&S->P->xof_length); +- uint8_t root[BLAKE2B_BLOCKBYTES]; +- size_t i; +- +- if (NULL == out) { +- return -1; +- } +- +- /* outlen must match the output size defined in xof_length, */ +- /* unless it was -1, in which case anything goes except 0. */ +- if(xof_length == 0xFFFFFFFFUL) { +- if(outlen == 0) { +- return -1; +- } +- } else { +- if(outlen != xof_length) { +- return -1; +- } +- } +- +- /* Finalize the root hash */ +- if (blake2b_final(S->S, root, BLAKE2B_OUTBYTES) < 0) { +- return -1; +- } +- +- /* Set common block structure values */ +- /* Copy values from parent instance, and only change the ones below */ +- memcpy(P, S->P, sizeof(blake2b_param)); +- P->key_length = 0; +- P->fanout = 0; +- P->depth = 0; +- store32(&P->leaf_length, BLAKE2B_OUTBYTES); +- P->inner_length = BLAKE2B_OUTBYTES; +- P->node_depth = 0; +- +- for (i = 0; outlen > 0; ++i) { +- const size_t block_size = (outlen < BLAKE2B_OUTBYTES) ? outlen : BLAKE2B_OUTBYTES; +- /* Initialize state */ +- P->digest_length = block_size; +- store32(&P->node_offset, i); +- blake2b_init_param(C, P); +- /* Process key if needed */ +- blake2b_update(C, root, BLAKE2B_OUTBYTES); +- if (blake2b_final(C, (uint8_t *)out + i * BLAKE2B_OUTBYTES, block_size) < 0 ) { +- return -1; +- } +- outlen -= block_size; +- } +- secure_zero_memory(root, sizeof(root)); +- secure_zero_memory(P, sizeof(P)); +- secure_zero_memory(C, sizeof(C)); +- /* Put blake2xb in an invalid state? cf. blake2s_is_lastblock */ +- return 0; +- +-} +- +-int blake2xb(void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen) +-{ +- blake2xb_state S[1]; +- +- /* Verify parameters */ +- if (NULL == in && inlen > 0) +- return -1; +- +- if (NULL == out) +- return -1; +- +- if (NULL == key && keylen > 0) +- return -1; +- +- if (keylen > BLAKE2B_KEYBYTES) +- return -1; +- +- if (outlen == 0) +- return -1; +- +- /* Initialize the root block structure */ +- if (blake2xb_init_key(S, outlen, key, keylen) < 0) { +- return -1; +- } +- +- /* Absorb the input message */ +- blake2xb_update(S, in, inlen); +- +- /* Compute the root node of the tree and the final hash using the counter construction */ +- return blake2xb_final(S, out, outlen); +-} +- +-#if defined(BLAKE2XB_SELFTEST) +-#include <string.h> +-#include "blake2-kat.h" +-int main( void ) +-{ +- uint8_t key[BLAKE2B_KEYBYTES]; +- uint8_t buf[BLAKE2_KAT_LENGTH]; +- size_t i, step, outlen; +- +- for( i = 0; i < BLAKE2B_KEYBYTES; ++i ) { +- key[i] = ( uint8_t )i; +- } +- +- for( i = 0; i < BLAKE2_KAT_LENGTH; ++i ) { +- buf[i] = ( uint8_t )i; +- } +- +- /* Testing length of ouputs rather than inputs */ +- /* (Test of input lengths mostly covered by blake2s tests) */ +- +- /* Test simple API */ +- for( outlen = 1; outlen <= BLAKE2_KAT_LENGTH; ++outlen ) +- { +- uint8_t hash[BLAKE2_KAT_LENGTH] = {0}; +- if( blake2xb( hash, outlen, buf, BLAKE2_KAT_LENGTH, key, BLAKE2B_KEYBYTES ) < 0 ) { +- goto fail; +- } +- +- if( 0 != memcmp( hash, blake2xb_keyed_kat[outlen-1], outlen ) ) +- { +- goto fail; +- } +- } +- +- /* Test streaming API */ +- for(step = 1; step < BLAKE2B_BLOCKBYTES; ++step) { +- for (outlen = 1; outlen <= BLAKE2_KAT_LENGTH; ++outlen) { +- uint8_t hash[BLAKE2_KAT_LENGTH]; +- blake2xb_state S; +- uint8_t * p = buf; +- size_t mlen = BLAKE2_KAT_LENGTH; +- int err = 0; +- +- if( (err = blake2xb_init_key(&S, outlen, key, BLAKE2B_KEYBYTES)) < 0 ) { +- goto fail; +- } +- +- while (mlen >= step) { +- if ( (err = blake2xb_update(&S, p, step)) < 0 ) { +- goto fail; +- } +- mlen -= step; +- p += step; +- } +- if ( (err = blake2xb_update(&S, p, mlen)) < 0) { +- goto fail; +- } +- if ( (err = blake2xb_final(&S, hash, outlen)) < 0) { +- goto fail; +- } +- +- if (0 != memcmp(hash, blake2xb_keyed_kat[outlen-1], outlen)) { +- goto fail; +- } +- } +- } +- +- puts( "ok" ); +- return 0; +-fail: +- puts("error"); +- return -1; +-} +-#endif +--- thirdparty/blake2/blake2xs.c.orig 2018-03-16 17:25:33 UTC ++++ thirdparty/blake2/blake2xs.c +@@ -1,239 +0,0 @@ +-/* +- BLAKE2 reference source code package - reference C implementations +- +- Copyright 2016, JP Aumasson <jeanphilippe.aumasson@gmail.com>. +- Copyright 2016, Samuel Neves <sneves@dei.uc.pt>. +- +- You may use this under the terms of the CC0, the OpenSSL Licence, or +- the Apache Public License 2.0, at your option. The terms of these +- licenses can be found at: +- +- - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 +- - OpenSSL license : https://www.openssl.org/source/license.html +- - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 +- +- More information about the BLAKE2 hash function can be found at +- https://blake2.net. +-*/ +- +-#include <stdint.h> +-#include <string.h> +-#include <stdio.h> +- +-#include "blake2.h" +-#include "blake2-impl.h" +- +-int blake2xs_init( blake2xs_state *S, const size_t outlen ) { +- return blake2xs_init_key(S, outlen, NULL, 0); +-} +- +-int blake2xs_init_key( blake2xs_state *S, const size_t outlen, const void *key, size_t keylen ) +-{ +- if ( outlen == 0 || outlen > 0xFFFFUL ) { +- return -1; +- } +- +- if (NULL != key && keylen > BLAKE2B_KEYBYTES) { +- return -1; +- } +- +- if (NULL == key && keylen > 0) { +- return -1; +- } +- +- /* Initialize parameter block */ +- S->P->digest_length = BLAKE2S_OUTBYTES; +- S->P->key_length = keylen; +- S->P->fanout = 1; +- S->P->depth = 1; +- store32( &S->P->leaf_length, 0 ); +- store32( &S->P->node_offset, 0 ); +- store16( &S->P->xof_length, outlen ); +- S->P->node_depth = 0; +- S->P->inner_length = 0; +- memset( S->P->salt, 0, sizeof( S->P->salt ) ); +- memset( S->P->personal, 0, sizeof( S->P->personal ) ); +- +- if( blake2s_init_param( S->S, S->P ) < 0 ) { +- return -1; +- } +- +- if (keylen > 0) { +- uint8_t block[BLAKE2S_BLOCKBYTES]; +- memset(block, 0, BLAKE2S_BLOCKBYTES); +- memcpy(block, key, keylen); +- blake2s_update(S->S, block, BLAKE2S_BLOCKBYTES); +- secure_zero_memory(block, BLAKE2S_BLOCKBYTES); +- } +- return 0; +-} +- +-int blake2xs_update( blake2xs_state *S, const void *in, size_t inlen ) { +- return blake2s_update( S->S, in, inlen ); +-} +- +-int blake2xs_final(blake2xs_state *S, void *out, size_t outlen) { +- +- blake2s_state C[1]; +- blake2s_param P[1]; +- uint16_t xof_length = load16(&S->P->xof_length); +- uint8_t root[BLAKE2S_BLOCKBYTES]; +- size_t i; +- +- if (NULL == out) { +- return -1; +- } +- +- /* outlen must match the output size defined in xof_length, */ +- /* unless it was -1, in which case anything goes except 0. */ +- if(xof_length == 0xFFFFUL) { +- if(outlen == 0) { +- return -1; +- } +- } else { +- if(outlen != xof_length) { +- return -1; +- } +- } +- +- /* Finalize the root hash */ +- if (blake2s_final(S->S, root, BLAKE2S_OUTBYTES) < 0) { +- return -1; +- } +- +- /* Set common block structure values */ +- /* Copy values from parent instance, and only change the ones below */ +- memcpy(P, S->P, sizeof(blake2s_param)); +- P->key_length = 0; +- P->fanout = 0; +- P->depth = 0; +- store32(&P->leaf_length, BLAKE2S_OUTBYTES); +- P->inner_length = BLAKE2S_OUTBYTES; +- P->node_depth = 0; +- +- for (i = 0; outlen > 0; ++i) { +- const size_t block_size = (outlen < BLAKE2S_OUTBYTES) ? outlen : BLAKE2S_OUTBYTES; +- /* Initialize state */ +- P->digest_length = block_size; +- store32(&P->node_offset, i); +- blake2s_init_param(C, P); +- /* Process key if needed */ +- blake2s_update(C, root, BLAKE2S_OUTBYTES); +- if (blake2s_final(C, (uint8_t *)out + i * BLAKE2S_OUTBYTES, block_size) < 0) { +- return -1; +- } +- outlen -= block_size; +- } +- secure_zero_memory(root, sizeof(root)); +- secure_zero_memory(P, sizeof(P)); +- secure_zero_memory(C, sizeof(C)); +- /* Put blake2xs in an invalid state? cf. blake2s_is_lastblock */ +- return 0; +-} +- +-int blake2xs(void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen) +-{ +- blake2xs_state S[1]; +- +- /* Verify parameters */ +- if (NULL == in && inlen > 0) +- return -1; +- +- if (NULL == out) +- return -1; +- +- if (NULL == key && keylen > 0) +- return -1; +- +- if (keylen > BLAKE2S_KEYBYTES) +- return -1; +- +- if (outlen == 0) +- return -1; +- +- /* Initialize the root block structure */ +- if (blake2xs_init_key(S, outlen, key, keylen) < 0) { +- return -1; +- } +- +- /* Absorb the input message */ +- blake2xs_update(S, in, inlen); +- +- /* Compute the root node of the tree and the final hash using the counter construction */ +- return blake2xs_final(S, out, outlen); +-} +- +-#if defined(BLAKE2XS_SELFTEST) +-#include <string.h> +-#include "blake2-kat.h" +-int main( void ) +-{ +- uint8_t key[BLAKE2S_KEYBYTES]; +- uint8_t buf[BLAKE2_KAT_LENGTH]; +- size_t i, step, outlen; +- +- for( i = 0; i < BLAKE2S_KEYBYTES; ++i ) { +- key[i] = ( uint8_t )i; +- } +- +- for( i = 0; i < BLAKE2_KAT_LENGTH; ++i ) { +- buf[i] = ( uint8_t )i; +- } +- +- /* Testing length of ouputs rather than inputs */ +- /* (Test of input lengths mostly covered by blake2s tests) */ +- +- /* Test simple API */ +- for( outlen = 1; outlen <= BLAKE2_KAT_LENGTH; ++outlen ) +- { +- uint8_t hash[BLAKE2_KAT_LENGTH] = {0}; +- if( blake2xs( hash, outlen, buf, BLAKE2_KAT_LENGTH, key, BLAKE2S_KEYBYTES ) < 0 ) { +- goto fail; +- } +- +- if( 0 != memcmp( hash, blake2xs_keyed_kat[outlen-1], outlen ) ) +- { +- goto fail; +- } +- } +- +- /* Test streaming API */ +- for(step = 1; step < BLAKE2S_BLOCKBYTES; ++step) { +- for (outlen = 1; outlen <= BLAKE2_KAT_LENGTH; ++outlen) { +- uint8_t hash[BLAKE2_KAT_LENGTH]; +- blake2xs_state S; +- uint8_t * p = buf; +- size_t mlen = BLAKE2_KAT_LENGTH; +- int err = 0; +- +- if( (err = blake2xs_init_key(&S, outlen, key, BLAKE2S_KEYBYTES)) < 0 ) { +- goto fail; +- } +- +- while (mlen >= step) { +- if ( (err = blake2xs_update(&S, p, step)) < 0 ) { +- goto fail; +- } +- mlen -= step; +- p += step; +- } +- if ( (err = blake2xs_update(&S, p, mlen)) < 0) { +- goto fail; +- } +- if ( (err = blake2xs_final(&S, hash, outlen)) < 0) { +- goto fail; +- } +- +- if (0 != memcmp(hash, blake2xs_keyed_kat[outlen-1], outlen)) { +- goto fail; +- } +- } +- } +- +- puts( "ok" ); +- return 0; +-fail: +- puts("error"); +- return -1; +-} +-#endif +--- thirdparty/blake2/genkat-c.c.orig 2018-03-16 17:25:33 UTC ++++ thirdparty/blake2/genkat-c.c +@@ -1,139 +0,0 @@ +-/* +- BLAKE2 reference source code package - reference C implementations +- +- Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the +- terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at +- your option. The terms of these licenses can be found at: +- +- - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 +- - OpenSSL license : https://www.openssl.org/source/license.html +- - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 +- +- More information about the BLAKE2 hash function can be found at +- https://blake2.net. +-*/ +- +-#include <stdint.h> +-#include <stdio.h> +-#include <stdlib.h> +-#include <string.h> +- +-#include "blake2.h" +- +-#define STR_(x) #x +-#define STR(x) STR_(x) +- +-#define LENGTH 256 +- +-#define MAKE_KAT(name, size_prefix) \ +- do { \ +- printf("static const uint8_t " #name "_kat[BLAKE2_KAT_LENGTH][" #size_prefix \ +- "_OUTBYTES] = \n{\n"); \ +- \ +- for (i = 0; i < LENGTH; ++i) { \ +- name(hash, size_prefix##_OUTBYTES, in, i, NULL, 0); \ +- printf("\t{\n\t\t"); \ +- \ +- for (j = 0; j < size_prefix##_OUTBYTES; ++j) \ +- printf("0x%02X%s", hash[j], \ +- (j + 1) == size_prefix##_OUTBYTES ? "\n" : j && !((j + 1) % 8) ? ",\n\t\t" : ", "); \ +- \ +- printf("\t},\n"); \ +- } \ +- \ +- printf("};\n\n\n\n\n"); \ +- } while (0) +- +-#define MAKE_KEYED_KAT(name, size_prefix) \ +- do { \ +- printf("static const uint8_t " #name "_keyed_kat[BLAKE2_KAT_LENGTH][" #size_prefix \ +- "_OUTBYTES] = \n{\n"); \ +- \ +- for (i = 0; i < LENGTH; ++i) { \ +- name(hash, size_prefix##_OUTBYTES, in, i, key, size_prefix##_KEYBYTES); \ +- printf("\t{\n\t\t"); \ +- \ +- for (j = 0; j < size_prefix##_OUTBYTES; ++j) \ +- printf("0x%02X%s", hash[j], \ +- (j + 1) == size_prefix##_OUTBYTES ? "\n" : j && !((j + 1) % 8) ? ",\n\t\t" : ", "); \ +- \ +- printf("\t},\n"); \ +- } \ +- \ +- printf("};\n\n\n\n\n"); \ +- } while (0) +- +-#define MAKE_XOF_KAT(name) \ +- do { \ +- printf("static const uint8_t " #name "_kat[BLAKE2_KAT_LENGTH][BLAKE2_KAT_LENGTH] = \n{\n"); \ +- \ +- for (i = 1; i <= LENGTH; ++i) { \ +- name(hash, i, in, LENGTH, NULL, 0); \ +- printf("\t{\n\t\t"); \ +- \ +- for (j = 0; j < i; ++j) \ +- printf("0x%02X%s", hash[j], \ +- (j + 1) == LENGTH ? "\n" : j && !((j + 1) % 8) ? ",\n\t\t" : ", "); \ +- \ +- for (j = i; j < LENGTH; ++j) \ +- printf("0x00%s", (j + 1) == LENGTH ? "\n" : j && !((j + 1) % 8) ? ",\n\t\t" : ", "); \ +- \ +- printf("\t},\n"); \ +- } \ +- \ +- printf("};\n\n\n\n\n"); \ +- } while (0) +- +-#define MAKE_XOF_KEYED_KAT(name, size_prefix) \ +- do { \ +- printf("static const uint8_t " #name \ +- "_keyed_kat[BLAKE2_KAT_LENGTH][BLAKE2_KAT_LENGTH] = \n{\n"); \ +- \ +- for (i = 1; i <= LENGTH; ++i) { \ +- name(hash, i, in, LENGTH, key, size_prefix##_KEYBYTES); \ +- printf("\t{\n\t\t"); \ +- \ +- for (j = 0; j < i; ++j) \ +- printf("0x%02X%s", hash[j], \ +- (j + 1) == LENGTH ? "\n" : j && !((j + 1) % 8) ? ",\n\t\t" : ", "); \ +- \ +- for (j = i; j < LENGTH; ++j) \ +- printf("0x00%s", (j + 1) == LENGTH ? "\n" : j && !((j + 1) % 8) ? ",\n\t\t" : ", "); \ +- \ +- printf("\t},\n"); \ +- } \ +- \ +- printf("};\n\n\n\n\n"); \ +- } while (0) +- +-int main() { +- uint8_t key[64] = {0}; +- uint8_t in[LENGTH] = {0}; +- uint8_t hash[LENGTH] = {0}; +- size_t i, j; +- +- for (i = 0; i < sizeof(in); ++i) +- in[i] = i; +- +- for (i = 0; i < sizeof(key); ++i) +- key[i] = i; +- +- puts("#ifndef BLAKE2_KAT_H\n" +- "#define BLAKE2_KAT_H\n\n\n" +- "#include <stdint.h>\n\n" +- "#define BLAKE2_KAT_LENGTH " STR(LENGTH) "\n\n\n"); +- MAKE_KAT(blake2s, BLAKE2S); +- MAKE_KEYED_KAT(blake2s, BLAKE2S); +- MAKE_KAT(blake2b, BLAKE2B); +- MAKE_KEYED_KAT(blake2b, BLAKE2B); +- MAKE_KAT(blake2sp, BLAKE2S); +- MAKE_KEYED_KAT(blake2sp, BLAKE2S); +- MAKE_KAT(blake2bp, BLAKE2B); +- MAKE_KEYED_KAT(blake2bp, BLAKE2B); +- MAKE_XOF_KAT(blake2xs); +- MAKE_XOF_KEYED_KAT(blake2xs, BLAKE2S); +- MAKE_XOF_KAT(blake2xb); +- MAKE_XOF_KEYED_KAT(blake2xb, BLAKE2B); +- puts("#endif"); +- return 0; +-} +--- thirdparty/blake2/genkat-json.c.orig 2018-03-16 17:25:33 UTC ++++ thirdparty/blake2/genkat-json.c +@@ -1,154 +0,0 @@ +-/* +- BLAKE2 reference source code package - reference C implementations +- +- Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the +- terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at +- your option. The terms of these licenses can be found at: +- +- - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 +- - OpenSSL license : https://www.openssl.org/source/license.html +- - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 +- +- More information about the BLAKE2 hash function can be found at +- https://blake2.net. +-*/ +- +-#include <stdint.h> +-#include <stdio.h> +-#include <stdlib.h> +-#include <string.h> +- +-#include "blake2.h" +- +-#define STR_(x) #x +-#define STR(x) STR_(x) +- +-#define LENGTH 256 +- +-#define MAKE_KAT(name, size_prefix, first) \ +- do { \ +- for (i = 0; i < LENGTH; ++i) { \ +- printf("%s\n{\n", i == 0 && first ? "" : ","); \ +- \ +- printf(" \"hash\": \"" #name "\",\n"); \ +- printf(" \"in\": \""); \ +- for (j = 0; j < i; ++j) \ +- printf("%02x", in[j]); \ +- \ +- printf("\",\n"); \ +- printf(" \"key\": \"\",\n"); \ +- printf(" \"out\": \""); \ +- \ +- name(hash, size_prefix##_OUTBYTES, in, i, NULL, 0); \ +- \ +- for (j = 0; j < size_prefix##_OUTBYTES; ++j) \ +- printf("%02x", hash[j]); \ +- printf("\"\n"); \ +- printf("}"); \ +- } \ +- } while (0) +- +-#define MAKE_KEYED_KAT(name, size_prefix, first) \ +- do { \ +- for (i = 0; i < LENGTH; ++i) { \ +- printf("%s\n{\n", i == 0 && first ? "" : ","); \ +- \ +- printf(" \"hash\": \"" #name "\",\n"); \ +- printf(" \"in\": \""); \ +- for (j = 0; j < i; ++j) \ +- printf("%02x", in[j]); \ +- \ +- printf("\",\n"); \ +- printf(" \"key\": \""); \ +- for (j = 0; j < size_prefix##_KEYBYTES; ++j) \ +- printf("%02x", key[j]); \ +- printf("\",\n"); \ +- printf(" \"out\": \""); \ +- \ +- name(hash, size_prefix##_OUTBYTES, in, i, key, size_prefix##_KEYBYTES); \ +- \ +- for (j = 0; j < size_prefix##_OUTBYTES; ++j) \ +- printf("%02x", hash[j]); \ +- printf("\"\n"); \ +- printf("}"); \ +- } \ +- } while (0) +- +-#define MAKE_XOF_KAT(name, first) \ +- do { \ +- for (i = 1; i <= LENGTH; ++i) { \ +- printf("%s\n{\n", i == 1 && first ? "" : ","); \ +- \ +- printf(" \"hash\": \"" #name "\",\n"); \ +- printf(" \"in\": \""); \ +- for (j = 0; j < LENGTH; ++j) \ +- printf("%02x", in[j]); \ +- \ +- printf("\",\n"); \ +- printf(" \"key\": \"\",\n"); \ +- printf(" \"out\": \""); \ +- \ +- name(hash, i, in, LENGTH, NULL, 0); \ +- \ +- for (j = 0; j < i; ++j) \ +- printf("%02x", hash[j]); \ +- printf("\"\n"); \ +- printf("}"); \ +- } \ +- } while (0) +- +-#define MAKE_XOF_KEYED_KAT(name, size_prefix, first) \ +- do { \ +- for (i = 1; i <= LENGTH; ++i) { \ +- printf("%s\n{\n", i == 1 && first ? "" : ","); \ +- \ +- printf(" \"hash\": \"" #name "\",\n"); \ +- printf(" \"in\": \""); \ +- for (j = 0; j < LENGTH; ++j) \ +- printf("%02x", in[j]); \ +- \ +- printf("\",\n"); \ +- printf(" \"key\": \""); \ +- for (j = 0; j < size_prefix##_KEYBYTES; ++j) \ +- printf("%02x", key[j]); \ +- printf("\",\n"); \ +- printf(" \"out\": \""); \ +- \ +- name(hash, i, in, LENGTH, key, size_prefix##_KEYBYTES); \ +- \ +- for (j = 0; j < i; ++j) \ +- printf("%02x", hash[j]); \ +- printf("\"\n"); \ +- printf("}"); \ +- } \ +- } while (0) +- +-int main() { +- uint8_t key[64] = {0}; +- uint8_t in[LENGTH] = {0}; +- uint8_t hash[LENGTH] = {0}; +- size_t i, j; +- +- for (i = 0; i < sizeof(in); ++i) +- in[i] = i; +- +- for (i = 0; i < sizeof(key); ++i) +- key[i] = i; +- +- printf("["); +- MAKE_KAT(blake2s, BLAKE2S, 1); +- MAKE_KEYED_KAT(blake2s, BLAKE2S, 0); +- MAKE_KAT(blake2b, BLAKE2B, 0); +- MAKE_KEYED_KAT(blake2b, BLAKE2B, 0); +- MAKE_KAT(blake2sp, BLAKE2S, 0); +- MAKE_KEYED_KAT(blake2sp, BLAKE2S, 0); +- MAKE_KAT(blake2bp, BLAKE2B, 0); +- MAKE_KEYED_KAT(blake2bp, BLAKE2B, 0); +- MAKE_XOF_KAT(blake2xs, 0); +- MAKE_XOF_KEYED_KAT(blake2xs, BLAKE2S, 0); +- MAKE_XOF_KAT(blake2xb, 0); +- MAKE_XOF_KEYED_KAT(blake2xb, BLAKE2B, 0); +- printf("\n]\n"); +- fflush(stdout); +- return 0; +-} +--- thirdparty/blake2/ref/blake2-impl.h.orig 2025-09-03 12:27:32 UTC ++++ thirdparty/blake2/ref/blake2-impl.h +@@ -0,0 +1,160 @@ ++/* ++ BLAKE2 reference source code package - reference C implementations ++ ++ Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the ++ terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at ++ your option. The terms of these licenses can be found at: ++ ++ - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 ++ - OpenSSL license : https://www.openssl.org/source/license.html ++ - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 ++ ++ More information about the BLAKE2 hash function can be found at ++ https://blake2.net. ++*/ ++#ifndef BLAKE2_IMPL_H ++#define BLAKE2_IMPL_H ++ ++#include <stdint.h> ++#include <string.h> ++ ++#if !defined(__cplusplus) && (!defined(__STDC_VERSION__) || __STDC_VERSION__ < 199901L) ++ #if defined(_MSC_VER) ++ #define BLAKE2_INLINE __inline ++ #elif defined(__GNUC__) ++ #define BLAKE2_INLINE __inline__ ++ #else ++ #define BLAKE2_INLINE ++ #endif ++#else ++ #define BLAKE2_INLINE inline ++#endif ++ ++static BLAKE2_INLINE uint32_t load32( const void *src ) ++{ ++#if defined(NATIVE_LITTLE_ENDIAN) ++ uint32_t w; ++ memcpy(&w, src, sizeof w); ++ return w; ++#else ++ const uint8_t *p = ( const uint8_t * )src; ++ return (( uint32_t )( p[0] ) << 0) | ++ (( uint32_t )( p[1] ) << 8) | ++ (( uint32_t )( p[2] ) << 16) | ++ (( uint32_t )( p[3] ) << 24) ; ++#endif ++} ++ ++static BLAKE2_INLINE uint64_t load64( const void *src ) ++{ ++#if defined(NATIVE_LITTLE_ENDIAN) ++ uint64_t w; ++ memcpy(&w, src, sizeof w); ++ return w; ++#else ++ const uint8_t *p = ( const uint8_t * )src; ++ return (( uint64_t )( p[0] ) << 0) | ++ (( uint64_t )( p[1] ) << 8) | ++ (( uint64_t )( p[2] ) << 16) | ++ (( uint64_t )( p[3] ) << 24) | ++ (( uint64_t )( p[4] ) << 32) | ++ (( uint64_t )( p[5] ) << 40) | ++ (( uint64_t )( p[6] ) << 48) | ++ (( uint64_t )( p[7] ) << 56) ; ++#endif ++} ++ ++static BLAKE2_INLINE uint16_t load16( const void *src ) ++{ ++#if defined(NATIVE_LITTLE_ENDIAN) ++ uint16_t w; ++ memcpy(&w, src, sizeof w); ++ return w; ++#else ++ const uint8_t *p = ( const uint8_t * )src; ++ return (( uint16_t )( p[0] ) << 0) | ++ (( uint16_t )( p[1] ) << 8) ; ++#endif ++} ++ ++static BLAKE2_INLINE void store16( void *dst, uint16_t w ) ++{ ++#if defined(NATIVE_LITTLE_ENDIAN) ++ memcpy(dst, &w, sizeof w); ++#else ++ uint8_t *p = ( uint8_t * )dst; ++ *p++ = ( uint8_t )w; w >>= 8; ++ *p++ = ( uint8_t )w; ++#endif ++} ++ ++static BLAKE2_INLINE void store32( void *dst, uint32_t w ) ++{ ++#if defined(NATIVE_LITTLE_ENDIAN) ++ memcpy(dst, &w, sizeof w); ++#else ++ uint8_t *p = ( uint8_t * )dst; ++ p[0] = (uint8_t)(w >> 0); ++ p[1] = (uint8_t)(w >> 8); ++ p[2] = (uint8_t)(w >> 16); ++ p[3] = (uint8_t)(w >> 24); ++#endif ++} ++ ++static BLAKE2_INLINE void store64( void *dst, uint64_t w ) ++{ ++#if defined(NATIVE_LITTLE_ENDIAN) ++ memcpy(dst, &w, sizeof w); ++#else ++ uint8_t *p = ( uint8_t * )dst; ++ p[0] = (uint8_t)(w >> 0); ++ p[1] = (uint8_t)(w >> 8); ++ p[2] = (uint8_t)(w >> 16); ++ p[3] = (uint8_t)(w >> 24); ++ p[4] = (uint8_t)(w >> 32); ++ p[5] = (uint8_t)(w >> 40); ++ p[6] = (uint8_t)(w >> 48); ++ p[7] = (uint8_t)(w >> 56); ++#endif ++} ++ ++static BLAKE2_INLINE uint64_t load48( const void *src ) ++{ ++ const uint8_t *p = ( const uint8_t * )src; ++ return (( uint64_t )( p[0] ) << 0) | ++ (( uint64_t )( p[1] ) << 8) | ++ (( uint64_t )( p[2] ) << 16) | ++ (( uint64_t )( p[3] ) << 24) | ++ (( uint64_t )( p[4] ) << 32) | ++ (( uint64_t )( p[5] ) << 40) ; ++} ++ ++static BLAKE2_INLINE void store48( void *dst, uint64_t w ) ++{ ++ uint8_t *p = ( uint8_t * )dst; ++ p[0] = (uint8_t)(w >> 0); ++ p[1] = (uint8_t)(w >> 8); ++ p[2] = (uint8_t)(w >> 16); ++ p[3] = (uint8_t)(w >> 24); ++ p[4] = (uint8_t)(w >> 32); ++ p[5] = (uint8_t)(w >> 40); ++} ++ ++static BLAKE2_INLINE uint32_t rotr32( const uint32_t w, const unsigned c ) ++{ ++ return ( w >> c ) | ( w << ( 32 - c ) ); ++} ++ ++static BLAKE2_INLINE uint64_t rotr64( const uint64_t w, const unsigned c ) ++{ ++ return ( w >> c ) | ( w << ( 64 - c ) ); ++} ++ ++/* prevents compiler optimizing out memset() */ ++static BLAKE2_INLINE void secure_zero_memory(void *v, size_t n) ++{ ++ static void *(*const volatile memset_v)(void *, int, size_t) = &memset; ++ memset_v(v, 0, n); ++} ++ ++#endif +--- thirdparty/blake2/ref/blake2.h.orig 2025-09-03 12:27:32 UTC ++++ thirdparty/blake2/ref/blake2.h +@@ -0,0 +1,195 @@ ++/* ++ BLAKE2 reference source code package - reference C implementations ++ ++ Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the ++ terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at ++ your option. The terms of these licenses can be found at: ++ ++ - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 ++ - OpenSSL license : https://www.openssl.org/source/license.html ++ - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 ++ ++ More information about the BLAKE2 hash function can be found at ++ https://blake2.net. ++*/ ++#ifndef BLAKE2_H ++#define BLAKE2_H ++ ++#include <stddef.h> ++#include <stdint.h> ++ ++#if defined(_MSC_VER) ++#define BLAKE2_PACKED(x) __pragma(pack(push, 1)) x __pragma(pack(pop)) ++#else ++#define BLAKE2_PACKED(x) x __attribute__((packed)) ++#endif ++ ++#if defined(__cplusplus) ++extern "C" { ++#endif ++ ++ enum blake2s_constant ++ { ++ BLAKE2S_BLOCKBYTES = 64, ++ BLAKE2S_OUTBYTES = 32, ++ BLAKE2S_KEYBYTES = 32, ++ BLAKE2S_SALTBYTES = 8, ++ BLAKE2S_PERSONALBYTES = 8 ++ }; ++ ++ enum blake2b_constant ++ { ++ BLAKE2B_BLOCKBYTES = 128, ++ BLAKE2B_OUTBYTES = 64, ++ BLAKE2B_KEYBYTES = 64, ++ BLAKE2B_SALTBYTES = 16, ++ BLAKE2B_PERSONALBYTES = 16 ++ }; ++ ++ typedef struct blake2s_state__ ++ { ++ uint32_t h[8]; ++ uint32_t t[2]; ++ uint32_t f[2]; ++ uint8_t buf[BLAKE2S_BLOCKBYTES]; ++ size_t buflen; ++ size_t outlen; ++ uint8_t last_node; ++ } blake2s_state; ++ ++ typedef struct blake2b_state__ ++ { ++ uint64_t h[8]; ++ uint64_t t[2]; ++ uint64_t f[2]; ++ uint8_t buf[BLAKE2B_BLOCKBYTES]; ++ size_t buflen; ++ size_t outlen; ++ uint8_t last_node; ++ } blake2b_state; ++ ++ typedef struct blake2sp_state__ ++ { ++ blake2s_state S[8][1]; ++ blake2s_state R[1]; ++ uint8_t buf[8 * BLAKE2S_BLOCKBYTES]; ++ size_t buflen; ++ size_t outlen; ++ } blake2sp_state; ++ ++ typedef struct blake2bp_state__ ++ { ++ blake2b_state S[4][1]; ++ blake2b_state R[1]; ++ uint8_t buf[4 * BLAKE2B_BLOCKBYTES]; ++ size_t buflen; ++ size_t outlen; ++ } blake2bp_state; ++ ++ ++ BLAKE2_PACKED(struct blake2s_param__ ++ { ++ uint8_t digest_length; /* 1 */ ++ uint8_t key_length; /* 2 */ ++ uint8_t fanout; /* 3 */ ++ uint8_t depth; /* 4 */ ++ uint32_t leaf_length; /* 8 */ ++ uint32_t node_offset; /* 12 */ ++ uint16_t xof_length; /* 14 */ ++ uint8_t node_depth; /* 15 */ ++ uint8_t inner_length; /* 16 */ ++ /* uint8_t reserved[0]; */ ++ uint8_t salt[BLAKE2S_SALTBYTES]; /* 24 */ ++ uint8_t personal[BLAKE2S_PERSONALBYTES]; /* 32 */ ++ }); ++ ++ typedef struct blake2s_param__ blake2s_param; ++ ++ BLAKE2_PACKED(struct blake2b_param__ ++ { ++ uint8_t digest_length; /* 1 */ ++ uint8_t key_length; /* 2 */ ++ uint8_t fanout; /* 3 */ ++ uint8_t depth; /* 4 */ ++ uint32_t leaf_length; /* 8 */ ++ uint32_t node_offset; /* 12 */ ++ uint32_t xof_length; /* 16 */ ++ uint8_t node_depth; /* 17 */ ++ uint8_t inner_length; /* 18 */ ++ uint8_t reserved[14]; /* 32 */ ++ uint8_t salt[BLAKE2B_SALTBYTES]; /* 48 */ ++ uint8_t personal[BLAKE2B_PERSONALBYTES]; /* 64 */ ++ }); ++ ++ typedef struct blake2b_param__ blake2b_param; ++ ++ typedef struct blake2xs_state__ ++ { ++ blake2s_state S[1]; ++ blake2s_param P[1]; ++ } blake2xs_state; ++ ++ typedef struct blake2xb_state__ ++ { ++ blake2b_state S[1]; ++ blake2b_param P[1]; ++ } blake2xb_state; ++ ++ /* Padded structs result in a compile-time error */ ++ enum { ++ BLAKE2_DUMMY_1 = 1/(sizeof(blake2s_param) == BLAKE2S_OUTBYTES), ++ BLAKE2_DUMMY_2 = 1/(sizeof(blake2b_param) == BLAKE2B_OUTBYTES) ++ }; ++ ++ /* Streaming API */ ++ int blake2s_init( blake2s_state *S, size_t outlen ); ++ int blake2s_init_key( blake2s_state *S, size_t outlen, const void *key, size_t keylen ); ++ int blake2s_init_param( blake2s_state *S, const blake2s_param *P ); ++ int blake2s_update( blake2s_state *S, const void *in, size_t inlen ); ++ int blake2s_final( blake2s_state *S, void *out, size_t outlen ); ++ ++ int blake2b_init( blake2b_state *S, size_t outlen ); ++ int blake2b_init_key( blake2b_state *S, size_t outlen, const void *key, size_t keylen ); ++ int blake2b_init_param( blake2b_state *S, const blake2b_param *P ); ++ int blake2b_update( blake2b_state *S, const void *in, size_t inlen ); ++ int blake2b_final( blake2b_state *S, void *out, size_t outlen ); ++ ++ int blake2sp_init( blake2sp_state *S, size_t outlen ); ++ int blake2sp_init_key( blake2sp_state *S, size_t outlen, const void *key, size_t keylen ); ++ int blake2sp_update( blake2sp_state *S, const void *in, size_t inlen ); ++ int blake2sp_final( blake2sp_state *S, void *out, size_t outlen ); ++ ++ int blake2bp_init( blake2bp_state *S, size_t outlen ); ++ int blake2bp_init_key( blake2bp_state *S, size_t outlen, const void *key, size_t keylen ); ++ int blake2bp_update( blake2bp_state *S, const void *in, size_t inlen ); ++ int blake2bp_final( blake2bp_state *S, void *out, size_t outlen ); ++ ++ /* Variable output length API */ ++ int blake2xs_init( blake2xs_state *S, const size_t outlen ); ++ int blake2xs_init_key( blake2xs_state *S, const size_t outlen, const void *key, size_t keylen ); ++ int blake2xs_update( blake2xs_state *S, const void *in, size_t inlen ); ++ int blake2xs_final(blake2xs_state *S, void *out, size_t outlen); ++ ++ int blake2xb_init( blake2xb_state *S, const size_t outlen ); ++ int blake2xb_init_key( blake2xb_state *S, const size_t outlen, const void *key, size_t keylen ); ++ int blake2xb_update( blake2xb_state *S, const void *in, size_t inlen ); ++ int blake2xb_final(blake2xb_state *S, void *out, size_t outlen); ++ ++ /* Simple API */ ++ int blake2s( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen ); ++ int blake2b( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen ); ++ ++ int blake2sp( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen ); ++ int blake2bp( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen ); ++ ++ int blake2xs( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen ); ++ int blake2xb( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen ); ++ ++ /* This is simply an alias for blake2b */ ++ int blake2( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen ); ++ ++#if defined(__cplusplus) ++} ++#endif ++ ++#endif +--- thirdparty/blake2/ref/blake2b-ref.c.orig 2025-09-03 12:27:32 UTC ++++ thirdparty/blake2/ref/blake2b-ref.c +@@ -0,0 +1,379 @@ ++/* ++ BLAKE2 reference source code package - reference C implementations ++ ++ Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the ++ terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at ++ your option. The terms of these licenses can be found at: ++ ++ - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 ++ - OpenSSL license : https://www.openssl.org/source/license.html ++ - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 ++ ++ More information about the BLAKE2 hash function can be found at ++ https://blake2.net. ++*/ ++ ++#include <stdint.h> ++#include <string.h> ++#include <stdio.h> ++ ++#include "blake2.h" ++#include "blake2-impl.h" ++ ++static const uint64_t blake2b_IV[8] = ++{ ++ 0x6a09e667f3bcc908ULL, 0xbb67ae8584caa73bULL, ++ 0x3c6ef372fe94f82bULL, 0xa54ff53a5f1d36f1ULL, ++ 0x510e527fade682d1ULL, 0x9b05688c2b3e6c1fULL, ++ 0x1f83d9abfb41bd6bULL, 0x5be0cd19137e2179ULL ++}; ++ ++static const uint8_t blake2b_sigma[12][16] = ++{ ++ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 } , ++ { 14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3 } , ++ { 11, 8, 12, 0, 5, 2, 15, 13, 10, 14, 3, 6, 7, 1, 9, 4 } , ++ { 7, 9, 3, 1, 13, 12, 11, 14, 2, 6, 5, 10, 4, 0, 15, 8 } , ++ { 9, 0, 5, 7, 2, 4, 10, 15, 14, 1, 11, 12, 6, 8, 3, 13 } , ++ { 2, 12, 6, 10, 0, 11, 8, 3, 4, 13, 7, 5, 15, 14, 1, 9 } , ++ { 12, 5, 1, 15, 14, 13, 4, 10, 0, 7, 6, 3, 9, 2, 8, 11 } , ++ { 13, 11, 7, 14, 12, 1, 3, 9, 5, 0, 15, 4, 8, 6, 2, 10 } , ++ { 6, 15, 14, 9, 11, 3, 0, 8, 12, 2, 13, 7, 1, 4, 10, 5 } , ++ { 10, 2, 8, 4, 7, 6, 1, 5, 15, 11, 9, 14, 3, 12, 13 , 0 } , ++ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 } , ++ { 14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3 } ++}; ++ ++ ++static void blake2b_set_lastnode( blake2b_state *S ) ++{ ++ S->f[1] = (uint64_t)-1; ++} ++ ++/* Some helper functions, not necessarily useful */ ++static int blake2b_is_lastblock( const blake2b_state *S ) ++{ ++ return S->f[0] != 0; ++} ++ ++static void blake2b_set_lastblock( blake2b_state *S ) ++{ ++ if( S->last_node ) blake2b_set_lastnode( S ); ++ ++ S->f[0] = (uint64_t)-1; ++} ++ ++static void blake2b_increment_counter( blake2b_state *S, const uint64_t inc ) ++{ ++ S->t[0] += inc; ++ S->t[1] += ( S->t[0] < inc ); ++} ++ ++static void blake2b_init0( blake2b_state *S ) ++{ ++ size_t i; ++ memset( S, 0, sizeof( blake2b_state ) ); ++ ++ for( i = 0; i < 8; ++i ) S->h[i] = blake2b_IV[i]; ++} ++ ++/* init xors IV with input parameter block */ ++int blake2b_init_param( blake2b_state *S, const blake2b_param *P ) ++{ ++ const uint8_t *p = ( const uint8_t * )( P ); ++ size_t i; ++ ++ blake2b_init0( S ); ++ ++ /* IV XOR ParamBlock */ ++ for( i = 0; i < 8; ++i ) ++ S->h[i] ^= load64( p + sizeof( S->h[i] ) * i ); ++ ++ S->outlen = P->digest_length; ++ return 0; ++} ++ ++ ++ ++int blake2b_init( blake2b_state *S, size_t outlen ) ++{ ++ blake2b_param P[1]; ++ ++ if ( ( !outlen ) || ( outlen > BLAKE2B_OUTBYTES ) ) return -1; ++ ++ P->digest_length = (uint8_t)outlen; ++ P->key_length = 0; ++ P->fanout = 1; ++ P->depth = 1; ++ store32( &P->leaf_length, 0 ); ++ store32( &P->node_offset, 0 ); ++ store32( &P->xof_length, 0 ); ++ P->node_depth = 0; ++ P->inner_length = 0; ++ memset( P->reserved, 0, sizeof( P->reserved ) ); ++ memset( P->salt, 0, sizeof( P->salt ) ); ++ memset( P->personal, 0, sizeof( P->personal ) ); ++ return blake2b_init_param( S, P ); ++} ++ ++ ++int blake2b_init_key( blake2b_state *S, size_t outlen, const void *key, size_t keylen ) ++{ ++ blake2b_param P[1]; ++ ++ if ( ( !outlen ) || ( outlen > BLAKE2B_OUTBYTES ) ) return -1; ++ ++ if ( !key || !keylen || keylen > BLAKE2B_KEYBYTES ) return -1; ++ ++ P->digest_length = (uint8_t)outlen; ++ P->key_length = (uint8_t)keylen; ++ P->fanout = 1; ++ P->depth = 1; ++ store32( &P->leaf_length, 0 ); ++ store32( &P->node_offset, 0 ); ++ store32( &P->xof_length, 0 ); ++ P->node_depth = 0; ++ P->inner_length = 0; ++ memset( P->reserved, 0, sizeof( P->reserved ) ); ++ memset( P->salt, 0, sizeof( P->salt ) ); ++ memset( P->personal, 0, sizeof( P->personal ) ); ++ ++ if( blake2b_init_param( S, P ) < 0 ) return -1; ++ ++ { ++ uint8_t block[BLAKE2B_BLOCKBYTES]; ++ memset( block, 0, BLAKE2B_BLOCKBYTES ); ++ memcpy( block, key, keylen ); ++ blake2b_update( S, block, BLAKE2B_BLOCKBYTES ); ++ secure_zero_memory( block, BLAKE2B_BLOCKBYTES ); /* Burn the key from stack */ ++ } ++ return 0; ++} ++ ++#define G(r,i,a,b,c,d) \ ++ do { \ ++ a = a + b + m[blake2b_sigma[r][2*i+0]]; \ ++ d = rotr64(d ^ a, 32); \ ++ c = c + d; \ ++ b = rotr64(b ^ c, 24); \ ++ a = a + b + m[blake2b_sigma[r][2*i+1]]; \ ++ d = rotr64(d ^ a, 16); \ ++ c = c + d; \ ++ b = rotr64(b ^ c, 63); \ ++ } while(0) ++ ++#define ROUND(r) \ ++ do { \ ++ G(r,0,v[ 0],v[ 4],v[ 8],v[12]); \ ++ G(r,1,v[ 1],v[ 5],v[ 9],v[13]); \ ++ G(r,2,v[ 2],v[ 6],v[10],v[14]); \ ++ G(r,3,v[ 3],v[ 7],v[11],v[15]); \ ++ G(r,4,v[ 0],v[ 5],v[10],v[15]); \ ++ G(r,5,v[ 1],v[ 6],v[11],v[12]); \ ++ G(r,6,v[ 2],v[ 7],v[ 8],v[13]); \ ++ G(r,7,v[ 3],v[ 4],v[ 9],v[14]); \ ++ } while(0) ++ ++static void blake2b_compress( blake2b_state *S, const uint8_t block[BLAKE2B_BLOCKBYTES] ) ++{ ++ uint64_t m[16]; ++ uint64_t v[16]; ++ size_t i; ++ ++ for( i = 0; i < 16; ++i ) { ++ m[i] = load64( block + i * sizeof( m[i] ) ); ++ } ++ ++ for( i = 0; i < 8; ++i ) { ++ v[i] = S->h[i]; ++ } ++ ++ v[ 8] = blake2b_IV[0]; ++ v[ 9] = blake2b_IV[1]; ++ v[10] = blake2b_IV[2]; ++ v[11] = blake2b_IV[3]; ++ v[12] = blake2b_IV[4] ^ S->t[0]; ++ v[13] = blake2b_IV[5] ^ S->t[1]; ++ v[14] = blake2b_IV[6] ^ S->f[0]; ++ v[15] = blake2b_IV[7] ^ S->f[1]; ++ ++ ROUND( 0 ); ++ ROUND( 1 ); ++ ROUND( 2 ); ++ ROUND( 3 ); ++ ROUND( 4 ); ++ ROUND( 5 ); ++ ROUND( 6 ); ++ ROUND( 7 ); ++ ROUND( 8 ); ++ ROUND( 9 ); ++ ROUND( 10 ); ++ ROUND( 11 ); ++ ++ for( i = 0; i < 8; ++i ) { ++ S->h[i] = S->h[i] ^ v[i] ^ v[i + 8]; ++ } ++} ++ ++#undef G ++#undef ROUND ++ ++int blake2b_update( blake2b_state *S, const void *pin, size_t inlen ) ++{ ++ const unsigned char * in = (const unsigned char *)pin; ++ if( inlen > 0 ) ++ { ++ size_t left = S->buflen; ++ size_t fill = BLAKE2B_BLOCKBYTES - left; ++ if( inlen > fill ) ++ { ++ S->buflen = 0; ++ memcpy( S->buf + left, in, fill ); /* Fill buffer */ ++ blake2b_increment_counter( S, BLAKE2B_BLOCKBYTES ); ++ blake2b_compress( S, S->buf ); /* Compress */ ++ in += fill; inlen -= fill; ++ while(inlen > BLAKE2B_BLOCKBYTES) { ++ blake2b_increment_counter(S, BLAKE2B_BLOCKBYTES); ++ blake2b_compress( S, in ); ++ in += BLAKE2B_BLOCKBYTES; ++ inlen -= BLAKE2B_BLOCKBYTES; ++ } ++ } ++ memcpy( S->buf + S->buflen, in, inlen ); ++ S->buflen += inlen; ++ } ++ return 0; ++} ++ ++int blake2b_final( blake2b_state *S, void *out, size_t outlen ) ++{ ++ uint8_t buffer[BLAKE2B_OUTBYTES] = {0}; ++ size_t i; ++ ++ if( out == NULL || outlen < S->outlen ) ++ return -1; ++ ++ if( blake2b_is_lastblock( S ) ) ++ return -1; ++ ++ blake2b_increment_counter( S, S->buflen ); ++ blake2b_set_lastblock( S ); ++ memset( S->buf + S->buflen, 0, BLAKE2B_BLOCKBYTES - S->buflen ); /* Padding */ ++ blake2b_compress( S, S->buf ); ++ ++ for( i = 0; i < 8; ++i ) /* Output full hash to temp buffer */ ++ store64( buffer + sizeof( S->h[i] ) * i, S->h[i] ); ++ ++ memcpy( out, buffer, S->outlen ); ++ secure_zero_memory(buffer, sizeof(buffer)); ++ return 0; ++} ++ ++/* inlen, at least, should be uint64_t. Others can be size_t. */ ++int blake2b( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen ) ++{ ++ blake2b_state S[1]; ++ ++ /* Verify parameters */ ++ if ( NULL == in && inlen > 0 ) return -1; ++ ++ if ( NULL == out ) return -1; ++ ++ if( NULL == key && keylen > 0 ) return -1; ++ ++ if( !outlen || outlen > BLAKE2B_OUTBYTES ) return -1; ++ ++ if( keylen > BLAKE2B_KEYBYTES ) return -1; ++ ++ if( keylen > 0 ) ++ { ++ if( blake2b_init_key( S, outlen, key, keylen ) < 0 ) return -1; ++ } ++ else ++ { ++ if( blake2b_init( S, outlen ) < 0 ) return -1; ++ } ++ ++ blake2b_update( S, ( const uint8_t * )in, inlen ); ++ blake2b_final( S, out, outlen ); ++ return 0; ++} ++ ++int blake2( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen ) { ++ return blake2b(out, outlen, in, inlen, key, keylen); ++} ++ ++#if defined(SUPERCOP) ++int crypto_hash( unsigned char *out, unsigned char *in, unsigned long long inlen ) ++{ ++ return blake2b( out, BLAKE2B_OUTBYTES, in, inlen, NULL, 0 ); ++} ++#endif ++ ++#if defined(BLAKE2B_SELFTEST) ++#include <string.h> ++#include "blake2-kat.h" ++int main( void ) ++{ ++ uint8_t key[BLAKE2B_KEYBYTES]; ++ uint8_t buf[BLAKE2_KAT_LENGTH]; ++ size_t i, step; ++ ++ for( i = 0; i < BLAKE2B_KEYBYTES; ++i ) ++ key[i] = ( uint8_t )i; ++ ++ for( i = 0; i < BLAKE2_KAT_LENGTH; ++i ) ++ buf[i] = ( uint8_t )i; ++ ++ /* Test simple API */ ++ for( i = 0; i < BLAKE2_KAT_LENGTH; ++i ) ++ { ++ uint8_t hash[BLAKE2B_OUTBYTES]; ++ blake2b( hash, BLAKE2B_OUTBYTES, buf, i, key, BLAKE2B_KEYBYTES ); ++ ++ if( 0 != memcmp( hash, blake2b_keyed_kat[i], BLAKE2B_OUTBYTES ) ) ++ { ++ goto fail; ++ } ++ } ++ ++ /* Test streaming API */ ++ for(step = 1; step < BLAKE2B_BLOCKBYTES; ++step) { ++ for (i = 0; i < BLAKE2_KAT_LENGTH; ++i) { ++ uint8_t hash[BLAKE2B_OUTBYTES]; ++ blake2b_state S; ++ uint8_t * p = buf; ++ size_t mlen = i; ++ int err = 0; ++ ++ if( (err = blake2b_init_key(&S, BLAKE2B_OUTBYTES, key, BLAKE2B_KEYBYTES)) < 0 ) { ++ goto fail; ++ } ++ ++ while (mlen >= step) { ++ if ( (err = blake2b_update(&S, p, step)) < 0 ) { ++ goto fail; ++ } ++ mlen -= step; ++ p += step; ++ } ++ if ( (err = blake2b_update(&S, p, mlen)) < 0) { ++ goto fail; ++ } ++ if ( (err = blake2b_final(&S, hash, BLAKE2B_OUTBYTES)) < 0) { ++ goto fail; ++ } ++ ++ if (0 != memcmp(hash, blake2b_keyed_kat[i], BLAKE2B_OUTBYTES)) { ++ goto fail; ++ } ++ } ++ } ++ ++ puts( "ok" ); ++ return 0; ++fail: ++ puts("error"); ++ return -1; ++} ++#endif +--- thirdparty/blake2/ref/blake2bp-ref.c.orig 2025-09-03 12:27:32 UTC ++++ thirdparty/blake2/ref/blake2bp-ref.c +@@ -0,0 +1,359 @@ ++/* ++ BLAKE2 reference source code package - reference C implementations ++ ++ Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the ++ terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at ++ your option. The terms of these licenses can be found at: ++ ++ - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 ++ - OpenSSL license : https://www.openssl.org/source/license.html ++ - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 ++ ++ More information about the BLAKE2 hash function can be found at ++ https://blake2.net. ++*/ ++ ++#include <stdio.h> ++#include <stdlib.h> ++#include <string.h> ++#include <stdint.h> ++ ++#if defined(_OPENMP) ++#include <omp.h> ++#endif ++ ++#include "blake2.h" ++#include "blake2-impl.h" ++ ++#define PARALLELISM_DEGREE 4 ++ ++/* ++ blake2b_init_param defaults to setting the expecting output length ++ from the digest_length parameter block field. ++ ++ In some cases, however, we do not want this, as the output length ++ of these instances is given by inner_length instead. ++*/ ++static int blake2bp_init_leaf_param( blake2b_state *S, const blake2b_param *P ) ++{ ++ int err = blake2b_init_param(S, P); ++ S->outlen = P->inner_length; ++ return err; ++} ++ ++static int blake2bp_init_leaf( blake2b_state *S, size_t outlen, size_t keylen, uint64_t offset ) ++{ ++ blake2b_param P[1]; ++ P->digest_length = (uint8_t)outlen; ++ P->key_length = (uint8_t)keylen; ++ P->fanout = PARALLELISM_DEGREE; ++ P->depth = 2; ++ store32( &P->leaf_length, 0 ); ++ store32( &P->node_offset, offset ); ++ store32( &P->xof_length, 0 ); ++ P->node_depth = 0; ++ P->inner_length = BLAKE2B_OUTBYTES; ++ memset( P->reserved, 0, sizeof( P->reserved ) ); ++ memset( P->salt, 0, sizeof( P->salt ) ); ++ memset( P->personal, 0, sizeof( P->personal ) ); ++ return blake2bp_init_leaf_param( S, P ); ++} ++ ++static int blake2bp_init_root( blake2b_state *S, size_t outlen, size_t keylen ) ++{ ++ blake2b_param P[1]; ++ P->digest_length = (uint8_t)outlen; ++ P->key_length = (uint8_t)keylen; ++ P->fanout = PARALLELISM_DEGREE; ++ P->depth = 2; ++ store32( &P->leaf_length, 0 ); ++ store32( &P->node_offset, 0 ); ++ store32( &P->xof_length, 0 ); ++ P->node_depth = 1; ++ P->inner_length = BLAKE2B_OUTBYTES; ++ memset( P->reserved, 0, sizeof( P->reserved ) ); ++ memset( P->salt, 0, sizeof( P->salt ) ); ++ memset( P->personal, 0, sizeof( P->personal ) ); ++ return blake2b_init_param( S, P ); ++} ++ ++ ++int blake2bp_init( blake2bp_state *S, size_t outlen ) ++{ ++ size_t i; ++ ++ if( !outlen || outlen > BLAKE2B_OUTBYTES ) return -1; ++ ++ memset( S->buf, 0, sizeof( S->buf ) ); ++ S->buflen = 0; ++ S->outlen = outlen; ++ ++ if( blake2bp_init_root( S->R, outlen, 0 ) < 0 ) ++ return -1; ++ ++ for( i = 0; i < PARALLELISM_DEGREE; ++i ) ++ if( blake2bp_init_leaf( S->S[i], outlen, 0, i ) < 0 ) return -1; ++ ++ S->R->last_node = 1; ++ S->S[PARALLELISM_DEGREE - 1]->last_node = 1; ++ return 0; ++} ++ ++int blake2bp_init_key( blake2bp_state *S, size_t outlen, const void *key, size_t keylen ) ++{ ++ size_t i; ++ ++ if( !outlen || outlen > BLAKE2B_OUTBYTES ) return -1; ++ ++ if( !key || !keylen || keylen > BLAKE2B_KEYBYTES ) return -1; ++ ++ memset( S->buf, 0, sizeof( S->buf ) ); ++ S->buflen = 0; ++ S->outlen = outlen; ++ ++ if( blake2bp_init_root( S->R, outlen, keylen ) < 0 ) ++ return -1; ++ ++ for( i = 0; i < PARALLELISM_DEGREE; ++i ) ++ if( blake2bp_init_leaf( S->S[i], outlen, keylen, i ) < 0 ) return -1; ++ ++ S->R->last_node = 1; ++ S->S[PARALLELISM_DEGREE - 1]->last_node = 1; ++ { ++ uint8_t block[BLAKE2B_BLOCKBYTES]; ++ memset( block, 0, BLAKE2B_BLOCKBYTES ); ++ memcpy( block, key, keylen ); ++ ++ for( i = 0; i < PARALLELISM_DEGREE; ++i ) ++ blake2b_update( S->S[i], block, BLAKE2B_BLOCKBYTES ); ++ ++ secure_zero_memory( block, BLAKE2B_BLOCKBYTES ); /* Burn the key from stack */ ++ } ++ return 0; ++} ++ ++ ++int blake2bp_update( blake2bp_state *S, const void *pin, size_t inlen ) ++{ ++ const unsigned char * in = (const unsigned char *)pin; ++ size_t left = S->buflen; ++ size_t fill = sizeof( S->buf ) - left; ++ size_t i; ++ ++ if( left && inlen >= fill ) ++ { ++ memcpy( S->buf + left, in, fill ); ++ ++ for( i = 0; i < PARALLELISM_DEGREE; ++i ) ++ blake2b_update( S->S[i], S->buf + i * BLAKE2B_BLOCKBYTES, BLAKE2B_BLOCKBYTES ); ++ ++ in += fill; ++ inlen -= fill; ++ left = 0; ++ } ++ ++#if defined(_OPENMP) ++ #pragma omp parallel shared(S), num_threads(PARALLELISM_DEGREE) ++#else ++ ++ for( i = 0; i < PARALLELISM_DEGREE; ++i ) ++#endif ++ { ++#if defined(_OPENMP) ++ size_t i = omp_get_thread_num(); ++#endif ++ size_t inlen__ = inlen; ++ const unsigned char *in__ = ( const unsigned char * )in; ++ in__ += i * BLAKE2B_BLOCKBYTES; ++ ++ while( inlen__ >= PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES ) ++ { ++ blake2b_update( S->S[i], in__, BLAKE2B_BLOCKBYTES ); ++ in__ += PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES; ++ inlen__ -= PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES; ++ } ++ } ++ ++ in += inlen - inlen % ( PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES ); ++ inlen %= PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES; ++ ++ if( inlen > 0 ) ++ memcpy( S->buf + left, in, inlen ); ++ ++ S->buflen = left + inlen; ++ return 0; ++} ++ ++int blake2bp_final( blake2bp_state *S, void *out, size_t outlen ) ++{ ++ uint8_t hash[PARALLELISM_DEGREE][BLAKE2B_OUTBYTES]; ++ size_t i; ++ ++ if(out == NULL || outlen < S->outlen) { ++ return -1; ++ } ++ ++ for( i = 0; i < PARALLELISM_DEGREE; ++i ) ++ { ++ if( S->buflen > i * BLAKE2B_BLOCKBYTES ) ++ { ++ size_t left = S->buflen - i * BLAKE2B_BLOCKBYTES; ++ ++ if( left > BLAKE2B_BLOCKBYTES ) left = BLAKE2B_BLOCKBYTES; ++ ++ blake2b_update( S->S[i], S->buf + i * BLAKE2B_BLOCKBYTES, left ); ++ } ++ ++ blake2b_final( S->S[i], hash[i], BLAKE2B_OUTBYTES ); ++ } ++ ++ for( i = 0; i < PARALLELISM_DEGREE; ++i ) ++ blake2b_update( S->R, hash[i], BLAKE2B_OUTBYTES ); ++ ++ return blake2b_final( S->R, out, S->outlen ); ++} ++ ++int blake2bp( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen ) ++{ ++ uint8_t hash[PARALLELISM_DEGREE][BLAKE2B_OUTBYTES]; ++ blake2b_state S[PARALLELISM_DEGREE][1]; ++ blake2b_state FS[1]; ++ size_t i; ++ ++ /* Verify parameters */ ++ if ( NULL == in && inlen > 0 ) return -1; ++ ++ if ( NULL == out ) return -1; ++ ++ if( NULL == key && keylen > 0 ) return -1; ++ ++ if( !outlen || outlen > BLAKE2B_OUTBYTES ) return -1; ++ ++ if( keylen > BLAKE2B_KEYBYTES ) return -1; ++ ++ for( i = 0; i < PARALLELISM_DEGREE; ++i ) ++ if( blake2bp_init_leaf( S[i], outlen, keylen, i ) < 0 ) return -1; ++ ++ S[PARALLELISM_DEGREE - 1]->last_node = 1; /* mark last node */ ++ ++ if( keylen > 0 ) ++ { ++ uint8_t block[BLAKE2B_BLOCKBYTES]; ++ memset( block, 0, BLAKE2B_BLOCKBYTES ); ++ memcpy( block, key, keylen ); ++ ++ for( i = 0; i < PARALLELISM_DEGREE; ++i ) ++ blake2b_update( S[i], block, BLAKE2B_BLOCKBYTES ); ++ ++ secure_zero_memory( block, BLAKE2B_BLOCKBYTES ); /* Burn the key from stack */ ++ } ++ ++#if defined(_OPENMP) ++ #pragma omp parallel shared(S,hash), num_threads(PARALLELISM_DEGREE) ++#else ++ ++ for( i = 0; i < PARALLELISM_DEGREE; ++i ) ++#endif ++ { ++#if defined(_OPENMP) ++ size_t i = omp_get_thread_num(); ++#endif ++ size_t inlen__ = inlen; ++ const unsigned char *in__ = ( const unsigned char * )in; ++ in__ += i * BLAKE2B_BLOCKBYTES; ++ ++ while( inlen__ >= PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES ) ++ { ++ blake2b_update( S[i], in__, BLAKE2B_BLOCKBYTES ); ++ in__ += PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES; ++ inlen__ -= PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES; ++ } ++ ++ if( inlen__ > i * BLAKE2B_BLOCKBYTES ) ++ { ++ const size_t left = inlen__ - i * BLAKE2B_BLOCKBYTES; ++ const size_t len = left <= BLAKE2B_BLOCKBYTES ? left : BLAKE2B_BLOCKBYTES; ++ blake2b_update( S[i], in__, len ); ++ } ++ ++ blake2b_final( S[i], hash[i], BLAKE2B_OUTBYTES ); ++ } ++ ++ if( blake2bp_init_root( FS, outlen, keylen ) < 0 ) ++ return -1; ++ ++ FS->last_node = 1; /* Mark as last node */ ++ ++ for( i = 0; i < PARALLELISM_DEGREE; ++i ) ++ blake2b_update( FS, hash[i], BLAKE2B_OUTBYTES ); ++ ++ return blake2b_final( FS, out, outlen );; ++} ++ ++#if defined(BLAKE2BP_SELFTEST) ++#include <string.h> ++#include "blake2-kat.h" ++int main( void ) ++{ ++ uint8_t key[BLAKE2B_KEYBYTES]; ++ uint8_t buf[BLAKE2_KAT_LENGTH]; ++ size_t i, step; ++ ++ for( i = 0; i < BLAKE2B_KEYBYTES; ++i ) ++ key[i] = ( uint8_t )i; ++ ++ for( i = 0; i < BLAKE2_KAT_LENGTH; ++i ) ++ buf[i] = ( uint8_t )i; ++ ++ /* Test simple API */ ++ for( i = 0; i < BLAKE2_KAT_LENGTH; ++i ) ++ { ++ uint8_t hash[BLAKE2B_OUTBYTES]; ++ blake2bp( hash, BLAKE2B_OUTBYTES, buf, i, key, BLAKE2B_KEYBYTES ); ++ ++ if( 0 != memcmp( hash, blake2bp_keyed_kat[i], BLAKE2B_OUTBYTES ) ) ++ { ++ goto fail; ++ } ++ } ++ ++ /* Test streaming API */ ++ for(step = 1; step < BLAKE2B_BLOCKBYTES; ++step) { ++ for (i = 0; i < BLAKE2_KAT_LENGTH; ++i) { ++ uint8_t hash[BLAKE2B_OUTBYTES]; ++ blake2bp_state S; ++ uint8_t * p = buf; ++ size_t mlen = i; ++ int err = 0; ++ ++ if( (err = blake2bp_init_key(&S, BLAKE2B_OUTBYTES, key, BLAKE2B_KEYBYTES)) < 0 ) { ++ goto fail; ++ } ++ ++ while (mlen >= step) { ++ if ( (err = blake2bp_update(&S, p, step)) < 0 ) { ++ goto fail; ++ } ++ mlen -= step; ++ p += step; ++ } ++ if ( (err = blake2bp_update(&S, p, mlen)) < 0) { ++ goto fail; ++ } ++ if ( (err = blake2bp_final(&S, hash, BLAKE2B_OUTBYTES)) < 0) { ++ goto fail; ++ } ++ ++ if (0 != memcmp(hash, blake2bp_keyed_kat[i], BLAKE2B_OUTBYTES)) { ++ goto fail; ++ } ++ } ++ } ++ ++ puts( "ok" ); ++ return 0; ++fail: ++ puts("error"); ++ return -1; ++} ++#endif +--- thirdparty/blake2/ref/blake2s-ref.c.orig 2025-09-03 12:27:32 UTC ++++ thirdparty/blake2/ref/blake2s-ref.c +@@ -0,0 +1,367 @@ ++/* ++ BLAKE2 reference source code package - reference C implementations ++ ++ Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the ++ terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at ++ your option. The terms of these licenses can be found at: ++ ++ - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 ++ - OpenSSL license : https://www.openssl.org/source/license.html ++ - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 ++ ++ More information about the BLAKE2 hash function can be found at ++ https://blake2.net. ++*/ ++ ++#include <stdint.h> ++#include <string.h> ++#include <stdio.h> ++ ++#include "blake2.h" ++#include "blake2-impl.h" ++ ++static const uint32_t blake2s_IV[8] = ++{ ++ 0x6A09E667UL, 0xBB67AE85UL, 0x3C6EF372UL, 0xA54FF53AUL, ++ 0x510E527FUL, 0x9B05688CUL, 0x1F83D9ABUL, 0x5BE0CD19UL ++}; ++ ++static const uint8_t blake2s_sigma[10][16] = ++{ ++ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 } , ++ { 14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3 } , ++ { 11, 8, 12, 0, 5, 2, 15, 13, 10, 14, 3, 6, 7, 1, 9, 4 } , ++ { 7, 9, 3, 1, 13, 12, 11, 14, 2, 6, 5, 10, 4, 0, 15, 8 } , ++ { 9, 0, 5, 7, 2, 4, 10, 15, 14, 1, 11, 12, 6, 8, 3, 13 } , ++ { 2, 12, 6, 10, 0, 11, 8, 3, 4, 13, 7, 5, 15, 14, 1, 9 } , ++ { 12, 5, 1, 15, 14, 13, 4, 10, 0, 7, 6, 3, 9, 2, 8, 11 } , ++ { 13, 11, 7, 14, 12, 1, 3, 9, 5, 0, 15, 4, 8, 6, 2, 10 } , ++ { 6, 15, 14, 9, 11, 3, 0, 8, 12, 2, 13, 7, 1, 4, 10, 5 } , ++ { 10, 2, 8, 4, 7, 6, 1, 5, 15, 11, 9, 14, 3, 12, 13 , 0 } , ++}; ++ ++static void blake2s_set_lastnode( blake2s_state *S ) ++{ ++ S->f[1] = (uint32_t)-1; ++} ++ ++/* Some helper functions, not necessarily useful */ ++static int blake2s_is_lastblock( const blake2s_state *S ) ++{ ++ return S->f[0] != 0; ++} ++ ++static void blake2s_set_lastblock( blake2s_state *S ) ++{ ++ if( S->last_node ) blake2s_set_lastnode( S ); ++ ++ S->f[0] = (uint32_t)-1; ++} ++ ++static void blake2s_increment_counter( blake2s_state *S, const uint32_t inc ) ++{ ++ S->t[0] += inc; ++ S->t[1] += ( S->t[0] < inc ); ++} ++ ++static void blake2s_init0( blake2s_state *S ) ++{ ++ size_t i; ++ memset( S, 0, sizeof( blake2s_state ) ); ++ ++ for( i = 0; i < 8; ++i ) S->h[i] = blake2s_IV[i]; ++} ++ ++/* init2 xors IV with input parameter block */ ++int blake2s_init_param( blake2s_state *S, const blake2s_param *P ) ++{ ++ const unsigned char *p = ( const unsigned char * )( P ); ++ size_t i; ++ ++ blake2s_init0( S ); ++ ++ /* IV XOR ParamBlock */ ++ for( i = 0; i < 8; ++i ) ++ S->h[i] ^= load32( &p[i * 4] ); ++ ++ S->outlen = P->digest_length; ++ return 0; ++} ++ ++ ++/* Sequential blake2s initialization */ ++int blake2s_init( blake2s_state *S, size_t outlen ) ++{ ++ blake2s_param P[1]; ++ ++ /* Move interval verification here? */ ++ if ( ( !outlen ) || ( outlen > BLAKE2S_OUTBYTES ) ) return -1; ++ ++ P->digest_length = (uint8_t)outlen; ++ P->key_length = 0; ++ P->fanout = 1; ++ P->depth = 1; ++ store32( &P->leaf_length, 0 ); ++ store32( &P->node_offset, 0 ); ++ store16( &P->xof_length, 0 ); ++ P->node_depth = 0; ++ P->inner_length = 0; ++ /* memset(P->reserved, 0, sizeof(P->reserved) ); */ ++ memset( P->salt, 0, sizeof( P->salt ) ); ++ memset( P->personal, 0, sizeof( P->personal ) ); ++ return blake2s_init_param( S, P ); ++} ++ ++int blake2s_init_key( blake2s_state *S, size_t outlen, const void *key, size_t keylen ) ++{ ++ blake2s_param P[1]; ++ ++ if ( ( !outlen ) || ( outlen > BLAKE2S_OUTBYTES ) ) return -1; ++ ++ if ( !key || !keylen || keylen > BLAKE2S_KEYBYTES ) return -1; ++ ++ P->digest_length = (uint8_t)outlen; ++ P->key_length = (uint8_t)keylen; ++ P->fanout = 1; ++ P->depth = 1; ++ store32( &P->leaf_length, 0 ); ++ store32( &P->node_offset, 0 ); ++ store16( &P->xof_length, 0 ); ++ P->node_depth = 0; ++ P->inner_length = 0; ++ /* memset(P->reserved, 0, sizeof(P->reserved) ); */ ++ memset( P->salt, 0, sizeof( P->salt ) ); ++ memset( P->personal, 0, sizeof( P->personal ) ); ++ ++ if( blake2s_init_param( S, P ) < 0 ) return -1; ++ ++ { ++ uint8_t block[BLAKE2S_BLOCKBYTES]; ++ memset( block, 0, BLAKE2S_BLOCKBYTES ); ++ memcpy( block, key, keylen ); ++ blake2s_update( S, block, BLAKE2S_BLOCKBYTES ); ++ secure_zero_memory( block, BLAKE2S_BLOCKBYTES ); /* Burn the key from stack */ ++ } ++ return 0; ++} ++ ++#define G(r,i,a,b,c,d) \ ++ do { \ ++ a = a + b + m[blake2s_sigma[r][2*i+0]]; \ ++ d = rotr32(d ^ a, 16); \ ++ c = c + d; \ ++ b = rotr32(b ^ c, 12); \ ++ a = a + b + m[blake2s_sigma[r][2*i+1]]; \ ++ d = rotr32(d ^ a, 8); \ ++ c = c + d; \ ++ b = rotr32(b ^ c, 7); \ ++ } while(0) ++ ++#define ROUND(r) \ ++ do { \ ++ G(r,0,v[ 0],v[ 4],v[ 8],v[12]); \ ++ G(r,1,v[ 1],v[ 5],v[ 9],v[13]); \ ++ G(r,2,v[ 2],v[ 6],v[10],v[14]); \ ++ G(r,3,v[ 3],v[ 7],v[11],v[15]); \ ++ G(r,4,v[ 0],v[ 5],v[10],v[15]); \ ++ G(r,5,v[ 1],v[ 6],v[11],v[12]); \ ++ G(r,6,v[ 2],v[ 7],v[ 8],v[13]); \ ++ G(r,7,v[ 3],v[ 4],v[ 9],v[14]); \ ++ } while(0) ++ ++static void blake2s_compress( blake2s_state *S, const uint8_t in[BLAKE2S_BLOCKBYTES] ) ++{ ++ uint32_t m[16]; ++ uint32_t v[16]; ++ size_t i; ++ ++ for( i = 0; i < 16; ++i ) { ++ m[i] = load32( in + i * sizeof( m[i] ) ); ++ } ++ ++ for( i = 0; i < 8; ++i ) { ++ v[i] = S->h[i]; ++ } ++ ++ v[ 8] = blake2s_IV[0]; ++ v[ 9] = blake2s_IV[1]; ++ v[10] = blake2s_IV[2]; ++ v[11] = blake2s_IV[3]; ++ v[12] = S->t[0] ^ blake2s_IV[4]; ++ v[13] = S->t[1] ^ blake2s_IV[5]; ++ v[14] = S->f[0] ^ blake2s_IV[6]; ++ v[15] = S->f[1] ^ blake2s_IV[7]; ++ ++ ROUND( 0 ); ++ ROUND( 1 ); ++ ROUND( 2 ); ++ ROUND( 3 ); ++ ROUND( 4 ); ++ ROUND( 5 ); ++ ROUND( 6 ); ++ ROUND( 7 ); ++ ROUND( 8 ); ++ ROUND( 9 ); ++ ++ for( i = 0; i < 8; ++i ) { ++ S->h[i] = S->h[i] ^ v[i] ^ v[i + 8]; ++ } ++} ++ ++#undef G ++#undef ROUND ++ ++int blake2s_update( blake2s_state *S, const void *pin, size_t inlen ) ++{ ++ const unsigned char * in = (const unsigned char *)pin; ++ if( inlen > 0 ) ++ { ++ size_t left = S->buflen; ++ size_t fill = BLAKE2S_BLOCKBYTES - left; ++ if( inlen > fill ) ++ { ++ S->buflen = 0; ++ memcpy( S->buf + left, in, fill ); /* Fill buffer */ ++ blake2s_increment_counter( S, BLAKE2S_BLOCKBYTES ); ++ blake2s_compress( S, S->buf ); /* Compress */ ++ in += fill; inlen -= fill; ++ while(inlen > BLAKE2S_BLOCKBYTES) { ++ blake2s_increment_counter(S, BLAKE2S_BLOCKBYTES); ++ blake2s_compress( S, in ); ++ in += BLAKE2S_BLOCKBYTES; ++ inlen -= BLAKE2S_BLOCKBYTES; ++ } ++ } ++ memcpy( S->buf + S->buflen, in, inlen ); ++ S->buflen += inlen; ++ } ++ return 0; ++} ++ ++int blake2s_final( blake2s_state *S, void *out, size_t outlen ) ++{ ++ uint8_t buffer[BLAKE2S_OUTBYTES] = {0}; ++ size_t i; ++ ++ if( out == NULL || outlen < S->outlen ) ++ return -1; ++ ++ if( blake2s_is_lastblock( S ) ) ++ return -1; ++ ++ blake2s_increment_counter( S, ( uint32_t )S->buflen ); ++ blake2s_set_lastblock( S ); ++ memset( S->buf + S->buflen, 0, BLAKE2S_BLOCKBYTES - S->buflen ); /* Padding */ ++ blake2s_compress( S, S->buf ); ++ ++ for( i = 0; i < 8; ++i ) /* Output full hash to temp buffer */ ++ store32( buffer + sizeof( S->h[i] ) * i, S->h[i] ); ++ ++ memcpy( out, buffer, outlen ); ++ secure_zero_memory(buffer, sizeof(buffer)); ++ return 0; ++} ++ ++int blake2s( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen ) ++{ ++ blake2s_state S[1]; ++ ++ /* Verify parameters */ ++ if ( NULL == in && inlen > 0 ) return -1; ++ ++ if ( NULL == out ) return -1; ++ ++ if ( NULL == key && keylen > 0) return -1; ++ ++ if( !outlen || outlen > BLAKE2S_OUTBYTES ) return -1; ++ ++ if( keylen > BLAKE2S_KEYBYTES ) return -1; ++ ++ if( keylen > 0 ) ++ { ++ if( blake2s_init_key( S, outlen, key, keylen ) < 0 ) return -1; ++ } ++ else ++ { ++ if( blake2s_init( S, outlen ) < 0 ) return -1; ++ } ++ ++ blake2s_update( S, ( const uint8_t * )in, inlen ); ++ blake2s_final( S, out, outlen ); ++ return 0; ++} ++ ++#if defined(SUPERCOP) ++int crypto_hash( unsigned char *out, unsigned char *in, unsigned long long inlen ) ++{ ++ return blake2s( out, BLAKE2S_OUTBYTES, in, inlen, NULL, 0 ); ++} ++#endif ++ ++#if defined(BLAKE2S_SELFTEST) ++#include <string.h> ++#include "blake2-kat.h" ++int main( void ) ++{ ++ uint8_t key[BLAKE2S_KEYBYTES]; ++ uint8_t buf[BLAKE2_KAT_LENGTH]; ++ size_t i, step; ++ ++ for( i = 0; i < BLAKE2S_KEYBYTES; ++i ) ++ key[i] = ( uint8_t )i; ++ ++ for( i = 0; i < BLAKE2_KAT_LENGTH; ++i ) ++ buf[i] = ( uint8_t )i; ++ ++ /* Test simple API */ ++ for( i = 0; i < BLAKE2_KAT_LENGTH; ++i ) ++ { ++ uint8_t hash[BLAKE2S_OUTBYTES]; ++ blake2s( hash, BLAKE2S_OUTBYTES, buf, i, key, BLAKE2S_KEYBYTES ); ++ ++ if( 0 != memcmp( hash, blake2s_keyed_kat[i], BLAKE2S_OUTBYTES ) ) ++ { ++ goto fail; ++ } ++ } ++ ++ /* Test streaming API */ ++ for(step = 1; step < BLAKE2S_BLOCKBYTES; ++step) { ++ for (i = 0; i < BLAKE2_KAT_LENGTH; ++i) { ++ uint8_t hash[BLAKE2S_OUTBYTES]; ++ blake2s_state S; ++ uint8_t * p = buf; ++ size_t mlen = i; ++ int err = 0; ++ ++ if( (err = blake2s_init_key(&S, BLAKE2S_OUTBYTES, key, BLAKE2S_KEYBYTES)) < 0 ) { ++ goto fail; ++ } ++ ++ while (mlen >= step) { ++ if ( (err = blake2s_update(&S, p, step)) < 0 ) { ++ goto fail; ++ } ++ mlen -= step; ++ p += step; ++ } ++ if ( (err = blake2s_update(&S, p, mlen)) < 0) { ++ goto fail; ++ } ++ if ( (err = blake2s_final(&S, hash, BLAKE2S_OUTBYTES)) < 0) { ++ goto fail; ++ } ++ ++ if (0 != memcmp(hash, blake2s_keyed_kat[i], BLAKE2S_OUTBYTES)) { ++ goto fail; ++ } ++ } ++ } ++ ++ puts( "ok" ); ++ return 0; ++fail: ++ puts("error"); ++ return -1; ++} ++#endif +--- thirdparty/blake2/ref/blake2sp-ref.c.orig 2025-09-03 12:27:32 UTC ++++ thirdparty/blake2/ref/blake2sp-ref.c +@@ -0,0 +1,359 @@ ++/* ++ BLAKE2 reference source code package - reference C implementations ++ ++ Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the ++ terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at ++ your option. The terms of these licenses can be found at: ++ ++ - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 ++ - OpenSSL license : https://www.openssl.org/source/license.html ++ - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 ++ ++ More information about the BLAKE2 hash function can be found at ++ https://blake2.net. ++*/ ++ ++#include <stdlib.h> ++#include <string.h> ++#include <stdio.h> ++ ++#if defined(_OPENMP) ++#include <omp.h> ++#endif ++ ++#include "blake2.h" ++#include "blake2-impl.h" ++ ++#define PARALLELISM_DEGREE 8 ++ ++/* ++ blake2sp_init_param defaults to setting the expecting output length ++ from the digest_length parameter block field. ++ ++ In some cases, however, we do not want this, as the output length ++ of these instances is given by inner_length instead. ++*/ ++static int blake2sp_init_leaf_param( blake2s_state *S, const blake2s_param *P ) ++{ ++ int err = blake2s_init_param(S, P); ++ S->outlen = P->inner_length; ++ return err; ++} ++ ++static int blake2sp_init_leaf( blake2s_state *S, size_t outlen, size_t keylen, uint64_t offset ) ++{ ++ blake2s_param P[1]; ++ P->digest_length = (uint8_t)outlen; ++ P->key_length = (uint8_t)keylen; ++ P->fanout = PARALLELISM_DEGREE; ++ P->depth = 2; ++ store32( &P->leaf_length, 0 ); ++ store32( &P->node_offset, offset ); ++ store16( &P->xof_length, 0 ); ++ P->node_depth = 0; ++ P->inner_length = BLAKE2S_OUTBYTES; ++ memset( P->salt, 0, sizeof( P->salt ) ); ++ memset( P->personal, 0, sizeof( P->personal ) ); ++ return blake2sp_init_leaf_param( S, P ); ++} ++ ++static int blake2sp_init_root( blake2s_state *S, size_t outlen, size_t keylen ) ++{ ++ blake2s_param P[1]; ++ P->digest_length = (uint8_t)outlen; ++ P->key_length = (uint8_t)keylen; ++ P->fanout = PARALLELISM_DEGREE; ++ P->depth = 2; ++ store32( &P->leaf_length, 0 ); ++ store32( &P->node_offset, 0 ); ++ store16( &P->xof_length, 0 ); ++ P->node_depth = 1; ++ P->inner_length = BLAKE2S_OUTBYTES; ++ memset( P->salt, 0, sizeof( P->salt ) ); ++ memset( P->personal, 0, sizeof( P->personal ) ); ++ return blake2s_init_param( S, P ); ++} ++ ++ ++int blake2sp_init( blake2sp_state *S, size_t outlen ) ++{ ++ size_t i; ++ ++ if( !outlen || outlen > BLAKE2S_OUTBYTES ) return -1; ++ ++ memset( S->buf, 0, sizeof( S->buf ) ); ++ S->buflen = 0; ++ S->outlen = outlen; ++ ++ if( blake2sp_init_root( S->R, outlen, 0 ) < 0 ) ++ return -1; ++ ++ for( i = 0; i < PARALLELISM_DEGREE; ++i ) ++ if( blake2sp_init_leaf( S->S[i], outlen, 0, i ) < 0 ) return -1; ++ ++ S->R->last_node = 1; ++ S->S[PARALLELISM_DEGREE - 1]->last_node = 1; ++ return 0; ++} ++ ++int blake2sp_init_key( blake2sp_state *S, size_t outlen, const void *key, size_t keylen ) ++{ ++ size_t i; ++ ++ if( !outlen || outlen > BLAKE2S_OUTBYTES ) return -1; ++ ++ if( !key || !keylen || keylen > BLAKE2S_KEYBYTES ) return -1; ++ ++ memset( S->buf, 0, sizeof( S->buf ) ); ++ S->buflen = 0; ++ S->outlen = outlen; ++ ++ if( blake2sp_init_root( S->R, outlen, keylen ) < 0 ) ++ return -1; ++ ++ for( i = 0; i < PARALLELISM_DEGREE; ++i ) ++ if( blake2sp_init_leaf( S->S[i], outlen, keylen, i ) < 0 ) return -1; ++ ++ S->R->last_node = 1; ++ S->S[PARALLELISM_DEGREE - 1]->last_node = 1; ++ { ++ uint8_t block[BLAKE2S_BLOCKBYTES]; ++ memset( block, 0, BLAKE2S_BLOCKBYTES ); ++ memcpy( block, key, keylen ); ++ ++ for( i = 0; i < PARALLELISM_DEGREE; ++i ) ++ blake2s_update( S->S[i], block, BLAKE2S_BLOCKBYTES ); ++ ++ secure_zero_memory( block, BLAKE2S_BLOCKBYTES ); /* Burn the key from stack */ ++ } ++ return 0; ++} ++ ++ ++int blake2sp_update( blake2sp_state *S, const void *pin, size_t inlen ) ++{ ++ const unsigned char * in = (const unsigned char *)pin; ++ size_t left = S->buflen; ++ size_t fill = sizeof( S->buf ) - left; ++ size_t i; ++ ++ if( left && inlen >= fill ) ++ { ++ memcpy( S->buf + left, in, fill ); ++ ++ for( i = 0; i < PARALLELISM_DEGREE; ++i ) ++ blake2s_update( S->S[i], S->buf + i * BLAKE2S_BLOCKBYTES, BLAKE2S_BLOCKBYTES ); ++ ++ in += fill; ++ inlen -= fill; ++ left = 0; ++ } ++ ++#if defined(_OPENMP) ++ #pragma omp parallel shared(S), num_threads(PARALLELISM_DEGREE) ++#else ++ for( i = 0; i < PARALLELISM_DEGREE; ++i ) ++#endif ++ { ++#if defined(_OPENMP) ++ size_t i = omp_get_thread_num(); ++#endif ++ size_t inlen__ = inlen; ++ const unsigned char *in__ = ( const unsigned char * )in; ++ in__ += i * BLAKE2S_BLOCKBYTES; ++ ++ while( inlen__ >= PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES ) ++ { ++ blake2s_update( S->S[i], in__, BLAKE2S_BLOCKBYTES ); ++ in__ += PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES; ++ inlen__ -= PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES; ++ } ++ } ++ ++ in += inlen - inlen % ( PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES ); ++ inlen %= PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES; ++ ++ if( inlen > 0 ) ++ memcpy( S->buf + left, in, inlen ); ++ ++ S->buflen = left + inlen; ++ return 0; ++} ++ ++ ++int blake2sp_final( blake2sp_state *S, void *out, size_t outlen ) ++{ ++ uint8_t hash[PARALLELISM_DEGREE][BLAKE2S_OUTBYTES]; ++ size_t i; ++ ++ if(out == NULL || outlen < S->outlen) { ++ return -1; ++ } ++ ++ for( i = 0; i < PARALLELISM_DEGREE; ++i ) ++ { ++ if( S->buflen > i * BLAKE2S_BLOCKBYTES ) ++ { ++ size_t left = S->buflen - i * BLAKE2S_BLOCKBYTES; ++ ++ if( left > BLAKE2S_BLOCKBYTES ) left = BLAKE2S_BLOCKBYTES; ++ ++ blake2s_update( S->S[i], S->buf + i * BLAKE2S_BLOCKBYTES, left ); ++ } ++ ++ blake2s_final( S->S[i], hash[i], BLAKE2S_OUTBYTES ); ++ } ++ ++ for( i = 0; i < PARALLELISM_DEGREE; ++i ) ++ blake2s_update( S->R, hash[i], BLAKE2S_OUTBYTES ); ++ ++ return blake2s_final( S->R, out, S->outlen ); ++} ++ ++ ++int blake2sp( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen ) ++{ ++ uint8_t hash[PARALLELISM_DEGREE][BLAKE2S_OUTBYTES]; ++ blake2s_state S[PARALLELISM_DEGREE][1]; ++ blake2s_state FS[1]; ++ size_t i; ++ ++ /* Verify parameters */ ++ if ( NULL == in && inlen > 0 ) return -1; ++ ++ if ( NULL == out ) return -1; ++ ++ if ( NULL == key && keylen > 0) return -1; ++ ++ if( !outlen || outlen > BLAKE2S_OUTBYTES ) return -1; ++ ++ if( keylen > BLAKE2S_KEYBYTES ) return -1; ++ ++ for( i = 0; i < PARALLELISM_DEGREE; ++i ) ++ if( blake2sp_init_leaf( S[i], outlen, keylen, i ) < 0 ) return -1; ++ ++ S[PARALLELISM_DEGREE - 1]->last_node = 1; /* mark last node */ ++ ++ if( keylen > 0 ) ++ { ++ uint8_t block[BLAKE2S_BLOCKBYTES]; ++ memset( block, 0, BLAKE2S_BLOCKBYTES ); ++ memcpy( block, key, keylen ); ++ ++ for( i = 0; i < PARALLELISM_DEGREE; ++i ) ++ blake2s_update( S[i], block, BLAKE2S_BLOCKBYTES ); ++ ++ secure_zero_memory( block, BLAKE2S_BLOCKBYTES ); /* Burn the key from stack */ ++ } ++ ++#if defined(_OPENMP) ++ #pragma omp parallel shared(S,hash), num_threads(PARALLELISM_DEGREE) ++#else ++ ++ for( i = 0; i < PARALLELISM_DEGREE; ++i ) ++#endif ++ { ++#if defined(_OPENMP) ++ size_t i = omp_get_thread_num(); ++#endif ++ size_t inlen__ = inlen; ++ const unsigned char *in__ = ( const unsigned char * )in; ++ in__ += i * BLAKE2S_BLOCKBYTES; ++ ++ while( inlen__ >= PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES ) ++ { ++ blake2s_update( S[i], in__, BLAKE2S_BLOCKBYTES ); ++ in__ += PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES; ++ inlen__ -= PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES; ++ } ++ ++ if( inlen__ > i * BLAKE2S_BLOCKBYTES ) ++ { ++ const size_t left = inlen__ - i * BLAKE2S_BLOCKBYTES; ++ const size_t len = left <= BLAKE2S_BLOCKBYTES ? left : BLAKE2S_BLOCKBYTES; ++ blake2s_update( S[i], in__, len ); ++ } ++ ++ blake2s_final( S[i], hash[i], BLAKE2S_OUTBYTES ); ++ } ++ ++ if( blake2sp_init_root( FS, outlen, keylen ) < 0 ) ++ return -1; ++ ++ FS->last_node = 1; ++ ++ for( i = 0; i < PARALLELISM_DEGREE; ++i ) ++ blake2s_update( FS, hash[i], BLAKE2S_OUTBYTES ); ++ ++ return blake2s_final( FS, out, outlen ); ++} ++ ++ ++ ++#if defined(BLAKE2SP_SELFTEST) ++#include <string.h> ++#include "blake2-kat.h" ++int main( void ) ++{ ++ uint8_t key[BLAKE2S_KEYBYTES]; ++ uint8_t buf[BLAKE2_KAT_LENGTH]; ++ size_t i, step; ++ ++ for( i = 0; i < BLAKE2S_KEYBYTES; ++i ) ++ key[i] = ( uint8_t )i; ++ ++ for( i = 0; i < BLAKE2_KAT_LENGTH; ++i ) ++ buf[i] = ( uint8_t )i; ++ ++ /* Test simple API */ ++ for( i = 0; i < BLAKE2_KAT_LENGTH; ++i ) ++ { ++ uint8_t hash[BLAKE2S_OUTBYTES]; ++ blake2sp( hash, BLAKE2S_OUTBYTES, buf, i, key, BLAKE2S_KEYBYTES ); ++ ++ if( 0 != memcmp( hash, blake2sp_keyed_kat[i], BLAKE2S_OUTBYTES ) ) ++ { ++ goto fail; ++ } ++ } ++ ++ /* Test streaming API */ ++ for(step = 1; step < BLAKE2S_BLOCKBYTES; ++step) { ++ for (i = 0; i < BLAKE2_KAT_LENGTH; ++i) { ++ uint8_t hash[BLAKE2S_OUTBYTES]; ++ blake2sp_state S; ++ uint8_t * p = buf; ++ size_t mlen = i; ++ int err = 0; ++ ++ if( (err = blake2sp_init_key(&S, BLAKE2S_OUTBYTES, key, BLAKE2S_KEYBYTES)) < 0 ) { ++ goto fail; ++ } ++ ++ while (mlen >= step) { ++ if ( (err = blake2sp_update(&S, p, step)) < 0 ) { ++ goto fail; ++ } ++ mlen -= step; ++ p += step; ++ } ++ if ( (err = blake2sp_update(&S, p, mlen)) < 0) { ++ goto fail; ++ } ++ if ( (err = blake2sp_final(&S, hash, BLAKE2S_OUTBYTES)) < 0) { ++ goto fail; ++ } ++ ++ if (0 != memcmp(hash, blake2sp_keyed_kat[i], BLAKE2S_OUTBYTES)) { ++ goto fail; ++ } ++ } ++ } ++ ++ puts( "ok" ); ++ return 0; ++fail: ++ puts("error"); ++ return -1; ++} ++#endif +--- thirdparty/blake2/ref/blake2xb-ref.c.orig 2025-09-03 12:27:32 UTC ++++ thirdparty/blake2/ref/blake2xb-ref.c +@@ -0,0 +1,241 @@ ++/* ++ BLAKE2 reference source code package - reference C implementations ++ ++ Copyright 2016, JP Aumasson <jeanphilippe.aumasson@gmail.com>. ++ Copyright 2016, Samuel Neves <sneves@dei.uc.pt>. ++ ++ You may use this under the terms of the CC0, the OpenSSL Licence, or ++ the Apache Public License 2.0, at your option. The terms of these ++ licenses can be found at: ++ ++ - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 ++ - OpenSSL license : https://www.openssl.org/source/license.html ++ - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 ++ ++ More information about the BLAKE2 hash function can be found at ++ https://blake2.net. ++*/ ++ ++#include <stdint.h> ++#include <string.h> ++#include <stdio.h> ++ ++#include "blake2.h" ++#include "blake2-impl.h" ++ ++int blake2xb_init( blake2xb_state *S, const size_t outlen ) { ++ return blake2xb_init_key(S, outlen, NULL, 0); ++} ++ ++int blake2xb_init_key( blake2xb_state *S, const size_t outlen, const void *key, size_t keylen) ++{ ++ if ( outlen == 0 || outlen > 0xFFFFFFFFUL ) { ++ return -1; ++ } ++ ++ if (NULL != key && keylen > BLAKE2B_KEYBYTES) { ++ return -1; ++ } ++ ++ if (NULL == key && keylen > 0) { ++ return -1; ++ } ++ ++ /* Initialize parameter block */ ++ S->P->digest_length = BLAKE2B_OUTBYTES; ++ S->P->key_length = keylen; ++ S->P->fanout = 1; ++ S->P->depth = 1; ++ store32( &S->P->leaf_length, 0 ); ++ store32( &S->P->node_offset, 0 ); ++ store32( &S->P->xof_length, outlen ); ++ S->P->node_depth = 0; ++ S->P->inner_length = 0; ++ memset( S->P->reserved, 0, sizeof( S->P->reserved ) ); ++ memset( S->P->salt, 0, sizeof( S->P->salt ) ); ++ memset( S->P->personal, 0, sizeof( S->P->personal ) ); ++ ++ if( blake2b_init_param( S->S, S->P ) < 0 ) { ++ return -1; ++ } ++ ++ if (keylen > 0) { ++ uint8_t block[BLAKE2B_BLOCKBYTES]; ++ memset(block, 0, BLAKE2B_BLOCKBYTES); ++ memcpy(block, key, keylen); ++ blake2b_update(S->S, block, BLAKE2B_BLOCKBYTES); ++ secure_zero_memory(block, BLAKE2B_BLOCKBYTES); ++ } ++ return 0; ++} ++ ++int blake2xb_update( blake2xb_state *S, const void *in, size_t inlen ) { ++ return blake2b_update( S->S, in, inlen ); ++} ++ ++int blake2xb_final( blake2xb_state *S, void *out, size_t outlen) { ++ ++ blake2b_state C[1]; ++ blake2b_param P[1]; ++ uint32_t xof_length = load32(&S->P->xof_length); ++ uint8_t root[BLAKE2B_BLOCKBYTES]; ++ size_t i; ++ ++ if (NULL == out) { ++ return -1; ++ } ++ ++ /* outlen must match the output size defined in xof_length, */ ++ /* unless it was -1, in which case anything goes except 0. */ ++ if(xof_length == 0xFFFFFFFFUL) { ++ if(outlen == 0) { ++ return -1; ++ } ++ } else { ++ if(outlen != xof_length) { ++ return -1; ++ } ++ } ++ ++ /* Finalize the root hash */ ++ if (blake2b_final(S->S, root, BLAKE2B_OUTBYTES) < 0) { ++ return -1; ++ } ++ ++ /* Set common block structure values */ ++ /* Copy values from parent instance, and only change the ones below */ ++ memcpy(P, S->P, sizeof(blake2b_param)); ++ P->key_length = 0; ++ P->fanout = 0; ++ P->depth = 0; ++ store32(&P->leaf_length, BLAKE2B_OUTBYTES); ++ P->inner_length = BLAKE2B_OUTBYTES; ++ P->node_depth = 0; ++ ++ for (i = 0; outlen > 0; ++i) { ++ const size_t block_size = (outlen < BLAKE2B_OUTBYTES) ? outlen : BLAKE2B_OUTBYTES; ++ /* Initialize state */ ++ P->digest_length = block_size; ++ store32(&P->node_offset, i); ++ blake2b_init_param(C, P); ++ /* Process key if needed */ ++ blake2b_update(C, root, BLAKE2B_OUTBYTES); ++ if (blake2b_final(C, (uint8_t *)out + i * BLAKE2B_OUTBYTES, block_size) < 0 ) { ++ return -1; ++ } ++ outlen -= block_size; ++ } ++ secure_zero_memory(root, sizeof(root)); ++ secure_zero_memory(P, sizeof(P)); ++ secure_zero_memory(C, sizeof(C)); ++ /* Put blake2xb in an invalid state? cf. blake2s_is_lastblock */ ++ return 0; ++ ++} ++ ++int blake2xb(void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen) ++{ ++ blake2xb_state S[1]; ++ ++ /* Verify parameters */ ++ if (NULL == in && inlen > 0) ++ return -1; ++ ++ if (NULL == out) ++ return -1; ++ ++ if (NULL == key && keylen > 0) ++ return -1; ++ ++ if (keylen > BLAKE2B_KEYBYTES) ++ return -1; ++ ++ if (outlen == 0) ++ return -1; ++ ++ /* Initialize the root block structure */ ++ if (blake2xb_init_key(S, outlen, key, keylen) < 0) { ++ return -1; ++ } ++ ++ /* Absorb the input message */ ++ blake2xb_update(S, in, inlen); ++ ++ /* Compute the root node of the tree and the final hash using the counter construction */ ++ return blake2xb_final(S, out, outlen); ++} ++ ++#if defined(BLAKE2XB_SELFTEST) ++#include <string.h> ++#include "blake2-kat.h" ++int main( void ) ++{ ++ uint8_t key[BLAKE2B_KEYBYTES]; ++ uint8_t buf[BLAKE2_KAT_LENGTH]; ++ size_t i, step, outlen; ++ ++ for( i = 0; i < BLAKE2B_KEYBYTES; ++i ) { ++ key[i] = ( uint8_t )i; ++ } ++ ++ for( i = 0; i < BLAKE2_KAT_LENGTH; ++i ) { ++ buf[i] = ( uint8_t )i; ++ } ++ ++ /* Testing length of outputs rather than inputs */ ++ /* (Test of input lengths mostly covered by blake2b tests) */ ++ ++ /* Test simple API */ ++ for( outlen = 1; outlen <= BLAKE2_KAT_LENGTH; ++outlen ) ++ { ++ uint8_t hash[BLAKE2_KAT_LENGTH] = {0}; ++ if( blake2xb( hash, outlen, buf, BLAKE2_KAT_LENGTH, key, BLAKE2B_KEYBYTES ) < 0 ) { ++ goto fail; ++ } ++ ++ if( 0 != memcmp( hash, blake2xb_keyed_kat[outlen-1], outlen ) ) ++ { ++ goto fail; ++ } ++ } ++ ++ /* Test streaming API */ ++ for(step = 1; step < BLAKE2B_BLOCKBYTES; ++step) { ++ for (outlen = 1; outlen <= BLAKE2_KAT_LENGTH; ++outlen) { ++ uint8_t hash[BLAKE2_KAT_LENGTH]; ++ blake2xb_state S; ++ uint8_t * p = buf; ++ size_t mlen = BLAKE2_KAT_LENGTH; ++ int err = 0; ++ ++ if( (err = blake2xb_init_key(&S, outlen, key, BLAKE2B_KEYBYTES)) < 0 ) { ++ goto fail; ++ } ++ ++ while (mlen >= step) { ++ if ( (err = blake2xb_update(&S, p, step)) < 0 ) { ++ goto fail; ++ } ++ mlen -= step; ++ p += step; ++ } ++ if ( (err = blake2xb_update(&S, p, mlen)) < 0) { ++ goto fail; ++ } ++ if ( (err = blake2xb_final(&S, hash, outlen)) < 0) { ++ goto fail; ++ } ++ ++ if (0 != memcmp(hash, blake2xb_keyed_kat[outlen-1], outlen)) { ++ goto fail; ++ } ++ } ++ } ++ ++ puts( "ok" ); ++ return 0; ++fail: ++ puts("error"); ++ return -1; ++} ++#endif +--- thirdparty/blake2/ref/blake2xs-ref.c.orig 2025-09-03 12:27:32 UTC ++++ thirdparty/blake2/ref/blake2xs-ref.c +@@ -0,0 +1,239 @@ ++/* ++ BLAKE2 reference source code package - reference C implementations ++ ++ Copyright 2016, JP Aumasson <jeanphilippe.aumasson@gmail.com>. ++ Copyright 2016, Samuel Neves <sneves@dei.uc.pt>. ++ ++ You may use this under the terms of the CC0, the OpenSSL Licence, or ++ the Apache Public License 2.0, at your option. The terms of these ++ licenses can be found at: ++ ++ - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 ++ - OpenSSL license : https://www.openssl.org/source/license.html ++ - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 ++ ++ More information about the BLAKE2 hash function can be found at ++ https://blake2.net. ++*/ ++ ++#include <stdint.h> ++#include <string.h> ++#include <stdio.h> ++ ++#include "blake2.h" ++#include "blake2-impl.h" ++ ++int blake2xs_init( blake2xs_state *S, const size_t outlen ) { ++ return blake2xs_init_key(S, outlen, NULL, 0); ++} ++ ++int blake2xs_init_key( blake2xs_state *S, const size_t outlen, const void *key, size_t keylen ) ++{ ++ if ( outlen == 0 || outlen > 0xFFFFUL ) { ++ return -1; ++ } ++ ++ if (NULL != key && keylen > BLAKE2B_KEYBYTES) { ++ return -1; ++ } ++ ++ if (NULL == key && keylen > 0) { ++ return -1; ++ } ++ ++ /* Initialize parameter block */ ++ S->P->digest_length = BLAKE2S_OUTBYTES; ++ S->P->key_length = keylen; ++ S->P->fanout = 1; ++ S->P->depth = 1; ++ store32( &S->P->leaf_length, 0 ); ++ store32( &S->P->node_offset, 0 ); ++ store16( &S->P->xof_length, outlen ); ++ S->P->node_depth = 0; ++ S->P->inner_length = 0; ++ memset( S->P->salt, 0, sizeof( S->P->salt ) ); ++ memset( S->P->personal, 0, sizeof( S->P->personal ) ); ++ ++ if( blake2s_init_param( S->S, S->P ) < 0 ) { ++ return -1; ++ } ++ ++ if (keylen > 0) { ++ uint8_t block[BLAKE2S_BLOCKBYTES]; ++ memset(block, 0, BLAKE2S_BLOCKBYTES); ++ memcpy(block, key, keylen); ++ blake2s_update(S->S, block, BLAKE2S_BLOCKBYTES); ++ secure_zero_memory(block, BLAKE2S_BLOCKBYTES); ++ } ++ return 0; ++} ++ ++int blake2xs_update( blake2xs_state *S, const void *in, size_t inlen ) { ++ return blake2s_update( S->S, in, inlen ); ++} ++ ++int blake2xs_final(blake2xs_state *S, void *out, size_t outlen) { ++ ++ blake2s_state C[1]; ++ blake2s_param P[1]; ++ uint16_t xof_length = load16(&S->P->xof_length); ++ uint8_t root[BLAKE2S_BLOCKBYTES]; ++ size_t i; ++ ++ if (NULL == out) { ++ return -1; ++ } ++ ++ /* outlen must match the output size defined in xof_length, */ ++ /* unless it was -1, in which case anything goes except 0. */ ++ if(xof_length == 0xFFFFUL) { ++ if(outlen == 0) { ++ return -1; ++ } ++ } else { ++ if(outlen != xof_length) { ++ return -1; ++ } ++ } ++ ++ /* Finalize the root hash */ ++ if (blake2s_final(S->S, root, BLAKE2S_OUTBYTES) < 0) { ++ return -1; ++ } ++ ++ /* Set common block structure values */ ++ /* Copy values from parent instance, and only change the ones below */ ++ memcpy(P, S->P, sizeof(blake2s_param)); ++ P->key_length = 0; ++ P->fanout = 0; ++ P->depth = 0; ++ store32(&P->leaf_length, BLAKE2S_OUTBYTES); ++ P->inner_length = BLAKE2S_OUTBYTES; ++ P->node_depth = 0; ++ ++ for (i = 0; outlen > 0; ++i) { ++ const size_t block_size = (outlen < BLAKE2S_OUTBYTES) ? outlen : BLAKE2S_OUTBYTES; ++ /* Initialize state */ ++ P->digest_length = block_size; ++ store32(&P->node_offset, i); ++ blake2s_init_param(C, P); ++ /* Process key if needed */ ++ blake2s_update(C, root, BLAKE2S_OUTBYTES); ++ if (blake2s_final(C, (uint8_t *)out + i * BLAKE2S_OUTBYTES, block_size) < 0) { ++ return -1; ++ } ++ outlen -= block_size; ++ } ++ secure_zero_memory(root, sizeof(root)); ++ secure_zero_memory(P, sizeof(P)); ++ secure_zero_memory(C, sizeof(C)); ++ /* Put blake2xs in an invalid state? cf. blake2s_is_lastblock */ ++ return 0; ++} ++ ++int blake2xs(void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen) ++{ ++ blake2xs_state S[1]; ++ ++ /* Verify parameters */ ++ if (NULL == in && inlen > 0) ++ return -1; ++ ++ if (NULL == out) ++ return -1; ++ ++ if (NULL == key && keylen > 0) ++ return -1; ++ ++ if (keylen > BLAKE2S_KEYBYTES) ++ return -1; ++ ++ if (outlen == 0) ++ return -1; ++ ++ /* Initialize the root block structure */ ++ if (blake2xs_init_key(S, outlen, key, keylen) < 0) { ++ return -1; ++ } ++ ++ /* Absorb the input message */ ++ blake2xs_update(S, in, inlen); ++ ++ /* Compute the root node of the tree and the final hash using the counter construction */ ++ return blake2xs_final(S, out, outlen); ++} ++ ++#if defined(BLAKE2XS_SELFTEST) ++#include <string.h> ++#include "blake2-kat.h" ++int main( void ) ++{ ++ uint8_t key[BLAKE2S_KEYBYTES]; ++ uint8_t buf[BLAKE2_KAT_LENGTH]; ++ size_t i, step, outlen; ++ ++ for( i = 0; i < BLAKE2S_KEYBYTES; ++i ) { ++ key[i] = ( uint8_t )i; ++ } ++ ++ for( i = 0; i < BLAKE2_KAT_LENGTH; ++i ) { ++ buf[i] = ( uint8_t )i; ++ } ++ ++ /* Testing length of outputs rather than inputs */ ++ /* (Test of input lengths mostly covered by blake2s tests) */ ++ ++ /* Test simple API */ ++ for( outlen = 1; outlen <= BLAKE2_KAT_LENGTH; ++outlen ) ++ { ++ uint8_t hash[BLAKE2_KAT_LENGTH] = {0}; ++ if( blake2xs( hash, outlen, buf, BLAKE2_KAT_LENGTH, key, BLAKE2S_KEYBYTES ) < 0 ) { ++ goto fail; ++ } ++ ++ if( 0 != memcmp( hash, blake2xs_keyed_kat[outlen-1], outlen ) ) ++ { ++ goto fail; ++ } ++ } ++ ++ /* Test streaming API */ ++ for(step = 1; step < BLAKE2S_BLOCKBYTES; ++step) { ++ for (outlen = 1; outlen <= BLAKE2_KAT_LENGTH; ++outlen) { ++ uint8_t hash[BLAKE2_KAT_LENGTH]; ++ blake2xs_state S; ++ uint8_t * p = buf; ++ size_t mlen = BLAKE2_KAT_LENGTH; ++ int err = 0; ++ ++ if( (err = blake2xs_init_key(&S, outlen, key, BLAKE2S_KEYBYTES)) < 0 ) { ++ goto fail; ++ } ++ ++ while (mlen >= step) { ++ if ( (err = blake2xs_update(&S, p, step)) < 0 ) { ++ goto fail; ++ } ++ mlen -= step; ++ p += step; ++ } ++ if ( (err = blake2xs_update(&S, p, mlen)) < 0) { ++ goto fail; ++ } ++ if ( (err = blake2xs_final(&S, hash, outlen)) < 0) { ++ goto fail; ++ } ++ ++ if (0 != memcmp(hash, blake2xs_keyed_kat[outlen-1], outlen)) { ++ goto fail; ++ } ++ } ++ } ++ ++ puts( "ok" ); ++ return 0; ++fail: ++ puts("error"); ++ return -1; ++} ++#endif +--- thirdparty/blake2/ref/genkat-c.c.orig 2025-09-03 12:27:32 UTC ++++ thirdparty/blake2/ref/genkat-c.c +@@ -0,0 +1,139 @@ ++/* ++ BLAKE2 reference source code package - reference C implementations ++ ++ Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the ++ terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at ++ your option. The terms of these licenses can be found at: ++ ++ - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 ++ - OpenSSL license : https://www.openssl.org/source/license.html ++ - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 ++ ++ More information about the BLAKE2 hash function can be found at ++ https://blake2.net. ++*/ ++ ++#include <stdint.h> ++#include <stdio.h> ++#include <stdlib.h> ++#include <string.h> ++ ++#include "blake2.h" ++ ++#define STR_(x) #x ++#define STR(x) STR_(x) ++ ++#define LENGTH 256 ++ ++#define MAKE_KAT(name, size_prefix) \ ++ do { \ ++ printf("static const uint8_t " #name "_kat[BLAKE2_KAT_LENGTH][" #size_prefix \ ++ "_OUTBYTES] = \n{\n"); \ ++ \ ++ for (i = 0; i < LENGTH; ++i) { \ ++ name(hash, size_prefix##_OUTBYTES, in, i, NULL, 0); \ ++ printf("\t{\n\t\t"); \ ++ \ ++ for (j = 0; j < size_prefix##_OUTBYTES; ++j) \ ++ printf("0x%02X%s", hash[j], \ ++ (j + 1) == size_prefix##_OUTBYTES ? "\n" : j && !((j + 1) % 8) ? ",\n\t\t" : ", "); \ ++ \ ++ printf("\t},\n"); \ ++ } \ ++ \ ++ printf("};\n\n\n\n\n"); \ ++ } while (0) ++ ++#define MAKE_KEYED_KAT(name, size_prefix) \ ++ do { \ ++ printf("static const uint8_t " #name "_keyed_kat[BLAKE2_KAT_LENGTH][" #size_prefix \ ++ "_OUTBYTES] = \n{\n"); \ ++ \ ++ for (i = 0; i < LENGTH; ++i) { \ ++ name(hash, size_prefix##_OUTBYTES, in, i, key, size_prefix##_KEYBYTES); \ ++ printf("\t{\n\t\t"); \ ++ \ ++ for (j = 0; j < size_prefix##_OUTBYTES; ++j) \ ++ printf("0x%02X%s", hash[j], \ ++ (j + 1) == size_prefix##_OUTBYTES ? "\n" : j && !((j + 1) % 8) ? ",\n\t\t" : ", "); \ ++ \ ++ printf("\t},\n"); \ ++ } \ ++ \ ++ printf("};\n\n\n\n\n"); \ ++ } while (0) ++ ++#define MAKE_XOF_KAT(name) \ ++ do { \ ++ printf("static const uint8_t " #name "_kat[BLAKE2_KAT_LENGTH][BLAKE2_KAT_LENGTH] = \n{\n"); \ ++ \ ++ for (i = 1; i <= LENGTH; ++i) { \ ++ name(hash, i, in, LENGTH, NULL, 0); \ ++ printf("\t{\n\t\t"); \ ++ \ ++ for (j = 0; j < i; ++j) \ ++ printf("0x%02X%s", hash[j], \ ++ (j + 1) == LENGTH ? "\n" : j && !((j + 1) % 8) ? ",\n\t\t" : ", "); \ ++ \ ++ for (j = i; j < LENGTH; ++j) \ ++ printf("0x00%s", (j + 1) == LENGTH ? "\n" : j && !((j + 1) % 8) ? ",\n\t\t" : ", "); \ ++ \ ++ printf("\t},\n"); \ ++ } \ ++ \ ++ printf("};\n\n\n\n\n"); \ ++ } while (0) ++ ++#define MAKE_XOF_KEYED_KAT(name, size_prefix) \ ++ do { \ ++ printf("static const uint8_t " #name \ ++ "_keyed_kat[BLAKE2_KAT_LENGTH][BLAKE2_KAT_LENGTH] = \n{\n"); \ ++ \ ++ for (i = 1; i <= LENGTH; ++i) { \ ++ name(hash, i, in, LENGTH, key, size_prefix##_KEYBYTES); \ ++ printf("\t{\n\t\t"); \ ++ \ ++ for (j = 0; j < i; ++j) \ ++ printf("0x%02X%s", hash[j], \ ++ (j + 1) == LENGTH ? "\n" : j && !((j + 1) % 8) ? ",\n\t\t" : ", "); \ ++ \ ++ for (j = i; j < LENGTH; ++j) \ ++ printf("0x00%s", (j + 1) == LENGTH ? "\n" : j && !((j + 1) % 8) ? ",\n\t\t" : ", "); \ ++ \ ++ printf("\t},\n"); \ ++ } \ ++ \ ++ printf("};\n\n\n\n\n"); \ ++ } while (0) ++ ++int main() { ++ uint8_t key[64] = {0}; ++ uint8_t in[LENGTH] = {0}; ++ uint8_t hash[LENGTH] = {0}; ++ size_t i, j; ++ ++ for (i = 0; i < sizeof(in); ++i) ++ in[i] = i; ++ ++ for (i = 0; i < sizeof(key); ++i) ++ key[i] = i; ++ ++ puts("#ifndef BLAKE2_KAT_H\n" ++ "#define BLAKE2_KAT_H\n\n\n" ++ "#include <stdint.h>\n\n" ++ "#define BLAKE2_KAT_LENGTH " STR(LENGTH) "\n\n\n"); ++ MAKE_KAT(blake2s, BLAKE2S); ++ MAKE_KEYED_KAT(blake2s, BLAKE2S); ++ MAKE_KAT(blake2b, BLAKE2B); ++ MAKE_KEYED_KAT(blake2b, BLAKE2B); ++ MAKE_KAT(blake2sp, BLAKE2S); ++ MAKE_KEYED_KAT(blake2sp, BLAKE2S); ++ MAKE_KAT(blake2bp, BLAKE2B); ++ MAKE_KEYED_KAT(blake2bp, BLAKE2B); ++ MAKE_XOF_KAT(blake2xs); ++ MAKE_XOF_KEYED_KAT(blake2xs, BLAKE2S); ++ MAKE_XOF_KAT(blake2xb); ++ MAKE_XOF_KEYED_KAT(blake2xb, BLAKE2B); ++ puts("#endif"); ++ return 0; ++} +--- thirdparty/blake2/ref/genkat-json.c.orig 2025-09-03 12:27:32 UTC ++++ thirdparty/blake2/ref/genkat-json.c +@@ -0,0 +1,154 @@ ++/* ++ BLAKE2 reference source code package - reference C implementations ++ ++ Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the ++ terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at ++ your option. The terms of these licenses can be found at: ++ ++ - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 ++ - OpenSSL license : https://www.openssl.org/source/license.html ++ - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 ++ ++ More information about the BLAKE2 hash function can be found at ++ https://blake2.net. ++*/ ++ ++#include <stdint.h> ++#include <stdio.h> ++#include <stdlib.h> ++#include <string.h> ++ ++#include "blake2.h" ++ ++#define STR_(x) #x ++#define STR(x) STR_(x) ++ ++#define LENGTH 256 ++ ++#define MAKE_KAT(name, size_prefix, first) \ ++ do { \ ++ for (i = 0; i < LENGTH; ++i) { \ ++ printf("%s\n{\n", i == 0 && first ? "" : ","); \ ++ \ ++ printf(" \"hash\": \"" #name "\",\n"); \ ++ printf(" \"in\": \""); \ ++ for (j = 0; j < i; ++j) \ ++ printf("%02x", in[j]); \ ++ \ ++ printf("\",\n"); \ ++ printf(" \"key\": \"\",\n"); \ ++ printf(" \"out\": \""); \ ++ \ ++ name(hash, size_prefix##_OUTBYTES, in, i, NULL, 0); \ ++ \ ++ for (j = 0; j < size_prefix##_OUTBYTES; ++j) \ ++ printf("%02x", hash[j]); \ ++ printf("\"\n"); \ ++ printf("}"); \ ++ } \ ++ } while (0) ++ ++#define MAKE_KEYED_KAT(name, size_prefix, first) \ ++ do { \ ++ for (i = 0; i < LENGTH; ++i) { \ ++ printf("%s\n{\n", i == 0 && first ? "" : ","); \ ++ \ ++ printf(" \"hash\": \"" #name "\",\n"); \ ++ printf(" \"in\": \""); \ ++ for (j = 0; j < i; ++j) \ ++ printf("%02x", in[j]); \ ++ \ ++ printf("\",\n"); \ ++ printf(" \"key\": \""); \ ++ for (j = 0; j < size_prefix##_KEYBYTES; ++j) \ ++ printf("%02x", key[j]); \ ++ printf("\",\n"); \ ++ printf(" \"out\": \""); \ ++ \ ++ name(hash, size_prefix##_OUTBYTES, in, i, key, size_prefix##_KEYBYTES); \ ++ \ ++ for (j = 0; j < size_prefix##_OUTBYTES; ++j) \ ++ printf("%02x", hash[j]); \ ++ printf("\"\n"); \ ++ printf("}"); \ ++ } \ ++ } while (0) ++ ++#define MAKE_XOF_KAT(name, first) \ ++ do { \ ++ for (i = 1; i <= LENGTH; ++i) { \ ++ printf("%s\n{\n", i == 1 && first ? "" : ","); \ ++ \ ++ printf(" \"hash\": \"" #name "\",\n"); \ ++ printf(" \"in\": \""); \ ++ for (j = 0; j < LENGTH; ++j) \ ++ printf("%02x", in[j]); \ ++ \ ++ printf("\",\n"); \ ++ printf(" \"key\": \"\",\n"); \ ++ printf(" \"out\": \""); \ ++ \ ++ name(hash, i, in, LENGTH, NULL, 0); \ ++ \ ++ for (j = 0; j < i; ++j) \ ++ printf("%02x", hash[j]); \ ++ printf("\"\n"); \ ++ printf("}"); \ ++ } \ ++ } while (0) ++ ++#define MAKE_XOF_KEYED_KAT(name, size_prefix, first) \ ++ do { \ ++ for (i = 1; i <= LENGTH; ++i) { \ ++ printf("%s\n{\n", i == 1 && first ? "" : ","); \ ++ \ ++ printf(" \"hash\": \"" #name "\",\n"); \ ++ printf(" \"in\": \""); \ ++ for (j = 0; j < LENGTH; ++j) \ ++ printf("%02x", in[j]); \ ++ \ ++ printf("\",\n"); \ ++ printf(" \"key\": \""); \ ++ for (j = 0; j < size_prefix##_KEYBYTES; ++j) \ ++ printf("%02x", key[j]); \ ++ printf("\",\n"); \ ++ printf(" \"out\": \""); \ ++ \ ++ name(hash, i, in, LENGTH, key, size_prefix##_KEYBYTES); \ ++ \ ++ for (j = 0; j < i; ++j) \ ++ printf("%02x", hash[j]); \ ++ printf("\"\n"); \ ++ printf("}"); \ ++ } \ ++ } while (0) ++ ++int main() { ++ uint8_t key[64] = {0}; ++ uint8_t in[LENGTH] = {0}; ++ uint8_t hash[LENGTH] = {0}; ++ size_t i, j; ++ ++ for (i = 0; i < sizeof(in); ++i) ++ in[i] = i; ++ ++ for (i = 0; i < sizeof(key); ++i) ++ key[i] = i; ++ ++ printf("["); ++ MAKE_KAT(blake2s, BLAKE2S, 1); ++ MAKE_KEYED_KAT(blake2s, BLAKE2S, 0); ++ MAKE_KAT(blake2b, BLAKE2B, 0); ++ MAKE_KEYED_KAT(blake2b, BLAKE2B, 0); ++ MAKE_KAT(blake2sp, BLAKE2S, 0); ++ MAKE_KEYED_KAT(blake2sp, BLAKE2S, 0); ++ MAKE_KAT(blake2bp, BLAKE2B, 0); ++ MAKE_KEYED_KAT(blake2bp, BLAKE2B, 0); ++ MAKE_XOF_KAT(blake2xs, 0); ++ MAKE_XOF_KEYED_KAT(blake2xs, BLAKE2S, 0); ++ MAKE_XOF_KAT(blake2xb, 0); ++ MAKE_XOF_KEYED_KAT(blake2xb, BLAKE2B, 0); ++ printf("\n]\n"); ++ fflush(stdout); ++ return 0; ++} +--- thirdparty/blake2/ref/makefile.orig 2025-09-03 12:27:32 UTC ++++ thirdparty/blake2/ref/makefile +@@ -0,0 +1,40 @@ ++CC=gcc ++CFLAGS=-O2 -I../testvectors -Wall -Wextra -std=c89 -pedantic -Wno-long-long ++BLAKEBINS=blake2s blake2b blake2sp blake2bp blake2xs blake2xb ++ ++all: $(BLAKEBINS) check ++ ++blake2s: blake2s-ref.c ++ $(CC) blake2s-ref.c -o $@ $(CFLAGS) -DBLAKE2S_SELFTEST ++ ++blake2b: blake2b-ref.c ++ $(CC) blake2b-ref.c -o $@ $(CFLAGS) -DBLAKE2B_SELFTEST ++ ++blake2sp: blake2sp-ref.c blake2s-ref.c ++ $(CC) blake2sp-ref.c blake2s-ref.c -o $@ $(CFLAGS) -DBLAKE2SP_SELFTEST ++ ++blake2bp: blake2bp-ref.c blake2b-ref.c ++ $(CC) blake2bp-ref.c blake2b-ref.c -o $@ $(CFLAGS) -DBLAKE2BP_SELFTEST ++ ++blake2xs: blake2xs-ref.c blake2s-ref.c ++ $(CC) blake2xs-ref.c blake2s-ref.c -o $@ $(CFLAGS) -DBLAKE2XS_SELFTEST ++ ++blake2xb: blake2xb-ref.c blake2b-ref.c ++ $(CC) blake2xb-ref.c blake2b-ref.c -o $@ $(CFLAGS) -DBLAKE2XB_SELFTEST ++ ++check: blake2s blake2b blake2sp blake2bp blake2xs blake2xb ++ ./blake2s ++ ./blake2b ++ ./blake2sp ++ ./blake2bp ++ ./blake2xs ++ ./blake2xb ++ ++kat: ++ $(CC) $(CFLAGS) -o genkat-c genkat-c.c blake2b-ref.c blake2s-ref.c blake2sp-ref.c blake2bp-ref.c blake2xs-ref.c blake2xb-ref.c ++ $(CC) $(CFLAGS) -o genkat-json genkat-json.c blake2b-ref.c blake2s-ref.c blake2sp-ref.c blake2bp-ref.c blake2xs-ref.c blake2xb-ref.c ++ ./genkat-c > blake2-kat.h ++ ./genkat-json > blake2-kat.json ++ ++clean: ++ rm -rf *.o genkat-c genkat-json blake2-kat.h blake2-kat.json $(BLAKEBINS) +--- thirdparty/blake2/sse/blake2-config.h.orig 2025-09-03 12:27:32 UTC ++++ thirdparty/blake2/sse/blake2-config.h +@@ -0,0 +1,72 @@ ++/* ++ BLAKE2 reference source code package - optimized C implementations ++ ++ Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the ++ terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at ++ your option. The terms of these licenses can be found at: ++ ++ - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 ++ - OpenSSL license : https://www.openssl.org/source/license.html ++ - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 ++ ++ More information about the BLAKE2 hash function can be found at ++ https://blake2.net. ++*/ ++#ifndef BLAKE2_CONFIG_H ++#define BLAKE2_CONFIG_H ++ ++/* These don't work everywhere */ ++#if defined(__SSE2__) || defined(__x86_64__) || defined(__amd64__) ++#define HAVE_SSE2 ++#endif ++ ++#if defined(__SSSE3__) ++#define HAVE_SSSE3 ++#endif ++ ++#if defined(__SSE4_1__) ++#define HAVE_SSE41 ++#endif ++ ++#if defined(__AVX__) ++#define HAVE_AVX ++#endif ++ ++#if defined(__XOP__) ++#define HAVE_XOP ++#endif ++ ++ ++#ifdef HAVE_AVX2 ++#ifndef HAVE_AVX ++#define HAVE_AVX ++#endif ++#endif ++ ++#ifdef HAVE_XOP ++#ifndef HAVE_AVX ++#define HAVE_AVX ++#endif ++#endif ++ ++#ifdef HAVE_AVX ++#ifndef HAVE_SSE41 ++#define HAVE_SSE41 ++#endif ++#endif ++ ++#ifdef HAVE_SSE41 ++#ifndef HAVE_SSSE3 ++#define HAVE_SSSE3 ++#endif ++#endif ++ ++#ifdef HAVE_SSSE3 ++#define HAVE_SSE2 ++#endif ++ ++#if !defined(HAVE_SSE2) ++#error "This code requires at least SSE2." ++#endif ++ ++#endif +--- thirdparty/blake2/sse/blake2-impl.h.orig 2025-09-03 12:27:32 UTC ++++ thirdparty/blake2/sse/blake2-impl.h +@@ -0,0 +1,160 @@ ++/* ++ BLAKE2 reference source code package - reference C implementations ++ ++ Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the ++ terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at ++ your option. The terms of these licenses can be found at: ++ ++ - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 ++ - OpenSSL license : https://www.openssl.org/source/license.html ++ - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 ++ ++ More information about the BLAKE2 hash function can be found at ++ https://blake2.net. ++*/ ++#ifndef BLAKE2_IMPL_H ++#define BLAKE2_IMPL_H ++ ++#include <stdint.h> ++#include <string.h> ++ ++#if !defined(__cplusplus) && (!defined(__STDC_VERSION__) || __STDC_VERSION__ < 199901L) ++ #if defined(_MSC_VER) ++ #define BLAKE2_INLINE __inline ++ #elif defined(__GNUC__) ++ #define BLAKE2_INLINE __inline__ ++ #else ++ #define BLAKE2_INLINE ++ #endif ++#else ++ #define BLAKE2_INLINE inline ++#endif ++ ++static BLAKE2_INLINE uint32_t load32( const void *src ) ++{ ++#if defined(NATIVE_LITTLE_ENDIAN) ++ uint32_t w; ++ memcpy(&w, src, sizeof w); ++ return w; ++#else ++ const uint8_t *p = ( const uint8_t * )src; ++ return (( uint32_t )( p[0] ) << 0) | ++ (( uint32_t )( p[1] ) << 8) | ++ (( uint32_t )( p[2] ) << 16) | ++ (( uint32_t )( p[3] ) << 24) ; ++#endif ++} ++ ++static BLAKE2_INLINE uint64_t load64( const void *src ) ++{ ++#if defined(NATIVE_LITTLE_ENDIAN) ++ uint64_t w; ++ memcpy(&w, src, sizeof w); ++ return w; ++#else ++ const uint8_t *p = ( const uint8_t * )src; ++ return (( uint64_t )( p[0] ) << 0) | ++ (( uint64_t )( p[1] ) << 8) | ++ (( uint64_t )( p[2] ) << 16) | ++ (( uint64_t )( p[3] ) << 24) | ++ (( uint64_t )( p[4] ) << 32) | ++ (( uint64_t )( p[5] ) << 40) | ++ (( uint64_t )( p[6] ) << 48) | ++ (( uint64_t )( p[7] ) << 56) ; ++#endif ++} ++ ++static BLAKE2_INLINE uint16_t load16( const void *src ) ++{ ++#if defined(NATIVE_LITTLE_ENDIAN) ++ uint16_t w; ++ memcpy(&w, src, sizeof w); ++ return w; ++#else ++ const uint8_t *p = ( const uint8_t * )src; ++ return (( uint16_t )( p[0] ) << 0) | ++ (( uint16_t )( p[1] ) << 8) ; ++#endif ++} ++ ++static BLAKE2_INLINE void store16( void *dst, uint16_t w ) ++{ ++#if defined(NATIVE_LITTLE_ENDIAN) ++ memcpy(dst, &w, sizeof w); ++#else ++ uint8_t *p = ( uint8_t * )dst; ++ *p++ = ( uint8_t )w; w >>= 8; ++ *p++ = ( uint8_t )w; ++#endif ++} ++ ++static BLAKE2_INLINE void store32( void *dst, uint32_t w ) ++{ ++#if defined(NATIVE_LITTLE_ENDIAN) ++ memcpy(dst, &w, sizeof w); ++#else ++ uint8_t *p = ( uint8_t * )dst; ++ p[0] = (uint8_t)(w >> 0); ++ p[1] = (uint8_t)(w >> 8); ++ p[2] = (uint8_t)(w >> 16); ++ p[3] = (uint8_t)(w >> 24); ++#endif ++} ++ ++static BLAKE2_INLINE void store64( void *dst, uint64_t w ) ++{ ++#if defined(NATIVE_LITTLE_ENDIAN) ++ memcpy(dst, &w, sizeof w); ++#else ++ uint8_t *p = ( uint8_t * )dst; ++ p[0] = (uint8_t)(w >> 0); ++ p[1] = (uint8_t)(w >> 8); ++ p[2] = (uint8_t)(w >> 16); ++ p[3] = (uint8_t)(w >> 24); ++ p[4] = (uint8_t)(w >> 32); ++ p[5] = (uint8_t)(w >> 40); ++ p[6] = (uint8_t)(w >> 48); ++ p[7] = (uint8_t)(w >> 56); ++#endif ++} ++ ++static BLAKE2_INLINE uint64_t load48( const void *src ) ++{ ++ const uint8_t *p = ( const uint8_t * )src; ++ return (( uint64_t )( p[0] ) << 0) | ++ (( uint64_t )( p[1] ) << 8) | ++ (( uint64_t )( p[2] ) << 16) | ++ (( uint64_t )( p[3] ) << 24) | ++ (( uint64_t )( p[4] ) << 32) | ++ (( uint64_t )( p[5] ) << 40) ; ++} ++ ++static BLAKE2_INLINE void store48( void *dst, uint64_t w ) ++{ ++ uint8_t *p = ( uint8_t * )dst; ++ p[0] = (uint8_t)(w >> 0); ++ p[1] = (uint8_t)(w >> 8); ++ p[2] = (uint8_t)(w >> 16); ++ p[3] = (uint8_t)(w >> 24); ++ p[4] = (uint8_t)(w >> 32); ++ p[5] = (uint8_t)(w >> 40); ++} ++ ++static BLAKE2_INLINE uint32_t rotr32( const uint32_t w, const unsigned c ) ++{ ++ return ( w >> c ) | ( w << ( 32 - c ) ); ++} ++ ++static BLAKE2_INLINE uint64_t rotr64( const uint64_t w, const unsigned c ) ++{ ++ return ( w >> c ) | ( w << ( 64 - c ) ); ++} ++ ++/* prevents compiler optimizing out memset() */ ++static BLAKE2_INLINE void secure_zero_memory(void *v, size_t n) ++{ ++ static void *(*const volatile memset_v)(void *, int, size_t) = &memset; ++ memset_v(v, 0, n); ++} ++ ++#endif +--- thirdparty/blake2/sse/blake2.h.orig 2025-09-03 12:27:32 UTC ++++ thirdparty/blake2/sse/blake2.h +@@ -0,0 +1,195 @@ ++/* ++ BLAKE2 reference source code package - reference C implementations ++ ++ Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the ++ terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at ++ your option. The terms of these licenses can be found at: ++ ++ - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 ++ - OpenSSL license : https://www.openssl.org/source/license.html ++ - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 ++ ++ More information about the BLAKE2 hash function can be found at ++ https://blake2.net. ++*/ ++#ifndef BLAKE2_H ++#define BLAKE2_H ++ ++#include <stddef.h> ++#include <stdint.h> ++ ++#if defined(_MSC_VER) ++#define BLAKE2_PACKED(x) __pragma(pack(push, 1)) x __pragma(pack(pop)) ++#else ++#define BLAKE2_PACKED(x) x __attribute__((packed)) ++#endif ++ ++#if defined(__cplusplus) ++extern "C" { ++#endif ++ ++ enum blake2s_constant ++ { ++ BLAKE2S_BLOCKBYTES = 64, ++ BLAKE2S_OUTBYTES = 32, ++ BLAKE2S_KEYBYTES = 32, ++ BLAKE2S_SALTBYTES = 8, ++ BLAKE2S_PERSONALBYTES = 8 ++ }; ++ ++ enum blake2b_constant ++ { ++ BLAKE2B_BLOCKBYTES = 128, ++ BLAKE2B_OUTBYTES = 64, ++ BLAKE2B_KEYBYTES = 64, ++ BLAKE2B_SALTBYTES = 16, ++ BLAKE2B_PERSONALBYTES = 16 ++ }; ++ ++ typedef struct blake2s_state__ ++ { ++ uint32_t h[8]; ++ uint32_t t[2]; ++ uint32_t f[2]; ++ uint8_t buf[BLAKE2S_BLOCKBYTES]; ++ size_t buflen; ++ size_t outlen; ++ uint8_t last_node; ++ } blake2s_state; ++ ++ typedef struct blake2b_state__ ++ { ++ uint64_t h[8]; ++ uint64_t t[2]; ++ uint64_t f[2]; ++ uint8_t buf[BLAKE2B_BLOCKBYTES]; ++ size_t buflen; ++ size_t outlen; ++ uint8_t last_node; ++ } blake2b_state; ++ ++ typedef struct blake2sp_state__ ++ { ++ blake2s_state S[8][1]; ++ blake2s_state R[1]; ++ uint8_t buf[8 * BLAKE2S_BLOCKBYTES]; ++ size_t buflen; ++ size_t outlen; ++ } blake2sp_state; ++ ++ typedef struct blake2bp_state__ ++ { ++ blake2b_state S[4][1]; ++ blake2b_state R[1]; ++ uint8_t buf[4 * BLAKE2B_BLOCKBYTES]; ++ size_t buflen; ++ size_t outlen; ++ } blake2bp_state; ++ ++ ++ BLAKE2_PACKED(struct blake2s_param__ ++ { ++ uint8_t digest_length; /* 1 */ ++ uint8_t key_length; /* 2 */ ++ uint8_t fanout; /* 3 */ ++ uint8_t depth; /* 4 */ ++ uint32_t leaf_length; /* 8 */ ++ uint32_t node_offset; /* 12 */ ++ uint16_t xof_length; /* 14 */ ++ uint8_t node_depth; /* 15 */ ++ uint8_t inner_length; /* 16 */ ++ /* uint8_t reserved[0]; */ ++ uint8_t salt[BLAKE2S_SALTBYTES]; /* 24 */ ++ uint8_t personal[BLAKE2S_PERSONALBYTES]; /* 32 */ ++ }); ++ ++ typedef struct blake2s_param__ blake2s_param; ++ ++ BLAKE2_PACKED(struct blake2b_param__ ++ { ++ uint8_t digest_length; /* 1 */ ++ uint8_t key_length; /* 2 */ ++ uint8_t fanout; /* 3 */ ++ uint8_t depth; /* 4 */ ++ uint32_t leaf_length; /* 8 */ ++ uint32_t node_offset; /* 12 */ ++ uint32_t xof_length; /* 16 */ ++ uint8_t node_depth; /* 17 */ ++ uint8_t inner_length; /* 18 */ ++ uint8_t reserved[14]; /* 32 */ ++ uint8_t salt[BLAKE2B_SALTBYTES]; /* 48 */ ++ uint8_t personal[BLAKE2B_PERSONALBYTES]; /* 64 */ ++ }); ++ ++ typedef struct blake2b_param__ blake2b_param; ++ ++ typedef struct blake2xs_state__ ++ { ++ blake2s_state S[1]; ++ blake2s_param P[1]; ++ } blake2xs_state; ++ ++ typedef struct blake2xb_state__ ++ { ++ blake2b_state S[1]; ++ blake2b_param P[1]; ++ } blake2xb_state; ++ ++ /* Padded structs result in a compile-time error */ ++ enum { ++ BLAKE2_DUMMY_1 = 1/(sizeof(blake2s_param) == BLAKE2S_OUTBYTES), ++ BLAKE2_DUMMY_2 = 1/(sizeof(blake2b_param) == BLAKE2B_OUTBYTES) ++ }; ++ ++ /* Streaming API */ ++ int blake2s_init( blake2s_state *S, size_t outlen ); ++ int blake2s_init_key( blake2s_state *S, size_t outlen, const void *key, size_t keylen ); ++ int blake2s_init_param( blake2s_state *S, const blake2s_param *P ); ++ int blake2s_update( blake2s_state *S, const void *in, size_t inlen ); ++ int blake2s_final( blake2s_state *S, void *out, size_t outlen ); ++ ++ int blake2b_init( blake2b_state *S, size_t outlen ); ++ int blake2b_init_key( blake2b_state *S, size_t outlen, const void *key, size_t keylen ); ++ int blake2b_init_param( blake2b_state *S, const blake2b_param *P ); ++ int blake2b_update( blake2b_state *S, const void *in, size_t inlen ); ++ int blake2b_final( blake2b_state *S, void *out, size_t outlen ); ++ ++ int blake2sp_init( blake2sp_state *S, size_t outlen ); ++ int blake2sp_init_key( blake2sp_state *S, size_t outlen, const void *key, size_t keylen ); ++ int blake2sp_update( blake2sp_state *S, const void *in, size_t inlen ); ++ int blake2sp_final( blake2sp_state *S, void *out, size_t outlen ); ++ ++ int blake2bp_init( blake2bp_state *S, size_t outlen ); ++ int blake2bp_init_key( blake2bp_state *S, size_t outlen, const void *key, size_t keylen ); ++ int blake2bp_update( blake2bp_state *S, const void *in, size_t inlen ); ++ int blake2bp_final( blake2bp_state *S, void *out, size_t outlen ); ++ ++ /* Variable output length API */ ++ int blake2xs_init( blake2xs_state *S, const size_t outlen ); ++ int blake2xs_init_key( blake2xs_state *S, const size_t outlen, const void *key, size_t keylen ); ++ int blake2xs_update( blake2xs_state *S, const void *in, size_t inlen ); ++ int blake2xs_final(blake2xs_state *S, void *out, size_t outlen); ++ ++ int blake2xb_init( blake2xb_state *S, const size_t outlen ); ++ int blake2xb_init_key( blake2xb_state *S, const size_t outlen, const void *key, size_t keylen ); ++ int blake2xb_update( blake2xb_state *S, const void *in, size_t inlen ); ++ int blake2xb_final(blake2xb_state *S, void *out, size_t outlen); ++ ++ /* Simple API */ ++ int blake2s( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen ); ++ int blake2b( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen ); ++ ++ int blake2sp( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen ); ++ int blake2bp( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen ); ++ ++ int blake2xs( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen ); ++ int blake2xb( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen ); ++ ++ /* This is simply an alias for blake2b */ ++ int blake2( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen ); ++ ++#if defined(__cplusplus) ++} ++#endif ++ ++#endif +--- thirdparty/blake2/sse/blake2b-load-sse2.h.orig 2025-09-03 12:27:32 UTC ++++ thirdparty/blake2/sse/blake2b-load-sse2.h +@@ -0,0 +1,68 @@ ++/* ++ BLAKE2 reference source code package - optimized C implementations ++ ++ Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the ++ terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at ++ your option. The terms of these licenses can be found at: ++ ++ - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 ++ - OpenSSL license : https://www.openssl.org/source/license.html ++ - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 ++ ++ More information about the BLAKE2 hash function can be found at ++ https://blake2.net. ++*/ ++#ifndef BLAKE2B_LOAD_SSE2_H ++#define BLAKE2B_LOAD_SSE2_H ++ ++#define LOAD_MSG_0_1(b0, b1) b0 = _mm_set_epi64x(m2, m0); b1 = _mm_set_epi64x(m6, m4) ++#define LOAD_MSG_0_2(b0, b1) b0 = _mm_set_epi64x(m3, m1); b1 = _mm_set_epi64x(m7, m5) ++#define LOAD_MSG_0_3(b0, b1) b0 = _mm_set_epi64x(m10, m8); b1 = _mm_set_epi64x(m14, m12) ++#define LOAD_MSG_0_4(b0, b1) b0 = _mm_set_epi64x(m11, m9); b1 = _mm_set_epi64x(m15, m13) ++#define LOAD_MSG_1_1(b0, b1) b0 = _mm_set_epi64x(m4, m14); b1 = _mm_set_epi64x(m13, m9) ++#define LOAD_MSG_1_2(b0, b1) b0 = _mm_set_epi64x(m8, m10); b1 = _mm_set_epi64x(m6, m15) ++#define LOAD_MSG_1_3(b0, b1) b0 = _mm_set_epi64x(m0, m1); b1 = _mm_set_epi64x(m5, m11) ++#define LOAD_MSG_1_4(b0, b1) b0 = _mm_set_epi64x(m2, m12); b1 = _mm_set_epi64x(m3, m7) ++#define LOAD_MSG_2_1(b0, b1) b0 = _mm_set_epi64x(m12, m11); b1 = _mm_set_epi64x(m15, m5) ++#define LOAD_MSG_2_2(b0, b1) b0 = _mm_set_epi64x(m0, m8); b1 = _mm_set_epi64x(m13, m2) ++#define LOAD_MSG_2_3(b0, b1) b0 = _mm_set_epi64x(m3, m10); b1 = _mm_set_epi64x(m9, m7) ++#define LOAD_MSG_2_4(b0, b1) b0 = _mm_set_epi64x(m6, m14); b1 = _mm_set_epi64x(m4, m1) ++#define LOAD_MSG_3_1(b0, b1) b0 = _mm_set_epi64x(m3, m7); b1 = _mm_set_epi64x(m11, m13) ++#define LOAD_MSG_3_2(b0, b1) b0 = _mm_set_epi64x(m1, m9); b1 = _mm_set_epi64x(m14, m12) ++#define LOAD_MSG_3_3(b0, b1) b0 = _mm_set_epi64x(m5, m2); b1 = _mm_set_epi64x(m15, m4) ++#define LOAD_MSG_3_4(b0, b1) b0 = _mm_set_epi64x(m10, m6); b1 = _mm_set_epi64x(m8, m0) ++#define LOAD_MSG_4_1(b0, b1) b0 = _mm_set_epi64x(m5, m9); b1 = _mm_set_epi64x(m10, m2) ++#define LOAD_MSG_4_2(b0, b1) b0 = _mm_set_epi64x(m7, m0); b1 = _mm_set_epi64x(m15, m4) ++#define LOAD_MSG_4_3(b0, b1) b0 = _mm_set_epi64x(m11, m14); b1 = _mm_set_epi64x(m3, m6) ++#define LOAD_MSG_4_4(b0, b1) b0 = _mm_set_epi64x(m12, m1); b1 = _mm_set_epi64x(m13, m8) ++#define LOAD_MSG_5_1(b0, b1) b0 = _mm_set_epi64x(m6, m2); b1 = _mm_set_epi64x(m8, m0) ++#define LOAD_MSG_5_2(b0, b1) b0 = _mm_set_epi64x(m10, m12); b1 = _mm_set_epi64x(m3, m11) ++#define LOAD_MSG_5_3(b0, b1) b0 = _mm_set_epi64x(m7, m4); b1 = _mm_set_epi64x(m1, m15) ++#define LOAD_MSG_5_4(b0, b1) b0 = _mm_set_epi64x(m5, m13); b1 = _mm_set_epi64x(m9, m14) ++#define LOAD_MSG_6_1(b0, b1) b0 = _mm_set_epi64x(m1, m12); b1 = _mm_set_epi64x(m4, m14) ++#define LOAD_MSG_6_2(b0, b1) b0 = _mm_set_epi64x(m15, m5); b1 = _mm_set_epi64x(m10, m13) ++#define LOAD_MSG_6_3(b0, b1) b0 = _mm_set_epi64x(m6, m0); b1 = _mm_set_epi64x(m8, m9) ++#define LOAD_MSG_6_4(b0, b1) b0 = _mm_set_epi64x(m3, m7); b1 = _mm_set_epi64x(m11, m2) ++#define LOAD_MSG_7_1(b0, b1) b0 = _mm_set_epi64x(m7, m13); b1 = _mm_set_epi64x(m3, m12) ++#define LOAD_MSG_7_2(b0, b1) b0 = _mm_set_epi64x(m14, m11); b1 = _mm_set_epi64x(m9, m1) ++#define LOAD_MSG_7_3(b0, b1) b0 = _mm_set_epi64x(m15, m5); b1 = _mm_set_epi64x(m2, m8) ++#define LOAD_MSG_7_4(b0, b1) b0 = _mm_set_epi64x(m4, m0); b1 = _mm_set_epi64x(m10, m6) ++#define LOAD_MSG_8_1(b0, b1) b0 = _mm_set_epi64x(m14, m6); b1 = _mm_set_epi64x(m0, m11) ++#define LOAD_MSG_8_2(b0, b1) b0 = _mm_set_epi64x(m9, m15); b1 = _mm_set_epi64x(m8, m3) ++#define LOAD_MSG_8_3(b0, b1) b0 = _mm_set_epi64x(m13, m12); b1 = _mm_set_epi64x(m10, m1) ++#define LOAD_MSG_8_4(b0, b1) b0 = _mm_set_epi64x(m7, m2); b1 = _mm_set_epi64x(m5, m4) ++#define LOAD_MSG_9_1(b0, b1) b0 = _mm_set_epi64x(m8, m10); b1 = _mm_set_epi64x(m1, m7) ++#define LOAD_MSG_9_2(b0, b1) b0 = _mm_set_epi64x(m4, m2); b1 = _mm_set_epi64x(m5, m6) ++#define LOAD_MSG_9_3(b0, b1) b0 = _mm_set_epi64x(m9, m15); b1 = _mm_set_epi64x(m13, m3) ++#define LOAD_MSG_9_4(b0, b1) b0 = _mm_set_epi64x(m14, m11); b1 = _mm_set_epi64x(m0, m12) ++#define LOAD_MSG_10_1(b0, b1) b0 = _mm_set_epi64x(m2, m0); b1 = _mm_set_epi64x(m6, m4) ++#define LOAD_MSG_10_2(b0, b1) b0 = _mm_set_epi64x(m3, m1); b1 = _mm_set_epi64x(m7, m5) ++#define LOAD_MSG_10_3(b0, b1) b0 = _mm_set_epi64x(m10, m8); b1 = _mm_set_epi64x(m14, m12) ++#define LOAD_MSG_10_4(b0, b1) b0 = _mm_set_epi64x(m11, m9); b1 = _mm_set_epi64x(m15, m13) ++#define LOAD_MSG_11_1(b0, b1) b0 = _mm_set_epi64x(m4, m14); b1 = _mm_set_epi64x(m13, m9) ++#define LOAD_MSG_11_2(b0, b1) b0 = _mm_set_epi64x(m8, m10); b1 = _mm_set_epi64x(m6, m15) ++#define LOAD_MSG_11_3(b0, b1) b0 = _mm_set_epi64x(m0, m1); b1 = _mm_set_epi64x(m5, m11) ++#define LOAD_MSG_11_4(b0, b1) b0 = _mm_set_epi64x(m2, m12); b1 = _mm_set_epi64x(m3, m7) ++ ++ ++#endif +--- thirdparty/blake2/sse/blake2b-load-sse41.h.orig 2025-09-03 12:27:32 UTC ++++ thirdparty/blake2/sse/blake2b-load-sse41.h +@@ -0,0 +1,402 @@ ++/* ++ BLAKE2 reference source code package - optimized C implementations ++ ++ Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the ++ terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at ++ your option. The terms of these licenses can be found at: ++ ++ - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 ++ - OpenSSL license : https://www.openssl.org/source/license.html ++ - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 ++ ++ More information about the BLAKE2 hash function can be found at ++ https://blake2.net. ++*/ ++#ifndef BLAKE2B_LOAD_SSE41_H ++#define BLAKE2B_LOAD_SSE41_H ++ ++#define LOAD_MSG_0_1(b0, b1) \ ++do \ ++{ \ ++b0 = _mm_unpacklo_epi64(m0, m1); \ ++b1 = _mm_unpacklo_epi64(m2, m3); \ ++} while(0) ++ ++ ++#define LOAD_MSG_0_2(b0, b1) \ ++do \ ++{ \ ++b0 = _mm_unpackhi_epi64(m0, m1); \ ++b1 = _mm_unpackhi_epi64(m2, m3); \ ++} while(0) ++ ++ ++#define LOAD_MSG_0_3(b0, b1) \ ++do \ ++{ \ ++b0 = _mm_unpacklo_epi64(m4, m5); \ ++b1 = _mm_unpacklo_epi64(m6, m7); \ ++} while(0) ++ ++ ++#define LOAD_MSG_0_4(b0, b1) \ ++do \ ++{ \ ++b0 = _mm_unpackhi_epi64(m4, m5); \ ++b1 = _mm_unpackhi_epi64(m6, m7); \ ++} while(0) ++ ++ ++#define LOAD_MSG_1_1(b0, b1) \ ++do \ ++{ \ ++b0 = _mm_unpacklo_epi64(m7, m2); \ ++b1 = _mm_unpackhi_epi64(m4, m6); \ ++} while(0) ++ ++ ++#define LOAD_MSG_1_2(b0, b1) \ ++do \ ++{ \ ++b0 = _mm_unpacklo_epi64(m5, m4); \ ++b1 = _mm_alignr_epi8(m3, m7, 8); \ ++} while(0) ++ ++ ++#define LOAD_MSG_1_3(b0, b1) \ ++do \ ++{ \ ++b0 = _mm_shuffle_epi32(m0, _MM_SHUFFLE(1,0,3,2)); \ ++b1 = _mm_unpackhi_epi64(m5, m2); \ ++} while(0) ++ ++ ++#define LOAD_MSG_1_4(b0, b1) \ ++do \ ++{ \ ++b0 = _mm_unpacklo_epi64(m6, m1); \ ++b1 = _mm_unpackhi_epi64(m3, m1); \ ++} while(0) ++ ++ ++#define LOAD_MSG_2_1(b0, b1) \ ++do \ ++{ \ ++b0 = _mm_alignr_epi8(m6, m5, 8); \ ++b1 = _mm_unpackhi_epi64(m2, m7); \ ++} while(0) ++ ++ ++#define LOAD_MSG_2_2(b0, b1) \ ++do \ ++{ \ ++b0 = _mm_unpacklo_epi64(m4, m0); \ ++b1 = _mm_blend_epi16(m1, m6, 0xF0); \ ++} while(0) ++ ++ ++#define LOAD_MSG_2_3(b0, b1) \ ++do \ ++{ \ ++b0 = _mm_blend_epi16(m5, m1, 0xF0); \ ++b1 = _mm_unpackhi_epi64(m3, m4); \ ++} while(0) ++ ++ ++#define LOAD_MSG_2_4(b0, b1) \ ++do \ ++{ \ ++b0 = _mm_unpacklo_epi64(m7, m3); \ ++b1 = _mm_alignr_epi8(m2, m0, 8); \ ++} while(0) ++ ++ ++#define LOAD_MSG_3_1(b0, b1) \ ++do \ ++{ \ ++b0 = _mm_unpackhi_epi64(m3, m1); \ ++b1 = _mm_unpackhi_epi64(m6, m5); \ ++} while(0) ++ ++ ++#define LOAD_MSG_3_2(b0, b1) \ ++do \ ++{ \ ++b0 = _mm_unpackhi_epi64(m4, m0); \ ++b1 = _mm_unpacklo_epi64(m6, m7); \ ++} while(0) ++ ++ ++#define LOAD_MSG_3_3(b0, b1) \ ++do \ ++{ \ ++b0 = _mm_blend_epi16(m1, m2, 0xF0); \ ++b1 = _mm_blend_epi16(m2, m7, 0xF0); \ ++} while(0) ++ ++ ++#define LOAD_MSG_3_4(b0, b1) \ ++do \ ++{ \ ++b0 = _mm_unpacklo_epi64(m3, m5); \ ++b1 = _mm_unpacklo_epi64(m0, m4); \ ++} while(0) ++ ++ ++#define LOAD_MSG_4_1(b0, b1) \ ++do \ ++{ \ ++b0 = _mm_unpackhi_epi64(m4, m2); \ ++b1 = _mm_unpacklo_epi64(m1, m5); \ ++} while(0) ++ ++ ++#define LOAD_MSG_4_2(b0, b1) \ ++do \ ++{ \ ++b0 = _mm_blend_epi16(m0, m3, 0xF0); \ ++b1 = _mm_blend_epi16(m2, m7, 0xF0); \ ++} while(0) ++ ++ ++#define LOAD_MSG_4_3(b0, b1) \ ++do \ ++{ \ ++b0 = _mm_blend_epi16(m7, m5, 0xF0); \ ++b1 = _mm_blend_epi16(m3, m1, 0xF0); \ ++} while(0) ++ ++ ++#define LOAD_MSG_4_4(b0, b1) \ ++do \ ++{ \ ++b0 = _mm_alignr_epi8(m6, m0, 8); \ ++b1 = _mm_blend_epi16(m4, m6, 0xF0); \ ++} while(0) ++ ++ ++#define LOAD_MSG_5_1(b0, b1) \ ++do \ ++{ \ ++b0 = _mm_unpacklo_epi64(m1, m3); \ ++b1 = _mm_unpacklo_epi64(m0, m4); \ ++} while(0) ++ ++ ++#define LOAD_MSG_5_2(b0, b1) \ ++do \ ++{ \ ++b0 = _mm_unpacklo_epi64(m6, m5); \ ++b1 = _mm_unpackhi_epi64(m5, m1); \ ++} while(0) ++ ++ ++#define LOAD_MSG_5_3(b0, b1) \ ++do \ ++{ \ ++b0 = _mm_blend_epi16(m2, m3, 0xF0); \ ++b1 = _mm_unpackhi_epi64(m7, m0); \ ++} while(0) ++ ++ ++#define LOAD_MSG_5_4(b0, b1) \ ++do \ ++{ \ ++b0 = _mm_unpackhi_epi64(m6, m2); \ ++b1 = _mm_blend_epi16(m7, m4, 0xF0); \ ++} while(0) ++ ++ ++#define LOAD_MSG_6_1(b0, b1) \ ++do \ ++{ \ ++b0 = _mm_blend_epi16(m6, m0, 0xF0); \ ++b1 = _mm_unpacklo_epi64(m7, m2); \ ++} while(0) ++ ++ ++#define LOAD_MSG_6_2(b0, b1) \ ++do \ ++{ \ ++b0 = _mm_unpackhi_epi64(m2, m7); \ ++b1 = _mm_alignr_epi8(m5, m6, 8); \ ++} while(0) ++ ++ ++#define LOAD_MSG_6_3(b0, b1) \ ++do \ ++{ \ ++b0 = _mm_unpacklo_epi64(m0, m3); \ ++b1 = _mm_shuffle_epi32(m4, _MM_SHUFFLE(1,0,3,2)); \ ++} while(0) ++ ++ ++#define LOAD_MSG_6_4(b0, b1) \ ++do \ ++{ \ ++b0 = _mm_unpackhi_epi64(m3, m1); \ ++b1 = _mm_blend_epi16(m1, m5, 0xF0); \ ++} while(0) ++ ++ ++#define LOAD_MSG_7_1(b0, b1) \ ++do \ ++{ \ ++b0 = _mm_unpackhi_epi64(m6, m3); \ ++b1 = _mm_blend_epi16(m6, m1, 0xF0); \ ++} while(0) ++ ++ ++#define LOAD_MSG_7_2(b0, b1) \ ++do \ ++{ \ ++b0 = _mm_alignr_epi8(m7, m5, 8); \ ++b1 = _mm_unpackhi_epi64(m0, m4); \ ++} while(0) ++ ++ ++#define LOAD_MSG_7_3(b0, b1) \ ++do \ ++{ \ ++b0 = _mm_unpackhi_epi64(m2, m7); \ ++b1 = _mm_unpacklo_epi64(m4, m1); \ ++} while(0) ++ ++ ++#define LOAD_MSG_7_4(b0, b1) \ ++do \ ++{ \ ++b0 = _mm_unpacklo_epi64(m0, m2); \ ++b1 = _mm_unpacklo_epi64(m3, m5); \ ++} while(0) ++ ++ ++#define LOAD_MSG_8_1(b0, b1) \ ++do \ ++{ \ ++b0 = _mm_unpacklo_epi64(m3, m7); \ ++b1 = _mm_alignr_epi8(m0, m5, 8); \ ++} while(0) ++ ++ ++#define LOAD_MSG_8_2(b0, b1) \ ++do \ ++{ \ ++b0 = _mm_unpackhi_epi64(m7, m4); \ ++b1 = _mm_alignr_epi8(m4, m1, 8); \ ++} while(0) ++ ++ ++#define LOAD_MSG_8_3(b0, b1) \ ++do \ ++{ \ ++b0 = m6; \ ++b1 = _mm_alignr_epi8(m5, m0, 8); \ ++} while(0) ++ ++ ++#define LOAD_MSG_8_4(b0, b1) \ ++do \ ++{ \ ++b0 = _mm_blend_epi16(m1, m3, 0xF0); \ ++b1 = m2; \ ++} while(0) ++ ++ ++#define LOAD_MSG_9_1(b0, b1) \ ++do \ ++{ \ ++b0 = _mm_unpacklo_epi64(m5, m4); \ ++b1 = _mm_unpackhi_epi64(m3, m0); \ ++} while(0) ++ ++ ++#define LOAD_MSG_9_2(b0, b1) \ ++do \ ++{ \ ++b0 = _mm_unpacklo_epi64(m1, m2); \ ++b1 = _mm_blend_epi16(m3, m2, 0xF0); \ ++} while(0) ++ ++ ++#define LOAD_MSG_9_3(b0, b1) \ ++do \ ++{ \ ++b0 = _mm_unpackhi_epi64(m7, m4); \ ++b1 = _mm_unpackhi_epi64(m1, m6); \ ++} while(0) ++ ++ ++#define LOAD_MSG_9_4(b0, b1) \ ++do \ ++{ \ ++b0 = _mm_alignr_epi8(m7, m5, 8); \ ++b1 = _mm_unpacklo_epi64(m6, m0); \ ++} while(0) ++ ++ ++#define LOAD_MSG_10_1(b0, b1) \ ++do \ ++{ \ ++b0 = _mm_unpacklo_epi64(m0, m1); \ ++b1 = _mm_unpacklo_epi64(m2, m3); \ ++} while(0) ++ ++ ++#define LOAD_MSG_10_2(b0, b1) \ ++do \ ++{ \ ++b0 = _mm_unpackhi_epi64(m0, m1); \ ++b1 = _mm_unpackhi_epi64(m2, m3); \ ++} while(0) ++ ++ ++#define LOAD_MSG_10_3(b0, b1) \ ++do \ ++{ \ ++b0 = _mm_unpacklo_epi64(m4, m5); \ ++b1 = _mm_unpacklo_epi64(m6, m7); \ ++} while(0) ++ ++ ++#define LOAD_MSG_10_4(b0, b1) \ ++do \ ++{ \ ++b0 = _mm_unpackhi_epi64(m4, m5); \ ++b1 = _mm_unpackhi_epi64(m6, m7); \ ++} while(0) ++ ++ ++#define LOAD_MSG_11_1(b0, b1) \ ++do \ ++{ \ ++b0 = _mm_unpacklo_epi64(m7, m2); \ ++b1 = _mm_unpackhi_epi64(m4, m6); \ ++} while(0) ++ ++ ++#define LOAD_MSG_11_2(b0, b1) \ ++do \ ++{ \ ++b0 = _mm_unpacklo_epi64(m5, m4); \ ++b1 = _mm_alignr_epi8(m3, m7, 8); \ ++} while(0) ++ ++ ++#define LOAD_MSG_11_3(b0, b1) \ ++do \ ++{ \ ++b0 = _mm_shuffle_epi32(m0, _MM_SHUFFLE(1,0,3,2)); \ ++b1 = _mm_unpackhi_epi64(m5, m2); \ ++} while(0) ++ ++ ++#define LOAD_MSG_11_4(b0, b1) \ ++do \ ++{ \ ++b0 = _mm_unpacklo_epi64(m6, m1); \ ++b1 = _mm_unpackhi_epi64(m3, m1); \ ++} while(0) ++ ++ ++#endif +--- thirdparty/blake2/sse/blake2b-round.h.orig 2025-09-03 12:27:32 UTC ++++ thirdparty/blake2/sse/blake2b-round.h +@@ -0,0 +1,157 @@ ++/* ++ BLAKE2 reference source code package - optimized C implementations ++ ++ Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the ++ terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at ++ your option. The terms of these licenses can be found at: ++ ++ - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 ++ - OpenSSL license : https://www.openssl.org/source/license.html ++ - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 ++ ++ More information about the BLAKE2 hash function can be found at ++ https://blake2.net. ++*/ ++#ifndef BLAKE2B_ROUND_H ++#define BLAKE2B_ROUND_H ++ ++#define LOADU(p) _mm_loadu_si128( (const __m128i *)(p) ) ++#define STOREU(p,r) _mm_storeu_si128((__m128i *)(p), r) ++ ++#define TOF(reg) _mm_castsi128_ps((reg)) ++#define TOI(reg) _mm_castps_si128((reg)) ++ ++#define LIKELY(x) __builtin_expect((x),1) ++ ++ ++/* Microarchitecture-specific macros */ ++#ifndef HAVE_XOP ++#ifdef HAVE_SSSE3 ++#define _mm_roti_epi64(x, c) \ ++ (-(c) == 32) ? _mm_shuffle_epi32((x), _MM_SHUFFLE(2,3,0,1)) \ ++ : (-(c) == 24) ? _mm_shuffle_epi8((x), r24) \ ++ : (-(c) == 16) ? _mm_shuffle_epi8((x), r16) \ ++ : (-(c) == 63) ? _mm_xor_si128(_mm_srli_epi64((x), -(c)), _mm_add_epi64((x), (x))) \ ++ : _mm_xor_si128(_mm_srli_epi64((x), -(c)), _mm_slli_epi64((x), 64-(-(c)))) ++#else ++#define _mm_roti_epi64(r, c) _mm_xor_si128(_mm_srli_epi64( (r), -(c) ),_mm_slli_epi64( (r), 64-(-(c)) )) ++#endif ++#else ++/* ... */ ++#endif ++ ++ ++ ++#define G1(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1) \ ++ row1l = _mm_add_epi64(_mm_add_epi64(row1l, b0), row2l); \ ++ row1h = _mm_add_epi64(_mm_add_epi64(row1h, b1), row2h); \ ++ \ ++ row4l = _mm_xor_si128(row4l, row1l); \ ++ row4h = _mm_xor_si128(row4h, row1h); \ ++ \ ++ row4l = _mm_roti_epi64(row4l, -32); \ ++ row4h = _mm_roti_epi64(row4h, -32); \ ++ \ ++ row3l = _mm_add_epi64(row3l, row4l); \ ++ row3h = _mm_add_epi64(row3h, row4h); \ ++ \ ++ row2l = _mm_xor_si128(row2l, row3l); \ ++ row2h = _mm_xor_si128(row2h, row3h); \ ++ \ ++ row2l = _mm_roti_epi64(row2l, -24); \ ++ row2h = _mm_roti_epi64(row2h, -24); \ ++ ++#define G2(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1) \ ++ row1l = _mm_add_epi64(_mm_add_epi64(row1l, b0), row2l); \ ++ row1h = _mm_add_epi64(_mm_add_epi64(row1h, b1), row2h); \ ++ \ ++ row4l = _mm_xor_si128(row4l, row1l); \ ++ row4h = _mm_xor_si128(row4h, row1h); \ ++ \ ++ row4l = _mm_roti_epi64(row4l, -16); \ ++ row4h = _mm_roti_epi64(row4h, -16); \ ++ \ ++ row3l = _mm_add_epi64(row3l, row4l); \ ++ row3h = _mm_add_epi64(row3h, row4h); \ ++ \ ++ row2l = _mm_xor_si128(row2l, row3l); \ ++ row2h = _mm_xor_si128(row2h, row3h); \ ++ \ ++ row2l = _mm_roti_epi64(row2l, -63); \ ++ row2h = _mm_roti_epi64(row2h, -63); \ ++ ++#if defined(HAVE_SSSE3) ++#define DIAGONALIZE(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h) \ ++ t0 = _mm_alignr_epi8(row2h, row2l, 8); \ ++ t1 = _mm_alignr_epi8(row2l, row2h, 8); \ ++ row2l = t0; \ ++ row2h = t1; \ ++ \ ++ t0 = row3l; \ ++ row3l = row3h; \ ++ row3h = t0; \ ++ \ ++ t0 = _mm_alignr_epi8(row4h, row4l, 8); \ ++ t1 = _mm_alignr_epi8(row4l, row4h, 8); \ ++ row4l = t1; \ ++ row4h = t0; ++ ++#define UNDIAGONALIZE(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h) \ ++ t0 = _mm_alignr_epi8(row2l, row2h, 8); \ ++ t1 = _mm_alignr_epi8(row2h, row2l, 8); \ ++ row2l = t0; \ ++ row2h = t1; \ ++ \ ++ t0 = row3l; \ ++ row3l = row3h; \ ++ row3h = t0; \ ++ \ ++ t0 = _mm_alignr_epi8(row4l, row4h, 8); \ ++ t1 = _mm_alignr_epi8(row4h, row4l, 8); \ ++ row4l = t1; \ ++ row4h = t0; ++#else ++ ++#define DIAGONALIZE(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h) \ ++ t0 = row4l;\ ++ t1 = row2l;\ ++ row4l = row3l;\ ++ row3l = row3h;\ ++ row3h = row4l;\ ++ row4l = _mm_unpackhi_epi64(row4h, _mm_unpacklo_epi64(t0, t0)); \ ++ row4h = _mm_unpackhi_epi64(t0, _mm_unpacklo_epi64(row4h, row4h)); \ ++ row2l = _mm_unpackhi_epi64(row2l, _mm_unpacklo_epi64(row2h, row2h)); \ ++ row2h = _mm_unpackhi_epi64(row2h, _mm_unpacklo_epi64(t1, t1)) ++ ++#define UNDIAGONALIZE(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h) \ ++ t0 = row3l;\ ++ row3l = row3h;\ ++ row3h = t0;\ ++ t0 = row2l;\ ++ t1 = row4l;\ ++ row2l = _mm_unpackhi_epi64(row2h, _mm_unpacklo_epi64(row2l, row2l)); \ ++ row2h = _mm_unpackhi_epi64(t0, _mm_unpacklo_epi64(row2h, row2h)); \ ++ row4l = _mm_unpackhi_epi64(row4l, _mm_unpacklo_epi64(row4h, row4h)); \ ++ row4h = _mm_unpackhi_epi64(row4h, _mm_unpacklo_epi64(t1, t1)) ++ ++#endif ++ ++#if defined(HAVE_SSE41) ++#include "blake2b-load-sse41.h" ++#else ++#include "blake2b-load-sse2.h" ++#endif ++ ++#define ROUND(r) \ ++ LOAD_MSG_ ##r ##_1(b0, b1); \ ++ G1(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1); \ ++ LOAD_MSG_ ##r ##_2(b0, b1); \ ++ G2(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1); \ ++ DIAGONALIZE(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h); \ ++ LOAD_MSG_ ##r ##_3(b0, b1); \ ++ G1(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1); \ ++ LOAD_MSG_ ##r ##_4(b0, b1); \ ++ G2(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1); \ ++ UNDIAGONALIZE(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h); ++ ++#endif +--- thirdparty/blake2/sse/blake2b.c.orig 2025-09-03 12:27:32 UTC ++++ thirdparty/blake2/sse/blake2b.c +@@ -0,0 +1,373 @@ ++/* ++ BLAKE2 reference source code package - optimized C implementations ++ ++ Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the ++ terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at ++ your option. The terms of these licenses can be found at: ++ ++ - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 ++ - OpenSSL license : https://www.openssl.org/source/license.html ++ - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 ++ ++ More information about the BLAKE2 hash function can be found at ++ https://blake2.net. ++*/ ++ ++#include <stdint.h> ++#include <string.h> ++#include <stdio.h> ++ ++#include "blake2.h" ++#include "blake2-impl.h" ++ ++#include "blake2-config.h" ++ ++#ifdef _MSC_VER ++#include <intrin.h> /* for _mm_set_epi64x */ ++#endif ++#include <emmintrin.h> ++#if defined(HAVE_SSSE3) ++#include <tmmintrin.h> ++#endif ++#if defined(HAVE_SSE41) ++#include <smmintrin.h> ++#endif ++#if defined(HAVE_AVX) ++#include <immintrin.h> ++#endif ++#if defined(HAVE_XOP) ++#include <x86intrin.h> ++#endif ++ ++#include "blake2b-round.h" ++ ++static const uint64_t blake2b_IV[8] = ++{ ++ 0x6a09e667f3bcc908ULL, 0xbb67ae8584caa73bULL, ++ 0x3c6ef372fe94f82bULL, 0xa54ff53a5f1d36f1ULL, ++ 0x510e527fade682d1ULL, 0x9b05688c2b3e6c1fULL, ++ 0x1f83d9abfb41bd6bULL, 0x5be0cd19137e2179ULL ++}; ++ ++/* Some helper functions */ ++static void blake2b_set_lastnode( blake2b_state *S ) ++{ ++ S->f[1] = (uint64_t)-1; ++} ++ ++static int blake2b_is_lastblock( const blake2b_state *S ) ++{ ++ return S->f[0] != 0; ++} ++ ++static void blake2b_set_lastblock( blake2b_state *S ) ++{ ++ if( S->last_node ) blake2b_set_lastnode( S ); ++ ++ S->f[0] = (uint64_t)-1; ++} ++ ++static void blake2b_increment_counter( blake2b_state *S, const uint64_t inc ) ++{ ++ S->t[0] += inc; ++ S->t[1] += ( S->t[0] < inc ); ++} ++ ++/* init xors IV with input parameter block */ ++int blake2b_init_param( blake2b_state *S, const blake2b_param *P ) ++{ ++ size_t i; ++ /*blake2b_init0( S ); */ ++ const unsigned char * v = ( const unsigned char * )( blake2b_IV ); ++ const unsigned char * p = ( const unsigned char * )( P ); ++ unsigned char * h = ( unsigned char * )( S->h ); ++ /* IV XOR ParamBlock */ ++ memset( S, 0, sizeof( blake2b_state ) ); ++ ++ for( i = 0; i < BLAKE2B_OUTBYTES; ++i ) h[i] = v[i] ^ p[i]; ++ ++ S->outlen = P->digest_length; ++ return 0; ++} ++ ++ ++/* Some sort of default parameter block initialization, for sequential blake2b */ ++int blake2b_init( blake2b_state *S, size_t outlen ) ++{ ++ blake2b_param P[1]; ++ ++ if ( ( !outlen ) || ( outlen > BLAKE2B_OUTBYTES ) ) return -1; ++ ++ P->digest_length = (uint8_t)outlen; ++ P->key_length = 0; ++ P->fanout = 1; ++ P->depth = 1; ++ store32( &P->leaf_length, 0 ); ++ store32( &P->node_offset, 0 ); ++ store32( &P->xof_length, 0 ); ++ P->node_depth = 0; ++ P->inner_length = 0; ++ memset( P->reserved, 0, sizeof( P->reserved ) ); ++ memset( P->salt, 0, sizeof( P->salt ) ); ++ memset( P->personal, 0, sizeof( P->personal ) ); ++ ++ return blake2b_init_param( S, P ); ++} ++ ++int blake2b_init_key( blake2b_state *S, size_t outlen, const void *key, size_t keylen ) ++{ ++ blake2b_param P[1]; ++ ++ if ( ( !outlen ) || ( outlen > BLAKE2B_OUTBYTES ) ) return -1; ++ ++ if ( ( !keylen ) || keylen > BLAKE2B_KEYBYTES ) return -1; ++ ++ P->digest_length = (uint8_t)outlen; ++ P->key_length = (uint8_t)keylen; ++ P->fanout = 1; ++ P->depth = 1; ++ store32( &P->leaf_length, 0 ); ++ store32( &P->node_offset, 0 ); ++ store32( &P->xof_length, 0 ); ++ P->node_depth = 0; ++ P->inner_length = 0; ++ memset( P->reserved, 0, sizeof( P->reserved ) ); ++ memset( P->salt, 0, sizeof( P->salt ) ); ++ memset( P->personal, 0, sizeof( P->personal ) ); ++ ++ if( blake2b_init_param( S, P ) < 0 ) ++ return 0; ++ ++ { ++ uint8_t block[BLAKE2B_BLOCKBYTES]; ++ memset( block, 0, BLAKE2B_BLOCKBYTES ); ++ memcpy( block, key, keylen ); ++ blake2b_update( S, block, BLAKE2B_BLOCKBYTES ); ++ secure_zero_memory( block, BLAKE2B_BLOCKBYTES ); /* Burn the key from stack */ ++ } ++ return 0; ++} ++ ++static void blake2b_compress( blake2b_state *S, const uint8_t block[BLAKE2B_BLOCKBYTES] ) ++{ ++ __m128i row1l, row1h; ++ __m128i row2l, row2h; ++ __m128i row3l, row3h; ++ __m128i row4l, row4h; ++ __m128i b0, b1; ++ __m128i t0, t1; ++#if defined(HAVE_SSSE3) && !defined(HAVE_XOP) ++ const __m128i r16 = _mm_setr_epi8( 2, 3, 4, 5, 6, 7, 0, 1, 10, 11, 12, 13, 14, 15, 8, 9 ); ++ const __m128i r24 = _mm_setr_epi8( 3, 4, 5, 6, 7, 0, 1, 2, 11, 12, 13, 14, 15, 8, 9, 10 ); ++#endif ++#if defined(HAVE_SSE41) ++ const __m128i m0 = LOADU( block + 00 ); ++ const __m128i m1 = LOADU( block + 16 ); ++ const __m128i m2 = LOADU( block + 32 ); ++ const __m128i m3 = LOADU( block + 48 ); ++ const __m128i m4 = LOADU( block + 64 ); ++ const __m128i m5 = LOADU( block + 80 ); ++ const __m128i m6 = LOADU( block + 96 ); ++ const __m128i m7 = LOADU( block + 112 ); ++#else ++ const uint64_t m0 = load64(block + 0 * sizeof(uint64_t)); ++ const uint64_t m1 = load64(block + 1 * sizeof(uint64_t)); ++ const uint64_t m2 = load64(block + 2 * sizeof(uint64_t)); ++ const uint64_t m3 = load64(block + 3 * sizeof(uint64_t)); ++ const uint64_t m4 = load64(block + 4 * sizeof(uint64_t)); ++ const uint64_t m5 = load64(block + 5 * sizeof(uint64_t)); ++ const uint64_t m6 = load64(block + 6 * sizeof(uint64_t)); ++ const uint64_t m7 = load64(block + 7 * sizeof(uint64_t)); ++ const uint64_t m8 = load64(block + 8 * sizeof(uint64_t)); ++ const uint64_t m9 = load64(block + 9 * sizeof(uint64_t)); ++ const uint64_t m10 = load64(block + 10 * sizeof(uint64_t)); ++ const uint64_t m11 = load64(block + 11 * sizeof(uint64_t)); ++ const uint64_t m12 = load64(block + 12 * sizeof(uint64_t)); ++ const uint64_t m13 = load64(block + 13 * sizeof(uint64_t)); ++ const uint64_t m14 = load64(block + 14 * sizeof(uint64_t)); ++ const uint64_t m15 = load64(block + 15 * sizeof(uint64_t)); ++#endif ++ row1l = LOADU( &S->h[0] ); ++ row1h = LOADU( &S->h[2] ); ++ row2l = LOADU( &S->h[4] ); ++ row2h = LOADU( &S->h[6] ); ++ row3l = LOADU( &blake2b_IV[0] ); ++ row3h = LOADU( &blake2b_IV[2] ); ++ row4l = _mm_xor_si128( LOADU( &blake2b_IV[4] ), LOADU( &S->t[0] ) ); ++ row4h = _mm_xor_si128( LOADU( &blake2b_IV[6] ), LOADU( &S->f[0] ) ); ++ ROUND( 0 ); ++ ROUND( 1 ); ++ ROUND( 2 ); ++ ROUND( 3 ); ++ ROUND( 4 ); ++ ROUND( 5 ); ++ ROUND( 6 ); ++ ROUND( 7 ); ++ ROUND( 8 ); ++ ROUND( 9 ); ++ ROUND( 10 ); ++ ROUND( 11 ); ++ row1l = _mm_xor_si128( row3l, row1l ); ++ row1h = _mm_xor_si128( row3h, row1h ); ++ STOREU( &S->h[0], _mm_xor_si128( LOADU( &S->h[0] ), row1l ) ); ++ STOREU( &S->h[2], _mm_xor_si128( LOADU( &S->h[2] ), row1h ) ); ++ row2l = _mm_xor_si128( row4l, row2l ); ++ row2h = _mm_xor_si128( row4h, row2h ); ++ STOREU( &S->h[4], _mm_xor_si128( LOADU( &S->h[4] ), row2l ) ); ++ STOREU( &S->h[6], _mm_xor_si128( LOADU( &S->h[6] ), row2h ) ); ++} ++ ++ ++int blake2b_update( blake2b_state *S, const void *pin, size_t inlen ) ++{ ++ const unsigned char * in = (const unsigned char *)pin; ++ if( inlen > 0 ) ++ { ++ size_t left = S->buflen; ++ size_t fill = BLAKE2B_BLOCKBYTES - left; ++ if( inlen > fill ) ++ { ++ S->buflen = 0; ++ memcpy( S->buf + left, in, fill ); /* Fill buffer */ ++ blake2b_increment_counter( S, BLAKE2B_BLOCKBYTES ); ++ blake2b_compress( S, S->buf ); /* Compress */ ++ in += fill; inlen -= fill; ++ while(inlen > BLAKE2B_BLOCKBYTES) { ++ blake2b_increment_counter(S, BLAKE2B_BLOCKBYTES); ++ blake2b_compress( S, in ); ++ in += BLAKE2B_BLOCKBYTES; ++ inlen -= BLAKE2B_BLOCKBYTES; ++ } ++ } ++ memcpy( S->buf + S->buflen, in, inlen ); ++ S->buflen += inlen; ++ } ++ return 0; ++} ++ ++ ++int blake2b_final( blake2b_state *S, void *out, size_t outlen ) ++{ ++ if( out == NULL || outlen < S->outlen ) ++ return -1; ++ ++ if( blake2b_is_lastblock( S ) ) ++ return -1; ++ ++ blake2b_increment_counter( S, S->buflen ); ++ blake2b_set_lastblock( S ); ++ memset( S->buf + S->buflen, 0, BLAKE2B_BLOCKBYTES - S->buflen ); /* Padding */ ++ blake2b_compress( S, S->buf ); ++ ++ memcpy( out, &S->h[0], S->outlen ); ++ return 0; ++} ++ ++ ++int blake2b( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen ) ++{ ++ blake2b_state S[1]; ++ ++ /* Verify parameters */ ++ if ( NULL == in && inlen > 0 ) return -1; ++ ++ if ( NULL == out ) return -1; ++ ++ if( NULL == key && keylen > 0 ) return -1; ++ ++ if( !outlen || outlen > BLAKE2B_OUTBYTES ) return -1; ++ ++ if( keylen > BLAKE2B_KEYBYTES ) return -1; ++ ++ if( keylen ) ++ { ++ if( blake2b_init_key( S, outlen, key, keylen ) < 0 ) return -1; ++ } ++ else ++ { ++ if( blake2b_init( S, outlen ) < 0 ) return -1; ++ } ++ ++ blake2b_update( S, ( const uint8_t * )in, inlen ); ++ blake2b_final( S, out, outlen ); ++ return 0; ++} ++ ++int blake2( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen ) { ++ return blake2b(out, outlen, in, inlen, key, keylen); ++} ++ ++#if defined(SUPERCOP) ++int crypto_hash( unsigned char *out, unsigned char *in, unsigned long long inlen ) ++{ ++ return blake2b( out, BLAKE2B_OUTBYTES, in, inlen, NULL, 0 ); ++} ++#endif ++ ++#if defined(BLAKE2B_SELFTEST) ++#include <string.h> ++#include "blake2-kat.h" ++int main( void ) ++{ ++ uint8_t key[BLAKE2B_KEYBYTES]; ++ uint8_t buf[BLAKE2_KAT_LENGTH]; ++ size_t i, step; ++ ++ for( i = 0; i < BLAKE2B_KEYBYTES; ++i ) ++ key[i] = ( uint8_t )i; ++ ++ for( i = 0; i < BLAKE2_KAT_LENGTH; ++i ) ++ buf[i] = ( uint8_t )i; ++ ++ /* Test simple API */ ++ for( i = 0; i < BLAKE2_KAT_LENGTH; ++i ) ++ { ++ uint8_t hash[BLAKE2B_OUTBYTES]; ++ blake2b( hash, BLAKE2B_OUTBYTES, buf, i, key, BLAKE2B_KEYBYTES ); ++ ++ if( 0 != memcmp( hash, blake2b_keyed_kat[i], BLAKE2B_OUTBYTES ) ) ++ { ++ goto fail; ++ } ++ } ++ ++ /* Test streaming API */ ++ for(step = 1; step < BLAKE2B_BLOCKBYTES; ++step) { ++ for (i = 0; i < BLAKE2_KAT_LENGTH; ++i) { ++ uint8_t hash[BLAKE2B_OUTBYTES]; ++ blake2b_state S; ++ uint8_t * p = buf; ++ size_t mlen = i; ++ int err = 0; ++ ++ if( (err = blake2b_init_key(&S, BLAKE2B_OUTBYTES, key, BLAKE2B_KEYBYTES)) < 0 ) { ++ goto fail; ++ } ++ ++ while (mlen >= step) { ++ if ( (err = blake2b_update(&S, p, step)) < 0 ) { ++ goto fail; ++ } ++ mlen -= step; ++ p += step; ++ } ++ if ( (err = blake2b_update(&S, p, mlen)) < 0) { ++ goto fail; ++ } ++ if ( (err = blake2b_final(&S, hash, BLAKE2B_OUTBYTES)) < 0) { ++ goto fail; ++ } ++ ++ if (0 != memcmp(hash, blake2b_keyed_kat[i], BLAKE2B_OUTBYTES)) { ++ goto fail; ++ } ++ } ++ } ++ ++ puts( "ok" ); ++ return 0; ++fail: ++ puts("error"); ++ return -1; ++} ++#endif +--- thirdparty/blake2/sse/blake2bp.c.orig 2025-09-03 12:27:32 UTC ++++ thirdparty/blake2/sse/blake2bp.c +@@ -0,0 +1,361 @@ ++/* ++ BLAKE2 reference source code package - optimized C implementations ++ ++ Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the ++ terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at ++ your option. The terms of these licenses can be found at: ++ ++ - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 ++ - OpenSSL license : https://www.openssl.org/source/license.html ++ - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 ++ ++ More information about the BLAKE2 hash function can be found at ++ https://blake2.net. ++*/ ++ ++#include <stdio.h> ++#include <stdlib.h> ++#include <string.h> ++#include <stdint.h> ++ ++#if defined(_OPENMP) ++#include <omp.h> ++#endif ++ ++#include "blake2.h" ++#include "blake2-impl.h" ++ ++#define PARALLELISM_DEGREE 4 ++ ++/* ++ blake2b_init_param defaults to setting the expecting output length ++ from the digest_length parameter block field. ++ ++ In some cases, however, we do not want this, as the output length ++ of these instances is given by inner_length instead. ++*/ ++static int blake2bp_init_leaf_param( blake2b_state *S, const blake2b_param *P ) ++{ ++ int err = blake2b_init_param(S, P); ++ S->outlen = P->inner_length; ++ return err; ++} ++ ++static int blake2bp_init_leaf( blake2b_state *S, size_t outlen, size_t keylen, uint64_t offset ) ++{ ++ blake2b_param P[1]; ++ P->digest_length = (uint8_t)outlen; ++ P->key_length = (uint8_t)keylen; ++ P->fanout = PARALLELISM_DEGREE; ++ P->depth = 2; ++ P->leaf_length = 0; ++ P->node_offset = offset; ++ P->xof_length = 0; ++ P->node_depth = 0; ++ P->inner_length = BLAKE2B_OUTBYTES; ++ memset( P->reserved, 0, sizeof( P->reserved ) ); ++ memset( P->salt, 0, sizeof( P->salt ) ); ++ memset( P->personal, 0, sizeof( P->personal ) ); ++ return blake2bp_init_leaf_param( S, P ); ++} ++ ++static int blake2bp_init_root( blake2b_state *S, size_t outlen, size_t keylen ) ++{ ++ blake2b_param P[1]; ++ P->digest_length = (uint8_t)outlen; ++ P->key_length = (uint8_t)keylen; ++ P->fanout = PARALLELISM_DEGREE; ++ P->depth = 2; ++ P->leaf_length = 0; ++ P->node_offset = 0; ++ P->xof_length = 0; ++ P->node_depth = 1; ++ P->inner_length = BLAKE2B_OUTBYTES; ++ memset( P->reserved, 0, sizeof( P->reserved ) ); ++ memset( P->salt, 0, sizeof( P->salt ) ); ++ memset( P->personal, 0, sizeof( P->personal ) ); ++ return blake2b_init_param( S, P ); ++} ++ ++ ++int blake2bp_init( blake2bp_state *S, size_t outlen ) ++{ ++ size_t i; ++ if( !outlen || outlen > BLAKE2B_OUTBYTES ) return -1; ++ ++ memset( S->buf, 0, sizeof( S->buf ) ); ++ S->buflen = 0; ++ S->outlen = outlen; ++ ++ if( blake2bp_init_root( S->R, outlen, 0 ) < 0 ) ++ return -1; ++ ++ for( i = 0; i < PARALLELISM_DEGREE; ++i ) ++ if( blake2bp_init_leaf( S->S[i], outlen, 0, i ) < 0 ) return -1; ++ ++ S->R->last_node = 1; ++ S->S[PARALLELISM_DEGREE - 1]->last_node = 1; ++ return 0; ++} ++ ++int blake2bp_init_key( blake2bp_state *S, size_t outlen, const void *key, size_t keylen ) ++{ ++ size_t i; ++ ++ if( !outlen || outlen > BLAKE2B_OUTBYTES ) return -1; ++ ++ if( !key || !keylen || keylen > BLAKE2B_KEYBYTES ) return -1; ++ ++ memset( S->buf, 0, sizeof( S->buf ) ); ++ S->buflen = 0; ++ S->outlen = outlen; ++ ++ if( blake2bp_init_root( S->R, outlen, keylen ) < 0 ) ++ return -1; ++ ++ for( i = 0; i < PARALLELISM_DEGREE; ++i ) ++ if( blake2bp_init_leaf( S->S[i], outlen, keylen, i ) < 0 ) return -1; ++ ++ S->R->last_node = 1; ++ S->S[PARALLELISM_DEGREE - 1]->last_node = 1; ++ { ++ uint8_t block[BLAKE2B_BLOCKBYTES]; ++ memset( block, 0, BLAKE2B_BLOCKBYTES ); ++ memcpy( block, key, keylen ); ++ ++ for( i = 0; i < PARALLELISM_DEGREE; ++i ) ++ blake2b_update( S->S[i], block, BLAKE2B_BLOCKBYTES ); ++ ++ secure_zero_memory( block, BLAKE2B_BLOCKBYTES ); /* Burn the key from stack */ ++ } ++ return 0; ++} ++ ++ ++int blake2bp_update( blake2bp_state *S, const void *pin, size_t inlen ) ++{ ++ const unsigned char * in = (const unsigned char *)pin; ++ size_t left = S->buflen; ++ size_t fill = sizeof( S->buf ) - left; ++ size_t i; ++ ++ if( left && inlen >= fill ) ++ { ++ memcpy( S->buf + left, in, fill ); ++ ++ for( i = 0; i < PARALLELISM_DEGREE; ++i ) ++ blake2b_update( S->S[i], S->buf + i * BLAKE2B_BLOCKBYTES, BLAKE2B_BLOCKBYTES ); ++ ++ in += fill; ++ inlen -= fill; ++ left = 0; ++ } ++ ++#if defined(_OPENMP) ++ #pragma omp parallel shared(S), num_threads(PARALLELISM_DEGREE) ++#else ++ ++ for( i = 0; i < PARALLELISM_DEGREE; ++i ) ++#endif ++ { ++#if defined(_OPENMP) ++ size_t i = omp_get_thread_num(); ++#endif ++ size_t inlen__ = inlen; ++ const unsigned char *in__ = ( const unsigned char * )in; ++ in__ += i * BLAKE2B_BLOCKBYTES; ++ ++ while( inlen__ >= PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES ) ++ { ++ blake2b_update( S->S[i], in__, BLAKE2B_BLOCKBYTES ); ++ in__ += PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES; ++ inlen__ -= PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES; ++ } ++ } ++ ++ in += inlen - inlen % ( PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES ); ++ inlen %= PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES; ++ ++ if( inlen > 0 ) ++ memcpy( S->buf + left, in, inlen ); ++ ++ S->buflen = left + inlen; ++ return 0; ++} ++ ++ ++ ++int blake2bp_final( blake2bp_state *S, void *out, size_t outlen ) ++{ ++ uint8_t hash[PARALLELISM_DEGREE][BLAKE2B_OUTBYTES]; ++ size_t i; ++ ++ if(out == NULL || outlen < S->outlen) { ++ return -1; ++ } ++ ++ for( i = 0; i < PARALLELISM_DEGREE; ++i ) ++ { ++ if( S->buflen > i * BLAKE2B_BLOCKBYTES ) ++ { ++ size_t left = S->buflen - i * BLAKE2B_BLOCKBYTES; ++ ++ if( left > BLAKE2B_BLOCKBYTES ) left = BLAKE2B_BLOCKBYTES; ++ ++ blake2b_update( S->S[i], S->buf + i * BLAKE2B_BLOCKBYTES, left ); ++ } ++ ++ blake2b_final( S->S[i], hash[i], BLAKE2B_OUTBYTES ); ++ } ++ ++ for( i = 0; i < PARALLELISM_DEGREE; ++i ) ++ blake2b_update( S->R, hash[i], BLAKE2B_OUTBYTES ); ++ ++ return blake2b_final( S->R, out, S->outlen ); ++} ++ ++int blake2bp( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen ) ++{ ++ uint8_t hash[PARALLELISM_DEGREE][BLAKE2B_OUTBYTES]; ++ blake2b_state S[PARALLELISM_DEGREE][1]; ++ blake2b_state FS[1]; ++ size_t i; ++ ++ /* Verify parameters */ ++ if ( NULL == in && inlen > 0 ) return -1; ++ ++ if ( NULL == out ) return -1; ++ ++ if( NULL == key && keylen > 0 ) return -1; ++ ++ if( !outlen || outlen > BLAKE2B_OUTBYTES ) return -1; ++ ++ if( keylen > BLAKE2B_KEYBYTES ) return -1; ++ ++ for( i = 0; i < PARALLELISM_DEGREE; ++i ) ++ if( blake2bp_init_leaf( S[i], outlen, keylen, i ) < 0 ) return -1; ++ ++ S[PARALLELISM_DEGREE - 1]->last_node = 1; /* mark last node */ ++ ++ if( keylen > 0 ) ++ { ++ uint8_t block[BLAKE2B_BLOCKBYTES]; ++ memset( block, 0, BLAKE2B_BLOCKBYTES ); ++ memcpy( block, key, keylen ); ++ ++ for( i = 0; i < PARALLELISM_DEGREE; ++i ) ++ blake2b_update( S[i], block, BLAKE2B_BLOCKBYTES ); ++ ++ secure_zero_memory( block, BLAKE2B_BLOCKBYTES ); /* Burn the key from stack */ ++ } ++ ++#if defined(_OPENMP) ++ #pragma omp parallel shared(S,hash), num_threads(PARALLELISM_DEGREE) ++#else ++ ++ for( i = 0; i < PARALLELISM_DEGREE; ++i ) ++#endif ++ { ++#if defined(_OPENMP) ++ size_t i = omp_get_thread_num(); ++#endif ++ size_t inlen__ = inlen; ++ const unsigned char *in__ = ( const unsigned char * )in; ++ in__ += i * BLAKE2B_BLOCKBYTES; ++ ++ while( inlen__ >= PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES ) ++ { ++ blake2b_update( S[i], in__, BLAKE2B_BLOCKBYTES ); ++ in__ += PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES; ++ inlen__ -= PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES; ++ } ++ ++ if( inlen__ > i * BLAKE2B_BLOCKBYTES ) ++ { ++ const size_t left = inlen__ - i * BLAKE2B_BLOCKBYTES; ++ const size_t len = left <= BLAKE2B_BLOCKBYTES ? left : BLAKE2B_BLOCKBYTES; ++ blake2b_update( S[i], in__, len ); ++ } ++ ++ blake2b_final( S[i], hash[i], BLAKE2B_OUTBYTES ); ++ } ++ ++ if( blake2bp_init_root( FS, outlen, keylen ) < 0 ) ++ return -1; ++ ++ FS->last_node = 1; /* Mark as last node */ ++ ++ for( i = 0; i < PARALLELISM_DEGREE; ++i ) ++ blake2b_update( FS, hash[i], BLAKE2B_OUTBYTES ); ++ ++ return blake2b_final( FS, out, outlen ); ++} ++ ++ ++#if defined(BLAKE2BP_SELFTEST) ++#include <string.h> ++#include "blake2-kat.h" ++int main( void ) ++{ ++ uint8_t key[BLAKE2B_KEYBYTES]; ++ uint8_t buf[BLAKE2_KAT_LENGTH]; ++ size_t i, step; ++ ++ for( i = 0; i < BLAKE2B_KEYBYTES; ++i ) ++ key[i] = ( uint8_t )i; ++ ++ for( i = 0; i < BLAKE2_KAT_LENGTH; ++i ) ++ buf[i] = ( uint8_t )i; ++ ++ /* Test simple API */ ++ for( i = 0; i < BLAKE2_KAT_LENGTH; ++i ) ++ { ++ uint8_t hash[BLAKE2B_OUTBYTES]; ++ blake2bp( hash, BLAKE2B_OUTBYTES, buf, i, key, BLAKE2B_KEYBYTES ); ++ ++ if( 0 != memcmp( hash, blake2bp_keyed_kat[i], BLAKE2B_OUTBYTES ) ) ++ { ++ goto fail; ++ } ++ } ++ ++ /* Test streaming API */ ++ for(step = 1; step < BLAKE2B_BLOCKBYTES; ++step) { ++ for (i = 0; i < BLAKE2_KAT_LENGTH; ++i) { ++ uint8_t hash[BLAKE2B_OUTBYTES]; ++ blake2bp_state S; ++ uint8_t * p = buf; ++ size_t mlen = i; ++ int err = 0; ++ ++ if( (err = blake2bp_init_key(&S, BLAKE2B_OUTBYTES, key, BLAKE2B_KEYBYTES)) < 0 ) { ++ goto fail; ++ } ++ ++ while (mlen >= step) { ++ if ( (err = blake2bp_update(&S, p, step)) < 0 ) { ++ goto fail; ++ } ++ mlen -= step; ++ p += step; ++ } ++ if ( (err = blake2bp_update(&S, p, mlen)) < 0) { ++ goto fail; ++ } ++ if ( (err = blake2bp_final(&S, hash, BLAKE2B_OUTBYTES)) < 0) { ++ goto fail; ++ } ++ ++ if (0 != memcmp(hash, blake2bp_keyed_kat[i], BLAKE2B_OUTBYTES)) { ++ goto fail; ++ } ++ } ++ } ++ ++ puts( "ok" ); ++ return 0; ++fail: ++ puts("error"); ++ return -1; ++} ++#endif +--- thirdparty/blake2/sse/blake2s-load-sse2.h.orig 2025-09-03 12:27:32 UTC ++++ thirdparty/blake2/sse/blake2s-load-sse2.h +@@ -0,0 +1,60 @@ ++/* ++ BLAKE2 reference source code package - optimized C implementations ++ ++ Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the ++ terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at ++ your option. The terms of these licenses can be found at: ++ ++ - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 ++ - OpenSSL license : https://www.openssl.org/source/license.html ++ - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 ++ ++ More information about the BLAKE2 hash function can be found at ++ https://blake2.net. ++*/ ++#ifndef BLAKE2S_LOAD_SSE2_H ++#define BLAKE2S_LOAD_SSE2_H ++ ++#define LOAD_MSG_0_1(buf) buf = _mm_set_epi32(m6,m4,m2,m0) ++#define LOAD_MSG_0_2(buf) buf = _mm_set_epi32(m7,m5,m3,m1) ++#define LOAD_MSG_0_3(buf) buf = _mm_set_epi32(m14,m12,m10,m8) ++#define LOAD_MSG_0_4(buf) buf = _mm_set_epi32(m15,m13,m11,m9) ++#define LOAD_MSG_1_1(buf) buf = _mm_set_epi32(m13,m9,m4,m14) ++#define LOAD_MSG_1_2(buf) buf = _mm_set_epi32(m6,m15,m8,m10) ++#define LOAD_MSG_1_3(buf) buf = _mm_set_epi32(m5,m11,m0,m1) ++#define LOAD_MSG_1_4(buf) buf = _mm_set_epi32(m3,m7,m2,m12) ++#define LOAD_MSG_2_1(buf) buf = _mm_set_epi32(m15,m5,m12,m11) ++#define LOAD_MSG_2_2(buf) buf = _mm_set_epi32(m13,m2,m0,m8) ++#define LOAD_MSG_2_3(buf) buf = _mm_set_epi32(m9,m7,m3,m10) ++#define LOAD_MSG_2_4(buf) buf = _mm_set_epi32(m4,m1,m6,m14) ++#define LOAD_MSG_3_1(buf) buf = _mm_set_epi32(m11,m13,m3,m7) ++#define LOAD_MSG_3_2(buf) buf = _mm_set_epi32(m14,m12,m1,m9) ++#define LOAD_MSG_3_3(buf) buf = _mm_set_epi32(m15,m4,m5,m2) ++#define LOAD_MSG_3_4(buf) buf = _mm_set_epi32(m8,m0,m10,m6) ++#define LOAD_MSG_4_1(buf) buf = _mm_set_epi32(m10,m2,m5,m9) ++#define LOAD_MSG_4_2(buf) buf = _mm_set_epi32(m15,m4,m7,m0) ++#define LOAD_MSG_4_3(buf) buf = _mm_set_epi32(m3,m6,m11,m14) ++#define LOAD_MSG_4_4(buf) buf = _mm_set_epi32(m13,m8,m12,m1) ++#define LOAD_MSG_5_1(buf) buf = _mm_set_epi32(m8,m0,m6,m2) ++#define LOAD_MSG_5_2(buf) buf = _mm_set_epi32(m3,m11,m10,m12) ++#define LOAD_MSG_5_3(buf) buf = _mm_set_epi32(m1,m15,m7,m4) ++#define LOAD_MSG_5_4(buf) buf = _mm_set_epi32(m9,m14,m5,m13) ++#define LOAD_MSG_6_1(buf) buf = _mm_set_epi32(m4,m14,m1,m12) ++#define LOAD_MSG_6_2(buf) buf = _mm_set_epi32(m10,m13,m15,m5) ++#define LOAD_MSG_6_3(buf) buf = _mm_set_epi32(m8,m9,m6,m0) ++#define LOAD_MSG_6_4(buf) buf = _mm_set_epi32(m11,m2,m3,m7) ++#define LOAD_MSG_7_1(buf) buf = _mm_set_epi32(m3,m12,m7,m13) ++#define LOAD_MSG_7_2(buf) buf = _mm_set_epi32(m9,m1,m14,m11) ++#define LOAD_MSG_7_3(buf) buf = _mm_set_epi32(m2,m8,m15,m5) ++#define LOAD_MSG_7_4(buf) buf = _mm_set_epi32(m10,m6,m4,m0) ++#define LOAD_MSG_8_1(buf) buf = _mm_set_epi32(m0,m11,m14,m6) ++#define LOAD_MSG_8_2(buf) buf = _mm_set_epi32(m8,m3,m9,m15) ++#define LOAD_MSG_8_3(buf) buf = _mm_set_epi32(m10,m1,m13,m12) ++#define LOAD_MSG_8_4(buf) buf = _mm_set_epi32(m5,m4,m7,m2) ++#define LOAD_MSG_9_1(buf) buf = _mm_set_epi32(m1,m7,m8,m10) ++#define LOAD_MSG_9_2(buf) buf = _mm_set_epi32(m5,m6,m4,m2) ++#define LOAD_MSG_9_3(buf) buf = _mm_set_epi32(m13,m3,m9,m15) ++#define LOAD_MSG_9_4(buf) buf = _mm_set_epi32(m0,m12,m14,m11) ++ ++ ++#endif +--- thirdparty/blake2/sse/blake2s-load-sse41.h.orig 2025-09-03 12:27:32 UTC ++++ thirdparty/blake2/sse/blake2s-load-sse41.h +@@ -0,0 +1,229 @@ ++/* ++ BLAKE2 reference source code package - optimized C implementations ++ ++ Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the ++ terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at ++ your option. The terms of these licenses can be found at: ++ ++ - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 ++ - OpenSSL license : https://www.openssl.org/source/license.html ++ - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 ++ ++ More information about the BLAKE2 hash function can be found at ++ https://blake2.net. ++*/ ++#ifndef BLAKE2S_LOAD_SSE41_H ++#define BLAKE2S_LOAD_SSE41_H ++ ++#define LOAD_MSG_0_1(buf) \ ++buf = TOI(_mm_shuffle_ps(TOF(m0), TOF(m1), _MM_SHUFFLE(2,0,2,0))); ++ ++#define LOAD_MSG_0_2(buf) \ ++buf = TOI(_mm_shuffle_ps(TOF(m0), TOF(m1), _MM_SHUFFLE(3,1,3,1))); ++ ++#define LOAD_MSG_0_3(buf) \ ++buf = TOI(_mm_shuffle_ps(TOF(m2), TOF(m3), _MM_SHUFFLE(2,0,2,0))); ++ ++#define LOAD_MSG_0_4(buf) \ ++buf = TOI(_mm_shuffle_ps(TOF(m2), TOF(m3), _MM_SHUFFLE(3,1,3,1))); ++ ++#define LOAD_MSG_1_1(buf) \ ++t0 = _mm_blend_epi16(m1, m2, 0x0C); \ ++t1 = _mm_slli_si128(m3, 4); \ ++t2 = _mm_blend_epi16(t0, t1, 0xF0); \ ++buf = _mm_shuffle_epi32(t2, _MM_SHUFFLE(2,1,0,3)); ++ ++#define LOAD_MSG_1_2(buf) \ ++t0 = _mm_shuffle_epi32(m2,_MM_SHUFFLE(0,0,2,0)); \ ++t1 = _mm_blend_epi16(m1,m3,0xC0); \ ++t2 = _mm_blend_epi16(t0, t1, 0xF0); \ ++buf = _mm_shuffle_epi32(t2, _MM_SHUFFLE(2,3,0,1)); ++ ++#define LOAD_MSG_1_3(buf) \ ++t0 = _mm_slli_si128(m1, 4); \ ++t1 = _mm_blend_epi16(m2, t0, 0x30); \ ++t2 = _mm_blend_epi16(m0, t1, 0xF0); \ ++buf = _mm_shuffle_epi32(t2, _MM_SHUFFLE(2,3,0,1)); ++ ++#define LOAD_MSG_1_4(buf) \ ++t0 = _mm_unpackhi_epi32(m0,m1); \ ++t1 = _mm_slli_si128(m3, 4); \ ++t2 = _mm_blend_epi16(t0, t1, 0x0C); \ ++buf = _mm_shuffle_epi32(t2, _MM_SHUFFLE(2,3,0,1)); ++ ++#define LOAD_MSG_2_1(buf) \ ++t0 = _mm_unpackhi_epi32(m2,m3); \ ++t1 = _mm_blend_epi16(m3,m1,0x0C); \ ++t2 = _mm_blend_epi16(t0, t1, 0x0F); \ ++buf = _mm_shuffle_epi32(t2, _MM_SHUFFLE(3,1,0,2)); ++ ++#define LOAD_MSG_2_2(buf) \ ++t0 = _mm_unpacklo_epi32(m2,m0); \ ++t1 = _mm_blend_epi16(t0, m0, 0xF0); \ ++t2 = _mm_slli_si128(m3, 8); \ ++buf = _mm_blend_epi16(t1, t2, 0xC0); ++ ++#define LOAD_MSG_2_3(buf) \ ++t0 = _mm_blend_epi16(m0, m2, 0x3C); \ ++t1 = _mm_srli_si128(m1, 12); \ ++t2 = _mm_blend_epi16(t0,t1,0x03); \ ++buf = _mm_shuffle_epi32(t2, _MM_SHUFFLE(1,0,3,2)); ++ ++#define LOAD_MSG_2_4(buf) \ ++t0 = _mm_slli_si128(m3, 4); \ ++t1 = _mm_blend_epi16(m0, m1, 0x33); \ ++t2 = _mm_blend_epi16(t1, t0, 0xC0); \ ++buf = _mm_shuffle_epi32(t2, _MM_SHUFFLE(0,1,2,3)); ++ ++#define LOAD_MSG_3_1(buf) \ ++t0 = _mm_unpackhi_epi32(m0,m1); \ ++t1 = _mm_unpackhi_epi32(t0, m2); \ ++t2 = _mm_blend_epi16(t1, m3, 0x0C); \ ++buf = _mm_shuffle_epi32(t2, _MM_SHUFFLE(3,1,0,2)); ++ ++#define LOAD_MSG_3_2(buf) \ ++t0 = _mm_slli_si128(m2, 8); \ ++t1 = _mm_blend_epi16(m3,m0,0x0C); \ ++t2 = _mm_blend_epi16(t1, t0, 0xC0); \ ++buf = _mm_shuffle_epi32(t2, _MM_SHUFFLE(2,0,1,3)); ++ ++#define LOAD_MSG_3_3(buf) \ ++t0 = _mm_blend_epi16(m0,m1,0x0F); \ ++t1 = _mm_blend_epi16(t0, m3, 0xC0); \ ++buf = _mm_shuffle_epi32(t1, _MM_SHUFFLE(3,0,1,2)); ++ ++#define LOAD_MSG_3_4(buf) \ ++t0 = _mm_unpacklo_epi32(m0,m2); \ ++t1 = _mm_unpackhi_epi32(m1,m2); \ ++buf = _mm_unpacklo_epi64(t1,t0); ++ ++#define LOAD_MSG_4_1(buf) \ ++t0 = _mm_unpacklo_epi64(m1,m2); \ ++t1 = _mm_unpackhi_epi64(m0,m2); \ ++t2 = _mm_blend_epi16(t0,t1,0x33); \ ++buf = _mm_shuffle_epi32(t2, _MM_SHUFFLE(2,0,1,3)); ++ ++#define LOAD_MSG_4_2(buf) \ ++t0 = _mm_unpackhi_epi64(m1,m3); \ ++t1 = _mm_unpacklo_epi64(m0,m1); \ ++buf = _mm_blend_epi16(t0,t1,0x33); ++ ++#define LOAD_MSG_4_3(buf) \ ++t0 = _mm_unpackhi_epi64(m3,m1); \ ++t1 = _mm_unpackhi_epi64(m2,m0); \ ++buf = _mm_blend_epi16(t1,t0,0x33); ++ ++#define LOAD_MSG_4_4(buf) \ ++t0 = _mm_blend_epi16(m0,m2,0x03); \ ++t1 = _mm_slli_si128(t0, 8); \ ++t2 = _mm_blend_epi16(t1,m3,0x0F); \ ++buf = _mm_shuffle_epi32(t2, _MM_SHUFFLE(1,2,0,3)); ++ ++#define LOAD_MSG_5_1(buf) \ ++t0 = _mm_unpackhi_epi32(m0,m1); \ ++t1 = _mm_unpacklo_epi32(m0,m2); \ ++buf = _mm_unpacklo_epi64(t0,t1); ++ ++#define LOAD_MSG_5_2(buf) \ ++t0 = _mm_srli_si128(m2, 4); \ ++t1 = _mm_blend_epi16(m0,m3,0x03); \ ++buf = _mm_blend_epi16(t1,t0,0x3C); ++ ++#define LOAD_MSG_5_3(buf) \ ++t0 = _mm_blend_epi16(m1,m0,0x0C); \ ++t1 = _mm_srli_si128(m3, 4); \ ++t2 = _mm_blend_epi16(t0,t1,0x30); \ ++buf = _mm_shuffle_epi32(t2, _MM_SHUFFLE(1,2,3,0)); ++ ++#define LOAD_MSG_5_4(buf) \ ++t0 = _mm_unpacklo_epi64(m1,m2); \ ++t1= _mm_shuffle_epi32(m3, _MM_SHUFFLE(0,2,0,1)); \ ++buf = _mm_blend_epi16(t0,t1,0x33); ++ ++#define LOAD_MSG_6_1(buf) \ ++t0 = _mm_slli_si128(m1, 12); \ ++t1 = _mm_blend_epi16(m0,m3,0x33); \ ++buf = _mm_blend_epi16(t1,t0,0xC0); ++ ++#define LOAD_MSG_6_2(buf) \ ++t0 = _mm_blend_epi16(m3,m2,0x30); \ ++t1 = _mm_srli_si128(m1, 4); \ ++t2 = _mm_blend_epi16(t0,t1,0x03); \ ++buf = _mm_shuffle_epi32(t2, _MM_SHUFFLE(2,1,3,0)); ++ ++#define LOAD_MSG_6_3(buf) \ ++t0 = _mm_unpacklo_epi64(m0,m2); \ ++t1 = _mm_srli_si128(m1, 4); \ ++buf = _mm_shuffle_epi32(_mm_blend_epi16(t0,t1,0x0C), _MM_SHUFFLE(2,3,1,0)); ++ ++#define LOAD_MSG_6_4(buf) \ ++t0 = _mm_unpackhi_epi32(m1,m2); \ ++t1 = _mm_unpackhi_epi64(m0,t0); \ ++buf = _mm_shuffle_epi32(t1, _MM_SHUFFLE(3,0,1,2)); ++ ++#define LOAD_MSG_7_1(buf) \ ++t0 = _mm_unpackhi_epi32(m0,m1); \ ++t1 = _mm_blend_epi16(t0,m3,0x0F); \ ++buf = _mm_shuffle_epi32(t1,_MM_SHUFFLE(2,0,3,1)); ++ ++#define LOAD_MSG_7_2(buf) \ ++t0 = _mm_blend_epi16(m2,m3,0x30); \ ++t1 = _mm_srli_si128(m0,4); \ ++t2 = _mm_blend_epi16(t0,t1,0x03); \ ++buf = _mm_shuffle_epi32(t2, _MM_SHUFFLE(1,0,2,3)); ++ ++#define LOAD_MSG_7_3(buf) \ ++t0 = _mm_unpackhi_epi64(m0,m3); \ ++t1 = _mm_unpacklo_epi64(m1,m2); \ ++t2 = _mm_blend_epi16(t0,t1,0x3C); \ ++buf = _mm_shuffle_epi32(t2,_MM_SHUFFLE(0,2,3,1)); ++ ++#define LOAD_MSG_7_4(buf) \ ++t0 = _mm_unpacklo_epi32(m0,m1); \ ++t1 = _mm_unpackhi_epi32(m1,m2); \ ++buf = _mm_unpacklo_epi64(t0,t1); ++ ++#define LOAD_MSG_8_1(buf) \ ++t0 = _mm_unpackhi_epi32(m1,m3); \ ++t1 = _mm_unpacklo_epi64(t0,m0); \ ++t2 = _mm_blend_epi16(t1,m2,0xC0); \ ++buf = _mm_shufflehi_epi16(t2,_MM_SHUFFLE(1,0,3,2)); ++ ++#define LOAD_MSG_8_2(buf) \ ++t0 = _mm_unpackhi_epi32(m0,m3); \ ++t1 = _mm_blend_epi16(m2,t0,0xF0); \ ++buf = _mm_shuffle_epi32(t1,_MM_SHUFFLE(0,2,1,3)); ++ ++#define LOAD_MSG_8_3(buf) \ ++t0 = _mm_blend_epi16(m2,m0,0x0C); \ ++t1 = _mm_slli_si128(t0,4); \ ++buf = _mm_blend_epi16(t1,m3,0x0F); ++ ++#define LOAD_MSG_8_4(buf) \ ++t0 = _mm_blend_epi16(m1,m0,0x30); \ ++buf = _mm_shuffle_epi32(t0,_MM_SHUFFLE(1,0,3,2)); ++ ++#define LOAD_MSG_9_1(buf) \ ++t0 = _mm_blend_epi16(m0,m2,0x03); \ ++t1 = _mm_blend_epi16(m1,m2,0x30); \ ++t2 = _mm_blend_epi16(t1,t0,0x0F); \ ++buf = _mm_shuffle_epi32(t2,_MM_SHUFFLE(1,3,0,2)); ++ ++#define LOAD_MSG_9_2(buf) \ ++t0 = _mm_slli_si128(m0,4); \ ++t1 = _mm_blend_epi16(m1,t0,0xC0); \ ++buf = _mm_shuffle_epi32(t1,_MM_SHUFFLE(1,2,0,3)); ++ ++#define LOAD_MSG_9_3(buf) \ ++t0 = _mm_unpackhi_epi32(m0,m3); \ ++t1 = _mm_unpacklo_epi32(m2,m3); \ ++t2 = _mm_unpackhi_epi64(t0,t1); \ ++buf = _mm_shuffle_epi32(t2,_MM_SHUFFLE(3,0,2,1)); ++ ++#define LOAD_MSG_9_4(buf) \ ++t0 = _mm_blend_epi16(m3,m2,0xC0); \ ++t1 = _mm_unpacklo_epi32(m0,m3); \ ++t2 = _mm_blend_epi16(t0,t1,0x0F); \ ++buf = _mm_shuffle_epi32(t2,_MM_SHUFFLE(0,1,2,3)); ++ ++#endif +--- thirdparty/blake2/sse/blake2s-load-xop.h.orig 2025-09-03 12:27:32 UTC ++++ thirdparty/blake2/sse/blake2s-load-xop.h +@@ -0,0 +1,191 @@ ++/* ++ BLAKE2 reference source code package - optimized C implementations ++ ++ Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the ++ terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at ++ your option. The terms of these licenses can be found at: ++ ++ - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 ++ - OpenSSL license : https://www.openssl.org/source/license.html ++ - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 ++ ++ More information about the BLAKE2 hash function can be found at ++ https://blake2.net. ++*/ ++#ifndef BLAKE2S_LOAD_XOP_H ++#define BLAKE2S_LOAD_XOP_H ++ ++#define TOB(x) ((x)*4*0x01010101 + 0x03020100) /* ..or not TOB */ ++ ++#if 0 ++/* Basic VPPERM emulation, for testing purposes */ ++static __m128i _mm_perm_epi8(const __m128i src1, const __m128i src2, const __m128i sel) ++{ ++ const __m128i sixteen = _mm_set1_epi8(16); ++ const __m128i t0 = _mm_shuffle_epi8(src1, sel); ++ const __m128i s1 = _mm_shuffle_epi8(src2, _mm_sub_epi8(sel, sixteen)); ++ const __m128i mask = _mm_or_si128(_mm_cmpeq_epi8(sel, sixteen), ++ _mm_cmpgt_epi8(sel, sixteen)); /* (>=16) = 0xff : 00 */ ++ return _mm_blendv_epi8(t0, s1, mask); ++} ++#endif ++ ++#define LOAD_MSG_0_1(buf) \ ++buf = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(6),TOB(4),TOB(2),TOB(0)) ); ++ ++#define LOAD_MSG_0_2(buf) \ ++buf = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(7),TOB(5),TOB(3),TOB(1)) ); ++ ++#define LOAD_MSG_0_3(buf) \ ++buf = _mm_perm_epi8(m2, m3, _mm_set_epi32(TOB(6),TOB(4),TOB(2),TOB(0)) ); ++ ++#define LOAD_MSG_0_4(buf) \ ++buf = _mm_perm_epi8(m2, m3, _mm_set_epi32(TOB(7),TOB(5),TOB(3),TOB(1)) ); ++ ++#define LOAD_MSG_1_1(buf) \ ++t0 = _mm_perm_epi8(m1, m2, _mm_set_epi32(TOB(0),TOB(5),TOB(0),TOB(0)) ); \ ++buf = _mm_perm_epi8(t0, m3, _mm_set_epi32(TOB(5),TOB(2),TOB(1),TOB(6)) ); ++ ++#define LOAD_MSG_1_2(buf) \ ++t1 = _mm_perm_epi8(m1, m2, _mm_set_epi32(TOB(2),TOB(0),TOB(4),TOB(6)) ); \ ++buf = _mm_perm_epi8(t1, m3, _mm_set_epi32(TOB(3),TOB(7),TOB(1),TOB(0)) ); ++ ++#define LOAD_MSG_1_3(buf) \ ++t0 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(5),TOB(0),TOB(0),TOB(1)) ); \ ++buf = _mm_perm_epi8(t0, m2, _mm_set_epi32(TOB(3),TOB(7),TOB(1),TOB(0)) ); ++ ++#define LOAD_MSG_1_4(buf) \ ++t1 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(3),TOB(7),TOB(2),TOB(0)) ); \ ++buf = _mm_perm_epi8(t1, m3, _mm_set_epi32(TOB(3),TOB(2),TOB(1),TOB(4)) ); ++ ++#define LOAD_MSG_2_1(buf) \ ++t0 = _mm_perm_epi8(m1, m2, _mm_set_epi32(TOB(0),TOB(1),TOB(0),TOB(7)) ); \ ++buf = _mm_perm_epi8(t0, m3, _mm_set_epi32(TOB(7),TOB(2),TOB(4),TOB(0)) ); ++ ++#define LOAD_MSG_2_2(buf) \ ++t1 = _mm_perm_epi8(m0, m2, _mm_set_epi32(TOB(0),TOB(2),TOB(0),TOB(4)) ); \ ++buf = _mm_perm_epi8(t1, m3, _mm_set_epi32(TOB(5),TOB(2),TOB(1),TOB(0)) ); ++ ++#define LOAD_MSG_2_3(buf) \ ++t0 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(0),TOB(7),TOB(3),TOB(0)) ); \ ++buf = _mm_perm_epi8(t0, m2, _mm_set_epi32(TOB(5),TOB(2),TOB(1),TOB(6)) ); ++ ++#define LOAD_MSG_2_4(buf) \ ++t1 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(4),TOB(1),TOB(6),TOB(0)) ); \ ++buf = _mm_perm_epi8(t1, m3, _mm_set_epi32(TOB(3),TOB(2),TOB(1),TOB(6)) ); ++ ++#define LOAD_MSG_3_1(buf) \ ++t0 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(0),TOB(0),TOB(3),TOB(7)) ); \ ++t0 = _mm_perm_epi8(t0, m2, _mm_set_epi32(TOB(7),TOB(2),TOB(1),TOB(0)) ); \ ++buf = _mm_perm_epi8(t0, m3, _mm_set_epi32(TOB(3),TOB(5),TOB(1),TOB(0)) ); ++ ++#define LOAD_MSG_3_2(buf) \ ++t1 = _mm_perm_epi8(m0, m2, _mm_set_epi32(TOB(0),TOB(0),TOB(1),TOB(5)) ); \ ++buf = _mm_perm_epi8(t1, m3, _mm_set_epi32(TOB(6),TOB(4),TOB(1),TOB(0)) ); ++ ++#define LOAD_MSG_3_3(buf) \ ++t0 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(0),TOB(4),TOB(5),TOB(2)) ); \ ++buf = _mm_perm_epi8(t0, m3, _mm_set_epi32(TOB(7),TOB(2),TOB(1),TOB(0)) ); ++ ++#define LOAD_MSG_3_4(buf) \ ++t1 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(0),TOB(0),TOB(0),TOB(6)) ); \ ++buf = _mm_perm_epi8(t1, m2, _mm_set_epi32(TOB(4),TOB(2),TOB(6),TOB(0)) ); ++ ++#define LOAD_MSG_4_1(buf) \ ++t0 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(0),TOB(2),TOB(5),TOB(0)) ); \ ++buf = _mm_perm_epi8(t0, m2, _mm_set_epi32(TOB(6),TOB(2),TOB(1),TOB(5)) ); ++ ++#define LOAD_MSG_4_2(buf) \ ++t1 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(0),TOB(4),TOB(7),TOB(0)) ); \ ++buf = _mm_perm_epi8(t1, m3, _mm_set_epi32(TOB(7),TOB(2),TOB(1),TOB(0)) ); ++ ++#define LOAD_MSG_4_3(buf) \ ++t0 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(3),TOB(6),TOB(0),TOB(0)) ); \ ++t0 = _mm_perm_epi8(t0, m2, _mm_set_epi32(TOB(3),TOB(2),TOB(7),TOB(0)) ); \ ++buf = _mm_perm_epi8(t0, m3, _mm_set_epi32(TOB(3),TOB(2),TOB(1),TOB(6)) ); ++ ++#define LOAD_MSG_4_4(buf) \ ++t1 = _mm_perm_epi8(m0, m2, _mm_set_epi32(TOB(0),TOB(4),TOB(0),TOB(1)) ); \ ++buf = _mm_perm_epi8(t1, m3, _mm_set_epi32(TOB(5),TOB(2),TOB(4),TOB(0)) ); ++ ++#define LOAD_MSG_5_1(buf) \ ++t0 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(0),TOB(0),TOB(6),TOB(2)) ); \ ++buf = _mm_perm_epi8(t0, m2, _mm_set_epi32(TOB(4),TOB(2),TOB(1),TOB(0)) ); ++ ++#define LOAD_MSG_5_2(buf) \ ++t1 = _mm_perm_epi8(m0, m2, _mm_set_epi32(TOB(3),TOB(7),TOB(6),TOB(0)) ); \ ++buf = _mm_perm_epi8(t1, m3, _mm_set_epi32(TOB(3),TOB(2),TOB(1),TOB(4)) ); ++ ++#define LOAD_MSG_5_3(buf) \ ++t0 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(1),TOB(0),TOB(7),TOB(4)) ); \ ++buf = _mm_perm_epi8(t0, m3, _mm_set_epi32(TOB(3),TOB(7),TOB(1),TOB(0)) ); ++ ++#define LOAD_MSG_5_4(buf) \ ++t1 = _mm_perm_epi8(m1, m2, _mm_set_epi32(TOB(5),TOB(0),TOB(1),TOB(0)) ); \ ++buf = _mm_perm_epi8(t1, m3, _mm_set_epi32(TOB(3),TOB(6),TOB(1),TOB(5)) ); ++ ++#define LOAD_MSG_6_1(buf) \ ++t0 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(4),TOB(0),TOB(1),TOB(0)) ); \ ++buf = _mm_perm_epi8(t0, m3, _mm_set_epi32(TOB(3),TOB(6),TOB(1),TOB(4)) ); ++ ++#define LOAD_MSG_6_2(buf) \ ++t1 = _mm_perm_epi8(m1, m2, _mm_set_epi32(TOB(6),TOB(0),TOB(0),TOB(1)) ); \ ++buf = _mm_perm_epi8(t1, m3, _mm_set_epi32(TOB(3),TOB(5),TOB(7),TOB(0)) ); ++ ++#define LOAD_MSG_6_3(buf) \ ++t0 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(0),TOB(0),TOB(6),TOB(0)) ); \ ++buf = _mm_perm_epi8(t0, m2, _mm_set_epi32(TOB(4),TOB(5),TOB(1),TOB(0)) ); ++ ++#define LOAD_MSG_6_4(buf) \ ++t1 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(0),TOB(2),TOB(3),TOB(7)) ); \ ++buf = _mm_perm_epi8(t1, m2, _mm_set_epi32(TOB(7),TOB(2),TOB(1),TOB(0)) ); ++ ++#define LOAD_MSG_7_1(buf) \ ++t0 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(3),TOB(0),TOB(7),TOB(0)) ); \ ++buf = _mm_perm_epi8(t0, m3, _mm_set_epi32(TOB(3),TOB(4),TOB(1),TOB(5)) ); ++ ++#define LOAD_MSG_7_2(buf) \ ++t1 = _mm_perm_epi8(m0, m2, _mm_set_epi32(TOB(5),TOB(1),TOB(0),TOB(7)) ); \ ++buf = _mm_perm_epi8(t1, m3, _mm_set_epi32(TOB(3),TOB(2),TOB(6),TOB(0)) ); ++ ++#define LOAD_MSG_7_3(buf) \ ++t0 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(2),TOB(0),TOB(0),TOB(5)) ); \ ++t0 = _mm_perm_epi8(t0, m2, _mm_set_epi32(TOB(3),TOB(4),TOB(1),TOB(0)) ); \ ++buf = _mm_perm_epi8(t0, m3, _mm_set_epi32(TOB(3),TOB(2),TOB(7),TOB(0)) ); ++ ++#define LOAD_MSG_7_4(buf) \ ++t1 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(0),TOB(6),TOB(4),TOB(0)) ); \ ++buf = _mm_perm_epi8(t1, m2, _mm_set_epi32(TOB(6),TOB(2),TOB(1),TOB(0)) ); ++ ++#define LOAD_MSG_8_1(buf) \ ++t0 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(0),TOB(0),TOB(0),TOB(6)) ); \ ++t0 = _mm_perm_epi8(t0, m2, _mm_set_epi32(TOB(3),TOB(7),TOB(1),TOB(0)) ); \ ++buf = _mm_perm_epi8(t0, m3, _mm_set_epi32(TOB(3),TOB(2),TOB(6),TOB(0)) ); ++ ++#define LOAD_MSG_8_2(buf) \ ++t1 = _mm_perm_epi8(m0, m2, _mm_set_epi32(TOB(4),TOB(3),TOB(5),TOB(0)) ); \ ++buf = _mm_perm_epi8(t1, m3, _mm_set_epi32(TOB(3),TOB(2),TOB(1),TOB(7)) ); ++ ++#define LOAD_MSG_8_3(buf) \ ++t0 = _mm_perm_epi8(m0, m2, _mm_set_epi32(TOB(6),TOB(1),TOB(0),TOB(0)) ); \ ++buf = _mm_perm_epi8(t0, m3, _mm_set_epi32(TOB(3),TOB(2),TOB(5),TOB(4)) ); \ ++ ++#define LOAD_MSG_8_4(buf) \ ++buf = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(5),TOB(4),TOB(7),TOB(2)) ); ++ ++#define LOAD_MSG_9_1(buf) \ ++t0 = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(1),TOB(7),TOB(0),TOB(0)) ); \ ++buf = _mm_perm_epi8(t0, m2, _mm_set_epi32(TOB(3),TOB(2),TOB(4),TOB(6)) ); ++ ++#define LOAD_MSG_9_2(buf) \ ++buf = _mm_perm_epi8(m0, m1, _mm_set_epi32(TOB(5),TOB(6),TOB(4),TOB(2)) ); ++ ++#define LOAD_MSG_9_3(buf) \ ++t0 = _mm_perm_epi8(m0, m2, _mm_set_epi32(TOB(0),TOB(3),TOB(5),TOB(0)) ); \ ++buf = _mm_perm_epi8(t0, m3, _mm_set_epi32(TOB(5),TOB(2),TOB(1),TOB(7)) ); ++ ++#define LOAD_MSG_9_4(buf) \ ++t1 = _mm_perm_epi8(m0, m2, _mm_set_epi32(TOB(0),TOB(0),TOB(0),TOB(7)) ); \ ++buf = _mm_perm_epi8(t1, m3, _mm_set_epi32(TOB(3),TOB(4),TOB(6),TOB(0)) ); ++ ++#endif +--- thirdparty/blake2/sse/blake2s-round.h.orig 2025-09-03 12:27:32 UTC ++++ thirdparty/blake2/sse/blake2s-round.h +@@ -0,0 +1,88 @@ ++/* ++ BLAKE2 reference source code package - optimized C implementations ++ ++ Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the ++ terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at ++ your option. The terms of these licenses can be found at: ++ ++ - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 ++ - OpenSSL license : https://www.openssl.org/source/license.html ++ - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 ++ ++ More information about the BLAKE2 hash function can be found at ++ https://blake2.net. ++*/ ++#ifndef BLAKE2S_ROUND_H ++#define BLAKE2S_ROUND_H ++ ++#define LOADU(p) _mm_loadu_si128( (const __m128i *)(p) ) ++#define STOREU(p,r) _mm_storeu_si128((__m128i *)(p), r) ++ ++#define TOF(reg) _mm_castsi128_ps((reg)) ++#define TOI(reg) _mm_castps_si128((reg)) ++ ++#define LIKELY(x) __builtin_expect((x),1) ++ ++ ++/* Microarchitecture-specific macros */ ++#ifndef HAVE_XOP ++#ifdef HAVE_SSSE3 ++#define _mm_roti_epi32(r, c) ( \ ++ (8==-(c)) ? _mm_shuffle_epi8(r,r8) \ ++ : (16==-(c)) ? _mm_shuffle_epi8(r,r16) \ ++ : _mm_xor_si128(_mm_srli_epi32( (r), -(c) ),_mm_slli_epi32( (r), 32-(-(c)) )) ) ++#else ++#define _mm_roti_epi32(r, c) _mm_xor_si128(_mm_srli_epi32( (r), -(c) ),_mm_slli_epi32( (r), 32-(-(c)) )) ++#endif ++#else ++/* ... */ ++#endif ++ ++ ++#define G1(row1,row2,row3,row4,buf) \ ++ row1 = _mm_add_epi32( _mm_add_epi32( row1, buf), row2 ); \ ++ row4 = _mm_xor_si128( row4, row1 ); \ ++ row4 = _mm_roti_epi32(row4, -16); \ ++ row3 = _mm_add_epi32( row3, row4 ); \ ++ row2 = _mm_xor_si128( row2, row3 ); \ ++ row2 = _mm_roti_epi32(row2, -12); ++ ++#define G2(row1,row2,row3,row4,buf) \ ++ row1 = _mm_add_epi32( _mm_add_epi32( row1, buf), row2 ); \ ++ row4 = _mm_xor_si128( row4, row1 ); \ ++ row4 = _mm_roti_epi32(row4, -8); \ ++ row3 = _mm_add_epi32( row3, row4 ); \ ++ row2 = _mm_xor_si128( row2, row3 ); \ ++ row2 = _mm_roti_epi32(row2, -7); ++ ++#define DIAGONALIZE(row1,row2,row3,row4) \ ++ row4 = _mm_shuffle_epi32( row4, _MM_SHUFFLE(2,1,0,3) ); \ ++ row3 = _mm_shuffle_epi32( row3, _MM_SHUFFLE(1,0,3,2) ); \ ++ row2 = _mm_shuffle_epi32( row2, _MM_SHUFFLE(0,3,2,1) ); ++ ++#define UNDIAGONALIZE(row1,row2,row3,row4) \ ++ row4 = _mm_shuffle_epi32( row4, _MM_SHUFFLE(0,3,2,1) ); \ ++ row3 = _mm_shuffle_epi32( row3, _MM_SHUFFLE(1,0,3,2) ); \ ++ row2 = _mm_shuffle_epi32( row2, _MM_SHUFFLE(2,1,0,3) ); ++ ++#if defined(HAVE_XOP) ++#include "blake2s-load-xop.h" ++#elif defined(HAVE_SSE41) ++#include "blake2s-load-sse41.h" ++#else ++#include "blake2s-load-sse2.h" ++#endif ++ ++#define ROUND(r) \ ++ LOAD_MSG_ ##r ##_1(buf1); \ ++ G1(row1,row2,row3,row4,buf1); \ ++ LOAD_MSG_ ##r ##_2(buf2); \ ++ G2(row1,row2,row3,row4,buf2); \ ++ DIAGONALIZE(row1,row2,row3,row4); \ ++ LOAD_MSG_ ##r ##_3(buf3); \ ++ G1(row1,row2,row3,row4,buf3); \ ++ LOAD_MSG_ ##r ##_4(buf4); \ ++ G2(row1,row2,row3,row4,buf4); \ ++ UNDIAGONALIZE(row1,row2,row3,row4); \ ++ ++#endif +--- thirdparty/blake2/sse/blake2s.c.orig 2025-09-03 12:27:32 UTC ++++ thirdparty/blake2/sse/blake2s.c +@@ -0,0 +1,363 @@ ++/* ++ BLAKE2 reference source code package - optimized C implementations ++ ++ Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the ++ terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at ++ your option. The terms of these licenses can be found at: ++ ++ - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 ++ - OpenSSL license : https://www.openssl.org/source/license.html ++ - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 ++ ++ More information about the BLAKE2 hash function can be found at ++ https://blake2.net. ++*/ ++ ++#include <stdint.h> ++#include <string.h> ++#include <stdio.h> ++ ++#include "blake2.h" ++#include "blake2-impl.h" ++ ++#include "blake2-config.h" ++ ++ ++#include <emmintrin.h> ++#if defined(HAVE_SSSE3) ++#include <tmmintrin.h> ++#endif ++#if defined(HAVE_SSE41) ++#include <smmintrin.h> ++#endif ++#if defined(HAVE_AVX) ++#include <immintrin.h> ++#endif ++#if defined(HAVE_XOP) ++#include <x86intrin.h> ++#endif ++ ++#include "blake2s-round.h" ++ ++static const uint32_t blake2s_IV[8] = ++{ ++ 0x6A09E667UL, 0xBB67AE85UL, 0x3C6EF372UL, 0xA54FF53AUL, ++ 0x510E527FUL, 0x9B05688CUL, 0x1F83D9ABUL, 0x5BE0CD19UL ++}; ++ ++/* Some helper functions */ ++static void blake2s_set_lastnode( blake2s_state *S ) ++{ ++ S->f[1] = (uint32_t)-1; ++} ++ ++static int blake2s_is_lastblock( const blake2s_state *S ) ++{ ++ return S->f[0] != 0; ++} ++ ++static void blake2s_set_lastblock( blake2s_state *S ) ++{ ++ if( S->last_node ) blake2s_set_lastnode( S ); ++ ++ S->f[0] = (uint32_t)-1; ++} ++ ++static void blake2s_increment_counter( blake2s_state *S, const uint32_t inc ) ++{ ++ uint64_t t = ( ( uint64_t )S->t[1] << 32 ) | S->t[0]; ++ t += inc; ++ S->t[0] = ( uint32_t )( t >> 0 ); ++ S->t[1] = ( uint32_t )( t >> 32 ); ++} ++ ++/* init2 xors IV with input parameter block */ ++int blake2s_init_param( blake2s_state *S, const blake2s_param *P ) ++{ ++ size_t i; ++ /*blake2s_init0( S ); */ ++ const uint8_t * v = ( const uint8_t * )( blake2s_IV ); ++ const uint8_t * p = ( const uint8_t * )( P ); ++ uint8_t * h = ( uint8_t * )( S->h ); ++ /* IV XOR ParamBlock */ ++ memset( S, 0, sizeof( blake2s_state ) ); ++ ++ for( i = 0; i < BLAKE2S_OUTBYTES; ++i ) h[i] = v[i] ^ p[i]; ++ ++ S->outlen = P->digest_length; ++ return 0; ++} ++ ++ ++/* Some sort of default parameter block initialization, for sequential blake2s */ ++int blake2s_init( blake2s_state *S, size_t outlen ) ++{ ++ blake2s_param P[1]; ++ ++ /* Move interval verification here? */ ++ if ( ( !outlen ) || ( outlen > BLAKE2S_OUTBYTES ) ) return -1; ++ ++ P->digest_length = (uint8_t)outlen; ++ P->key_length = 0; ++ P->fanout = 1; ++ P->depth = 1; ++ store32( &P->leaf_length, 0 ); ++ store32( &P->node_offset, 0 ); ++ store16( &P->xof_length, 0 ); ++ P->node_depth = 0; ++ P->inner_length = 0; ++ /* memset(P->reserved, 0, sizeof(P->reserved) ); */ ++ memset( P->salt, 0, sizeof( P->salt ) ); ++ memset( P->personal, 0, sizeof( P->personal ) ); ++ ++ return blake2s_init_param( S, P ); ++} ++ ++ ++int blake2s_init_key( blake2s_state *S, size_t outlen, const void *key, size_t keylen ) ++{ ++ blake2s_param P[1]; ++ ++ /* Move interval verification here? */ ++ if ( ( !outlen ) || ( outlen > BLAKE2S_OUTBYTES ) ) return -1; ++ ++ if ( ( !key ) || ( !keylen ) || keylen > BLAKE2S_KEYBYTES ) return -1; ++ ++ P->digest_length = (uint8_t)outlen; ++ P->key_length = (uint8_t)keylen; ++ P->fanout = 1; ++ P->depth = 1; ++ store32( &P->leaf_length, 0 ); ++ store32( &P->node_offset, 0 ); ++ store16( &P->xof_length, 0 ); ++ P->node_depth = 0; ++ P->inner_length = 0; ++ /* memset(P->reserved, 0, sizeof(P->reserved) ); */ ++ memset( P->salt, 0, sizeof( P->salt ) ); ++ memset( P->personal, 0, sizeof( P->personal ) ); ++ ++ if( blake2s_init_param( S, P ) < 0 ) ++ return -1; ++ ++ { ++ uint8_t block[BLAKE2S_BLOCKBYTES]; ++ memset( block, 0, BLAKE2S_BLOCKBYTES ); ++ memcpy( block, key, keylen ); ++ blake2s_update( S, block, BLAKE2S_BLOCKBYTES ); ++ secure_zero_memory( block, BLAKE2S_BLOCKBYTES ); /* Burn the key from stack */ ++ } ++ return 0; ++} ++ ++ ++static void blake2s_compress( blake2s_state *S, const uint8_t block[BLAKE2S_BLOCKBYTES] ) ++{ ++ __m128i row1, row2, row3, row4; ++ __m128i buf1, buf2, buf3, buf4; ++#if defined(HAVE_SSE41) ++ __m128i t0, t1; ++#if !defined(HAVE_XOP) ++ __m128i t2; ++#endif ++#endif ++ __m128i ff0, ff1; ++#if defined(HAVE_SSSE3) && !defined(HAVE_XOP) ++ const __m128i r8 = _mm_set_epi8( 12, 15, 14, 13, 8, 11, 10, 9, 4, 7, 6, 5, 0, 3, 2, 1 ); ++ const __m128i r16 = _mm_set_epi8( 13, 12, 15, 14, 9, 8, 11, 10, 5, 4, 7, 6, 1, 0, 3, 2 ); ++#endif ++#if defined(HAVE_SSE41) ++ const __m128i m0 = LOADU( block + 00 ); ++ const __m128i m1 = LOADU( block + 16 ); ++ const __m128i m2 = LOADU( block + 32 ); ++ const __m128i m3 = LOADU( block + 48 ); ++#else ++ const uint32_t m0 = load32(block + 0 * sizeof(uint32_t)); ++ const uint32_t m1 = load32(block + 1 * sizeof(uint32_t)); ++ const uint32_t m2 = load32(block + 2 * sizeof(uint32_t)); ++ const uint32_t m3 = load32(block + 3 * sizeof(uint32_t)); ++ const uint32_t m4 = load32(block + 4 * sizeof(uint32_t)); ++ const uint32_t m5 = load32(block + 5 * sizeof(uint32_t)); ++ const uint32_t m6 = load32(block + 6 * sizeof(uint32_t)); ++ const uint32_t m7 = load32(block + 7 * sizeof(uint32_t)); ++ const uint32_t m8 = load32(block + 8 * sizeof(uint32_t)); ++ const uint32_t m9 = load32(block + 9 * sizeof(uint32_t)); ++ const uint32_t m10 = load32(block + 10 * sizeof(uint32_t)); ++ const uint32_t m11 = load32(block + 11 * sizeof(uint32_t)); ++ const uint32_t m12 = load32(block + 12 * sizeof(uint32_t)); ++ const uint32_t m13 = load32(block + 13 * sizeof(uint32_t)); ++ const uint32_t m14 = load32(block + 14 * sizeof(uint32_t)); ++ const uint32_t m15 = load32(block + 15 * sizeof(uint32_t)); ++#endif ++ row1 = ff0 = LOADU( &S->h[0] ); ++ row2 = ff1 = LOADU( &S->h[4] ); ++ row3 = _mm_loadu_si128( (__m128i const *)&blake2s_IV[0] ); ++ row4 = _mm_xor_si128( _mm_loadu_si128( (__m128i const *)&blake2s_IV[4] ), LOADU( &S->t[0] ) ); ++ ROUND( 0 ); ++ ROUND( 1 ); ++ ROUND( 2 ); ++ ROUND( 3 ); ++ ROUND( 4 ); ++ ROUND( 5 ); ++ ROUND( 6 ); ++ ROUND( 7 ); ++ ROUND( 8 ); ++ ROUND( 9 ); ++ STOREU( &S->h[0], _mm_xor_si128( ff0, _mm_xor_si128( row1, row3 ) ) ); ++ STOREU( &S->h[4], _mm_xor_si128( ff1, _mm_xor_si128( row2, row4 ) ) ); ++} ++ ++int blake2s_update( blake2s_state *S, const void *pin, size_t inlen ) ++{ ++ const unsigned char * in = (const unsigned char *)pin; ++ if( inlen > 0 ) ++ { ++ size_t left = S->buflen; ++ size_t fill = BLAKE2S_BLOCKBYTES - left; ++ if( inlen > fill ) ++ { ++ S->buflen = 0; ++ memcpy( S->buf + left, in, fill ); /* Fill buffer */ ++ blake2s_increment_counter( S, BLAKE2S_BLOCKBYTES ); ++ blake2s_compress( S, S->buf ); /* Compress */ ++ in += fill; inlen -= fill; ++ while(inlen > BLAKE2S_BLOCKBYTES) { ++ blake2s_increment_counter(S, BLAKE2S_BLOCKBYTES); ++ blake2s_compress( S, in ); ++ in += BLAKE2S_BLOCKBYTES; ++ inlen -= BLAKE2S_BLOCKBYTES; ++ } ++ } ++ memcpy( S->buf + S->buflen, in, inlen ); ++ S->buflen += inlen; ++ } ++ return 0; ++} ++ ++int blake2s_final( blake2s_state *S, void *out, size_t outlen ) ++{ ++ uint8_t buffer[BLAKE2S_OUTBYTES] = {0}; ++ size_t i; ++ ++ if( out == NULL || outlen < S->outlen ) ++ return -1; ++ ++ if( blake2s_is_lastblock( S ) ) ++ return -1; ++ ++ blake2s_increment_counter( S, (uint32_t)S->buflen ); ++ blake2s_set_lastblock( S ); ++ memset( S->buf + S->buflen, 0, BLAKE2S_BLOCKBYTES - S->buflen ); /* Padding */ ++ blake2s_compress( S, S->buf ); ++ ++ for( i = 0; i < 8; ++i ) /* Output full hash to temp buffer */ ++ store32( buffer + sizeof( S->h[i] ) * i, S->h[i] ); ++ ++ memcpy( out, buffer, S->outlen ); ++ secure_zero_memory( buffer, sizeof(buffer) ); ++ return 0; ++} ++ ++/* inlen, at least, should be uint64_t. Others can be size_t. */ ++int blake2s( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen ) ++{ ++ blake2s_state S[1]; ++ ++ /* Verify parameters */ ++ if ( NULL == in && inlen > 0 ) return -1; ++ ++ if ( NULL == out ) return -1; ++ ++ if ( NULL == key && keylen > 0) return -1; ++ ++ if( !outlen || outlen > BLAKE2S_OUTBYTES ) return -1; ++ ++ if( keylen > BLAKE2S_KEYBYTES ) return -1; ++ ++ if( keylen > 0 ) ++ { ++ if( blake2s_init_key( S, outlen, key, keylen ) < 0 ) return -1; ++ } ++ else ++ { ++ if( blake2s_init( S, outlen ) < 0 ) return -1; ++ } ++ ++ blake2s_update( S, ( const uint8_t * )in, inlen ); ++ blake2s_final( S, out, outlen ); ++ return 0; ++} ++ ++#if defined(SUPERCOP) ++int crypto_hash( unsigned char *out, unsigned char *in, unsigned long long inlen ) ++{ ++ return blake2s( out, BLAKE2S_OUTBYTES, in, inlen, NULL, 0 ); ++} ++#endif ++ ++#if defined(BLAKE2S_SELFTEST) ++#include <string.h> ++#include "blake2-kat.h" ++int main( void ) ++{ ++ uint8_t key[BLAKE2S_KEYBYTES]; ++ uint8_t buf[BLAKE2_KAT_LENGTH]; ++ size_t i, step; ++ ++ for( i = 0; i < BLAKE2S_KEYBYTES; ++i ) ++ key[i] = ( uint8_t )i; ++ ++ for( i = 0; i < BLAKE2_KAT_LENGTH; ++i ) ++ buf[i] = ( uint8_t )i; ++ ++ /* Test simple API */ ++ for( i = 0; i < BLAKE2_KAT_LENGTH; ++i ) ++ { ++ uint8_t hash[BLAKE2S_OUTBYTES]; ++ blake2s( hash, BLAKE2S_OUTBYTES, buf, i, key, BLAKE2S_KEYBYTES ); ++ ++ if( 0 != memcmp( hash, blake2s_keyed_kat[i], BLAKE2S_OUTBYTES ) ) ++ { ++ goto fail; ++ } ++ } ++ ++ /* Test streaming API */ ++ for(step = 1; step < BLAKE2S_BLOCKBYTES; ++step) { ++ for (i = 0; i < BLAKE2_KAT_LENGTH; ++i) { ++ uint8_t hash[BLAKE2S_OUTBYTES]; ++ blake2s_state S; ++ uint8_t * p = buf; ++ size_t mlen = i; ++ int err = 0; ++ ++ if( (err = blake2s_init_key(&S, BLAKE2S_OUTBYTES, key, BLAKE2S_KEYBYTES)) < 0 ) { ++ goto fail; ++ } ++ ++ while (mlen >= step) { ++ if ( (err = blake2s_update(&S, p, step)) < 0 ) { ++ goto fail; ++ } ++ mlen -= step; ++ p += step; ++ } ++ if ( (err = blake2s_update(&S, p, mlen)) < 0) { ++ goto fail; ++ } ++ if ( (err = blake2s_final(&S, hash, BLAKE2S_OUTBYTES)) < 0) { ++ goto fail; ++ } ++ ++ if (0 != memcmp(hash, blake2s_keyed_kat[i], BLAKE2S_OUTBYTES)) { ++ goto fail; ++ } ++ } ++ } ++ ++ puts( "ok" ); ++ return 0; ++fail: ++ puts("error"); ++ return -1; ++} ++#endif +--- thirdparty/blake2/sse/blake2sp.c.orig 2025-09-03 12:27:32 UTC ++++ thirdparty/blake2/sse/blake2sp.c +@@ -0,0 +1,358 @@ ++/* ++ BLAKE2 reference source code package - optimized C implementations ++ ++ Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the ++ terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at ++ your option. The terms of these licenses can be found at: ++ ++ - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 ++ - OpenSSL license : https://www.openssl.org/source/license.html ++ - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 ++ ++ More information about the BLAKE2 hash function can be found at ++ https://blake2.net. ++*/ ++ ++#include <stdlib.h> ++#include <string.h> ++#include <stdio.h> ++ ++#if defined(_OPENMP) ++#include <omp.h> ++#endif ++ ++#include "blake2.h" ++#include "blake2-impl.h" ++ ++#define PARALLELISM_DEGREE 8 ++ ++/* ++ blake2sp_init_param defaults to setting the expecting output length ++ from the digest_length parameter block field. ++ ++ In some cases, however, we do not want this, as the output length ++ of these instances is given by inner_length instead. ++*/ ++static int blake2sp_init_leaf_param( blake2s_state *S, const blake2s_param *P ) ++{ ++ int err = blake2s_init_param(S, P); ++ S->outlen = P->inner_length; ++ return err; ++} ++ ++static int blake2sp_init_leaf( blake2s_state *S, size_t outlen, size_t keylen, uint64_t offset ) ++{ ++ blake2s_param P[1]; ++ P->digest_length = (uint8_t)outlen; ++ P->key_length = (uint8_t)keylen; ++ P->fanout = PARALLELISM_DEGREE; ++ P->depth = 2; ++ P->leaf_length = 0; ++ P->node_offset = offset; ++ P->xof_length = 0; ++ P->node_depth = 0; ++ P->inner_length = BLAKE2S_OUTBYTES; ++ memset( P->salt, 0, sizeof( P->salt ) ); ++ memset( P->personal, 0, sizeof( P->personal ) ); ++ return blake2sp_init_leaf_param( S, P ); ++} ++ ++static int blake2sp_init_root( blake2s_state *S, size_t outlen, size_t keylen ) ++{ ++ blake2s_param P[1]; ++ P->digest_length = (uint8_t)outlen; ++ P->key_length = (uint8_t)keylen; ++ P->fanout = PARALLELISM_DEGREE; ++ P->depth = 2; ++ P->leaf_length = 0; ++ P->node_offset = 0; ++ P->xof_length = 0; ++ P->node_depth = 1; ++ P->inner_length = BLAKE2S_OUTBYTES; ++ memset( P->salt, 0, sizeof( P->salt ) ); ++ memset( P->personal, 0, sizeof( P->personal ) ); ++ return blake2s_init_param( S, P ); ++} ++ ++ ++int blake2sp_init( blake2sp_state *S, size_t outlen ) ++{ ++ size_t i; ++ ++ if( !outlen || outlen > BLAKE2S_OUTBYTES ) return -1; ++ ++ memset( S->buf, 0, sizeof( S->buf ) ); ++ S->buflen = 0; ++ S->outlen = outlen; ++ ++ if( blake2sp_init_root( S->R, outlen, 0 ) < 0 ) ++ return -1; ++ ++ for( i = 0; i < PARALLELISM_DEGREE; ++i ) ++ if( blake2sp_init_leaf( S->S[i], outlen, 0, i ) < 0 ) return -1; ++ ++ S->R->last_node = 1; ++ S->S[PARALLELISM_DEGREE - 1]->last_node = 1; ++ return 0; ++} ++ ++int blake2sp_init_key( blake2sp_state *S, size_t outlen, const void *key, size_t keylen ) ++{ ++ size_t i; ++ ++ if( !outlen || outlen > BLAKE2S_OUTBYTES ) return -1; ++ ++ if( !key || !keylen || keylen > BLAKE2S_KEYBYTES ) return -1; ++ ++ memset( S->buf, 0, sizeof( S->buf ) ); ++ S->buflen = 0; ++ S->outlen = outlen; ++ ++ if( blake2sp_init_root( S->R, outlen, keylen ) < 0 ) ++ return -1; ++ ++ for( i = 0; i < PARALLELISM_DEGREE; ++i ) ++ if( blake2sp_init_leaf( S->S[i], outlen, keylen, i ) < 0 ) return -1; ++ ++ S->R->last_node = 1; ++ S->S[PARALLELISM_DEGREE - 1]->last_node = 1; ++ { ++ uint8_t block[BLAKE2S_BLOCKBYTES]; ++ memset( block, 0, BLAKE2S_BLOCKBYTES ); ++ memcpy( block, key, keylen ); ++ ++ for( i = 0; i < PARALLELISM_DEGREE; ++i ) ++ blake2s_update( S->S[i], block, BLAKE2S_BLOCKBYTES ); ++ ++ secure_zero_memory( block, BLAKE2S_BLOCKBYTES ); /* Burn the key from stack */ ++ } ++ return 0; ++} ++ ++ ++int blake2sp_update( blake2sp_state *S, const void *pin, size_t inlen ) ++{ ++ const unsigned char * in = (const unsigned char *)pin; ++ size_t left = S->buflen; ++ size_t fill = sizeof( S->buf ) - left; ++ size_t i; ++ ++ if( left && inlen >= fill ) ++ { ++ memcpy( S->buf + left, in, fill ); ++ ++ for( i = 0; i < PARALLELISM_DEGREE; ++i ) ++ blake2s_update( S->S[i], S->buf + i * BLAKE2S_BLOCKBYTES, BLAKE2S_BLOCKBYTES ); ++ ++ in += fill; ++ inlen -= fill; ++ left = 0; ++ } ++ ++#if defined(_OPENMP) ++ #pragma omp parallel shared(S), num_threads(PARALLELISM_DEGREE) ++#else ++ ++ for( i = 0; i < PARALLELISM_DEGREE; ++i ) ++#endif ++ { ++#if defined(_OPENMP) ++ size_t i = omp_get_thread_num(); ++#endif ++ size_t inlen__ = inlen; ++ const unsigned char *in__ = ( const unsigned char * )in; ++ in__ += i * BLAKE2S_BLOCKBYTES; ++ ++ while( inlen__ >= PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES ) ++ { ++ blake2s_update( S->S[i], in__, BLAKE2S_BLOCKBYTES ); ++ in__ += PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES; ++ inlen__ -= PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES; ++ } ++ } ++ ++ in += inlen - inlen % ( PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES ); ++ inlen %= PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES; ++ ++ if( inlen > 0 ) ++ memcpy( S->buf + left, in, inlen ); ++ ++ S->buflen = left + inlen; ++ return 0; ++} ++ ++ ++int blake2sp_final( blake2sp_state *S, void *out, size_t outlen ) ++{ ++ uint8_t hash[PARALLELISM_DEGREE][BLAKE2S_OUTBYTES]; ++ size_t i; ++ ++ if(out == NULL || outlen < S->outlen) { ++ return -1; ++ } ++ ++ for( i = 0; i < PARALLELISM_DEGREE; ++i ) ++ { ++ if( S->buflen > i * BLAKE2S_BLOCKBYTES ) ++ { ++ size_t left = S->buflen - i * BLAKE2S_BLOCKBYTES; ++ ++ if( left > BLAKE2S_BLOCKBYTES ) left = BLAKE2S_BLOCKBYTES; ++ ++ blake2s_update( S->S[i], S->buf + i * BLAKE2S_BLOCKBYTES, left ); ++ } ++ ++ blake2s_final( S->S[i], hash[i], BLAKE2S_OUTBYTES ); ++ } ++ ++ for( i = 0; i < PARALLELISM_DEGREE; ++i ) ++ blake2s_update( S->R, hash[i], BLAKE2S_OUTBYTES ); ++ ++ return blake2s_final( S->R, out, S->outlen ); ++} ++ ++ ++int blake2sp( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen ) ++{ ++ uint8_t hash[PARALLELISM_DEGREE][BLAKE2S_OUTBYTES]; ++ blake2s_state S[PARALLELISM_DEGREE][1]; ++ blake2s_state FS[1]; ++ size_t i; ++ ++ /* Verify parameters */ ++ if ( NULL == in && inlen > 0 ) return -1; ++ ++ if ( NULL == out ) return -1; ++ ++ if ( NULL == key && keylen > 0) return -1; ++ ++ if( !outlen || outlen > BLAKE2S_OUTBYTES ) return -1; ++ ++ if( keylen > BLAKE2S_KEYBYTES ) return -1; ++ ++ for( i = 0; i < PARALLELISM_DEGREE; ++i ) ++ if( blake2sp_init_leaf( S[i], outlen, keylen, i ) < 0 ) return -1; ++ ++ S[PARALLELISM_DEGREE - 1]->last_node = 1; /* mark last node */ ++ ++ if( keylen > 0 ) ++ { ++ uint8_t block[BLAKE2S_BLOCKBYTES]; ++ memset( block, 0, BLAKE2S_BLOCKBYTES ); ++ memcpy( block, key, keylen ); ++ ++ for( i = 0; i < PARALLELISM_DEGREE; ++i ) ++ blake2s_update( S[i], block, BLAKE2S_BLOCKBYTES ); ++ ++ secure_zero_memory( block, BLAKE2S_BLOCKBYTES ); /* Burn the key from stack */ ++ } ++ ++#if defined(_OPENMP) ++ #pragma omp parallel shared(S,hash), num_threads(PARALLELISM_DEGREE) ++#else ++ ++ for( i = 0; i < PARALLELISM_DEGREE; ++i ) ++#endif ++ { ++#if defined(_OPENMP) ++ size_t i = omp_get_thread_num(); ++#endif ++ size_t inlen__ = inlen; ++ const unsigned char *in__ = ( const unsigned char * )in; ++ in__ += i * BLAKE2S_BLOCKBYTES; ++ ++ while( inlen__ >= PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES ) ++ { ++ blake2s_update( S[i], in__, BLAKE2S_BLOCKBYTES ); ++ in__ += PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES; ++ inlen__ -= PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES; ++ } ++ ++ if( inlen__ > i * BLAKE2S_BLOCKBYTES ) ++ { ++ const size_t left = inlen__ - i * BLAKE2S_BLOCKBYTES; ++ const size_t len = left <= BLAKE2S_BLOCKBYTES ? left : BLAKE2S_BLOCKBYTES; ++ blake2s_update( S[i], in__, len ); ++ } ++ ++ blake2s_final( S[i], hash[i], BLAKE2S_OUTBYTES ); ++ } ++ ++ if( blake2sp_init_root( FS, outlen, keylen ) < 0 ) ++ return -1; ++ ++ FS->last_node = 1; ++ ++ for( i = 0; i < PARALLELISM_DEGREE; ++i ) ++ blake2s_update( FS, hash[i], BLAKE2S_OUTBYTES ); ++ ++ return blake2s_final( FS, out, outlen ); ++} ++ ++#if defined(BLAKE2SP_SELFTEST) ++#include <string.h> ++#include "blake2-kat.h" ++int main( void ) ++{ ++ uint8_t key[BLAKE2S_KEYBYTES]; ++ uint8_t buf[BLAKE2_KAT_LENGTH]; ++ size_t i, step; ++ ++ for( i = 0; i < BLAKE2S_KEYBYTES; ++i ) ++ key[i] = ( uint8_t )i; ++ ++ for( i = 0; i < BLAKE2_KAT_LENGTH; ++i ) ++ buf[i] = ( uint8_t )i; ++ ++ /* Test simple API */ ++ for( i = 0; i < BLAKE2_KAT_LENGTH; ++i ) ++ { ++ uint8_t hash[BLAKE2S_OUTBYTES]; ++ blake2sp( hash, BLAKE2S_OUTBYTES, buf, i, key, BLAKE2S_KEYBYTES ); ++ ++ if( 0 != memcmp( hash, blake2sp_keyed_kat[i], BLAKE2S_OUTBYTES ) ) ++ { ++ goto fail; ++ } ++ } ++ ++ /* Test streaming API */ ++ for(step = 1; step < BLAKE2S_BLOCKBYTES; ++step) { ++ for (i = 0; i < BLAKE2_KAT_LENGTH; ++i) { ++ uint8_t hash[BLAKE2S_OUTBYTES]; ++ blake2sp_state S; ++ uint8_t * p = buf; ++ size_t mlen = i; ++ int err = 0; ++ ++ if( (err = blake2sp_init_key(&S, BLAKE2S_OUTBYTES, key, BLAKE2S_KEYBYTES)) < 0 ) { ++ goto fail; ++ } ++ ++ while (mlen >= step) { ++ if ( (err = blake2sp_update(&S, p, step)) < 0 ) { ++ goto fail; ++ } ++ mlen -= step; ++ p += step; ++ } ++ if ( (err = blake2sp_update(&S, p, mlen)) < 0) { ++ goto fail; ++ } ++ if ( (err = blake2sp_final(&S, hash, BLAKE2S_OUTBYTES)) < 0) { ++ goto fail; ++ } ++ ++ if (0 != memcmp(hash, blake2sp_keyed_kat[i], BLAKE2S_OUTBYTES)) { ++ goto fail; ++ } ++ } ++ } ++ ++ puts( "ok" ); ++ return 0; ++fail: ++ puts("error"); ++ return -1; ++} ++#endif +--- thirdparty/blake2/sse/blake2xb.c.orig 2025-09-03 12:27:32 UTC ++++ thirdparty/blake2/sse/blake2xb.c +@@ -0,0 +1,241 @@ ++/* ++ BLAKE2 reference source code package - reference C implementations ++ ++ Copyright 2016, JP Aumasson <jeanphilippe.aumasson@gmail.com>. ++ Copyright 2016, Samuel Neves <sneves@dei.uc.pt>. ++ ++ You may use this under the terms of the CC0, the OpenSSL Licence, or ++ the Apache Public License 2.0, at your option. The terms of these ++ licenses can be found at: ++ ++ - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 ++ - OpenSSL license : https://www.openssl.org/source/license.html ++ - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 ++ ++ More information about the BLAKE2 hash function can be found at ++ https://blake2.net. ++*/ ++ ++#include <stdint.h> ++#include <string.h> ++#include <stdio.h> ++ ++#include "blake2.h" ++#include "blake2-impl.h" ++ ++int blake2xb_init( blake2xb_state *S, const size_t outlen ) { ++ return blake2xb_init_key(S, outlen, NULL, 0); ++} ++ ++int blake2xb_init_key( blake2xb_state *S, const size_t outlen, const void *key, size_t keylen) ++{ ++ if ( outlen == 0 || outlen > 0xFFFFFFFFUL ) { ++ return -1; ++ } ++ ++ if (NULL != key && keylen > BLAKE2B_KEYBYTES) { ++ return -1; ++ } ++ ++ if (NULL == key && keylen > 0) { ++ return -1; ++ } ++ ++ /* Initialize parameter block */ ++ S->P->digest_length = BLAKE2B_OUTBYTES; ++ S->P->key_length = keylen; ++ S->P->fanout = 1; ++ S->P->depth = 1; ++ store32( &S->P->leaf_length, 0 ); ++ store32( &S->P->node_offset, 0 ); ++ store32( &S->P->xof_length, outlen ); ++ S->P->node_depth = 0; ++ S->P->inner_length = 0; ++ memset( S->P->reserved, 0, sizeof( S->P->reserved ) ); ++ memset( S->P->salt, 0, sizeof( S->P->salt ) ); ++ memset( S->P->personal, 0, sizeof( S->P->personal ) ); ++ ++ if( blake2b_init_param( S->S, S->P ) < 0 ) { ++ return -1; ++ } ++ ++ if (keylen > 0) { ++ uint8_t block[BLAKE2B_BLOCKBYTES]; ++ memset(block, 0, BLAKE2B_BLOCKBYTES); ++ memcpy(block, key, keylen); ++ blake2b_update(S->S, block, BLAKE2B_BLOCKBYTES); ++ secure_zero_memory(block, BLAKE2B_BLOCKBYTES); ++ } ++ return 0; ++} ++ ++int blake2xb_update( blake2xb_state *S, const void *in, size_t inlen ) { ++ return blake2b_update( S->S, in, inlen ); ++} ++ ++int blake2xb_final( blake2xb_state *S, void *out, size_t outlen) { ++ ++ blake2b_state C[1]; ++ blake2b_param P[1]; ++ uint32_t xof_length = load32(&S->P->xof_length); ++ uint8_t root[BLAKE2B_BLOCKBYTES]; ++ size_t i; ++ ++ if (NULL == out) { ++ return -1; ++ } ++ ++ /* outlen must match the output size defined in xof_length, */ ++ /* unless it was -1, in which case anything goes except 0. */ ++ if(xof_length == 0xFFFFFFFFUL) { ++ if(outlen == 0) { ++ return -1; ++ } ++ } else { ++ if(outlen != xof_length) { ++ return -1; ++ } ++ } ++ ++ /* Finalize the root hash */ ++ if (blake2b_final(S->S, root, BLAKE2B_OUTBYTES) < 0) { ++ return -1; ++ } ++ ++ /* Set common block structure values */ ++ /* Copy values from parent instance, and only change the ones below */ ++ memcpy(P, S->P, sizeof(blake2b_param)); ++ P->key_length = 0; ++ P->fanout = 0; ++ P->depth = 0; ++ store32(&P->leaf_length, BLAKE2B_OUTBYTES); ++ P->inner_length = BLAKE2B_OUTBYTES; ++ P->node_depth = 0; ++ ++ for (i = 0; outlen > 0; ++i) { ++ const size_t block_size = (outlen < BLAKE2B_OUTBYTES) ? outlen : BLAKE2B_OUTBYTES; ++ /* Initialize state */ ++ P->digest_length = block_size; ++ store32(&P->node_offset, i); ++ blake2b_init_param(C, P); ++ /* Process key if needed */ ++ blake2b_update(C, root, BLAKE2B_OUTBYTES); ++ if (blake2b_final(C, (uint8_t *)out + i * BLAKE2B_OUTBYTES, block_size) < 0 ) { ++ return -1; ++ } ++ outlen -= block_size; ++ } ++ secure_zero_memory(root, sizeof(root)); ++ secure_zero_memory(P, sizeof(P)); ++ secure_zero_memory(C, sizeof(C)); ++ /* Put blake2xb in an invalid state? cf. blake2s_is_lastblock */ ++ return 0; ++ ++} ++ ++int blake2xb(void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen) ++{ ++ blake2xb_state S[1]; ++ ++ /* Verify parameters */ ++ if (NULL == in && inlen > 0) ++ return -1; ++ ++ if (NULL == out) ++ return -1; ++ ++ if (NULL == key && keylen > 0) ++ return -1; ++ ++ if (keylen > BLAKE2B_KEYBYTES) ++ return -1; ++ ++ if (outlen == 0) ++ return -1; ++ ++ /* Initialize the root block structure */ ++ if (blake2xb_init_key(S, outlen, key, keylen) < 0) { ++ return -1; ++ } ++ ++ /* Absorb the input message */ ++ blake2xb_update(S, in, inlen); ++ ++ /* Compute the root node of the tree and the final hash using the counter construction */ ++ return blake2xb_final(S, out, outlen); ++} ++ ++#if defined(BLAKE2XB_SELFTEST) ++#include <string.h> ++#include "blake2-kat.h" ++int main( void ) ++{ ++ uint8_t key[BLAKE2B_KEYBYTES]; ++ uint8_t buf[BLAKE2_KAT_LENGTH]; ++ size_t i, step, outlen; ++ ++ for( i = 0; i < BLAKE2B_KEYBYTES; ++i ) { ++ key[i] = ( uint8_t )i; ++ } ++ ++ for( i = 0; i < BLAKE2_KAT_LENGTH; ++i ) { ++ buf[i] = ( uint8_t )i; ++ } ++ ++ /* Testing length of ouputs rather than inputs */ ++ /* (Test of input lengths mostly covered by blake2s tests) */ ++ ++ /* Test simple API */ ++ for( outlen = 1; outlen <= BLAKE2_KAT_LENGTH; ++outlen ) ++ { ++ uint8_t hash[BLAKE2_KAT_LENGTH] = {0}; ++ if( blake2xb( hash, outlen, buf, BLAKE2_KAT_LENGTH, key, BLAKE2B_KEYBYTES ) < 0 ) { ++ goto fail; ++ } ++ ++ if( 0 != memcmp( hash, blake2xb_keyed_kat[outlen-1], outlen ) ) ++ { ++ goto fail; ++ } ++ } ++ ++ /* Test streaming API */ ++ for(step = 1; step < BLAKE2B_BLOCKBYTES; ++step) { ++ for (outlen = 1; outlen <= BLAKE2_KAT_LENGTH; ++outlen) { ++ uint8_t hash[BLAKE2_KAT_LENGTH]; ++ blake2xb_state S; ++ uint8_t * p = buf; ++ size_t mlen = BLAKE2_KAT_LENGTH; ++ int err = 0; ++ ++ if( (err = blake2xb_init_key(&S, outlen, key, BLAKE2B_KEYBYTES)) < 0 ) { ++ goto fail; ++ } ++ ++ while (mlen >= step) { ++ if ( (err = blake2xb_update(&S, p, step)) < 0 ) { ++ goto fail; ++ } ++ mlen -= step; ++ p += step; ++ } ++ if ( (err = blake2xb_update(&S, p, mlen)) < 0) { ++ goto fail; ++ } ++ if ( (err = blake2xb_final(&S, hash, outlen)) < 0) { ++ goto fail; ++ } ++ ++ if (0 != memcmp(hash, blake2xb_keyed_kat[outlen-1], outlen)) { ++ goto fail; ++ } ++ } ++ } ++ ++ puts( "ok" ); ++ return 0; ++fail: ++ puts("error"); ++ return -1; ++} ++#endif +--- thirdparty/blake2/sse/blake2xs.c.orig 2025-09-03 12:27:32 UTC ++++ thirdparty/blake2/sse/blake2xs.c +@@ -0,0 +1,239 @@ ++/* ++ BLAKE2 reference source code package - reference C implementations ++ ++ Copyright 2016, JP Aumasson <jeanphilippe.aumasson@gmail.com>. ++ Copyright 2016, Samuel Neves <sneves@dei.uc.pt>. ++ ++ You may use this under the terms of the CC0, the OpenSSL Licence, or ++ the Apache Public License 2.0, at your option. The terms of these ++ licenses can be found at: ++ ++ - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 ++ - OpenSSL license : https://www.openssl.org/source/license.html ++ - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 ++ ++ More information about the BLAKE2 hash function can be found at ++ https://blake2.net. ++*/ ++ ++#include <stdint.h> ++#include <string.h> ++#include <stdio.h> ++ ++#include "blake2.h" ++#include "blake2-impl.h" ++ ++int blake2xs_init( blake2xs_state *S, const size_t outlen ) { ++ return blake2xs_init_key(S, outlen, NULL, 0); ++} ++ ++int blake2xs_init_key( blake2xs_state *S, const size_t outlen, const void *key, size_t keylen ) ++{ ++ if ( outlen == 0 || outlen > 0xFFFFUL ) { ++ return -1; ++ } ++ ++ if (NULL != key && keylen > BLAKE2B_KEYBYTES) { ++ return -1; ++ } ++ ++ if (NULL == key && keylen > 0) { ++ return -1; ++ } ++ ++ /* Initialize parameter block */ ++ S->P->digest_length = BLAKE2S_OUTBYTES; ++ S->P->key_length = keylen; ++ S->P->fanout = 1; ++ S->P->depth = 1; ++ store32( &S->P->leaf_length, 0 ); ++ store32( &S->P->node_offset, 0 ); ++ store16( &S->P->xof_length, outlen ); ++ S->P->node_depth = 0; ++ S->P->inner_length = 0; ++ memset( S->P->salt, 0, sizeof( S->P->salt ) ); ++ memset( S->P->personal, 0, sizeof( S->P->personal ) ); ++ ++ if( blake2s_init_param( S->S, S->P ) < 0 ) { ++ return -1; ++ } ++ ++ if (keylen > 0) { ++ uint8_t block[BLAKE2S_BLOCKBYTES]; ++ memset(block, 0, BLAKE2S_BLOCKBYTES); ++ memcpy(block, key, keylen); ++ blake2s_update(S->S, block, BLAKE2S_BLOCKBYTES); ++ secure_zero_memory(block, BLAKE2S_BLOCKBYTES); ++ } ++ return 0; ++} ++ ++int blake2xs_update( blake2xs_state *S, const void *in, size_t inlen ) { ++ return blake2s_update( S->S, in, inlen ); ++} ++ ++int blake2xs_final(blake2xs_state *S, void *out, size_t outlen) { ++ ++ blake2s_state C[1]; ++ blake2s_param P[1]; ++ uint16_t xof_length = load16(&S->P->xof_length); ++ uint8_t root[BLAKE2S_BLOCKBYTES]; ++ size_t i; ++ ++ if (NULL == out) { ++ return -1; ++ } ++ ++ /* outlen must match the output size defined in xof_length, */ ++ /* unless it was -1, in which case anything goes except 0. */ ++ if(xof_length == 0xFFFFUL) { ++ if(outlen == 0) { ++ return -1; ++ } ++ } else { ++ if(outlen != xof_length) { ++ return -1; ++ } ++ } ++ ++ /* Finalize the root hash */ ++ if (blake2s_final(S->S, root, BLAKE2S_OUTBYTES) < 0) { ++ return -1; ++ } ++ ++ /* Set common block structure values */ ++ /* Copy values from parent instance, and only change the ones below */ ++ memcpy(P, S->P, sizeof(blake2s_param)); ++ P->key_length = 0; ++ P->fanout = 0; ++ P->depth = 0; ++ store32(&P->leaf_length, BLAKE2S_OUTBYTES); ++ P->inner_length = BLAKE2S_OUTBYTES; ++ P->node_depth = 0; ++ ++ for (i = 0; outlen > 0; ++i) { ++ const size_t block_size = (outlen < BLAKE2S_OUTBYTES) ? outlen : BLAKE2S_OUTBYTES; ++ /* Initialize state */ ++ P->digest_length = block_size; ++ store32(&P->node_offset, i); ++ blake2s_init_param(C, P); ++ /* Process key if needed */ ++ blake2s_update(C, root, BLAKE2S_OUTBYTES); ++ if (blake2s_final(C, (uint8_t *)out + i * BLAKE2S_OUTBYTES, block_size) < 0) { ++ return -1; ++ } ++ outlen -= block_size; ++ } ++ secure_zero_memory(root, sizeof(root)); ++ secure_zero_memory(P, sizeof(P)); ++ secure_zero_memory(C, sizeof(C)); ++ /* Put blake2xs in an invalid state? cf. blake2s_is_lastblock */ ++ return 0; ++} ++ ++int blake2xs(void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen) ++{ ++ blake2xs_state S[1]; ++ ++ /* Verify parameters */ ++ if (NULL == in && inlen > 0) ++ return -1; ++ ++ if (NULL == out) ++ return -1; ++ ++ if (NULL == key && keylen > 0) ++ return -1; ++ ++ if (keylen > BLAKE2S_KEYBYTES) ++ return -1; ++ ++ if (outlen == 0) ++ return -1; ++ ++ /* Initialize the root block structure */ ++ if (blake2xs_init_key(S, outlen, key, keylen) < 0) { ++ return -1; ++ } ++ ++ /* Absorb the input message */ ++ blake2xs_update(S, in, inlen); ++ ++ /* Compute the root node of the tree and the final hash using the counter construction */ ++ return blake2xs_final(S, out, outlen); ++} ++ ++#if defined(BLAKE2XS_SELFTEST) ++#include <string.h> ++#include "blake2-kat.h" ++int main( void ) ++{ ++ uint8_t key[BLAKE2S_KEYBYTES]; ++ uint8_t buf[BLAKE2_KAT_LENGTH]; ++ size_t i, step, outlen; ++ ++ for( i = 0; i < BLAKE2S_KEYBYTES; ++i ) { ++ key[i] = ( uint8_t )i; ++ } ++ ++ for( i = 0; i < BLAKE2_KAT_LENGTH; ++i ) { ++ buf[i] = ( uint8_t )i; ++ } ++ ++ /* Testing length of ouputs rather than inputs */ ++ /* (Test of input lengths mostly covered by blake2s tests) */ ++ ++ /* Test simple API */ ++ for( outlen = 1; outlen <= BLAKE2_KAT_LENGTH; ++outlen ) ++ { ++ uint8_t hash[BLAKE2_KAT_LENGTH] = {0}; ++ if( blake2xs( hash, outlen, buf, BLAKE2_KAT_LENGTH, key, BLAKE2S_KEYBYTES ) < 0 ) { ++ goto fail; ++ } ++ ++ if( 0 != memcmp( hash, blake2xs_keyed_kat[outlen-1], outlen ) ) ++ { ++ goto fail; ++ } ++ } ++ ++ /* Test streaming API */ ++ for(step = 1; step < BLAKE2S_BLOCKBYTES; ++step) { ++ for (outlen = 1; outlen <= BLAKE2_KAT_LENGTH; ++outlen) { ++ uint8_t hash[BLAKE2_KAT_LENGTH]; ++ blake2xs_state S; ++ uint8_t * p = buf; ++ size_t mlen = BLAKE2_KAT_LENGTH; ++ int err = 0; ++ ++ if( (err = blake2xs_init_key(&S, outlen, key, BLAKE2S_KEYBYTES)) < 0 ) { ++ goto fail; ++ } ++ ++ while (mlen >= step) { ++ if ( (err = blake2xs_update(&S, p, step)) < 0 ) { ++ goto fail; ++ } ++ mlen -= step; ++ p += step; ++ } ++ if ( (err = blake2xs_update(&S, p, mlen)) < 0) { ++ goto fail; ++ } ++ if ( (err = blake2xs_final(&S, hash, outlen)) < 0) { ++ goto fail; ++ } ++ ++ if (0 != memcmp(hash, blake2xs_keyed_kat[outlen-1], outlen)) { ++ goto fail; ++ } ++ } ++ } ++ ++ puts( "ok" ); ++ return 0; ++fail: ++ puts("error"); ++ return -1; ++} ++#endif +--- thirdparty/blake2/sse/genkat-c.c.orig 2025-09-03 12:27:32 UTC ++++ thirdparty/blake2/sse/genkat-c.c +@@ -0,0 +1,139 @@ ++/* ++ BLAKE2 reference source code package - reference C implementations ++ ++ Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the ++ terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at ++ your option. The terms of these licenses can be found at: ++ ++ - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 ++ - OpenSSL license : https://www.openssl.org/source/license.html ++ - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 ++ ++ More information about the BLAKE2 hash function can be found at ++ https://blake2.net. ++*/ ++ ++#include <stdint.h> ++#include <stdio.h> ++#include <stdlib.h> ++#include <string.h> ++ ++#include "blake2.h" ++ ++#define STR_(x) #x ++#define STR(x) STR_(x) ++ ++#define LENGTH 256 ++ ++#define MAKE_KAT(name, size_prefix) \ ++ do { \ ++ printf("static const uint8_t " #name "_kat[BLAKE2_KAT_LENGTH][" #size_prefix \ ++ "_OUTBYTES] = \n{\n"); \ ++ \ ++ for (i = 0; i < LENGTH; ++i) { \ ++ name(hash, size_prefix##_OUTBYTES, in, i, NULL, 0); \ ++ printf("\t{\n\t\t"); \ ++ \ ++ for (j = 0; j < size_prefix##_OUTBYTES; ++j) \ ++ printf("0x%02X%s", hash[j], \ ++ (j + 1) == size_prefix##_OUTBYTES ? "\n" : j && !((j + 1) % 8) ? ",\n\t\t" : ", "); \ ++ \ ++ printf("\t},\n"); \ ++ } \ ++ \ ++ printf("};\n\n\n\n\n"); \ ++ } while (0) ++ ++#define MAKE_KEYED_KAT(name, size_prefix) \ ++ do { \ ++ printf("static const uint8_t " #name "_keyed_kat[BLAKE2_KAT_LENGTH][" #size_prefix \ ++ "_OUTBYTES] = \n{\n"); \ ++ \ ++ for (i = 0; i < LENGTH; ++i) { \ ++ name(hash, size_prefix##_OUTBYTES, in, i, key, size_prefix##_KEYBYTES); \ ++ printf("\t{\n\t\t"); \ ++ \ ++ for (j = 0; j < size_prefix##_OUTBYTES; ++j) \ ++ printf("0x%02X%s", hash[j], \ ++ (j + 1) == size_prefix##_OUTBYTES ? "\n" : j && !((j + 1) % 8) ? ",\n\t\t" : ", "); \ ++ \ ++ printf("\t},\n"); \ ++ } \ ++ \ ++ printf("};\n\n\n\n\n"); \ ++ } while (0) ++ ++#define MAKE_XOF_KAT(name) \ ++ do { \ ++ printf("static const uint8_t " #name "_kat[BLAKE2_KAT_LENGTH][BLAKE2_KAT_LENGTH] = \n{\n"); \ ++ \ ++ for (i = 1; i <= LENGTH; ++i) { \ ++ name(hash, i, in, LENGTH, NULL, 0); \ ++ printf("\t{\n\t\t"); \ ++ \ ++ for (j = 0; j < i; ++j) \ ++ printf("0x%02X%s", hash[j], \ ++ (j + 1) == LENGTH ? "\n" : j && !((j + 1) % 8) ? ",\n\t\t" : ", "); \ ++ \ ++ for (j = i; j < LENGTH; ++j) \ ++ printf("0x00%s", (j + 1) == LENGTH ? "\n" : j && !((j + 1) % 8) ? ",\n\t\t" : ", "); \ ++ \ ++ printf("\t},\n"); \ ++ } \ ++ \ ++ printf("};\n\n\n\n\n"); \ ++ } while (0) ++ ++#define MAKE_XOF_KEYED_KAT(name, size_prefix) \ ++ do { \ ++ printf("static const uint8_t " #name \ ++ "_keyed_kat[BLAKE2_KAT_LENGTH][BLAKE2_KAT_LENGTH] = \n{\n"); \ ++ \ ++ for (i = 1; i <= LENGTH; ++i) { \ ++ name(hash, i, in, LENGTH, key, size_prefix##_KEYBYTES); \ ++ printf("\t{\n\t\t"); \ ++ \ ++ for (j = 0; j < i; ++j) \ ++ printf("0x%02X%s", hash[j], \ ++ (j + 1) == LENGTH ? "\n" : j && !((j + 1) % 8) ? ",\n\t\t" : ", "); \ ++ \ ++ for (j = i; j < LENGTH; ++j) \ ++ printf("0x00%s", (j + 1) == LENGTH ? "\n" : j && !((j + 1) % 8) ? ",\n\t\t" : ", "); \ ++ \ ++ printf("\t},\n"); \ ++ } \ ++ \ ++ printf("};\n\n\n\n\n"); \ ++ } while (0) ++ ++int main() { ++ uint8_t key[64] = {0}; ++ uint8_t in[LENGTH] = {0}; ++ uint8_t hash[LENGTH] = {0}; ++ size_t i, j; ++ ++ for (i = 0; i < sizeof(in); ++i) ++ in[i] = i; ++ ++ for (i = 0; i < sizeof(key); ++i) ++ key[i] = i; ++ ++ puts("#ifndef BLAKE2_KAT_H\n" ++ "#define BLAKE2_KAT_H\n\n\n" ++ "#include <stdint.h>\n\n" ++ "#define BLAKE2_KAT_LENGTH " STR(LENGTH) "\n\n\n"); ++ MAKE_KAT(blake2s, BLAKE2S); ++ MAKE_KEYED_KAT(blake2s, BLAKE2S); ++ MAKE_KAT(blake2b, BLAKE2B); ++ MAKE_KEYED_KAT(blake2b, BLAKE2B); ++ MAKE_KAT(blake2sp, BLAKE2S); ++ MAKE_KEYED_KAT(blake2sp, BLAKE2S); ++ MAKE_KAT(blake2bp, BLAKE2B); ++ MAKE_KEYED_KAT(blake2bp, BLAKE2B); ++ MAKE_XOF_KAT(blake2xs); ++ MAKE_XOF_KEYED_KAT(blake2xs, BLAKE2S); ++ MAKE_XOF_KAT(blake2xb); ++ MAKE_XOF_KEYED_KAT(blake2xb, BLAKE2B); ++ puts("#endif"); ++ return 0; ++} +--- thirdparty/blake2/sse/genkat-json.c.orig 2025-09-03 12:27:32 UTC ++++ thirdparty/blake2/sse/genkat-json.c +@@ -0,0 +1,154 @@ ++/* ++ BLAKE2 reference source code package - reference C implementations ++ ++ Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the ++ terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at ++ your option. The terms of these licenses can be found at: ++ ++ - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0 ++ - OpenSSL license : https://www.openssl.org/source/license.html ++ - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0 ++ ++ More information about the BLAKE2 hash function can be found at ++ https://blake2.net. ++*/ ++ ++#include <stdint.h> ++#include <stdio.h> ++#include <stdlib.h> ++#include <string.h> ++ ++#include "blake2.h" ++ ++#define STR_(x) #x ++#define STR(x) STR_(x) ++ ++#define LENGTH 256 ++ ++#define MAKE_KAT(name, size_prefix, first) \ ++ do { \ ++ for (i = 0; i < LENGTH; ++i) { \ ++ printf("%s\n{\n", i == 0 && first ? "" : ","); \ ++ \ ++ printf(" \"hash\": \"" #name "\",\n"); \ ++ printf(" \"in\": \""); \ ++ for (j = 0; j < i; ++j) \ ++ printf("%02x", in[j]); \ ++ \ ++ printf("\",\n"); \ ++ printf(" \"key\": \"\",\n"); \ ++ printf(" \"out\": \""); \ ++ \ ++ name(hash, size_prefix##_OUTBYTES, in, i, NULL, 0); \ ++ \ ++ for (j = 0; j < size_prefix##_OUTBYTES; ++j) \ ++ printf("%02x", hash[j]); \ ++ printf("\"\n"); \ ++ printf("}"); \ ++ } \ ++ } while (0) ++ ++#define MAKE_KEYED_KAT(name, size_prefix, first) \ ++ do { \ ++ for (i = 0; i < LENGTH; ++i) { \ ++ printf("%s\n{\n", i == 0 && first ? "" : ","); \ ++ \ ++ printf(" \"hash\": \"" #name "\",\n"); \ ++ printf(" \"in\": \""); \ ++ for (j = 0; j < i; ++j) \ ++ printf("%02x", in[j]); \ ++ \ ++ printf("\",\n"); \ ++ printf(" \"key\": \""); \ ++ for (j = 0; j < size_prefix##_KEYBYTES; ++j) \ ++ printf("%02x", key[j]); \ ++ printf("\",\n"); \ ++ printf(" \"out\": \""); \ ++ \ ++ name(hash, size_prefix##_OUTBYTES, in, i, key, size_prefix##_KEYBYTES); \ ++ \ ++ for (j = 0; j < size_prefix##_OUTBYTES; ++j) \ ++ printf("%02x", hash[j]); \ ++ printf("\"\n"); \ ++ printf("}"); \ ++ } \ ++ } while (0) ++ ++#define MAKE_XOF_KAT(name, first) \ ++ do { \ ++ for (i = 1; i <= LENGTH; ++i) { \ ++ printf("%s\n{\n", i == 1 && first ? "" : ","); \ ++ \ ++ printf(" \"hash\": \"" #name "\",\n"); \ ++ printf(" \"in\": \""); \ ++ for (j = 0; j < LENGTH; ++j) \ ++ printf("%02x", in[j]); \ ++ \ ++ printf("\",\n"); \ ++ printf(" \"key\": \"\",\n"); \ ++ printf(" \"out\": \""); \ ++ \ ++ name(hash, i, in, LENGTH, NULL, 0); \ ++ \ ++ for (j = 0; j < i; ++j) \ ++ printf("%02x", hash[j]); \ ++ printf("\"\n"); \ ++ printf("}"); \ ++ } \ ++ } while (0) ++ ++#define MAKE_XOF_KEYED_KAT(name, size_prefix, first) \ ++ do { \ ++ for (i = 1; i <= LENGTH; ++i) { \ ++ printf("%s\n{\n", i == 1 && first ? "" : ","); \ ++ \ ++ printf(" \"hash\": \"" #name "\",\n"); \ ++ printf(" \"in\": \""); \ ++ for (j = 0; j < LENGTH; ++j) \ ++ printf("%02x", in[j]); \ ++ \ ++ printf("\",\n"); \ ++ printf(" \"key\": \""); \ ++ for (j = 0; j < size_prefix##_KEYBYTES; ++j) \ ++ printf("%02x", key[j]); \ ++ printf("\",\n"); \ ++ printf(" \"out\": \""); \ ++ \ ++ name(hash, i, in, LENGTH, key, size_prefix##_KEYBYTES); \ ++ \ ++ for (j = 0; j < i; ++j) \ ++ printf("%02x", hash[j]); \ ++ printf("\"\n"); \ ++ printf("}"); \ ++ } \ ++ } while (0) ++ ++int main() { ++ uint8_t key[64] = {0}; ++ uint8_t in[LENGTH] = {0}; ++ uint8_t hash[LENGTH] = {0}; ++ size_t i, j; ++ ++ for (i = 0; i < sizeof(in); ++i) ++ in[i] = i; ++ ++ for (i = 0; i < sizeof(key); ++i) ++ key[i] = i; ++ ++ printf("["); ++ MAKE_KAT(blake2s, BLAKE2S, 1); ++ MAKE_KEYED_KAT(blake2s, BLAKE2S, 0); ++ MAKE_KAT(blake2b, BLAKE2B, 0); ++ MAKE_KEYED_KAT(blake2b, BLAKE2B, 0); ++ MAKE_KAT(blake2sp, BLAKE2S, 0); ++ MAKE_KEYED_KAT(blake2sp, BLAKE2S, 0); ++ MAKE_KAT(blake2bp, BLAKE2B, 0); ++ MAKE_KEYED_KAT(blake2bp, BLAKE2B, 0); ++ MAKE_XOF_KAT(blake2xs, 0); ++ MAKE_XOF_KEYED_KAT(blake2xs, BLAKE2S, 0); ++ MAKE_XOF_KAT(blake2xb, 0); ++ MAKE_XOF_KEYED_KAT(blake2xb, BLAKE2B, 0); ++ printf("\n]\n"); ++ fflush(stdout); ++ return 0; ++} +--- thirdparty/blake2/sse/makefile.orig 2025-09-03 12:27:32 UTC ++++ thirdparty/blake2/sse/makefile +@@ -0,0 +1,40 @@ ++CC=gcc ++CFLAGS=-O3 -I../testvectors -Wall -Wextra -std=c89 -pedantic -Wno-long-long ++BLAKEBINS=blake2s blake2b blake2sp blake2bp blake2xs blake2xb ++ ++all: $(BLAKEBINS) check ++ ++blake2s: blake2s.c ++ $(CC) blake2s.c -o $@ $(CFLAGS) -DBLAKE2S_SELFTEST ++ ++blake2b: blake2b.c ++ $(CC) blake2b.c -o $@ $(CFLAGS) -DBLAKE2B_SELFTEST ++ ++blake2sp: blake2sp.c blake2s.c ++ $(CC) blake2sp.c blake2s.c -o $@ $(CFLAGS) -DBLAKE2SP_SELFTEST ++ ++blake2bp: blake2bp.c blake2b.c ++ $(CC) blake2bp.c blake2b.c -o $@ $(CFLAGS) -DBLAKE2BP_SELFTEST ++ ++blake2xs: blake2xs.c blake2s.c ++ $(CC) blake2xs.c blake2s.c -o $@ $(CFLAGS) -DBLAKE2XS_SELFTEST ++ ++blake2xb: blake2xb.c blake2b.c ++ $(CC) blake2xb.c blake2b.c -o $@ $(CFLAGS) -DBLAKE2XB_SELFTEST ++ ++check: blake2s blake2b blake2sp blake2bp blake2xs blake2xb ++ ./blake2s ++ ./blake2b ++ ./blake2sp ++ ./blake2bp ++ ./blake2xs ++ ./blake2xb ++ ++kat: ++ $(CC) $(CFLAGS) -o genkat-c genkat-c.c blake2b.c blake2s.c blake2sp.c blake2bp.c blake2xs.c blake2xb.c ++ $(CC) $(CFLAGS) -g -o genkat-json genkat-json.c blake2b.c blake2s.c blake2sp.c blake2bp.c blake2xs.c blake2xb.c ++ ./genkat-c > blake2-kat.h ++ ./genkat-json > blake2-kat.json ++ ++clean: ++ rm -rf *.o genkat-c genkat-json blake2-kat.h blake2-kat.json $(BLAKEBINS) diff --git a/games/palomino/Makefile b/games/palomino/Makefile deleted file mode 100644 index bfb7415f4539..000000000000 --- a/games/palomino/Makefile +++ /dev/null @@ -1,112 +0,0 @@ -PORTNAME= palomino -PORTVERSION= 20131231 -PORTREVISION= 10 -CATEGORIES= games -MASTER_SITES= SF/palomino-sim -DISTFILES= ${PORTNAME}_src_${PORTVERSION}.txz \ - ${PORTNAME}_data_misc_${MISC_VER}${EXTRACT_SUFX} \ - ${PORTNAME}_data_models_${MODELS_VER}${EXTRACT_SUFX} \ - ${PORTNAME}_data_sounds_${SOUNDS_VER}${EXTRACT_SUFX} \ - ${PORTNAME}_data_terrain_${TERRAIN_VER}${EXTRACT_SUFX} - -MAINTAINER= ports@FreeBSD.org -COMMENT= Action flight simulation computer program using OSG -WWW= https://www.palomino3d.org/ - -LICENSE= GPLv2 -LICENSE_FILE= ${WRKSRC}/LICENSE_GNU_GPL_2.txt - -DEPRECATED= Obsolete and abandoneed, last release in 2013, not playable -EXPIRATION_DATE=2025-09-10 - -LIB_DEPENDS= libosg.so:graphics/osg34 - -USES= alias compiler:c++11-lang cmake:insource,noninja gl lua:51 tar:xz -USE_CXXSTD= gnu++98 -USE_GL= gl glu - -DESKTOP_ENTRIES= "Palomino" "" "${PORTNAME}" \ - "${PORTNAME}" "Game;ArcadeGame;" "" - -WRKSRC= ${WRKDIR}/${PORTNAME} - -PORTDOCS= * - -OPTIONS_DEFINE= DOCS GUI PLIB SDL -OPTIONS_DEFAULT=GUI SDL -OPTIONS_SUB= yes - -GUI_DESC= Enable FLTK GUI -PLIB_DESC= Enable sound support through plib - -GUI_LIB_DEPENDS= libfltk.so:x11-toolkits/fltk -PLIB_BUILD_DEPENDS= ${LOCALBASE}/lib/libplibsl.a:x11-toolkits/plib -SDL_USES= sdl -SDL_USE= SDL=sdl,mixer - -MISC_VER= 20091027 -MODELS_VER= 20090615 -SOUNDS_VER= 20080704 -TERRAIN_VER= 20080206 - -post-patch: - @${FIND} ${WRKSRC}/CMakeModules -type f -print0 | ${XARGS} -0 \ - ${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|g' - @${REINPLACE_CMD} -e '/ rt / d' ${WRKSRC}/CMakeModules/libraries.cmake - @${REINPLACE_CMD} -e '/COMMAND/ s|lua|${LUA_CMD}|' \ - ${WRKSRC}/build/lua_bind/CMakeLists.txt - @${REINPLACE_CMD} -e '/FIND_PACKAGE(/ s|)| REQUIRED)|' \ - ${WRKSRC}/CMakeModules/libraries.cmake - @${REINPLACE_CMD} -e '/COMPILE_WITH_OSSIM/ d' ${WRKSRC}/CMakeLists.txt - -# Please see MOVED entry devel/linux-js||2013-06-04 - @${REINPLACE_CMD} -e '/COMPILE_WITH_LINUX_JOYSTICK/ d' ${WRKSRC}/CMakeLists.txt - - @${REINPLACE_CMD} -e 's|string sDataDir|&="${DATADIR}/data/"|'\ - ${WRKSRC}/src/base/conf.cc - @${REINPLACE_CMD} -e '/LUABIND_SCRIPTS_DIR/ s|scripts|${DATADIR}/&|' \ - ${WRKSRC}/src/lua_bind/defs.hh - @${REINPLACE_CMD} -e 's|doc/html/|${DOCSDIR}/|' ${WRKSRC}/src/gui/gui.cc - - @${REINPLACE_CMD} -e 's/computeBound/computeBoundingBox/g' \ - ${WRKSRC}/src/object/object.cc \ - ${WRKSRC}/src/fx/partsys_medium.cc - - @${REINPLACE_CMD} -e 's/CameraNode/Camera/g' \ - ${WRKSRC}/src/hud/hud.cc \ - ${WRKSRC}/src/hud/hud.hh \ - ${WRKSRC}/src/hud/hud_text.cc - - @${REINPLACE_CMD} -e '/std::make_pair/ s,<.*>,,' \ - ${WRKSRC}/src/collision/collision.cc \ - ${WRKSRC}/src/fx/image_cache.cc \ - ${WRKSRC}/src/graph/model_cache.cc \ - ${WRKSRC}/src/hud/font.cc \ - ${WRKSRC}/src/lua_bind/lua.cc \ - ${WRKSRC}/src/object/dyna.cc \ - ${WRKSRC}/src/sky/sky.cc \ - ${WRKSRC}/src/sky/sky_dome.cc \ - ${WRKSRC}/src/sky/sky_dome.hh \ - ${WRKSRC}/src/sky/sun.hh \ - ${WRKSRC}/src/sound/sound_base.cc - -post-patch-SDL-off: - @${REINPLACE_CMD} -e '/COMPILE_WITH_SDL/ d' ${WRKSRC}/CMakeLists.txt - -post-patch-PLIB-off: - @${REINPLACE_CMD} -e '/COMPILE_WITH_PLIB/ d' ${WRKSRC}/CMakeLists.txt - -post-patch-GUI-off: - @${REINPLACE_CMD} -e '/COMPILE_WITH_FLTK/ d' ${WRKSRC}/CMakeLists.txt - -post-install: - @${MKDIR} ${STAGEDIR}${DATADIR} - @(cd ${WRKSRC} && ${COPYTREE_SHARE} "data scripts" ${STAGEDIR}${DATADIR}) -# DOCS are used from within the game, so this is unconditional - @${MKDIR} ${STAGEDIR}${DOCSDIR} - @(cd ${WRKSRC}/doc/html && ${COPYTREE_SHARE} . ${STAGEDIR}${DOCSDIR}) - - ${LN} -sf ../../${DOCSDIR_REL}/images/palominoLogo.png \ - ${STAGEDIR}${PREFIX}/share/pixmaps/${PORTNAME}.png - -.include <bsd.port.mk> diff --git a/games/palomino/distinfo b/games/palomino/distinfo deleted file mode 100644 index 752cb47c1f07..000000000000 --- a/games/palomino/distinfo +++ /dev/null @@ -1,10 +0,0 @@ -SHA256 (palomino_src_20131231.txz) = 9dfa62f3a340637518e346824643e75fa8f320fe0dee951e028df6b64b9d1e2c -SIZE (palomino_src_20131231.txz) = 572412 -SHA256 (palomino_data_misc_20091027.tar.xz) = 63bee11652e227c0e37b08bf82b395ef7d2a50671ec4b8803242ba2415a6418d -SIZE (palomino_data_misc_20091027.tar.xz) = 616848 -SHA256 (palomino_data_models_20090615.tar.xz) = 9a7915ce64df46a780ce4b869665b10e3071d0b4499a46b03f3bf08613402894 -SIZE (palomino_data_models_20090615.tar.xz) = 28110056 -SHA256 (palomino_data_sounds_20080704.tar.xz) = 3ca093744cf3056f3ea2b5eebf62127c30e57e8c233c9e17af4fed4f33b61bae -SIZE (palomino_data_sounds_20080704.tar.xz) = 488576 -SHA256 (palomino_data_terrain_20080206.tar.xz) = b2818e3a56fcedfdcf8dde4de106b04b5cf696db09a1fb743f6b5f4c7e4a496c -SIZE (palomino_data_terrain_20080206.tar.xz) = 35801076 diff --git a/games/palomino/files/patch-src_input_device__keyboard__osg.cc b/games/palomino/files/patch-src_input_device__keyboard__osg.cc deleted file mode 100644 index ffdbbc17b941..000000000000 --- a/games/palomino/files/patch-src_input_device__keyboard__osg.cc +++ /dev/null @@ -1,15 +0,0 @@ ---- src/input/device_keyboard_osg.cc.orig 2012-10-26 01:35:57 UTC -+++ src/input/device_keyboard_osg.cc -@@ -105,12 +105,6 @@ KeyboardDeviceOSG::HandlerOSG::handle( c - } - } - --void --KeyboardDeviceOSG::HandlerOSG::accept( osgGA::GUIEventHandlerVisitor& v ) --{ -- v.visit( *this ); --} -- - } // namespace input - - #endif // COMPILE_OSG diff --git a/games/palomino/files/patch-src_input_device__keyboard__osg.hh b/games/palomino/files/patch-src_input_device__keyboard__osg.hh deleted file mode 100644 index 2d9e18b13ff8..000000000000 --- a/games/palomino/files/patch-src_input_device__keyboard__osg.hh +++ /dev/null @@ -1,10 +0,0 @@ ---- src/input/device_keyboard_osg.hh.orig 2009-11-22 23:05:48 UTC -+++ src/input/device_keyboard_osg.hh -@@ -57,7 +57,6 @@ private: - HandlerOSG( void ) { } - virtual ~HandlerOSG() { } - virtual bool handle( const osgGA::GUIEventAdapter& event, osgGA::GUIActionAdapter& action ); -- virtual void accept( osgGA::GUIEventHandlerVisitor& visitor ); - }; - }; - diff --git a/games/palomino/files/patch-src_input_device__mouse__osg.cc b/games/palomino/files/patch-src_input_device__mouse__osg.cc deleted file mode 100644 index 18c0ce5f3fa3..000000000000 --- a/games/palomino/files/patch-src_input_device__mouse__osg.cc +++ /dev/null @@ -1,15 +0,0 @@ ---- src/input/device_mouse_osg.cc.orig 2012-10-26 01:35:57 UTC -+++ src/input/device_mouse_osg.cc -@@ -145,12 +145,6 @@ MouseDeviceOSG::HandlerOSG::handle( cons - } - } - --void --MouseDeviceOSG::HandlerOSG::accept( osgGA::GUIEventHandlerVisitor& v ) --{ -- v.visit( *this ); --} -- - } // namespace input - - #endif // COMPILE_OSG diff --git a/games/palomino/files/patch-src_input_device__mouse__osg.hh b/games/palomino/files/patch-src_input_device__mouse__osg.hh deleted file mode 100644 index aa7b51ed381e..000000000000 --- a/games/palomino/files/patch-src_input_device__mouse__osg.hh +++ /dev/null @@ -1,10 +0,0 @@ ---- src/input/device_mouse_osg.hh.orig 2011-12-14 01:56:48 UTC -+++ src/input/device_mouse_osg.hh -@@ -41,7 +41,6 @@ private: - HandlerOSG( void ) { } - virtual ~HandlerOSG() { } - virtual bool handle( const osgGA::GUIEventAdapter& event, osgGA::GUIActionAdapter& action ); -- virtual void accept( osgGA::GUIEventHandlerVisitor& visitor ); - }; - }; - diff --git a/games/palomino/pkg-descr b/games/palomino/pkg-descr deleted file mode 100644 index 1732e3a11b30..000000000000 --- a/games/palomino/pkg-descr +++ /dev/null @@ -1,2 +0,0 @@ -Palomino is a flight simulation computer program. Version 3 renders using -OpenSceneGraph. OSG provides the ability to render satellite imagery. diff --git a/games/palomino/pkg-plist b/games/palomino/pkg-plist deleted file mode 100644 index 1a0a36884aa8..000000000000 --- a/games/palomino/pkg-plist +++ /dev/null @@ -1,442 +0,0 @@ -bin/palomino -%%DATADIR%%/data/fonts/README.txt -%%DATADIR%%/data/fonts/arial.ttf -%%DATADIR%%/data/fonts/masque.ttf -%%DATADIR%%/data/joystick.conf -%%DATADIR%%/data/models/README.txt -%%DATADIR%%/data/models/a4/README.txt -%%DATADIR%%/data/models/a4/a4-blue-0.png -%%DATADIR%%/data/models/a4/a4-blue-1.png -%%DATADIR%%/data/models/a4/a4-blue-2.png -%%DATADIR%%/data/models/a4/a4-blue-3.png -%%DATADIR%%/data/models/a4/a4-blue-4.png -%%DATADIR%%/data/models/a4/a4-blue-5.png -%%DATADIR%%/data/models/a4/a4-blue-6.png -%%DATADIR%%/data/models/a4/a4-blue-7.png -%%DATADIR%%/data/models/a4/a4.ac.gz -%%DATADIR%%/data/models/corsair/README.txt -%%DATADIR%%/data/models/corsair/alt.ac -%%DATADIR%%/data/models/corsair/asi.ac -%%DATADIR%%/data/models/corsair/blackout.ac -%%DATADIR%%/data/models/corsair/blaze.ac -%%DATADIR%%/data/models/corsair/blaze.png -%%DATADIR%%/data/models/corsair/clock.ac -%%DATADIR%%/data/models/corsair/corsair.ac.gz -%%DATADIR%%/data/models/corsair/crosshair.png -%%DATADIR%%/data/models/corsair/f4u-1.png -%%DATADIR%%/data/models/corsair/f4u-2.png -%%DATADIR%%/data/models/corsair/f4u-3.png -%%DATADIR%%/data/models/corsair/f4u-4.png -%%DATADIR%%/data/models/corsair/fastpdisk.png -%%DATADIR%%/data/models/corsair/gunsight.ac -%%DATADIR%%/data/models/corsair/hunter-asi.png -%%DATADIR%%/data/models/corsair/hunter-large-bezel.png -%%DATADIR%%/data/models/corsair/logo.png -%%DATADIR%%/data/models/corsair/logo1.png -%%DATADIR%%/data/models/corsair/logos.ac -%%DATADIR%%/data/models/corsair/man.ac -%%DATADIR%%/data/models/corsair/number.png -%%DATADIR%%/data/models/corsair/pdisk.ac -%%DATADIR%%/data/models/corsair/pilot-b.ac -%%DATADIR%%/data/models/corsair/pilot1.png -%%DATADIR%%/data/models/corsair/puff.ac -%%DATADIR%%/data/models/corsair/puff.png -%%DATADIR%%/data/models/corsair/remote.ac -%%DATADIR%%/data/models/corsair/slowpdisk.png -%%DATADIR%%/data/models/corsair/tach.ac -%%DATADIR%%/data/models/corsair/temp.ac -%%DATADIR%%/data/models/corsair/tracer.ac -%%DATADIR%%/data/models/corsair/transparent.ac -%%DATADIR%%/data/models/corsair/turn.ac -%%DATADIR%%/data/models/corsair/vac.ac -%%DATADIR%%/data/models/corsair/vsi.ac -%%DATADIR%%/data/models/f14/README.txt -%%DATADIR%%/data/models/f14/common.png -%%DATADIR%%/data/models/f14/common2.png -%%DATADIR%%/data/models/f14/f14b.osg.gz -%%DATADIR%%/data/models/f14/grip.png -%%DATADIR%%/data/models/f14/pilot-handle.png -%%DATADIR%%/data/models/f14/side1.png -%%DATADIR%%/data/models/f14/side2.png -%%DATADIR%%/data/models/f14/topbottom1.png -%%DATADIR%%/data/models/f14/topbottom2.png -%%DATADIR%%/data/models/f15/F15CCockpit.png -%%DATADIR%%/data/models/f15/F15CNose.png -%%DATADIR%%/data/models/f15/F15CRudder.png -%%DATADIR%%/data/models/f15/F15CSide.png -%%DATADIR%%/data/models/f15/f15c.osg.gz -%%DATADIR%%/data/models/f16/README.txt -%%DATADIR%%/data/models/f16/f16.osg.gz -%%DATADIR%%/data/models/f16/f16.png -%%DATADIR%%/data/models/f16/f16trans.png -%%DATADIR%%/data/models/f16/sidewinder.ac -%%DATADIR%%/data/models/f18/f18.osg.gz -%%DATADIR%%/data/models/f18/f18cockpit.png -%%DATADIR%%/data/models/f18/f18tail.png -%%DATADIR%%/data/models/f18/f18top.png -%%DATADIR%%/data/models/f86/README.txt -%%DATADIR%%/data/models/f86/blackout.ac -%%DATADIR%%/data/models/f86/droptank.ac -%%DATADIR%%/data/models/f86/f86f.ac.gz -%%DATADIR%%/data/models/f86/pylon.ac -%%DATADIR%%/data/models/f86/sabre-1.png -%%DATADIR%%/data/models/f86/sabre-3.png -%%DATADIR%%/data/models/f86/transparent.ac -%%DATADIR%%/data/models/kc135/kc135.ac.gz -%%DATADIR%%/data/models/kc135/kc135.png -%%DATADIR%%/data/models/mirage2000/mirage2000.osg.gz -%%DATADIR%%/data/models/mirage2000/mirage2000.png -%%DATADIR%%/data/models/mirage2000/mirage2000bottom.png -%%DATADIR%%/data/models/misc/aim9.ac.gz -%%DATADIR%%/data/models/misc/aim9.png -%%DATADIR%%/data/models/misc/crashTruck.ac.gz -%%DATADIR%%/data/models/misc/lighthouse.ac.gz -%%DATADIR%%/data/models/misc/lighthouse.png -%%DATADIR%%/data/models/misc/missileLauncher.osg.gz -%%DATADIR%%/data/models/misc/observatory.ac.gz -%%DATADIR%%/data/models/misc/observatory.png -%%DATADIR%%/data/models/misc/parachute.osg.gz -%%DATADIR%%/data/models/misc/parachute.png -%%DATADIR%%/data/models/misc/radar.ac.gz -%%DATADIR%%/data/models/misc/radome.ac.gz -%%DATADIR%%/data/models/misc/radome.png -%%DATADIR%%/data/models/misc/sailboat.ac.gz -%%DATADIR%%/data/models/misc/sailboat.png -%%DATADIR%%/data/models/misc/trailerLauncher.osg.gz -%%DATADIR%%/data/models/misc/ufo.ac.gz -%%DATADIR%%/data/models/misc/warehouse.ac.gz -%%DATADIR%%/data/models/misc/warehouse.png -%%DATADIR%%/data/models/nimitz/catapult.png -%%DATADIR%%/data/models/nimitz/crew_1.png -%%DATADIR%%/data/models/nimitz/crew_2.png -%%DATADIR%%/data/models/nimitz/crew_3.png -%%DATADIR%%/data/models/nimitz/deck-stripe.png -%%DATADIR%%/data/models/nimitz/deck_1.png -%%DATADIR%%/data/models/nimitz/flag.png -%%DATADIR%%/data/models/nimitz/holdback_marking.png -%%DATADIR%%/data/models/nimitz/hull_left.png -%%DATADIR%%/data/models/nimitz/hull_left1.png -%%DATADIR%%/data/models/nimitz/hullright.png -%%DATADIR%%/data/models/nimitz/hullright2.png -%%DATADIR%%/data/models/nimitz/island1.png -%%DATADIR%%/data/models/nimitz/island2_lm.png -%%DATADIR%%/data/models/nimitz/island3.png -%%DATADIR%%/data/models/nimitz/island_68.png -%%DATADIR%%/data/models/nimitz/island_69.png -%%DATADIR%%/data/models/nimitz/nimitz.osg.gz -%%DATADIR%%/data/models/nimitz/rainbow_10.png -%%DATADIR%%/data/models/nimitz/rainbow_11.png -%%DATADIR%%/data/models/nimitz/rainbow_2.png -%%DATADIR%%/data/models/nimitz/rainbow_21.png -%%DATADIR%%/data/models/nimitz/rainbow_31.png -%%DATADIR%%/data/models/nimitz/rainbow_4.png -%%DATADIR%%/data/models/nimitz/rainbow_41.png -%%DATADIR%%/data/models/nimitz/rainbow_5.png -%%DATADIR%%/data/models/nimitz/rainbow_6.png -%%DATADIR%%/data/models/nimitz/rainbow_61.png -%%DATADIR%%/data/models/nimitz/rainbow_7.png -%%DATADIR%%/data/models/nimitz/rainbow_71.png -%%DATADIR%%/data/models/nimitz/rainbow_8.png -%%DATADIR%%/data/models/nimitz/rainbow_81.png -%%DATADIR%%/data/models/nimitz/rainbow_9.png -%%DATADIR%%/data/models/nimitz/saratoga.png -%%DATADIR%%/data/models/p51/README.txt -%%DATADIR%%/data/models/p51/f82-jw-05.png -%%DATADIR%%/data/models/p51/f82.ac.gz -%%DATADIR%%/data/models/p51/hotspotgrid.png -%%DATADIR%%/data/models/p51/metal.png -%%DATADIR%%/data/models/p51/p51d-jw-01.png -%%DATADIR%%/data/models/p51/p51d-jw-02.png -%%DATADIR%%/data/models/p51/p51d-jw-03.png -%%DATADIR%%/data/models/p51/p51d-jw-05.png -%%DATADIR%%/data/models/p51/p51d-jw-acc.ac -%%DATADIR%%/data/models/p51/p51d-jw-acc.png -%%DATADIR%%/data/models/p51/p51d-jw-alt.ac -%%DATADIR%%/data/models/p51/p51d-jw-alt.png -%%DATADIR%%/data/models/p51/p51d-jw-altpress.png -%%DATADIR%%/data/models/p51/p51d-jw-arrows.png -%%DATADIR%%/data/models/p51/p51d-jw-asi.ac -%%DATADIR%%/data/models/p51/p51d-jw-asi.png -%%DATADIR%%/data/models/p51/p51d-jw-attitude-bezel.png -%%DATADIR%%/data/models/p51/p51d-jw-attitude.ac -%%DATADIR%%/data/models/p51/p51d-jw-attitude.png -%%DATADIR%%/data/models/p51/p51d-jw-clock.ac -%%DATADIR%%/data/models/p51/p51d-jw-clock.png -%%DATADIR%%/data/models/p51/p51d-jw-compass-bezel.png -%%DATADIR%%/data/models/p51/p51d-jw-compass.ac -%%DATADIR%%/data/models/p51/p51d-jw-compass.png -%%DATADIR%%/data/models/p51/p51d-jw-engine.ac -%%DATADIR%%/data/models/p51/p51d-jw-engine.png -%%DATADIR%%/data/models/p51/p51d-jw-gearwarn.ac -%%DATADIR%%/data/models/p51/p51d-jw-gearwarn.png -%%DATADIR%%/data/models/p51/p51d-jw-gunsight.ac -%%DATADIR%%/data/models/p51/p51d-jw-gunsight.png -%%DATADIR%%/data/models/p51/p51d-jw-ignition.ac -%%DATADIR%%/data/models/p51/p51d-jw-ignition.png -%%DATADIR%%/data/models/p51/p51d-jw-large-bezel.png -%%DATADIR%%/data/models/p51/p51d-jw-magcompass.ac -%%DATADIR%%/data/models/p51/p51d-jw-magcompass.png -%%DATADIR%%/data/models/p51/p51d-jw-man.ac -%%DATADIR%%/data/models/p51/p51d-jw-man.png -%%DATADIR%%/data/models/p51/p51d-jw-med-bezel.png -%%DATADIR%%/data/models/p51/p51d-jw-remote.ac -%%DATADIR%%/data/models/p51/p51d-jw-remote.png -%%DATADIR%%/data/models/p51/p51d-jw-remotearrow.png -%%DATADIR%%/data/models/p51/p51d-jw-tach.ac -%%DATADIR%%/data/models/p51/p51d-jw-tach.png -%%DATADIR%%/data/models/p51/p51d-jw-temp.ac -%%DATADIR%%/data/models/p51/p51d-jw-temp.png -%%DATADIR%%/data/models/p51/p51d-jw-throttle.ac -%%DATADIR%%/data/models/p51/p51d-jw-throttle.png -%%DATADIR%%/data/models/p51/p51d-jw-trimknob.png -%%DATADIR%%/data/models/p51/p51d-jw-trimknobaileron.ac -%%DATADIR%%/data/models/p51/p51d-jw-trimknobrudder.ac -%%DATADIR%%/data/models/p51/p51d-jw-trimwheel.png -%%DATADIR%%/data/models/p51/p51d-jw-trimwheelelevator.ac -%%DATADIR%%/data/models/p51/p51d-jw-turn.ac -%%DATADIR%%/data/models/p51/p51d-jw-turn.png -%%DATADIR%%/data/models/p51/p51d-jw-vac.ac -%%DATADIR%%/data/models/p51/p51d-jw-vac.png -%%DATADIR%%/data/models/p51/p51d-jw-vsi.ac -%%DATADIR%%/data/models/p51/p51d-jw-vsi.png -%%DATADIR%%/data/models/p51/p51d-jw.ac.gz -%%DATADIR%%/data/models/p51/transparent-bg.png -%%DATADIR%%/data/models/scenery/GoldenGateBridge.osg.gz -%%DATADIR%%/data/models/scenery/GoldenGateBridge_redLight.png -%%DATADIR%%/data/models/scenery/GoldenGateBridge_road3.png -%%DATADIR%%/data/models/scenery/GoldenGateBridge_struct.png -%%DATADIR%%/data/models/scenery/GoldenGateBridge_struct2.png -%%DATADIR%%/data/models/scenery/GoldenGateBridge_susp.png -%%DATADIR%%/data/models/scenery/GoldenGateBridge_wall.png -%%DATADIR%%/data/models/scenery/GoldenGateBridge_yellowLight.png -%%DATADIR%%/data/models/scenery/alcatraz.ac.gz -%%DATADIR%%/data/models/scenery/alcatraz.jpg -%%DATADIR%%/data/models/sikorsky76/S76livery.png -%%DATADIR%%/data/models/sikorsky76/blur.png -%%DATADIR%%/data/models/sikorsky76/chrome1.png -%%DATADIR%%/data/models/sikorsky76/panel.png -%%DATADIR%%/data/models/sikorsky76/s76c.ac.gz -%%DATADIR%%/data/models/spaceShuttle/NASA_images_permission.txt -%%DATADIR%%/data/models/spaceShuttle/SpaceShuttle.osg.gz -%%DATADIR%%/data/models/spaceShuttle/spstob_1.png -%%DATADIR%%/data/models/spaceShuttle/spstob_2.png -%%DATADIR%%/data/models/spaceShuttle/spstob_3.png -%%DATADIR%%/data/models/spaceShuttle/spstob_4.png -%%DATADIR%%/data/models/spaceShuttle/spstob_e.png -%%DATADIR%%/data/models/spitfire/Pilot_1.png -%%DATADIR%%/data/models/spitfire/Pilot_2.png -%%DATADIR%%/data/models/spitfire/Pilot_2n.png -%%DATADIR%%/data/models/spitfire/UC-up-down.png -%%DATADIR%%/data/models/spitfire/altimeter.ac -%%DATADIR%%/data/models/spitfire/asi.ac -%%DATADIR%%/data/models/spitfire/attitude-bezel.png -%%DATADIR%%/data/models/spitfire/attitude.ac -%%DATADIR%%/data/models/spitfire/attitude.png -%%DATADIR%%/data/models/spitfire/blackout.ac -%%DATADIR%%/data/models/spitfire/boost.ac -%%DATADIR%%/data/models/spitfire/clock.ac -%%DATADIR%%/data/models/spitfire/clock.png -%%DATADIR%%/data/models/spitfire/compass-bezel.png -%%DATADIR%%/data/models/spitfire/compass.ac -%%DATADIR%%/data/models/spitfire/compass.png -%%DATADIR%%/data/models/spitfire/control-stick.ac -%%DATADIR%%/data/models/spitfire/cut-off.ac -%%DATADIR%%/data/models/spitfire/dimmer.ac -%%DATADIR%%/data/models/spitfire/dimmer.png -%%DATADIR%%/data/models/spitfire/engine-start.png -%%DATADIR%%/data/models/spitfire/flaps.ac -%%DATADIR%%/data/models/spitfire/flaps.png -%%DATADIR%%/data/models/spitfire/fuel-cocks.ac -%%DATADIR%%/data/models/spitfire/fuel-pressure.ac -%%DATADIR%%/data/models/spitfire/fuel-pressure.png -%%DATADIR%%/data/models/spitfire/fuel.ac -%%DATADIR%%/data/models/spitfire/fuel.png -%%DATADIR%%/data/models/spitfire/green.png -%%DATADIR%%/data/models/spitfire/hotspotgrid.png -%%DATADIR%%/data/models/spitfire/hunter-alt.png -%%DATADIR%%/data/models/spitfire/hunter-altpress.png -%%DATADIR%%/data/models/spitfire/hunter-turn-face.png -%%DATADIR%%/data/models/spitfire/hunter-turn.png -%%DATADIR%%/data/models/spitfire/hunter-vsi.png -%%DATADIR%%/data/models/spitfire/hunter__a.png -%%DATADIR%%/data/models/spitfire/hurricane-starter.png -%%DATADIR%%/data/models/spitfire/hurricane-turn-a.png -%%DATADIR%%/data/models/spitfire/large-bezel.png -%%DATADIR%%/data/models/spitfire/light-green-flare.ac -%%DATADIR%%/data/models/spitfire/light-red-flare.ac -%%DATADIR%%/data/models/spitfire/light-white-flare.ac -%%DATADIR%%/data/models/spitfire/magcompass.png -%%DATADIR%%/data/models/spitfire/magneto.ac -%%DATADIR%%/data/models/spitfire/magneto.png -%%DATADIR%%/data/models/spitfire/nav-light-switch.ac -%%DATADIR%%/data/models/spitfire/navigation-lights-switch.png -%%DATADIR%%/data/models/spitfire/oil-pressure.ac -%%DATADIR%%/data/models/spitfire/oil-pressure.png -%%DATADIR%%/data/models/spitfire/primer.ac -%%DATADIR%%/data/models/spitfire/puff-new.png -%%DATADIR%%/data/models/spitfire/puff.ac -%%DATADIR%%/data/models/spitfire/puff.png -%%DATADIR%%/data/models/spitfire/red.png -%%DATADIR%%/data/models/spitfire/reflector_gun_sight-01.png -%%DATADIR%%/data/models/spitfire/reflector_gun_sight.png -%%DATADIR%%/data/models/spitfire/rgs-dimmer-switch.ac -%%DATADIR%%/data/models/spitfire/rgs-dimmer-switch.png -%%DATADIR%%/data/models/spitfire/rgs-main-switch.ac -%%DATADIR%%/data/models/spitfire/rgs-main-switch.png -%%DATADIR%%/data/models/spitfire/rgs.ac -%%DATADIR%%/data/models/spitfire/ring-pull.ac -%%DATADIR%%/data/models/spitfire/rpm.ac -%%DATADIR%%/data/models/spitfire/seafire-boost.ac -%%DATADIR%%/data/models/spitfire/seafire-boost.png -%%DATADIR%%/data/models/spitfire/seafire-tx-00.png -%%DATADIR%%/data/models/spitfire/seafire-tx-01.png -%%DATADIR%%/data/models/spitfire/seafire-tx-02.png -%%DATADIR%%/data/models/spitfire/seafire-tx-03.png -%%DATADIR%%/data/models/spitfire/seafire-tx-04.png -%%DATADIR%%/data/models/spitfire/seafire-tx-05.png -%%DATADIR%%/data/models/spitfire/seafireIIIc.osg.gz -%%DATADIR%%/data/models/spitfire/spitfire-asi.png -%%DATADIR%%/data/models/spitfire/spitfire-attitude.png -%%DATADIR%%/data/models/spitfire/spitfire-boost.png -%%DATADIR%%/data/models/spitfire/spitfire-rpm.png -%%DATADIR%%/data/models/spitfire/spitfire-trim.png -%%DATADIR%%/data/models/spitfire/spitfire-triple.png -%%DATADIR%%/data/models/spitfire/spitfire-turn.png -%%DATADIR%%/data/models/spitfire/spitfire-tx-00.png -%%DATADIR%%/data/models/spitfire/spitfire-tx-01.png -%%DATADIR%%/data/models/spitfire/spitfire-tx-02.png -%%DATADIR%%/data/models/spitfire/spitfire-tx-03.png -%%DATADIR%%/data/models/spitfire/spitfire-tx-04.png -%%DATADIR%%/data/models/spitfire/spitfire-tx-05.png -%%DATADIR%%/data/models/spitfire/spitfire-vsi.png -%%DATADIR%%/data/models/spitfire/starter.ac -%%DATADIR%%/data/models/spitfire/switch.png -%%DATADIR%%/data/models/spitfire/throttle.ac -%%DATADIR%%/data/models/spitfire/transparent-bg.png -%%DATADIR%%/data/models/spitfire/trim-knob-rudder.ac -%%DATADIR%%/data/models/spitfire/trim-knob.png -%%DATADIR%%/data/models/spitfire/trim-wheel-elev.ac -%%DATADIR%%/data/models/spitfire/trim.ac -%%DATADIR%%/data/models/spitfire/triple.ac -%%DATADIR%%/data/models/spitfire/turn.ac -%%DATADIR%%/data/models/spitfire/undercarriage-up-down.ac -%%DATADIR%%/data/models/spitfire/vsi.ac -%%DATADIR%%/data/models/spitfire/white.png -%%DATADIR%%/data/models/sr71/Halos.png -%%DATADIR%%/data/models/sr71/RedLight1.ac -%%DATADIR%%/data/models/sr71/colors.png -%%DATADIR%%/data/models/sr71/fire.png -%%DATADIR%%/data/models/sr71/glass.png -%%DATADIR%%/data/models/sr71/grey-blue-flood.png -%%DATADIR%%/data/models/sr71/parachut.png -%%DATADIR%%/data/models/sr71/sr71.osg.gz -%%DATADIR%%/data/models/sr71/wheels.png -%%DATADIR%%/data/models/su37/SU-37-Intake-Screen.png -%%DATADIR%%/data/models/su37/SU-37-Petal.png -%%DATADIR%%/data/models/su37/SU-37-reheat.png -%%DATADIR%%/data/models/su37/SU-37-top.png -%%DATADIR%%/data/models/su37/Trajectory-Marker.ac -%%DATADIR%%/data/models/su37/su37.osg.gz -%%DATADIR%%/data/ossim.kwl -%%DATADIR%%/data/palomino.conf -%%DATADIR%%/data/physics_a4.conf -%%DATADIR%%/data/physics_corsair.conf -%%DATADIR%%/data/physics_f14.conf -%%DATADIR%%/data/physics_f15.conf -%%DATADIR%%/data/physics_f16.conf -%%DATADIR%%/data/physics_f18.conf -%%DATADIR%%/data/physics_f82.conf -%%DATADIR%%/data/physics_f86.conf -%%DATADIR%%/data/physics_mirage2000.conf -%%DATADIR%%/data/physics_p51.conf -%%DATADIR%%/data/physics_sikorsky.conf -%%DATADIR%%/data/physics_spaceShuttle.conf -%%DATADIR%%/data/physics_spitfire.conf -%%DATADIR%%/data/physics_sr71.conf -%%DATADIR%%/data/physics_su37.conf -%%DATADIR%%/data/replays/replayTakeoffFrontSlot.dat.gz -%%DATADIR%%/data/replays/replayTakeoffRearSlot.dat.gz -%%DATADIR%%/data/shaders/aircraft_frag.glsl -%%DATADIR%%/data/shaders/aircraft_highSpecular_frag.glsl -%%DATADIR%%/data/shaders/aircraft_highSpecular_vert.glsl -%%DATADIR%%/data/shaders/aircraft_lowSpecular_frag.glsl -%%DATADIR%%/data/shaders/aircraft_lowSpecular_vert.glsl -%%DATADIR%%/data/shaders/aircraft_sr71_frag.glsl -%%DATADIR%%/data/shaders/aircraft_sr71_vert.glsl -%%DATADIR%%/data/shaders/aircraft_vert.glsl -%%DATADIR%%/data/shaders/color_frag.glsl -%%DATADIR%%/data/shaders/color_vert.glsl -%%DATADIR%%/data/shaders/default_frag.glsl -%%DATADIR%%/data/shaders/default_vert.glsl -%%DATADIR%%/data/shaders/inc_ComputeDiffuseSpecular_vert.glsl -%%DATADIR%%/data/shaders/inc_aircraft_frag.glsl -%%DATADIR%%/data/shaders/inc_brightness_frag.glsl -%%DATADIR%%/data/shaders/inc_color_vert.glsl -%%DATADIR%%/data/shaders/inc_fog_frag.glsl -%%DATADIR%%/data/shaders/inc_fog_vert.glsl -%%DATADIR%%/data/shaders/inc_frag.glsl -%%DATADIR%%/data/shaders/inc_shadow_frag.glsl -%%DATADIR%%/data/shaders/inc_shadow_vert.glsl -%%DATADIR%%/data/shaders/inc_vert.glsl -%%DATADIR%%/data/shaders/module.txt -%%DATADIR%%/data/shaders/nop_frag.glsl -%%DATADIR%%/data/shaders/nop_vert.glsl -%%DATADIR%%/data/shaders/reference/inc_DirectionalLight_vert.glsl -%%DATADIR%%/data/shaders/reference/inc_PointLight_vert.glsl -%%DATADIR%%/data/shaders/reference/inc_SpotLight_vert.glsl -%%DATADIR%%/data/shaders/reference/inc_color_vert.glsl -%%DATADIR%%/data/sounds/README.txt -%%DATADIR%%/data/sounds/beep1.wav.gz -%%DATADIR%%/data/sounds/beep2.wav.gz -%%DATADIR%%/data/sounds/crash.wav.gz -%%DATADIR%%/data/sounds/gear.wav.gz -%%DATADIR%%/data/sounds/hit.wav.gz -%%DATADIR%%/data/sounds/jet.wav.gz -%%DATADIR%%/data/sounds/jet_whine.wav.gz -%%DATADIR%%/data/sounds/laser.wav.gz -%%DATADIR%%/data/sounds/missile.wav.gz -%%DATADIR%%/data/sounds/piston.wav.gz -%%DATADIR%%/data/sounds/piston_cough.wav.gz -%%DATADIR%%/data/sounds/rotor.wav.gz -%%DATADIR%%/data/sounds/rumble.wav.gz -%%DATADIR%%/data/sounds/stall.wav.gz -%%DATADIR%%/data/sounds/thunder.wav.gz -%%DATADIR%%/data/sounds/turboprop1.wav.gz -%%DATADIR%%/data/terrain/GoldenGate.osga -%%DATADIR%%/data/textures/README.txt -%%DATADIR%%/data/textures/cloud0.png -%%DATADIR%%/data/textures/cloud1.png -%%DATADIR%%/data/textures/cloud2.png -%%DATADIR%%/data/textures/cloud3.png -%%DATADIR%%/data/textures/cloudRain0.png -%%DATADIR%%/data/textures/moon.png -%%DATADIR%%/data/textures/smoke.png -%%DATADIR%%/scripts/actors.lua -%%DATADIR%%/scripts/cmd.lua -%%DATADIR%%/scripts/defs.lua -%%DATADIR%%/scripts/events.lua -%%DATADIR%%/scripts/game.lua -%%DATADIR%%/scripts/gfx.lua -%%DATADIR%%/scripts/hud.lua -%%DATADIR%%/scripts/joystick.lua -%%DATADIR%%/scripts/keyboard.lua -%%DATADIR%%/scripts/keyboard_defs.lua -%%DATADIR%%/scripts/lib.lua -%%DATADIR%%/scripts/manipulator_mode.lua -%%DATADIR%%/scripts/mission.lua -%%DATADIR%%/scripts/mission_carrier.lua -%%DATADIR%%/scripts/mission_ossim.lua -%%DATADIR%%/scripts/module.txt -%%DATADIR%%/scripts/module_lua_coding.txt -%%DATADIR%%/scripts/replay.lua -%%DATADIR%%/scripts/scene.lua -%%DATADIR%%/scripts/scene_GoldenGate.lua -%%DATADIR%%/scripts/sim_generic.lua -%%DATADIR%%/scripts/sim_specific.lua -%%DATADIR%%/scripts/sound.lua -%%DATADIR%%/scripts/startup.lua -%%DATADIR%%/scripts/tick.lua -%%DATADIR%%/scripts/timer.lua -%%DATADIR%%/scripts/views.lua -%%DATADIR%%/scripts/weapons.lua -share/pixmaps/palomino.png diff --git a/graphics/Makefile b/graphics/Makefile index 8f23e7fa450e..a626b07bb594 100644 --- a/graphics/Makefile +++ b/graphics/Makefile @@ -675,7 +675,6 @@ SUBDIR += optar SUBDIR += optipng SUBDIR += osg - SUBDIR += osg34 SUBDIR += osgearth SUBDIR += ospray SUBDIR += ospray-studio diff --git a/graphics/digikam/Makefile b/graphics/digikam/Makefile index 0ea448097714..aed06b7421ae 100644 --- a/graphics/digikam/Makefile +++ b/graphics/digikam/Makefile @@ -63,6 +63,7 @@ CMAKE_ON= BUILD_WITH_CCACHE \ DIGIKAMSC_COMPILE_DIGIKAM \ ENABLE_KFILEMETADATASUPPORT +CXXFLAGS+= -Wno-error=undef WRKSRC= ${WRKDIR}/${PORTNAME}-${DISTVERSION} PLIST_SUB= SHLIB_VER=${DISTVERSION} diff --git a/graphics/osg34/Makefile b/graphics/osg34/Makefile deleted file mode 100644 index 8c337d991a6d..000000000000 --- a/graphics/osg34/Makefile +++ /dev/null @@ -1,155 +0,0 @@ -PORTNAME= osg -PORTVERSION= 3.4.1 -DISTVERSIONPREFIX= OpenSceneGraph- -PORTREVISION= 66 -CATEGORIES= graphics -PKGNAMESUFFIX= 34 - -MAINTAINER= ports@FreeBSD.org -COMMENT= C++ OpenGL scene graph library for real-time rendering -WWW= https://www.openscenegraph.org/ - -LICENSE= OSGPL -LICENSE_NAME= OpenSceneGraph Public License -LICENSE_FILE= ${WRKSRC}/LICENSE.txt -LICENSE_PERMS= dist-mirror dist-sell pkg-mirror pkg-sell auto-accept - -DEPRECATED= Obsolete version released in 2015 -EXPIRATION_DATE=2025-09-10 - -LIB_DEPENDS= libpng.so:graphics/png \ - libtiff.so:graphics/tiff - -USES= alias cmake compiler:c++11-lang gl jpeg localbase pkgconfig xorg -USE_CXXSTD= c++14 -USE_GITHUB= yes -GH_ACCOUNT= openscenegraph -GH_PROJECT= OpenSceneGraph -USE_GL= gl glu -USE_LDCONFIG= yes -USE_XORG= x11 - -# needed to ensure build on gcc-based archs; harmless otherwise -CXXFLAGS+= -Wno-narrowing -I${LOCALBASE}/include/Imath -DInt64=uint64_t - -CONFLICTS_INSTALL=osg - -PORTSCOUT= limitw:1,even - -PLIST_SUB= OSG_VERSION=${PORTVERSION} \ - OSG_SHLIBVER=131 \ - OPENTHREADS_VERSION=3.3.0 \ - OPENTHREADS_SHLIBVER=20 - -OPTIONS_DEFINE= CURL FFMPEG FREETYPE GDAL GIF GSTREAMER GTA \ - JASPER LIBLAS LUA NVTT OPENEXR PDF QT5 SDL \ - SVG VNC XINE XRANDR -OPTIONS_DEFAULT=FFMPEG FREETYPE GIF XRANDR -OPTIONS_SUB= yes - -GDAL_DESC= GDAL support -GTA_DESC= GTA file format support -LIBLAS_DESC= liblas support -NVTT_DESC= Use NVidia texture tools -SDL_DESC= Use SDL (joystick support in present3d) -VNC_DESC= LibVNCServer support - -CURL_LIB_DEPENDS= libcurl.so:ftp/curl -CURL_VARS= FORCE_REQUIRE+=CURL -CURL_VARS_OFF= FORCE_IGNORE+=CURL -FFMPEG_LIB_DEPENDS= libavcodec.so.58:multimedia/ffmpeg4 -FFMPEG_VARS= FORCE_REQUIRE+=FFmpeg -FFMPEG_VARS_OFF= FORCE_IGNORE+=FFmpeg -FREETYPE_LIB_DEPENDS= libfreetype.so:print/freetype2 -FREETYPE_VARS= FORCE_REQUIRE+=Freetype -FREETYPE_VARS_OFF= FORCE_IGNORE+=Freetype -GDAL_LIB_DEPENDS= libgdal.so:graphics/gdal -GDAL_VARS= FORCE_REQUIRE+=GDAL -GDAL_VARS_OFF= FORCE_IGNORE+=GDAL -GIF_LIB_DEPENDS= libgif.so:graphics/giflib -GIF_VARS= FORCE_REQUIRE+=GIFLIB -GIF_VARS_OFF= FORCE_IGNORE+=GIFLIB -GSTREAMER_USES= gstreamer -GSTREAMER_USE= GNOME=glib20 -GSTREAMER_VARS= FORCE_REQUIRE+=GStreamer -GSTREAMER_VARS_OFF= FORCE_IGNORE+=GStreamer -GTA_LIB_DEPENDS= libgta.so:devel/libgta -GTA_VARS= FORCE_REQUIRE+=GTA -GTA_VARS_OFF= FORCE_IGNORE+=GTA -JASPER_LIB_DEPENDS= libjasper.so:graphics/jasper -JASPER_VARS= FORCE_REQUIRE+=Jasper -JASPER_VARS_OFF= FORCE_IGNORE+=Jasper -LIBLAS_LIB_DEPENDS= liblas.so:devel/liblas -LIBLAS_VARS= FORCE_REQUIRE+=LIBLAS -LIBLAS_VARS_OFF= FORCE_IGNORE+=LIBLAS -LUA_USES= lua:52 -LUA_CMAKE_ON= -DOSG_USE_LOCAL_LUA_SOURCE:BOOL=OFF -LUA_VARS= FORCE_IGNORE+=Lua51 FORCE_REQUIRE+=Lua52 -LUA_VARS_OFF= FORCE_IGNORE+="Lua51 Lua52" -NVTT_LIB_DEPENDS= libnvtt.so:graphics/nvidia-texture-tools -NVTT_VARS= FORCE_REQUIRE+=NVTT -NVTT_VARS_OFF= FORCE_IGNORE+=NVTT -OPENEXR_LIB_DEPENDS= libOpenEXR.so:graphics/openexr libImath.so:math/Imath -OPENEXR_VARS= FORCE_REQUIRE+=OpenEXR -OPENEXR_VARS_OFF= FORCE_IGNORE+=OpenEXR -PDF_LIB_DEPENDS= libpoppler-glib.so:graphics/poppler-glib -PDF_USE= gnome=cairo -PDF_VARS= FORCE_REQUIRE+=Poppler-glib -PDF_VARS_OFF= FORCE_IGNORE+=Poppler-glib -QT5_USES= qt:5 -QT5_USE= qt=buildtools:build,core,gui,opengl,qmake:build,webkit,widgets -QT5_CMAKE_ON= -DDESIRED_QT_VERSION=5 -QT5_VARS= FORCE_REQUIRE+="Qt5Widgets Qt5WebKitWidgets" -QT5_VARS_OFF= FORCE_IGNORE+="Qt5Widgets Qt5WebKitWidgets" -SDL_USES= sdl -SDL_USE= sdl=sdl -SDL_VARS= FORCE_REQUIRE+=SDL -SDL_VARS_OFF= FORCE_IGNORE+=SDL -SVG_USES= gnome -SVG_USE= gnome=cairo,librsvg2 -SVG_VARS= FORCE_REQUIRE+=RSVG -SVG_VARS_OFF= FORCE_IGNORE+=RSVG -VNC_LIB_DEPENDS= libvncserver.so:net/libvncserver -VNC_VARS= FORCE_REQUIRE+=LibVNCServer -VNC_VARS_OFF= FORCE_IGNORE+=LibVNCServer -XINE_LIB_DEPENDS= libxine.so:multimedia/libxine -XINE_VARS= FORCE_REQUIRE+=Xine -XINE_VARS_OFF= FORCE_IGNORE+=Xine -XRANDR_USE= xorg=xrandr -XRANDR_CMAKE_ON= -DOSGVIEWER_USE_XRANDR:BOOL=ON -XRANDR_CMAKE_OFF= -DOSGVIEWER_USE_XRANDR:BOOL=OFF - -# GUI toolkits are only needed for building examples, which are not even installed -FORCE_IGNORE= FLTK GLUT FOX Qt3 wxWidgets OpenAL GtkGl SDL2 # only for examples -FORCE_IGNORE+= COLLADA Performer OurDCMTK XUL FBX # not in ports -FORCE_IGNORE+= OpenVRML # ports version too old -FORCE_IGNORE+= ITK # ports version doesn't build on 10.x -FORCE_REQUIRE= Threads OpenGL X11 JPEG PNG TIFF ZLIB # common & lightweight - -.include <bsd.port.options.mk> - -.if ${PORT_OPTIONS:MQT5} -CMAKE_ARGS+= -DOSG_USE_QT:BOOL=ON -PLIST_SUB+= QT="" -.else -CMAKE_ARGS+= -DOSG_USE_QT:BOOL=OFF -PLIST_SUB+= QT="@comment " -.endif - -post-patch: - @${FIND} ${WRKSRC}/CMakeModules -type f -print0 | ${XARGS} -0 \ - ${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|g' - @${REINPLACE_CMD} -e '/FIND_LIBRARY.*DL_LIBRARY/ d' \ - ${WRKSRC}/CMakeLists.txt - @${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|g' \ - ${PATCH_WRKSRC}/CMakeModules/FindFFmpeg.cmake -.for p in ${FORCE_REQUIRE} - @${REINPLACE_CMD} -e '/FIND_PACKAGE.*${p}/ s|)$$| REQUIRED&|' \ - ${WRKSRC}/CMakeLists.txt -.endfor -.for p in ${FORCE_IGNORE} - @${REINPLACE_CMD} -e '/FIND_PACKAGE.*${p}/ s|^|#|' \ - ${WRKSRC}/CMakeLists.txt -.endfor - -.include <bsd.port.mk> diff --git a/graphics/osg34/distinfo b/graphics/osg34/distinfo deleted file mode 100644 index 7b8e38def234..000000000000 --- a/graphics/osg34/distinfo +++ /dev/null @@ -1,3 +0,0 @@ -TIMESTAMP = 1506357973 -SHA256 (openscenegraph-OpenSceneGraph-OpenSceneGraph-3.4.1_GH0.tar.gz) = 930eb46f05781a76883ec16c5f49cfb29a059421db131005d75bec4d78401fd5 -SIZE (openscenegraph-OpenSceneGraph-OpenSceneGraph-3.4.1_GH0.tar.gz) = 5686385 diff --git a/graphics/osg34/files/patch-CMakeLists.txt b/graphics/osg34/files/patch-CMakeLists.txt deleted file mode 100644 index d495019fab71..000000000000 --- a/graphics/osg34/files/patch-CMakeLists.txt +++ /dev/null @@ -1,30 +0,0 @@ ---- CMakeLists.txt.orig 2017-08-28 16:50:49 UTC -+++ CMakeLists.txt -@@ -252,6 +252,9 @@ ENDIF() - - INCLUDE_DIRECTORIES( - ${OpenSceneGraph_SOURCE_DIR}/include -+) -+ -+INCLUDE_DIRECTORIES(SYSTEM - ${OPENGL_INCLUDE_DIR} - ) - -@@ -846,7 +849,7 @@ ENDIF() - - IF(UNIX AND NOT WIN32 AND NOT APPLE) - IF(CMAKE_SIZEOF_VOID_P MATCHES "8") -- SET(LIB_POSTFIX "64" CACHE STRING "suffix for 32/64 dir placement") -+ SET(LIB_POSTFIX "" CACHE STRING "suffix for 32/64 dir placement") - MARK_AS_ADVANCED(LIB_POSTFIX) - ENDIF() - ENDIF() -@@ -1275,7 +1278,7 @@ FOREACH(PKGCONFIG_FILE ${PKGCONFIG_FILES - ${PROJECT_BINARY_DIR}/packaging/pkgconfig/${PKGCONFIG_FILE}.pc - @ONLY - ) -- INSTALL(FILES ${PROJECT_BINARY_DIR}/packaging/pkgconfig/${PKGCONFIG_FILE}.pc DESTINATION lib${LIB_POSTFIX}/pkgconfig COMPONENT libopenscenegraph-dev) -+ INSTALL(FILES ${PROJECT_BINARY_DIR}/packaging/pkgconfig/${PKGCONFIG_FILE}.pc DESTINATION libdata/pkgconfig COMPONENT libopenscenegraph-dev) - ENDFOREACH(PKGCONFIG_FILE) - - diff --git a/graphics/osg34/files/patch-CMakeModules-FindGTA.cmake b/graphics/osg34/files/patch-CMakeModules-FindGTA.cmake deleted file mode 100644 index 8a648a5ac524..000000000000 --- a/graphics/osg34/files/patch-CMakeModules-FindGTA.cmake +++ /dev/null @@ -1,25 +0,0 @@ ---- CMakeModules/FindGTA.cmake.orig 2014-01-19 17:46:13.693927259 +0400 -+++ CMakeModules/FindGTA.cmake 2014-01-19 18:38:17.868997891 +0400 -@@ -8,16 +8,6 @@ - # correspond to the ./configure --prefix=$GTA_DIR - # used in building libgta. - --INCLUDE(FindPkgConfig OPTIONAL) -- --IF(PKG_CONFIG_FOUND) -- -- INCLUDE(FindPkgConfig) -- -- PKG_CHECK_MODULES(GTA gta) -- --ELSE(PKG_CONFIG_FOUND) -- - FIND_PATH(GTA_INCLUDE_DIRS gta/gta.hpp - $ENV{GTA_DIR}/include - $ENV{GTA_DIR} -@@ -52,5 +42,3 @@ - IF(GTA_LIBRARIES AND GTA_INCLUDE_DIRS) - SET(GTA_FOUND "YES") - ENDIF(GTA_LIBRARIES AND GTA_INCLUDE_DIRS) -- --ENDIF(PKG_CONFIG_FOUND) diff --git a/graphics/osg34/files/patch-CMakeModules_FindFFmpeg.cmake b/graphics/osg34/files/patch-CMakeModules_FindFFmpeg.cmake deleted file mode 100644 index 8877dac1de45..000000000000 --- a/graphics/osg34/files/patch-CMakeModules_FindFFmpeg.cmake +++ /dev/null @@ -1,10 +0,0 @@ ---- CMakeModules/FindFFmpeg.cmake.orig 2023-04-24 09:18:12 UTC -+++ CMakeModules/FindFFmpeg.cmake -@@ -21,6 +21,7 @@ - # (in new version case, use by ffmpeg header) - #and ${FFMPEG_libname_INCLUDE_DIRS/libname} (in new version case, use by osg plugin code) - -+set(CMAKE_PREFIX_PATH "%%LOCALBASE%%/ffmpeg4;%%LOCALBASE%%/ffmpeg4/libexec") - - # Macro to find header and lib directories - # example: FFMPEG_FIND(AVFORMAT avformat avformat.h) diff --git a/graphics/osg34/files/patch-CMakeModules_FindGStreamer.cmake b/graphics/osg34/files/patch-CMakeModules_FindGStreamer.cmake deleted file mode 100644 index 7b3259726d4b..000000000000 --- a/graphics/osg34/files/patch-CMakeModules_FindGStreamer.cmake +++ /dev/null @@ -1,32 +0,0 @@ ---- CMakeModules/FindGStreamer.cmake 2015-07-17 21:31:19.000000000 +0300 -+++ CMakeModules/FindGStreamer.cmake 2015-02-25 22:25:34.000000000 +0300 -@@ -83,18 +83,18 @@ - find_package(PkgConfig) - - macro(FIND_GSTREAMER_COMPONENT _component_prefix _pkgconfig_name _header _library) -- pkg_check_modules(${_component_prefix} QUIET ${_pkgconfig_name}) -+ pkg_check_modules(PC_${_component_prefix} QUIET ${_pkgconfig_name}) - --# find_path(${_component_prefix}_INCLUDE_DIRS --# NAMES ${_header} --# HINTS ${PC_${_component_prefix}_INCLUDE_DIRS} ${PC_${_component_prefix}_INCLUDEDIR} --# PATH_SUFFIXES gstreamer-1.0 --# ) -- --# find_library(${_component_prefix}_LIBRARIES --# NAMES ${_library} --# HINTS ${PC_${_component_prefix}_LIBRARY_DIRS} ${PC_${_component_prefix}_LIBDIR} --# ) -+ find_path(${_component_prefix}_INCLUDE_DIRS -+ NAMES ${_header} -+ HINTS ${PC_${_component_prefix}_INCLUDE_DIRS} ${PC_${_component_prefix}_INCLUDEDIR} -+ PATH_SUFFIXES gstreamer-1.0 -+ ) -+ -+ find_library(${_component_prefix}_LIBRARIES -+ NAMES ${_library} -+ HINTS ${PC_${_component_prefix}_LIBRARY_DIRS} ${PC_${_component_prefix}_LIBDIR} -+ ) - endmacro() - endif () - diff --git a/graphics/osg34/files/patch-CMakeModules_FindOpenEXR.cmake b/graphics/osg34/files/patch-CMakeModules_FindOpenEXR.cmake deleted file mode 100644 index e8fb99b70796..000000000000 --- a/graphics/osg34/files/patch-CMakeModules_FindOpenEXR.cmake +++ /dev/null @@ -1,23 +0,0 @@ ---- CMakeModules/FindOpenEXR.cmake.orig 2021-04-11 21:39:01 UTC -+++ CMakeModules/FindOpenEXR.cmake -@@ -51,14 +51,14 @@ MACRO(OPENEXR_FIND libname) - OPENEXR_FIND_VAR(OPENEXR_${libname}_LIBRARY_DEBUG ${libname}d) - ENDMACRO(OPENEXR_FIND) - --OPENEXR_FIND(IlmImf) -+OPENEXR_FIND(OpenEXR) - OPENEXR_FIND(IlmThread) - OPENEXR_FIND(Iex) --OPENEXR_FIND(Half) -+OPENEXR_FIND(Imath) - - SET(OPENEXR_FOUND "NO") --IF(OPENEXR_INCLUDE_DIR AND OPENEXR_IlmImf_LIBRARY AND OPENEXR_IlmThread_LIBRARY AND OPENEXR_Iex_LIBRARY AND OPENEXR_Half_LIBRARY) -- SET(OPENEXR_LIBRARIES ${OPENEXR_IlmImf_LIBRARY} ${OPENEXR_IlmThread_LIBRARY} ${OPENEXR_Half_LIBRARY} ${OPENEXR_Iex_LIBRARY} ) -- SET(OPENEXR_LIBRARIES_VARS OPENEXR_IlmImf_LIBRARY OPENEXR_IlmThread_LIBRARY OPENEXR_Half_LIBRARY OPENEXR_Iex_LIBRARY ) -+IF(OPENEXR_INCLUDE_DIR AND OPENEXR_OpenEXR_LIBRARY AND OPENEXR_IlmThread_LIBRARY AND OPENEXR_Iex_LIBRARY AND OPENEXR_Imath_LIBRARY) -+ SET(OPENEXR_LIBRARIES ${OPENEXR_OpenEXR_LIBRARY} ${OPENEXR_IlmThread_LIBRARY} ${OPENEXR_Imath_LIBRARY} ${OPENEXR_Iex_LIBRARY} ) -+ SET(OPENEXR_LIBRARIES_VARS OPENEXR_OpenEXR_LIBRARY OPENEXR_IlmThread_LIBRARY OPENEXR_Imath_LIBRARY OPENEXR_Iex_LIBRARY ) - SET(OPENEXR_FOUND "YES") --ENDIF(OPENEXR_INCLUDE_DIR AND OPENEXR_IlmImf_LIBRARY AND OPENEXR_IlmThread_LIBRARY AND OPENEXR_Iex_LIBRARY AND OPENEXR_Half_LIBRARY) -+ENDIF(OPENEXR_INCLUDE_DIR AND OPENEXR_OpenEXR_LIBRARY AND OPENEXR_IlmThread_LIBRARY AND OPENEXR_Iex_LIBRARY AND OPENEXR_Imath_LIBRARY) diff --git a/graphics/osg34/files/patch-shift-key-fix b/graphics/osg34/files/patch-shift-key-fix deleted file mode 100644 index 87d9003ae693..000000000000 --- a/graphics/osg34/files/patch-shift-key-fix +++ /dev/null @@ -1,23 +0,0 @@ -# Shift key not released if group switch is something other than Control-Shift: -# https://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg1218650.html - ---- src/osgGA/EventQueue.cpp.orig -+++ src/osgGA/EventQueue.cpp -@@ -337,7 +337,7 @@ void EventQueue::mouseButtonRelease(floa - - void EventQueue::keyPress(int key, double time, int unmodifiedKey) - { -- switch(key) -+ switch(unmodifiedKey) - { - case(GUIEventAdapter::KEY_Shift_L): _accumulateEventState->setModKeyMask(GUIEventAdapter::MODKEY_LEFT_SHIFT | _accumulateEventState->getModKeyMask()); break; - case(GUIEventAdapter::KEY_Shift_R): _accumulateEventState->setModKeyMask(GUIEventAdapter::MODKEY_RIGHT_SHIFT | _accumulateEventState->getModKeyMask()); break; -@@ -381,7 +381,7 @@ void EventQueue::keyPress(int key, doubl - - void EventQueue::keyRelease(int key, double time, int unmodifiedKey) - { -- switch(key) -+ switch(unmodifiedKey) - { - case(GUIEventAdapter::KEY_Shift_L): _accumulateEventState->setModKeyMask(~GUIEventAdapter::MODKEY_LEFT_SHIFT & _accumulateEventState->getModKeyMask()); break; - case(GUIEventAdapter::KEY_Shift_R): _accumulateEventState->setModKeyMask(~GUIEventAdapter::MODKEY_RIGHT_SHIFT & _accumulateEventState->getModKeyMask()); break; diff --git a/graphics/osg34/files/patch-src-OpenThreads-CMakeLists.txt b/graphics/osg34/files/patch-src-OpenThreads-CMakeLists.txt deleted file mode 100644 index 675ef5a726a0..000000000000 --- a/graphics/osg34/files/patch-src-OpenThreads-CMakeLists.txt +++ /dev/null @@ -1,8 +0,0 @@ ---- src/OpenThreads/CMakeLists.txt.orig 2009-01-27 18:34:57.000000000 +0300 -+++ src/OpenThreads/CMakeLists.txt 2009-02-05 17:54:57.000000000 +0300 -@@ -94,4 +94,4 @@ - @ONLY - ) - --INSTALL(FILES ${PROJECT_BINARY_DIR}/packaging/pkgconfig/openthreads.pc DESTINATION lib${LIB_POSTFIX}/pkgconfig) -+INSTALL(FILES ${PROJECT_BINARY_DIR}/packaging/pkgconfig/openthreads.pc DESTINATION libdata/pkgconfig) diff --git a/graphics/osg34/files/patch-src-OpenThreads-pthreads-PThread.cpp b/graphics/osg34/files/patch-src-OpenThreads-pthreads-PThread.cpp deleted file mode 100644 index eeaba23f077d..000000000000 --- a/graphics/osg34/files/patch-src-OpenThreads-pthreads-PThread.cpp +++ /dev/null @@ -1,37 +0,0 @@ ---- src/OpenThreads/pthreads/PThread.cpp.orig 2011-06-24 00:09:26.000000000 +0400 -+++ src/OpenThreads/pthreads/PThread.cpp 2012-03-05 05:57:02.886704932 +0400 -@@ -21,6 +21,7 @@ - #include <sys/types.h> - #include <unistd.h> - #include <pthread.h> -+#include <pthread_np.h> - #include <limits.h> - - #if defined __linux || defined __sun || defined __APPLE__ || ANDROID -@@ -136,7 +137,7 @@ - #if defined(__sgi) - pthread_setrunon_np( pd->cpunum ); - #elif defined(HAVE_PTHREAD_SETAFFINITY_NP) || defined(HAVE_THREE_PARAM_SCHED_SETAFFINITY) || defined(HAVE_TWO_PARAM_SCHED_SETAFFINITY) -- cpu_set_t cpumask; -+ cpuset_t cpumask; - CPU_ZERO( &cpumask ); - CPU_SET( pd->cpunum, &cpumask ); - -@@ -569,7 +570,7 @@ - - if (pd->isRunning && Thread::CurrentThread()==this) - { -- cpu_set_t cpumask; -+ cpuset_t cpumask; - CPU_ZERO( &cpumask ); - CPU_SET( pd->cpunum, &cpumask ); - #if defined(HAVE_PTHREAD_SETAFFINITY_NP) -@@ -1031,7 +1032,7 @@ - else - { - #if defined(HAVE_PTHREAD_SETAFFINITY_NP) || defined(HAVE_THREE_PARAM_SCHED_SETAFFINITY) || defined(HAVE_TWO_PARAM_SCHED_SETAFFINITY) -- cpu_set_t cpumask; -+ cpuset_t cpumask; - CPU_ZERO( &cpumask ); - CPU_SET( cpunum, &cpumask ); - #if defined(HAVE_PTHREAD_SETAFFINITY_NP) diff --git a/graphics/osg34/files/patch-src_osgPlugins_ffmpeg_CMakeLists.txt b/graphics/osg34/files/patch-src_osgPlugins_ffmpeg_CMakeLists.txt deleted file mode 100644 index 426b4f3145b3..000000000000 --- a/graphics/osg34/files/patch-src_osgPlugins_ffmpeg_CMakeLists.txt +++ /dev/null @@ -1,31 +0,0 @@ ---- src/osgPlugins/ffmpeg/CMakeLists.txt.orig 2015-01-07 14:14:55 UTC -+++ src/osgPlugins/ffmpeg/CMakeLists.txt -@@ -1,9 +1,9 @@ --INCLUDE_DIRECTORIES( ${FFMPEG_INCLUDE_DIRS} ) -+INCLUDE_DIRECTORIES(SYSTEM ${FFMPEG_INCLUDE_DIRS}) - LINK_DIRECTORIES(${FFMPEG_LIBRARY_DIRS}) - - IF(FFMPEG_LIBSWSCALE_FOUND) - -- INCLUDE_DIRECTORIES( ${FFMPEG_LIBSWSCALE_INCLUDE_DIRS} ${FFMPEG_LIBSWSCALE_INCLUDE_DIRS}/libswscale ) -+ INCLUDE_DIRECTORIES(SYSTEM ${FFMPEG_LIBSWSCALE_INCLUDE_DIRS} ${FFMPEG_LIBSWSCALE_INCLUDE_DIRS}/libswscale) - - ADD_DEFINITIONS(-DUSE_SWSCALE) - -@@ -12,14 +12,14 @@ IF(FFMPEG_LIBSWSCALE_FOUND) - ENDIF() - - IF(FFMPEG_LIBSWRESAMPLE_FOUND) -- INCLUDE_DIRECTORIES( ${FFMPEG_LIBSWRESAMPLE_INCLUDE_DIRS} ${FFMPEG_LIBSWRESAMPLE_INCLUDE_DIRS}/libswresample ) -+ INCLUDE_DIRECTORIES(SYSTEM ${FFMPEG_LIBSWRESAMPLE_INCLUDE_DIRS} ${FFMPEG_LIBSWRESAMPLE_INCLUDE_DIRS}/libswresample) - - ADD_DEFINITIONS(-DUSE_SWRESAMPLE) - - SET(FFMPEG_LIBRARIES ${FFMPEG_LIBRARIES} ${FFMPEG_LIBSWRESAMPLE_LIBRARIES}) - ENDIF() - IF(FFMPEG_LIBAVRESAMPLE_FOUND) -- INCLUDE_DIRECTORIES( ${FFMPEG_LIBAVRESAMPLE_INCLUDE_DIRS} ${FFMPEG_LIBAVRESAMPLE_INCLUDE_DIRS}/libavresample ) -+ INCLUDE_DIRECTORIES(SYSTEM ${FFMPEG_LIBAVRESAMPLE_INCLUDE_DIRS} ${FFMPEG_LIBAVRESAMPLE_INCLUDE_DIRS}/libavresample) - - ADD_DEFINITIONS(-DUSE_AVRESAMPLE) - diff --git a/graphics/osg34/files/patch-src_osgPlugins_gdal_CMakeLists.txt b/graphics/osg34/files/patch-src_osgPlugins_gdal_CMakeLists.txt deleted file mode 100644 index acdc497a60b1..000000000000 --- a/graphics/osg34/files/patch-src_osgPlugins_gdal_CMakeLists.txt +++ /dev/null @@ -1,8 +0,0 @@ ---- ./src/osgPlugins/gdal/CMakeLists.txt.orig 2015-07-02 11:58:49 UTC -+++ ./src/osgPlugins/gdal/CMakeLists.txt -@@ -1,4 +1,4 @@ --INCLUDE_DIRECTORIES( ${GDAL_INCLUDE_DIR} ) -+INCLUDE_DIRECTORIES(SYSTEM ${GDAL_INCLUDE_DIR}) - - SET(TARGET_SRC - ReaderWriterGDAL.cpp diff --git a/graphics/osg34/files/patch-src_osgPlugins_nvtt_CMakeLists.txt b/graphics/osg34/files/patch-src_osgPlugins_nvtt_CMakeLists.txt deleted file mode 100644 index 40902a58bb5c..000000000000 --- a/graphics/osg34/files/patch-src_osgPlugins_nvtt_CMakeLists.txt +++ /dev/null @@ -1,8 +0,0 @@ ---- src/osgPlugins/nvtt/CMakeLists.txt.orig 2011-04-19 11:40:22 UTC -+++ src/osgPlugins/nvtt/CMakeLists.txt -@@ -1,4 +1,4 @@ --INCLUDE_DIRECTORIES( ${NVTT_INCLUDE_DIR} ) -+INCLUDE_DIRECTORIES(SYSTEM ${NVTT_INCLUDE_DIR}) - - - SET(TARGET_SRC diff --git a/graphics/osg34/files/patch-src_osgPlugins_ogr_CMakeLists.txt b/graphics/osg34/files/patch-src_osgPlugins_ogr_CMakeLists.txt deleted file mode 100644 index 73fd9c93c2ec..000000000000 --- a/graphics/osg34/files/patch-src_osgPlugins_ogr_CMakeLists.txt +++ /dev/null @@ -1,8 +0,0 @@ ---- ./src/osgPlugins/ogr/CMakeLists.txt.orig 2011-04-19 11:40:22 UTC -+++ ./src/osgPlugins/ogr/CMakeLists.txt -@@ -1,4 +1,4 @@ --INCLUDE_DIRECTORIES( ${GDAL_INCLUDE_DIR} ) -+INCLUDE_DIRECTORIES(SYSTEM ${GDAL_INCLUDE_DIR}) - - SET(TARGET_SRC ReaderWriterOGR.cpp) - diff --git a/graphics/osg34/pkg-descr b/graphics/osg34/pkg-descr deleted file mode 100644 index 94e5201cdc8e..000000000000 --- a/graphics/osg34/pkg-descr +++ /dev/null @@ -1,4 +0,0 @@ -The Open Scene Graph is a cross-platform C++ OpenGL library for the -real-time, photo-realistic rendering of large 3D models. Uses range from -visual simulation, to scientific modelling, to games, to whatever you can -think of! diff --git a/graphics/osg34/pkg-plist b/graphics/osg34/pkg-plist deleted file mode 100644 index 8b0e12a6fefd..000000000000 --- a/graphics/osg34/pkg-plist +++ /dev/null @@ -1,792 +0,0 @@ -bin/osgarchive -bin/osgconv -bin/osgfilecache -bin/osgversion -bin/osgviewer -bin/present3D -include/OpenThreads/Atomic -include/OpenThreads/Barrier -include/OpenThreads/Block -include/OpenThreads/Condition -include/OpenThreads/Config -include/OpenThreads/Exports -include/OpenThreads/Mutex -include/OpenThreads/ReadWriteMutex -include/OpenThreads/ReentrantMutex -include/OpenThreads/ScopedLock -include/OpenThreads/Thread -include/OpenThreads/Version -include/osg/AlphaFunc -include/osg/AnimationPath -include/osg/ApplicationUsage -include/osg/ArgumentParser -include/osg/Array -include/osg/ArrayDispatchers -include/osg/AudioStream -include/osg/AutoTransform -include/osg/Billboard -include/osg/BlendColor -include/osg/BlendEquation -include/osg/BlendEquationi -include/osg/BlendFunc -include/osg/BlendFunci -include/osg/BoundingBox -include/osg/BoundingSphere -include/osg/BoundsChecking -include/osg/BufferIndexBinding -include/osg/BufferObject -include/osg/BufferTemplate -include/osg/Callback -include/osg/Camera -include/osg/CameraView -include/osg/Capability -include/osg/ClampColor -include/osg/ClearNode -include/osg/ClipControl -include/osg/ClipNode -include/osg/ClipPlane -include/osg/ClusterCullingCallback -include/osg/CollectOccludersVisitor -include/osg/ColorMask -include/osg/ColorMaski -include/osg/ColorMatrix -include/osg/ComputeBoundsVisitor -include/osg/Config -include/osg/ConvexPlanarOccluder -include/osg/ConvexPlanarPolygon -include/osg/CoordinateSystemNode -include/osg/CopyOp -include/osg/CullFace -include/osg/CullSettings -include/osg/CullStack -include/osg/CullingSet -include/osg/DeleteHandler -include/osg/Depth -include/osg/DisplaySettings -include/osg/DrawPixels -include/osg/Drawable -include/osg/Endian -include/osg/Export -include/osg/Fog -include/osg/FragmentProgram -include/osg/FrameBufferObject -include/osg/FrameStamp -include/osg/FrontFace -include/osg/GL -include/osg/GL2Extensions -include/osg/GLBeginEndAdapter -include/osg/GLDefines -include/osg/GLExtensions -include/osg/GLObjects -include/osg/GLU -include/osg/Geode -include/osg/Geometry -include/osg/GraphicsContext -include/osg/GraphicsCostEstimator -include/osg/GraphicsThread -include/osg/Group -include/osg/Hint -include/osg/Image -include/osg/ImageSequence -include/osg/ImageStream -include/osg/ImageUtils -include/osg/KdTree -include/osg/LOD -include/osg/Light -include/osg/LightModel -include/osg/LightSource -include/osg/LineSegment -include/osg/LineStipple -include/osg/LineWidth -include/osg/LogicOp -include/osg/Material -include/osg/Math -include/osg/Matrix -include/osg/MatrixTransform -include/osg/Matrixd -include/osg/Matrixf -include/osg/MixinVector -include/osg/Multisample -include/osg/Node -include/osg/NodeCallback -include/osg/NodeTrackerCallback -include/osg/NodeVisitor -include/osg/Notify -include/osg/Object -include/osg/Observer -include/osg/ObserverNodePath -include/osg/OccluderNode -include/osg/OcclusionQueryNode -include/osg/OperationThread -include/osg/PagedLOD -include/osg/PatchParameter -include/osg/Plane -include/osg/Point -include/osg/PointSprite -include/osg/PolygonMode -include/osg/PolygonOffset -include/osg/PolygonStipple -include/osg/Polytope -include/osg/PositionAttitudeTransform -include/osg/PrimitiveRestartIndex -include/osg/PrimitiveSet -include/osg/Program -include/osg/Projection -include/osg/ProxyNode -include/osg/Quat -include/osg/Referenced -include/osg/RenderInfo -include/osg/SampleMaski -include/osg/Scissor -include/osg/ScriptEngine -include/osg/Sequence -include/osg/ShadeModel -include/osg/Shader -include/osg/ShaderAttribute -include/osg/ShaderComposer -include/osg/ShadowVolumeOccluder -include/osg/Shape -include/osg/ShapeDrawable -include/osg/State -include/osg/StateAttribute -include/osg/StateAttributeCallback -include/osg/StateSet -include/osg/Stats -include/osg/Stencil -include/osg/StencilTwoSided -include/osg/Switch -include/osg/TemplatePrimitiveFunctor -include/osg/TexEnv -include/osg/TexEnvCombine -include/osg/TexEnvFilter -include/osg/TexGen -include/osg/TexGenNode -include/osg/TexMat -include/osg/Texture -include/osg/Texture1D -include/osg/Texture2D -include/osg/Texture2DArray -include/osg/Texture2DMultisample -include/osg/Texture3D -include/osg/TextureBuffer -include/osg/TextureCubeMap -include/osg/TextureRectangle -include/osg/Timer -include/osg/TransferFunction -include/osg/Transform -include/osg/TriangleFunctor -include/osg/TriangleIndexFunctor -include/osg/TriangleLinePointIndexFunctor -include/osg/Types -include/osg/Uniform -include/osg/UserDataContainer -include/osg/ValueObject -include/osg/Vec2 -include/osg/Vec2b -include/osg/Vec2d -include/osg/Vec2f -include/osg/Vec2i -include/osg/Vec2s -include/osg/Vec2ub -include/osg/Vec2ui -include/osg/Vec2us -include/osg/Vec3 -include/osg/Vec3b -include/osg/Vec3d -include/osg/Vec3f -include/osg/Vec3i -include/osg/Vec3s -include/osg/Vec3ub -include/osg/Vec3ui -include/osg/Vec3us -include/osg/Vec4 -include/osg/Vec4b -include/osg/Vec4d -include/osg/Vec4f -include/osg/Vec4i -include/osg/Vec4s -include/osg/Vec4ub -include/osg/Vec4ui -include/osg/Vec4us -include/osg/Version -include/osg/VertexAttribDivisor -include/osg/VertexProgram -include/osg/View -include/osg/Viewport -include/osg/buffered_value -include/osg/fast_back_stack -include/osg/io_utils -include/osg/observer_ptr -include/osg/ref_ptr -include/osgAnimation/Action -include/osgAnimation/ActionAnimation -include/osgAnimation/ActionBlendIn -include/osgAnimation/ActionBlendOut -include/osgAnimation/ActionCallback -include/osgAnimation/ActionStripAnimation -include/osgAnimation/ActionVisitor -include/osgAnimation/Animation -include/osgAnimation/AnimationManagerBase -include/osgAnimation/AnimationUpdateCallback -include/osgAnimation/BasicAnimationManager -include/osgAnimation/Bone -include/osgAnimation/BoneMapVisitor -include/osgAnimation/Channel -include/osgAnimation/CubicBezier -include/osgAnimation/EaseMotion -include/osgAnimation/Export -include/osgAnimation/FrameAction -include/osgAnimation/Interpolator -include/osgAnimation/Keyframe -include/osgAnimation/LinkVisitor -include/osgAnimation/MorphGeometry -include/osgAnimation/RigGeometry -include/osgAnimation/RigTransform -include/osgAnimation/RigTransformHardware -include/osgAnimation/RigTransformSoftware -include/osgAnimation/Sampler -include/osgAnimation/Skeleton -include/osgAnimation/StackedMatrixElement -include/osgAnimation/StackedQuaternionElement -include/osgAnimation/StackedRotateAxisElement -include/osgAnimation/StackedScaleElement -include/osgAnimation/StackedTransform -include/osgAnimation/StackedTransformElement -include/osgAnimation/StackedTranslateElement -include/osgAnimation/StatsHandler -include/osgAnimation/StatsVisitor -include/osgAnimation/Target -include/osgAnimation/Timeline -include/osgAnimation/TimelineAnimationManager -include/osgAnimation/UpdateBone -include/osgAnimation/UpdateMaterial -include/osgAnimation/UpdateMatrixTransform -include/osgAnimation/UpdateUniform -include/osgAnimation/Vec3Packed -include/osgAnimation/VertexInfluence -include/osgDB/Archive -include/osgDB/AuthenticationMap -include/osgDB/Callbacks -include/osgDB/ClassInterface -include/osgDB/ConvertBase64 -include/osgDB/ConvertUTF -include/osgDB/DataTypes -include/osgDB/DatabasePager -include/osgDB/DatabaseRevisions -include/osgDB/DotOsgWrapper -include/osgDB/DynamicLibrary -include/osgDB/Export -include/osgDB/ExternalFileWriter -include/osgDB/FileCache -include/osgDB/FileNameUtils -include/osgDB/FileUtils -include/osgDB/ImageOptions -include/osgDB/ImagePager -include/osgDB/ImageProcessor -include/osgDB/Input -include/osgDB/InputStream -include/osgDB/ObjectCache -include/osgDB/ObjectWrapper -include/osgDB/Options -include/osgDB/Output -include/osgDB/OutputStream -include/osgDB/ParameterOutput -include/osgDB/PluginQuery -include/osgDB/ReadFile -include/osgDB/ReaderWriter -include/osgDB/Registry -include/osgDB/Serializer -include/osgDB/SharedStateManager -include/osgDB/StreamOperator -include/osgDB/Version -include/osgDB/WriteFile -include/osgDB/XmlParser -include/osgDB/fstream -include/osgFX/AnisotropicLighting -include/osgFX/BumpMapping -include/osgFX/Cartoon -include/osgFX/Effect -include/osgFX/Export -include/osgFX/MultiTextureControl -include/osgFX/Outline -include/osgFX/Registry -include/osgFX/Scribe -include/osgFX/SpecularHighlights -include/osgFX/Technique -include/osgFX/Validator -include/osgFX/Version -include/osgGA/AnimationPathManipulator -include/osgGA/CameraManipulator -include/osgGA/CameraViewSwitchManipulator -include/osgGA/Device -include/osgGA/DriveManipulator -include/osgGA/Event -include/osgGA/EventHandler -include/osgGA/EventQueue -include/osgGA/EventVisitor -include/osgGA/Export -include/osgGA/FirstPersonManipulator -include/osgGA/FlightManipulator -include/osgGA/GUIActionAdapter -include/osgGA/GUIEventAdapter -include/osgGA/GUIEventHandler -include/osgGA/KeySwitchMatrixManipulator -include/osgGA/MultiTouchTrackballManipulator -include/osgGA/NodeTrackerManipulator -include/osgGA/OrbitManipulator -include/osgGA/SphericalManipulator -include/osgGA/StandardManipulator -include/osgGA/StateSetManipulator -include/osgGA/TerrainManipulator -include/osgGA/TrackballManipulator -include/osgGA/UFOManipulator -include/osgGA/Version -include/osgGA/Widget -include/osgManipulator/AntiSquish -include/osgManipulator/Command -include/osgManipulator/CommandManager -include/osgManipulator/Constraint -include/osgManipulator/Dragger -include/osgManipulator/Export -include/osgManipulator/Projector -include/osgManipulator/RotateCylinderDragger -include/osgManipulator/RotateSphereDragger -include/osgManipulator/Scale1DDragger -include/osgManipulator/Scale2DDragger -include/osgManipulator/ScaleAxisDragger -include/osgManipulator/Selection -include/osgManipulator/TabBoxDragger -include/osgManipulator/TabBoxTrackballDragger -include/osgManipulator/TabPlaneDragger -include/osgManipulator/TabPlaneTrackballDragger -include/osgManipulator/TrackballDragger -include/osgManipulator/Translate1DDragger -include/osgManipulator/Translate2DDragger -include/osgManipulator/TranslateAxisDragger -include/osgManipulator/TranslatePlaneDragger -include/osgManipulator/Version -include/osgParticle/AccelOperator -include/osgParticle/AngularAccelOperator -include/osgParticle/AngularDampingOperator -include/osgParticle/BounceOperator -include/osgParticle/BoxPlacer -include/osgParticle/CenteredPlacer -include/osgParticle/CompositePlacer -include/osgParticle/ConnectedParticleSystem -include/osgParticle/ConstantRateCounter -include/osgParticle/Counter -include/osgParticle/DampingOperator -include/osgParticle/DomainOperator -include/osgParticle/Emitter -include/osgParticle/ExplosionDebrisEffect -include/osgParticle/ExplosionEffect -include/osgParticle/ExplosionOperator -include/osgParticle/Export -include/osgParticle/FireEffect -include/osgParticle/FluidFrictionOperator -include/osgParticle/FluidProgram -include/osgParticle/ForceOperator -include/osgParticle/Interpolator -include/osgParticle/LinearInterpolator -include/osgParticle/ModularEmitter -include/osgParticle/ModularProgram -include/osgParticle/MultiSegmentPlacer -include/osgParticle/Operator -include/osgParticle/OrbitOperator -include/osgParticle/Particle -include/osgParticle/ParticleEffect -include/osgParticle/ParticleProcessor -include/osgParticle/ParticleSystem -include/osgParticle/ParticleSystemUpdater -include/osgParticle/Placer -include/osgParticle/PointPlacer -include/osgParticle/PrecipitationEffect -include/osgParticle/Program -include/osgParticle/RadialShooter -include/osgParticle/RandomRateCounter -include/osgParticle/SectorPlacer -include/osgParticle/SegmentPlacer -include/osgParticle/Shooter -include/osgParticle/SinkOperator -include/osgParticle/SmokeEffect -include/osgParticle/SmokeTrailEffect -include/osgParticle/VariableRateCounter -include/osgParticle/Version -include/osgParticle/range -include/osgPresentation/AnimationMaterial -include/osgPresentation/CompileSlideCallback -include/osgPresentation/Cursor -include/osgPresentation/Export -include/osgPresentation/KeyEventHandler -include/osgPresentation/PickEventHandler -include/osgPresentation/PropertyManager -include/osgPresentation/SlideEventHandler -include/osgPresentation/SlideShowConstructor -include/osgPresentation/Timeout -%%QT%%include/osgQt/Export -%%QT%%include/osgQt/GraphicsWindowQt -%%QT%%include/osgQt/QFontImplementation -%%QT%%include/osgQt/QGraphicsViewAdapter -%%QT%%include/osgQt/QWebViewImage -%%QT%%include/osgQt/QWidgetImage -%%QT%%include/osgQt/Version -include/osgShadow/ConvexPolyhedron -include/osgShadow/DebugShadowMap -include/osgShadow/Export -include/osgShadow/LightSpacePerspectiveShadowMap -include/osgShadow/MinimalCullBoundsShadowMap -include/osgShadow/MinimalDrawBoundsShadowMap -include/osgShadow/MinimalShadowMap -include/osgShadow/OccluderGeometry -include/osgShadow/ParallelSplitShadowMap -include/osgShadow/ProjectionShadowMap -include/osgShadow/ShadowMap -include/osgShadow/ShadowSettings -include/osgShadow/ShadowTechnique -include/osgShadow/ShadowTexture -include/osgShadow/ShadowVolume -include/osgShadow/ShadowedScene -include/osgShadow/SoftShadowMap -include/osgShadow/StandardShadowMap -include/osgShadow/Version -include/osgShadow/ViewDependentShadowMap -include/osgShadow/ViewDependentShadowTechnique -include/osgSim/BlinkSequence -include/osgSim/ColorRange -include/osgSim/DOFTransform -include/osgSim/ElevationSlice -include/osgSim/Export -include/osgSim/GeographicLocation -include/osgSim/HeightAboveTerrain -include/osgSim/Impostor -include/osgSim/ImpostorSprite -include/osgSim/InsertImpostorsVisitor -include/osgSim/LightPoint -include/osgSim/LightPointNode -include/osgSim/LightPointSystem -include/osgSim/LineOfSight -include/osgSim/MultiSwitch -include/osgSim/ObjectRecordData -include/osgSim/OverlayNode -include/osgSim/ScalarBar -include/osgSim/ScalarsToColors -include/osgSim/Sector -include/osgSim/ShapeAttribute -include/osgSim/SphereSegment -include/osgSim/Version -include/osgSim/VisibilityGroup -include/osgTerrain/DisplacementMappingTechnique -include/osgTerrain/Export -include/osgTerrain/GeometryPool -include/osgTerrain/GeometryTechnique -include/osgTerrain/Layer -include/osgTerrain/Locator -include/osgTerrain/Terrain -include/osgTerrain/TerrainTechnique -include/osgTerrain/TerrainTile -include/osgTerrain/ValidDataOperator -include/osgTerrain/Version -include/osgText/Export -include/osgText/FadeText -include/osgText/Font -include/osgText/Font3D -include/osgText/Glyph -include/osgText/KerningType -include/osgText/String -include/osgText/Style -include/osgText/Text -include/osgText/Text3D -include/osgText/TextBase -include/osgText/Version -include/osgUI/AlignmentSettings -include/osgUI/Callbacks -include/osgUI/ColorPalette -include/osgUI/ComboBox -include/osgUI/Dialog -include/osgUI/Export -include/osgUI/FrameSettings -include/osgUI/Label -include/osgUI/LineEdit -include/osgUI/Popup -include/osgUI/PushButton -include/osgUI/Style -include/osgUI/TabWidget -include/osgUI/TextSettings -include/osgUI/Validator -include/osgUI/Widget -include/osgUtil/ConvertVec -include/osgUtil/CubeMapGenerator -include/osgUtil/CullVisitor -include/osgUtil/DelaunayTriangulator -include/osgUtil/DisplayRequirementsVisitor -include/osgUtil/DrawElementTypeSimplifier -include/osgUtil/EdgeCollector -include/osgUtil/Export -include/osgUtil/GLObjectsVisitor -include/osgUtil/HalfWayMapGenerator -include/osgUtil/HighlightMapGenerator -include/osgUtil/IncrementalCompileOperation -include/osgUtil/IntersectVisitor -include/osgUtil/IntersectionVisitor -include/osgUtil/LineSegmentIntersector -include/osgUtil/MeshOptimizers -include/osgUtil/OperationArrayFunctor -include/osgUtil/Optimizer -include/osgUtil/PerlinNoise -include/osgUtil/PlaneIntersector -include/osgUtil/PolytopeIntersector -include/osgUtil/PositionalStateContainer -include/osgUtil/PrintVisitor -include/osgUtil/RayIntersector -include/osgUtil/ReflectionMapGenerator -include/osgUtil/RenderBin -include/osgUtil/RenderLeaf -include/osgUtil/RenderStage -include/osgUtil/ReversePrimitiveFunctor -include/osgUtil/SceneGraphBuilder -include/osgUtil/SceneView -include/osgUtil/ShaderGen -include/osgUtil/Simplifier -include/osgUtil/SmoothingVisitor -include/osgUtil/StateGraph -include/osgUtil/Statistics -include/osgUtil/TangentSpaceGenerator -include/osgUtil/Tessellator -include/osgUtil/TransformAttributeFunctor -include/osgUtil/TransformCallback -include/osgUtil/TriStripVisitor -include/osgUtil/UpdateVisitor -include/osgUtil/Version -include/osgViewer/CompositeViewer -include/osgViewer/Export -include/osgViewer/GraphicsWindow -include/osgViewer/Keystone -include/osgViewer/Renderer -include/osgViewer/Scene -include/osgViewer/Version -include/osgViewer/View -include/osgViewer/Viewer -include/osgViewer/ViewerBase -include/osgViewer/ViewerEventHandlers -include/osgViewer/api/X11/GraphicsHandleX11 -include/osgViewer/api/X11/GraphicsWindowX11 -include/osgViewer/api/X11/PixelBufferX11 -include/osgViewer/config/AcrossAllScreens -include/osgViewer/config/PanoramicSphericalDisplay -include/osgViewer/config/SingleScreen -include/osgViewer/config/SingleWindow -include/osgViewer/config/SphericalDisplay -include/osgViewer/config/WoWVxDisplay -include/osgVolume/Export -include/osgVolume/FixedFunctionTechnique -include/osgVolume/Layer -include/osgVolume/Locator -include/osgVolume/MultipassTechnique -include/osgVolume/Property -include/osgVolume/RayTracedTechnique -include/osgVolume/Version -include/osgVolume/Volume -include/osgVolume/VolumeScene -include/osgVolume/VolumeSettings -include/osgVolume/VolumeTechnique -include/osgVolume/VolumeTile -include/osgWidget/Box -include/osgWidget/Browser -include/osgWidget/Canvas -include/osgWidget/EventInterface -include/osgWidget/Export -include/osgWidget/Frame -include/osgWidget/Input -include/osgWidget/Label -include/osgWidget/Lua -include/osgWidget/PdfReader -include/osgWidget/Python -include/osgWidget/ScriptEngine -include/osgWidget/StyleInterface -include/osgWidget/StyleManager -include/osgWidget/Table -include/osgWidget/Types -include/osgWidget/UIObjectParent -include/osgWidget/Util -include/osgWidget/Version -include/osgWidget/ViewerEventHandlers -include/osgWidget/VncClient -include/osgWidget/Widget -include/osgWidget/Window -include/osgWidget/WindowManager -lib/libOpenThreads.so -lib/libOpenThreads.so.%%OPENTHREADS_VERSION%% -lib/libOpenThreads.so.%%OPENTHREADS_SHLIBVER%% -lib/libosg.so -lib/libosg.so.%%OSG_VERSION%% -lib/libosg.so.%%OSG_SHLIBVER%% -lib/libosgAnimation.so -lib/libosgAnimation.so.%%OSG_VERSION%% -lib/libosgAnimation.so.%%OSG_SHLIBVER%% -lib/libosgDB.so -lib/libosgDB.so.%%OSG_VERSION%% -lib/libosgDB.so.%%OSG_SHLIBVER%% -lib/libosgFX.so -lib/libosgFX.so.%%OSG_VERSION%% -lib/libosgFX.so.%%OSG_SHLIBVER%% -lib/libosgGA.so -lib/libosgGA.so.%%OSG_VERSION%% -lib/libosgGA.so.%%OSG_SHLIBVER%% -lib/libosgManipulator.so -lib/libosgManipulator.so.%%OSG_VERSION%% -lib/libosgManipulator.so.%%OSG_SHLIBVER%% -lib/libosgParticle.so -lib/libosgParticle.so.%%OSG_VERSION%% -lib/libosgParticle.so.%%OSG_SHLIBVER%% -lib/libosgPresentation.so -lib/libosgPresentation.so.%%OSG_VERSION%% -lib/libosgPresentation.so.%%OSG_SHLIBVER%% -%%QT%%lib/libosgQt.so -%%QT%%lib/libosgQt.so.%%OSG_VERSION%% -%%QT%%lib/libosgQt.so.%%OSG_SHLIBVER%% -lib/libosgShadow.so -lib/libosgShadow.so.%%OSG_VERSION%% -lib/libosgShadow.so.%%OSG_SHLIBVER%% -lib/libosgSim.so -lib/libosgSim.so.%%OSG_VERSION%% -lib/libosgSim.so.%%OSG_SHLIBVER%% -lib/libosgTerrain.so -lib/libosgTerrain.so.%%OSG_VERSION%% -lib/libosgTerrain.so.%%OSG_SHLIBVER%% -lib/libosgText.so -lib/libosgText.so.%%OSG_VERSION%% -lib/libosgText.so.%%OSG_SHLIBVER%% -lib/libosgUI.so -lib/libosgUI.so.%%OSG_VERSION%% -lib/libosgUI.so.%%OSG_SHLIBVER%% -lib/libosgUtil.so -lib/libosgUtil.so.%%OSG_VERSION%% -lib/libosgUtil.so.%%OSG_SHLIBVER%% -lib/libosgViewer.so -lib/libosgViewer.so.%%OSG_VERSION%% -lib/libosgViewer.so.%%OSG_SHLIBVER%% -lib/libosgVolume.so -lib/libosgVolume.so.%%OSG_VERSION%% -lib/libosgVolume.so.%%OSG_SHLIBVER%% -lib/libosgWidget.so -lib/libosgWidget.so.%%OSG_VERSION%% -lib/libosgWidget.so.%%OSG_SHLIBVER%% -lib/osgPlugins-%%OSG_VERSION%%/osgdb_3dc.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_3ds.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_ac.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_bmp.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_bsp.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_bvh.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_cfg.so -%%CURL%%lib/osgPlugins-%%OSG_VERSION%%/osgdb_curl.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_dds.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_deprecated_osg.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_deprecated_osganimation.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_deprecated_osgfx.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_deprecated_osgparticle.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_deprecated_osgshadow.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_deprecated_osgsim.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_deprecated_osgterrain.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_deprecated_osgtext.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_deprecated_osgviewer.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_deprecated_osgvolume.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_deprecated_osgwidget.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_dot.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_dw.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_dxf.so -%%OPENEXR%%lib/osgPlugins-%%OSG_VERSION%%/osgdb_exr.so -%%FFMPEG%%lib/osgPlugins-%%OSG_VERSION%%/osgdb_ffmpeg.so -%%FREETYPE%%lib/osgPlugins-%%OSG_VERSION%%/osgdb_freetype.so -%%GDAL%%lib/osgPlugins-%%OSG_VERSION%%/osgdb_gdal.so -%%GIF%%lib/osgPlugins-%%OSG_VERSION%%/osgdb_gif.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_gles.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_glsl.so -%%GSTREAMER%%lib/osgPlugins-%%OSG_VERSION%%/osgdb_gstreamer.so -%%GTA%%lib/osgPlugins-%%OSG_VERSION%%/osgdb_gta.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_gz.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_hdr.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_ive.so -%%JASPER%%lib/osgPlugins-%%OSG_VERSION%%/osgdb_jp2.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_jpeg.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_ktx.so -%%LIBLAS%%lib/osgPlugins-%%OSG_VERSION%%/osgdb_las.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_logo.so -%%LUA%%lib/osgPlugins-%%OSG_VERSION%%/osgdb_lua.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_lwo.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_lws.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_md2.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_mdl.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_normals.so -%%NVTT%%lib/osgPlugins-%%OSG_VERSION%%/osgdb_nvtt.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_obj.so -%%GDAL%%lib/osgPlugins-%%OSG_VERSION%%/osgdb_ogr.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_openflight.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_osc.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_osg.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_osga.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_osgjs.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_osgshadow.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_osgterrain.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_osgtgz.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_osgviewer.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_p3d.so -%%PDF%%lib/osgPlugins-%%OSG_VERSION%%/osgdb_pdf.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_pic.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_ply.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_png.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_pnm.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_pov.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_pvr.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_revisions.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_rgb.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_rot.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_scale.so -%%SDL%%lib/osgPlugins-%%OSG_VERSION%%/osgdb_sdl.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_serializers_osg.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_serializers_osganimation.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_serializers_osgfx.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_serializers_osgga.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_serializers_osgmanipulator.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_serializers_osgparticle.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_serializers_osgshadow.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_serializers_osgsim.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_serializers_osgterrain.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_serializers_osgtext.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_serializers_osgui.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_serializers_osgutil.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_serializers_osgviewer.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_serializers_osgvolume.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_shp.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_stl.so -%%SVG%%lib/osgPlugins-%%OSG_VERSION%%/osgdb_svg.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_tf.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_tga.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_tgz.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_tiff.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_trans.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_trk.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_txf.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_txp.so -%%VNC%%lib/osgPlugins-%%OSG_VERSION%%/osgdb_vnc.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_vtf.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_x.so -%%XINE%%lib/osgPlugins-%%OSG_VERSION%%/osgdb_xine.so -lib/osgPlugins-%%OSG_VERSION%%/osgdb_zip.so -libdata/pkgconfig/openscenegraph-osg.pc -libdata/pkgconfig/openscenegraph-osgAnimation.pc -libdata/pkgconfig/openscenegraph-osgDB.pc -libdata/pkgconfig/openscenegraph-osgFX.pc -libdata/pkgconfig/openscenegraph-osgGA.pc -libdata/pkgconfig/openscenegraph-osgManipulator.pc -libdata/pkgconfig/openscenegraph-osgParticle.pc -%%QT%%libdata/pkgconfig/openscenegraph-osgQt.pc -libdata/pkgconfig/openscenegraph-osgShadow.pc -libdata/pkgconfig/openscenegraph-osgSim.pc -libdata/pkgconfig/openscenegraph-osgTerrain.pc -libdata/pkgconfig/openscenegraph-osgText.pc -libdata/pkgconfig/openscenegraph-osgUtil.pc -libdata/pkgconfig/openscenegraph-osgViewer.pc -libdata/pkgconfig/openscenegraph-osgVolume.pc -libdata/pkgconfig/openscenegraph-osgWidget.pc -libdata/pkgconfig/openscenegraph.pc -libdata/pkgconfig/openthreads.pc diff --git a/java/intellij-fsnotifier/Makefile b/java/intellij-fsnotifier/Makefile index f7c6f2e227b0..441f8dbdf053 100644 --- a/java/intellij-fsnotifier/Makefile +++ b/java/intellij-fsnotifier/Makefile @@ -24,4 +24,8 @@ CMAKE_ARGS+= -DVERSION=${PORTVERSION} PLIST_SUB+= PORTVERSION=${PORTVERSION} +.if exists(/usr/include/sys/inotify.h) +EXTRA_PATCHES+= ${PATCHDIR}/extrapatch-cmake_target__definitions.cmake +.endif + .include <bsd.port.mk> diff --git a/java/intellij-fsnotifier/files/extrapatch-cmake_target__definitions.cmake b/java/intellij-fsnotifier/files/extrapatch-cmake_target__definitions.cmake new file mode 100644 index 000000000000..bffb0ce63f8c --- /dev/null +++ b/java/intellij-fsnotifier/files/extrapatch-cmake_target__definitions.cmake @@ -0,0 +1,12 @@ +FreeBSD 15+ has native inotify implementation + +--- cmake/target_definitions.cmake.orig 2023-07-24 21:16:54 UTC ++++ cmake/target_definitions.cmake +@@ -19,7 +19,6 @@ foreach(_lib _type IN ZIP_LISTS LIBS TYPES) + add_library(fsnotifier_staticlib STATIC ${HEADERS} ${SOURCES}) + foreach(_lib _type IN ZIP_LISTS LIBS TYPES) + target_link_libraries(${_lib} PUBLIC +- ${INOTIFY_LIBRARY_DIRS}/${CMAKE_${_type}_LIBRARY_PREFIX}${INOTIFY_LIBRARIES}${CMAKE_${_type}_LIBRARY_SUFFIX} + Threads::Threads) + target_include_directories(${_lib} PUBLIC ${INOTIFY_INCLUDE_DIRS}) + set_target_properties(${_lib} PROPERTIES OUTPUT_NAME fsnotifier) diff --git a/math/labplot/Makefile b/math/labplot/Makefile index 2ccd56f65050..a2ff6b0f5b21 100644 --- a/math/labplot/Makefile +++ b/math/labplot/Makefile @@ -32,6 +32,8 @@ USE_XORG= x11 xcb KDE_INVENT= 110f258e44a45354c5219e497409a22185fa2933 education labplot +CXXFLAGS+= -Wno-error=undef + PLIST_SUB= SHLIB_VER=${PORTVERSION} OPTIONS_DEFINE= CANTOR FITS FFTW3 HDF5 LIBCERF MATLAB NETCDF ORCUS \ diff --git a/multimedia/obs-multi-rtmp/Makefile b/multimedia/obs-multi-rtmp/Makefile index 2a637c3a0e64..2f0afec1072b 100644 --- a/multimedia/obs-multi-rtmp/Makefile +++ b/multimedia/obs-multi-rtmp/Makefile @@ -1,5 +1,5 @@ PORTNAME= obs-multi-rtmp -DISTVERSION= 0.7.2 +DISTVERSION= 0.7.3 CATEGORIES= multimedia MAINTAINER= freebsd@sysctl.cz diff --git a/multimedia/obs-multi-rtmp/distinfo b/multimedia/obs-multi-rtmp/distinfo index 52c5486887f3..130b86f602c8 100644 --- a/multimedia/obs-multi-rtmp/distinfo +++ b/multimedia/obs-multi-rtmp/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1748034914 -SHA256 (sorayuki-obs-multi-rtmp-0.7.2_GH0.tar.gz) = 92808e08082fb67f62f4e22848fbc4e397585d260b80653adffe7334a332d33e -SIZE (sorayuki-obs-multi-rtmp-0.7.2_GH0.tar.gz) = 400586 +TIMESTAMP = 1757566099 +SHA256 (sorayuki-obs-multi-rtmp-0.7.3_GH0.tar.gz) = 6b9102bf2cbc98f2c36bf78cecd64279ca198f05c5f86e1e633011e6d0347f90 +SIZE (sorayuki-obs-multi-rtmp-0.7.3_GH0.tar.gz) = 400844 diff --git a/net/Makefile b/net/Makefile index 54ac15598827..1af132cd7fc2 100644 --- a/net/Makefile +++ b/net/Makefile @@ -210,6 +210,7 @@ SUBDIR += gnu-radius SUBDIR += go-bapu SUBDIR += go-cs + SUBDIR += go-pkgsite SUBDIR += go-tcping SUBDIR += gobgp SUBDIR += gofish diff --git a/net/go-pkgsite/Makefile b/net/go-pkgsite/Makefile new file mode 100644 index 000000000000..b2b61f26b478 --- /dev/null +++ b/net/go-pkgsite/Makefile @@ -0,0 +1,20 @@ +PORTNAME= go-pkgsite +PORTVERSION= ${MODVERSION:S/-/./g:R} +DISTVERSIONPREFIX= v +CATEGORIES= net devel + +MAINTAINER= fuz@FreeBSD.org +COMMENT= Go documentation server +WWW= https://pkg.go.dev/golang.org/x/pkgsite/cmd/pkgsite + +LICENSE= BSD3CLAUSE +LICENSE_FILE= ${WRKSRC}/LICENSE + +USES= go:modules +MODVERSION= 0.0.0-20250911091732-133263251ca1 +GO_MODULE= golang.org/x/pkgsite@v${MODVERSION} + +GO_TARGET= ./cmd/pkgsite +PLIST_FILES= ${GO_TARGET:T:S,^,bin/,} + +.include <bsd.port.mk> diff --git a/net/go-pkgsite/distinfo b/net/go-pkgsite/distinfo new file mode 100644 index 000000000000..2fc39fe9d221 --- /dev/null +++ b/net/go-pkgsite/distinfo @@ -0,0 +1,5 @@ +TIMESTAMP = 1757583687 +SHA256 (go/net_go-pkgsite/go-pkgsite-v0.0.0.20250911091732/v0.0.0-20250911091732-133263251ca1.mod) = 1b88b6c23acd887da7959fd300005054c6b4bfa27a3a2dbe94a3f64b83dbc44a +SIZE (go/net_go-pkgsite/go-pkgsite-v0.0.0.20250911091732/v0.0.0-20250911091732-133263251ca1.mod) = 4186 +SHA256 (go/net_go-pkgsite/go-pkgsite-v0.0.0.20250911091732/v0.0.0-20250911091732-133263251ca1.zip) = 03656cb8192c9f2737236b341eba49e97fdb110616ceced77a814c5829fc8762 +SIZE (go/net_go-pkgsite/go-pkgsite-v0.0.0.20250911091732/v0.0.0-20250911091732-133263251ca1.zip) = 22903231 diff --git a/net/go-pkgsite/pkg-descr b/net/go-pkgsite/pkg-descr new file mode 100644 index 000000000000..cb6b538f198d --- /dev/null +++ b/net/go-pkgsite/pkg-descr @@ -0,0 +1,9 @@ +The pkgsite program extracts and generates documentation for Go projects. + +Example usage: + +$ go install golang.org/x/pkgsite/cmd/pkgsite@latest +$ cd myproject +$ pkgsite -open . + +For more information, see the pkgsite documentation. diff --git a/net/traefik/Makefile b/net/traefik/Makefile index 204a9b4226ac..7e49c48a4e40 100644 --- a/net/traefik/Makefile +++ b/net/traefik/Makefile @@ -1,6 +1,5 @@ PORTNAME= traefik -PORTVERSION= 3.4.5 -PORTREVISION= 2 +PORTVERSION= 3.5.2 CATEGORIES= net MASTER_SITES= LOCAL/riggs/${PORTNAME} diff --git a/net/traefik/distinfo b/net/traefik/distinfo index 2aa96457bfc1..eeaa76ed17d2 100644 --- a/net/traefik/distinfo +++ b/net/traefik/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1753538104 -SHA256 (traefik-3.4.5.tar.xz) = 3754c36ac0cb29879407a9b80399a1cb4effd95627ef7fb76f9c7e83007094f5 -SIZE (traefik-3.4.5.tar.xz) = 28590920 +TIMESTAMP = 1757583418 +SHA256 (traefik-3.5.2.tar.xz) = e5752b805931e058842383e8c1c6bc08dbcebefdd1f9c1ab49b0657c5ebbcdf9 +SIZE (traefik-3.5.2.tar.xz) = 25123884 diff --git a/print/Makefile b/print/Makefile index 492b6ba48c6b..13c53b642479 100644 --- a/print/Makefile +++ b/print/Makefile @@ -161,6 +161,7 @@ SUBDIR += plutobook SUBDIR += pnm2ppa SUBDIR += posterazor + SUBDIR += ppa6 SUBDIR += ps2eps SUBDIR += pscal SUBDIR += psdim diff --git a/print/ppa6/Makefile b/print/ppa6/Makefile new file mode 100644 index 000000000000..044ef925dce5 --- /dev/null +++ b/print/ppa6/Makefile @@ -0,0 +1,18 @@ +PORTNAME= ppa6 +DISTVERSION= 0.1.0 +CATEGORIES= print + +MAINTAINER= fuz@FreeBSD.org +COMMENT= PeriPage A6 USB driver + +LICENSE= ISCL + +USES= cargo +USE_GITHUB= yes +GH_ACCOUNT= realchonk + +CARGO_INSTALL_PATH= ppa6-print + +PLIST_FILES= bin/ppa6-print + +.include <bsd.port.mk> diff --git a/print/ppa6/Makefile.crates b/print/ppa6/Makefile.crates new file mode 100644 index 000000000000..6e7fbd76623f --- /dev/null +++ b/print/ppa6/Makefile.crates @@ -0,0 +1,186 @@ +CARGO_CRATES= adler2-2.0.0 \ + aho-corasick-1.1.3 \ + aligned-vec-0.5.0 \ + anstream-0.6.18 \ + anstyle-1.0.10 \ + anstyle-parse-0.2.6 \ + anstyle-query-1.1.2 \ + anstyle-wincon-3.0.7 \ + anyhow-1.0.95 \ + arbitrary-1.4.1 \ + arg_enum_proc_macro-0.3.4 \ + arrayvec-0.7.6 \ + autocfg-1.4.0 \ + av1-grain-0.2.3 \ + avif-serialize-0.8.2 \ + bit_field-0.10.2 \ + bitflags-1.3.2 \ + bitflags-2.8.0 \ + bitstream-io-2.6.0 \ + built-0.7.5 \ + bumpalo-3.17.0 \ + bytemuck-1.21.0 \ + bytemuck_derive-1.8.1 \ + byteorder-1.5.0 \ + byteorder-lite-0.1.0 \ + cc-1.2.12 \ + cfg-expr-0.15.8 \ + cfg-if-1.0.0 \ + clap-4.5.28 \ + clap-num-1.2.0 \ + clap-verbosity-2.1.0 \ + clap_builder-4.5.27 \ + clap_derive-4.5.28 \ + clap_lex-0.7.4 \ + color_quant-1.1.0 \ + colorchoice-1.0.3 \ + cosmic-text-0.12.1 \ + crc32fast-1.4.2 \ + crossbeam-deque-0.8.6 \ + crossbeam-epoch-0.9.18 \ + crossbeam-utils-0.8.21 \ + crunchy-0.2.3 \ + either-1.13.0 \ + env_filter-0.1.3 \ + env_logger-0.11.6 \ + equivalent-1.0.1 \ + exr-1.73.0 \ + fdeflate-0.3.7 \ + flate2-1.0.35 \ + font-types-0.7.3 \ + fontconfig-parser-0.5.7 \ + fontdb-0.16.2 \ + getrandom-0.2.15 \ + gif-0.13.1 \ + half-2.4.1 \ + hashbrown-0.15.2 \ + heck-0.5.0 \ + humantime-2.1.0 \ + image-0.25.5 \ + image-webp-0.2.1 \ + imgref-1.11.0 \ + indexmap-2.7.1 \ + interpolate_name-0.2.4 \ + is-docker-0.2.0 \ + is-wsl-0.4.0 \ + is_terminal_polyfill-1.70.1 \ + itertools-0.12.1 \ + jobserver-0.1.32 \ + jpeg-decoder-0.3.1 \ + lebe-0.5.2 \ + libc-0.2.169 \ + libfuzzer-sys-0.4.9 \ + libm-0.2.11 \ + libusb1-sys-0.7.0 \ + log-0.4.25 \ + loop9-0.1.5 \ + maybe-rayon-0.1.1 \ + memchr-2.7.4 \ + memmap2-0.9.5 \ + minimal-lexical-0.2.1 \ + miniz_oxide-0.8.3 \ + new_debug_unreachable-1.0.6 \ + nom-7.1.3 \ + noop_proc_macro-0.3.0 \ + num-bigint-0.4.6 \ + num-derive-0.4.2 \ + num-integer-0.1.46 \ + num-rational-0.4.2 \ + num-traits-0.2.19 \ + once_cell-1.20.3 \ + open-5.3.2 \ + paste-1.0.15 \ + pathdiff-0.2.3 \ + pkg-config-0.3.31 \ + png-0.17.16 \ + ppv-lite86-0.2.20 \ + proc-macro2-1.0.93 \ + profiling-1.0.16 \ + profiling-procmacros-1.0.16 \ + qoi-0.4.1 \ + quick-error-2.0.1 \ + quote-1.0.38 \ + rand-0.8.5 \ + rand_chacha-0.3.1 \ + rand_core-0.6.4 \ + rangemap-1.5.1 \ + rav1e-0.7.1 \ + ravif-0.11.11 \ + rayon-1.10.0 \ + rayon-core-1.12.1 \ + read-fonts-0.22.7 \ + regex-1.11.1 \ + regex-automata-0.4.9 \ + regex-syntax-0.8.5 \ + rgb-0.8.50 \ + roxmltree-0.20.0 \ + rusb-0.9.4 \ + rustc-hash-1.1.0 \ + rustversion-1.0.19 \ + rustybuzz-0.14.1 \ + self_cell-1.1.0 \ + serde-1.0.217 \ + serde_derive-1.0.217 \ + serde_spanned-0.6.8 \ + shlex-1.3.0 \ + simd-adler32-0.3.7 \ + simd_helpers-0.1.0 \ + skrifa-0.22.3 \ + slotmap-1.0.7 \ + smallvec-1.13.2 \ + strsim-0.11.1 \ + swash-0.1.19 \ + syn-2.0.98 \ + sys-locale-0.3.2 \ + system-deps-6.2.2 \ + target-lexicon-0.12.16 \ + thiserror-1.0.69 \ + thiserror-2.0.11 \ + thiserror-impl-1.0.69 \ + thiserror-impl-2.0.11 \ + tiff-0.9.1 \ + tinyvec-1.8.1 \ + tinyvec_macros-0.1.1 \ + toml-0.8.20 \ + toml_datetime-0.6.8 \ + toml_edit-0.22.23 \ + ttf-parser-0.20.0 \ + ttf-parser-0.21.1 \ + unicode-bidi-0.3.18 \ + unicode-bidi-mirroring-0.2.0 \ + unicode-ccc-0.2.0 \ + unicode-ident-1.0.16 \ + unicode-linebreak-0.1.5 \ + unicode-properties-0.1.3 \ + unicode-script-0.5.7 \ + unicode-segmentation-1.12.0 \ + utf8parse-0.2.2 \ + v_frame-0.3.8 \ + vcpkg-0.2.15 \ + version-compare-0.2.0 \ + version_check-0.9.5 \ + wasi-0.11.0+wasi-snapshot-preview1 \ + wasm-bindgen-0.2.100 \ + wasm-bindgen-backend-0.2.100 \ + wasm-bindgen-macro-0.2.100 \ + wasm-bindgen-macro-support-0.2.100 \ + wasm-bindgen-shared-0.2.100 \ + weezl-0.1.8 \ + windows-sys-0.59.0 \ + windows-targets-0.52.6 \ + windows_aarch64_gnullvm-0.52.6 \ + windows_aarch64_msvc-0.52.6 \ + windows_i686_gnu-0.52.6 \ + windows_i686_gnullvm-0.52.6 \ + windows_i686_msvc-0.52.6 \ + windows_x86_64_gnu-0.52.6 \ + windows_x86_64_gnullvm-0.52.6 \ + windows_x86_64_msvc-0.52.6 \ + winnow-0.7.1 \ + yazi-0.1.6 \ + zeno-0.2.3 \ + zerocopy-0.7.35 \ + zerocopy-derive-0.7.35 \ + zune-core-0.4.12 \ + zune-inflate-0.2.54 \ + zune-jpeg-0.4.14 diff --git a/print/ppa6/distinfo b/print/ppa6/distinfo new file mode 100644 index 000000000000..69d7eb5d2fe0 --- /dev/null +++ b/print/ppa6/distinfo @@ -0,0 +1,375 @@ +TIMESTAMP = 1756919732 +SHA256 (rust/crates/adler2-2.0.0.crate) = 512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627 +SIZE (rust/crates/adler2-2.0.0.crate) = 13529 +SHA256 (rust/crates/aho-corasick-1.1.3.crate) = 8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916 +SIZE (rust/crates/aho-corasick-1.1.3.crate) = 183311 +SHA256 (rust/crates/aligned-vec-0.5.0.crate) = 4aa90d7ce82d4be67b64039a3d588d38dbcc6736577de4a847025ce5b0c468d1 +SIZE (rust/crates/aligned-vec-0.5.0.crate) = 8921 +SHA256 (rust/crates/anstream-0.6.18.crate) = 8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b +SIZE (rust/crates/anstream-0.6.18.crate) = 29681 +SHA256 (rust/crates/anstyle-1.0.10.crate) = 55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9 +SIZE (rust/crates/anstyle-1.0.10.crate) = 15725 +SHA256 (rust/crates/anstyle-parse-0.2.6.crate) = 3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9 +SIZE (rust/crates/anstyle-parse-0.2.6.crate) = 22343 +SHA256 (rust/crates/anstyle-query-1.1.2.crate) = 79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c +SIZE (rust/crates/anstyle-query-1.1.2.crate) = 9969 +SHA256 (rust/crates/anstyle-wincon-3.0.7.crate) = ca3534e77181a9cc07539ad51f2141fe32f6c3ffd4df76db8ad92346b003ae4e +SIZE (rust/crates/anstyle-wincon-3.0.7.crate) = 12400 +SHA256 (rust/crates/anyhow-1.0.95.crate) = 34ac096ce696dc2fcabef30516bb13c0a68a11d30131d3df6f04711467681b04 +SIZE (rust/crates/anyhow-1.0.95.crate) = 52155 +SHA256 (rust/crates/arbitrary-1.4.1.crate) = dde20b3d026af13f561bdd0f15edf01fc734f0dafcedbaf42bba506a9517f223 +SIZE (rust/crates/arbitrary-1.4.1.crate) = 36816 +SHA256 (rust/crates/arg_enum_proc_macro-0.3.4.crate) = 0ae92a5119aa49cdbcf6b9f893fe4e1d98b04ccbf82ee0584ad948a44a734dea +SIZE (rust/crates/arg_enum_proc_macro-0.3.4.crate) = 5102 +SHA256 (rust/crates/arrayvec-0.7.6.crate) = 7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50 +SIZE (rust/crates/arrayvec-0.7.6.crate) = 31237 +SHA256 (rust/crates/autocfg-1.4.0.crate) = ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26 +SIZE (rust/crates/autocfg-1.4.0.crate) = 17712 +SHA256 (rust/crates/av1-grain-0.2.3.crate) = 6678909d8c5d46a42abcf571271e15fdbc0a225e3646cf23762cd415046c78bf +SIZE (rust/crates/av1-grain-0.2.3.crate) = 34703 +SHA256 (rust/crates/avif-serialize-0.8.2.crate) = e335041290c43101ca215eed6f43ec437eb5a42125573f600fc3fa42b9bddd62 +SIZE (rust/crates/avif-serialize-0.8.2.crate) = 11985 +SHA256 (rust/crates/bit_field-0.10.2.crate) = dc827186963e592360843fb5ba4b973e145841266c1357f7180c43526f2e5b61 +SIZE (rust/crates/bit_field-0.10.2.crate) = 10568 +SHA256 (rust/crates/bitflags-1.3.2.crate) = bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a +SIZE (rust/crates/bitflags-1.3.2.crate) = 23021 +SHA256 (rust/crates/bitflags-2.8.0.crate) = 8f68f53c83ab957f72c32642f3868eec03eb974d1fb82e453128456482613d36 +SIZE (rust/crates/bitflags-2.8.0.crate) = 47482 +SHA256 (rust/crates/bitstream-io-2.6.0.crate) = 6099cdc01846bc367c4e7dd630dc5966dccf36b652fae7a74e17b640411a91b2 +SIZE (rust/crates/bitstream-io-2.6.0.crate) = 38256 +SHA256 (rust/crates/built-0.7.5.crate) = c360505aed52b7ec96a3636c3f039d99103c37d1d9b4f7a8c743d3ea9ffcd03b +SIZE (rust/crates/built-0.7.5.crate) = 22319 +SHA256 (rust/crates/bumpalo-3.17.0.crate) = 1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf +SIZE (rust/crates/bumpalo-3.17.0.crate) = 91975 +SHA256 (rust/crates/bytemuck-1.21.0.crate) = ef657dfab802224e671f5818e9a4935f9b1957ed18e58292690cc39e7a4092a3 +SIZE (rust/crates/bytemuck-1.21.0.crate) = 51553 +SHA256 (rust/crates/bytemuck_derive-1.8.1.crate) = 3fa76293b4f7bb636ab88fd78228235b5248b4d05cc589aed610f954af5d7c7a +SIZE (rust/crates/bytemuck_derive-1.8.1.crate) = 23100 +SHA256 (rust/crates/byteorder-1.5.0.crate) = 1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b +SIZE (rust/crates/byteorder-1.5.0.crate) = 23288 +SHA256 (rust/crates/byteorder-lite-0.1.0.crate) = 8f1fe948ff07f4bd06c30984e69f5b4899c516a3ef74f34df92a2df2ab535495 +SIZE (rust/crates/byteorder-lite-0.1.0.crate) = 15909 +SHA256 (rust/crates/cc-1.2.12.crate) = 755717a7de9ec452bf7f3f1a3099085deabd7f2962b861dae91ecd7a365903d2 +SIZE (rust/crates/cc-1.2.12.crate) = 102240 +SHA256 (rust/crates/cfg-expr-0.15.8.crate) = d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02 +SIZE (rust/crates/cfg-expr-0.15.8.crate) = 42108 +SHA256 (rust/crates/cfg-if-1.0.0.crate) = baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd +SIZE (rust/crates/cfg-if-1.0.0.crate) = 7934 +SHA256 (rust/crates/clap-4.5.28.crate) = 3e77c3243bd94243c03672cb5154667347c457ca271254724f9f393aee1c05ff +SIZE (rust/crates/clap-4.5.28.crate) = 56073 +SHA256 (rust/crates/clap-num-1.2.0.crate) = 822c4000301ac390e65995c62207501e3ef800a1fc441df913a5e8e4dc374816 +SIZE (rust/crates/clap-num-1.2.0.crate) = 10476 +SHA256 (rust/crates/clap-verbosity-2.1.0.crate) = 3d7bf75a8e0407a558bd7e8e7919baa352e21fb0c1c7702a63c853f2277c4c63 +SIZE (rust/crates/clap-verbosity-2.1.0.crate) = 19214 +SHA256 (rust/crates/clap_builder-4.5.27.crate) = 1b26884eb4b57140e4d2d93652abfa49498b938b3c9179f9fc487b0acc3edad7 +SIZE (rust/crates/clap_builder-4.5.27.crate) = 168024 +SHA256 (rust/crates/clap_derive-4.5.28.crate) = bf4ced95c6f4a675af3da73304b9ac4ed991640c36374e4b46795c49e17cf1ed +SIZE (rust/crates/clap_derive-4.5.28.crate) = 33428 +SHA256 (rust/crates/clap_lex-0.7.4.crate) = f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6 +SIZE (rust/crates/clap_lex-0.7.4.crate) = 12858 +SHA256 (rust/crates/color_quant-1.1.0.crate) = 3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b +SIZE (rust/crates/color_quant-1.1.0.crate) = 6649 +SHA256 (rust/crates/colorchoice-1.0.3.crate) = 5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990 +SIZE (rust/crates/colorchoice-1.0.3.crate) = 7923 +SHA256 (rust/crates/cosmic-text-0.12.1.crate) = 59fd57d82eb4bfe7ffa9b1cec0c05e2fd378155b47f255a67983cb4afe0e80c2 +SIZE (rust/crates/cosmic-text-0.12.1.crate) = 1895451 +SHA256 (rust/crates/crc32fast-1.4.2.crate) = a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3 +SIZE (rust/crates/crc32fast-1.4.2.crate) = 38491 +SHA256 (rust/crates/crossbeam-deque-0.8.6.crate) = 9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51 +SIZE (rust/crates/crossbeam-deque-0.8.6.crate) = 22471 +SHA256 (rust/crates/crossbeam-epoch-0.9.18.crate) = 5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e +SIZE (rust/crates/crossbeam-epoch-0.9.18.crate) = 46875 +SHA256 (rust/crates/crossbeam-utils-0.8.21.crate) = d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28 +SIZE (rust/crates/crossbeam-utils-0.8.21.crate) = 42691 +SHA256 (rust/crates/crunchy-0.2.3.crate) = 43da5946c66ffcc7745f48db692ffbb10a83bfe0afd96235c5c2a4fb23994929 +SIZE (rust/crates/crunchy-0.2.3.crate) = 3775 +SHA256 (rust/crates/either-1.13.0.crate) = 60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0 +SIZE (rust/crates/either-1.13.0.crate) = 19169 +SHA256 (rust/crates/env_filter-0.1.3.crate) = 186e05a59d4c50738528153b83b0b0194d3a29507dfec16eccd4b342903397d0 +SIZE (rust/crates/env_filter-0.1.3.crate) = 15191 +SHA256 (rust/crates/env_logger-0.11.6.crate) = dcaee3d8e3cfc3fd92428d477bc97fc29ec8716d180c0d74c643bb26166660e0 +SIZE (rust/crates/env_logger-0.11.6.crate) = 31105 +SHA256 (rust/crates/equivalent-1.0.1.crate) = 5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5 +SIZE (rust/crates/equivalent-1.0.1.crate) = 6615 +SHA256 (rust/crates/exr-1.73.0.crate) = f83197f59927b46c04a183a619b7c29df34e63e63c7869320862268c0ef687e0 +SIZE (rust/crates/exr-1.73.0.crate) = 244371 +SHA256 (rust/crates/fdeflate-0.3.7.crate) = 1e6853b52649d4ac5c0bd02320cddc5ba956bdb407c4b75a2c6b75bf51500f8c +SIZE (rust/crates/fdeflate-0.3.7.crate) = 27188 +SHA256 (rust/crates/flate2-1.0.35.crate) = c936bfdafb507ebbf50b8074c54fa31c5be9a1e7e5f467dd659697041407d07c +SIZE (rust/crates/flate2-1.0.35.crate) = 109188 +SHA256 (rust/crates/font-types-0.7.3.crate) = b3971f9a5ca983419cdc386941ba3b9e1feba01a0ab888adf78739feb2798492 +SIZE (rust/crates/font-types-0.7.3.crate) = 23131 +SHA256 (rust/crates/fontconfig-parser-0.5.7.crate) = c1fcfcd44ca6e90c921fee9fa665d530b21ef1327a4c1a6c5250ea44b776ada7 +SIZE (rust/crates/fontconfig-parser-0.5.7.crate) = 39564 +SHA256 (rust/crates/fontdb-0.16.2.crate) = b0299020c3ef3f60f526a4f64ab4a3d4ce116b1acbf24cdd22da0068e5d81dc3 +SIZE (rust/crates/fontdb-0.16.2.crate) = 107447 +SHA256 (rust/crates/getrandom-0.2.15.crate) = c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7 +SIZE (rust/crates/getrandom-0.2.15.crate) = 37163 +SHA256 (rust/crates/gif-0.13.1.crate) = 3fb2d69b19215e18bb912fa30f7ce15846e301408695e44e0ef719f1da9e19f2 +SIZE (rust/crates/gif-0.13.1.crate) = 36408 +SHA256 (rust/crates/half-2.4.1.crate) = 6dd08c532ae367adf81c312a4580bc67f1d0fe8bc9c460520283f4c0ff277888 +SIZE (rust/crates/half-2.4.1.crate) = 50892 +SHA256 (rust/crates/hashbrown-0.15.2.crate) = bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289 +SIZE (rust/crates/hashbrown-0.15.2.crate) = 138478 +SHA256 (rust/crates/heck-0.5.0.crate) = 2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea +SIZE (rust/crates/heck-0.5.0.crate) = 11517 +SHA256 (rust/crates/humantime-2.1.0.crate) = 9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4 +SIZE (rust/crates/humantime-2.1.0.crate) = 16749 +SHA256 (rust/crates/image-0.25.5.crate) = cd6f44aed642f18953a158afeb30206f4d50da59fbc66ecb53c66488de73563b +SIZE (rust/crates/image-0.25.5.crate) = 241073 +SHA256 (rust/crates/image-webp-0.2.1.crate) = b77d01e822461baa8409e156015a1d91735549f0f2c17691bd2d996bef238f7f +SIZE (rust/crates/image-webp-0.2.1.crate) = 60662 +SHA256 (rust/crates/imgref-1.11.0.crate) = d0263a3d970d5c054ed9312c0057b4f3bde9c0b33836d3637361d4a9e6e7a408 +SIZE (rust/crates/imgref-1.11.0.crate) = 65943 +SHA256 (rust/crates/indexmap-2.7.1.crate) = 8c9c992b02b5b4c94ea26e32fe5bccb7aa7d9f390ab5c1221ff895bc7ea8b652 +SIZE (rust/crates/indexmap-2.7.1.crate) = 88644 +SHA256 (rust/crates/interpolate_name-0.2.4.crate) = c34819042dc3d3971c46c2190835914dfbe0c3c13f61449b2997f4e9722dfa60 +SIZE (rust/crates/interpolate_name-0.2.4.crate) = 4027 +SHA256 (rust/crates/is-docker-0.2.0.crate) = 928bae27f42bc99b60d9ac7334e3a21d10ad8f1835a4e12ec3ec0464765ed1b3 +SIZE (rust/crates/is-docker-0.2.0.crate) = 2664 +SHA256 (rust/crates/is-wsl-0.4.0.crate) = 173609498df190136aa7dea1a91db051746d339e18476eed5ca40521f02d7aa5 +SIZE (rust/crates/is-wsl-0.4.0.crate) = 3264 +SHA256 (rust/crates/is_terminal_polyfill-1.70.1.crate) = 7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf +SIZE (rust/crates/is_terminal_polyfill-1.70.1.crate) = 7492 +SHA256 (rust/crates/itertools-0.12.1.crate) = ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569 +SIZE (rust/crates/itertools-0.12.1.crate) = 137761 +SHA256 (rust/crates/jobserver-0.1.32.crate) = 48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0 +SIZE (rust/crates/jobserver-0.1.32.crate) = 27549 +SHA256 (rust/crates/jpeg-decoder-0.3.1.crate) = f5d4a7da358eff58addd2877a45865158f0d78c911d43a5784ceb7bbf52833b0 +SIZE (rust/crates/jpeg-decoder-0.3.1.crate) = 744364 +SHA256 (rust/crates/lebe-0.5.2.crate) = 03087c2bad5e1034e8cace5926dec053fb3790248370865f5117a7d0213354c8 +SIZE (rust/crates/lebe-0.5.2.crate) = 8422 +SHA256 (rust/crates/libc-0.2.169.crate) = b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a +SIZE (rust/crates/libc-0.2.169.crate) = 757901 +SHA256 (rust/crates/libfuzzer-sys-0.4.9.crate) = cf78f52d400cf2d84a3a973a78a592b4adc535739e0a5597a0da6f0c357adc75 +SIZE (rust/crates/libfuzzer-sys-0.4.9.crate) = 133299 +SHA256 (rust/crates/libm-0.2.11.crate) = 8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa +SIZE (rust/crates/libm-0.2.11.crate) = 111477 +SHA256 (rust/crates/libusb1-sys-0.7.0.crate) = da050ade7ac4ff1ba5379af847a10a10a8e284181e060105bf8d86960ce9ce0f +SIZE (rust/crates/libusb1-sys-0.7.0.crate) = 296493 +SHA256 (rust/crates/log-0.4.25.crate) = 04cbf5b083de1c7e0222a7a51dbfdba1cbe1c6ab0b15e29fff3f6c077fd9cd9f +SIZE (rust/crates/log-0.4.25.crate) = 44876 +SHA256 (rust/crates/loop9-0.1.5.crate) = 0fae87c125b03c1d2c0150c90365d7d6bcc53fb73a9acaef207d2d065860f062 +SIZE (rust/crates/loop9-0.1.5.crate) = 3406 +SHA256 (rust/crates/maybe-rayon-0.1.1.crate) = 8ea1f30cedd69f0a2954655f7188c6a834246d2bcf1e315e2ac40c4b24dc9519 +SIZE (rust/crates/maybe-rayon-0.1.1.crate) = 2901 +SHA256 (rust/crates/memchr-2.7.4.crate) = 78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3 +SIZE (rust/crates/memchr-2.7.4.crate) = 96670 +SHA256 (rust/crates/memmap2-0.9.5.crate) = fd3f7eed9d3848f8b98834af67102b720745c4ec028fcd0aa0239277e7de374f +SIZE (rust/crates/memmap2-0.9.5.crate) = 33280 +SHA256 (rust/crates/minimal-lexical-0.2.1.crate) = 68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a +SIZE (rust/crates/minimal-lexical-0.2.1.crate) = 94841 +SHA256 (rust/crates/miniz_oxide-0.8.3.crate) = b8402cab7aefae129c6977bb0ff1b8fd9a04eb5b51efc50a70bea51cda0c7924 +SIZE (rust/crates/miniz_oxide-0.8.3.crate) = 61827 +SHA256 (rust/crates/new_debug_unreachable-1.0.6.crate) = 650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086 +SIZE (rust/crates/new_debug_unreachable-1.0.6.crate) = 2582 +SHA256 (rust/crates/nom-7.1.3.crate) = d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a +SIZE (rust/crates/nom-7.1.3.crate) = 117570 +SHA256 (rust/crates/noop_proc_macro-0.3.0.crate) = 0676bb32a98c1a483ce53e500a81ad9c3d5b3f7c920c28c24e9cb0980d0b5bc8 +SIZE (rust/crates/noop_proc_macro-0.3.0.crate) = 2157 +SHA256 (rust/crates/num-bigint-0.4.6.crate) = a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9 +SIZE (rust/crates/num-bigint-0.4.6.crate) = 102801 +SHA256 (rust/crates/num-derive-0.4.2.crate) = ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202 +SIZE (rust/crates/num-derive-0.4.2.crate) = 14709 +SHA256 (rust/crates/num-integer-0.1.46.crate) = 7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f +SIZE (rust/crates/num-integer-0.1.46.crate) = 22331 +SHA256 (rust/crates/num-rational-0.4.2.crate) = f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824 +SIZE (rust/crates/num-rational-0.4.2.crate) = 28159 +SHA256 (rust/crates/num-traits-0.2.19.crate) = 071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841 +SIZE (rust/crates/num-traits-0.2.19.crate) = 51631 +SHA256 (rust/crates/once_cell-1.20.3.crate) = 945462a4b81e43c4e3ba96bd7b49d834c6f61198356aa858733bc4acf3cbe62e +SIZE (rust/crates/once_cell-1.20.3.crate) = 33456 +SHA256 (rust/crates/open-5.3.2.crate) = e2483562e62ea94312f3576a7aca397306df7990b8d89033e18766744377ef95 +SIZE (rust/crates/open-5.3.2.crate) = 26342 +SHA256 (rust/crates/paste-1.0.15.crate) = 57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a +SIZE (rust/crates/paste-1.0.15.crate) = 18374 +SHA256 (rust/crates/pathdiff-0.2.3.crate) = df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3 +SIZE (rust/crates/pathdiff-0.2.3.crate) = 7495 +SHA256 (rust/crates/pkg-config-0.3.31.crate) = 953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2 +SIZE (rust/crates/pkg-config-0.3.31.crate) = 20880 +SHA256 (rust/crates/png-0.17.16.crate) = 82151a2fc869e011c153adc57cf2789ccb8d9906ce52c0b39a6b5697749d7526 +SIZE (rust/crates/png-0.17.16.crate) = 117975 +SHA256 (rust/crates/ppv-lite86-0.2.20.crate) = 77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04 +SIZE (rust/crates/ppv-lite86-0.2.20.crate) = 22478 +SHA256 (rust/crates/proc-macro2-1.0.93.crate) = 60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99 +SIZE (rust/crates/proc-macro2-1.0.93.crate) = 52388 +SHA256 (rust/crates/profiling-1.0.16.crate) = afbdc74edc00b6f6a218ca6a5364d6226a259d4b8ea1af4a0ea063f27e179f4d +SIZE (rust/crates/profiling-1.0.16.crate) = 12588 +SHA256 (rust/crates/profiling-procmacros-1.0.16.crate) = a65f2e60fbf1063868558d69c6beacf412dc755f9fc020f514b7955fc914fe30 +SIZE (rust/crates/profiling-procmacros-1.0.16.crate) = 5893 +SHA256 (rust/crates/qoi-0.4.1.crate) = 7f6d64c71eb498fe9eae14ce4ec935c555749aef511cca85b5568910d6e48001 +SIZE (rust/crates/qoi-0.4.1.crate) = 71135 +SHA256 (rust/crates/quick-error-2.0.1.crate) = a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3 +SIZE (rust/crates/quick-error-2.0.1.crate) = 14265 +SHA256 (rust/crates/quote-1.0.38.crate) = 0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc +SIZE (rust/crates/quote-1.0.38.crate) = 31252 +SHA256 (rust/crates/rand-0.8.5.crate) = 34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404 +SIZE (rust/crates/rand-0.8.5.crate) = 87113 +SHA256 (rust/crates/rand_chacha-0.3.1.crate) = e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88 +SIZE (rust/crates/rand_chacha-0.3.1.crate) = 15251 +SHA256 (rust/crates/rand_core-0.6.4.crate) = ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c +SIZE (rust/crates/rand_core-0.6.4.crate) = 22666 +SHA256 (rust/crates/rangemap-1.5.1.crate) = f60fcc7d6849342eff22c4350c8b9a989ee8ceabc4b481253e8946b9fe83d684 +SIZE (rust/crates/rangemap-1.5.1.crate) = 57091 +SHA256 (rust/crates/rav1e-0.7.1.crate) = cd87ce80a7665b1cce111f8a16c1f3929f6547ce91ade6addf4ec86a8dda5ce9 +SIZE (rust/crates/rav1e-0.7.1.crate) = 1472522 +SHA256 (rust/crates/ravif-0.11.11.crate) = 2413fd96bd0ea5cdeeb37eaf446a22e6ed7b981d792828721e74ded1980a45c6 +SIZE (rust/crates/ravif-0.11.11.crate) = 11362 +SHA256 (rust/crates/rayon-1.10.0.crate) = b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa +SIZE (rust/crates/rayon-1.10.0.crate) = 180155 +SHA256 (rust/crates/rayon-core-1.12.1.crate) = 1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2 +SIZE (rust/crates/rayon-core-1.12.1.crate) = 70701 +SHA256 (rust/crates/read-fonts-0.22.7.crate) = 69aacb76b5c29acfb7f90155d39759a29496aebb49395830e928a9703d2eec2f +SIZE (rust/crates/read-fonts-0.22.7.crate) = 329031 +SHA256 (rust/crates/regex-1.11.1.crate) = b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191 +SIZE (rust/crates/regex-1.11.1.crate) = 254170 +SHA256 (rust/crates/regex-automata-0.4.9.crate) = 809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908 +SIZE (rust/crates/regex-automata-0.4.9.crate) = 618525 +SHA256 (rust/crates/regex-syntax-0.8.5.crate) = 2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c +SIZE (rust/crates/regex-syntax-0.8.5.crate) = 357541 +SHA256 (rust/crates/rgb-0.8.50.crate) = 57397d16646700483b67d2dd6511d79318f9d057fdbd21a4066aeac8b41d310a +SIZE (rust/crates/rgb-0.8.50.crate) = 21980 +SHA256 (rust/crates/roxmltree-0.20.0.crate) = 6c20b6793b5c2fa6553b250154b78d6d0db37e72700ae35fad9387a46f487c97 +SIZE (rust/crates/roxmltree-0.20.0.crate) = 54594 +SHA256 (rust/crates/rusb-0.9.4.crate) = ab9f9ff05b63a786553a4c02943b74b34a988448671001e9a27e2f0565cc05a4 +SIZE (rust/crates/rusb-0.9.4.crate) = 44539 +SHA256 (rust/crates/rustc-hash-1.1.0.crate) = 08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2 +SIZE (rust/crates/rustc-hash-1.1.0.crate) = 9331 +SHA256 (rust/crates/rustversion-1.0.19.crate) = f7c45b9784283f1b2e7fb61b42047c2fd678ef0960d4f6f1eba131594cc369d4 +SIZE (rust/crates/rustversion-1.0.19.crate) = 20616 +SHA256 (rust/crates/rustybuzz-0.14.1.crate) = cfb9cf8877777222e4a3bc7eb247e398b56baba500c38c1c46842431adc8b55c +SIZE (rust/crates/rustybuzz-0.14.1.crate) = 254743 +SHA256 (rust/crates/self_cell-1.1.0.crate) = c2fdfc24bc566f839a2da4c4295b82db7d25a24253867d5c64355abb5799bdbe +SIZE (rust/crates/self_cell-1.1.0.crate) = 16636 +SHA256 (rust/crates/serde-1.0.217.crate) = 02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70 +SIZE (rust/crates/serde-1.0.217.crate) = 79019 +SHA256 (rust/crates/serde_derive-1.0.217.crate) = 5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0 +SIZE (rust/crates/serde_derive-1.0.217.crate) = 57749 +SHA256 (rust/crates/serde_spanned-0.6.8.crate) = 87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1 +SIZE (rust/crates/serde_spanned-0.6.8.crate) = 9330 +SHA256 (rust/crates/shlex-1.3.0.crate) = 0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64 +SIZE (rust/crates/shlex-1.3.0.crate) = 18713 +SHA256 (rust/crates/simd-adler32-0.3.7.crate) = d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe +SIZE (rust/crates/simd-adler32-0.3.7.crate) = 12086 +SHA256 (rust/crates/simd_helpers-0.1.0.crate) = 95890f873bec569a0362c235787f3aca6e1e887302ba4840839bcc6459c42da6 +SIZE (rust/crates/simd_helpers-0.1.0.crate) = 1527 +SHA256 (rust/crates/skrifa-0.22.3.crate) = 8e1c44ad1f6c5bdd4eefed8326711b7dbda9ea45dfd36068c427d332aa382cbe +SIZE (rust/crates/skrifa-0.22.3.crate) = 260731 +SHA256 (rust/crates/slotmap-1.0.7.crate) = dbff4acf519f630b3a3ddcfaea6c06b42174d9a44bc70c620e9ed1649d58b82a +SIZE (rust/crates/slotmap-1.0.7.crate) = 61390 +SHA256 (rust/crates/smallvec-1.13.2.crate) = 3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67 +SIZE (rust/crates/smallvec-1.13.2.crate) = 35216 +SHA256 (rust/crates/strsim-0.11.1.crate) = 7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f +SIZE (rust/crates/strsim-0.11.1.crate) = 14266 +SHA256 (rust/crates/swash-0.1.19.crate) = cbd59f3f359ddd2c95af4758c18270eddd9c730dde98598023cdabff472c2ca2 +SIZE (rust/crates/swash-0.1.19.crate) = 235696 +SHA256 (rust/crates/syn-2.0.98.crate) = 36147f1a48ae0ec2b5b3bc5b537d267457555a10dc06f3dbc8cb11ba3006d3b1 +SIZE (rust/crates/syn-2.0.98.crate) = 297807 +SHA256 (rust/crates/sys-locale-0.3.2.crate) = 8eab9a99a024a169fe8a903cf9d4a3b3601109bcc13bd9e3c6fff259138626c4 +SIZE (rust/crates/sys-locale-0.3.2.crate) = 15072 +SHA256 (rust/crates/system-deps-6.2.2.crate) = a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349 +SIZE (rust/crates/system-deps-6.2.2.crate) = 25546 +SHA256 (rust/crates/target-lexicon-0.12.16.crate) = 61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1 +SIZE (rust/crates/target-lexicon-0.12.16.crate) = 26488 +SHA256 (rust/crates/thiserror-1.0.69.crate) = b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52 +SIZE (rust/crates/thiserror-1.0.69.crate) = 22198 +SHA256 (rust/crates/thiserror-2.0.11.crate) = d452f284b73e6d76dd36758a0c8684b1d5be31f92b89d07fd5822175732206fc +SIZE (rust/crates/thiserror-2.0.11.crate) = 28648 +SHA256 (rust/crates/thiserror-impl-1.0.69.crate) = 4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1 +SIZE (rust/crates/thiserror-impl-1.0.69.crate) = 18365 +SHA256 (rust/crates/thiserror-impl-2.0.11.crate) = 26afc1baea8a989337eeb52b6e72a039780ce45c3edfcc9c5b9d112feeb173c2 +SIZE (rust/crates/thiserror-impl-2.0.11.crate) = 21067 +SHA256 (rust/crates/tiff-0.9.1.crate) = ba1310fcea54c6a9a4fd1aad794ecc02c31682f6bfbecdf460bf19533eed1e3e +SIZE (rust/crates/tiff-0.9.1.crate) = 1423953 +SHA256 (rust/crates/tinyvec-1.8.1.crate) = 022db8904dfa342efe721985167e9fcd16c29b226db4397ed752a761cfce81e8 +SIZE (rust/crates/tinyvec-1.8.1.crate) = 47269 +SHA256 (rust/crates/tinyvec_macros-0.1.1.crate) = 1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20 +SIZE (rust/crates/tinyvec_macros-0.1.1.crate) = 5865 +SHA256 (rust/crates/toml-0.8.20.crate) = cd87a5cdd6ffab733b2f74bc4fd7ee5fff6634124999ac278c35fc78c6120148 +SIZE (rust/crates/toml-0.8.20.crate) = 51095 +SHA256 (rust/crates/toml_datetime-0.6.8.crate) = 0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41 +SIZE (rust/crates/toml_datetime-0.6.8.crate) = 12028 +SHA256 (rust/crates/toml_edit-0.22.23.crate) = 02a8b472d1a3d7c18e2d61a489aee3453fd9031c33e4f55bd533f4a7adca1bee +SIZE (rust/crates/toml_edit-0.22.23.crate) = 106376 +SHA256 (rust/crates/ttf-parser-0.20.0.crate) = 17f77d76d837a7830fe1d4f12b7b4ba4192c1888001c7164257e4bc6d21d96b4 +SIZE (rust/crates/ttf-parser-0.20.0.crate) = 161769 +SHA256 (rust/crates/ttf-parser-0.21.1.crate) = 2c591d83f69777866b9126b24c6dd9a18351f177e49d625920d19f989fd31cf8 +SIZE (rust/crates/ttf-parser-0.21.1.crate) = 194876 +SHA256 (rust/crates/unicode-bidi-0.3.18.crate) = 5c1cb5db39152898a79168971543b1cb5020dff7fe43c8dc468b0885f5e29df5 +SIZE (rust/crates/unicode-bidi-0.3.18.crate) = 58300 +SHA256 (rust/crates/unicode-bidi-mirroring-0.2.0.crate) = 23cb788ffebc92c5948d0e997106233eeb1d8b9512f93f41651f52b6c5f5af86 +SIZE (rust/crates/unicode-bidi-mirroring-0.2.0.crate) = 8166 +SHA256 (rust/crates/unicode-ccc-0.2.0.crate) = 1df77b101bcc4ea3d78dafc5ad7e4f58ceffe0b2b16bf446aeb50b6cb4157656 +SIZE (rust/crates/unicode-ccc-0.2.0.crate) = 8872 +SHA256 (rust/crates/unicode-ident-1.0.16.crate) = a210d160f08b701c8721ba1c726c11662f877ea6b7094007e1ca9a1041945034 +SIZE (rust/crates/unicode-ident-1.0.16.crate) = 47684 +SHA256 (rust/crates/unicode-linebreak-0.1.5.crate) = 3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f +SIZE (rust/crates/unicode-linebreak-0.1.5.crate) = 15324 +SHA256 (rust/crates/unicode-properties-0.1.3.crate) = e70f2a8b45122e719eb623c01822704c4e0907e7e426a05927e1a1cfff5b75d0 +SIZE (rust/crates/unicode-properties-0.1.3.crate) = 42252 +SHA256 (rust/crates/unicode-script-0.5.7.crate) = 9fb421b350c9aff471779e262955939f565ec18b86c15364e6bdf0d662ca7c1f +SIZE (rust/crates/unicode-script-0.5.7.crate) = 47080 +SHA256 (rust/crates/unicode-segmentation-1.12.0.crate) = f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493 +SIZE (rust/crates/unicode-segmentation-1.12.0.crate) = 106323 +SHA256 (rust/crates/utf8parse-0.2.2.crate) = 06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821 +SIZE (rust/crates/utf8parse-0.2.2.crate) = 13499 +SHA256 (rust/crates/v_frame-0.3.8.crate) = d6f32aaa24bacd11e488aa9ba66369c7cd514885742c9fe08cfe85884db3e92b +SIZE (rust/crates/v_frame-0.3.8.crate) = 14967 +SHA256 (rust/crates/vcpkg-0.2.15.crate) = accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426 +SIZE (rust/crates/vcpkg-0.2.15.crate) = 228735 +SHA256 (rust/crates/version-compare-0.2.0.crate) = 852e951cb7832cb45cb1169900d19760cfa39b82bc0ea9c0e5a14ae88411c98b +SIZE (rust/crates/version-compare-0.2.0.crate) = 13942 +SHA256 (rust/crates/version_check-0.9.5.crate) = 0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a +SIZE (rust/crates/version_check-0.9.5.crate) = 15554 +SHA256 (rust/crates/wasi-0.11.0+wasi-snapshot-preview1.crate) = 9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423 +SIZE (rust/crates/wasi-0.11.0+wasi-snapshot-preview1.crate) = 28131 +SHA256 (rust/crates/wasm-bindgen-0.2.100.crate) = 1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5 +SIZE (rust/crates/wasm-bindgen-0.2.100.crate) = 48288 +SHA256 (rust/crates/wasm-bindgen-backend-0.2.100.crate) = 2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6 +SIZE (rust/crates/wasm-bindgen-backend-0.2.100.crate) = 32111 +SHA256 (rust/crates/wasm-bindgen-macro-0.2.100.crate) = 7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407 +SIZE (rust/crates/wasm-bindgen-macro-0.2.100.crate) = 9663 +SHA256 (rust/crates/wasm-bindgen-macro-support-0.2.100.crate) = 8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de +SIZE (rust/crates/wasm-bindgen-macro-support-0.2.100.crate) = 26243 +SHA256 (rust/crates/wasm-bindgen-shared-0.2.100.crate) = 1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d +SIZE (rust/crates/wasm-bindgen-shared-0.2.100.crate) = 8570 +SHA256 (rust/crates/weezl-0.1.8.crate) = 53a85b86a771b1c87058196170769dd264f66c0782acf1ae6cc51bfd64b39082 +SIZE (rust/crates/weezl-0.1.8.crate) = 42175 +SHA256 (rust/crates/windows-sys-0.59.0.crate) = 1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b +SIZE (rust/crates/windows-sys-0.59.0.crate) = 2387323 +SHA256 (rust/crates/windows-targets-0.52.6.crate) = 9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973 +SIZE (rust/crates/windows-targets-0.52.6.crate) = 6403 +SHA256 (rust/crates/windows_aarch64_gnullvm-0.52.6.crate) = 32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3 +SIZE (rust/crates/windows_aarch64_gnullvm-0.52.6.crate) = 435718 +SHA256 (rust/crates/windows_aarch64_msvc-0.52.6.crate) = 09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469 +SIZE (rust/crates/windows_aarch64_msvc-0.52.6.crate) = 832615 +SHA256 (rust/crates/windows_i686_gnu-0.52.6.crate) = 8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b +SIZE (rust/crates/windows_i686_gnu-0.52.6.crate) = 880402 +SHA256 (rust/crates/windows_i686_gnullvm-0.52.6.crate) = 0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66 +SIZE (rust/crates/windows_i686_gnullvm-0.52.6.crate) = 475940 +SHA256 (rust/crates/windows_i686_msvc-0.52.6.crate) = 240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66 +SIZE (rust/crates/windows_i686_msvc-0.52.6.crate) = 901163 +SHA256 (rust/crates/windows_x86_64_gnu-0.52.6.crate) = 147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78 +SIZE (rust/crates/windows_x86_64_gnu-0.52.6.crate) = 836363 +SHA256 (rust/crates/windows_x86_64_gnullvm-0.52.6.crate) = 24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d +SIZE (rust/crates/windows_x86_64_gnullvm-0.52.6.crate) = 435707 +SHA256 (rust/crates/windows_x86_64_msvc-0.52.6.crate) = 589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec +SIZE (rust/crates/windows_x86_64_msvc-0.52.6.crate) = 832564 +SHA256 (rust/crates/winnow-0.7.1.crate) = 86e376c75f4f43f44db463cf729e0d3acbf954d13e22c51e26e4c264b4ab545f +SIZE (rust/crates/winnow-0.7.1.crate) = 170986 +SHA256 (rust/crates/yazi-0.1.6.crate) = c94451ac9513335b5e23d7a8a2b61a7102398b8cca5160829d313e84c9d98be1 +SIZE (rust/crates/yazi-0.1.6.crate) = 28835 +SHA256 (rust/crates/zeno-0.2.3.crate) = dd15f8e0dbb966fd9245e7498c7e9e5055d9e5c8b676b95bd67091cd11a1e697 +SIZE (rust/crates/zeno-0.2.3.crate) = 40164 +SHA256 (rust/crates/zerocopy-0.7.35.crate) = 1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0 +SIZE (rust/crates/zerocopy-0.7.35.crate) = 152645 +SHA256 (rust/crates/zerocopy-derive-0.7.35.crate) = fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e +SIZE (rust/crates/zerocopy-derive-0.7.35.crate) = 37829 +SHA256 (rust/crates/zune-core-0.4.12.crate) = 3f423a2c17029964870cfaabb1f13dfab7d092a62a29a89264f4d36990ca414a +SIZE (rust/crates/zune-core-0.4.12.crate) = 17355 +SHA256 (rust/crates/zune-inflate-0.2.54.crate) = 73ab332fe2f6680068f3582b16a24f90ad7096d5d39b974d1c0aff0125116f02 +SIZE (rust/crates/zune-inflate-0.2.54.crate) = 37973 +SHA256 (rust/crates/zune-jpeg-0.4.14.crate) = 99a5bab8d7dedf81405c4bb1f2b83ea057643d9cb28778cea9eecddeedd2e028 +SIZE (rust/crates/zune-jpeg-0.4.14.crate) = 63388 +SHA256 (realchonk-ppa6-0.1.0_GH0.tar.gz) = 741e946471a3de111440fea8e36826ab14fbc97f39e2e9a9f9fa40cbf1eb687e +SIZE (realchonk-ppa6-0.1.0_GH0.tar.gz) = 20228 diff --git a/print/ppa6/pkg-descr b/print/ppa6/pkg-descr new file mode 100644 index 000000000000..43a15fa7063f --- /dev/null +++ b/print/ppa6/pkg-descr @@ -0,0 +1,7 @@ +Userspace driver program for PeriPage A6 printers. + +The driver includes the following backends: +- USB (through libusb) +- File (for specifying the raw device) + +Support for Bluetooth has not been implemented yet. diff --git a/security/netbird/Makefile b/security/netbird/Makefile index cac5d2216eae..d018c374af81 100644 --- a/security/netbird/Makefile +++ b/security/netbird/Makefile @@ -1,6 +1,7 @@ PORTNAME= netbird DISTVERSIONPREFIX= v DISTVERSION= 0.56.0 +PORTREVISION= 1 CATEGORIES= security net net-vpn MAINTAINER= hakan.external@netbird.io diff --git a/security/netbird/files/patch-vendor_golang.zx2c4.com_wireguard_wgctrl_internal_wgfreebsd_internal_nv_decode.go b/security/netbird/files/patch-vendor_golang.zx2c4.com_wireguard_wgctrl_internal_wgfreebsd_internal_nv_decode.go new file mode 100644 index 000000000000..3d89c7d66a97 --- /dev/null +++ b/security/netbird/files/patch-vendor_golang.zx2c4.com_wireguard_wgctrl_internal_wgfreebsd_internal_nv_decode.go @@ -0,0 +1,11 @@ +--- vendor/golang.zx2c4.com/wireguard/wgctrl/internal/wgfreebsd/internal/nv/decode.go.orig 2025-09-06 11:14:13 UTC ++++ vendor/golang.zx2c4.com/wireguard/wgctrl/internal/wgfreebsd/internal/nv/decode.go +@@ -13,7 +13,7 @@ func Unmarshal(d []byte, out List) error { + + // Unmarshal decodes a FreeBSD name-value list (nv(9)) to a Go map + func Unmarshal(d []byte, out List) error { +- sz := C.ulong(len(d)) ++ sz := C.size_t(len(d)) + dp := unsafe.Pointer(&d[0]) + nvl := C.nvlist_unpack(dp, sz, 0) + diff --git a/security/netbird/files/patch-vendor_golang.zx2c4.com_wireguard_wgctrl_internal_wgfreebsd_internal_nv_encode.go b/security/netbird/files/patch-vendor_golang.zx2c4.com_wireguard_wgctrl_internal_wgfreebsd_internal_nv_encode.go new file mode 100644 index 000000000000..54a18ac871bf --- /dev/null +++ b/security/netbird/files/patch-vendor_golang.zx2c4.com_wireguard_wgctrl_internal_wgfreebsd_internal_nv_encode.go @@ -0,0 +1,33 @@ +--- vendor/golang.zx2c4.com/wireguard/wgctrl/internal/wgfreebsd/internal/nv/encode.go.orig 2025-09-06 11:15:21 UTC ++++ vendor/golang.zx2c4.com/wireguard/wgctrl/internal/wgfreebsd/internal/nv/encode.go +@@ -44,7 +44,7 @@ func marshal(m List) (nvl *C.struct_nvlist, err error) + C.nvlist_add_bool(nvl, ckey, C.bool(value)) + + case uint64: +- C.nvlist_add_number(nvl, ckey, C.ulong(value)) ++ C.nvlist_add_number(nvl, ckey, C.uint64_t(value)) + + case []byte: + sz := len(value) +@@ -54,8 +54,8 @@ func marshal(m List) (nvl *C.struct_nvlist, err error) + + case []List: + sz := len(value) +- buf := C.malloc(C.size_t(C.sizeof_nvlist_ptr * sz)) +- items := (*[1<<30 - 1]*C.struct_nvlist)(buf) ++ buf := (**C.struct_nvlist)(C.malloc(C.size_t(C.sizeof_nvlist_ptr * sz))) ++ items := unsafe.Slice(buf, sz) + + for i, val := range value { + if items[i], err = marshal(val); err != nil { +@@ -64,8 +64,8 @@ func marshal(m List) (nvl *C.struct_nvlist, err error) + } + } + +- C.nvlist_add_nvlist_array(nvl, ckey, (**C.struct_nvlist)(buf), C.size_t(sz)) +- C.free(buf) ++ C.nvlist_add_nvlist_array(nvl, ckey, buf, C.size_t(sz)) ++ C.free(unsafe.Pointer(buf)) + } + + C.free(unsafe.Pointer(ckey)) diff --git a/textproc/exempi/files/patch-source_Host__IO-POSIX.cpp b/textproc/exempi/files/patch-source_Host__IO-POSIX.cpp deleted file mode 100644 index af8efd93393e..000000000000 --- a/textproc/exempi/files/patch-source_Host__IO-POSIX.cpp +++ /dev/null @@ -1,25 +0,0 @@ ---- source/Host_IO-POSIX.cpp.orig 2023-12-24 09:37:15.000000000 -0800 -+++ source/Host_IO-POSIX.cpp 2025-09-11 02:22:42.614150000 -0700 -@@ -6,6 +6,8 @@ - // NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms - // of the Adobe license agreement accompanying it. - // ================================================================================================= -+ -+#include <sys/param.h> - - #include "public/include/XMP_Environment.h" // ! This must be the first include. - -@@ -523,7 +525,13 @@ - while ( true ) { - // Ignore all children with names starting in '.'. This covers ., .., .DS_Store, etc. - // ! On AIX readdir_r returns 9 instead of 0 for normal termination. -+#if defined(__FreeBSD_version) && __FreeBSD_version >= 1600000 -+ int err = 0; -+ if ((result = readdir ( folder )) == NULL) // ! Thread-safe form is not thread safe. -+ err = errno; -+#else - int err = readdir_r ( folder, childInfo, &result ); // ! Use the thread-safe form. -+#endif - if ( err == 9 ) return false; // Tolerable should some other UNIX return 9. - if ( err != 0 ) XMP_Throw ( "Host_IO::GetNextChild, readdir_r failed", kXMPErr_ExternalFailure ); - if ( result == 0 ) return false; diff --git a/textproc/libxslt/Makefile b/textproc/libxslt/Makefile index 344606952e8f..dcfd2041aefc 100644 --- a/textproc/libxslt/Makefile +++ b/textproc/libxslt/Makefile @@ -12,9 +12,6 @@ WWW= https://gitlab.gnome.org/GNOME/libxslt/ LICENSE= MIT LICENSE_FILE= ${WRKSRC}/Copyright -DEPRECATED= unmaintained with multiple unfixed security vulnerabilities -EXPIRATION_DATE=2025-09-12 - # See note in textproc/libxml2 for why this port uses autotools USES= cpe gmake gnome libtool localbase:ldflags pathfix pkgconfig tar:xz CPE_VENDOR= xmlsoft diff --git a/www/waterfox/Makefile b/www/waterfox/Makefile index 1fe7e3c65761..ae3c2ae7b48e 100644 --- a/www/waterfox/Makefile +++ b/www/waterfox/Makefile @@ -1,6 +1,5 @@ PORTNAME= waterfox -DISTVERSION= 6.6.2 -PORTREVISION= 1 +DISTVERSION= 6.6.3 PORTEPOCH= 1 CATEGORIES= www diff --git a/www/waterfox/distinfo b/www/waterfox/distinfo index 033a8be82fe8..e1c1b4d089a7 100644 --- a/www/waterfox/distinfo +++ b/www/waterfox/distinfo @@ -1,5 +1,5 @@ -TIMESTAMP = 1756464808 -SHA256 (BrowserWorks-waterfox-6.6.2_GH0.tar.gz) = 2492b86359d433b800d2f4786619037679202cafefb1295897edd58f56ef9db5 -SIZE (BrowserWorks-waterfox-6.6.2_GH0.tar.gz) = 919738463 +TIMESTAMP = 1757593056 +SHA256 (BrowserWorks-waterfox-6.6.3_GH0.tar.gz) = 5a5cac40a23e0a4a0f3f0a6086ef6b4665dc5dc2b4416718558a36d95285cf15 +SIZE (BrowserWorks-waterfox-6.6.3_GH0.tar.gz) = 919750321 SHA256 (BrowserWorks-l10n-394dfec_GH0.tar.gz) = 79f5f995c918f9768c7f7d6c38bbd131e1faa631575f18fcc862bc1bdb119ed6 SIZE (BrowserWorks-l10n-394dfec_GH0.tar.gz) = 23704241 diff --git a/www/waterfox/files/patch-bug1874059 b/www/waterfox/files/patch-bug1874059 deleted file mode 100644 index 3fa954ef9def..000000000000 --- a/www/waterfox/files/patch-bug1874059 +++ /dev/null @@ -1,25 +0,0 @@ -commit 56c888446600991803fd92d668349101ad4bf160 -Author: Christoph Moench-Tegeder <cmt@burggraben.net> -Date: Tue Feb 6 22:51:27 2024 +0100 - - switch to -fvisibility flags - - this fixes linkage with llvm18 (which does not like the former - approach via the #pragma in gcc_hidden.h - - PR: 276746 - Submitted by: dim@ - -diff --git build/moz.configure/toolchain.configure build/moz.configure/toolchain.configure -index d08b748db250..4696f69153f6 100644 ---- build/moz.configure/toolchain.configure -+++ build/moz.configure/toolchain.configure -@@ -2186,7 +2186,7 @@ set_define("_LIBCPP_HIDE_FROM_ABI", libcxx_override_visibility.hide_from_abi) - @depends(target, build_environment) - def visibility_flags(target, env): - if target.os != "WINNT": -- if target.kernel == "Darwin": -+ if target.kernel == "Darwin" or target.kernel == "FreeBSD": - return ("-fvisibility=hidden", "-fvisibility-inlines-hidden") - return ( - "-I%s/system_wrappers" % os.path.join(env.dist), |