diff options
Diffstat (limited to 'games')
30 files changed, 11706 insertions, 1941 deletions
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/moonlight-embedded-devel/Makefile b/games/moonlight-embedded-devel/Makefile index 2192d1c1d34d..fb2cf9011c6b 100644 --- a/games/moonlight-embedded-devel/Makefile +++ b/games/moonlight-embedded-devel/Makefile @@ -1,6 +1,5 @@ PORTNAME= moonlight-embedded-devel -DISTVERSION= 2.7.4 -PORTREVISION= 3 +DISTVERSION= 2.7.5 CATEGORIES= games MASTER_SITES= https://github.com/armin-25689/moonlight-embedded/releases/download/v${DISTVERSION}/ @@ -27,43 +26,46 @@ LIB_DEPENDS= libavahi-client.so:net/avahi-app \ libwayland-client.so:graphics/wayland USES= cmake gl localbase:ldflags perl5 pkgconfig sdl ssl tar:xz xorg -USE_LDCONFIG= yes USE_GL= egl gbm glesv2 +USE_LDCONFIG= yes USE_PERL5= build USE_SDL= sdl2 USE_XORG= x11 -NO_WRKSUBDIR= yes +CMAKE_ARGS= -DCMAKE_INSTALL_SYSCONFDIR=${PREFIX}/etc/moonlight + CFLAGS+= -DHAS_SOCKLEN_T=1 -I${LOCALBASE}/include/libepoll-shim LDFLAGS+= -lepoll-shim -CMAKE_ARGS= -DCMAKE_INSTALL_SYSCONFDIR=${PREFIX}/etc/moonlight CONFLICTS_INSTALL= moonlight-embedded +NO_WRKSUBDIR= yes + PLIST_FILES= bin/moonlight \ "@sample etc/moonlight/moonlight.conf.sample" \ share/man/man1/moonlight.1.gz \ share/moonlight/gamecontrollerdb.txt OPTIONS_DEFAULT= OSS +OPTIONS_GROUP= OTHERS +OPTIONS_GROUP_OTHERS= CEC +OPTIONS_SINGLE= SOUND +OPTIONS_SINGLE_SOUND= OSS PULSE + CEC_DESC= Enable HDMI-CEC(TV controller) feature by using libcec.so OSS_DESC= Open Sound System support for embedded(not SDL) platform PULSE_DESC= PulseAudio sound server support for embedded(not SDL) platform -OPTIONS_GROUP= OTHERS -OPTIONS_GROUP_OTHERS= CEC -OPTIONS_SINGLE= SOUND -OPTIONS_SINGLE_SOUND= OSS PULSE -CEC_CMAKE_BOOL= ENABLE_CEC + CEC_LIB_DEPENDS= libcec.so:multimedia/libcec \ libp8-platform.so:devel/p8-platform -OSS_CMAKE_ON= -DENABLE_PULSE:BOOL=false -PULSE_CMAKE_BOOL= ENABLE_PULSE +CEC_CMAKE_BOOL= ENABLE_CEC +OSS_CMAKE_ON= -DENABLE_PULSE:BOOL=false PULSE_LIB_DEPENDS= libpulse.so:audio/pulseaudio +PULSE_CMAKE_BOOL= ENABLE_PULSE post-extract: @${REINPLACE_CMD} -e 's@/usr/local@${PREFIX}@' \ - ${WRKSRC}/docs/README.pod - @${REINPLACE_CMD} -e 's@/usr/local@${PREFIX}@' \ + ${WRKSRC}/docs/README.pod \ ${WRKSRC}/src/config.c post-install: diff --git a/games/moonlight-embedded-devel/distinfo b/games/moonlight-embedded-devel/distinfo index ae8d653aa9e7..507a4350d87e 100644 --- a/games/moonlight-embedded-devel/distinfo +++ b/games/moonlight-embedded-devel/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1731162268 -SHA256 (moonlight-embedded-devel-2.7.4.tar.xz) = e74d99666c11d92397517a7c2058ad203b31973af10d496ccfc6b37106a993e6 -SIZE (moonlight-embedded-devel-2.7.4.tar.xz) = 1121376 +TIMESTAMP = 1757506828 +SHA256 (moonlight-embedded-devel-2.7.5.tar.xz) = 486d5527733226706ef70b0534c8206f1872e18b4d331ca04af07f32db349018 +SIZE (moonlight-embedded-devel-2.7.5.tar.xz) = 380456 diff --git a/games/moonlight-embedded-devel/pkg-descr b/games/moonlight-embedded-devel/pkg-descr index 8a3e7e25f25a..cb18590dfa25 100644 --- a/games/moonlight-embedded-devel/pkg-descr +++ b/games/moonlight-embedded-devel/pkg-descr @@ -4,5 +4,7 @@ PC(sunshine or NV shield) to your FreeBSD system. In contrast to moonlight-qt, this port can grab keyboard and mouse and has full worked vaapi decoder, which helps in case of crashes. -Note: This is a fork of moonlight-embedded aimed for more features +Note1: This is a fork of moonlight-embedded aimed for more features and fixes for FreeBSD on amd64, not only on embedded systems. +Note2: If meet crash frequently, try adjust Integrated Graphics +Device(IDG) Aperture size from BIOS. 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/games/veloren-weekly/Makefile b/games/veloren-weekly/Makefile index 4b3642d8d259..c7c4e2e226c3 100644 --- a/games/veloren-weekly/Makefile +++ b/games/veloren-weekly/Makefile @@ -1,5 +1,5 @@ PORTNAME= veloren -PORTVERSION= s20250903 +PORTVERSION= s20250910 CATEGORIES= games wayland PKGNAMESUFFIX= -weekly @@ -24,7 +24,7 @@ RUN_DEPENDS= ${LOCALBASE}/lib/alsa-lib/libasound_module_pcm_oss.so:audio/alsa-pl USES= cargo xorg USE_XORG= xcb USE_GITLAB= yes -GL_TAGNAME= v0.17.0-1018-g15f3d6725e # git describe --match='v[0-9]*' weekly +GL_TAGNAME= v0.17.0-1107-g188d737f06 # git describe --match='v[0-9]*' weekly CARGO_ENV= VELOREN_USERDATA_STRATEGY=system SHADERC_LIB_DIR="${LOCALBASE}/lib" PLIST_FILES= bin/${PORTNAME}-server-cli \ bin/${PORTNAME}-voxygen \ @@ -43,10 +43,6 @@ CARGO_ENV+= RUSTC_BOOTSTRAP=1 # XXX https://github.com/rust-lang/cargo/issues/4101 CARGO_INSTALL_PATH= server-cli voxygen -# https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=289016 -CARGO_BUILDDEP= no -BUILD_DEPENDS+= rust188>0:lang/rust188 - post-patch: # .git/ directory is missing, so don't abort if git binary is also missing @${REINPLACE_CMD} -e 's/"git"/"${TRUE}"/' \ diff --git a/games/veloren-weekly/Makefile.crates b/games/veloren-weekly/Makefile.crates index 9c6510d82c7c..f757af1a098e 100644 --- a/games/veloren-weekly/Makefile.crates +++ b/games/veloren-weekly/Makefile.crates @@ -1,7 +1,8 @@ -CARGO_CRATES= ab_glyph-0.2.29 \ - ab_glyph_rasterizer-0.1.8 \ +CARGO_CRATES= ab_glyph-0.2.31 \ + ab_glyph_rasterizer-0.1.10 \ addr2line-0.24.2 \ - adler2-2.0.0 \ + addr2line-0.25.0 \ + adler2-2.0.1 \ adler32-1.2.0 \ ahash-0.4.8 \ ahash-0.8.12 \ @@ -12,21 +13,20 @@ CARGO_CRATES= ab_glyph-0.2.29 \ ambient-authority-0.0.2 \ android-activity-0.6.0 \ android-properties-0.2.2 \ - android-tzdata-0.1.1 \ android_system_properties-0.1.5 \ anes-0.1.6 \ - 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.98 \ + anstream-0.6.20 \ + anstyle-1.0.11 \ + anstyle-parse-0.2.7 \ + anstyle-query-1.1.4 \ + anstyle-wincon-3.0.10 \ + anyhow-1.0.99 \ anymap2-0.13.0 \ app_dirs2-2.5.5 \ approx-0.3.2 \ approx-0.4.0 \ approx-0.5.1 \ - arbitrary-1.4.1 \ + arbitrary-1.4.2 \ arr_macro-0.2.1 \ arr_macro_impl-0.2.1 \ arrayref-0.3.9 \ @@ -34,35 +34,36 @@ CARGO_CRATES= ab_glyph-0.2.29 \ as-raw-xcb-connection-1.0.1 \ ascii-1.1.0 \ ash-0.38.0+1.3.281 \ - assets_manager-0.12.5 \ - async-channel-2.3.1 \ - async-trait-0.1.88 \ + assets_manager-0.13.2 \ + async-channel-2.5.0 \ + async-trait-0.1.89 \ atomic-arena-0.1.2 \ atomic-waker-1.1.2 \ atomic_refcell-0.1.13 \ atomicwrites-0.4.4 \ - autocfg-1.4.0 \ + autocfg-1.5.0 \ axum-0.8.4 \ axum-core-0.5.2 \ az-1.2.1 \ - backtrace-0.3.74 \ + backtrace-0.3.75 \ base64-0.21.7 \ base64-0.22.1 \ - bincode-1.3.3 \ - bindgen-0.70.1 \ + bincode-2.0.1 \ + bincode_derive-2.0.1 \ + bindgen-0.72.1 \ bit-set-0.8.0 \ bit-vec-0.8.0 \ bitflags-1.3.2 \ - bitflags-2.9.0 \ + bitflags-2.9.4 \ bitvec-1.0.1 \ blake2b_simd-1.0.3 \ block-0.1.6 \ block-buffer-0.10.4 \ block2-0.5.1 \ block2-0.6.1 \ - bumpalo-3.17.0 \ - bytemuck-1.23.0 \ - bytemuck_derive-1.9.3 \ + bumpalo-3.19.0 \ + bytemuck-1.23.2 \ + bytemuck_derive-1.10.1 \ byteorder-1.5.0 \ byteorder-lite-0.1.0 \ bytes-1.10.1 \ @@ -77,66 +78,69 @@ CARGO_CRATES= ab_glyph-0.2.29 \ cap-time-ext-3.4.4 \ cassowary-0.3.0 \ cast-0.3.0 \ - castaway-0.2.3 \ - cc-1.2.21 \ + castaway-0.2.4 \ + cc-1.2.36 \ censor-0.3.0 \ cesu8-1.1.0 \ cexpr-0.6.0 \ cfg-if-0.1.10 \ - cfg-if-1.0.0 \ + cfg-if-1.0.3 \ cfg_aliases-0.2.1 \ - chrono-0.4.41 \ - chrono-tz-0.10.3 \ - chrono-tz-build-0.4.1 \ - chumsky-0.9.3 \ + chrono-0.4.42 \ + chrono-tz-0.10.4 \ + chumsky-0.10.1 \ ciborium-0.2.2 \ ciborium-io-0.2.2 \ ciborium-ll-0.2.2 \ clang-sys-1.8.1 \ - clap-4.5.37 \ - clap_builder-4.5.37 \ - clap_derive-4.5.32 \ - clap_lex-0.7.4 \ + clap-4.5.47 \ + clap_builder-4.5.47 \ + clap_derive-4.5.47 \ + clap_lex-0.7.5 \ clipboard-win-3.1.1 \ - clipboard-win-5.4.0 \ + clipboard-win-5.4.1 \ clipboard_macos-0.1.1 \ clipboard_wayland-0.2.2 \ clipboard_x11-0.4.2 \ cmake-0.1.54 \ - cobs-0.2.3 \ + cobs-0.3.0 \ codespan-reporting-0.12.0 \ - colorchoice-1.0.3 \ + colorchoice-1.0.4 \ combine-4.6.7 \ compact_str-0.8.1 \ concurrent-queue-2.5.0 \ - console-0.15.11 \ + console-0.16.1 \ console_error_panic_hook-0.1.7 \ constant_time_eq-0.3.1 \ + convert_case-0.7.1 \ copypasta-0.8.2 \ core-foundation-0.9.4 \ - core-foundation-0.10.0 \ + core-foundation-0.10.1 \ core-foundation-sys-0.8.7 \ core-graphics-0.23.2 \ core-graphics-types-0.1.3 \ core-graphics-types-0.2.0 \ coreaudio-rs-0.11.3 \ - coreaudio-sys-0.2.16 \ + coreaudio-sys-0.2.17 \ cpal-0.15.3 \ cpp_demangle-0.4.4 \ cpufeatures-0.2.17 \ - cranelift-bforest-0.116.1 \ - cranelift-bitset-0.116.1 \ - cranelift-codegen-0.116.1 \ - cranelift-codegen-meta-0.116.1 \ - cranelift-codegen-shared-0.116.1 \ - cranelift-control-0.116.1 \ - cranelift-entity-0.116.1 \ - cranelift-frontend-0.116.1 \ - cranelift-isle-0.116.1 \ - cranelift-native-0.116.1 \ - crc32fast-1.4.2 \ - criterion-0.5.1 \ - criterion-plot-0.5.0 \ + cranelift-assembler-x64-0.123.2 \ + cranelift-assembler-x64-meta-0.123.2 \ + cranelift-bforest-0.123.2 \ + cranelift-bitset-0.123.2 \ + cranelift-codegen-0.123.2 \ + cranelift-codegen-meta-0.123.2 \ + cranelift-codegen-shared-0.123.2 \ + cranelift-control-0.123.2 \ + cranelift-entity-0.123.2 \ + cranelift-frontend-0.123.2 \ + cranelift-isle-0.123.2 \ + cranelift-native-0.123.2 \ + cranelift-srcgen-0.123.2 \ + crc32fast-1.5.0 \ + criterion-0.7.0 \ + criterion-plot-0.6.0 \ critical-section-1.2.0 \ crossbeam-channel-0.5.15 \ crossbeam-deque-0.7.4 \ @@ -147,29 +151,33 @@ CARGO_CRATES= ab_glyph-0.2.29 \ crossbeam-utils-0.7.2 \ crossbeam-utils-0.8.21 \ crossterm-0.28.1 \ + crossterm-0.29.0 \ crossterm_winapi-0.9.1 \ - crunchy-0.2.3 \ + crunchy-0.2.4 \ crypto-common-0.1.6 \ csv-1.3.1 \ csv-core-0.1.12 \ culpa-1.0.2 \ culpa-macros-1.0.2 \ - cursor-icon-1.1.0 \ + cursor-icon-1.2.0 \ daggy-0.5.0 \ darling-0.20.11 \ + darling-0.21.3 \ darling_core-0.20.11 \ + darling_core-0.21.3 \ darling_macro-0.20.11 \ + darling_macro-0.21.3 \ dasp_sample-0.11.0 \ data-encoding-2.9.0 \ debugid-0.8.0 \ deflate-1.0.0 \ delaunator-1.0.2 \ - deranged-0.4.0 \ + deranged-0.5.3 \ + derive_more-2.0.1 \ + derive_more-impl-2.0.1 \ digest-0.10.7 \ directories-next-2.0.0 \ - dirs-4.0.0 \ dirs-6.0.0 \ - dirs-sys-0.3.7 \ dirs-sys-0.5.0 \ dirs-sys-next-0.1.2 \ discord-sdk-0.4.0 \ @@ -184,14 +192,15 @@ CARGO_CRATES= ab_glyph-0.2.29 \ downcast-rs-1.2.1 \ dpi-0.1.2 \ drop_guard-0.3.0 \ - ecolor-0.32.1 \ - egui-0.32.1 \ + dyn-clone-1.0.20 \ + ecolor-0.32.2 \ + egui-0.32.2 \ egui_plot-0.33.0 \ egui_wgpu_backend-0.35.0 \ egui_winit_platform-0.27.0 \ either-1.15.0 \ elapsed-0.1.2 \ - emath-0.32.1 \ + emath-0.32.2 \ embedded-io-0.4.0 \ embedded-io-0.6.1 \ encode_unicode-1.0.0 \ @@ -200,41 +209,44 @@ CARGO_CRATES= ab_glyph-0.2.29 \ enum-as-inner-0.6.1 \ enum-map-2.7.3 \ enum-map-derive-0.17.0 \ - enumset-1.1.6 \ - enumset_derive-0.11.0 \ + enumset-1.1.10 \ + enumset_derive-0.14.0 \ env_home-0.1.0 \ - epaint-0.32.1 \ - epaint_default_fonts-0.32.1 \ + epaint-0.32.2 \ + epaint_default_fonts-0.32.2 \ equivalent-1.0.2 \ - errno-0.3.11 \ + errno-0.3.14 \ error-chain-0.12.4 \ - error-code-3.3.1 \ + error-code-3.3.2 \ euc-0.5.3 \ euclid-0.22.11 \ - event-listener-5.4.0 \ + event-listener-5.4.1 \ event-listener-strategy-0.5.4 \ fallible-iterator-0.3.0 \ fallible-streaming-iterator-0.1.9 \ + fastbloom-0.14.0 \ fastrand-2.3.0 \ fd-lock-4.0.4 \ fdeflate-0.3.7 \ - filetime-0.2.25 \ + filetime-0.2.26 \ + find-msvc-tools-0.1.1 \ find_folder-0.3.0 \ fixed-1.29.0 \ fixedbitset-0.1.9 \ fixedbitset-0.5.7 \ - flate2-1.1.1 \ + flate2-1.1.2 \ float-cmp-0.10.0 \ - fluent-0.16.1 \ - fluent-bundle-0.15.3 \ + fluent-0.17.0 \ + fluent-bundle-0.16.0 \ fluent-langneg-0.13.0 \ - fluent-syntax-0.11.1 \ + fluent-syntax-0.12.0 \ fnv-1.0.7 \ foldhash-0.1.5 \ + foldhash-0.2.0 \ foreign-types-0.5.0 \ foreign-types-macros-0.2.3 \ foreign-types-shared-0.3.1 \ - form_urlencoded-1.2.1 \ + form_urlencoded-1.2.2 \ formatx-0.2.4 \ fs-set-times-0.20.3 \ fsevent-sys-4.1.0 \ @@ -251,18 +263,19 @@ CARGO_CRATES= ab_glyph-0.2.29 \ fxhash-0.2.1 \ fxprof-processed-profile-0.6.0 \ generator-0.7.5 \ - generator-0.8.4 \ + generator-0.8.7 \ generic-array-0.14.7 \ gethostname-0.2.3 \ - gethostname-0.4.3 \ + gethostname-1.0.2 \ getrandom-0.2.16 \ - getrandom-0.3.2 \ + getrandom-0.3.3 \ gilrs-0.10.2 \ gilrs-core-0.5.7 \ gimli-0.31.1 \ + gimli-0.32.2 \ gl_generator-0.14.0 \ - glam-0.30.3 \ - glob-0.3.2 \ + glam-0.30.5 \ + glob-0.3.3 \ glow-0.16.0 \ glutin_wgl_sys-0.6.1 \ glyph_brush-0.7.12 \ @@ -280,12 +293,12 @@ CARGO_CRATES= ab_glyph-0.2.29 \ hashbrown-0.12.3 \ hashbrown-0.13.2 \ hashbrown-0.14.5 \ - hashbrown-0.15.3 \ + hashbrown-0.15.5 \ + hashbrown-0.16.0 \ hashlink-0.9.1 \ heapless-0.8.0 \ heck-0.5.0 \ - hermit-abi-0.4.0 \ - hermit-abi-0.5.0 \ + hermit-abi-0.5.2 \ hex-0.4.3 \ hexf-parse-0.2.1 \ hibitset-0.6.4 \ @@ -298,50 +311,45 @@ CARGO_CRATES= ab_glyph-0.2.29 \ httparse-1.10.1 \ httpdate-1.0.3 \ humantime-2.2.0 \ - hyper-1.6.0 \ - hyper-rustls-0.27.5 \ - hyper-util-0.1.11 \ + hyper-1.7.0 \ + hyper-rustls-0.27.7 \ + hyper-util-0.1.16 \ iana-time-zone-0.1.63 \ iana-time-zone-haiku-0.1.2 \ - icu_collections-1.5.0 \ - icu_locid-1.5.0 \ - icu_locid_transform-1.5.0 \ - icu_locid_transform_data-1.5.1 \ - icu_normalizer-1.5.0 \ - icu_normalizer_data-1.5.1 \ - icu_properties-1.5.1 \ - icu_properties_data-1.5.1 \ - icu_provider-1.5.0 \ - icu_provider_macros-1.5.0 \ + icu_collections-2.0.0 \ + icu_locale_core-2.0.0 \ + icu_normalizer-2.0.0 \ + icu_normalizer_data-2.0.0 \ + icu_properties-2.0.1 \ + icu_properties_data-2.0.1 \ + icu_provider-2.0.0 \ id-arena-2.2.1 \ ident_case-1.0.1 \ - idna-1.0.3 \ - idna_adapter-1.2.0 \ - image-0.25.6 \ + idna-1.1.0 \ + idna_adapter-1.2.1 \ + image-0.25.8 \ indexmap-1.9.3 \ - indexmap-2.9.0 \ - indicatif-0.17.11 \ + indexmap-2.11.1 \ + indicatif-0.18.0 \ indoc-2.0.6 \ init_with-1.1.0 \ inline_tweak-1.2.2 \ inline_tweak_derive-4.0.0 \ - inotify-0.9.6 \ inotify-0.11.0 \ inotify-sys-0.1.5 \ - instability-0.3.7 \ + instability-0.3.9 \ instant-0.1.13 \ - intl-memoizer-0.5.2 \ + intl-memoizer-0.5.3 \ intl_pluralrules-7.0.2 \ io-extras-0.18.4 \ io-kit-sys-0.3.0 \ io-lifetimes-2.0.4 \ + io-uring-0.7.10 \ ipconfig-0.3.2 \ ipnet-2.11.0 \ is-docker-0.2.0 \ - is-terminal-0.4.16 \ is-wsl-0.4.0 \ is_terminal_polyfill-1.70.1 \ - itertools-0.10.5 \ itertools-0.12.1 \ itertools-0.13.0 \ itertools-0.14.0 \ @@ -350,47 +358,48 @@ CARGO_CRATES= ab_glyph-0.2.29 \ ittapi-sys-0.4.0 \ jni-0.21.1 \ jni-sys-0.3.0 \ - jobserver-0.1.33 \ - js-sys-0.3.77 \ + jobserver-0.1.34 \ + js-sys-0.3.78 \ khronos-egl-6.0.0 \ khronos_api-3.1.0 \ kiddo-4.2.0 \ - kqueue-1.0.8 \ + kqueue-1.1.1 \ kqueue-sys-1.0.4 \ lazy-bytes-cast-5.0.1 \ lazy_static-1.5.0 \ leb128-0.2.5 \ leb128fmt-0.1.0 \ levenshtein-1.0.5 \ - libc-0.2.172 \ - libloading-0.8.6 \ - libm-0.2.14 \ + libc-0.2.175 \ + libloading-0.8.8 \ + libm-0.2.15 \ libmimalloc-sys-0.1.39 \ - libredox-0.1.3 \ + libredox-0.1.9 \ libsqlite3-sys-0.28.0 \ libudev-sys-0.1.4 \ linked-hash-map-0.5.6 \ linux-raw-sys-0.4.15 \ - linux-raw-sys-0.9.4 \ - litemap-0.7.5 \ + linux-raw-sys-0.11.0 \ + litemap-0.8.0 \ litrs-0.4.2 \ - lock_api-0.4.12 \ - log-0.4.27 \ + lock_api-0.4.13 \ + log-0.4.28 \ loom-0.7.2 \ lru-0.12.5 \ + lru-slab-0.1.2 \ lz-fear-0.2.0 \ - mach2-0.4.2 \ + mach2-0.4.3 \ macro_rules_attribute-0.1.3 \ macro_rules_attribute-proc_macro-0.1.3 \ malloc_buf-0.0.6 \ - matchers-0.1.0 \ + matchers-0.2.0 \ matchit-0.8.4 \ maybe-owned-0.3.4 \ maybe-uninit-2.0.0 \ - memchr-2.7.4 \ - memfd-0.6.4 \ + memchr-2.7.5 \ + memfd-0.6.5 \ memmap2-0.5.10 \ - memmap2-0.9.5 \ + memmap2-0.9.8 \ memoffset-0.5.6 \ memoffset-0.6.5 \ metal-0.32.0 \ @@ -398,11 +407,11 @@ CARGO_CRATES= ab_glyph-0.2.29 \ mime-0.3.17 \ minifb-0.28.0 \ minimal-lexical-0.2.1 \ - miniz_oxide-0.8.8 \ + miniz_oxide-0.8.9 \ mint-0.5.9 \ - mio-0.8.11 \ - mio-1.0.3 \ + mio-1.0.4 \ moka-0.12.10 \ + moxcms-0.7.5 \ mumble-link-0.2.0 \ naga-26.0.0 \ native-dialog-0.9.0 \ @@ -414,17 +423,16 @@ CARGO_CRATES= ab_glyph-0.2.29 \ nibble_vec-0.1.0 \ nix-0.24.3 \ nix-0.26.4 \ - nix-0.29.0 \ + nix-0.30.1 \ nohash-hasher-0.2.0 \ noise-0.9.0 \ nom-7.1.3 \ nom-8.0.0 \ - notify-6.1.1 \ - notify-8.0.0 \ + notify-8.2.0 \ notify-types-2.0.0 \ nougat-0.2.4 \ nougat-proc_macros-0.2.4 \ - nu-ansi-term-0.46.0 \ + nu-ansi-term-0.50.1 \ num-0.2.1 \ num-0.4.3 \ num-bigint-0.2.6 \ @@ -439,14 +447,13 @@ CARGO_CRATES= ab_glyph-0.2.29 \ num-rational-0.4.2 \ num-traits-0.2.19 \ num_cpus-1.17.0 \ - num_enum-0.7.3 \ - num_enum_derive-0.7.3 \ - number_prefix-0.4.0 \ + num_enum-0.7.4 \ + num_enum_derive-0.7.4 \ objc-0.2.7 \ objc-foundation-0.1.1 \ objc-sys-0.3.5 \ objc2-0.5.2 \ - objc2-0.6.1 \ + objc2-0.6.2 \ objc2-app-kit-0.2.2 \ objc2-app-kit-0.3.1 \ objc2-cloud-kit-0.2.2 \ @@ -474,9 +481,11 @@ CARGO_CRATES= ab_glyph-0.2.29 \ objc2-user-notifications-0.2.2 \ objc_id-0.1.1 \ object-0.36.7 \ + object-0.37.3 \ oboe-0.6.1 \ oboe-sys-0.6.1 \ once_cell-1.21.3 \ + once_cell_polyfill-1.70.1 \ oorandom-11.1.5 \ open-5.3.2 \ openssl-probe-0.1.6 \ @@ -485,22 +494,18 @@ CARGO_CRATES= ab_glyph-0.2.29 \ ordered-float-1.1.1 \ ordered-float-4.6.0 \ ordered-float-5.0.0 \ - overload-0.1.1 \ - owned_ttf_parser-0.25.0 \ + owned_ttf_parser-0.25.1 \ parking-2.2.1 \ - parking_lot-0.12.3 \ - parking_lot_core-0.9.10 \ - parse-zoneinfo-0.3.1 \ + parking_lot-0.12.4 \ + parking_lot_core-0.9.11 \ paste-1.0.15 \ pathdiff-0.2.3 \ pem-3.0.5 \ - percent-encoding-2.3.1 \ + percent-encoding-2.3.2 \ petgraph-0.4.13 \ - petgraph-0.8.1 \ - phf-0.11.3 \ - phf_codegen-0.11.3 \ - phf_generator-0.11.3 \ - phf_shared-0.11.3 \ + petgraph-0.8.2 \ + phf-0.12.1 \ + phf_shared-0.12.1 \ pin-project-1.1.10 \ pin-project-internal-1.1.10 \ pin-project-lite-0.2.16 \ @@ -510,10 +515,12 @@ CARGO_CRATES= ab_glyph-0.2.29 \ pistoncore-input-0.24.0 \ pkg-config-0.3.32 \ png-0.17.16 \ - polling-3.7.4 \ - portable-atomic-1.11.0 \ + png-0.18.0 \ + polling-3.10.0 \ + portable-atomic-1.11.1 \ portable-atomic-util-0.2.4 \ - postcard-1.1.1 \ + postcard-1.1.3 \ + potential_utf-0.1.3 \ powerfmt-0.2.0 \ pp-rs-0.2.1 \ ppv-lite86-0.2.21 \ @@ -522,26 +529,28 @@ CARGO_CRATES= ab_glyph-0.2.29 \ proc-macro-hack-0.5.20+deprecated \ proc-macro-nested-0.1.7 \ proc-macro2-0.4.30 \ - proc-macro2-1.0.95 \ - profiling-1.0.16 \ - profiling-procmacros-1.0.16 \ + proc-macro2-1.0.101 \ + profiling-1.0.17 \ + profiling-procmacros-1.0.17 \ prometheus-0.14.0 \ prometheus-hyper-0.2.1 \ protocol-3.4.0 \ protocol-derive-3.4.0 \ psm-0.1.26 \ - pulley-interpreter-29.0.1 \ + pulley-interpreter-36.0.2 \ + pulley-macros-36.0.2 \ + pxfm-0.1.23 \ quick-xml-0.37.5 \ - quinn-0.11.7 \ - quinn-proto-0.11.11 \ - quinn-udp-0.5.12 \ + quinn-0.11.9 \ + quinn-proto-0.11.13 \ + quinn-udp-0.5.14 \ quote-0.6.13 \ quote-1.0.40 \ - r-efi-5.2.0 \ + r-efi-5.3.0 \ radium-0.7.0 \ radix_trie-0.2.1 \ rand-0.8.5 \ - rand-0.9.1 \ + rand-0.9.2 \ rand_chacha-0.3.1 \ rand_chacha-0.9.0 \ rand_core-0.6.4 \ @@ -550,66 +559,69 @@ CARGO_CRATES= ab_glyph-0.2.29 \ range-alloc-0.1.4 \ ratatui-0.29.0 \ raw-window-handle-0.6.2 \ - rayon-1.10.0 \ - rayon-core-1.12.1 \ - rcgen-0.13.2 \ + rayon-1.11.0 \ + rayon-core-1.13.0 \ + rcgen-0.14.3 \ redox_syscall-0.4.1 \ - redox_syscall-0.5.12 \ + redox_syscall-0.5.17 \ redox_users-0.4.6 \ - redox_users-0.5.0 \ + redox_users-0.5.2 \ + ref-cast-1.0.24 \ + ref-cast-impl-1.0.24 \ refinery-0.8.16 \ refinery-core-0.8.16 \ refinery-macros-0.8.16 \ - regalloc2-0.11.2 \ - regex-1.11.1 \ - regex-automata-0.1.10 \ - regex-automata-0.4.9 \ - regex-syntax-0.6.29 \ - regex-syntax-0.8.5 \ + regalloc2-0.12.2 \ + regex-1.11.2 \ + regex-automata-0.3.9 \ + regex-automata-0.4.10 \ + regex-syntax-0.7.5 \ + regex-syntax-0.8.6 \ renderdoc-sys-1.1.0 \ - resolv-conf-0.7.3 \ + resolv-conf-0.7.4 \ ring-0.17.14 \ rmp-0.8.14 \ rmp-serde-1.3.0 \ robust-0.2.3 \ - ron-0.8.1 \ + ron-0.11.0 \ roots-0.0.8 \ roxmltree-0.14.1 \ rstar-0.12.2 \ rtrb-0.3.2 \ rusqlite-0.31.0 \ rust-argon2-2.1.0 \ - rustc-demangle-0.1.24 \ + rustc-demangle-0.1.26 \ rustc-hash-1.1.0 \ rustc-hash-2.1.1 \ rustc_version-0.2.3 \ rustc_version-0.4.1 \ rustix-0.38.44 \ - rustix-1.0.7 \ + rustix-1.1.2 \ rustix-linux-procfs-0.1.1 \ - rustls-0.23.26 \ + rustls-0.23.31 \ rustls-native-certs-0.8.1 \ rustls-pemfile-2.2.0 \ - rustls-pki-types-1.11.0 \ - rustls-platform-verifier-0.5.2 \ + rustls-pki-types-1.12.0 \ + rustls-platform-verifier-0.6.1 \ rustls-platform-verifier-android-0.1.1 \ - rustls-webpki-0.103.1 \ + rustls-webpki-0.103.4 \ rusttype-0.7.9 \ rusttype-0.8.3 \ - rustversion-1.0.20 \ - rustyline-15.0.0 \ + rustversion-1.0.22 \ + rustyline-17.0.1 \ ryu-1.0.20 \ same-file-1.0.6 \ - schannel-0.1.27 \ + schannel-0.1.28 \ + schemars-0.9.0 \ + schemars-1.0.4 \ schnellru-0.2.4 \ scoped-tls-1.0.1 \ scopeguard-1.2.0 \ sctk-adwaita-0.10.1 \ sdl2-0.35.2 \ sdl2-sys-0.35.2 \ - security-framework-3.2.0 \ - security-framework-sys-2.14.0 \ - self_cell-0.10.3 \ + security-framework-3.4.0 \ + security-framework-sys-2.15.0 \ self_cell-1.2.0 \ semver-0.9.0 \ semver-1.0.26 \ @@ -617,42 +629,42 @@ CARGO_CRATES= ab_glyph-0.2.29 \ send_wrapper-0.6.0 \ serde-1.0.219 \ serde_derive-1.0.219 \ - serde_json-1.0.140 \ + serde_json-1.0.143 \ serde_path_to_error-0.1.17 \ serde_repr-0.1.20 \ - serde_spanned-0.6.8 \ + serde_spanned-0.6.9 \ + serde_spanned-1.0.0 \ serde_urlencoded-0.7.1 \ - serde_with-3.12.0 \ - serde_with_macros-3.12.0 \ + serde_with-3.14.0 \ + serde_with_macros-3.14.0 \ sha2-0.10.9 \ shaderc-0.8.3 \ shaderc-sys-0.8.3 \ sharded-slab-0.1.7 \ shell-words-1.1.0 \ - shellexpand-2.1.2 \ shellexpand-3.1.1 \ shlex-1.3.0 \ shred-0.16.1 \ shred-derive-0.7.0 \ shrev-1.1.3 \ - signal-hook-0.3.17 \ + signal-hook-0.3.18 \ signal-hook-mio-0.2.4 \ - signal-hook-registry-1.4.5 \ + signal-hook-registry-1.4.6 \ simd-adler32-0.3.7 \ siphasher-1.0.1 \ - slab-0.4.9 \ + slab-0.4.11 \ slotmap-1.0.7 \ - smallvec-1.15.0 \ + smallvec-1.15.1 \ smithay-client-toolkit-0.16.1 \ smithay-client-toolkit-0.19.2 \ smithay-clipboard-0.6.6 \ smithay-clipboard-0.7.2 \ smol_str-0.2.2 \ - socket2-0.5.9 \ - sorted-vec-0.8.6 \ - spin_sleep-1.3.1 \ + socket2-0.5.10 \ + socket2-0.6.0 \ + sorted-vec-0.8.10 \ + spin_sleep-1.3.3 \ spirv-0.3.0+sdk-1.3.268.0 \ - sptr-0.3.2 \ stable_deref_trait-1.2.0 \ stacker-0.1.21 \ static_assertions-1.1.0 \ @@ -660,7 +672,9 @@ CARGO_CRATES= ab_glyph-0.2.29 \ strict-num-0.1.1 \ strsim-0.11.1 \ strum-0.26.3 \ + strum-0.27.2 \ strum_macros-0.26.4 \ + strum_macros-0.27.2 \ subtle-2.6.1 \ sum_type-0.2.0 \ svg_fmt-0.4.5 \ @@ -672,68 +686,71 @@ CARGO_CRATES= ab_glyph-0.2.29 \ symphonia-utils-xiph-0.5.4 \ syn-0.15.44 \ syn-1.0.109 \ - syn-2.0.101 \ - sync_file-0.2.9 \ + syn-2.0.106 \ + sync_file-0.3.0 \ sync_wrapper-1.0.2 \ synstructure-0.13.2 \ system-interface-0.27.3 \ tagptr-0.2.0 \ - take-once-0.1.2 \ + take-once-0.1.3 \ tap-1.0.1 \ tar-0.4.44 \ - target-lexicon-0.13.2 \ - tempfile-3.19.1 \ + target-lexicon-0.13.3 \ + tempfile-3.22.0 \ termcolor-1.4.1 \ thiserror-1.0.69 \ - thiserror-2.0.12 \ + thiserror-2.0.16 \ thiserror-impl-1.0.69 \ - thiserror-impl-2.0.12 \ - thread_local-1.1.8 \ - time-0.3.41 \ - time-core-0.1.4 \ - time-macros-0.2.22 \ - timer-queue-0.1.0 \ + thiserror-impl-2.0.16 \ + thread_local-1.1.9 \ + time-0.3.43 \ + time-core-0.1.6 \ + time-macros-0.2.24 \ + timer-queue-0.1.1 \ tiny-skia-0.11.4 \ tiny-skia-path-0.11.4 \ - tinystr-0.7.6 \ + tinystr-0.8.1 \ tinytemplate-1.2.1 \ - tinyvec-1.9.0 \ + tinyvec-1.10.0 \ tinyvec_macros-0.1.1 \ - tokio-1.44.2 \ + tokio-1.47.1 \ tokio-macros-2.5.0 \ tokio-rustls-0.26.2 \ tokio-stream-0.1.17 \ toml-0.5.11 \ - toml-0.8.22 \ - toml_datetime-0.6.9 \ - toml_edit-0.22.26 \ - toml_write-0.1.1 \ + toml-0.8.23 \ + toml-0.9.5 \ + toml_datetime-0.6.11 \ + toml_datetime-0.7.0 \ + toml_edit-0.22.27 \ + toml_parser-1.0.2 \ + toml_write-0.1.2 \ + toml_writer-1.0.2 \ tower-0.5.2 \ tower-layer-0.3.3 \ tower-service-0.3.3 \ tracing-0.1.41 \ tracing-appender-0.2.3 \ - tracing-attributes-0.1.28 \ - tracing-core-0.1.33 \ + tracing-attributes-0.1.30 \ + tracing-core-0.1.34 \ tracing-log-0.2.0 \ - tracing-subscriber-0.3.19 \ - tracing-tracy-0.11.3 \ - tracy-client-0.17.6 \ - tracy-client-sys-0.24.3 \ - trait-variant-0.1.2 \ + tracing-subscriber-0.3.20 \ + tracing-tracy-0.11.4 \ + tracy-client-0.18.2 \ + tracy-client-sys-0.26.1 \ treeculler-0.4.0 \ triple_buffer-8.1.1 \ try-lock-0.2.5 \ ttf-parser-0.25.1 \ tuple_utils-0.4.0 \ twox-hash-1.6.3 \ - twox-hash-2.1.0 \ + twox-hash-2.1.2 \ tynm-0.1.10 \ - type-map-0.5.0 \ + type-map-0.5.1 \ typenum-1.18.0 \ ubyte-0.10.4 \ - unic-langid-0.9.5 \ - unic-langid-impl-0.9.5 \ + unic-langid-0.9.6 \ + unic-langid-impl-0.9.6 \ unicode-ident-1.0.18 \ unicode-segmentation-1.12.0 \ unicode-truncate-1.1.0 \ @@ -741,12 +758,13 @@ CARGO_CRATES= ab_glyph-0.2.29 \ unicode-width-0.2.0 \ unicode-xid-0.1.0 \ unicode-xid-0.2.6 \ + unit-prefix-0.5.1 \ untrusted-0.9.0 \ - url-2.5.4 \ - utf16_iter-1.0.5 \ + unty-0.0.4 \ + url-2.5.7 \ utf8_iter-1.0.4 \ utf8parse-0.2.2 \ - uuid-1.16.0 \ + uuid-1.18.1 \ valuable-0.1.1 \ vcpkg-0.2.15 \ vec_map-0.8.2 \ @@ -755,59 +773,63 @@ CARGO_CRATES= ab_glyph-0.2.29 \ version-compare-0.1.1 \ version_check-0.9.5 \ versions-7.0.0 \ + virtue-0.0.18 \ walkdir-2.5.0 \ want-0.3.1 \ - wasi-0.11.0+wasi-snapshot-preview1 \ - wasi-0.14.2+wasi-0.2.4 \ - wasm-bindgen-0.2.100 \ - wasm-bindgen-backend-0.2.100 \ - wasm-bindgen-futures-0.4.45 \ - wasm-bindgen-macro-0.2.100 \ - wasm-bindgen-macro-support-0.2.100 \ - wasm-bindgen-shared-0.2.100 \ - wasm-encoder-0.221.3 \ - wasm-encoder-0.229.0 \ - wasmparser-0.221.3 \ - wasmparser-0.229.0 \ - wasmprinter-0.221.3 \ - wasmtime-29.0.1 \ - wasmtime-asm-macros-29.0.1 \ - wasmtime-cache-29.0.1 \ - wasmtime-component-macro-29.0.1 \ - wasmtime-component-util-29.0.1 \ - wasmtime-cranelift-29.0.1 \ - wasmtime-environ-29.0.1 \ - wasmtime-fiber-29.0.1 \ - wasmtime-jit-debug-29.0.1 \ - wasmtime-jit-icache-coherence-29.0.1 \ - wasmtime-math-29.0.1 \ - wasmtime-slab-29.0.1 \ - wasmtime-versioned-export-macros-29.0.1 \ - wasmtime-wasi-29.0.1 \ - wasmtime-winch-29.0.1 \ - wasmtime-wit-bindgen-29.0.1 \ + wasi-0.11.1+wasi-snapshot-preview1 \ + wasi-0.14.5+wasi-0.2.4 \ + wasip2-1.0.0+wasi-0.2.4 \ + wasm-bindgen-0.2.101 \ + wasm-bindgen-backend-0.2.101 \ + wasm-bindgen-futures-0.4.51 \ + wasm-bindgen-macro-0.2.101 \ + wasm-bindgen-macro-support-0.2.101 \ + wasm-bindgen-shared-0.2.101 \ + wasm-encoder-0.236.1 \ + wasm-encoder-0.239.0 \ + wasmparser-0.236.1 \ + wasmparser-0.239.0 \ + wasmprinter-0.236.1 \ + wasmtime-36.0.2 \ + wasmtime-environ-36.0.2 \ + wasmtime-internal-asm-macros-36.0.2 \ + wasmtime-internal-cache-36.0.2 \ + wasmtime-internal-component-macro-36.0.2 \ + wasmtime-internal-component-util-36.0.2 \ + wasmtime-internal-cranelift-36.0.2 \ + wasmtime-internal-fiber-36.0.2 \ + wasmtime-internal-jit-debug-36.0.2 \ + wasmtime-internal-jit-icache-coherence-36.0.2 \ + wasmtime-internal-math-36.0.2 \ + wasmtime-internal-slab-36.0.2 \ + wasmtime-internal-unwinder-36.0.2 \ + wasmtime-internal-versioned-export-macros-36.0.2 \ + wasmtime-internal-winch-36.0.2 \ + wasmtime-internal-wit-bindgen-36.0.2 \ + wasmtime-wasi-36.0.2 \ + wasmtime-wasi-io-36.0.2 \ wast-35.0.2 \ - wast-229.0.0 \ - wat-1.229.0 \ + wast-239.0.0 \ + wat-1.239.0 \ wavefront-0.2.3 \ - wayland-backend-0.3.10 \ + wayland-backend-0.3.11 \ wayland-client-0.29.5 \ - wayland-client-0.31.10 \ + wayland-client-0.31.11 \ wayland-commons-0.29.5 \ wayland-csd-frame-0.3.0 \ wayland-cursor-0.29.5 \ - wayland-cursor-0.31.10 \ + wayland-cursor-0.31.11 \ wayland-protocols-0.29.5 \ - wayland-protocols-0.32.8 \ - wayland-protocols-plasma-0.3.8 \ - wayland-protocols-wlr-0.3.8 \ + wayland-protocols-0.32.9 \ + wayland-protocols-plasma-0.3.9 \ + wayland-protocols-wlr-0.3.9 \ wayland-scanner-0.29.5 \ - wayland-scanner-0.31.6 \ + wayland-scanner-0.31.7 \ wayland-sys-0.29.5 \ - wayland-sys-0.31.6 \ - web-sys-0.3.77 \ + wayland-sys-0.31.7 \ + web-sys-0.3.78 \ web-time-1.1.0 \ - webpki-root-certs-0.26.10 \ + webpki-root-certs-1.0.2 \ wfd-0.1.7 \ wgpu-26.0.1 \ wgpu-core-26.0.1 \ @@ -819,103 +841,120 @@ CARGO_CRATES= ab_glyph-0.2.29 \ wgpu-types-26.0.0 \ which-7.0.3 \ widestring-1.2.0 \ - wiggle-29.0.1 \ - wiggle-generate-29.0.1 \ - wiggle-macro-29.0.1 \ + wiggle-36.0.2 \ + wiggle-generate-36.0.2 \ + wiggle-macro-36.0.2 \ winapi-0.3.9 \ winapi-i686-pc-windows-gnu-0.4.0 \ - winapi-util-0.1.9 \ + winapi-util-0.1.11 \ winapi-wsapoll-0.1.2 \ winapi-x86_64-pc-windows-gnu-0.4.0 \ - winch-codegen-29.0.1 \ + winch-codegen-36.0.2 \ window_clipboard-0.4.1 \ windows-0.48.0 \ windows-0.54.0 \ windows-0.58.0 \ + windows-0.61.3 \ + windows-collections-0.2.0 \ windows-core-0.54.0 \ windows-core-0.58.0 \ - windows-core-0.61.0 \ + windows-core-0.61.2 \ + windows-future-0.2.1 \ windows-implement-0.58.0 \ windows-implement-0.60.0 \ windows-interface-0.58.0 \ windows-interface-0.59.1 \ - windows-link-0.1.1 \ + windows-link-0.1.3 \ + windows-link-0.2.0 \ + windows-numerics-0.2.0 \ windows-result-0.1.2 \ windows-result-0.2.0 \ - windows-result-0.3.2 \ + windows-result-0.3.4 \ windows-strings-0.1.0 \ - windows-strings-0.4.0 \ + windows-strings-0.4.2 \ windows-sys-0.45.0 \ windows-sys-0.48.0 \ windows-sys-0.52.0 \ windows-sys-0.59.0 \ + windows-sys-0.60.2 \ + windows-sys-0.61.0 \ windows-targets-0.42.2 \ windows-targets-0.48.5 \ windows-targets-0.52.6 \ + windows-targets-0.53.3 \ + windows-threading-0.1.0 \ windows_aarch64_gnullvm-0.42.2 \ windows_aarch64_gnullvm-0.48.5 \ windows_aarch64_gnullvm-0.52.6 \ + windows_aarch64_gnullvm-0.53.0 \ windows_aarch64_msvc-0.42.2 \ windows_aarch64_msvc-0.48.5 \ windows_aarch64_msvc-0.52.6 \ + windows_aarch64_msvc-0.53.0 \ windows_i686_gnu-0.42.2 \ windows_i686_gnu-0.48.5 \ windows_i686_gnu-0.52.6 \ + windows_i686_gnu-0.53.0 \ windows_i686_gnullvm-0.52.6 \ + windows_i686_gnullvm-0.53.0 \ windows_i686_msvc-0.42.2 \ windows_i686_msvc-0.48.5 \ windows_i686_msvc-0.52.6 \ + windows_i686_msvc-0.53.0 \ windows_x86_64_gnu-0.42.2 \ windows_x86_64_gnu-0.48.5 \ windows_x86_64_gnu-0.52.6 \ + windows_x86_64_gnu-0.53.0 \ windows_x86_64_gnullvm-0.42.2 \ windows_x86_64_gnullvm-0.48.5 \ windows_x86_64_gnullvm-0.52.6 \ + windows_x86_64_gnullvm-0.53.0 \ windows_x86_64_msvc-0.42.2 \ windows_x86_64_msvc-0.48.5 \ windows_x86_64_msvc-0.52.6 \ + windows_x86_64_msvc-0.53.0 \ winit-0.30.12 \ - winnow-0.7.9 \ + winnow-0.7.13 \ winreg-0.50.0 \ winreg-0.52.0 \ winres-0.1.12 \ winsafe-0.0.19 \ winx-0.36.4 \ - wit-bindgen-rt-0.39.0 \ - wit-parser-0.221.3 \ + wit-bindgen-0.45.1 \ + wit-parser-0.236.1 \ witx-0.9.1 \ - write16-1.0.0 \ - writeable-0.5.5 \ + writeable-0.6.1 \ wyz-0.5.1 \ x11-clipboard-0.7.1 \ x11-dl-2.21.0 \ x11rb-0.10.1 \ - x11rb-0.13.1 \ + x11rb-0.13.2 \ x11rb-protocol-0.10.0 \ - x11rb-protocol-0.13.1 \ - xattr-1.5.0 \ - xcursor-0.3.8 \ + x11rb-protocol-0.13.2 \ + xattr-1.5.1 \ + xcursor-0.3.10 \ xdg-2.5.2 \ xi-unicode-0.3.0 \ xkbcommon-dl-0.4.2 \ xkeysym-0.2.1 \ - xml-rs-0.8.26 \ + xml-rs-0.8.27 \ xmlparser-0.13.6 \ yasna-0.5.2 \ - yoke-0.7.5 \ - yoke-derive-0.7.5 \ - zerocopy-0.8.25 \ - zerocopy-derive-0.8.25 \ + yoke-0.8.0 \ + yoke-derive-0.8.0 \ + zerocopy-0.8.27 \ + zerocopy-derive-0.8.27 \ zerofrom-0.1.6 \ zerofrom-derive-0.1.6 \ zeroize-1.8.1 \ - zerovec-0.10.4 \ - zerovec-derive-0.10.3 \ + zerotrie-0.2.2 \ + zerovec-0.11.4 \ + zerovec-derive-0.11.1 \ zstd-0.13.3 \ zstd-safe-7.2.4 \ - zstd-sys-2.0.15+zstd.1.5.7 \ + zstd-sys-2.0.16+zstd.1.5.7 \ zune-core-0.4.12 \ - zune-jpeg-0.4.14 \ + zune-jpeg-0.4.21 \ specs,specs-derive@git+https://github.com/amethyst/specs.git?rev=4e2da1df29ee840baa9b936593c45592b7c9ae27\#4e2da1df29ee840baa9b936593c45592b7c9ae27 \ auth-common,authc@git+https://gitlab.com/veloren/auth.git?rev=ae0e16783a9f9041951296885f082308e155db79\#ae0e16783a9f9041951296885f082308e155db79 \ iced_core,iced_futures,iced_native@git+https://github.com/Imberflur/iced?tag=veloren-winit-0.28\#47243c257c8b8dd6c506b060804cb00b618aa0aa \ diff --git a/games/veloren-weekly/distinfo b/games/veloren-weekly/distinfo index b14522a498f5..9d0f967e977a 100644 --- a/games/veloren-weekly/distinfo +++ b/games/veloren-weekly/distinfo @@ -1,12 +1,14 @@ -TIMESTAMP = 1756940516 -SHA256 (rust/crates/ab_glyph-0.2.29.crate) = ec3672c180e71eeaaac3a541fbbc5f5ad4def8b747c595ad30d674e43049f7b0 -SIZE (rust/crates/ab_glyph-0.2.29.crate) = 20011 -SHA256 (rust/crates/ab_glyph_rasterizer-0.1.8.crate) = c71b1793ee61086797f5c80b6efa2b8ffa6d5dd703f118545808a7f2e27f7046 -SIZE (rust/crates/ab_glyph_rasterizer-0.1.8.crate) = 11010 +TIMESTAMP = 1757497798 +SHA256 (rust/crates/ab_glyph-0.2.31.crate) = e074464580a518d16a7126262fffaaa47af89d4099d4cb403f8ed938ba12ee7d +SIZE (rust/crates/ab_glyph-0.2.31.crate) = 20909 +SHA256 (rust/crates/ab_glyph_rasterizer-0.1.10.crate) = 366ffbaa4442f4684d91e2cd7c5ea7c4ed8add41959a31447066e279e432b618 +SIZE (rust/crates/ab_glyph_rasterizer-0.1.10.crate) = 11206 SHA256 (rust/crates/addr2line-0.24.2.crate) = dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1 SIZE (rust/crates/addr2line-0.24.2.crate) = 39015 -SHA256 (rust/crates/adler2-2.0.0.crate) = 512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627 -SIZE (rust/crates/adler2-2.0.0.crate) = 13529 +SHA256 (rust/crates/addr2line-0.25.0.crate) = 9acbfca36652500c911ddb767ed433e3ed99b032b5d935be73c6923662db1d43 +SIZE (rust/crates/addr2line-0.25.0.crate) = 41982 +SHA256 (rust/crates/adler2-2.0.1.crate) = 320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa +SIZE (rust/crates/adler2-2.0.1.crate) = 13366 SHA256 (rust/crates/adler32-1.2.0.crate) = aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234 SIZE (rust/crates/adler32-1.2.0.crate) = 6411 SHA256 (rust/crates/ahash-0.4.8.crate) = 0453232ace82dee0dd0b4c87a59bd90f7b53b314f3e0f61fe2ee7c8a16482289 @@ -27,24 +29,22 @@ SHA256 (rust/crates/android-activity-0.6.0.crate) = ef6978589202a00cd7e118380c44 SIZE (rust/crates/android-activity-0.6.0.crate) = 258597 SHA256 (rust/crates/android-properties-0.2.2.crate) = fc7eb209b1518d6bb87b283c20095f5228ecda460da70b44f0802523dea6da04 SIZE (rust/crates/android-properties-0.2.2.crate) = 4563 -SHA256 (rust/crates/android-tzdata-0.1.1.crate) = e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0 -SIZE (rust/crates/android-tzdata-0.1.1.crate) = 7674 SHA256 (rust/crates/android_system_properties-0.1.5.crate) = 819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311 SIZE (rust/crates/android_system_properties-0.1.5.crate) = 5243 SHA256 (rust/crates/anes-0.1.6.crate) = 4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299 SIZE (rust/crates/anes-0.1.6.crate) = 23857 -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.98.crate) = e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487 -SIZE (rust/crates/anyhow-1.0.98.crate) = 53334 +SHA256 (rust/crates/anstream-0.6.20.crate) = 3ae563653d1938f79b1ab1b5e668c87c76a9930414574a6583a7b7e11a8e6192 +SIZE (rust/crates/anstream-0.6.20.crate) = 28797 +SHA256 (rust/crates/anstyle-1.0.11.crate) = 862ed96ca487e809f1c8e5a8447f6ee2cf102f846893800b20cebdf541fc6bbd +SIZE (rust/crates/anstyle-1.0.11.crate) = 15880 +SHA256 (rust/crates/anstyle-parse-0.2.7.crate) = 4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2 +SIZE (rust/crates/anstyle-parse-0.2.7.crate) = 21707 +SHA256 (rust/crates/anstyle-query-1.1.4.crate) = 9e231f6134f61b71076a3eab506c379d4f36122f2af15a9ff04415ea4c3339e2 +SIZE (rust/crates/anstyle-query-1.1.4.crate) = 10192 +SHA256 (rust/crates/anstyle-wincon-3.0.10.crate) = 3e0633414522a32ffaac8ac6cc8f748e090c5717661fddeea04219e2344f5f2a +SIZE (rust/crates/anstyle-wincon-3.0.10.crate) = 12558 +SHA256 (rust/crates/anyhow-1.0.99.crate) = b0674a1ddeecb70197781e945de4b3b8ffb61fa939a5597bcf48503737663100 +SIZE (rust/crates/anyhow-1.0.99.crate) = 53809 SHA256 (rust/crates/anymap2-0.13.0.crate) = d301b3b94cb4b2f23d7917810addbbaff90738e0ca2be692bd027e70d7e0330c SIZE (rust/crates/anymap2-0.13.0.crate) = 17337 SHA256 (rust/crates/app_dirs2-2.5.5.crate) = a7e7b35733e3a8c1ccb90385088dd5b6eaa61325cb4d1ad56e683b5224ff352e @@ -55,8 +55,8 @@ SHA256 (rust/crates/approx-0.4.0.crate) = 3f2a05fd1bd10b2527e20a2cd32d8873d115b8 SIZE (rust/crates/approx-0.4.0.crate) = 14280 SHA256 (rust/crates/approx-0.5.1.crate) = cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6 SIZE (rust/crates/approx-0.5.1.crate) = 15100 -SHA256 (rust/crates/arbitrary-1.4.1.crate) = dde20b3d026af13f561bdd0f15edf01fc734f0dafcedbaf42bba506a9517f223 -SIZE (rust/crates/arbitrary-1.4.1.crate) = 36816 +SHA256 (rust/crates/arbitrary-1.4.2.crate) = c3d036a3c4ab069c7b410a2ce876bd74808d2d0888a82667669f8e783a898bf1 +SIZE (rust/crates/arbitrary-1.4.2.crate) = 38307 SHA256 (rust/crates/arr_macro-0.2.1.crate) = c49336e062fa2ae8aca17a2f99c34d9c1a5d30827e8aff1cb4c294f253afe992 SIZE (rust/crates/arr_macro-0.2.1.crate) = 6504 SHA256 (rust/crates/arr_macro_impl-0.2.1.crate) = 9c6368f9ae5c6ec403ca910327ae0c9437b0a85255b6950c90d497e6177f6e5e @@ -71,12 +71,12 @@ SHA256 (rust/crates/ascii-1.1.0.crate) = d92bec98840b8f03a5ff5413de5293bfcd8bf96 SIZE (rust/crates/ascii-1.1.0.crate) = 36075 SHA256 (rust/crates/ash-0.38.0+1.3.281.crate) = 0bb44936d800fea8f016d7f2311c6a4f97aebd5dc86f09906139ec848cf3a46f SIZE (rust/crates/ash-0.38.0+1.3.281.crate) = 457775 -SHA256 (rust/crates/assets_manager-0.12.5.crate) = 017916aa0241c9944e5e7483d74e9d053edea690a77a36f3bf342c75ad23f7cb -SIZE (rust/crates/assets_manager-0.12.5.crate) = 68736 -SHA256 (rust/crates/async-channel-2.3.1.crate) = 89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a -SIZE (rust/crates/async-channel-2.3.1.crate) = 14576 -SHA256 (rust/crates/async-trait-0.1.88.crate) = e539d3fca749fcee5236ab05e93a52867dd549cc157c8cb7f99595f3cedffdb5 -SIZE (rust/crates/async-trait-0.1.88.crate) = 32084 +SHA256 (rust/crates/assets_manager-0.13.2.crate) = 88efd382e54d403ac4bdf5841d8028f85ef207c8492a19f8427b72be6c3cfc94 +SIZE (rust/crates/assets_manager-0.13.2.crate) = 64678 +SHA256 (rust/crates/async-channel-2.5.0.crate) = 924ed96dd52d1b75e9c1a3e6275715fd320f5f9439fb5a4a11fa51f4221158d2 +SIZE (rust/crates/async-channel-2.5.0.crate) = 18624 +SHA256 (rust/crates/async-trait-0.1.89.crate) = 9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb +SIZE (rust/crates/async-trait-0.1.89.crate) = 32171 SHA256 (rust/crates/atomic-arena-0.1.2.crate) = 73e8ed45f88ed32e6827a96b62d8fd4086d72defc754c5c6bd08470c1aaf648e SIZE (rust/crates/atomic-arena-0.1.2.crate) = 12495 SHA256 (rust/crates/atomic-waker-1.1.2.crate) = 1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0 @@ -85,32 +85,34 @@ SHA256 (rust/crates/atomic_refcell-0.1.13.crate) = 41e67cd8309bbd06cd603a9e693a7 SIZE (rust/crates/atomic_refcell-0.1.13.crate) = 11760 SHA256 (rust/crates/atomicwrites-0.4.4.crate) = 3ef1bb8d1b645fe38d51dfc331d720fb5fc2c94b440c76cc79c80ff265ca33e3 SIZE (rust/crates/atomicwrites-0.4.4.crate) = 6598 -SHA256 (rust/crates/autocfg-1.4.0.crate) = ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26 -SIZE (rust/crates/autocfg-1.4.0.crate) = 17712 +SHA256 (rust/crates/autocfg-1.5.0.crate) = c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8 +SIZE (rust/crates/autocfg-1.5.0.crate) = 18729 SHA256 (rust/crates/axum-0.8.4.crate) = 021e862c184ae977658b36c4500f7feac3221ca5da43e3f25bd04ab6c79a29b5 SIZE (rust/crates/axum-0.8.4.crate) = 175159 SHA256 (rust/crates/axum-core-0.5.2.crate) = 68464cd0412f486726fb3373129ef5d2993f90c34bc2bc1c1e9943b2f4fc7ca6 SIZE (rust/crates/axum-core-0.5.2.crate) = 26212 SHA256 (rust/crates/az-1.2.1.crate) = 7b7e4c2464d97fe331d41de9d5db0def0a96f4d823b8b32a2efd503578988973 SIZE (rust/crates/az-1.2.1.crate) = 27842 -SHA256 (rust/crates/backtrace-0.3.74.crate) = 8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a -SIZE (rust/crates/backtrace-0.3.74.crate) = 88516 +SHA256 (rust/crates/backtrace-0.3.75.crate) = 6806a6321ec58106fea15becdad98371e28d92ccbc7c8f1b3b6dd724fe8f1002 +SIZE (rust/crates/backtrace-0.3.75.crate) = 92665 SHA256 (rust/crates/base64-0.21.7.crate) = 9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567 SIZE (rust/crates/base64-0.21.7.crate) = 82576 SHA256 (rust/crates/base64-0.22.1.crate) = 72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6 SIZE (rust/crates/base64-0.22.1.crate) = 81597 -SHA256 (rust/crates/bincode-1.3.3.crate) = b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad -SIZE (rust/crates/bincode-1.3.3.crate) = 28958 -SHA256 (rust/crates/bindgen-0.70.1.crate) = f49d8fed880d473ea71efb9bf597651e77201bdd4893efe54c9e5d65ae04ce6f -SIZE (rust/crates/bindgen-0.70.1.crate) = 226363 +SHA256 (rust/crates/bincode-2.0.1.crate) = 36eaf5d7b090263e8150820482d5d93cd964a81e4019913c972f4edcc6edb740 +SIZE (rust/crates/bincode-2.0.1.crate) = 70469 +SHA256 (rust/crates/bincode_derive-2.0.1.crate) = bf95709a440f45e986983918d0e8a1f30a9b1df04918fc828670606804ac3c09 +SIZE (rust/crates/bincode_derive-2.0.1.crate) = 7404 +SHA256 (rust/crates/bindgen-0.72.1.crate) = 993776b509cfb49c750f11b8f07a46fa23e0a1386ffc01fb1e7d343efc387895 +SIZE (rust/crates/bindgen-0.72.1.crate) = 246071 SHA256 (rust/crates/bit-set-0.8.0.crate) = 08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3 SIZE (rust/crates/bit-set-0.8.0.crate) = 16289 SHA256 (rust/crates/bit-vec-0.8.0.crate) = 5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7 SIZE (rust/crates/bit-vec-0.8.0.crate) = 24132 SHA256 (rust/crates/bitflags-1.3.2.crate) = bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a SIZE (rust/crates/bitflags-1.3.2.crate) = 23021 -SHA256 (rust/crates/bitflags-2.9.0.crate) = 5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd -SIZE (rust/crates/bitflags-2.9.0.crate) = 47654 +SHA256 (rust/crates/bitflags-2.9.4.crate) = 2261d10cca569e4643e526d8dc2e62e433cc8aba21ab764233731f8d369bf394 +SIZE (rust/crates/bitflags-2.9.4.crate) = 47950 SHA256 (rust/crates/bitvec-1.0.1.crate) = 1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c SIZE (rust/crates/bitvec-1.0.1.crate) = 224375 SHA256 (rust/crates/blake2b_simd-1.0.3.crate) = 06e903a20b159e944f91ec8499fe1e55651480c541ea0a584f5d967c49ad9d99 @@ -123,12 +125,12 @@ SHA256 (rust/crates/block2-0.5.1.crate) = 2c132eebf10f5cad5289222520a4a058514204 SIZE (rust/crates/block2-0.5.1.crate) = 24191 SHA256 (rust/crates/block2-0.6.1.crate) = 340d2f0bdb2a43c1d3cd40513185b2bd7def0aa1052f956455114bc98f82dcf2 SIZE (rust/crates/block2-0.6.1.crate) = 34311 -SHA256 (rust/crates/bumpalo-3.17.0.crate) = 1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf -SIZE (rust/crates/bumpalo-3.17.0.crate) = 91975 -SHA256 (rust/crates/bytemuck-1.23.0.crate) = 9134a6ef01ce4b366b50689c94f82c14bc72bc5d0386829828a2e2752ef7958c -SIZE (rust/crates/bytemuck-1.23.0.crate) = 52534 -SHA256 (rust/crates/bytemuck_derive-1.9.3.crate) = 7ecc273b49b3205b83d648f0690daa588925572cc5063745bfe547fe7ec8e1a1 -SIZE (rust/crates/bytemuck_derive-1.9.3.crate) = 23555 +SHA256 (rust/crates/bumpalo-3.19.0.crate) = 46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43 +SIZE (rust/crates/bumpalo-3.19.0.crate) = 96414 +SHA256 (rust/crates/bytemuck-1.23.2.crate) = 3995eaeebcdf32f91f980d360f78732ddc061097ab4e39991ae7a6ace9194677 +SIZE (rust/crates/bytemuck-1.23.2.crate) = 53021 +SHA256 (rust/crates/bytemuck_derive-1.10.1.crate) = 4f154e572231cb6ba2bd1176980827e3d5dc04cc183a75dea38109fbdd672d29 +SIZE (rust/crates/bytemuck_derive-1.10.1.crate) = 25122 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 @@ -157,10 +159,10 @@ SHA256 (rust/crates/cassowary-0.3.0.crate) = df8670b8c7b9dae1793364eafadf7239c40 SIZE (rust/crates/cassowary-0.3.0.crate) = 22876 SHA256 (rust/crates/cast-0.3.0.crate) = 37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5 SIZE (rust/crates/cast-0.3.0.crate) = 11452 -SHA256 (rust/crates/castaway-0.2.3.crate) = 0abae9be0aaf9ea96a3b1b8b1b55c602ca751eba1b1500220cea4ecbafe7c0d5 -SIZE (rust/crates/castaway-0.2.3.crate) = 11509 -SHA256 (rust/crates/cc-1.2.21.crate) = 8691782945451c1c383942c4874dbe63814f61cb57ef773cda2972682b7bb3c0 -SIZE (rust/crates/cc-1.2.21.crate) = 106117 +SHA256 (rust/crates/castaway-0.2.4.crate) = dec551ab6e7578819132c713a93c022a05d60159dc86e7a7050223577484c55a +SIZE (rust/crates/castaway-0.2.4.crate) = 12546 +SHA256 (rust/crates/cc-1.2.36.crate) = 5252b3d2648e5eedbc1a6f501e3c795e07025c1e93bbf8bbdd6eef7f447a6d54 +SIZE (rust/crates/cc-1.2.36.crate) = 90198 SHA256 (rust/crates/censor-0.3.0.crate) = d41e3b9fdbb9b3edc10dc66a06dc255822f699c432e19403fb966e6d60e0dec4 SIZE (rust/crates/censor-0.3.0.crate) = 5627 SHA256 (rust/crates/cesu8-1.1.0.crate) = 6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c @@ -169,18 +171,16 @@ SHA256 (rust/crates/cexpr-0.6.0.crate) = 6fac387a98bb7c37292057cffc56d62ecb62990 SIZE (rust/crates/cexpr-0.6.0.crate) = 17966 SHA256 (rust/crates/cfg-if-0.1.10.crate) = 4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822 SIZE (rust/crates/cfg-if-0.1.10.crate) = 7933 -SHA256 (rust/crates/cfg-if-1.0.0.crate) = baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd -SIZE (rust/crates/cfg-if-1.0.0.crate) = 7934 +SHA256 (rust/crates/cfg-if-1.0.3.crate) = 2fd1289c04a9ea8cb22300a459a72a385d7c73d3259e2ed7dcb2af674838cfa9 +SIZE (rust/crates/cfg-if-1.0.3.crate) = 8719 SHA256 (rust/crates/cfg_aliases-0.2.1.crate) = 613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724 SIZE (rust/crates/cfg_aliases-0.2.1.crate) = 6355 -SHA256 (rust/crates/chrono-0.4.41.crate) = c469d952047f47f91b68d1cba3f10d63c11d73e4636f24f08daf0278abf01c4d -SIZE (rust/crates/chrono-0.4.41.crate) = 234621 -SHA256 (rust/crates/chrono-tz-0.10.3.crate) = efdce149c370f133a071ca8ef6ea340b7b88748ab0810097a9e2976eaa34b4f3 -SIZE (rust/crates/chrono-tz-0.10.3.crate) = 380709 -SHA256 (rust/crates/chrono-tz-build-0.4.1.crate) = 8f10f8c9340e31fc120ff885fcdb54a0b48e474bbd77cab557f0c30a3e569402 -SIZE (rust/crates/chrono-tz-build-0.4.1.crate) = 11798 -SHA256 (rust/crates/chumsky-0.9.3.crate) = 8eebd66744a15ded14960ab4ccdbfb51ad3b81f51f3f04a80adac98c985396c9 -SIZE (rust/crates/chumsky-0.9.3.crate) = 75112 +SHA256 (rust/crates/chrono-0.4.42.crate) = 145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2 +SIZE (rust/crates/chrono-0.4.42.crate) = 238174 +SHA256 (rust/crates/chrono-tz-0.10.4.crate) = a6139a8597ed92cf816dfb33f5dd6cf0bb93a6adc938f11039f371bc5bcd26c3 +SIZE (rust/crates/chrono-tz-0.10.4.crate) = 794377 +SHA256 (rust/crates/chumsky-0.10.1.crate) = 14377e276b2c8300513dff55ba4cc4142b44e5d6de6d00eb5b2307d650bb4ec1 +SIZE (rust/crates/chumsky-0.10.1.crate) = 175210 SHA256 (rust/crates/ciborium-0.2.2.crate) = 42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e SIZE (rust/crates/ciborium-0.2.2.crate) = 35611 SHA256 (rust/crates/ciborium-io-0.2.2.crate) = 05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757 @@ -189,18 +189,18 @@ SHA256 (rust/crates/ciborium-ll-0.2.2.crate) = 57663b653d948a338bfb3eeba9bb2fd5f SIZE (rust/crates/ciborium-ll-0.2.2.crate) = 14695 SHA256 (rust/crates/clang-sys-1.8.1.crate) = 0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4 SIZE (rust/crates/clang-sys-1.8.1.crate) = 44009 -SHA256 (rust/crates/clap-4.5.37.crate) = eccb054f56cbd38340b380d4a8e69ef1f02f1af43db2f0cc817a4774d80ae071 -SIZE (rust/crates/clap-4.5.37.crate) = 56962 -SHA256 (rust/crates/clap_builder-4.5.37.crate) = efd9466fac8543255d3b1fcad4762c5e116ffe808c8a3043d4263cd4fd4862a2 -SIZE (rust/crates/clap_builder-4.5.37.crate) = 168761 -SHA256 (rust/crates/clap_derive-4.5.32.crate) = 09176aae279615badda0765c0c0b3f6ed53f4709118af73cf4655d85d1530cd7 -SIZE (rust/crates/clap_derive-4.5.32.crate) = 33441 -SHA256 (rust/crates/clap_lex-0.7.4.crate) = f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6 -SIZE (rust/crates/clap_lex-0.7.4.crate) = 12858 +SHA256 (rust/crates/clap-4.5.47.crate) = 7eac00902d9d136acd712710d71823fb8ac8004ca445a89e73a41d45aa712931 +SIZE (rust/crates/clap-4.5.47.crate) = 58354 +SHA256 (rust/crates/clap_builder-4.5.47.crate) = 2ad9bbf750e73b5884fb8a211a9424a1906c1e156724260fdae972f31d70e1d6 +SIZE (rust/crates/clap_builder-4.5.47.crate) = 170016 +SHA256 (rust/crates/clap_derive-4.5.47.crate) = bbfd7eae0b0f1a6e63d4b13c9c478de77c2eb546fba158ad50b4203dc24b9f9c +SIZE (rust/crates/clap_derive-4.5.47.crate) = 33550 +SHA256 (rust/crates/clap_lex-0.7.5.crate) = b94f61472cee1439c0b966b47e3aca9ae07e45d070759512cd390ea2bebc6675 +SIZE (rust/crates/clap_lex-0.7.5.crate) = 13469 SHA256 (rust/crates/clipboard-win-3.1.1.crate) = 9fdf5e01086b6be750428ba4a40619f847eb2e95756eee84b18e06e5f0b50342 SIZE (rust/crates/clipboard-win-3.1.1.crate) = 11964 -SHA256 (rust/crates/clipboard-win-5.4.0.crate) = 15efe7a882b08f34e38556b14f2fb3daa98769d06c7f0c1b076dfd0d983bc892 -SIZE (rust/crates/clipboard-win-5.4.0.crate) = 20559 +SHA256 (rust/crates/clipboard-win-5.4.1.crate) = bde03770d3df201d4fb868f2c9c59e66a3e4e2bd06692a0fe701e7103c7e84d4 +SIZE (rust/crates/clipboard-win-5.4.1.crate) = 20994 SHA256 (rust/crates/clipboard_macos-0.1.1.crate) = 9b7f4aaa047ba3c3630b080bb9860894732ff23e2aee290a418909aa6d5df38f SIZE (rust/crates/clipboard_macos-0.1.1.crate) = 6037 SHA256 (rust/crates/clipboard_wayland-0.2.2.crate) = 003f886bc4e2987729d10c1db3424e7f80809f3fc22dbc16c685738887cb37b8 @@ -209,30 +209,32 @@ SHA256 (rust/crates/clipboard_x11-0.4.2.crate) = 4274ea815e013e0f9f04a2633423e14 SIZE (rust/crates/clipboard_x11-0.4.2.crate) = 4912 SHA256 (rust/crates/cmake-0.1.54.crate) = e7caa3f9de89ddbe2c607f4101924c5abec803763ae9534e4f4d7d8f84aa81f0 SIZE (rust/crates/cmake-0.1.54.crate) = 18955 -SHA256 (rust/crates/cobs-0.2.3.crate) = 67ba02a97a2bd10f4b59b25c7973101c79642302776489e030cd13cdab09ed15 -SIZE (rust/crates/cobs-0.2.3.crate) = 12576 +SHA256 (rust/crates/cobs-0.3.0.crate) = 0fa961b519f0b462e3a3b4a34b64d119eeaca1d59af726fe450bbba07a9fc0a1 +SIZE (rust/crates/cobs-0.3.0.crate) = 15639 SHA256 (rust/crates/codespan-reporting-0.12.0.crate) = fe6d2e5af09e8c8ad56c969f2157a3d4238cebc7c55f0a517728c38f7b200f81 SIZE (rust/crates/codespan-reporting-0.12.0.crate) = 55796 -SHA256 (rust/crates/colorchoice-1.0.3.crate) = 5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990 -SIZE (rust/crates/colorchoice-1.0.3.crate) = 7923 +SHA256 (rust/crates/colorchoice-1.0.4.crate) = b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75 +SIZE (rust/crates/colorchoice-1.0.4.crate) = 8196 SHA256 (rust/crates/combine-4.6.7.crate) = ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd SIZE (rust/crates/combine-4.6.7.crate) = 134808 SHA256 (rust/crates/compact_str-0.8.1.crate) = 3b79c4069c6cad78e2e0cdfcbd26275770669fb39fd308a752dc110e83b9af32 SIZE (rust/crates/compact_str-0.8.1.crate) = 71371 SHA256 (rust/crates/concurrent-queue-2.5.0.crate) = 4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973 SIZE (rust/crates/concurrent-queue-2.5.0.crate) = 22654 -SHA256 (rust/crates/console-0.15.11.crate) = 054ccb5b10f9f2cbf51eb355ca1d05c2d279ce1804688d0db74b4733a5aeafd8 -SIZE (rust/crates/console-0.15.11.crate) = 37822 +SHA256 (rust/crates/console-0.16.1.crate) = b430743a6eb14e9764d4260d4c0d8123087d504eeb9c48f2b2a5e810dd369df4 +SIZE (rust/crates/console-0.16.1.crate) = 39129 SHA256 (rust/crates/console_error_panic_hook-0.1.7.crate) = a06aeb73f470f66dcdbf7223caeebb85984942f22f1adb2a088cf9668146bbbc SIZE (rust/crates/console_error_panic_hook-0.1.7.crate) = 507196 SHA256 (rust/crates/constant_time_eq-0.3.1.crate) = 7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6 SIZE (rust/crates/constant_time_eq-0.3.1.crate) = 11561 +SHA256 (rust/crates/convert_case-0.7.1.crate) = bb402b8d4c85569410425650ce3eddc7d698ed96d39a73f941b08fb63082f1e7 +SIZE (rust/crates/convert_case-0.7.1.crate) = 23816 SHA256 (rust/crates/copypasta-0.8.2.crate) = 133fc8675ee3a4ec9aa513584deda9aa0faeda3586b87f7f0f2ba082c66fb172 SIZE (rust/crates/copypasta-0.8.2.crate) = 13030 SHA256 (rust/crates/core-foundation-0.9.4.crate) = 91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f SIZE (rust/crates/core-foundation-0.9.4.crate) = 27743 -SHA256 (rust/crates/core-foundation-0.10.0.crate) = b55271e5c8c478ad3f38ad24ef34923091e0548492a266d19b3c0b4d82574c63 -SIZE (rust/crates/core-foundation-0.10.0.crate) = 27023 +SHA256 (rust/crates/core-foundation-0.10.1.crate) = b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6 +SIZE (rust/crates/core-foundation-0.10.1.crate) = 28886 SHA256 (rust/crates/core-foundation-sys-0.8.7.crate) = 773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b SIZE (rust/crates/core-foundation-sys-0.8.7.crate) = 37712 SHA256 (rust/crates/core-graphics-0.23.2.crate) = c07782be35f9e1140080c6b96f0d44b739e2278479f64e02fdab4e32dfd8b081 @@ -243,40 +245,46 @@ SHA256 (rust/crates/core-graphics-types-0.2.0.crate) = 3d44a101f213f6c4cdc1853d4 SIZE (rust/crates/core-graphics-types-0.2.0.crate) = 7098 SHA256 (rust/crates/coreaudio-rs-0.11.3.crate) = 321077172d79c662f64f5071a03120748d5bb652f5231570141be24cfcd2bace SIZE (rust/crates/coreaudio-rs-0.11.3.crate) = 42844 -SHA256 (rust/crates/coreaudio-sys-0.2.16.crate) = 2ce857aa0b77d77287acc1ac3e37a05a8c95a2af3647d23b15f263bdaeb7562b -SIZE (rust/crates/coreaudio-sys-0.2.16.crate) = 5480 +SHA256 (rust/crates/coreaudio-sys-0.2.17.crate) = ceec7a6067e62d6f931a2baf6f3a751f4a892595bcec1461a3c94ef9949864b6 +SIZE (rust/crates/coreaudio-sys-0.2.17.crate) = 7591 SHA256 (rust/crates/cpal-0.15.3.crate) = 873dab07c8f743075e57f524c583985fbaf745602acbe916a01539364369a779 SIZE (rust/crates/cpal-0.15.3.crate) = 100083 SHA256 (rust/crates/cpp_demangle-0.4.4.crate) = 96e58d342ad113c2b878f16d5d034c03be492ae460cdbc02b7f0f2284d310c7d SIZE (rust/crates/cpp_demangle-0.4.4.crate) = 79650 SHA256 (rust/crates/cpufeatures-0.2.17.crate) = 59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280 SIZE (rust/crates/cpufeatures-0.2.17.crate) = 13466 -SHA256 (rust/crates/cranelift-bforest-0.116.1.crate) = e15d04a0ce86cb36ead88ad68cf693ffd6cda47052b9e0ac114bc47fd9cd23c4 -SIZE (rust/crates/cranelift-bforest-0.116.1.crate) = 30861 -SHA256 (rust/crates/cranelift-bitset-0.116.1.crate) = 7c6e3969a7ce267259ce244b7867c5d3bc9e65b0a87e81039588dfdeaede9f34 -SIZE (rust/crates/cranelift-bitset-0.116.1.crate) = 8056 -SHA256 (rust/crates/cranelift-codegen-0.116.1.crate) = 2c22032c4cb42558371cf516bb47f26cdad1819d3475c133e93c49f50ebf304e -SIZE (rust/crates/cranelift-codegen-0.116.1.crate) = 1051844 -SHA256 (rust/crates/cranelift-codegen-meta-0.116.1.crate) = c904bc71c61b27fc57827f4a1379f29de64fe95653b620a3db77d59655eee0b8 -SIZE (rust/crates/cranelift-codegen-meta-0.116.1.crate) = 80475 -SHA256 (rust/crates/cranelift-codegen-shared-0.116.1.crate) = 40180f5497572f644ce88c255480981ae2ec1d7bb4d8e0c0136a13b87a2f2ceb -SIZE (rust/crates/cranelift-codegen-shared-0.116.1.crate) = 6155 -SHA256 (rust/crates/cranelift-control-0.116.1.crate) = 26d132c6d0bd8a489563472afc171759da0707804a65ece7ceb15a8c6d7dd5ef -SIZE (rust/crates/cranelift-control-0.116.1.crate) = 8253 -SHA256 (rust/crates/cranelift-entity-0.116.1.crate) = 4b2d0d9618275474fbf679dd018ac6e009acbd6ae6850f6a67be33fb3b00b323 -SIZE (rust/crates/cranelift-entity-0.116.1.crate) = 29325 -SHA256 (rust/crates/cranelift-frontend-0.116.1.crate) = 4fac41e16729107393174b0c9e3730fb072866100e1e64e80a1a963b2e484d57 -SIZE (rust/crates/cranelift-frontend-0.116.1.crate) = 54378 -SHA256 (rust/crates/cranelift-isle-0.116.1.crate) = 1ca20d576e5070044d0a72a9effc2deacf4d6aa650403189d8ea50126483944d -SIZE (rust/crates/cranelift-isle-0.116.1.crate) = 75233 -SHA256 (rust/crates/cranelift-native-0.116.1.crate) = b8dee82f3f1f2c4cba9177f1cc5e350fe98764379bcd29340caa7b01f85076c7 -SIZE (rust/crates/cranelift-native-0.116.1.crate) = 10709 -SHA256 (rust/crates/crc32fast-1.4.2.crate) = a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3 -SIZE (rust/crates/crc32fast-1.4.2.crate) = 38491 -SHA256 (rust/crates/criterion-0.5.1.crate) = f2b12d017a929603d80db1831cd3a24082f8137ce19c69e6447f54f5fc8d692f -SIZE (rust/crates/criterion-0.5.1.crate) = 110088 -SHA256 (rust/crates/criterion-plot-0.5.0.crate) = 6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1 -SIZE (rust/crates/criterion-plot-0.5.0.crate) = 22706 +SHA256 (rust/crates/cranelift-assembler-x64-0.123.2.crate) = 0920ef6863433fa28ece7e53925be4cd39a913adba2dc3738f4edd182f76d168 +SIZE (rust/crates/cranelift-assembler-x64-0.123.2.crate) = 25503 +SHA256 (rust/crates/cranelift-assembler-x64-meta-0.123.2.crate) = 8990a217e2529a378af1daf4f8afa889f928f07ebbde6ae2f058ae60e40e2c20 +SIZE (rust/crates/cranelift-assembler-x64-meta-0.123.2.crate) = 45912 +SHA256 (rust/crates/cranelift-bforest-0.123.2.crate) = 62225596b687f69a42c038485a28369badc186cb7c74bd9436eeec9f539011b1 +SIZE (rust/crates/cranelift-bforest-0.123.2.crate) = 30977 +SHA256 (rust/crates/cranelift-bitset-0.123.2.crate) = c23914fc4062558650a6f0d8c1846c97b541215a291fdeabc85f68bdc9bbcca3 +SIZE (rust/crates/cranelift-bitset-0.123.2.crate) = 8528 +SHA256 (rust/crates/cranelift-codegen-0.123.2.crate) = 41a238b2f7e7ec077eb170145fa15fd8b3d0f36cc83d8e354e29ca550f339ca7 +SIZE (rust/crates/cranelift-codegen-0.123.2.crate) = 1063626 +SHA256 (rust/crates/cranelift-codegen-meta-0.123.2.crate) = 9315ddcc2512513a9d66455ec89bb70ae5498cb472f5ed990230536f4cd5c011 +SIZE (rust/crates/cranelift-codegen-meta-0.123.2.crate) = 90269 +SHA256 (rust/crates/cranelift-codegen-shared-0.123.2.crate) = dc6acea40ef860f28cb36eaad479e26556c1e538b0a66fc44598cf1b1689393d +SIZE (rust/crates/cranelift-codegen-shared-0.123.2.crate) = 6184 +SHA256 (rust/crates/cranelift-control-0.123.2.crate) = 6b2af895da90761cfda4a4445960554fcec971e637882eda5a87337d993fe1b9 +SIZE (rust/crates/cranelift-control-0.123.2.crate) = 8295 +SHA256 (rust/crates/cranelift-entity-0.123.2.crate) = 6e8c542c856feb50d504e4fc0526b3db3a514f882a9f68f956164531517828ab +SIZE (rust/crates/cranelift-entity-0.123.2.crate) = 30369 +SHA256 (rust/crates/cranelift-frontend-0.123.2.crate) = 9996dd9c20929c03360fe0c4edf3594c0cbb94525bdbfa04b6bb639ec14573c7 +SIZE (rust/crates/cranelift-frontend-0.123.2.crate) = 57323 +SHA256 (rust/crates/cranelift-isle-0.123.2.crate) = 928b8dccad51b9e0ffe54accbd617da900239439b13d48f0f122ab61105ca6ad +SIZE (rust/crates/cranelift-isle-0.123.2.crate) = 79067 +SHA256 (rust/crates/cranelift-native-0.123.2.crate) = 7f75ef0a6a2efed3a2a14812318e28dc82c214eab5399c13d70878e2f88947b5 +SIZE (rust/crates/cranelift-native-0.123.2.crate) = 11223 +SHA256 (rust/crates/cranelift-srcgen-0.123.2.crate) = 673bd6d1c83cb41d60afb140a1474ef6caf1a3e02f3820fc522aefbc93ac67d6 +SIZE (rust/crates/cranelift-srcgen-0.123.2.crate) = 6068 +SHA256 (rust/crates/crc32fast-1.5.0.crate) = 9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511 +SIZE (rust/crates/crc32fast-1.5.0.crate) = 40723 +SHA256 (rust/crates/criterion-0.7.0.crate) = e1c047a62b0cc3e145fa84415a3191f628e980b194c2755aa12300a4e6cbd928 +SIZE (rust/crates/criterion-0.7.0.crate) = 119908 +SHA256 (rust/crates/criterion-plot-0.6.0.crate) = 9b1bcc0dc7dfae599d84ad0b1a55f80cde8af3725da8313b528da95ef783e338 +SIZE (rust/crates/criterion-plot-0.6.0.crate) = 24495 SHA256 (rust/crates/critical-section-1.2.0.crate) = 790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b SIZE (rust/crates/critical-section-1.2.0.crate) = 19133 SHA256 (rust/crates/crossbeam-channel-0.5.15.crate) = 82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2 @@ -297,10 +305,12 @@ SHA256 (rust/crates/crossbeam-utils-0.8.21.crate) = d0a5c400df2834b80a4c3327b3aa SIZE (rust/crates/crossbeam-utils-0.8.21.crate) = 42691 SHA256 (rust/crates/crossterm-0.28.1.crate) = 829d955a0bb380ef178a640b91779e3987da38c9aea133b20614cfed8cdea9c6 SIZE (rust/crates/crossterm-0.28.1.crate) = 132275 +SHA256 (rust/crates/crossterm-0.29.0.crate) = d8b9f2e4c67f833b660cdb0a3523065869fb35570177239812ed4c905aeff87b +SIZE (rust/crates/crossterm-0.29.0.crate) = 136635 SHA256 (rust/crates/crossterm_winapi-0.9.1.crate) = acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b SIZE (rust/crates/crossterm_winapi-0.9.1.crate) = 16027 -SHA256 (rust/crates/crunchy-0.2.3.crate) = 43da5946c66ffcc7745f48db692ffbb10a83bfe0afd96235c5c2a4fb23994929 -SIZE (rust/crates/crunchy-0.2.3.crate) = 3775 +SHA256 (rust/crates/crunchy-0.2.4.crate) = 460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5 +SIZE (rust/crates/crunchy-0.2.4.crate) = 3887 SHA256 (rust/crates/crypto-common-0.1.6.crate) = 1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3 SIZE (rust/crates/crypto-common-0.1.6.crate) = 8760 SHA256 (rust/crates/csv-1.3.1.crate) = acdc4883a9c96732e4733212c01447ebd805833b7275a73ca3ee080fd77afdaf @@ -311,16 +321,22 @@ SHA256 (rust/crates/culpa-1.0.2.crate) = 5ae0bfe9317b1cb4ff5a56d766ee4b157b3e1f4 SIZE (rust/crates/culpa-1.0.2.crate) = 10733 SHA256 (rust/crates/culpa-macros-1.0.2.crate) = 1234e1717066d3c71dcf89b75e7b586299e41204d361db56ec51e6ded5014279 SIZE (rust/crates/culpa-macros-1.0.2.crate) = 3325 -SHA256 (rust/crates/cursor-icon-1.1.0.crate) = 96a6ac251f4a2aca6b3f91340350eab87ae57c3f127ffeb585e92bd336717991 -SIZE (rust/crates/cursor-icon-1.1.0.crate) = 11453 +SHA256 (rust/crates/cursor-icon-1.2.0.crate) = f27ae1dd37df86211c42e150270f82743308803d90a6f6e6651cd730d5e1732f +SIZE (rust/crates/cursor-icon-1.2.0.crate) = 14267 SHA256 (rust/crates/daggy-0.5.0.crate) = 9293a0da7d1bc1f30090ece4d9f9de79a07be7302ddb00e5eb1fefb6ee6409e2 SIZE (rust/crates/daggy-0.5.0.crate) = 17832 SHA256 (rust/crates/darling-0.20.11.crate) = fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee SIZE (rust/crates/darling-0.20.11.crate) = 37614 +SHA256 (rust/crates/darling-0.21.3.crate) = 9cdf337090841a411e2a7f3deb9187445851f91b309c0c0a29e05f74a00a48c0 +SIZE (rust/crates/darling-0.21.3.crate) = 41398 SHA256 (rust/crates/darling_core-0.20.11.crate) = 0d00b9596d185e565c2207a0b01f8bd1a135483d02d9b7b0a54b11da8d53412e SIZE (rust/crates/darling_core-0.20.11.crate) = 68006 +SHA256 (rust/crates/darling_core-0.21.3.crate) = 1247195ecd7e3c85f83c8d2a366e4210d588e802133e1e355180a9870b517ea4 +SIZE (rust/crates/darling_core-0.21.3.crate) = 74471 SHA256 (rust/crates/darling_macro-0.20.11.crate) = fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead SIZE (rust/crates/darling_macro-0.20.11.crate) = 2532 +SHA256 (rust/crates/darling_macro-0.21.3.crate) = d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81 +SIZE (rust/crates/darling_macro-0.21.3.crate) = 2535 SHA256 (rust/crates/dasp_sample-0.11.0.crate) = 0c87e182de0887fd5361989c677c4e8f5000cd9491d6d563161a8f3a5519fc7f SIZE (rust/crates/dasp_sample-0.11.0.crate) = 11617 SHA256 (rust/crates/data-encoding-2.9.0.crate) = 2a2330da5de22e8a3cb63252ce2abb30116bf5265e89c0e01bc17015ce30a476 @@ -331,18 +347,18 @@ SHA256 (rust/crates/deflate-1.0.0.crate) = c86f7e25f518f4b81808a2cf1c50996a61f5c SIZE (rust/crates/deflate-1.0.0.crate) = 62722 SHA256 (rust/crates/delaunator-1.0.2.crate) = 0ab46e386c7a38300a0d93b0f3e484bc2ee0aded66c47b14762ec9ab383934fa SIZE (rust/crates/delaunator-1.0.2.crate) = 95108 -SHA256 (rust/crates/deranged-0.4.0.crate) = 9c9e6a11ca8224451684bc0d7d5a7adbf8f2fd6887261a1cfc3c0432f9d4068e -SIZE (rust/crates/deranged-0.4.0.crate) = 23235 +SHA256 (rust/crates/deranged-0.5.3.crate) = d630bccd429a5bb5a64b5e94f693bfc48c9f8566418fda4c494cc94f911f87cc +SIZE (rust/crates/deranged-0.5.3.crate) = 24353 +SHA256 (rust/crates/derive_more-2.0.1.crate) = 093242cf7570c207c83073cf82f79706fe7b8317e98620a47d5be7c3d8497678 +SIZE (rust/crates/derive_more-2.0.1.crate) = 70127 +SHA256 (rust/crates/derive_more-impl-2.0.1.crate) = bda628edc44c4bb645fbe0f758797143e4e07926f7ebf4e9bdfbd3d2ce621df3 +SIZE (rust/crates/derive_more-impl-2.0.1.crate) = 78233 SHA256 (rust/crates/digest-0.10.7.crate) = 9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292 SIZE (rust/crates/digest-0.10.7.crate) = 19557 SHA256 (rust/crates/directories-next-2.0.0.crate) = 339ee130d97a610ea5a5872d2bbb130fdf68884ff09d3028b81bec8a1ac23bbc SIZE (rust/crates/directories-next-2.0.0.crate) = 15153 -SHA256 (rust/crates/dirs-4.0.0.crate) = ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059 -SIZE (rust/crates/dirs-4.0.0.crate) = 12503 SHA256 (rust/crates/dirs-6.0.0.crate) = c3e8aa94d75141228480295a7d0e7feb620b1a5ad9f12bc40be62411e38cce4e SIZE (rust/crates/dirs-6.0.0.crate) = 14190 -SHA256 (rust/crates/dirs-sys-0.3.7.crate) = 1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6 -SIZE (rust/crates/dirs-sys-0.3.7.crate) = 10597 SHA256 (rust/crates/dirs-sys-0.5.0.crate) = e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab SIZE (rust/crates/dirs-sys-0.5.0.crate) = 10157 SHA256 (rust/crates/dirs-sys-next-0.1.2.crate) = 4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d @@ -371,10 +387,12 @@ SHA256 (rust/crates/dpi-0.1.2.crate) = d8b14ccef22fc6f5a8f4d7d768562a182c04ce9a3 SIZE (rust/crates/dpi-0.1.2.crate) = 14812 SHA256 (rust/crates/drop_guard-0.3.0.crate) = 2c4a817d8b683f6e649aed359aab0c47a875377516bb5791d0f7e46d9066d209 SIZE (rust/crates/drop_guard-0.3.0.crate) = 4614 -SHA256 (rust/crates/ecolor-0.32.1.crate) = b6a7fc3172c2ef56966b2ce4f84177e159804c40b9a84de8861558ce4a59f422 -SIZE (rust/crates/ecolor-0.32.1.crate) = 16363 -SHA256 (rust/crates/egui-0.32.1.crate) = 49e2be082f77715496b4a39fdc6f5dc7491fefe2833111781b8697ea6ee919a7 -SIZE (rust/crates/egui-0.32.1.crate) = 390134 +SHA256 (rust/crates/dyn-clone-1.0.20.crate) = d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555 +SIZE (rust/crates/dyn-clone-1.0.20.crate) = 13134 +SHA256 (rust/crates/ecolor-0.32.2.crate) = ebb57dec02e4cca6d70d02e29865f7e52dbd471383f4c3444dda7ee78d467360 +SIZE (rust/crates/ecolor-0.32.2.crate) = 16361 +SHA256 (rust/crates/egui-0.32.2.crate) = 40df1115b8b0f3d4f1f9134a26287fd3d0e067fc18f879b8c9641aedf3eecef7 +SIZE (rust/crates/egui-0.32.2.crate) = 390290 SHA256 (rust/crates/egui_plot-0.33.0.crate) = 524318041a8ea90c81c738e8985f8ad9e3f9bed636b03c2ff37b218113ed5121 SIZE (rust/crates/egui_plot-0.33.0.crate) = 50709 SHA256 (rust/crates/egui_wgpu_backend-0.35.0.crate) = 00298a0625eba5b3a4f39444766d2590e45fa550446fb07dfefc90e84797f4f3 @@ -385,8 +403,8 @@ SHA256 (rust/crates/either-1.15.0.crate) = 48c757948c5ede0e46177b7add2e67155f70e SIZE (rust/crates/either-1.15.0.crate) = 20114 SHA256 (rust/crates/elapsed-0.1.2.crate) = 6f4e5af126dafd0741c2ad62d47f68b28602550102e5f0dd45c8a97fc8b49c29 SIZE (rust/crates/elapsed-0.1.2.crate) = 2377 -SHA256 (rust/crates/emath-0.32.1.crate) = 935df67dc48fdeef132f2f7ada156ddc79e021344dd42c17f066b956bb88dde3 -SIZE (rust/crates/emath-0.32.1.crate) = 32349 +SHA256 (rust/crates/emath-0.32.2.crate) = b5c95b6d5571099bfa0ae9f4fdaef2c239bccb01d55339a082070259dc6f3b05 +SIZE (rust/crates/emath-0.32.2.crate) = 32352 SHA256 (rust/crates/embedded-io-0.4.0.crate) = ef1a6892d9eef45c8fa6b9e0086428a2cca8491aca8f787c534a3d6d0bcb3ced SIZE (rust/crates/embedded-io-0.4.0.crate) = 12901 SHA256 (rust/crates/embedded-io-0.6.1.crate) = edd0f118536f44f5ccd48bcb8b111bdc3de888b58c74639dfb034a357d0f206d @@ -403,44 +421,48 @@ SHA256 (rust/crates/enum-map-2.7.3.crate) = 6866f3bfdf8207509a033af1a75a7b08abda SIZE (rust/crates/enum-map-2.7.3.crate) = 21792 SHA256 (rust/crates/enum-map-derive-0.17.0.crate) = f282cfdfe92516eb26c2af8589c274c7c17681f5ecc03c18255fe741c6aa64eb SIZE (rust/crates/enum-map-derive-0.17.0.crate) = 10781 -SHA256 (rust/crates/enumset-1.1.6.crate) = 11a6b7c3d347de0a9f7bfd2f853be43fe32fa6fac30c70f6d6d67a1e936b87ee -SIZE (rust/crates/enumset-1.1.6.crate) = 29044 -SHA256 (rust/crates/enumset_derive-0.11.0.crate) = 6da3ea9e1d1a3b1593e15781f930120e72aa7501610b2f82e5b6739c72e8eac5 -SIZE (rust/crates/enumset_derive-0.11.0.crate) = 14602 +SHA256 (rust/crates/enumset-1.1.10.crate) = 25b07a8dfbbbfc0064c0a6bdf9edcf966de6b1c33ce344bdeca3b41615452634 +SIZE (rust/crates/enumset-1.1.10.crate) = 31353 +SHA256 (rust/crates/enumset_derive-0.14.0.crate) = f43e744e4ea338060faee68ed933e46e722fb7f3617e722a5772d7e856d8b3ce +SIZE (rust/crates/enumset_derive-0.14.0.crate) = 17657 SHA256 (rust/crates/env_home-0.1.0.crate) = c7f84e12ccf0a7ddc17a6c41c93326024c42920d7ee630d04950e6926645c0fe SIZE (rust/crates/env_home-0.1.0.crate) = 9006 -SHA256 (rust/crates/epaint-0.32.1.crate) = b66fc0a5a9d322917de9bd3ac7d426ca8aa3127fbf1e76fae5b6b25e051e06a3 -SIZE (rust/crates/epaint-0.32.1.crate) = 105241 -SHA256 (rust/crates/epaint_default_fonts-0.32.1.crate) = 4f6cf8ce0fb817000aa24f5e630bda904a353536bd430b83ebc1dceee95b4a3a -SIZE (rust/crates/epaint_default_fonts-0.32.1.crate) = 784120 +SHA256 (rust/crates/epaint-0.32.2.crate) = 695fd7b458f31fe515d6a308f46b2936cae9316dc40c960a7ee31ce3a97866b9 +SIZE (rust/crates/epaint-0.32.2.crate) = 105458 +SHA256 (rust/crates/epaint_default_fonts-0.32.2.crate) = bbc9f86ce3eaf9b7fc7179a578af21a6a5cd2d4fd21965564e82a2d009a7dab0 +SIZE (rust/crates/epaint_default_fonts-0.32.2.crate) = 784117 SHA256 (rust/crates/equivalent-1.0.2.crate) = 877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f SIZE (rust/crates/equivalent-1.0.2.crate) = 7419 -SHA256 (rust/crates/errno-0.3.11.crate) = 976dd42dc7e85965fe702eb8164f21f450704bdde31faefd6471dba214cb594e -SIZE (rust/crates/errno-0.3.11.crate) = 12048 +SHA256 (rust/crates/errno-0.3.14.crate) = 39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb +SIZE (rust/crates/errno-0.3.14.crate) = 12002 SHA256 (rust/crates/error-chain-0.12.4.crate) = 2d2f06b9cac1506ece98fe3231e3cc9c4410ec3d5b1f24ae1c8946f0742cdefc SIZE (rust/crates/error-chain-0.12.4.crate) = 29274 -SHA256 (rust/crates/error-code-3.3.1.crate) = a5d9305ccc6942a704f4335694ecd3de2ea531b114ac2d51f5f843750787a92f -SIZE (rust/crates/error-code-3.3.1.crate) = 7646 +SHA256 (rust/crates/error-code-3.3.2.crate) = dea2df4cf52843e0452895c455a1a2cfbb842a1e7329671acf418fdc53ed4c59 +SIZE (rust/crates/error-code-3.3.2.crate) = 8516 SHA256 (rust/crates/euc-0.5.3.crate) = 0947d06646d28a4ac2862ac5eadc1062704d61ee398b3baba8b4a21e2f1ef5ed SIZE (rust/crates/euc-0.5.3.crate) = 70369 SHA256 (rust/crates/euclid-0.22.11.crate) = ad9cdb4b747e485a12abb0e6566612956c7a1bafa3bdb8d682c5b6d403589e48 SIZE (rust/crates/euclid-0.22.11.crate) = 79261 -SHA256 (rust/crates/event-listener-5.4.0.crate) = 3492acde4c3fc54c845eaab3eed8bd00c7a7d881f78bfc801e43a93dec1331ae -SIZE (rust/crates/event-listener-5.4.0.crate) = 43452 +SHA256 (rust/crates/event-listener-5.4.1.crate) = e13b66accf52311f30a0db42147dadea9850cb48cd070028831ae5f5d4b856ab +SIZE (rust/crates/event-listener-5.4.1.crate) = 43782 SHA256 (rust/crates/event-listener-strategy-0.5.4.crate) = 8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93 SIZE (rust/crates/event-listener-strategy-0.5.4.crate) = 16179 SHA256 (rust/crates/fallible-iterator-0.3.0.crate) = 2acce4a10f12dc2fb14a218589d4f1f62ef011b2d0cc4b3cb1bba8e94da14649 SIZE (rust/crates/fallible-iterator-0.3.0.crate) = 19639 SHA256 (rust/crates/fallible-streaming-iterator-0.1.9.crate) = 7360491ce676a36bf9bb3c56c1aa791658183a54d2744120f27285738d90465a SIZE (rust/crates/fallible-streaming-iterator-0.1.9.crate) = 9249 +SHA256 (rust/crates/fastbloom-0.14.0.crate) = 18c1ddb9231d8554c2d6bdf4cfaabf0c59251658c68b6c95cd52dd0c513a912a +SIZE (rust/crates/fastbloom-0.14.0.crate) = 23827 SHA256 (rust/crates/fastrand-2.3.0.crate) = 37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be SIZE (rust/crates/fastrand-2.3.0.crate) = 15076 SHA256 (rust/crates/fd-lock-4.0.4.crate) = 0ce92ff622d6dadf7349484f42c93271a0d49b7cc4d466a936405bacbe10aa78 SIZE (rust/crates/fd-lock-4.0.4.crate) = 15522 SHA256 (rust/crates/fdeflate-0.3.7.crate) = 1e6853b52649d4ac5c0bd02320cddc5ba956bdb407c4b75a2c6b75bf51500f8c SIZE (rust/crates/fdeflate-0.3.7.crate) = 27188 -SHA256 (rust/crates/filetime-0.2.25.crate) = 35c0522e981e68cbfa8c3f978441a5f34b30b96e146b33cd3359176b50fe8586 -SIZE (rust/crates/filetime-0.2.25.crate) = 14940 +SHA256 (rust/crates/filetime-0.2.26.crate) = bc0505cd1b6fa6580283f6bdf70a73fcf4aba1184038c90902b92b3dd0df63ed +SIZE (rust/crates/filetime-0.2.26.crate) = 17273 +SHA256 (rust/crates/find-msvc-tools-0.1.1.crate) = 7fd99930f64d146689264c637b5af2f0233a933bef0d8570e2526bf9e083192d +SIZE (rust/crates/find-msvc-tools-0.1.1.crate) = 30228 SHA256 (rust/crates/find_folder-0.3.0.crate) = 9f6d018fb95a0b59f854aed68ecd96ce2b80af7911b92b1fed3c4b1fa516b91b SIZE (rust/crates/find_folder-0.3.0.crate) = 2617 SHA256 (rust/crates/fixed-1.29.0.crate) = 707070ccf8c4173548210893a0186e29c266901b71ed20cd9e2ca0193dfe95c3 @@ -449,30 +471,32 @@ SHA256 (rust/crates/fixedbitset-0.1.9.crate) = 86d4de0081402f5e88cdac65c8dcdcc73 SIZE (rust/crates/fixedbitset-0.1.9.crate) = 11974 SHA256 (rust/crates/fixedbitset-0.5.7.crate) = 1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99 SIZE (rust/crates/fixedbitset-0.5.7.crate) = 26537 -SHA256 (rust/crates/flate2-1.1.1.crate) = 7ced92e76e966ca2fd84c8f7aa01a4aea65b0eb6648d72f7c8f3e2764a67fece -SIZE (rust/crates/flate2-1.1.1.crate) = 77224 +SHA256 (rust/crates/flate2-1.1.2.crate) = 4a3d7db9596fecd151c5f638c0ee5d5bd487b6e0ea232e5dc96d5250f6f94b1d +SIZE (rust/crates/flate2-1.1.2.crate) = 76495 SHA256 (rust/crates/float-cmp-0.10.0.crate) = b09cf3155332e944990140d967ff5eceb70df778b34f77d8075db46e4704e6d8 SIZE (rust/crates/float-cmp-0.10.0.crate) = 10702 -SHA256 (rust/crates/fluent-0.16.1.crate) = bb74634707bebd0ce645a981148e8fb8c7bccd4c33c652aeffd28bf2f96d555a -SIZE (rust/crates/fluent-0.16.1.crate) = 8323 -SHA256 (rust/crates/fluent-bundle-0.15.3.crate) = 7fe0a21ee80050c678013f82edf4b705fe2f26f1f9877593d13198612503f493 -SIZE (rust/crates/fluent-bundle-0.15.3.crate) = 34507 +SHA256 (rust/crates/fluent-0.17.0.crate) = 8137a6d5a2c50d6b0ebfcb9aaa91a28154e0a70605f112d30cb0cd4a78670477 +SIZE (rust/crates/fluent-0.17.0.crate) = 10282 +SHA256 (rust/crates/fluent-bundle-0.16.0.crate) = 01203cb8918f5711e73891b347816d932046f95f54207710bda99beaeb423bf4 +SIZE (rust/crates/fluent-bundle-0.16.0.crate) = 35301 SHA256 (rust/crates/fluent-langneg-0.13.0.crate) = 2c4ad0989667548f06ccd0e306ed56b61bd4d35458d54df5ec7587c0e8ed5e94 SIZE (rust/crates/fluent-langneg-0.13.0.crate) = 11723 -SHA256 (rust/crates/fluent-syntax-0.11.1.crate) = 2a530c4694a6a8d528794ee9bbd8ba0122e779629ac908d15ad5a7ae7763a33d -SIZE (rust/crates/fluent-syntax-0.11.1.crate) = 32297 +SHA256 (rust/crates/fluent-syntax-0.12.0.crate) = 54f0d287c53ffd184d04d8677f590f4ac5379785529e5e08b1c8083acdd5c198 +SIZE (rust/crates/fluent-syntax-0.12.0.crate) = 32438 SHA256 (rust/crates/fnv-1.0.7.crate) = 3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1 SIZE (rust/crates/fnv-1.0.7.crate) = 11266 SHA256 (rust/crates/foldhash-0.1.5.crate) = d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2 SIZE (rust/crates/foldhash-0.1.5.crate) = 21901 +SHA256 (rust/crates/foldhash-0.2.0.crate) = 77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb +SIZE (rust/crates/foldhash-0.2.0.crate) = 23329 SHA256 (rust/crates/foreign-types-0.5.0.crate) = d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965 SIZE (rust/crates/foreign-types-0.5.0.crate) = 7824 SHA256 (rust/crates/foreign-types-macros-0.2.3.crate) = 1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742 SIZE (rust/crates/foreign-types-macros-0.2.3.crate) = 7635 SHA256 (rust/crates/foreign-types-shared-0.3.1.crate) = aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b SIZE (rust/crates/foreign-types-shared-0.3.1.crate) = 6006 -SHA256 (rust/crates/form_urlencoded-1.2.1.crate) = e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456 -SIZE (rust/crates/form_urlencoded-1.2.1.crate) = 8969 +SHA256 (rust/crates/form_urlencoded-1.2.2.crate) = cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf +SIZE (rust/crates/form_urlencoded-1.2.2.crate) = 9347 SHA256 (rust/crates/formatx-0.2.4.crate) = d8866fac38f53fc87fa3ae1b09ddd723e0482f8fa74323518b4c59df2c55a00a SIZE (rust/crates/formatx-0.2.4.crate) = 15119 SHA256 (rust/crates/fs-set-times-0.20.3.crate) = 94e7099f6313ecacbe1256e8ff9d617b75d1bcb16a6fddef94866d225a01a14a @@ -505,30 +529,32 @@ SHA256 (rust/crates/fxprof-processed-profile-0.6.0.crate) = 27d12c0aed7f1e24276a SIZE (rust/crates/fxprof-processed-profile-0.6.0.crate) = 29860 SHA256 (rust/crates/generator-0.7.5.crate) = 5cc16584ff22b460a382b7feec54b23d2908d858152e5739a120b949293bd74e SIZE (rust/crates/generator-0.7.5.crate) = 29947 -SHA256 (rust/crates/generator-0.8.4.crate) = cc6bd114ceda131d3b1d665eba35788690ad37f5916457286b32ab6fd3c438dd -SIZE (rust/crates/generator-0.8.4.crate) = 34400 +SHA256 (rust/crates/generator-0.8.7.crate) = 605183a538e3e2a9c1038635cc5c2d194e2ee8fd0d1b66b8349fad7dbacce5a2 +SIZE (rust/crates/generator-0.8.7.crate) = 37332 SHA256 (rust/crates/generic-array-0.14.7.crate) = 85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a SIZE (rust/crates/generic-array-0.14.7.crate) = 15950 SHA256 (rust/crates/gethostname-0.2.3.crate) = c1ebd34e35c46e00bb73e81363248d627782724609fe1b6396f553f68fe3862e SIZE (rust/crates/gethostname-0.2.3.crate) = 8174 -SHA256 (rust/crates/gethostname-0.4.3.crate) = 0176e0459c2e4a1fe232f984bca6890e681076abb9934f6cea7c326f3fc47818 -SIZE (rust/crates/gethostname-0.4.3.crate) = 9336 +SHA256 (rust/crates/gethostname-1.0.2.crate) = fc257fdb4038301ce4b9cd1b3b51704509692bb3ff716a410cbd07925d9dae55 +SIZE (rust/crates/gethostname-1.0.2.crate) = 9914 SHA256 (rust/crates/getrandom-0.2.16.crate) = 335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592 SIZE (rust/crates/getrandom-0.2.16.crate) = 40163 -SHA256 (rust/crates/getrandom-0.3.2.crate) = 73fea8450eea4bac3940448fb7ae50d91f034f941199fcd9d909a5a07aa455f0 -SIZE (rust/crates/getrandom-0.3.2.crate) = 49140 +SHA256 (rust/crates/getrandom-0.3.3.crate) = 26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4 +SIZE (rust/crates/getrandom-0.3.3.crate) = 49493 SHA256 (rust/crates/gilrs-0.10.2.crate) = 62fd19844d0eb919aca41d3e4ea0e0b6bf60e1e827558b101c269015b8f5f27a SIZE (rust/crates/gilrs-0.10.2.crate) = 122308 SHA256 (rust/crates/gilrs-core-0.5.7.crate) = 5ccc99e9b8d63ffcaa334c4babfa31f46e156618a11f63efb6e8e6bcb37b830d SIZE (rust/crates/gilrs-core-0.5.7.crate) = 45141 SHA256 (rust/crates/gimli-0.31.1.crate) = 07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f SIZE (rust/crates/gimli-0.31.1.crate) = 279515 +SHA256 (rust/crates/gimli-0.32.2.crate) = cc6298e594375a7fead9efd5568f0a46e6a154fb6a9bdcbe3c06946ffd81a5f6 +SIZE (rust/crates/gimli-0.32.2.crate) = 289060 SHA256 (rust/crates/gl_generator-0.14.0.crate) = 1a95dfc23a2b4a9a2f5ab41d194f8bfda3cabec42af4e39f08c339eb2a0c124d SIZE (rust/crates/gl_generator-0.14.0.crate) = 22330 -SHA256 (rust/crates/glam-0.30.3.crate) = 6b46b9ca4690308844c644e7c634d68792467260e051c8543e0c7871662b3ba7 -SIZE (rust/crates/glam-0.30.3.crate) = 687669 -SHA256 (rust/crates/glob-0.3.2.crate) = a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2 -SIZE (rust/crates/glob-0.3.2.crate) = 22359 +SHA256 (rust/crates/glam-0.30.5.crate) = f2d1aab06663bdce00d6ca5e5ed586ec8d18033a771906c993a1e3755b368d85 +SIZE (rust/crates/glam-0.30.5.crate) = 760688 +SHA256 (rust/crates/glob-0.3.3.crate) = 0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280 +SIZE (rust/crates/glob-0.3.3.crate) = 22861 SHA256 (rust/crates/glow-0.16.0.crate) = c5e5ea60d70410161c8bf5da3fdfeaa1c72ed2c15f8bbb9d19fe3a4fad085f08 SIZE (rust/crates/glow-0.16.0.crate) = 162118 SHA256 (rust/crates/glutin_wgl_sys-0.6.1.crate) = 2c4ee00b289aba7a9e5306d57c2d05499b2e5dc427f84ac708bd2c090212cf3e @@ -563,18 +589,18 @@ SHA256 (rust/crates/hashbrown-0.13.2.crate) = 43a3c133739dddd0d2990f9a4bdf8eb4b2 SIZE (rust/crates/hashbrown-0.13.2.crate) = 105265 SHA256 (rust/crates/hashbrown-0.14.5.crate) = e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1 SIZE (rust/crates/hashbrown-0.14.5.crate) = 141498 -SHA256 (rust/crates/hashbrown-0.15.3.crate) = 84b26c544d002229e640969970a2e74021aadf6e2f96372b9c58eff97de08eb3 -SIZE (rust/crates/hashbrown-0.15.3.crate) = 140413 +SHA256 (rust/crates/hashbrown-0.15.5.crate) = 9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1 +SIZE (rust/crates/hashbrown-0.15.5.crate) = 140908 +SHA256 (rust/crates/hashbrown-0.16.0.crate) = 5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d +SIZE (rust/crates/hashbrown-0.16.0.crate) = 141708 SHA256 (rust/crates/hashlink-0.9.1.crate) = 6ba4ff7128dee98c7dc9794b6a411377e1404dba1c97deb8d1a55297bd25d8af SIZE (rust/crates/hashlink-0.9.1.crate) = 28928 SHA256 (rust/crates/heapless-0.8.0.crate) = 0bfb9eb618601c89945a70e254898da93b13be0388091d42117462b265bb3fad SIZE (rust/crates/heapless-0.8.0.crate) = 77802 SHA256 (rust/crates/heck-0.5.0.crate) = 2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea SIZE (rust/crates/heck-0.5.0.crate) = 11517 -SHA256 (rust/crates/hermit-abi-0.4.0.crate) = fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc -SIZE (rust/crates/hermit-abi-0.4.0.crate) = 16310 -SHA256 (rust/crates/hermit-abi-0.5.0.crate) = fbd780fe5cc30f81464441920d82ac8740e2e46b29a6fad543ddd075229ce37e -SIZE (rust/crates/hermit-abi-0.5.0.crate) = 17480 +SHA256 (rust/crates/hermit-abi-0.5.2.crate) = fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c +SIZE (rust/crates/hermit-abi-0.5.2.crate) = 17435 SHA256 (rust/crates/hex-0.4.3.crate) = 7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70 SIZE (rust/crates/hex-0.4.3.crate) = 13299 SHA256 (rust/crates/hexf-parse-0.2.1.crate) = dfa686283ad6dd069f105e5ab091b04c62850d3e4cf5d67debad1933f55023df @@ -599,52 +625,46 @@ SHA256 (rust/crates/httpdate-1.0.3.crate) = df3b46402a9d5adb4c86a0cf463f42e19994 SIZE (rust/crates/httpdate-1.0.3.crate) = 10639 SHA256 (rust/crates/humantime-2.2.0.crate) = 9b112acc8b3adf4b107a8ec20977da0273a8c386765a3ec0229bd500a1443f9f SIZE (rust/crates/humantime-2.2.0.crate) = 20646 -SHA256 (rust/crates/hyper-1.6.0.crate) = cc2b571658e38e0c01b1fdca3bbbe93c00d3d71693ff2770043f8c29bc7d6f80 -SIZE (rust/crates/hyper-1.6.0.crate) = 153923 -SHA256 (rust/crates/hyper-rustls-0.27.5.crate) = 2d191583f3da1305256f22463b9bb0471acad48a4e534a5218b9963e9c1f59b2 -SIZE (rust/crates/hyper-rustls-0.27.5.crate) = 34660 -SHA256 (rust/crates/hyper-util-0.1.11.crate) = 497bbc33a26fdd4af9ed9c70d63f61cf56a938375fbb32df34db9b1cd6d643f2 -SIZE (rust/crates/hyper-util-0.1.11.crate) = 75973 +SHA256 (rust/crates/hyper-1.7.0.crate) = eb3aa54a13a0dfe7fbe3a59e0c76093041720fdc77b110cc0fc260fafb4dc51e +SIZE (rust/crates/hyper-1.7.0.crate) = 157006 +SHA256 (rust/crates/hyper-rustls-0.27.7.crate) = e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58 +SIZE (rust/crates/hyper-rustls-0.27.7.crate) = 35435 +SHA256 (rust/crates/hyper-util-0.1.16.crate) = 8d9b05277c7e8da2c93a568989bb6207bef0112e8d17df7a6eda4a3cf143bc5e +SIZE (rust/crates/hyper-util-0.1.16.crate) = 101184 SHA256 (rust/crates/iana-time-zone-0.1.63.crate) = b0c919e5debc312ad217002b8048a17b7d83f80703865bbfcfebb0458b0b27d8 SIZE (rust/crates/iana-time-zone-0.1.63.crate) = 32919 SHA256 (rust/crates/iana-time-zone-haiku-0.1.2.crate) = f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f SIZE (rust/crates/iana-time-zone-haiku-0.1.2.crate) = 7185 -SHA256 (rust/crates/icu_collections-1.5.0.crate) = db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526 -SIZE (rust/crates/icu_collections-1.5.0.crate) = 82762 -SHA256 (rust/crates/icu_locid-1.5.0.crate) = 13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637 -SIZE (rust/crates/icu_locid-1.5.0.crate) = 55131 -SHA256 (rust/crates/icu_locid_transform-1.5.0.crate) = 01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e -SIZE (rust/crates/icu_locid_transform-1.5.0.crate) = 29094 -SHA256 (rust/crates/icu_locid_transform_data-1.5.1.crate) = 7515e6d781098bf9f7205ab3fc7e9709d34554ae0b21ddbcb5febfa4bc7df11d -SIZE (rust/crates/icu_locid_transform_data-1.5.1.crate) = 42937 -SHA256 (rust/crates/icu_normalizer-1.5.0.crate) = 19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f -SIZE (rust/crates/icu_normalizer-1.5.0.crate) = 53113 -SHA256 (rust/crates/icu_normalizer_data-1.5.1.crate) = c5e8338228bdc8ab83303f16b797e177953730f601a96c25d10cb3ab0daa0cb7 -SIZE (rust/crates/icu_normalizer_data-1.5.1.crate) = 50737 -SHA256 (rust/crates/icu_properties-1.5.1.crate) = 93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5 -SIZE (rust/crates/icu_properties-1.5.1.crate) = 64479 -SHA256 (rust/crates/icu_properties_data-1.5.1.crate) = 85fb8799753b75aee8d2a21d7c14d9f38921b54b3dbda10f5a3c7a7b82dba5e2 -SIZE (rust/crates/icu_properties_data-1.5.1.crate) = 229231 -SHA256 (rust/crates/icu_provider-1.5.0.crate) = 6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9 -SIZE (rust/crates/icu_provider-1.5.0.crate) = 52722 -SHA256 (rust/crates/icu_provider_macros-1.5.0.crate) = 1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6 -SIZE (rust/crates/icu_provider_macros-1.5.0.crate) = 6436 +SHA256 (rust/crates/icu_collections-2.0.0.crate) = 200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47 +SIZE (rust/crates/icu_collections-2.0.0.crate) = 83033 +SHA256 (rust/crates/icu_locale_core-2.0.0.crate) = 0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a +SIZE (rust/crates/icu_locale_core-2.0.0.crate) = 74430 +SHA256 (rust/crates/icu_normalizer-2.0.0.crate) = 436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979 +SIZE (rust/crates/icu_normalizer-2.0.0.crate) = 61543 +SHA256 (rust/crates/icu_normalizer_data-2.0.0.crate) = 00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3 +SIZE (rust/crates/icu_normalizer_data-2.0.0.crate) = 68101 +SHA256 (rust/crates/icu_properties-2.0.1.crate) = 016c619c1eeb94efb86809b015c58f479963de65bdb6253345c1a1276f22e32b +SIZE (rust/crates/icu_properties-2.0.1.crate) = 58165 +SHA256 (rust/crates/icu_properties_data-2.0.1.crate) = 298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632 +SIZE (rust/crates/icu_properties_data-2.0.1.crate) = 159735 +SHA256 (rust/crates/icu_provider-2.0.0.crate) = 03c80da27b5f4187909049ee2d72f276f0d9f99a42c306bd0131ecfe04d8e5af +SIZE (rust/crates/icu_provider-2.0.0.crate) = 50966 SHA256 (rust/crates/id-arena-2.2.1.crate) = 25a2bc672d1148e28034f176e01fffebb08b35768468cc954630da77a1449005 SIZE (rust/crates/id-arena-2.2.1.crate) = 12203 SHA256 (rust/crates/ident_case-1.0.1.crate) = b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39 SIZE (rust/crates/ident_case-1.0.1.crate) = 3492 -SHA256 (rust/crates/idna-1.0.3.crate) = 686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e -SIZE (rust/crates/idna-1.0.3.crate) = 142515 -SHA256 (rust/crates/idna_adapter-1.2.0.crate) = daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71 -SIZE (rust/crates/idna_adapter-1.2.0.crate) = 8206 -SHA256 (rust/crates/image-0.25.6.crate) = db35664ce6b9810857a38a906215e75a9c879f0696556a39f59c62829710251a -SIZE (rust/crates/image-0.25.6.crate) = 242367 +SHA256 (rust/crates/idna-1.1.0.crate) = 3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de +SIZE (rust/crates/idna-1.1.0.crate) = 148747 +SHA256 (rust/crates/idna_adapter-1.2.1.crate) = 3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344 +SIZE (rust/crates/idna_adapter-1.2.1.crate) = 10389 +SHA256 (rust/crates/image-0.25.8.crate) = 529feb3e6769d234375c4cf1ee2ce713682b8e76538cb13f9fc23e1400a591e7 +SIZE (rust/crates/image-0.25.8.crate) = 292229 SHA256 (rust/crates/indexmap-1.9.3.crate) = bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99 SIZE (rust/crates/indexmap-1.9.3.crate) = 54653 -SHA256 (rust/crates/indexmap-2.9.0.crate) = cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e -SIZE (rust/crates/indexmap-2.9.0.crate) = 91214 -SHA256 (rust/crates/indicatif-0.17.11.crate) = 183b3088984b400f4cfac3620d5e076c84da5364016b4f49473de574b2586235 -SIZE (rust/crates/indicatif-0.17.11.crate) = 66577 +SHA256 (rust/crates/indexmap-2.11.1.crate) = 206a8042aec68fa4a62e8d3f7aa4ceb508177d9324faf261e1959e495b7a1921 +SIZE (rust/crates/indexmap-2.11.1.crate) = 99966 +SHA256 (rust/crates/indicatif-0.18.0.crate) = 70a646d946d06bedbbc4cac4c218acf4bbf2d87757a784857025f4d447e4e1cd +SIZE (rust/crates/indicatif-0.18.0.crate) = 67969 SHA256 (rust/crates/indoc-2.0.6.crate) = f4c7245a08504955605670dbf141fceab975f15ca21570696aebe9d2e71576bd SIZE (rust/crates/indoc-2.0.6.crate) = 17164 SHA256 (rust/crates/init_with-1.1.0.crate) = 0175f63815ce00183bf755155ad0cb48c65226c5d17a724e369c25418d2b7699 @@ -653,18 +673,16 @@ SHA256 (rust/crates/inline_tweak-1.2.2.crate) = e09cc2491a8419aa3d0b03b92297cfaf SIZE (rust/crates/inline_tweak-1.2.2.crate) = 15843 SHA256 (rust/crates/inline_tweak_derive-4.0.0.crate) = 6864ad6962b49a8fc7ce8cfa60ee0725aa543f15fc7e5f34753ccfa881dd6759 SIZE (rust/crates/inline_tweak_derive-4.0.0.crate) = 2535 -SHA256 (rust/crates/inotify-0.9.6.crate) = f8069d3ec154eb856955c1c0fbffefbf5f3c40a104ec912d4797314c1801abff -SIZE (rust/crates/inotify-0.9.6.crate) = 22971 SHA256 (rust/crates/inotify-0.11.0.crate) = f37dccff2791ab604f9babef0ba14fbe0be30bd368dc541e2b08d07c8aa908f3 SIZE (rust/crates/inotify-0.11.0.crate) = 26241 SHA256 (rust/crates/inotify-sys-0.1.5.crate) = e05c02b5e89bff3b946cedeca278abc628fe811e604f027c45a8aa3cf793d0eb SIZE (rust/crates/inotify-sys-0.1.5.crate) = 6965 -SHA256 (rust/crates/instability-0.3.7.crate) = 0bf9fed6d91cfb734e7476a06bde8300a1b94e217e1b523b6f0cd1a01998c71d -SIZE (rust/crates/instability-0.3.7.crate) = 13682 +SHA256 (rust/crates/instability-0.3.9.crate) = 435d80800b936787d62688c927b6490e887c7ef5ff9ce922c6c6050fca75eb9a +SIZE (rust/crates/instability-0.3.9.crate) = 14451 SHA256 (rust/crates/instant-0.1.13.crate) = e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222 SIZE (rust/crates/instant-0.1.13.crate) = 6305 -SHA256 (rust/crates/intl-memoizer-0.5.2.crate) = fe22e020fce238ae18a6d5d8c502ee76a52a6e880d99477657e6acc30ec57bda -SIZE (rust/crates/intl-memoizer-0.5.2.crate) = 11708 +SHA256 (rust/crates/intl-memoizer-0.5.3.crate) = 310da2e345f5eb861e7a07ee182262e94975051db9e4223e909ba90f392f163f +SIZE (rust/crates/intl-memoizer-0.5.3.crate) = 12171 SHA256 (rust/crates/intl_pluralrules-7.0.2.crate) = 078ea7b7c29a2b4df841a7f6ac8775ff6074020c6776d48491ce2268e068f972 SIZE (rust/crates/intl_pluralrules-7.0.2.crate) = 9201 SHA256 (rust/crates/io-extras-0.18.4.crate) = 2285ddfe3054097ef4b2fe909ef8c3bcd1ea52a8f0d274416caebeef39f04a65 @@ -673,20 +691,18 @@ SHA256 (rust/crates/io-kit-sys-0.3.0.crate) = 9b2d4429acc1deff0fbdece0325b4997bd SIZE (rust/crates/io-kit-sys-0.3.0.crate) = 38799 SHA256 (rust/crates/io-lifetimes-2.0.4.crate) = 06432fb54d3be7964ecd3649233cddf80db2832f47fec34c01f65b3d9d774983 SIZE (rust/crates/io-lifetimes-2.0.4.crate) = 28501 +SHA256 (rust/crates/io-uring-0.7.10.crate) = 046fa2d4d00aea763528b4950358d0ead425372445dc8ff86312b3c69ff7727b +SIZE (rust/crates/io-uring-0.7.10.crate) = 103070 SHA256 (rust/crates/ipconfig-0.3.2.crate) = b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f SIZE (rust/crates/ipconfig-0.3.2.crate) = 24468 SHA256 (rust/crates/ipnet-2.11.0.crate) = 469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130 SIZE (rust/crates/ipnet-2.11.0.crate) = 29718 SHA256 (rust/crates/is-docker-0.2.0.crate) = 928bae27f42bc99b60d9ac7334e3a21d10ad8f1835a4e12ec3ec0464765ed1b3 SIZE (rust/crates/is-docker-0.2.0.crate) = 2664 -SHA256 (rust/crates/is-terminal-0.4.16.crate) = e04d7f318608d35d4b61ddd75cbdaee86b023ebe2bd5a66ee0915f0bf93095a9 -SIZE (rust/crates/is-terminal-0.4.16.crate) = 7811 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.10.5.crate) = b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473 -SIZE (rust/crates/itertools-0.10.5.crate) = 115354 SHA256 (rust/crates/itertools-0.12.1.crate) = ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569 SIZE (rust/crates/itertools-0.12.1.crate) = 137761 SHA256 (rust/crates/itertools-0.13.0.crate) = 413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186 @@ -703,18 +719,18 @@ SHA256 (rust/crates/jni-0.21.1.crate) = 1a87aa2bb7d2af34197c04845522473242e1aa17 SIZE (rust/crates/jni-0.21.1.crate) = 105028 SHA256 (rust/crates/jni-sys-0.3.0.crate) = 8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130 SIZE (rust/crates/jni-sys-0.3.0.crate) = 10232 -SHA256 (rust/crates/jobserver-0.1.33.crate) = 38f262f097c174adebe41eb73d66ae9c06b2844fb0da69969647bbddd9b0538a -SIZE (rust/crates/jobserver-0.1.33.crate) = 29136 -SHA256 (rust/crates/js-sys-0.3.77.crate) = 1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f -SIZE (rust/crates/js-sys-0.3.77.crate) = 55538 +SHA256 (rust/crates/jobserver-0.1.34.crate) = 9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33 +SIZE (rust/crates/jobserver-0.1.34.crate) = 29013 +SHA256 (rust/crates/js-sys-0.3.78.crate) = 0c0b063578492ceec17683ef2f8c5e89121fbd0b172cbc280635ab7567db2738 +SIZE (rust/crates/js-sys-0.3.78.crate) = 56010 SHA256 (rust/crates/khronos-egl-6.0.0.crate) = 6aae1df220ece3c0ada96b8153459b67eebe9ae9212258bb0134ae60416fdf76 SIZE (rust/crates/khronos-egl-6.0.0.crate) = 29315 SHA256 (rust/crates/khronos_api-3.1.0.crate) = e2db585e1d738fc771bf08a151420d3ed193d9d895a36df7f6f8a9456b911ddc SIZE (rust/crates/khronos_api-3.1.0.crate) = 599718 SHA256 (rust/crates/kiddo-4.2.0.crate) = 9d2f8d9e1bc7c6919ad2cdc83472a9a4b5ed2ea2c5392c9514fdf958a7920f9a SIZE (rust/crates/kiddo-4.2.0.crate) = 147212 -SHA256 (rust/crates/kqueue-1.0.8.crate) = 7447f1ca1b7b563588a205fe93dea8df60fd981423a768bc1c0ded35ed147d0c -SIZE (rust/crates/kqueue-1.0.8.crate) = 12642 +SHA256 (rust/crates/kqueue-1.1.1.crate) = eac30106d7dce88daf4a3fcb4879ea939476d5074a9b7ddd0fb97fa4bed5596a +SIZE (rust/crates/kqueue-1.1.1.crate) = 21504 SHA256 (rust/crates/kqueue-sys-1.0.4.crate) = ed9625ffda8729b85e45cf04090035ac368927b8cebc34898e7c120f52e4838b SIZE (rust/crates/kqueue-sys-1.0.4.crate) = 7160 SHA256 (rust/crates/lazy-bytes-cast-5.0.1.crate) = 10257499f089cd156ad82d0a9cd57d9501fa2c989068992a97eb3c27836f206b @@ -727,16 +743,16 @@ SHA256 (rust/crates/leb128fmt-0.1.0.crate) = 09edd9e8b54e49e587e4f6295a7d29c3ea9 SIZE (rust/crates/leb128fmt-0.1.0.crate) = 14138 SHA256 (rust/crates/levenshtein-1.0.5.crate) = db13adb97ab515a3691f56e4dbab09283d0b86cb45abd991d8634a9d6f501760 SIZE (rust/crates/levenshtein-1.0.5.crate) = 1389 -SHA256 (rust/crates/libc-0.2.172.crate) = d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa -SIZE (rust/crates/libc-0.2.172.crate) = 791646 -SHA256 (rust/crates/libloading-0.8.6.crate) = fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34 -SIZE (rust/crates/libloading-0.8.6.crate) = 28922 -SHA256 (rust/crates/libm-0.2.14.crate) = a25169bd5913a4b437588a7e3d127cd6e90127b60e0ffbd834a38f1599e016b8 -SIZE (rust/crates/libm-0.2.14.crate) = 155948 +SHA256 (rust/crates/libc-0.2.175.crate) = 6a82ae493e598baaea5209805c49bbf2ea7de956d50d7da0da1164f9c6d28543 +SIZE (rust/crates/libc-0.2.175.crate) = 788728 +SHA256 (rust/crates/libloading-0.8.8.crate) = 07033963ba89ebaf1584d767badaa2e8fcec21aedea6b8c0346d487d49c28667 +SIZE (rust/crates/libloading-0.8.8.crate) = 31345 +SHA256 (rust/crates/libm-0.2.15.crate) = f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de +SIZE (rust/crates/libm-0.2.15.crate) = 156108 SHA256 (rust/crates/libmimalloc-sys-0.1.39.crate) = 23aa6811d3bd4deb8a84dde645f943476d13b248d818edcf8ce0b2f37f036b44 SIZE (rust/crates/libmimalloc-sys-0.1.39.crate) = 198523 -SHA256 (rust/crates/libredox-0.1.3.crate) = c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d -SIZE (rust/crates/libredox-0.1.3.crate) = 6068 +SHA256 (rust/crates/libredox-0.1.9.crate) = 391290121bad3d37fbddad76d8f5d1c1c314cfc646d143d7e07a3086ddff0ce3 +SIZE (rust/crates/libredox-0.1.9.crate) = 7281 SHA256 (rust/crates/libsqlite3-sys-0.28.0.crate) = 0c10584274047cb335c23d3e61bcef8e323adae7c5c8c760540f73610177fc3f SIZE (rust/crates/libsqlite3-sys-0.28.0.crate) = 4975624 SHA256 (rust/crates/libudev-sys-0.1.4.crate) = 3c8469b4a23b962c1396b9b451dda50ef5b283e8dd309d69033475fa9b334324 @@ -745,46 +761,48 @@ SHA256 (rust/crates/linked-hash-map-0.5.6.crate) = 0717cef1bc8b636c6e1c1bbdefc09 SIZE (rust/crates/linked-hash-map-0.5.6.crate) = 15049 SHA256 (rust/crates/linux-raw-sys-0.4.15.crate) = d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab SIZE (rust/crates/linux-raw-sys-0.4.15.crate) = 2150898 -SHA256 (rust/crates/linux-raw-sys-0.9.4.crate) = cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12 -SIZE (rust/crates/linux-raw-sys-0.9.4.crate) = 2311088 -SHA256 (rust/crates/litemap-0.7.5.crate) = 23fb14cb19457329c82206317a5663005a4d404783dc74f4252769b0d5f42856 -SIZE (rust/crates/litemap-0.7.5.crate) = 29962 +SHA256 (rust/crates/linux-raw-sys-0.11.0.crate) = df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039 +SIZE (rust/crates/linux-raw-sys-0.11.0.crate) = 2659624 +SHA256 (rust/crates/litemap-0.8.0.crate) = 241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956 +SIZE (rust/crates/litemap-0.8.0.crate) = 34344 SHA256 (rust/crates/litrs-0.4.2.crate) = f5e54036fe321fd421e10d732f155734c4e4afd610dd556d9a82833ab3ee0bed SIZE (rust/crates/litrs-0.4.2.crate) = 43399 -SHA256 (rust/crates/lock_api-0.4.12.crate) = 07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17 -SIZE (rust/crates/lock_api-0.4.12.crate) = 27591 -SHA256 (rust/crates/log-0.4.27.crate) = 13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94 -SIZE (rust/crates/log-0.4.27.crate) = 48120 +SHA256 (rust/crates/lock_api-0.4.13.crate) = 96936507f153605bddfcda068dd804796c84324ed2510809e5b2a624c81da765 +SIZE (rust/crates/lock_api-0.4.13.crate) = 28565 +SHA256 (rust/crates/log-0.4.28.crate) = 34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432 +SIZE (rust/crates/log-0.4.28.crate) = 51131 SHA256 (rust/crates/loom-0.7.2.crate) = 419e0dc8046cb947daa77eb95ae174acfbddb7673b4151f56d1eed8e93fbfaca SIZE (rust/crates/loom-0.7.2.crate) = 73989 SHA256 (rust/crates/lru-0.12.5.crate) = 234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38 SIZE (rust/crates/lru-0.12.5.crate) = 16047 +SHA256 (rust/crates/lru-slab-0.1.2.crate) = 112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154 +SIZE (rust/crates/lru-slab-0.1.2.crate) = 9090 SHA256 (rust/crates/lz-fear-0.2.0.crate) = 26a280471e5ff9dda51cf34863c338ffde7df78139210f9c819943b29cdb091d SIZE (rust/crates/lz-fear-0.2.0.crate) = 142438 -SHA256 (rust/crates/mach2-0.4.2.crate) = 19b955cdeb2a02b9117f121ce63aa52d08ade45de53e48fe6a38b39c10f6f709 -SIZE (rust/crates/mach2-0.4.2.crate) = 21889 +SHA256 (rust/crates/mach2-0.4.3.crate) = d640282b302c0bb0a2a8e0233ead9035e3bed871f0b7e81fe4a1ec829765db44 +SIZE (rust/crates/mach2-0.4.3.crate) = 22180 SHA256 (rust/crates/macro_rules_attribute-0.1.3.crate) = cf0c9b980bf4f3a37fd7b1c066941dd1b1d0152ce6ee6e8fe8c49b9f6810d862 SIZE (rust/crates/macro_rules_attribute-0.1.3.crate) = 15228 SHA256 (rust/crates/macro_rules_attribute-proc_macro-0.1.3.crate) = 58093314a45e00c77d5c508f76e77c3396afbbc0d01506e7fae47b018bac2b1d SIZE (rust/crates/macro_rules_attribute-proc_macro-0.1.3.crate) = 8249 SHA256 (rust/crates/malloc_buf-0.0.6.crate) = 62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb SIZE (rust/crates/malloc_buf-0.0.6.crate) = 1239 -SHA256 (rust/crates/matchers-0.1.0.crate) = 8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558 -SIZE (rust/crates/matchers-0.1.0.crate) = 6948 +SHA256 (rust/crates/matchers-0.2.0.crate) = d1525a2a28c7f4fa0fc98bb91ae755d1e2d1505079e05539e35bc876b5d65ae9 +SIZE (rust/crates/matchers-0.2.0.crate) = 7075 SHA256 (rust/crates/matchit-0.8.4.crate) = 47e1ffaa40ddd1f3ed91f717a33c8c0ee23fff369e3aa8772b9605cc1d22f4c3 SIZE (rust/crates/matchit-0.8.4.crate) = 33986 SHA256 (rust/crates/maybe-owned-0.3.4.crate) = 4facc753ae494aeb6e3c22f839b158aebd4f9270f55cd3c79906c45476c47ab4 SIZE (rust/crates/maybe-owned-0.3.4.crate) = 14308 SHA256 (rust/crates/maybe-uninit-2.0.0.crate) = 60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00 SIZE (rust/crates/maybe-uninit-2.0.0.crate) = 11809 -SHA256 (rust/crates/memchr-2.7.4.crate) = 78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3 -SIZE (rust/crates/memchr-2.7.4.crate) = 96670 -SHA256 (rust/crates/memfd-0.6.4.crate) = b2cffa4ad52c6f791f4f8b15f0c05f9824b2ced1160e88cc393d64fff9a8ac64 -SIZE (rust/crates/memfd-0.6.4.crate) = 12820 +SHA256 (rust/crates/memchr-2.7.5.crate) = 32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0 +SIZE (rust/crates/memchr-2.7.5.crate) = 97603 +SHA256 (rust/crates/memfd-0.6.5.crate) = ad38eb12aea514a0466ea40a80fd8cc83637065948eb4a426e4aa46261175227 +SIZE (rust/crates/memfd-0.6.5.crate) = 12909 SHA256 (rust/crates/memmap2-0.5.10.crate) = 83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327 SIZE (rust/crates/memmap2-0.5.10.crate) = 26847 -SHA256 (rust/crates/memmap2-0.9.5.crate) = fd3f7eed9d3848f8b98834af67102b720745c4ec028fcd0aa0239277e7de374f -SIZE (rust/crates/memmap2-0.9.5.crate) = 33280 +SHA256 (rust/crates/memmap2-0.9.8.crate) = 843a98750cd611cc2965a8213b53b43e715f13c37a9e096c6408e69990961db7 +SIZE (rust/crates/memmap2-0.9.8.crate) = 34478 SHA256 (rust/crates/memoffset-0.5.6.crate) = 043175f069eda7b85febe4a74abbaeff828d9f8b448515d3151a14a3542811aa SIZE (rust/crates/memoffset-0.5.6.crate) = 7382 SHA256 (rust/crates/memoffset-0.6.5.crate) = 5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce @@ -799,16 +817,16 @@ SHA256 (rust/crates/minifb-0.28.0.crate) = d1a093126f2ed9012fc0b146934c97eb0273e SIZE (rust/crates/minifb-0.28.0.crate) = 99664 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.8.crate) = 3be647b768db090acb35d5ec5db2b0e1f1de11133ca123b9eacf5137868f892a -SIZE (rust/crates/miniz_oxide-0.8.8.crate) = 67065 +SHA256 (rust/crates/miniz_oxide-0.8.9.crate) = 1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316 +SIZE (rust/crates/miniz_oxide-0.8.9.crate) = 67132 SHA256 (rust/crates/mint-0.5.9.crate) = e53debba6bda7a793e5f99b8dacf19e626084f525f7829104ba9898f367d85ff SIZE (rust/crates/mint-0.5.9.crate) = 8399 -SHA256 (rust/crates/mio-0.8.11.crate) = a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c -SIZE (rust/crates/mio-0.8.11.crate) = 102983 -SHA256 (rust/crates/mio-1.0.3.crate) = 2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd -SIZE (rust/crates/mio-1.0.3.crate) = 103703 +SHA256 (rust/crates/mio-1.0.4.crate) = 78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c +SIZE (rust/crates/mio-1.0.4.crate) = 104212 SHA256 (rust/crates/moka-0.12.10.crate) = a9321642ca94a4282428e6ea4af8cc2ca4eac48ac7a6a4ea8f33f76d0ce70926 SIZE (rust/crates/moka-0.12.10.crate) = 253622 +SHA256 (rust/crates/moxcms-0.7.5.crate) = ddd32fa8935aeadb8a8a6b6b351e40225570a37c43de67690383d87ef170cd08 +SIZE (rust/crates/moxcms-0.7.5.crate) = 184232 SHA256 (rust/crates/mumble-link-0.2.0.crate) = c7f4c53745d4e7afd0faaf6ee46c0c3114d4b7d0db63bef96917751906453285 SIZE (rust/crates/mumble-link-0.2.0.crate) = 11204 SHA256 (rust/crates/naga-26.0.0.crate) = 916cbc7cb27db60be930a4e2da243cf4bc39569195f22fd8ee419cd31d5b662c @@ -831,8 +849,8 @@ SHA256 (rust/crates/nix-0.24.3.crate) = fa52e972a9a719cecb6864fb88568781eb706bac SIZE (rust/crates/nix-0.24.3.crate) = 266843 SHA256 (rust/crates/nix-0.26.4.crate) = 598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b SIZE (rust/crates/nix-0.26.4.crate) = 279099 -SHA256 (rust/crates/nix-0.29.0.crate) = 71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46 -SIZE (rust/crates/nix-0.29.0.crate) = 318248 +SHA256 (rust/crates/nix-0.30.1.crate) = 74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6 +SIZE (rust/crates/nix-0.30.1.crate) = 342015 SHA256 (rust/crates/nohash-hasher-0.2.0.crate) = 2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451 SIZE (rust/crates/nohash-hasher-0.2.0.crate) = 8051 SHA256 (rust/crates/noise-0.9.0.crate) = 6da45c8333f2e152fc665d78a380be060eb84fad8ca4c9f7ac8ca29216cff0cc @@ -841,18 +859,16 @@ SHA256 (rust/crates/nom-7.1.3.crate) = d273983c5a657a70a3e8f2a01329822f3b8c8172b SIZE (rust/crates/nom-7.1.3.crate) = 117570 SHA256 (rust/crates/nom-8.0.0.crate) = df9761775871bdef83bee530e60050f7e54b1105350d6884eb0fb4f46c2f9405 SIZE (rust/crates/nom-8.0.0.crate) = 135590 -SHA256 (rust/crates/notify-6.1.1.crate) = 6205bd8bb1e454ad2e27422015fb5e4f2bcc7e08fa8f27058670d208324a4d2d -SIZE (rust/crates/notify-6.1.1.crate) = 40117 -SHA256 (rust/crates/notify-8.0.0.crate) = 2fee8403b3d66ac7b26aee6e40a897d85dc5ce26f44da36b8b73e987cc52e943 -SIZE (rust/crates/notify-8.0.0.crate) = 35590 +SHA256 (rust/crates/notify-8.2.0.crate) = 4d3d07927151ff8575b7087f245456e549fea62edf0ec4e565a5ee50c8402bc3 +SIZE (rust/crates/notify-8.2.0.crate) = 39067 SHA256 (rust/crates/notify-types-2.0.0.crate) = 5e0826a989adedc2a244799e823aece04662b66609d96af8dff7ac6df9a8925d SIZE (rust/crates/notify-types-2.0.0.crate) = 14495 SHA256 (rust/crates/nougat-0.2.4.crate) = 97b57b9ced431322f054fc673f1d3c7fa52d80efd9df74ad2fc759f044742510 SIZE (rust/crates/nougat-0.2.4.crate) = 15141 SHA256 (rust/crates/nougat-proc_macros-0.2.4.crate) = c84f77a45e99a2f9b492695d99e1c23844619caa5f3e57647cffacad773ca257 SIZE (rust/crates/nougat-proc_macros-0.2.4.crate) = 10082 -SHA256 (rust/crates/nu-ansi-term-0.46.0.crate) = 77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84 -SIZE (rust/crates/nu-ansi-term-0.46.0.crate) = 24311 +SHA256 (rust/crates/nu-ansi-term-0.50.1.crate) = d4a28e057d01f97e61255210fcff094d74ed0466038633e95017f5beb68e4399 +SIZE (rust/crates/nu-ansi-term-0.50.1.crate) = 28536 SHA256 (rust/crates/num-0.2.1.crate) = b8536030f9fea7127f841b45bb6243b27255787fb4eb83958aa1ef9d2fdc0c36 SIZE (rust/crates/num-0.2.1.crate) = 9082 SHA256 (rust/crates/num-0.4.3.crate) = 35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23 @@ -881,12 +897,10 @@ SHA256 (rust/crates/num-traits-0.2.19.crate) = 071dfc062690e90b734c0b2273ce72ad0 SIZE (rust/crates/num-traits-0.2.19.crate) = 51631 SHA256 (rust/crates/num_cpus-1.17.0.crate) = 91df4bbde75afed763b708b7eee1e8e7651e02d97f6d5dd763e89367e957b23b SIZE (rust/crates/num_cpus-1.17.0.crate) = 15874 -SHA256 (rust/crates/num_enum-0.7.3.crate) = 4e613fc340b2220f734a8595782c551f1250e969d87d3be1ae0579e8d4065179 -SIZE (rust/crates/num_enum-0.7.3.crate) = 18603 -SHA256 (rust/crates/num_enum_derive-0.7.3.crate) = af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56 -SIZE (rust/crates/num_enum_derive-0.7.3.crate) = 17092 -SHA256 (rust/crates/number_prefix-0.4.0.crate) = 830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3 -SIZE (rust/crates/number_prefix-0.4.0.crate) = 6922 +SHA256 (rust/crates/num_enum-0.7.4.crate) = a973b4e44ce6cad84ce69d797acf9a044532e4184c4f267913d1b546a0727b7a +SIZE (rust/crates/num_enum-0.7.4.crate) = 21553 +SHA256 (rust/crates/num_enum_derive-0.7.4.crate) = 77e878c846a8abae00dd069496dbe8751b16ac1c3d6bd2a7283a938e8228f90d +SIZE (rust/crates/num_enum_derive-0.7.4.crate) = 18167 SHA256 (rust/crates/objc-0.2.7.crate) = 915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1 SIZE (rust/crates/objc-0.2.7.crate) = 22036 SHA256 (rust/crates/objc-foundation-0.1.1.crate) = 1add1b659e36c9607c7aab864a76c7a4c2760cd0cd2e120f3fb8b952c7e22bf9 @@ -895,8 +909,8 @@ SHA256 (rust/crates/objc-sys-0.3.5.crate) = cdb91bdd390c7ce1a8607f35f3ca7151b65a SIZE (rust/crates/objc-sys-0.3.5.crate) = 20560 SHA256 (rust/crates/objc2-0.5.2.crate) = 46a785d4eeff09c14c487497c162e92766fbb3e4059a71840cecc03d9a50b804 SIZE (rust/crates/objc2-0.5.2.crate) = 199204 -SHA256 (rust/crates/objc2-0.6.1.crate) = 88c6597e14493ab2e44ce58f2fdecf095a51f12ca57bec060a11c57332520551 -SIZE (rust/crates/objc2-0.6.1.crate) = 270980 +SHA256 (rust/crates/objc2-0.6.2.crate) = 561f357ba7f3a2a61563a186a163d0a3a5247e1089524a3981d49adb775078bc +SIZE (rust/crates/objc2-0.6.2.crate) = 272954 SHA256 (rust/crates/objc2-app-kit-0.2.2.crate) = e4e89ad9e3d7d297152b17d39ed92cd50ca8063a89a9fa569046d41568891eff SIZE (rust/crates/objc2-app-kit-0.2.2.crate) = 337435 SHA256 (rust/crates/objc2-app-kit-0.3.1.crate) = e6f29f568bec459b0ddff777cec4fe3fd8666d82d5a40ebd0ff7e66134f89bcc @@ -951,12 +965,16 @@ SHA256 (rust/crates/objc_id-0.1.1.crate) = c92d4ddb4bd7b50d730c215ff871754d0da6b SIZE (rust/crates/objc_id-0.1.1.crate) = 3258 SHA256 (rust/crates/object-0.36.7.crate) = 62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87 SIZE (rust/crates/object-0.36.7.crate) = 329938 +SHA256 (rust/crates/object-0.37.3.crate) = ff76201f031d8863c38aa7f905eca4f53abbfa15f609db4277d44cd8938f33fe +SIZE (rust/crates/object-0.37.3.crate) = 344032 SHA256 (rust/crates/oboe-0.6.1.crate) = e8b61bebd49e5d43f5f8cc7ee2891c16e0f41ec7954d36bcb6c14c5e0de867fb SIZE (rust/crates/oboe-0.6.1.crate) = 24588 SHA256 (rust/crates/oboe-sys-0.6.1.crate) = 6c8bb09a4a2b1d668170cfe0a7d5bc103f8999fb316c98099b6a9939c9f2e79d SIZE (rust/crates/oboe-sys-0.6.1.crate) = 169091 SHA256 (rust/crates/once_cell-1.21.3.crate) = 42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d SIZE (rust/crates/once_cell-1.21.3.crate) = 34534 +SHA256 (rust/crates/once_cell_polyfill-1.70.1.crate) = a4895175b425cb1f87721b59f0f286c2092bd4af812243672510e1ac53e2e0ad +SIZE (rust/crates/once_cell_polyfill-1.70.1.crate) = 7510 SHA256 (rust/crates/oorandom-11.1.5.crate) = d6790f58c7ff633d8771f42965289203411a5e5c68388703c06e14f24770b41e SIZE (rust/crates/oorandom-11.1.5.crate) = 23750 SHA256 (rust/crates/open-5.3.2.crate) = e2483562e62ea94312f3576a7aca397306df7990b8d89033e18766744377ef95 @@ -973,38 +991,30 @@ SHA256 (rust/crates/ordered-float-4.6.0.crate) = 7bb71e1b3fa6ca1c61f383464aaf2bb SIZE (rust/crates/ordered-float-4.6.0.crate) = 23633 SHA256 (rust/crates/ordered-float-5.0.0.crate) = e2c1f9f56e534ac6a9b8a4600bdf0f530fb393b5f393e7b4d03489c3cf0c3f01 SIZE (rust/crates/ordered-float-5.0.0.crate) = 23364 -SHA256 (rust/crates/overload-0.1.1.crate) = b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39 -SIZE (rust/crates/overload-0.1.1.crate) = 24439 -SHA256 (rust/crates/owned_ttf_parser-0.25.0.crate) = 22ec719bbf3b2a81c109a4e20b1f129b5566b7dce654bc3872f6a05abf82b2c4 -SIZE (rust/crates/owned_ttf_parser-0.25.0.crate) = 151164 +SHA256 (rust/crates/owned_ttf_parser-0.25.1.crate) = 36820e9051aca1014ddc75770aab4d68bc1e9e632f0f5627c4086bc216fb583b +SIZE (rust/crates/owned_ttf_parser-0.25.1.crate) = 8989 SHA256 (rust/crates/parking-2.2.1.crate) = f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba SIZE (rust/crates/parking-2.2.1.crate) = 10685 -SHA256 (rust/crates/parking_lot-0.12.3.crate) = f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27 -SIZE (rust/crates/parking_lot-0.12.3.crate) = 41860 -SHA256 (rust/crates/parking_lot_core-0.9.10.crate) = 1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8 -SIZE (rust/crates/parking_lot_core-0.9.10.crate) = 32406 -SHA256 (rust/crates/parse-zoneinfo-0.3.1.crate) = 1f2a05b18d44e2957b88f96ba460715e295bc1d7510468a2f3d3b44535d26c24 -SIZE (rust/crates/parse-zoneinfo-0.3.1.crate) = 97290 +SHA256 (rust/crates/parking_lot-0.12.4.crate) = 70d58bf43669b5795d1576d0641cfb6fbb2057bf629506267a92807158584a13 +SIZE (rust/crates/parking_lot-0.12.4.crate) = 46779 +SHA256 (rust/crates/parking_lot_core-0.9.11.crate) = bc838d2a56b5b1a6c25f55575dfc605fabb63bb2365f6c2353ef9159aa69e4a5 +SIZE (rust/crates/parking_lot_core-0.9.11.crate) = 34773 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/pem-3.0.5.crate) = 38af38e8470ac9dee3ce1bae1af9c1671fffc44ddfd8bd1d0a3445bf349a8ef3 SIZE (rust/crates/pem-3.0.5.crate) = 18140 -SHA256 (rust/crates/percent-encoding-2.3.1.crate) = e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e -SIZE (rust/crates/percent-encoding-2.3.1.crate) = 10235 +SHA256 (rust/crates/percent-encoding-2.3.2.crate) = 9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220 +SIZE (rust/crates/percent-encoding-2.3.2.crate) = 11583 SHA256 (rust/crates/petgraph-0.4.13.crate) = 9c3659d1ee90221741f65dd128d9998311b0e40c5d3c23a62445938214abce4f SIZE (rust/crates/petgraph-0.4.13.crate) = 111936 -SHA256 (rust/crates/petgraph-0.8.1.crate) = 7a98c6720655620a521dcc722d0ad66cd8afd5d86e34a89ef691c50b7b24de06 -SIZE (rust/crates/petgraph-0.8.1.crate) = 763960 -SHA256 (rust/crates/phf-0.11.3.crate) = 1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078 -SIZE (rust/crates/phf-0.11.3.crate) = 23231 -SHA256 (rust/crates/phf_codegen-0.11.3.crate) = aef8048c789fa5e851558d709946d6d79a8ff88c0440c587967f8e94bfb1216a -SIZE (rust/crates/phf_codegen-0.11.3.crate) = 13741 -SHA256 (rust/crates/phf_generator-0.11.3.crate) = 3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d -SIZE (rust/crates/phf_generator-0.11.3.crate) = 15431 -SHA256 (rust/crates/phf_shared-0.11.3.crate) = 67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5 -SIZE (rust/crates/phf_shared-0.11.3.crate) = 15199 +SHA256 (rust/crates/petgraph-0.8.2.crate) = 54acf3a685220b533e437e264e4d932cfbdc4cc7ec0cd232ed73c08d03b8a7ca +SIZE (rust/crates/petgraph-0.8.2.crate) = 780998 +SHA256 (rust/crates/phf-0.12.1.crate) = 913273894cec178f401a31ec4b656318d95473527be05c0752cc41cdc32be8b7 +SIZE (rust/crates/phf-0.12.1.crate) = 23768 +SHA256 (rust/crates/phf_shared-0.12.1.crate) = 06005508882fb681fd97892ecff4b7fd0fee13ef1aa569f8695dae7ab9099981 +SIZE (rust/crates/phf_shared-0.12.1.crate) = 15568 SHA256 (rust/crates/pin-project-1.1.10.crate) = 677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a SIZE (rust/crates/pin-project-1.1.10.crate) = 56348 SHA256 (rust/crates/pin-project-internal-1.1.10.crate) = 6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861 @@ -1023,14 +1033,18 @@ SHA256 (rust/crates/pkg-config-0.3.32.crate) = 7edddbd0b52d732b21ad9a5fab5c704c1 SIZE (rust/crates/pkg-config-0.3.32.crate) = 21370 SHA256 (rust/crates/png-0.17.16.crate) = 82151a2fc869e011c153adc57cf2789ccb8d9906ce52c0b39a6b5697749d7526 SIZE (rust/crates/png-0.17.16.crate) = 117975 -SHA256 (rust/crates/polling-3.7.4.crate) = a604568c3202727d1507653cb121dbd627a58684eb09a820fd746bee38b4442f -SIZE (rust/crates/polling-3.7.4.crate) = 58239 -SHA256 (rust/crates/portable-atomic-1.11.0.crate) = 350e9b48cbc6b0e028b0473b114454c6316e57336ee184ceab6e53f72c178b3e -SIZE (rust/crates/portable-atomic-1.11.0.crate) = 181258 +SHA256 (rust/crates/png-0.18.0.crate) = 97baced388464909d42d89643fe4361939af9b7ce7a31ee32a168f832a70f2a0 +SIZE (rust/crates/png-0.18.0.crate) = 118041 +SHA256 (rust/crates/polling-3.10.0.crate) = b5bd19146350fe804f7cb2669c851c03d69da628803dab0d98018142aaa5d829 +SIZE (rust/crates/polling-3.10.0.crate) = 60095 +SHA256 (rust/crates/portable-atomic-1.11.1.crate) = f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483 +SIZE (rust/crates/portable-atomic-1.11.1.crate) = 185506 SHA256 (rust/crates/portable-atomic-util-0.2.4.crate) = d8a2f0d8d040d7848a709caf78912debcc3f33ee4b3cac47d73d1e1069e83507 SIZE (rust/crates/portable-atomic-util-0.2.4.crate) = 47043 -SHA256 (rust/crates/postcard-1.1.1.crate) = 170a2601f67cc9dba8edd8c4870b15f71a6a2dc196daec8c83f72b59dff628a8 -SIZE (rust/crates/postcard-1.1.1.crate) = 35639 +SHA256 (rust/crates/postcard-1.1.3.crate) = 6764c3b5dd454e283a30e6dfe78e9b31096d9e32036b5d1eaac7a6119ccb9a24 +SIZE (rust/crates/postcard-1.1.3.crate) = 43968 +SHA256 (rust/crates/potential_utf-0.1.3.crate) = 84df19adbe5b5a0782edcab45899906947ab039ccf4573713735ee7de1e6b08a +SIZE (rust/crates/potential_utf-0.1.3.crate) = 9698 SHA256 (rust/crates/powerfmt-0.2.0.crate) = 439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391 SIZE (rust/crates/powerfmt-0.2.0.crate) = 15165 SHA256 (rust/crates/pp-rs-0.2.1.crate) = bb458bb7f6e250e6eb79d5026badc10a3ebb8f9a15d1fff0f13d17c71f4d6dee @@ -1047,12 +1061,12 @@ SHA256 (rust/crates/proc-macro-nested-0.1.7.crate) = bc881b2c22681370c6a780e47af SIZE (rust/crates/proc-macro-nested-0.1.7.crate) = 6495 SHA256 (rust/crates/proc-macro2-0.4.30.crate) = cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759 SIZE (rust/crates/proc-macro2-0.4.30.crate) = 34731 -SHA256 (rust/crates/proc-macro2-1.0.95.crate) = 02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778 -SIZE (rust/crates/proc-macro2-1.0.95.crate) = 51820 -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/proc-macro2-1.0.101.crate) = 89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de +SIZE (rust/crates/proc-macro2-1.0.101.crate) = 53886 +SHA256 (rust/crates/profiling-1.0.17.crate) = 3eb8486b569e12e2c32ad3e204dbaba5e4b5b216e9367044f25f1dba42341773 +SIZE (rust/crates/profiling-1.0.17.crate) = 13493 +SHA256 (rust/crates/profiling-procmacros-1.0.17.crate) = 52717f9a02b6965224f95ca2a81e2e0c5c43baacd28ca057577988930b6c3d5b +SIZE (rust/crates/profiling-procmacros-1.0.17.crate) = 5895 SHA256 (rust/crates/prometheus-0.14.0.crate) = 3ca5326d8d0b950a9acd87e6a3f94745394f62e4dae1b1ee22b2bc0c394af43a SIZE (rust/crates/prometheus-0.14.0.crate) = 90035 SHA256 (rust/crates/prometheus-hyper-0.2.1.crate) = 60d6eeac44b972d6f552e8aaec7f869200aef42f14ddffdddde308b94d0c066e @@ -1063,30 +1077,34 @@ SHA256 (rust/crates/protocol-derive-3.4.0.crate) = 28647f30298898ead966b51e9aee5 SIZE (rust/crates/protocol-derive-3.4.0.crate) = 8347 SHA256 (rust/crates/psm-0.1.26.crate) = 6e944464ec8536cd1beb0bbfd96987eb5e3b72f2ecdafdc5c769a37f1fa2ae1f SIZE (rust/crates/psm-0.1.26.crate) = 23541 -SHA256 (rust/crates/pulley-interpreter-29.0.1.crate) = 62d95f8575df49a2708398182f49a888cf9dc30210fb1fd2df87c889edcee75d -SIZE (rust/crates/pulley-interpreter-29.0.1.crate) = 55917 +SHA256 (rust/crates/pulley-interpreter-36.0.2.crate) = e4e2d31146038fd9e62bfa331db057aca325d5ca10451a9fe341356cead7da53 +SIZE (rust/crates/pulley-interpreter-36.0.2.crate) = 66122 +SHA256 (rust/crates/pulley-macros-36.0.2.crate) = efb9fdafaca625f9ea8cfa793364ea1bdd32d306cff18f166b00ddaa61ecbb27 +SIZE (rust/crates/pulley-macros-36.0.2.crate) = 2349 +SHA256 (rust/crates/pxfm-0.1.23.crate) = f55f4fedc84ed39cb7a489322318976425e42a147e2be79d8f878e2884f94e84 +SIZE (rust/crates/pxfm-0.1.23.crate) = 1219248 SHA256 (rust/crates/quick-xml-0.37.5.crate) = 331e97a1af0bf59823e6eadffe373d7b27f485be8748f71471c662c1f269b7fb SIZE (rust/crates/quick-xml-0.37.5.crate) = 190481 -SHA256 (rust/crates/quinn-0.11.7.crate) = c3bd15a6f2967aef83887dcb9fec0014580467e33720d073560cf015a5683012 -SIZE (rust/crates/quinn-0.11.7.crate) = 79387 -SHA256 (rust/crates/quinn-proto-0.11.11.crate) = bcbafbbdbb0f638fe3f35f3c56739f77a8a1d070cb25603226c83339b391472b -SIZE (rust/crates/quinn-proto-0.11.11.crate) = 229381 -SHA256 (rust/crates/quinn-udp-0.5.12.crate) = ee4e529991f949c5e25755532370b8af5d114acae52326361d68d47af64aa842 -SIZE (rust/crates/quinn-udp-0.5.12.crate) = 31825 +SHA256 (rust/crates/quinn-0.11.9.crate) = b9e20a958963c291dc322d98411f541009df2ced7b5a4f2bd52337638cfccf20 +SIZE (rust/crates/quinn-0.11.9.crate) = 83606 +SHA256 (rust/crates/quinn-proto-0.11.13.crate) = f1906b49b0c3bc04b5fe5d86a77925ae6524a19b816ae38ce1e426255f1d8a31 +SIZE (rust/crates/quinn-proto-0.11.13.crate) = 243837 +SHA256 (rust/crates/quinn-udp-0.5.14.crate) = addec6a0dcad8a8d96a771f815f0eaf55f9d1805756410b39f5fa81332574cbd +SIZE (rust/crates/quinn-udp-0.5.14.crate) = 33436 SHA256 (rust/crates/quote-0.6.13.crate) = 6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1 SIZE (rust/crates/quote-0.6.13.crate) = 17475 SHA256 (rust/crates/quote-1.0.40.crate) = 1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d SIZE (rust/crates/quote-1.0.40.crate) = 31063 -SHA256 (rust/crates/r-efi-5.2.0.crate) = 74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5 -SIZE (rust/crates/r-efi-5.2.0.crate) = 64764 +SHA256 (rust/crates/r-efi-5.3.0.crate) = 69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f +SIZE (rust/crates/r-efi-5.3.0.crate) = 64532 SHA256 (rust/crates/radium-0.7.0.crate) = dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09 SIZE (rust/crates/radium-0.7.0.crate) = 10906 SHA256 (rust/crates/radix_trie-0.2.1.crate) = c069c179fcdc6a2fe24d8d18305cf085fdbd4f922c041943e203685d6a1c58fd SIZE (rust/crates/radix_trie-0.2.1.crate) = 251366 SHA256 (rust/crates/rand-0.8.5.crate) = 34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404 SIZE (rust/crates/rand-0.8.5.crate) = 87113 -SHA256 (rust/crates/rand-0.9.1.crate) = 9fbfd9d094a40bf3ae768db9361049ace4c0e04a4fd6b359518bd7b73a73dd97 -SIZE (rust/crates/rand-0.9.1.crate) = 97986 +SHA256 (rust/crates/rand-0.9.2.crate) = 6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1 +SIZE (rust/crates/rand-0.9.2.crate) = 99930 SHA256 (rust/crates/rand_chacha-0.3.1.crate) = e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88 SIZE (rust/crates/rand_chacha-0.3.1.crate) = 15251 SHA256 (rust/crates/rand_chacha-0.9.0.crate) = d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb @@ -1103,42 +1121,46 @@ SHA256 (rust/crates/ratatui-0.29.0.crate) = eabd94c2f37801c20583fc49dd5cd6b0ba68 SIZE (rust/crates/ratatui-0.29.0.crate) = 543514 SHA256 (rust/crates/raw-window-handle-0.6.2.crate) = 20675572f6f24e9e76ef639bc5552774ed45f1c30e2951e1e99c59888861c539 SIZE (rust/crates/raw-window-handle-0.6.2.crate) = 20234 -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/rcgen-0.13.2.crate) = 75e669e5202259b5314d1ea5397316ad400819437857b90861765f24c4cf80a2 -SIZE (rust/crates/rcgen-0.13.2.crate) = 77836 +SHA256 (rust/crates/rayon-1.11.0.crate) = 368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f +SIZE (rust/crates/rayon-1.11.0.crate) = 182470 +SHA256 (rust/crates/rayon-core-1.13.0.crate) = 22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91 +SIZE (rust/crates/rayon-core-1.13.0.crate) = 73151 +SHA256 (rust/crates/rcgen-0.14.3.crate) = 0068c5b3cab1d4e271e0bb6539c87563c43411cad90b057b15c79958fbeb41f7 +SIZE (rust/crates/rcgen-0.14.3.crate) = 78302 SHA256 (rust/crates/redox_syscall-0.4.1.crate) = 4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa SIZE (rust/crates/redox_syscall-0.4.1.crate) = 24858 -SHA256 (rust/crates/redox_syscall-0.5.12.crate) = 928fca9cf2aa042393a8325b9ead81d2f0df4cb12e1e24cef072922ccd99c5af -SIZE (rust/crates/redox_syscall-0.5.12.crate) = 29544 +SHA256 (rust/crates/redox_syscall-0.5.17.crate) = 5407465600fb0548f1442edf71dd20683c6ed326200ace4b1ef0763521bb3b77 +SIZE (rust/crates/redox_syscall-0.5.17.crate) = 30002 SHA256 (rust/crates/redox_users-0.4.6.crate) = ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43 SIZE (rust/crates/redox_users-0.4.6.crate) = 15585 -SHA256 (rust/crates/redox_users-0.5.0.crate) = dd6f9d3d47bdd2ad6945c5015a226ec6155d0bcdfd8f7cd29f86b71f8de99d2b -SIZE (rust/crates/redox_users-0.5.0.crate) = 15586 +SHA256 (rust/crates/redox_users-0.5.2.crate) = a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac +SIZE (rust/crates/redox_users-0.5.2.crate) = 17280 +SHA256 (rust/crates/ref-cast-1.0.24.crate) = 4a0ae411dbe946a674d89546582cea4ba2bb8defac896622d6496f14c23ba5cf +SIZE (rust/crates/ref-cast-1.0.24.crate) = 15252 +SHA256 (rust/crates/ref-cast-impl-1.0.24.crate) = 1165225c21bff1f3bbce98f5a1f889949bc902d3575308cc7b0de30b4f6d27c7 +SIZE (rust/crates/ref-cast-impl-1.0.24.crate) = 9968 SHA256 (rust/crates/refinery-0.8.16.crate) = 7ba5d693abf62492c37268512ff35b77655d2e957ca53dab85bf993fe9172d15 SIZE (rust/crates/refinery-0.8.16.crate) = 31584 SHA256 (rust/crates/refinery-core-0.8.16.crate) = 8a83581f18c1a4c3a6ebd7a174bdc665f17f618d79f7edccb6a0ac67e660b319 SIZE (rust/crates/refinery-core-0.8.16.crate) = 33647 SHA256 (rust/crates/refinery-macros-0.8.16.crate) = 72c225407d8e52ef8cf094393781ecda9a99d6544ec28d90a6915751de259264 SIZE (rust/crates/refinery-macros-0.8.16.crate) = 8591 -SHA256 (rust/crates/regalloc2-0.11.2.crate) = dc06e6b318142614e4a48bc725abbf08ff166694835c43c9dae5a9009704639a -SIZE (rust/crates/regalloc2-0.11.2.crate) = 139677 -SHA256 (rust/crates/regex-1.11.1.crate) = b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191 -SIZE (rust/crates/regex-1.11.1.crate) = 254170 -SHA256 (rust/crates/regex-automata-0.1.10.crate) = 6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132 -SIZE (rust/crates/regex-automata-0.1.10.crate) = 114533 -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.6.29.crate) = f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1 -SIZE (rust/crates/regex-syntax-0.6.29.crate) = 299752 -SHA256 (rust/crates/regex-syntax-0.8.5.crate) = 2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c -SIZE (rust/crates/regex-syntax-0.8.5.crate) = 357541 +SHA256 (rust/crates/regalloc2-0.12.2.crate) = 5216b1837de2149f8bc8e6d5f88a9326b63b8c836ed58ce4a0a29ec736a59734 +SIZE (rust/crates/regalloc2-0.12.2.crate) = 140473 +SHA256 (rust/crates/regex-1.11.2.crate) = 23d7fd106d8c02486a8d64e778353d1cffe08ce79ac2e82f540c86d0facf6912 +SIZE (rust/crates/regex-1.11.2.crate) = 166265 +SHA256 (rust/crates/regex-automata-0.3.9.crate) = 59b23e92ee4318893fa3fe3e6fb365258efbfe6ac6ab30f090cdcbb7aa37efa9 +SIZE (rust/crates/regex-automata-0.3.9.crate) = 610489 +SHA256 (rust/crates/regex-automata-0.4.10.crate) = 6b9458fa0bfeeac22b5ca447c63aaf45f28439a709ccd244698632f9aa6394d6 +SIZE (rust/crates/regex-automata-0.4.10.crate) = 622754 +SHA256 (rust/crates/regex-syntax-0.7.5.crate) = dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da +SIZE (rust/crates/regex-syntax-0.7.5.crate) = 343366 +SHA256 (rust/crates/regex-syntax-0.8.6.crate) = caf4aa5b0f434c91fe5c7f1ecb6a5ece2130b02ad2a590589dda5146df959001 +SIZE (rust/crates/regex-syntax-0.8.6.crate) = 358808 SHA256 (rust/crates/renderdoc-sys-1.1.0.crate) = 19b30a45b0cd0bcca8037f3d0dc3421eaf95327a17cad11964fb8179b4fc4832 SIZE (rust/crates/renderdoc-sys-1.1.0.crate) = 10366 -SHA256 (rust/crates/resolv-conf-0.7.3.crate) = fc7c8f7f733062b66dc1c63f9db168ac0b97a9210e247fa90fdc9ad08f51b302 -SIZE (rust/crates/resolv-conf-0.7.3.crate) = 16929 +SHA256 (rust/crates/resolv-conf-0.7.4.crate) = 95325155c684b1c89f7765e30bc1c42e4a6da51ca513615660cb8a62ef9a88e3 +SIZE (rust/crates/resolv-conf-0.7.4.crate) = 17260 SHA256 (rust/crates/ring-0.17.14.crate) = a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7 SIZE (rust/crates/ring-0.17.14.crate) = 1502610 SHA256 (rust/crates/rmp-0.8.14.crate) = 228ed7c16fa39782c3b3468e974aec2795e9089153cd08ee2e9aefb3613334c4 @@ -1147,8 +1169,8 @@ SHA256 (rust/crates/rmp-serde-1.3.0.crate) = 52e599a477cf9840e92f2cde9a7189e67b4 SIZE (rust/crates/rmp-serde-1.3.0.crate) = 33025 SHA256 (rust/crates/robust-0.2.3.crate) = e5864e7ef1a6b7bcf1d6ca3f655e65e724ed3b52546a0d0a663c991522f552ea SIZE (rust/crates/robust-0.2.3.crate) = 16034 -SHA256 (rust/crates/ron-0.8.1.crate) = b91f7eff05f748767f183df4320a63d6936e9c6107d97c9e6bdd9784f4289c94 -SIZE (rust/crates/ron-0.8.1.crate) = 63251 +SHA256 (rust/crates/ron-0.11.0.crate) = db09040cc89e461f1a265139777a2bde7f8d8c67c4936f700c63ce3e2904d468 +SIZE (rust/crates/ron-0.11.0.crate) = 121686 SHA256 (rust/crates/roots-0.0.8.crate) = 082f11ffa03bbef6c2c6ea6bea1acafaade2fd9050ae0234ab44a2153742b058 SIZE (rust/crates/roots-0.0.8.crate) = 29257 SHA256 (rust/crates/roxmltree-0.14.1.crate) = 921904a62e410e37e215c40381b7117f830d9d89ba60ab5236170541dd25646b @@ -1161,8 +1183,8 @@ SHA256 (rust/crates/rusqlite-0.31.0.crate) = b838eba278d213a8beaf485bd313fd580ca SIZE (rust/crates/rusqlite-0.31.0.crate) = 152252 SHA256 (rust/crates/rust-argon2-2.1.0.crate) = 9d9848531d60c9cbbcf9d166c885316c24bc0e2a9d3eba0956bb6cbbd79bc6e8 SIZE (rust/crates/rust-argon2-2.1.0.crate) = 26904 -SHA256 (rust/crates/rustc-demangle-0.1.24.crate) = 719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f -SIZE (rust/crates/rustc-demangle-0.1.24.crate) = 29047 +SHA256 (rust/crates/rustc-demangle-0.1.26.crate) = 56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace +SIZE (rust/crates/rustc-demangle-0.1.26.crate) = 30340 SHA256 (rust/crates/rustc-hash-1.1.0.crate) = 08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2 SIZE (rust/crates/rustc-hash-1.1.0.crate) = 9331 SHA256 (rust/crates/rustc-hash-2.1.1.crate) = 357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d @@ -1173,38 +1195,42 @@ SHA256 (rust/crates/rustc_version-0.4.1.crate) = cfcb3a22ef46e85b45de6ee7e79d063 SIZE (rust/crates/rustc_version-0.4.1.crate) = 12245 SHA256 (rust/crates/rustix-0.38.44.crate) = fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154 SIZE (rust/crates/rustix-0.38.44.crate) = 379347 -SHA256 (rust/crates/rustix-1.0.7.crate) = c71e83d6afe7ff64890ec6b71d6a69bb8a610ab78ce364b3352876bb4c801266 -SIZE (rust/crates/rustix-1.0.7.crate) = 414500 +SHA256 (rust/crates/rustix-1.1.2.crate) = cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e +SIZE (rust/crates/rustix-1.1.2.crate) = 422717 SHA256 (rust/crates/rustix-linux-procfs-0.1.1.crate) = 2fc84bf7e9aa16c4f2c758f27412dc9841341e16aa682d9c7ac308fe3ee12056 SIZE (rust/crates/rustix-linux-procfs-0.1.1.crate) = 17465 -SHA256 (rust/crates/rustls-0.23.26.crate) = df51b5869f3a441595eac5e8ff14d486ff285f7b8c0df8770e49c3b56351f0f0 -SIZE (rust/crates/rustls-0.23.26.crate) = 347849 +SHA256 (rust/crates/rustls-0.23.31.crate) = c0ebcbd2f03de0fc1122ad9bb24b127a5a6cd51d72604a3f3c50ac459762b6cc +SIZE (rust/crates/rustls-0.23.31.crate) = 371259 SHA256 (rust/crates/rustls-native-certs-0.8.1.crate) = 7fcff2dd52b58a8d98a70243663a0d234c4e2b79235637849d15913394a247d3 SIZE (rust/crates/rustls-native-certs-0.8.1.crate) = 31129 SHA256 (rust/crates/rustls-pemfile-2.2.0.crate) = dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50 SIZE (rust/crates/rustls-pemfile-2.2.0.crate) = 25849 -SHA256 (rust/crates/rustls-pki-types-1.11.0.crate) = 917ce264624a4b4db1c364dcc35bfca9ded014d0a958cd47ad3e960e988ea51c -SIZE (rust/crates/rustls-pki-types-1.11.0.crate) = 63933 -SHA256 (rust/crates/rustls-platform-verifier-0.5.2.crate) = 4937d110d34408e9e5ad30ba0b0ca3b6a8a390f8db3636db60144ac4fa792750 -SIZE (rust/crates/rustls-platform-verifier-0.5.2.crate) = 61002 +SHA256 (rust/crates/rustls-pki-types-1.12.0.crate) = 229a4a4c221013e7e1f1a043678c5cc39fe5171437c88fb47151a21e6f5b5c79 +SIZE (rust/crates/rustls-pki-types-1.12.0.crate) = 64740 +SHA256 (rust/crates/rustls-platform-verifier-0.6.1.crate) = be59af91596cac372a6942530653ad0c3a246cdd491aaa9dcaee47f88d67d5a0 +SIZE (rust/crates/rustls-platform-verifier-0.6.1.crate) = 60142 SHA256 (rust/crates/rustls-platform-verifier-android-0.1.1.crate) = f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f SIZE (rust/crates/rustls-platform-verifier-android-0.1.1.crate) = 13919 -SHA256 (rust/crates/rustls-webpki-0.103.1.crate) = fef8b8769aaccf73098557a87cd1816b4f9c7c16811c9c77142aa695c16f2c03 -SIZE (rust/crates/rustls-webpki-0.103.1.crate) = 820273 +SHA256 (rust/crates/rustls-webpki-0.103.4.crate) = 0a17884ae0c1b773f1ccd2bd4a8c72f16da897310a98b0e84bf349ad5ead92fc +SIZE (rust/crates/rustls-webpki-0.103.4.crate) = 84241 SHA256 (rust/crates/rusttype-0.7.9.crate) = 310942406a39981bed7e12b09182a221a29e0990f3e7e0c971f131922ed135d5 SIZE (rust/crates/rusttype-0.7.9.crate) = 42732 SHA256 (rust/crates/rusttype-0.8.3.crate) = 9f61411055101f7b60ecf1041d87fb74205fb20b0c7a723f07ef39174cf6b4c0 SIZE (rust/crates/rusttype-0.8.3.crate) = 37327 -SHA256 (rust/crates/rustversion-1.0.20.crate) = eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2 -SIZE (rust/crates/rustversion-1.0.20.crate) = 20666 -SHA256 (rust/crates/rustyline-15.0.0.crate) = 2ee1e066dc922e513bda599c6ccb5f3bb2b0ea5870a579448f2622993f0a9a2f -SIZE (rust/crates/rustyline-15.0.0.crate) = 116346 +SHA256 (rust/crates/rustversion-1.0.22.crate) = b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d +SIZE (rust/crates/rustversion-1.0.22.crate) = 21096 +SHA256 (rust/crates/rustyline-17.0.1.crate) = a6614df0b6d4cfb20d1d5e295332921793ce499af3ebc011bf1e393380e1e492 +SIZE (rust/crates/rustyline-17.0.1.crate) = 121346 SHA256 (rust/crates/ryu-1.0.20.crate) = 28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f SIZE (rust/crates/ryu-1.0.20.crate) = 48738 SHA256 (rust/crates/same-file-1.0.6.crate) = 93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502 SIZE (rust/crates/same-file-1.0.6.crate) = 10183 -SHA256 (rust/crates/schannel-0.1.27.crate) = 1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d -SIZE (rust/crates/schannel-0.1.27.crate) = 42772 +SHA256 (rust/crates/schannel-0.1.28.crate) = 891d81b926048e76efe18581bf793546b4c0eaf8448d72be8de2bbee5fd166e1 +SIZE (rust/crates/schannel-0.1.28.crate) = 42312 +SHA256 (rust/crates/schemars-0.9.0.crate) = 4cd191f9397d57d581cddd31014772520aa448f65ef991055d7f61582c65165f +SIZE (rust/crates/schemars-0.9.0.crate) = 80032 +SHA256 (rust/crates/schemars-1.0.4.crate) = 82d20c4491bc164fa2f6c5d44565947a52ad80b9505d8e36f8d54c27c739fcd0 +SIZE (rust/crates/schemars-1.0.4.crate) = 88282 SHA256 (rust/crates/schnellru-0.2.4.crate) = 356285bbf17bea63d9e52e96bd18f039672ac92b55b8cb997d6162a2a37d1649 SIZE (rust/crates/schnellru-0.2.4.crate) = 24055 SHA256 (rust/crates/scoped-tls-1.0.1.crate) = e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294 @@ -1217,12 +1243,10 @@ SHA256 (rust/crates/sdl2-0.35.2.crate) = f7959277b623f1fb9e04aea73686c3ca52f01b2 SIZE (rust/crates/sdl2-0.35.2.crate) = 177570 SHA256 (rust/crates/sdl2-sys-0.35.2.crate) = e3586be2cf6c0a8099a79a12b4084357aa9b3e0b0d7980e3b67aaf7a9d55f9f0 SIZE (rust/crates/sdl2-sys-0.35.2.crate) = 7425816 -SHA256 (rust/crates/security-framework-3.2.0.crate) = 271720403f46ca04f7ba6f55d438f8bd878d6b8ca0a1046e8228c4145bcbb316 -SIZE (rust/crates/security-framework-3.2.0.crate) = 86095 -SHA256 (rust/crates/security-framework-sys-2.14.0.crate) = 49db231d56a190491cb4aeda9527f1ad45345af50b0851622a7adb8c03b01c32 -SIZE (rust/crates/security-framework-sys-2.14.0.crate) = 20537 -SHA256 (rust/crates/self_cell-0.10.3.crate) = e14e4d63b804dc0c7ec4a1e52bcb63f02c7ac94476755aa579edac21e01f915d -SIZE (rust/crates/self_cell-0.10.3.crate) = 7308 +SHA256 (rust/crates/security-framework-3.4.0.crate) = 60b369d18893388b345804dc0007963c99b7d665ae71d275812d828c6f089640 +SIZE (rust/crates/security-framework-3.4.0.crate) = 88668 +SHA256 (rust/crates/security-framework-sys-2.15.0.crate) = cc1f0cbffaac4852523ce30d8bd3c5cdc873501d96ff467ca09b6767bb8cd5c0 +SIZE (rust/crates/security-framework-sys-2.15.0.crate) = 20718 SHA256 (rust/crates/self_cell-1.2.0.crate) = 0f7d95a54511e0c7be3f51e8867aa8cf35148d7b9445d44de2f943e2b206e749 SIZE (rust/crates/self_cell-1.2.0.crate) = 16883 SHA256 (rust/crates/semver-0.9.0.crate) = 1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403 @@ -1237,20 +1261,22 @@ SHA256 (rust/crates/serde-1.0.219.crate) = 5f0e2c6ed6606019b4e29e69dbaba95b11854 SIZE (rust/crates/serde-1.0.219.crate) = 78983 SHA256 (rust/crates/serde_derive-1.0.219.crate) = 5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00 SIZE (rust/crates/serde_derive-1.0.219.crate) = 57798 -SHA256 (rust/crates/serde_json-1.0.140.crate) = 20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373 -SIZE (rust/crates/serde_json-1.0.140.crate) = 154852 +SHA256 (rust/crates/serde_json-1.0.143.crate) = d401abef1d108fbd9cbaebc3e46611f4b1021f714a0597a71f41ee463f5f4a5a +SIZE (rust/crates/serde_json-1.0.143.crate) = 155342 SHA256 (rust/crates/serde_path_to_error-0.1.17.crate) = 59fab13f937fa393d08645bf3a84bdfe86e296747b506ada67bb15f10f218b2a SIZE (rust/crates/serde_path_to_error-0.1.17.crate) = 17662 SHA256 (rust/crates/serde_repr-0.1.20.crate) = 175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c SIZE (rust/crates/serde_repr-0.1.20.crate) = 12627 -SHA256 (rust/crates/serde_spanned-0.6.8.crate) = 87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1 -SIZE (rust/crates/serde_spanned-0.6.8.crate) = 9330 +SHA256 (rust/crates/serde_spanned-0.6.9.crate) = bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3 +SIZE (rust/crates/serde_spanned-0.6.9.crate) = 10210 +SHA256 (rust/crates/serde_spanned-1.0.0.crate) = 40734c41988f7306bb04f0ecf60ec0f3f1caa34290e4e8ea471dcd3346483b83 +SIZE (rust/crates/serde_spanned-1.0.0.crate) = 10956 SHA256 (rust/crates/serde_urlencoded-0.7.1.crate) = d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd SIZE (rust/crates/serde_urlencoded-0.7.1.crate) = 12822 -SHA256 (rust/crates/serde_with-3.12.0.crate) = d6b6f7f2fcb69f747921f79f3926bd1e203fce4fef62c268dd3abfb6d86029aa -SIZE (rust/crates/serde_with-3.12.0.crate) = 148666 -SHA256 (rust/crates/serde_with_macros-3.12.0.crate) = 8d00caa5193a3c8362ac2b73be6b9e768aa5a4b2f721d8f4b339600c3cb51f8e -SIZE (rust/crates/serde_with_macros-3.12.0.crate) = 32089 +SHA256 (rust/crates/serde_with-3.14.0.crate) = f2c45cd61fefa9db6f254525d46e392b852e0e61d9a1fd36e5bd183450a556d5 +SIZE (rust/crates/serde_with-3.14.0.crate) = 192177 +SHA256 (rust/crates/serde_with_macros-3.14.0.crate) = de90945e6565ce0d9a25098082ed4ee4002e047cb59892c318d66821e14bb30f +SIZE (rust/crates/serde_with_macros-3.14.0.crate) = 39066 SHA256 (rust/crates/sha2-0.10.9.crate) = a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283 SIZE (rust/crates/sha2-0.10.9.crate) = 29271 SHA256 (rust/crates/shaderc-0.8.3.crate) = 27e07913ada18607bb60d12431cbe3358d3bbebbe95948e1618851dc01e63b7b @@ -1261,8 +1287,6 @@ SHA256 (rust/crates/sharded-slab-0.1.7.crate) = f40ca3c46823713e0d4209592e8d6e82 SIZE (rust/crates/sharded-slab-0.1.7.crate) = 58227 SHA256 (rust/crates/shell-words-1.1.0.crate) = 24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde SIZE (rust/crates/shell-words-1.1.0.crate) = 9871 -SHA256 (rust/crates/shellexpand-2.1.2.crate) = 7ccc8076840c4da029af4f87e4e8daeb0fca6b87bbb02e10cb60b791450e11e4 -SIZE (rust/crates/shellexpand-2.1.2.crate) = 16884 SHA256 (rust/crates/shellexpand-3.1.1.crate) = 8b1fdf65dd6331831494dd616b30351c38e96e45921a27745cf98490458b90bb SIZE (rust/crates/shellexpand-3.1.1.crate) = 25904 SHA256 (rust/crates/shlex-1.3.0.crate) = 0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64 @@ -1273,22 +1297,22 @@ SHA256 (rust/crates/shred-derive-0.7.0.crate) = 69760b786f8b40361c10663eb63c81fa SIZE (rust/crates/shred-derive-0.7.0.crate) = 2365 SHA256 (rust/crates/shrev-1.1.3.crate) = a5ea33232fdcf1bf691ca33450e5a94dde13e1a8cbb8caabc5e4f9d761e10b1a SIZE (rust/crates/shrev-1.1.3.crate) = 11309 -SHA256 (rust/crates/signal-hook-0.3.17.crate) = 8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801 -SIZE (rust/crates/signal-hook-0.3.17.crate) = 50296 +SHA256 (rust/crates/signal-hook-0.3.18.crate) = d881a16cf4426aa584979d30bd82cb33429027e42122b169753d6ef1085ed6e2 +SIZE (rust/crates/signal-hook-0.3.18.crate) = 50862 SHA256 (rust/crates/signal-hook-mio-0.2.4.crate) = 34db1a06d485c9142248b7a054f034b349b212551f3dfd19c94d45a754a217cd SIZE (rust/crates/signal-hook-mio-0.2.4.crate) = 9314 -SHA256 (rust/crates/signal-hook-registry-1.4.5.crate) = 9203b8055f63a2a00e2f593bb0510367fe707d7ff1e5c872de2f537b339e5410 -SIZE (rust/crates/signal-hook-registry-1.4.5.crate) = 19004 +SHA256 (rust/crates/signal-hook-registry-1.4.6.crate) = b2a4719bff48cee6b39d12c020eeb490953ad2443b7055bd0b21fca26bd8c28b +SIZE (rust/crates/signal-hook-registry-1.4.6.crate) = 19277 SHA256 (rust/crates/simd-adler32-0.3.7.crate) = d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe SIZE (rust/crates/simd-adler32-0.3.7.crate) = 12086 SHA256 (rust/crates/siphasher-1.0.1.crate) = 56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d SIZE (rust/crates/siphasher-1.0.1.crate) = 10351 -SHA256 (rust/crates/slab-0.4.9.crate) = 8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67 -SIZE (rust/crates/slab-0.4.9.crate) = 17108 +SHA256 (rust/crates/slab-0.4.11.crate) = 7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589 +SIZE (rust/crates/slab-0.4.11.crate) = 18549 SHA256 (rust/crates/slotmap-1.0.7.crate) = dbff4acf519f630b3a3ddcfaea6c06b42174d9a44bc70c620e9ed1649d58b82a SIZE (rust/crates/slotmap-1.0.7.crate) = 61390 -SHA256 (rust/crates/smallvec-1.15.0.crate) = 8917285742e9f3e1683f0a9c4e6b57960b7314d0b08d30d1ecd426713ee2eee9 -SIZE (rust/crates/smallvec-1.15.0.crate) = 38113 +SHA256 (rust/crates/smallvec-1.15.1.crate) = 67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03 +SIZE (rust/crates/smallvec-1.15.1.crate) = 38116 SHA256 (rust/crates/smithay-client-toolkit-0.16.1.crate) = 870427e30b8f2cbe64bf43ec4b86e88fe39b0a84b3f15efd9c9c2d020bc86eb9 SIZE (rust/crates/smithay-client-toolkit-0.16.1.crate) = 131081 SHA256 (rust/crates/smithay-client-toolkit-0.19.2.crate) = 3457dea1f0eb631b4034d61d4d8c32074caa6cd1ab2d59f2327bd8461e2c0016 @@ -1299,16 +1323,16 @@ SHA256 (rust/crates/smithay-clipboard-0.7.2.crate) = cc8216eec463674a0e90f29e0ae SIZE (rust/crates/smithay-clipboard-0.7.2.crate) = 17877 SHA256 (rust/crates/smol_str-0.2.2.crate) = dd538fb6910ac1099850255cf94a94df6551fbdd602454387d0adb2d1ca6dead SIZE (rust/crates/smol_str-0.2.2.crate) = 15840 -SHA256 (rust/crates/socket2-0.5.9.crate) = 4f5fd57c80058a56cf5c777ab8a126398ece8e442983605d280a44ce79d0edef -SIZE (rust/crates/socket2-0.5.9.crate) = 57432 -SHA256 (rust/crates/sorted-vec-0.8.6.crate) = d372029cb5195f9ab4e4b9aef550787dce78b124fcaee8d82519925defcd6f0d -SIZE (rust/crates/sorted-vec-0.8.6.crate) = 12172 -SHA256 (rust/crates/spin_sleep-1.3.1.crate) = 17db5ecef7e0bebeb8bf8bc4c4b554e05e0205d7008f10bb37787892e7a6507b -SIZE (rust/crates/spin_sleep-1.3.1.crate) = 13308 +SHA256 (rust/crates/socket2-0.5.10.crate) = e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678 +SIZE (rust/crates/socket2-0.5.10.crate) = 58169 +SHA256 (rust/crates/socket2-0.6.0.crate) = 233504af464074f9d066d7b5416c5f9b894a5862a6506e306f7b816cdd6f1807 +SIZE (rust/crates/socket2-0.6.0.crate) = 57974 +SHA256 (rust/crates/sorted-vec-0.8.10.crate) = 19f58d7b0190c7f12df7e8be6b79767a0836059159811b869d5ab55721fe14d0 +SIZE (rust/crates/sorted-vec-0.8.10.crate) = 15005 +SHA256 (rust/crates/spin_sleep-1.3.3.crate) = 9c07347b7c0301b9adba4350bdcf09c039d0e7160922050db0439b3c6723c8ab +SIZE (rust/crates/spin_sleep-1.3.3.crate) = 12859 SHA256 (rust/crates/spirv-0.3.0+sdk-1.3.268.0.crate) = eda41003dc44290527a59b13432d4a0379379fa074b70174882adfbdfd917844 SIZE (rust/crates/spirv-0.3.0+sdk-1.3.268.0.crate) = 30802 -SHA256 (rust/crates/sptr-0.3.2.crate) = 3b9b39299b249ad65f3b7e96443bad61c02ca5cd3589f46cb6d610a0fd6c0d6a -SIZE (rust/crates/sptr-0.3.2.crate) = 14598 SHA256 (rust/crates/stable_deref_trait-1.2.0.crate) = a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3 SIZE (rust/crates/stable_deref_trait-1.2.0.crate) = 8054 SHA256 (rust/crates/stacker-0.1.21.crate) = cddb07e32ddb770749da91081d8d0ac3a16f1a569a18b20348cd371f5dead06b @@ -1323,8 +1347,12 @@ SHA256 (rust/crates/strsim-0.11.1.crate) = 7da8b5736845d9f2fcb837ea5d9e2628564b3 SIZE (rust/crates/strsim-0.11.1.crate) = 14266 SHA256 (rust/crates/strum-0.26.3.crate) = 8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06 SIZE (rust/crates/strum-0.26.3.crate) = 7237 +SHA256 (rust/crates/strum-0.27.2.crate) = af23d6f6c1a224baef9d3f61e287d2761385a5b88fdab4eb4c6f11aeb54c4bcf +SIZE (rust/crates/strum-0.27.2.crate) = 8489 SHA256 (rust/crates/strum_macros-0.26.4.crate) = 4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be SIZE (rust/crates/strum_macros-0.26.4.crate) = 27531 +SHA256 (rust/crates/strum_macros-0.27.2.crate) = 7695ce3845ea4b33927c055a39dc438a45b059f7c1b3d91d38d10355fb8cbca7 +SIZE (rust/crates/strum_macros-0.27.2.crate) = 30522 SHA256 (rust/crates/subtle-2.6.1.crate) = 13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292 SIZE (rust/crates/subtle-2.6.1.crate) = 14562 SHA256 (rust/crates/sum_type-0.2.0.crate) = da5b4a0c9f3c7c8e891e445a7c776627e208e8bba23ab680798066dd283e6a15 @@ -1347,10 +1375,10 @@ SHA256 (rust/crates/syn-0.15.44.crate) = 9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a SIZE (rust/crates/syn-0.15.44.crate) = 184212 SHA256 (rust/crates/syn-1.0.109.crate) = 72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237 SIZE (rust/crates/syn-1.0.109.crate) = 237611 -SHA256 (rust/crates/syn-2.0.101.crate) = 8ce2b7fc941b3a24138a0a7cf8e858bfc6a992e7978a068a5c760deb0ed43caf -SIZE (rust/crates/syn-2.0.101.crate) = 299250 -SHA256 (rust/crates/sync_file-0.2.9.crate) = 9cfc24238213e42ffb35314aad7a7f5d46649c5fbba3ea95ef24f7debb95874e -SIZE (rust/crates/sync_file-0.2.9.crate) = 8996 +SHA256 (rust/crates/syn-2.0.106.crate) = ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6 +SIZE (rust/crates/syn-2.0.106.crate) = 301514 +SHA256 (rust/crates/sync_file-0.3.0.crate) = 985235628eb5c98253791147f5babfb3fa022eedba0641e1cc930ce4f8581e34 +SIZE (rust/crates/sync_file-0.3.0.crate) = 9451 SHA256 (rust/crates/sync_wrapper-1.0.2.crate) = 0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263 SIZE (rust/crates/sync_wrapper-1.0.2.crate) = 6958 SHA256 (rust/crates/synstructure-0.13.2.crate) = 728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2 @@ -1359,50 +1387,50 @@ SHA256 (rust/crates/system-interface-0.27.3.crate) = cc4592f674ce18521c2a8148387 SIZE (rust/crates/system-interface-0.27.3.crate) = 32567 SHA256 (rust/crates/tagptr-0.2.0.crate) = 7b2093cf4c8eb1e67749a6762251bc9cd836b6fc171623bd0a9d324d37af2417 SIZE (rust/crates/tagptr-0.2.0.crate) = 13320 -SHA256 (rust/crates/take-once-0.1.2.crate) = ae3e30fcd6e30346aff75e3bd38834ebc8ca2ed8925884bc867f77213bf3f714 -SIZE (rust/crates/take-once-0.1.2.crate) = 4285 +SHA256 (rust/crates/take-once-0.1.3.crate) = 3aa803da503e4a3d6bef14005f97495336b70eb767187a231c02ef899d0cfe0f +SIZE (rust/crates/take-once-0.1.3.crate) = 8094 SHA256 (rust/crates/tap-1.0.1.crate) = 55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369 SIZE (rust/crates/tap-1.0.1.crate) = 11316 SHA256 (rust/crates/tar-0.4.44.crate) = 1d863878d212c87a19c1a610eb53bb01fe12951c0501cf5a0d65f724914a667a SIZE (rust/crates/tar-0.4.44.crate) = 61020 -SHA256 (rust/crates/target-lexicon-0.13.2.crate) = e502f78cdbb8ba4718f566c418c52bc729126ffd16baee5baa718cf25dd5a69a -SIZE (rust/crates/target-lexicon-0.13.2.crate) = 27923 -SHA256 (rust/crates/tempfile-3.19.1.crate) = 7437ac7763b9b123ccf33c338a5cc1bac6f69b45a136c19bdd8a65e3916435bf -SIZE (rust/crates/tempfile-3.19.1.crate) = 39634 +SHA256 (rust/crates/target-lexicon-0.13.3.crate) = df7f62577c25e07834649fc3b39fafdc597c0a3527dc1c60129201ccfcbaa50c +SIZE (rust/crates/target-lexicon-0.13.3.crate) = 28498 +SHA256 (rust/crates/tempfile-3.22.0.crate) = 84fa4d11fadde498443cca10fd3ac23c951f0dc59e080e9f4b93d4df4e4eea53 +SIZE (rust/crates/tempfile-3.22.0.crate) = 43044 SHA256 (rust/crates/termcolor-1.4.1.crate) = 06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755 SIZE (rust/crates/termcolor-1.4.1.crate) = 18773 SHA256 (rust/crates/thiserror-1.0.69.crate) = b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52 SIZE (rust/crates/thiserror-1.0.69.crate) = 22198 -SHA256 (rust/crates/thiserror-2.0.12.crate) = 567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708 -SIZE (rust/crates/thiserror-2.0.12.crate) = 28693 +SHA256 (rust/crates/thiserror-2.0.16.crate) = 3467d614147380f2e4e374161426ff399c91084acd2363eaf549172b3d5e60c0 +SIZE (rust/crates/thiserror-2.0.16.crate) = 29095 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.12.crate) = 7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d -SIZE (rust/crates/thiserror-impl-2.0.12.crate) = 21141 -SHA256 (rust/crates/thread_local-1.1.8.crate) = 8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c -SIZE (rust/crates/thread_local-1.1.8.crate) = 13962 -SHA256 (rust/crates/time-0.3.41.crate) = 8a7619e19bc266e0f9c5e6686659d394bc57973859340060a69221e57dbc0c40 -SIZE (rust/crates/time-0.3.41.crate) = 138369 -SHA256 (rust/crates/time-core-0.1.4.crate) = c9e9a38711f559d9e3ce1cdb06dd7c5b8ea546bc90052da6d06bb76da74bb07c -SIZE (rust/crates/time-core-0.1.4.crate) = 8422 -SHA256 (rust/crates/time-macros-0.2.22.crate) = 3526739392ec93fd8b359c8e98514cb3e8e021beb4e5f597b00a0221f8ed8a49 -SIZE (rust/crates/time-macros-0.2.22.crate) = 24604 -SHA256 (rust/crates/timer-queue-0.1.0.crate) = 13756c29c43d836ff576221498bf4916b0d2f7ea24cd47d3531b70dc4341f038 -SIZE (rust/crates/timer-queue-0.1.0.crate) = 13344 +SHA256 (rust/crates/thiserror-impl-2.0.16.crate) = 6c5e1be1c48b9172ee610da68fd9cd2770e7a4056cb3fc98710ee6906f0c7960 +SIZE (rust/crates/thiserror-impl-2.0.16.crate) = 21214 +SHA256 (rust/crates/thread_local-1.1.9.crate) = f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185 +SIZE (rust/crates/thread_local-1.1.9.crate) = 19315 +SHA256 (rust/crates/time-0.3.43.crate) = 83bde6f1ec10e72d583d91623c939f623002284ef622b87de38cfd546cbf2031 +SIZE (rust/crates/time-0.3.43.crate) = 142912 +SHA256 (rust/crates/time-core-0.1.6.crate) = 40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b +SIZE (rust/crates/time-core-0.1.6.crate) = 9105 +SHA256 (rust/crates/time-macros-0.2.24.crate) = 30cfb0125f12d9c277f35663a0a33f8c30190f4e4574868a330595412d34ebf3 +SIZE (rust/crates/time-macros-0.2.24.crate) = 24715 +SHA256 (rust/crates/timer-queue-0.1.1.crate) = d6773c1d27b8cdd22273cd8b9366267ec4006459614baa4c22cc4964f6e5b564 +SIZE (rust/crates/timer-queue-0.1.1.crate) = 20389 SHA256 (rust/crates/tiny-skia-0.11.4.crate) = 83d13394d44dae3207b52a326c0c85a8bf87f1541f23b0d143811088497b09ab SIZE (rust/crates/tiny-skia-0.11.4.crate) = 201082 SHA256 (rust/crates/tiny-skia-path-0.11.4.crate) = 9c9e7fc0c2e86a30b117d0462aa261b72b7a99b7ebd7deb3a14ceda95c5bdc93 SIZE (rust/crates/tiny-skia-path-0.11.4.crate) = 47764 -SHA256 (rust/crates/tinystr-0.7.6.crate) = 9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f -SIZE (rust/crates/tinystr-0.7.6.crate) = 16971 +SHA256 (rust/crates/tinystr-0.8.1.crate) = 5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b +SIZE (rust/crates/tinystr-0.8.1.crate) = 23333 SHA256 (rust/crates/tinytemplate-1.2.1.crate) = be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc SIZE (rust/crates/tinytemplate-1.2.1.crate) = 26490 -SHA256 (rust/crates/tinyvec-1.9.0.crate) = 09b3661f17e86524eccd4371ab0429194e0d7c008abb45f7a7495b1719463c71 -SIZE (rust/crates/tinyvec-1.9.0.crate) = 54137 +SHA256 (rust/crates/tinyvec-1.10.0.crate) = bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa +SIZE (rust/crates/tinyvec-1.10.0.crate) = 51996 SHA256 (rust/crates/tinyvec_macros-0.1.1.crate) = 1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20 SIZE (rust/crates/tinyvec_macros-0.1.1.crate) = 5865 -SHA256 (rust/crates/tokio-1.44.2.crate) = e6b88822cbe49de4185e3a4cbf8321dd487cf5fe0c5c65695fef6346371e9c48 -SIZE (rust/crates/tokio-1.44.2.crate) = 841618 +SHA256 (rust/crates/tokio-1.47.1.crate) = 89e49afdadebb872d3145a5638b59eb0691ea23e46ca484037cfab3b76b95038 +SIZE (rust/crates/tokio-1.47.1.crate) = 829790 SHA256 (rust/crates/tokio-macros-2.5.0.crate) = 6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8 SIZE (rust/crates/tokio-macros-2.5.0.crate) = 12617 SHA256 (rust/crates/tokio-rustls-0.26.2.crate) = 8e727b36a1a0e8b74c376ac2211e40c2c8af09fb4013c60d910495810f008e9b @@ -1411,14 +1439,22 @@ SHA256 (rust/crates/tokio-stream-0.1.17.crate) = eca58d7bba4a75707817a2c44174253 SIZE (rust/crates/tokio-stream-0.1.17.crate) = 38477 SHA256 (rust/crates/toml-0.5.11.crate) = f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234 SIZE (rust/crates/toml-0.5.11.crate) = 54910 -SHA256 (rust/crates/toml-0.8.22.crate) = 05ae329d1f08c4d17a59bed7ff5b5a769d062e64a62d34a3261b219e62cd5aae -SIZE (rust/crates/toml-0.8.22.crate) = 76224 -SHA256 (rust/crates/toml_datetime-0.6.9.crate) = 3da5db5a963e24bc68be8b17b6fa82814bb22ee8660f192bb182771d498f09a3 -SIZE (rust/crates/toml_datetime-0.6.9.crate) = 12622 -SHA256 (rust/crates/toml_edit-0.22.26.crate) = 310068873db2c5b3e7659d2cc35d21855dbafa50d1ce336397c666e3cb08137e -SIZE (rust/crates/toml_edit-0.22.26.crate) = 121714 -SHA256 (rust/crates/toml_write-0.1.1.crate) = bfb942dfe1d8e29a7ee7fcbde5bd2b9a25fb89aa70caea2eba3bee836ff41076 -SIZE (rust/crates/toml_write-0.1.1.crate) = 17467 +SHA256 (rust/crates/toml-0.8.23.crate) = dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362 +SIZE (rust/crates/toml-0.8.23.crate) = 36050 +SHA256 (rust/crates/toml-0.9.5.crate) = 75129e1dc5000bfbaa9fee9d1b21f974f9fbad9daec557a521ee6e080825f6e8 +SIZE (rust/crates/toml-0.9.5.crate) = 56833 +SHA256 (rust/crates/toml_datetime-0.6.11.crate) = 22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c +SIZE (rust/crates/toml_datetime-0.6.11.crate) = 16125 +SHA256 (rust/crates/toml_datetime-0.7.0.crate) = bade1c3e902f58d73d3f294cd7f20391c1cb2fbcb643b73566bc773971df91e3 +SIZE (rust/crates/toml_datetime-0.7.0.crate) = 18108 +SHA256 (rust/crates/toml_edit-0.22.27.crate) = 41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a +SIZE (rust/crates/toml_edit-0.22.27.crate) = 78602 +SHA256 (rust/crates/toml_parser-1.0.2.crate) = b551886f449aa90d4fe2bdaa9f4a2577ad2dde302c61ecf262d80b116db95c10 +SIZE (rust/crates/toml_parser-1.0.2.crate) = 35241 +SHA256 (rust/crates/toml_write-0.1.2.crate) = 5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801 +SIZE (rust/crates/toml_write-0.1.2.crate) = 15660 +SHA256 (rust/crates/toml_writer-1.0.2.crate) = fcc842091f2def52017664b53082ecbbeb5c7731092bad69d2c63050401dfd64 +SIZE (rust/crates/toml_writer-1.0.2.crate) = 16988 SHA256 (rust/crates/tower-0.5.2.crate) = d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9 SIZE (rust/crates/tower-0.5.2.crate) = 109417 SHA256 (rust/crates/tower-layer-0.3.3.crate) = 121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e @@ -1429,22 +1465,20 @@ SHA256 (rust/crates/tracing-0.1.41.crate) = 784e0ac535deb450455cbfa28a6f0df145ea SIZE (rust/crates/tracing-0.1.41.crate) = 82448 SHA256 (rust/crates/tracing-appender-0.2.3.crate) = 3566e8ce28cc0a3fe42519fc80e6b4c943cc4c8cef275620eb8dac2d3d4e06cf SIZE (rust/crates/tracing-appender-0.2.3.crate) = 21964 -SHA256 (rust/crates/tracing-attributes-0.1.28.crate) = 395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d -SIZE (rust/crates/tracing-attributes-0.1.28.crate) = 33280 -SHA256 (rust/crates/tracing-core-0.1.33.crate) = e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c -SIZE (rust/crates/tracing-core-0.1.33.crate) = 63434 +SHA256 (rust/crates/tracing-attributes-0.1.30.crate) = 81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903 +SIZE (rust/crates/tracing-attributes-0.1.30.crate) = 39142 +SHA256 (rust/crates/tracing-core-0.1.34.crate) = b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678 +SIZE (rust/crates/tracing-core-0.1.34.crate) = 63760 SHA256 (rust/crates/tracing-log-0.2.0.crate) = ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3 SIZE (rust/crates/tracing-log-0.2.0.crate) = 17561 -SHA256 (rust/crates/tracing-subscriber-0.3.19.crate) = e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008 -SIZE (rust/crates/tracing-subscriber-0.3.19.crate) = 198345 -SHA256 (rust/crates/tracing-tracy-0.11.3.crate) = dc775fdaf33c3dfd19dc354729e65e87914bc67dcdc390ca1210807b8bee5902 -SIZE (rust/crates/tracing-tracy-0.11.3.crate) = 14641 -SHA256 (rust/crates/tracy-client-0.17.6.crate) = 73202d787346a5418f8222eddb5a00f29ea47caf3c7d38a8f2f69f8455fa7c7e -SIZE (rust/crates/tracy-client-0.17.6.crate) = 24453 -SHA256 (rust/crates/tracy-client-sys-0.24.3.crate) = 69fff37da548239c3bf9e64a12193d261e8b22b660991c6fd2df057c168f435f -SIZE (rust/crates/tracy-client-sys-0.24.3.crate) = 319958 -SHA256 (rust/crates/trait-variant-0.1.2.crate) = 70977707304198400eb4835a78f6a9f928bf41bba420deb8fdb175cd965d77a7 -SIZE (rust/crates/trait-variant-0.1.2.crate) = 6008 +SHA256 (rust/crates/tracing-subscriber-0.3.20.crate) = 2054a14f5307d601f88daf0553e1cbf472acc4f2c51afab632431cdcd72124d5 +SIZE (rust/crates/tracing-subscriber-0.3.20.crate) = 212274 +SHA256 (rust/crates/tracing-tracy-0.11.4.crate) = 0eaa1852afa96e0fe9e44caa53dc0bd2d9d05e0f2611ce09f97f8677af56e4ba +SIZE (rust/crates/tracing-tracy-0.11.4.crate) = 14765 +SHA256 (rust/crates/tracy-client-0.18.2.crate) = ef54005d3d760186fd662dad4b7bb27ecd5531cdef54d1573ebd3f20a9205ed7 +SIZE (rust/crates/tracy-client-0.18.2.crate) = 31607 +SHA256 (rust/crates/tracy-client-sys-0.26.1.crate) = 319c70195101a93f56db4c74733e272d720768e13471f400c78406a326b172b0 +SIZE (rust/crates/tracy-client-sys-0.26.1.crate) = 351280 SHA256 (rust/crates/treeculler-0.4.0.crate) = c11fcf82651ce9a4550c82beb88a38951fdde004917817eba244359720d74c06 SIZE (rust/crates/treeculler-0.4.0.crate) = 4577 SHA256 (rust/crates/triple_buffer-8.1.1.crate) = 420466259f9fa5decc654c490b9ab538400e5420df8237f84ecbe20368bcf72b @@ -1457,20 +1491,20 @@ SHA256 (rust/crates/tuple_utils-0.4.0.crate) = cffaaf9392ef73cd30828797152476aaa SIZE (rust/crates/tuple_utils-0.4.0.crate) = 2893 SHA256 (rust/crates/twox-hash-1.6.3.crate) = 97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675 SIZE (rust/crates/twox-hash-1.6.3.crate) = 21842 -SHA256 (rust/crates/twox-hash-2.1.0.crate) = e7b17f197b3050ba473acf9181f7b1d3b66d1cf7356c6cc57886662276e65908 -SIZE (rust/crates/twox-hash-2.1.0.crate) = 35275 +SHA256 (rust/crates/twox-hash-2.1.2.crate) = 9ea3136b675547379c4bd395ca6b938e5ad3c3d20fad76e7fe85f9e0d011419c +SIZE (rust/crates/twox-hash-2.1.2.crate) = 35641 SHA256 (rust/crates/tynm-0.1.10.crate) = bd30d05e69d1478e13fe3e7a853409cfec82cebc2cf9b8d613b3c6b0081781ed SIZE (rust/crates/tynm-0.1.10.crate) = 16394 -SHA256 (rust/crates/type-map-0.5.0.crate) = deb68604048ff8fa93347f02441e4487594adc20bb8a084f9e564d2b827a0a9f -SIZE (rust/crates/type-map-0.5.0.crate) = 3464 +SHA256 (rust/crates/type-map-0.5.1.crate) = cb30dbbd9036155e74adad6812e9898d03ec374946234fbcebd5dfc7b9187b90 +SIZE (rust/crates/type-map-0.5.1.crate) = 8606 SHA256 (rust/crates/typenum-1.18.0.crate) = 1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f SIZE (rust/crates/typenum-1.18.0.crate) = 74871 SHA256 (rust/crates/ubyte-0.10.4.crate) = f720def6ce1ee2fc44d40ac9ed6d3a59c361c80a75a7aa8e75bb9baed31cf2ea SIZE (rust/crates/ubyte-0.10.4.crate) = 13965 -SHA256 (rust/crates/unic-langid-0.9.5.crate) = 23dd9d1e72a73b25e07123a80776aae3e7b0ec461ef94f9151eed6ec88005a44 -SIZE (rust/crates/unic-langid-0.9.5.crate) = 8898 -SHA256 (rust/crates/unic-langid-impl-0.9.5.crate) = 0a5422c1f65949306c99240b81de9f3f15929f5a8bfe05bb44b034cc8bf593e5 -SIZE (rust/crates/unic-langid-impl-0.9.5.crate) = 89659 +SHA256 (rust/crates/unic-langid-0.9.6.crate) = a28ba52c9b05311f4f6e62d5d9d46f094bd6e84cb8df7b3ef952748d752a7d05 +SIZE (rust/crates/unic-langid-0.9.6.crate) = 9031 +SHA256 (rust/crates/unic-langid-impl-0.9.6.crate) = dce1bf08044d4b7a94028c93786f8566047edc11110595914de93362559bc658 +SIZE (rust/crates/unic-langid-impl-0.9.6.crate) = 90020 SHA256 (rust/crates/unicode-ident-1.0.18.crate) = 5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512 SIZE (rust/crates/unicode-ident-1.0.18.crate) = 47743 SHA256 (rust/crates/unicode-segmentation-1.12.0.crate) = f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493 @@ -1485,18 +1519,20 @@ SHA256 (rust/crates/unicode-xid-0.1.0.crate) = fc72304796d0818e357ead4e000d19c9c SIZE (rust/crates/unicode-xid-0.1.0.crate) = 16000 SHA256 (rust/crates/unicode-xid-0.2.6.crate) = ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853 SIZE (rust/crates/unicode-xid-0.2.6.crate) = 15744 +SHA256 (rust/crates/unit-prefix-0.5.1.crate) = 323402cff2dd658f39ca17c789b502021b3f18707c91cdf22e3838e1b4023817 +SIZE (rust/crates/unit-prefix-0.5.1.crate) = 7627 SHA256 (rust/crates/untrusted-0.9.0.crate) = 8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1 SIZE (rust/crates/untrusted-0.9.0.crate) = 14447 -SHA256 (rust/crates/url-2.5.4.crate) = 32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60 -SIZE (rust/crates/url-2.5.4.crate) = 81097 -SHA256 (rust/crates/utf16_iter-1.0.5.crate) = c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246 -SIZE (rust/crates/utf16_iter-1.0.5.crate) = 9736 +SHA256 (rust/crates/unty-0.0.4.crate) = 6d49784317cd0d1ee7ec5c716dd598ec5b4483ea832a2dced265471cc0f690ae +SIZE (rust/crates/unty-0.0.4.crate) = 7200 +SHA256 (rust/crates/url-2.5.7.crate) = 08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b +SIZE (rust/crates/url-2.5.7.crate) = 87907 SHA256 (rust/crates/utf8_iter-1.0.4.crate) = b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be SIZE (rust/crates/utf8_iter-1.0.4.crate) = 10437 SHA256 (rust/crates/utf8parse-0.2.2.crate) = 06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821 SIZE (rust/crates/utf8parse-0.2.2.crate) = 13499 -SHA256 (rust/crates/uuid-1.16.0.crate) = 458f7a779bf54acc9f347480ac654f68407d3aab21269a6e3c9f922acd9e2da9 -SIZE (rust/crates/uuid-1.16.0.crate) = 58549 +SHA256 (rust/crates/uuid-1.18.1.crate) = 2f87b8aa10b915a06587d0dec516c282ff295b475d94abf425d62b57710070a2 +SIZE (rust/crates/uuid-1.18.1.crate) = 60468 SHA256 (rust/crates/valuable-0.1.1.crate) = ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65 SIZE (rust/crates/valuable-0.1.1.crate) = 28679 SHA256 (rust/crates/vcpkg-0.2.15.crate) = accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426 @@ -1513,112 +1549,120 @@ SHA256 (rust/crates/version_check-0.9.5.crate) = 0b928f33d975fc6ad9f86c8f283853a SIZE (rust/crates/version_check-0.9.5.crate) = 15554 SHA256 (rust/crates/versions-7.0.0.crate) = 80a7e511ce1795821207a837b7b1c8d8aca0c648810966ad200446ae58f6667f SIZE (rust/crates/versions-7.0.0.crate) = 23307 +SHA256 (rust/crates/virtue-0.0.18.crate) = 051eb1abcf10076295e815102942cc58f9d5e3b4560e46e53c21e8ff6f3af7b1 +SIZE (rust/crates/virtue-0.0.18.crate) = 33545 SHA256 (rust/crates/walkdir-2.5.0.crate) = 29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b SIZE (rust/crates/walkdir-2.5.0.crate) = 23951 SHA256 (rust/crates/want-0.3.1.crate) = bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e SIZE (rust/crates/want-0.3.1.crate) = 6398 -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/wasi-0.14.2+wasi-0.2.4.crate) = 9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3 -SIZE (rust/crates/wasi-0.14.2+wasi-0.2.4.crate) = 140921 -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-futures-0.4.45.crate) = cc7ec4f8827a71586374db3e87abdb5a2bb3a15afed140221307c3ec06b1f63b -SIZE (rust/crates/wasm-bindgen-futures-0.4.45.crate) = 14329 -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/wasm-encoder-0.221.3.crate) = dc8444fe4920de80a4fe5ab564fff2ae58b6b73166b89751f8c6c93509da32e5 -SIZE (rust/crates/wasm-encoder-0.221.3.crate) = 67487 -SHA256 (rust/crates/wasm-encoder-0.229.0.crate) = 38ba1d491ecacb085a2552025c10a675a6fddcbd03b1fc9b36c536010ce265d2 -SIZE (rust/crates/wasm-encoder-0.229.0.crate) = 81299 -SHA256 (rust/crates/wasmparser-0.221.3.crate) = d06bfa36ab3ac2be0dee563380147a5b81ba10dd8885d7fbbc9eb574be67d185 -SIZE (rust/crates/wasmparser-0.221.3.crate) = 242903 -SHA256 (rust/crates/wasmparser-0.229.0.crate) = 0cc3b1f053f5d41aa55640a1fa9b6d1b8a9e4418d118ce308d20e24ff3575a8c -SIZE (rust/crates/wasmparser-0.229.0.crate) = 249693 -SHA256 (rust/crates/wasmprinter-0.221.3.crate) = 7343c42a97f2926c7819ff81b64012092ae954c5d83ddd30c9fcdefd97d0b283 -SIZE (rust/crates/wasmprinter-0.221.3.crate) = 39793 -SHA256 (rust/crates/wasmtime-29.0.1.crate) = 11976a250672556d1c4c04c6d5d7656ac9192ac9edc42a4587d6c21460010e69 -SIZE (rust/crates/wasmtime-29.0.1.crate) = 693309 -SHA256 (rust/crates/wasmtime-asm-macros-29.0.1.crate) = 1f178b0d125201fbe9f75beaf849bd3e511891f9e45ba216a5b620802ccf64f2 -SIZE (rust/crates/wasmtime-asm-macros-29.0.1.crate) = 1865 -SHA256 (rust/crates/wasmtime-cache-29.0.1.crate) = 8b1161c8f62880deea07358bc40cceddc019f1c81d46007bc390710b2fe24ffc -SIZE (rust/crates/wasmtime-cache-29.0.1.crate) = 32600 -SHA256 (rust/crates/wasmtime-component-macro-29.0.1.crate) = d74de6592ed945d0a602f71243982a304d5d02f1e501b638addf57f42d57dfaf -SIZE (rust/crates/wasmtime-component-macro-29.0.1.crate) = 203168 -SHA256 (rust/crates/wasmtime-component-util-29.0.1.crate) = 707dc7b3c112ab5a366b30cfe2fb5b2f8e6a0f682f16df96a5ec582bfe6f056e -SIZE (rust/crates/wasmtime-component-util-29.0.1.crate) = 2515 -SHA256 (rust/crates/wasmtime-cranelift-29.0.1.crate) = 366be722674d4bf153290fbcbc4d7d16895cc82fb3e869f8d550ff768f9e9e87 -SIZE (rust/crates/wasmtime-cranelift-29.0.1.crate) = 178851 -SHA256 (rust/crates/wasmtime-environ-29.0.1.crate) = cdadc1af7097347aa276a4f008929810f726b5b46946971c660b6d421e9994ad -SIZE (rust/crates/wasmtime-environ-29.0.1.crate) = 192670 -SHA256 (rust/crates/wasmtime-fiber-29.0.1.crate) = ccba90d4119f081bca91190485650730a617be1fff5228f8c4757ce133d21117 -SIZE (rust/crates/wasmtime-fiber-29.0.1.crate) = 27634 -SHA256 (rust/crates/wasmtime-jit-debug-29.0.1.crate) = 3e7b61488a5ee00c35c8c22de707c36c0aecacf419a3be803a6a2ba5e860f56a -SIZE (rust/crates/wasmtime-jit-debug-29.0.1.crate) = 7433 -SHA256 (rust/crates/wasmtime-jit-icache-coherence-29.0.1.crate) = ec5e8552e01692e6c2e5293171704fed8abdec79d1a6995a0870ab190e5747d1 -SIZE (rust/crates/wasmtime-jit-icache-coherence-29.0.1.crate) = 6840 -SHA256 (rust/crates/wasmtime-math-29.0.1.crate) = 29210ec2aa25e00f4d54605cedaf080f39ec01a872c5bd520ad04c67af1dde17 -SIZE (rust/crates/wasmtime-math-29.0.1.crate) = 2630 -SHA256 (rust/crates/wasmtime-slab-29.0.1.crate) = fcb5821a96fa04ac14bc7b158bb3d5cd7729a053db5a74dad396cd513a5e5ccf -SIZE (rust/crates/wasmtime-slab-29.0.1.crate) = 5435 -SHA256 (rust/crates/wasmtime-versioned-export-macros-29.0.1.crate) = 86ff86db216dc0240462de40c8290887a613dddf9685508eb39479037ba97b5b -SIZE (rust/crates/wasmtime-versioned-export-macros-29.0.1.crate) = 2038 -SHA256 (rust/crates/wasmtime-wasi-29.0.1.crate) = 8d1be69bfcab1bdac74daa7a1f9695ab992b9c8e21b9b061e7d66434097e0ca4 -SIZE (rust/crates/wasmtime-wasi-29.0.1.crate) = 164209 -SHA256 (rust/crates/wasmtime-winch-29.0.1.crate) = fdbabfb8f20502d5e1d81092b9ead3682ae59988487aafcd7567387b7a43cf8f -SIZE (rust/crates/wasmtime-winch-29.0.1.crate) = 13095 -SHA256 (rust/crates/wasmtime-wit-bindgen-29.0.1.crate) = 8358319c2dd1e4db79e3c1c5d3a5af84956615343f9f89f4e4996a36816e06e6 -SIZE (rust/crates/wasmtime-wit-bindgen-29.0.1.crate) = 31902 +SHA256 (rust/crates/wasi-0.11.1+wasi-snapshot-preview1.crate) = ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b +SIZE (rust/crates/wasi-0.11.1+wasi-snapshot-preview1.crate) = 28477 +SHA256 (rust/crates/wasi-0.14.5+wasi-0.2.4.crate) = a4494f6290a82f5fe584817a676a34b9d6763e8d9d18204009fb31dceca98fd4 +SIZE (rust/crates/wasi-0.14.5+wasi-0.2.4.crate) = 18092 +SHA256 (rust/crates/wasip2-1.0.0+wasi-0.2.4.crate) = 03fa2761397e5bd52002cd7e73110c71af2109aca4e521a9f40473fe685b0a24 +SIZE (rust/crates/wasip2-1.0.0+wasi-0.2.4.crate) = 132019 +SHA256 (rust/crates/wasm-bindgen-0.2.101.crate) = 7e14915cadd45b529bb8d1f343c4ed0ac1de926144b746e2710f9cd05df6603b +SIZE (rust/crates/wasm-bindgen-0.2.101.crate) = 47841 +SHA256 (rust/crates/wasm-bindgen-backend-0.2.101.crate) = e28d1ba982ca7923fd01448d5c30c6864d0a14109560296a162f80f305fb93bb +SIZE (rust/crates/wasm-bindgen-backend-0.2.101.crate) = 32331 +SHA256 (rust/crates/wasm-bindgen-futures-0.4.51.crate) = 0ca85039a9b469b38336411d6d6ced91f3fc87109a2a27b0c197663f5144dffe +SIZE (rust/crates/wasm-bindgen-futures-0.4.51.crate) = 16315 +SHA256 (rust/crates/wasm-bindgen-macro-0.2.101.crate) = 7c3d463ae3eff775b0c45df9da45d68837702ac35af998361e2c84e7c5ec1b0d +SIZE (rust/crates/wasm-bindgen-macro-0.2.101.crate) = 9804 +SHA256 (rust/crates/wasm-bindgen-macro-support-0.2.101.crate) = 7bb4ce89b08211f923caf51d527662b75bdc9c9c7aab40f86dcb9fb85ac552aa +SIZE (rust/crates/wasm-bindgen-macro-support-0.2.101.crate) = 26415 +SHA256 (rust/crates/wasm-bindgen-shared-0.2.101.crate) = f143854a3b13752c6950862c906306adb27c7e839f7414cec8fea35beab624c1 +SIZE (rust/crates/wasm-bindgen-shared-0.2.101.crate) = 9055 +SHA256 (rust/crates/wasm-encoder-0.236.1.crate) = 724fccfd4f3c24b7e589d333fc0429c68042897a7e8a5f8694f31792471841e7 +SIZE (rust/crates/wasm-encoder-0.236.1.crate) = 83380 +SHA256 (rust/crates/wasm-encoder-0.239.0.crate) = 5be00faa2b4950c76fe618c409d2c3ea5a3c9422013e079482d78544bb2d184c +SIZE (rust/crates/wasm-encoder-0.239.0.crate) = 83923 +SHA256 (rust/crates/wasmparser-0.236.1.crate) = a9b1e81f3eb254cf7404a82cee6926a4a3ccc5aad80cc3d43608a070c67aa1d7 +SIZE (rust/crates/wasmparser-0.236.1.crate) = 259406 +SHA256 (rust/crates/wasmparser-0.239.0.crate) = 8c9d90bb93e764f6beabf1d02028c70a2156a6583e63ac4218dd07ef733368b0 +SIZE (rust/crates/wasmparser-0.239.0.crate) = 260621 +SHA256 (rust/crates/wasmprinter-0.236.1.crate) = 2df225df06a6df15b46e3f73ca066ff92c2e023670969f7d50ce7d5e695abbb1 +SIZE (rust/crates/wasmprinter-0.236.1.crate) = 44027 +SHA256 (rust/crates/wasmtime-36.0.2.crate) = 5b3e1fab634681494213138ea3a18e958e5ea99da13a4a01a4b870d51a41680b +SIZE (rust/crates/wasmtime-36.0.2.crate) = 884638 +SHA256 (rust/crates/wasmtime-environ-36.0.2.crate) = 6750e519977953a018fe994aada7e02510aea4babb03310aa5f5b4145b6e6577 +SIZE (rust/crates/wasmtime-environ-36.0.2.crate) = 223975 +SHA256 (rust/crates/wasmtime-internal-asm-macros-36.0.2.crate) = bdbf38adac6e81d5c0326e8fd25f80450e3038f2fc103afd3c5cc8b83d5dd78b +SIZE (rust/crates/wasmtime-internal-asm-macros-36.0.2.crate) = 2126 +SHA256 (rust/crates/wasmtime-internal-cache-36.0.2.crate) = c0c9085d8c04cc294612d743e2f355382b39250de4bd20bf4b0b0b7c0ae7067a +SIZE (rust/crates/wasmtime-internal-cache-36.0.2.crate) = 35276 +SHA256 (rust/crates/wasmtime-internal-component-macro-36.0.2.crate) = 26a578a474e3b7ddce063cd169ced292b5185013341457522891b10e989aa42a +SIZE (rust/crates/wasmtime-internal-component-macro-36.0.2.crate) = 238521 +SHA256 (rust/crates/wasmtime-internal-component-util-36.0.2.crate) = edc23d46ec1b1cd42b6f73205eb80498ed94b47098ec53456c0b18299405b158 +SIZE (rust/crates/wasmtime-internal-component-util-36.0.2.crate) = 2779 +SHA256 (rust/crates/wasmtime-internal-cranelift-36.0.2.crate) = d85b8ba128525bff91b89ac8a97755136a4fb0fb59df5ffb7539dd646455d441 +SIZE (rust/crates/wasmtime-internal-cranelift-36.0.2.crate) = 191567 +SHA256 (rust/crates/wasmtime-internal-fiber-36.0.2.crate) = 0c566f5137de1f55339df8a236a5ec89698b466a3d33f9cc07823a58a3f85e16 +SIZE (rust/crates/wasmtime-internal-fiber-36.0.2.crate) = 31811 +SHA256 (rust/crates/wasmtime-internal-jit-debug-36.0.2.crate) = e03f0b11f8fe4d456feac11e7e9dc6f02ddb34d4f6a1912775dbc63c5bdd5670 +SIZE (rust/crates/wasmtime-internal-jit-debug-36.0.2.crate) = 9373 +SHA256 (rust/crates/wasmtime-internal-jit-icache-coherence-36.0.2.crate) = 71aeb74f9b3fd9225319c723e59832a77a674b0c899ba9795f9b2130a6d1b167 +SIZE (rust/crates/wasmtime-internal-jit-icache-coherence-36.0.2.crate) = 7111 +SHA256 (rust/crates/wasmtime-internal-math-36.0.2.crate) = 31d5dad8a609c6cc47a5f265f13b52e347e893450a69641af082b8a276043fa7 +SIZE (rust/crates/wasmtime-internal-math-36.0.2.crate) = 3575 +SHA256 (rust/crates/wasmtime-internal-slab-36.0.2.crate) = 6d152a7b875d62e395bfe0ae7d12e7b47cd332eb380353cce3eb831f9843731d +SIZE (rust/crates/wasmtime-internal-slab-36.0.2.crate) = 5736 +SHA256 (rust/crates/wasmtime-internal-unwinder-36.0.2.crate) = 2aaacc0fea00293f7af7e6c25cef74b7d213ebbe7560c86305eec15fc318fab8 +SIZE (rust/crates/wasmtime-internal-unwinder-36.0.2.crate) = 20209 +SHA256 (rust/crates/wasmtime-internal-versioned-export-macros-36.0.2.crate) = c61c7f75326434944cc5f3b75409a063fa37e537f6247f00f0f733679f0be406 +SIZE (rust/crates/wasmtime-internal-versioned-export-macros-36.0.2.crate) = 2309 +SHA256 (rust/crates/wasmtime-internal-winch-36.0.2.crate) = 6cfbaa87e1ac4972bb096c9cb1800fedc113e36332cc4bc2c96a2ef1d7c5e750 +SIZE (rust/crates/wasmtime-internal-winch-36.0.2.crate) = 14038 +SHA256 (rust/crates/wasmtime-internal-wit-bindgen-36.0.2.crate) = 169042d58002f16da149ab7d608b71164411abd1fc5140f48f4c200b44bb5565 +SIZE (rust/crates/wasmtime-internal-wit-bindgen-36.0.2.crate) = 34324 +SHA256 (rust/crates/wasmtime-wasi-36.0.2.crate) = b9049a5fedcd24fa0f665ba7c17c4445c1a547536a9560d960e15bee2d8428d0 +SIZE (rust/crates/wasmtime-wasi-36.0.2.crate) = 204092 +SHA256 (rust/crates/wasmtime-wasi-io-36.0.2.crate) = d62156d8695d80df8e85baeb56379b3ba6b6bf5996671594724c24d40b67825f +SIZE (rust/crates/wasmtime-wasi-io-36.0.2.crate) = 21676 SHA256 (rust/crates/wast-35.0.2.crate) = 2ef140f1b49946586078353a453a1d28ba90adfc54dde75710bc1931de204d68 SIZE (rust/crates/wast-35.0.2.crate) = 90940 -SHA256 (rust/crates/wast-229.0.0.crate) = 63fcaff613c12225696bb163f79ca38ffb40e9300eff0ff4b8aa8b2f7eadf0d9 -SIZE (rust/crates/wast-229.0.0.crate) = 153934 -SHA256 (rust/crates/wat-1.229.0.crate) = 4189bad08b70455a9e9e67dc126d2dcf91fac143a80f1046747a5dde6d4c33e0 -SIZE (rust/crates/wat-1.229.0.crate) = 8132 +SHA256 (rust/crates/wast-239.0.0.crate) = 9139176fe8a2590e0fb174cdcaf373b224cb93c3dde08e4297c1361d2ba1ea5d +SIZE (rust/crates/wast-239.0.0.crate) = 156209 +SHA256 (rust/crates/wat-1.239.0.crate) = 3e1c941927d34709f255558166f8901a2005f8ab4a9650432e9281b7cc6f3b75 +SIZE (rust/crates/wat-1.239.0.crate) = 8406 SHA256 (rust/crates/wavefront-0.2.3.crate) = 0162190f32ea78b07b7bc02b57a1c2a7c0874bc3da34f36eba41c86c4b03c4fb SIZE (rust/crates/wavefront-0.2.3.crate) = 13984 -SHA256 (rust/crates/wayland-backend-0.3.10.crate) = fe770181423e5fc79d3e2a7f4410b7799d5aab1de4372853de3c6aa13ca24121 -SIZE (rust/crates/wayland-backend-0.3.10.crate) = 75632 +SHA256 (rust/crates/wayland-backend-0.3.11.crate) = 673a33c33048a5ade91a6b139580fa174e19fb0d23f396dca9fa15f2e1e49b35 +SIZE (rust/crates/wayland-backend-0.3.11.crate) = 76980 SHA256 (rust/crates/wayland-client-0.29.5.crate) = 3f3b068c05a039c9f755f881dc50f01732214f5685e379829759088967c46715 SIZE (rust/crates/wayland-client-0.29.5.crate) = 71041 -SHA256 (rust/crates/wayland-client-0.31.10.crate) = 978fa7c67b0847dbd6a9f350ca2569174974cd4082737054dbb7fbb79d7d9a61 -SIZE (rust/crates/wayland-client-0.31.10.crate) = 64777 +SHA256 (rust/crates/wayland-client-0.31.11.crate) = c66a47e840dc20793f2264eb4b3e4ecb4b75d91c0dd4af04b456128e0bdd449d +SIZE (rust/crates/wayland-client-0.31.11.crate) = 65932 SHA256 (rust/crates/wayland-commons-0.29.5.crate) = 8691f134d584a33a6606d9d717b95c4fa20065605f798a3f350d78dced02a902 SIZE (rust/crates/wayland-commons-0.29.5.crate) = 20771 SHA256 (rust/crates/wayland-csd-frame-0.3.0.crate) = 625c5029dbd43d25e6aa9615e88b829a5cad13b2819c4ae129fdbb7c31ab4c7e SIZE (rust/crates/wayland-csd-frame-0.3.0.crate) = 5696 SHA256 (rust/crates/wayland-cursor-0.29.5.crate) = 6865c6b66f13d6257bef1cd40cbfe8ef2f150fb8ebbdb1e8e873455931377661 SIZE (rust/crates/wayland-cursor-0.29.5.crate) = 6195 -SHA256 (rust/crates/wayland-cursor-0.31.10.crate) = a65317158dec28d00416cb16705934070aef4f8393353d41126c54264ae0f182 -SIZE (rust/crates/wayland-cursor-0.31.10.crate) = 9725 +SHA256 (rust/crates/wayland-cursor-0.31.11.crate) = 447ccc440a881271b19e9989f75726d60faa09b95b0200a9b7eb5cc47c3eeb29 +SIZE (rust/crates/wayland-cursor-0.31.11.crate) = 9785 SHA256 (rust/crates/wayland-protocols-0.29.5.crate) = b950621f9354b322ee817a23474e479b34be96c2e909c14f7bc0100e9a970bc6 SIZE (rust/crates/wayland-protocols-0.29.5.crate) = 140859 -SHA256 (rust/crates/wayland-protocols-0.32.8.crate) = 779075454e1e9a521794fed15886323ea0feda3f8b0fc1390f5398141310422a -SIZE (rust/crates/wayland-protocols-0.32.8.crate) = 210103 -SHA256 (rust/crates/wayland-protocols-plasma-0.3.8.crate) = 4fd38cdad69b56ace413c6bcc1fbf5acc5e2ef4af9d5f8f1f9570c0c83eae175 -SIZE (rust/crates/wayland-protocols-plasma-0.3.8.crate) = 69107 -SHA256 (rust/crates/wayland-protocols-wlr-0.3.8.crate) = 1cb6cdc73399c0e06504c437fe3cf886f25568dd5454473d565085b36d6a8bbf -SIZE (rust/crates/wayland-protocols-wlr-0.3.8.crate) = 28616 +SHA256 (rust/crates/wayland-protocols-0.32.9.crate) = efa790ed75fbfd71283bd2521a1cfdc022aabcc28bdcff00851f9e4ae88d9901 +SIZE (rust/crates/wayland-protocols-0.32.9.crate) = 155404 +SHA256 (rust/crates/wayland-protocols-plasma-0.3.9.crate) = a07a14257c077ab3279987c4f8bb987851bf57081b93710381daea94f2c2c032 +SIZE (rust/crates/wayland-protocols-plasma-0.3.9.crate) = 69243 +SHA256 (rust/crates/wayland-protocols-wlr-0.3.9.crate) = efd94963ed43cf9938a090ca4f7da58eb55325ec8200c3848963e98dc25b78ec +SIZE (rust/crates/wayland-protocols-wlr-0.3.9.crate) = 28723 SHA256 (rust/crates/wayland-scanner-0.29.5.crate) = 8f4303d8fa22ab852f789e75a967f0a2cdc430a607751c0499bada3e451cbd53 SIZE (rust/crates/wayland-scanner-0.29.5.crate) = 17248 -SHA256 (rust/crates/wayland-scanner-0.31.6.crate) = 896fdafd5d28145fce7958917d69f2fd44469b1d4e861cb5961bcbeebc6d1484 -SIZE (rust/crates/wayland-scanner-0.31.6.crate) = 36365 +SHA256 (rust/crates/wayland-scanner-0.31.7.crate) = 54cb1e9dc49da91950bdfd8b848c49330536d9d1fb03d4bfec8cae50caa50ae3 +SIZE (rust/crates/wayland-scanner-0.31.7.crate) = 36483 SHA256 (rust/crates/wayland-sys-0.29.5.crate) = be12ce1a3c39ec7dba25594b97b42cb3195d54953ddb9d3d95a7c3902bc6e9d4 SIZE (rust/crates/wayland-sys-0.29.5.crate) = 7926 -SHA256 (rust/crates/wayland-sys-0.31.6.crate) = dbcebb399c77d5aa9fa5db874806ee7b4eba4e73650948e8f93963f128896615 -SIZE (rust/crates/wayland-sys-0.31.6.crate) = 10049 -SHA256 (rust/crates/web-sys-0.3.77.crate) = 33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2 -SIZE (rust/crates/web-sys-0.3.77.crate) = 638246 +SHA256 (rust/crates/wayland-sys-0.31.7.crate) = 34949b42822155826b41db8e5d0c1be3a2bd296c747577a43a3e6daefc296142 +SIZE (rust/crates/wayland-sys-0.31.7.crate) = 10106 +SHA256 (rust/crates/web-sys-0.3.78.crate) = 77e4b637749ff0d92b8fad63aa1f7cff3cbe125fd49c175cd6345e7272638b12 +SIZE (rust/crates/web-sys-0.3.78.crate) = 642410 SHA256 (rust/crates/web-time-1.1.0.crate) = 5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb SIZE (rust/crates/web-time-1.1.0.crate) = 18026 -SHA256 (rust/crates/webpki-root-certs-0.26.10.crate) = c99403924bc5f23afefc319b8ac67ed0e50669f6e52a413314cccb1fdbc93ba0 -SIZE (rust/crates/webpki-root-certs-0.26.10.crate) = 171116 +SHA256 (rust/crates/webpki-root-certs-1.0.2.crate) = 4e4ffd8df1c57e87c325000a3d6ef93db75279dc3a231125aac571650f22b12a +SIZE (rust/crates/webpki-root-certs-1.0.2.crate) = 173652 SHA256 (rust/crates/wfd-0.1.7.crate) = e713040b67aae5bf1a0ae3e1ebba8cc29ab2b90da9aa1bff6e09031a8a41d7a8 SIZE (rust/crates/wfd-0.1.7.crate) = 8825 SHA256 (rust/crates/wgpu-26.0.1.crate) = 70b6ff82bbf6e9206828e1a3178e851f8c20f1c9028e74dd3a8090741ccd5798 @@ -1641,24 +1685,24 @@ SHA256 (rust/crates/which-7.0.3.crate) = 24d643ce3fd3e5b54854602a080f34fb10ab75e SIZE (rust/crates/which-7.0.3.crate) = 18872 SHA256 (rust/crates/widestring-1.2.0.crate) = dd7cf3379ca1aac9eea11fba24fd7e315d621f8dfe35c8d7d2be8b793726e07d SIZE (rust/crates/widestring-1.2.0.crate) = 89105 -SHA256 (rust/crates/wiggle-29.0.1.crate) = 4b9af35bc9629c52c261465320a9a07959164928b4241980ba1cf923b9e6751d -SIZE (rust/crates/wiggle-29.0.1.crate) = 24153 -SHA256 (rust/crates/wiggle-generate-29.0.1.crate) = 2cf267dd05673912c8138f4b54acabe6bd53407d9d1536f0fadb6520dd16e101 -SIZE (rust/crates/wiggle-generate-29.0.1.crate) = 25441 -SHA256 (rust/crates/wiggle-macro-29.0.1.crate) = 08c5c473d4198e6c2d377f3809f713ff0c110cab88a0805ae099a82119ee250c -SIZE (rust/crates/wiggle-macro-29.0.1.crate) = 10866 +SHA256 (rust/crates/wiggle-36.0.2.crate) = e233166bc0ef02371ebe2c630aba51dd3f015bcaf616d32b4171efab84d09137 +SIZE (rust/crates/wiggle-36.0.2.crate) = 23809 +SHA256 (rust/crates/wiggle-generate-36.0.2.crate) = 93048543902e61c65b75d8a9ea0e78d5a8723e5db6e11ff93870165807c4463d +SIZE (rust/crates/wiggle-generate-36.0.2.crate) = 24564 +SHA256 (rust/crates/wiggle-macro-36.0.2.crate) = fd7e511edbcaa045079dea564486c4ff7946ae491002227c41d74ea62a59d329 +SIZE (rust/crates/wiggle-macro-36.0.2.crate) = 10085 SHA256 (rust/crates/winapi-0.3.9.crate) = 5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419 SIZE (rust/crates/winapi-0.3.9.crate) = 1200382 SHA256 (rust/crates/winapi-i686-pc-windows-gnu-0.4.0.crate) = ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6 SIZE (rust/crates/winapi-i686-pc-windows-gnu-0.4.0.crate) = 2918815 -SHA256 (rust/crates/winapi-util-0.1.9.crate) = cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb -SIZE (rust/crates/winapi-util-0.1.9.crate) = 12464 +SHA256 (rust/crates/winapi-util-0.1.11.crate) = c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22 +SIZE (rust/crates/winapi-util-0.1.11.crate) = 13368 SHA256 (rust/crates/winapi-wsapoll-0.1.2.crate) = 1eafc5f679c576995526e81635d0cf9695841736712b4e892f87abbe6fed3f28 SIZE (rust/crates/winapi-wsapoll-0.1.2.crate) = 2865 SHA256 (rust/crates/winapi-x86_64-pc-windows-gnu-0.4.0.crate) = 712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f SIZE (rust/crates/winapi-x86_64-pc-windows-gnu-0.4.0.crate) = 2947998 -SHA256 (rust/crates/winch-codegen-29.0.1.crate) = 2f849ef2c5f46cb0a20af4b4487aaa239846e52e2c03f13fa3c784684552859c -SIZE (rust/crates/winch-codegen-29.0.1.crate) = 119631 +SHA256 (rust/crates/winch-codegen-36.0.2.crate) = 6e615fe205d7d4c9aa62217862f2e0969d00b9b0843af0b1b8181adaea3cfef3 +SIZE (rust/crates/winch-codegen-36.0.2.crate) = 165765 SHA256 (rust/crates/window_clipboard-0.4.1.crate) = f6d692d46038c433f9daee7ad8757e002a4248c20b0a3fbc991d99521d3bcb6d SIZE (rust/crates/window_clipboard-0.4.1.crate) = 16047 SHA256 (rust/crates/windows-0.48.0.crate) = e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f @@ -1667,12 +1711,18 @@ SHA256 (rust/crates/windows-0.54.0.crate) = 9252e5725dbed82865af151df558e754e4a3 SIZE (rust/crates/windows-0.54.0.crate) = 11096265 SHA256 (rust/crates/windows-0.58.0.crate) = dd04d41d93c4992d421894c18c8b43496aa748dd4c081bac0dc93eb0489272b6 SIZE (rust/crates/windows-0.58.0.crate) = 9744521 +SHA256 (rust/crates/windows-0.61.3.crate) = 9babd3a767a4c1aef6900409f85f5d53ce2544ccdfaa86dad48c91782c6d6893 +SIZE (rust/crates/windows-0.61.3.crate) = 9372520 +SHA256 (rust/crates/windows-collections-0.2.0.crate) = 3beeceb5e5cfd9eb1d76b381630e82c4241ccd0d27f1a39ed41b2760b255c5e8 +SIZE (rust/crates/windows-collections-0.2.0.crate) = 13579 SHA256 (rust/crates/windows-core-0.54.0.crate) = 12661b9c89351d684a50a8a643ce5f608e20243b9fb84687800163429f161d65 SIZE (rust/crates/windows-core-0.54.0.crate) = 44015 SHA256 (rust/crates/windows-core-0.58.0.crate) = 6ba6d44ec8c2591c134257ce647b7ea6b20335bf6379a27dac5f1641fcf59f99 SIZE (rust/crates/windows-core-0.58.0.crate) = 41022 -SHA256 (rust/crates/windows-core-0.61.0.crate) = 4763c1de310c86d75a878046489e2e5ba02c649d185f21c67d4cf8a56d098980 -SIZE (rust/crates/windows-core-0.61.0.crate) = 36707 +SHA256 (rust/crates/windows-core-0.61.2.crate) = c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3 +SIZE (rust/crates/windows-core-0.61.2.crate) = 36771 +SHA256 (rust/crates/windows-future-0.2.1.crate) = fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e +SIZE (rust/crates/windows-future-0.2.1.crate) = 17532 SHA256 (rust/crates/windows-implement-0.58.0.crate) = 2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b SIZE (rust/crates/windows-implement-0.58.0.crate) = 10491 SHA256 (rust/crates/windows-implement-0.60.0.crate) = a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836 @@ -1681,18 +1731,22 @@ SHA256 (rust/crates/windows-interface-0.58.0.crate) = 053c4c462dc91d3b1504c6fe5a SIZE (rust/crates/windows-interface-0.58.0.crate) = 11246 SHA256 (rust/crates/windows-interface-0.59.1.crate) = bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8 SIZE (rust/crates/windows-interface-0.59.1.crate) = 11735 -SHA256 (rust/crates/windows-link-0.1.1.crate) = 76840935b766e1b0a05c0066835fb9ec80071d4c09a16f6bd5f7e655e3c14c38 -SIZE (rust/crates/windows-link-0.1.1.crate) = 6154 +SHA256 (rust/crates/windows-link-0.1.3.crate) = 5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a +SIZE (rust/crates/windows-link-0.1.3.crate) = 6154 +SHA256 (rust/crates/windows-link-0.2.0.crate) = 45e46c0661abb7180e7b9c281db115305d49ca1709ab8242adf09666d2173c65 +SIZE (rust/crates/windows-link-0.2.0.crate) = 6170 +SHA256 (rust/crates/windows-numerics-0.2.0.crate) = 9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1 +SIZE (rust/crates/windows-numerics-0.2.0.crate) = 9686 SHA256 (rust/crates/windows-result-0.1.2.crate) = 5e383302e8ec8515204254685643de10811af0ed97ea37210dc26fb0032647f8 SIZE (rust/crates/windows-result-0.1.2.crate) = 10601 SHA256 (rust/crates/windows-result-0.2.0.crate) = 1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e SIZE (rust/crates/windows-result-0.2.0.crate) = 12756 -SHA256 (rust/crates/windows-result-0.3.2.crate) = c64fd11a4fd95df68efcfee5f44a294fe71b8bc6a91993e2791938abcc712252 -SIZE (rust/crates/windows-result-0.3.2.crate) = 13399 +SHA256 (rust/crates/windows-result-0.3.4.crate) = 56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6 +SIZE (rust/crates/windows-result-0.3.4.crate) = 13418 SHA256 (rust/crates/windows-strings-0.1.0.crate) = 4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10 SIZE (rust/crates/windows-strings-0.1.0.crate) = 13832 -SHA256 (rust/crates/windows-strings-0.4.0.crate) = 7a2ba9642430ee452d5a7aa78d72907ebe8cfda358e8cb7918a2050581322f97 -SIZE (rust/crates/windows-strings-0.4.0.crate) = 13939 +SHA256 (rust/crates/windows-strings-0.4.2.crate) = 56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57 +SIZE (rust/crates/windows-strings-0.4.2.crate) = 13983 SHA256 (rust/crates/windows-sys-0.45.0.crate) = 75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0 SIZE (rust/crates/windows-sys-0.45.0.crate) = 2568659 SHA256 (rust/crates/windows-sys-0.48.0.crate) = 677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9 @@ -1701,60 +1755,84 @@ SHA256 (rust/crates/windows-sys-0.52.0.crate) = 282be5f36a8ce781fad8c8ae18fa3f9b SIZE (rust/crates/windows-sys-0.52.0.crate) = 2576877 SHA256 (rust/crates/windows-sys-0.59.0.crate) = 1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b SIZE (rust/crates/windows-sys-0.59.0.crate) = 2387323 +SHA256 (rust/crates/windows-sys-0.60.2.crate) = f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb +SIZE (rust/crates/windows-sys-0.60.2.crate) = 2518479 +SHA256 (rust/crates/windows-sys-0.61.0.crate) = e201184e40b2ede64bc2ea34968b28e33622acdbbf37104f0e4a33f7abe657aa +SIZE (rust/crates/windows-sys-0.61.0.crate) = 2517134 SHA256 (rust/crates/windows-targets-0.42.2.crate) = 8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071 SIZE (rust/crates/windows-targets-0.42.2.crate) = 5492 SHA256 (rust/crates/windows-targets-0.48.5.crate) = 9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c SIZE (rust/crates/windows-targets-0.48.5.crate) = 6904 SHA256 (rust/crates/windows-targets-0.52.6.crate) = 9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973 SIZE (rust/crates/windows-targets-0.52.6.crate) = 6403 +SHA256 (rust/crates/windows-targets-0.53.3.crate) = d5fe6031c4041849d7c496a8ded650796e7b6ecc19df1a431c1a363342e5dc91 +SIZE (rust/crates/windows-targets-0.53.3.crate) = 7099 +SHA256 (rust/crates/windows-threading-0.1.0.crate) = b66463ad2e0ea3bbf808b7f1d371311c80e115c0b71d60efc142cafbcfb057a6 +SIZE (rust/crates/windows-threading-0.1.0.crate) = 9085 SHA256 (rust/crates/windows_aarch64_gnullvm-0.42.2.crate) = 597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8 SIZE (rust/crates/windows_aarch64_gnullvm-0.42.2.crate) = 364071 SHA256 (rust/crates/windows_aarch64_gnullvm-0.48.5.crate) = 2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8 SIZE (rust/crates/windows_aarch64_gnullvm-0.48.5.crate) = 418492 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_gnullvm-0.53.0.crate) = 86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764 +SIZE (rust/crates/windows_aarch64_gnullvm-0.53.0.crate) = 782443 SHA256 (rust/crates/windows_aarch64_msvc-0.42.2.crate) = e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43 SIZE (rust/crates/windows_aarch64_msvc-0.42.2.crate) = 666981 SHA256 (rust/crates/windows_aarch64_msvc-0.48.5.crate) = dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc SIZE (rust/crates/windows_aarch64_msvc-0.48.5.crate) = 798483 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_aarch64_msvc-0.53.0.crate) = c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c +SIZE (rust/crates/windows_aarch64_msvc-0.53.0.crate) = 834446 SHA256 (rust/crates/windows_i686_gnu-0.42.2.crate) = c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f SIZE (rust/crates/windows_i686_gnu-0.42.2.crate) = 736236 SHA256 (rust/crates/windows_i686_gnu-0.48.5.crate) = a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e SIZE (rust/crates/windows_i686_gnu-0.48.5.crate) = 844891 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_gnu-0.53.0.crate) = c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3 +SIZE (rust/crates/windows_i686_gnu-0.53.0.crate) = 936973 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_gnullvm-0.53.0.crate) = 9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11 +SIZE (rust/crates/windows_i686_gnullvm-0.53.0.crate) = 854056 SHA256 (rust/crates/windows_i686_msvc-0.42.2.crate) = 44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060 SIZE (rust/crates/windows_i686_msvc-0.42.2.crate) = 724951 SHA256 (rust/crates/windows_i686_msvc-0.48.5.crate) = 8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406 SIZE (rust/crates/windows_i686_msvc-0.48.5.crate) = 864300 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_i686_msvc-0.53.0.crate) = 581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d +SIZE (rust/crates/windows_i686_msvc-0.53.0.crate) = 903450 SHA256 (rust/crates/windows_x86_64_gnu-0.42.2.crate) = 8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36 SIZE (rust/crates/windows_x86_64_gnu-0.42.2.crate) = 699373 SHA256 (rust/crates/windows_x86_64_gnu-0.48.5.crate) = 53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e SIZE (rust/crates/windows_x86_64_gnu-0.48.5.crate) = 801619 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_gnu-0.53.0.crate) = 2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba +SIZE (rust/crates/windows_x86_64_gnu-0.53.0.crate) = 902585 SHA256 (rust/crates/windows_x86_64_gnullvm-0.42.2.crate) = 26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3 SIZE (rust/crates/windows_x86_64_gnullvm-0.42.2.crate) = 364068 SHA256 (rust/crates/windows_x86_64_gnullvm-0.48.5.crate) = 0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc SIZE (rust/crates/windows_x86_64_gnullvm-0.48.5.crate) = 418486 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_gnullvm-0.53.0.crate) = 0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57 +SIZE (rust/crates/windows_x86_64_gnullvm-0.53.0.crate) = 782434 SHA256 (rust/crates/windows_x86_64_msvc-0.42.2.crate) = 9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0 SIZE (rust/crates/windows_x86_64_msvc-0.42.2.crate) = 666936 SHA256 (rust/crates/windows_x86_64_msvc-0.48.5.crate) = ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538 SIZE (rust/crates/windows_x86_64_msvc-0.48.5.crate) = 798412 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/windows_x86_64_msvc-0.53.0.crate) = 271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486 +SIZE (rust/crates/windows_x86_64_msvc-0.53.0.crate) = 834400 SHA256 (rust/crates/winit-0.30.12.crate) = c66d4b9ed69c4009f6321f762d6e61ad8a2389cd431b97cb1e146812e9e6c732 SIZE (rust/crates/winit-0.30.12.crate) = 604631 -SHA256 (rust/crates/winnow-0.7.9.crate) = d9fb597c990f03753e08d3c29efbfcf2019a003b4bf4ba19225c158e1549f0f3 -SIZE (rust/crates/winnow-0.7.9.crate) = 174763 +SHA256 (rust/crates/winnow-0.7.13.crate) = 21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf +SIZE (rust/crates/winnow-0.7.13.crate) = 174454 SHA256 (rust/crates/winreg-0.50.0.crate) = 524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1 SIZE (rust/crates/winreg-0.50.0.crate) = 29703 SHA256 (rust/crates/winreg-0.52.0.crate) = a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5 @@ -1765,16 +1843,14 @@ SHA256 (rust/crates/winsafe-0.0.19.crate) = d135d17ab770252ad95e9a872d365cf3090e SIZE (rust/crates/winsafe-0.0.19.crate) = 492820 SHA256 (rust/crates/winx-0.36.4.crate) = 3f3fd376f71958b862e7afb20cfe5a22830e1963462f3a17f49d82a6c1d1f42d SIZE (rust/crates/winx-0.36.4.crate) = 13838 -SHA256 (rust/crates/wit-bindgen-rt-0.39.0.crate) = 6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1 -SIZE (rust/crates/wit-bindgen-rt-0.39.0.crate) = 12241 -SHA256 (rust/crates/wit-parser-0.221.3.crate) = 896112579ed56b4a538b07a3d16e562d101ff6265c46b515ce0c701eef16b2ac -SIZE (rust/crates/wit-parser-0.221.3.crate) = 142585 +SHA256 (rust/crates/wit-bindgen-0.45.1.crate) = 5c573471f125075647d03df72e026074b7203790d41351cd6edc96f46bcccd36 +SIZE (rust/crates/wit-bindgen-0.45.1.crate) = 60395 +SHA256 (rust/crates/wit-parser-0.236.1.crate) = 16e4833a20cd6e85d6abfea0e63a399472d6f88c6262957c17f546879a80ba15 +SIZE (rust/crates/wit-parser-0.236.1.crate) = 153557 SHA256 (rust/crates/witx-0.9.1.crate) = e366f27a5cabcddb2706a78296a40b8fcc451e1a6aba2fc1d94b4a01bdaaef4b SIZE (rust/crates/witx-0.9.1.crate) = 45928 -SHA256 (rust/crates/write16-1.0.0.crate) = d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936 -SIZE (rust/crates/write16-1.0.0.crate) = 7218 -SHA256 (rust/crates/writeable-0.5.5.crate) = 1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51 -SIZE (rust/crates/writeable-0.5.5.crate) = 22354 +SHA256 (rust/crates/writeable-0.6.1.crate) = ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb +SIZE (rust/crates/writeable-0.6.1.crate) = 24068 SHA256 (rust/crates/wyz-0.5.1.crate) = 05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed SIZE (rust/crates/wyz-0.5.1.crate) = 18790 SHA256 (rust/crates/x11-clipboard-0.7.1.crate) = 980b9aa9226c3b7de8e2adb11bf20124327c054e0e5812d2aac0b5b5a87e7464 @@ -1783,16 +1859,16 @@ SHA256 (rust/crates/x11-dl-2.21.0.crate) = 38735924fedd5314a6e548792904ed8c6de66 SIZE (rust/crates/x11-dl-2.21.0.crate) = 66823 SHA256 (rust/crates/x11rb-0.10.1.crate) = 592b4883219f345e712b3209c62654ebda0bb50887f330cbd018d0f654bfd507 SIZE (rust/crates/x11rb-0.10.1.crate) = 207678 -SHA256 (rust/crates/x11rb-0.13.1.crate) = 5d91ffca73ee7f68ce055750bf9f6eca0780b8c85eff9bc046a3b0da41755e12 -SIZE (rust/crates/x11rb-0.13.1.crate) = 223916 +SHA256 (rust/crates/x11rb-0.13.2.crate) = 9993aa5be5a26815fe2c3eacfc1fde061fc1a1f094bf1ad2a18bf9c495dd7414 +SIZE (rust/crates/x11rb-0.13.2.crate) = 220549 SHA256 (rust/crates/x11rb-protocol-0.10.0.crate) = 56b245751c0ac9db0e006dc812031482784e434630205a93c73cfefcaabeac67 SIZE (rust/crates/x11rb-protocol-0.10.0.crate) = 419025 -SHA256 (rust/crates/x11rb-protocol-0.13.1.crate) = ec107c4503ea0b4a98ef47356329af139c0a4f7750e621cf2973cd3385ebcb3d -SIZE (rust/crates/x11rb-protocol-0.13.1.crate) = 508522 -SHA256 (rust/crates/xattr-1.5.0.crate) = 0d65cbf2f12c15564212d48f4e3dfb87923d25d611f2aed18f4cb23f0413d89e -SIZE (rust/crates/xattr-1.5.0.crate) = 14694 -SHA256 (rust/crates/xcursor-0.3.8.crate) = 0ef33da6b1660b4ddbfb3aef0ade110c8b8a781a3b6382fa5f2b5b040fd55f61 -SIZE (rust/crates/xcursor-0.3.8.crate) = 7191 +SHA256 (rust/crates/x11rb-protocol-0.13.2.crate) = ea6fc2961e4ef194dcbfe56bb845534d0dc8098940c7e5c012a258bfec6701bd +SIZE (rust/crates/x11rb-protocol-0.13.2.crate) = 514069 +SHA256 (rust/crates/xattr-1.5.1.crate) = af3a19837351dc82ba89f8a125e22a3c475f05aba604acc023d62b2739ae2909 +SIZE (rust/crates/xattr-1.5.1.crate) = 14565 +SHA256 (rust/crates/xcursor-0.3.10.crate) = bec9e4a500ca8864c5b47b8b482a73d62e4237670e5b5f1d6b9e3cae50f28f2b +SIZE (rust/crates/xcursor-0.3.10.crate) = 7768 SHA256 (rust/crates/xdg-2.5.2.crate) = 213b7324336b53d2414b2db8537e56544d981803139155afa84f76eeebb7a546 SIZE (rust/crates/xdg-2.5.2.crate) = 14394 SHA256 (rust/crates/xi-unicode-0.3.0.crate) = a67300977d3dc3f8034dae89778f502b6ba20b269527b3223ba59c0cf393bb8a @@ -1801,40 +1877,42 @@ SHA256 (rust/crates/xkbcommon-dl-0.4.2.crate) = d039de8032a9a8856a6be89cea3e5d12 SIZE (rust/crates/xkbcommon-dl-0.4.2.crate) = 5879 SHA256 (rust/crates/xkeysym-0.2.1.crate) = b9cc00251562a284751c9973bace760d86c0276c471b4be569fe6b068ee97a56 SIZE (rust/crates/xkeysym-0.2.1.crate) = 103129 -SHA256 (rust/crates/xml-rs-0.8.26.crate) = a62ce76d9b56901b19a74f19431b0d8b3bc7ca4ad685a746dfd78ca8f4fc6bda -SIZE (rust/crates/xml-rs-0.8.26.crate) = 55115 +SHA256 (rust/crates/xml-rs-0.8.27.crate) = 6fd8403733700263c6eb89f192880191f1b83e332f7a20371ddcf421c4a337c7 +SIZE (rust/crates/xml-rs-0.8.27.crate) = 55258 SHA256 (rust/crates/xmlparser-0.13.6.crate) = 66fee0b777b0f5ac1c69bb06d361268faafa61cd4682ae064a171c16c433e9e4 SIZE (rust/crates/xmlparser-0.13.6.crate) = 26718 SHA256 (rust/crates/yasna-0.5.2.crate) = e17bb3549cc1321ae1296b9cdc2698e2b6cb1992adfa19a8c72e5b7a738f44cd SIZE (rust/crates/yasna-0.5.2.crate) = 34859 -SHA256 (rust/crates/yoke-0.7.5.crate) = 120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40 -SIZE (rust/crates/yoke-0.7.5.crate) = 29673 -SHA256 (rust/crates/yoke-derive-0.7.5.crate) = 2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154 -SIZE (rust/crates/yoke-derive-0.7.5.crate) = 7525 -SHA256 (rust/crates/zerocopy-0.8.25.crate) = a1702d9583232ddb9174e01bb7c15a2ab8fb1bc6f227aa1233858c351a3ba0cb -SIZE (rust/crates/zerocopy-0.8.25.crate) = 252714 -SHA256 (rust/crates/zerocopy-derive-0.8.25.crate) = 28a6e20d751156648aa063f3800b706ee209a32c0b4d9f24be3d980b01be55ef -SIZE (rust/crates/zerocopy-derive-0.8.25.crate) = 87671 +SHA256 (rust/crates/yoke-0.8.0.crate) = 5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc +SIZE (rust/crates/yoke-0.8.0.crate) = 28726 +SHA256 (rust/crates/yoke-derive-0.8.0.crate) = 38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6 +SIZE (rust/crates/yoke-derive-0.8.0.crate) = 7521 +SHA256 (rust/crates/zerocopy-0.8.27.crate) = 0894878a5fa3edfd6da3f88c4805f4c8558e2b996227a3d864f47fe11e38282c +SIZE (rust/crates/zerocopy-0.8.27.crate) = 252663 +SHA256 (rust/crates/zerocopy-derive-0.8.27.crate) = 88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831 +SIZE (rust/crates/zerocopy-derive-0.8.27.crate) = 89827 SHA256 (rust/crates/zerofrom-0.1.6.crate) = 50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5 SIZE (rust/crates/zerofrom-0.1.6.crate) = 5669 SHA256 (rust/crates/zerofrom-derive-0.1.6.crate) = d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502 SIZE (rust/crates/zerofrom-derive-0.1.6.crate) = 8305 SHA256 (rust/crates/zeroize-1.8.1.crate) = ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde SIZE (rust/crates/zeroize-1.8.1.crate) = 20029 -SHA256 (rust/crates/zerovec-0.10.4.crate) = aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079 -SIZE (rust/crates/zerovec-0.10.4.crate) = 126398 -SHA256 (rust/crates/zerovec-derive-0.10.3.crate) = 6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6 -SIZE (rust/crates/zerovec-derive-0.10.3.crate) = 19438 +SHA256 (rust/crates/zerotrie-0.2.2.crate) = 36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595 +SIZE (rust/crates/zerotrie-0.2.2.crate) = 74423 +SHA256 (rust/crates/zerovec-0.11.4.crate) = e7aa2bd55086f1ab526693ecbe444205da57e25f4489879da80635a46d90e73b +SIZE (rust/crates/zerovec-0.11.4.crate) = 125080 +SHA256 (rust/crates/zerovec-derive-0.11.1.crate) = 5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f +SIZE (rust/crates/zerovec-derive-0.11.1.crate) = 21294 SHA256 (rust/crates/zstd-0.13.3.crate) = e91ee311a569c327171651566e07972200e76fcfe2242a4fa446149a3881c08a SIZE (rust/crates/zstd-0.13.3.crate) = 30514 SHA256 (rust/crates/zstd-safe-7.2.4.crate) = 8f49c4d5f0abb602a93fb8736af2a4f4dd9512e36f7f570d66e65ff867ed3b9d SIZE (rust/crates/zstd-safe-7.2.4.crate) = 29350 -SHA256 (rust/crates/zstd-sys-2.0.15+zstd.1.5.7.crate) = eb81183ddd97d0c74cedf1d50d85c8d08c1b8b68ee863bdee9e706eedba1a237 -SIZE (rust/crates/zstd-sys-2.0.15+zstd.1.5.7.crate) = 774847 +SHA256 (rust/crates/zstd-sys-2.0.16+zstd.1.5.7.crate) = 91e19ebc2adc8f83e43039e79776e3fda8ca919132d68a1fed6a5faca2683748 +SIZE (rust/crates/zstd-sys-2.0.16+zstd.1.5.7.crate) = 775620 SHA256 (rust/crates/zune-core-0.4.12.crate) = 3f423a2c17029964870cfaabb1f13dfab7d092a62a29a89264f4d36990ca414a SIZE (rust/crates/zune-core-0.4.12.crate) = 17355 -SHA256 (rust/crates/zune-jpeg-0.4.14.crate) = 99a5bab8d7dedf81405c4bb1f2b83ea057643d9cb28778cea9eecddeedd2e028 -SIZE (rust/crates/zune-jpeg-0.4.14.crate) = 63388 +SHA256 (rust/crates/zune-jpeg-0.4.21.crate) = 29ce2c8a9384ad323cf564b67da86e21d3cfdff87908bc1223ed5c99bc792713 +SIZE (rust/crates/zune-jpeg-0.4.21.crate) = 68268 SHA256 (amethyst-specs-4e2da1df29ee840baa9b936593c45592b7c9ae27_GH0.tar.gz) = 0f7a525f61a575d212ecab1860af9166b6453a5ad5f44c5c7bcdcd4a353f6ff9 SIZE (amethyst-specs-4e2da1df29ee840baa9b936593c45592b7c9ae27_GH0.tar.gz) = 142942 SHA256 (veloren-auth-ae0e16783a9f9041951296885f082308e155db79_GL0.tar.gz) = 57381d975997e4a0b81e33a7658f87b5b3153097e82adfbf34fd8e47006f2056 @@ -1847,5 +1925,5 @@ SHA256 (veloren-conrod-c74446362371dc837b8b4b6d6ddcd7693b48d9b6_GL0.tar.gz) = 43 SIZE (veloren-conrod-c74446362371dc837b8b4b6d6ddcd7693b48d9b6_GL0.tar.gz) = 808402 SHA256 (DaforLynx-kira-v0.10.7-with-config_GH0.tar.gz) = ffc38b7c73cb6419d02a21a3905cd0b00b3a544711230c5b11ef77301b7b9bb2 SIZE (DaforLynx-kira-v0.10.7-with-config_GH0.tar.gz) = 4379268 -SHA256 (veloren-v0.17.0-1018-g15f3d6725e.tar.bz2) = 542c6fa50328f1f9ca118ee54db7c3f34d49d00d65ed2d190d03d6576af23426 -SIZE (veloren-v0.17.0-1018-g15f3d6725e.tar.bz2) = 340008848 +SHA256 (veloren-v0.17.0-1107-g188d737f06.tar.bz2) = 576638f69884ab00cd491804ae5c13f297baee7b10a6c43fec82caffbed48534 +SIZE (veloren-v0.17.0-1107-g188d737f06.tar.bz2) = 341670101 diff --git a/games/veloren-weekly/files/patch-gilrs b/games/veloren-weekly/files/patch-gilrs index 5ff7ffda430e..bcba8722d178 100644 --- a/games/veloren-weekly/files/patch-gilrs +++ b/games/veloren-weekly/files/patch-gilrs @@ -23,9 +23,9 @@ error[E0432]: unresolved imports `nix::sys::epoll`, `nix::sys::eventfd` | | help: a similar name exists in the module: `event` | no `epoll` in `sys` ---- Cargo.lock.orig 2025-08-14 15:14:34 UTC +--- Cargo.lock.orig 2025-09-10 09:49:58 UTC +++ Cargo.lock -@@ -2564,9 +2564,9 @@ dependencies = [ +@@ -2709,9 +2709,9 @@ dependencies = [ [[package]] name = "gilrs" @@ -37,7 +37,7 @@ error[E0432]: unresolved imports `nix::sys::epoll`, `nix::sys::eventfd` dependencies = [ "fnv", "gilrs-core", -@@ -2578,24 +2578,23 @@ dependencies = [ +@@ -2723,24 +2723,23 @@ dependencies = [ [[package]] name = "gilrs-core" @@ -47,8 +47,8 @@ error[E0432]: unresolved imports `nix::sys::epoll`, `nix::sys::eventfd` -checksum = "a6d95ae10ce5aa99543a28cf74e41c11f3b9e3c14f0452bbde46024753cd683e" +checksum = "5ccc99e9b8d63ffcaa334c4babfa31f46e156618a11f63efb6e8e6bcb37b830d" dependencies = [ -- "core-foundation 0.10.0", -- "inotify 0.11.0", +- "core-foundation 0.10.1", +- "inotify", + "core-foundation 0.9.4", "io-kit-sys", "js-sys", @@ -62,12 +62,12 @@ error[E0432]: unresolved imports `nix::sys::epoll`, `nix::sys::eventfd` "vec_map", "wasm-bindgen", "web-sys", -- "windows 0.61.1", +- "windows 0.61.3", + "windows 0.48.0", ] [[package]] -@@ -3414,9 +3413,9 @@ +@@ -3525,9 +3524,9 @@ dependencies = [ [[package]] name = "io-kit-sys" @@ -79,87 +79,23 @@ error[E0432]: unresolved imports `nix::sys::epoll`, `nix::sys::eventfd` dependencies = [ "core-foundation-sys", "mach2", -@@ -4205,6 +4204,17 @@ dependencies = [ - "memoffset 0.6.5", - ] +@@ -4317,13 +4316,12 @@ dependencies = [ -+[[package]] -+name = "nix" + [[package]] + name = "nix" +-version = "0.29.0" +version = "0.26.4" -+source = "registry+https://github.com/rust-lang/crates.io-index" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" +checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b" -+dependencies = [ + dependencies = [ +- "bitflags 2.9.4", + "bitflags 1.3.2", -+ "cfg-if 1.0.0", -+ "libc", -+] -+ - [[package]] - name = "nix" - version = "0.29.0" -@@ -9218,28 +9228,6 @@ dependencies = [ - "windows-targets 0.52.6", - ] - --[[package]] --name = "windows" --version = "0.61.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "c5ee8f3d025738cb02bad7868bbb5f8a6327501e870bf51f1b455b0a2454a419" --dependencies = [ -- "windows-collections", -- "windows-core 0.61.0", -- "windows-future", -- "windows-link", -- "windows-numerics", --] -- --[[package]] --name = "windows-collections" --version = "0.2.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "3beeceb5e5cfd9eb1d76b381630e82c4241ccd0d27f1a39ed41b2760b255c5e8" --dependencies = [ -- "windows-core 0.61.0", --] -- - [[package]] - name = "windows-core" - version = "0.54.0" -@@ -9276,16 +9264,6 @@ dependencies = [ - "windows-strings 0.4.0", + "cfg-if 1.0.3", +- "cfg_aliases", + "libc", ] --[[package]] --name = "windows-future" --version = "0.2.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "7a1d6bbefcb7b60acd19828e1bc965da6fcf18a7e39490c5f8be71e54a19ba32" --dependencies = [ -- "windows-core 0.61.0", -- "windows-link", --] -- - [[package]] - name = "windows-implement" - version = "0.58.0" -@@ -9336,16 +9314,6 @@ version = "0.1.1" - source = "registry+https://github.com/rust-lang/crates.io-index" - checksum = "76840935b766e1b0a05c0066835fb9ec80071d4c09a16f6bd5f7e655e3c14c38" - --[[package]] --name = "windows-numerics" --version = "0.2.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1" --dependencies = [ -- "windows-core 0.61.0", -- "windows-link", --] -- - [[package]] - name = "windows-result" - version = "0.1.2" --- cargo-crates/gilrs-0.10.2/examples/ev.rs.orig 1970-01-01 00:00:00 UTC +++ cargo-crates/gilrs-0.10.2/examples/ev.rs @@ -9,6 +9,8 @@ use std::process; |