From 1de9381194bd2092f5a140ee791673e8e24cfa27 Mon Sep 17 00:00:00 2001 From: Mazet Laurent Date: Thu, 23 Nov 2023 07:42:43 +0100 Subject: [PATCH] initial commit --- iso2ps2 | 93 +++ ps2.key | 1 + ps2classic/Makefile | 20 + ps2classic/aes.c | 1317 +++++++++++++++++++++++++++++++++++++++ ps2classic/aes.h | 30 + ps2classic/iso.c | 576 +++++++++++++++++ ps2classic/iso.h | 135 ++++ ps2classic/ps2classic.c | 413 ++++++++++++ ps2classic/sha1.c | 380 +++++++++++ ps2classic/sha1.h | 72 +++ ps2classic/tools.c | 273 ++++++++ ps2classic/tools.h | 30 + ps2classic/types.h | 107 ++++ skeleton.tgz | Bin 0 -> 365906 bytes 14 files changed, 3447 insertions(+) create mode 100755 iso2ps2 create mode 100644 ps2.key create mode 100644 ps2classic/Makefile create mode 100644 ps2classic/aes.c create mode 100644 ps2classic/aes.h create mode 100644 ps2classic/iso.c create mode 100644 ps2classic/iso.h create mode 100644 ps2classic/ps2classic.c create mode 100644 ps2classic/sha1.c create mode 100644 ps2classic/sha1.h create mode 100644 ps2classic/tools.c create mode 100644 ps2classic/tools.h create mode 100644 ps2classic/types.h create mode 100644 skeleton.tgz diff --git a/iso2ps2 b/iso2ps2 new file mode 100755 index 0000000..cf4618d --- /dev/null +++ b/iso2ps2 @@ -0,0 +1,93 @@ +#!/bin/bash + +# default values +PROGNAME=$(basename $0) + +# defaut values +id=0 + +# get last values +[ -f .$PROGNAME ] && source .$PROGNAME + +# init +file="$1" + +# get serial +serial=$(isoinfo -f -i "$file" | \ + grep "^/[A-Z][A-Z][A-Z][A-Z]_[0-9][0-9][0-9]\.[0-9][0-9];" | \ + sed 's,[/.],,g;s,_,-,;s,;.*,,') +[ "$serial" ] || { serial=$(printf "PS2U-1%04d" $id); let id++; } +CID=${serial/-} + +# store last value +echo > .$PROGNAME +echo "id=$id" >> .$PROGNAME + +# get name +function getname () { + [ -f jlist2.html ] || wget https://psxdatacenter.com/psx2/jlist2.html + [ -f plist2.html ] || wget https://psxdatacenter.com/psx2/plist2.html + [ -f ulist2.html ] || wget https://psxdatacenter.com/psx2/ulist2.html + awk '/>'$1'/, "") + sub(/ /, " ") + gsub(/^[ \t]*/, "") + gsub(/[ \t]*$/, "") + print + }' [jpu]list2.html +} + +# get game title +[ -f PS2-GAMEID-TITLE-MASTER.csv ] || wget https://raw.githubusercontent.com/VTSTech/PS2-OPL-CFG/master/test/PS2-GAMEID-TITLE-MASTER.csv +title=$(awk -F\; '"'$serial'" == $1 {print $2}' PS2-GAMEID-TITLE-MASTER.csv) +[ "$title" ] || title=$(basename "$file" | sed 's/ *(.*//') + +# main process +echo "File: '$file'" +echo "Serial: $serial" +echo "Title: '$title'" + +# skeleton +mkdir $serial +tar -C $serial -xzf skeleton.tgz + + +# images: +# - ICON0.PNG 320x176 +# - PIC0.PNG 1000x560 +# - PIC1.PNG 1920x1080 + +# cover +wget https://psxdatacenter.com/psx2/images2/covers/$serial.jpg +if [ -f $serial.jpg ]; then + convert $serial.jpg tmp.png + mogrify -resize 320x176 tmp.png + mogrify -background transparent -gravity center -extent 320x176 tmp.png + mv tmp.png $serial/ICON0.PNG + rm $serial.jpg +fi + +# screenshot +touch .touch +find $HOME/.config/PCSX2/snaps/ -type f | xargs rm .touch +#pcsx2 "$file" +capture=$(find $HOME/.config/PCSX2/snaps/ -type f | sort) +if [ "$capture" ]; then + cp "$capture" tmp.png + mogrify -scale 1000x560 tmp.png + mogrify -background transparent -gravity center -extent 1000x560 tmp.png + mv tmp.png $serial/PIC0.PNG +fi + +# parameters +# - file: PARAM.SFO +# 0x108: title +# 0x188: CID +# - file: USRDIR/ISO.BIN.EDAT +# 0x017: CID +echo -n $title | xxd | xxd -r -s 0x108 - $serial/PARAM.SFO +echo -n $CID | xxd | xxd -r -s 0x188 - $serial/PARAM.SFO +echo -n $CID | xxd | xxd -r -s 0x17- $serial/USRDIR/ISO.BIN.EDAT + +# convert +ps2classic e cex ps2.key "$1" $serial/USRDIR/ISO.BIN.ENC ISO.BIN.ENC 2P0001-${CID}_00-0000111122223333 diff --git a/ps2.key b/ps2.key new file mode 100644 index 0000000..21735eb --- /dev/null +++ b/ps2.key @@ -0,0 +1 @@ +äåOÖ|Ãôx)£„ØC \ No newline at end of file diff --git a/ps2classic/Makefile b/ps2classic/Makefile new file mode 100644 index 0000000..6bff79b --- /dev/null +++ b/ps2classic/Makefile @@ -0,0 +1,20 @@ +TOOLS = ps2classic +COMMON = tools.o aes.o sha1.o iso.o +DEPS = Makefile tools.h types.h + +CC = gcc +CFLAGS = -g -O3 -W -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 +LDFLAGS = + +OBJS = $(COMMON) $(addsuffix .o, $(TOOLS)) + +all: $(TOOLS) + +$(TOOLS): %: %.o $(COMMON) $(DEPS) + $(CC) $(CFLAGS) -o $@ $< $(COMMON) $(LDFLAGS) + +$(OBJS): %.o: %.c $(DEPS) + $(CC) $(CFLAGS) -c -o $@ $< + +clean: + -rm -f $(OBJS) $(TOOLS) diff --git a/ps2classic/aes.c b/ps2classic/aes.c new file mode 100644 index 0000000..ed82796 --- /dev/null +++ b/ps2classic/aes.c @@ -0,0 +1,1317 @@ +/** + * + * aes.c - integrated in QEMU by Fabrice Bellard from the OpenSSL project. + */ +/* + * rijndael-alg-fst.c + * + * @version 3.0 (December 2000) + * + * Optimised ANSI C code for the Rijndael cipher (now AES) + * + * @author Vincent Rijmen + * @author Antoon Bosselaers + * @author Paulo Barreto + * + * This code is hereby placed in the public domain. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ''AS IS'' AND ANY EXPRESS + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR + * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + + +#include "tools.h" +#include "aes.h" +#include + +#define MAXKC (256/32) +#define MAXKB (256/8) +#define MAXNR 14 + +/* This controls loop-unrolling in aes_core.c */ +#undef FULL_UNROLL +# define GETU32(pt) (((u32)(pt)[0] << 24) ^ ((u32)(pt)[1] << 16) ^ ((u32)(pt)[2] << 8) ^ ((u32)(pt)[3])) +# define PUTU32(ct, st) { (ct)[0] = (u8)((st) >> 24); (ct)[1] = (u8)((st) >> 16); (ct)[2] = (u8)((st) >> 8); (ct)[3] = (u8)(st); } + +/* +Te0[x] = S [x].[02, 01, 01, 03]; +Te1[x] = S [x].[03, 02, 01, 01]; +Te2[x] = S [x].[01, 03, 02, 01]; +Te3[x] = S [x].[01, 01, 03, 02]; +Te4[x] = S [x].[01, 01, 01, 01]; + +Td0[x] = Si[x].[0e, 09, 0d, 0b]; +Td1[x] = Si[x].[0b, 0e, 09, 0d]; +Td2[x] = Si[x].[0d, 0b, 0e, 09]; +Td3[x] = Si[x].[09, 0d, 0b, 0e]; +Td4[x] = Si[x].[01, 01, 01, 01]; +*/ + +static const u32 Te0[256] = { + 0xc66363a5U, 0xf87c7c84U, 0xee777799U, 0xf67b7b8dU, + 0xfff2f20dU, 0xd66b6bbdU, 0xde6f6fb1U, 0x91c5c554U, + 0x60303050U, 0x02010103U, 0xce6767a9U, 0x562b2b7dU, + 0xe7fefe19U, 0xb5d7d762U, 0x4dababe6U, 0xec76769aU, + 0x8fcaca45U, 0x1f82829dU, 0x89c9c940U, 0xfa7d7d87U, + 0xeffafa15U, 0xb25959ebU, 0x8e4747c9U, 0xfbf0f00bU, + 0x41adadecU, 0xb3d4d467U, 0x5fa2a2fdU, 0x45afafeaU, + 0x239c9cbfU, 0x53a4a4f7U, 0xe4727296U, 0x9bc0c05bU, + 0x75b7b7c2U, 0xe1fdfd1cU, 0x3d9393aeU, 0x4c26266aU, + 0x6c36365aU, 0x7e3f3f41U, 0xf5f7f702U, 0x83cccc4fU, + 0x6834345cU, 0x51a5a5f4U, 0xd1e5e534U, 0xf9f1f108U, + 0xe2717193U, 0xabd8d873U, 0x62313153U, 0x2a15153fU, + 0x0804040cU, 0x95c7c752U, 0x46232365U, 0x9dc3c35eU, + 0x30181828U, 0x379696a1U, 0x0a05050fU, 0x2f9a9ab5U, + 0x0e070709U, 0x24121236U, 0x1b80809bU, 0xdfe2e23dU, + 0xcdebeb26U, 0x4e272769U, 0x7fb2b2cdU, 0xea75759fU, + 0x1209091bU, 0x1d83839eU, 0x582c2c74U, 0x341a1a2eU, + 0x361b1b2dU, 0xdc6e6eb2U, 0xb45a5aeeU, 0x5ba0a0fbU, + 0xa45252f6U, 0x763b3b4dU, 0xb7d6d661U, 0x7db3b3ceU, + 0x5229297bU, 0xdde3e33eU, 0x5e2f2f71U, 0x13848497U, + 0xa65353f5U, 0xb9d1d168U, 0x00000000U, 0xc1eded2cU, + 0x40202060U, 0xe3fcfc1fU, 0x79b1b1c8U, 0xb65b5bedU, + 0xd46a6abeU, 0x8dcbcb46U, 0x67bebed9U, 0x7239394bU, + 0x944a4adeU, 0x984c4cd4U, 0xb05858e8U, 0x85cfcf4aU, + 0xbbd0d06bU, 0xc5efef2aU, 0x4faaaae5U, 0xedfbfb16U, + 0x864343c5U, 0x9a4d4dd7U, 0x66333355U, 0x11858594U, + 0x8a4545cfU, 0xe9f9f910U, 0x04020206U, 0xfe7f7f81U, + 0xa05050f0U, 0x783c3c44U, 0x259f9fbaU, 0x4ba8a8e3U, + 0xa25151f3U, 0x5da3a3feU, 0x804040c0U, 0x058f8f8aU, + 0x3f9292adU, 0x219d9dbcU, 0x70383848U, 0xf1f5f504U, + 0x63bcbcdfU, 0x77b6b6c1U, 0xafdada75U, 0x42212163U, + 0x20101030U, 0xe5ffff1aU, 0xfdf3f30eU, 0xbfd2d26dU, + 0x81cdcd4cU, 0x180c0c14U, 0x26131335U, 0xc3ecec2fU, + 0xbe5f5fe1U, 0x359797a2U, 0x884444ccU, 0x2e171739U, + 0x93c4c457U, 0x55a7a7f2U, 0xfc7e7e82U, 0x7a3d3d47U, + 0xc86464acU, 0xba5d5de7U, 0x3219192bU, 0xe6737395U, + 0xc06060a0U, 0x19818198U, 0x9e4f4fd1U, 0xa3dcdc7fU, + 0x44222266U, 0x542a2a7eU, 0x3b9090abU, 0x0b888883U, + 0x8c4646caU, 0xc7eeee29U, 0x6bb8b8d3U, 0x2814143cU, + 0xa7dede79U, 0xbc5e5ee2U, 0x160b0b1dU, 0xaddbdb76U, + 0xdbe0e03bU, 0x64323256U, 0x743a3a4eU, 0x140a0a1eU, + 0x924949dbU, 0x0c06060aU, 0x4824246cU, 0xb85c5ce4U, + 0x9fc2c25dU, 0xbdd3d36eU, 0x43acacefU, 0xc46262a6U, + 0x399191a8U, 0x319595a4U, 0xd3e4e437U, 0xf279798bU, + 0xd5e7e732U, 0x8bc8c843U, 0x6e373759U, 0xda6d6db7U, + 0x018d8d8cU, 0xb1d5d564U, 0x9c4e4ed2U, 0x49a9a9e0U, + 0xd86c6cb4U, 0xac5656faU, 0xf3f4f407U, 0xcfeaea25U, + 0xca6565afU, 0xf47a7a8eU, 0x47aeaee9U, 0x10080818U, + 0x6fbabad5U, 0xf0787888U, 0x4a25256fU, 0x5c2e2e72U, + 0x381c1c24U, 0x57a6a6f1U, 0x73b4b4c7U, 0x97c6c651U, + 0xcbe8e823U, 0xa1dddd7cU, 0xe874749cU, 0x3e1f1f21U, + 0x964b4bddU, 0x61bdbddcU, 0x0d8b8b86U, 0x0f8a8a85U, + 0xe0707090U, 0x7c3e3e42U, 0x71b5b5c4U, 0xcc6666aaU, + 0x904848d8U, 0x06030305U, 0xf7f6f601U, 0x1c0e0e12U, + 0xc26161a3U, 0x6a35355fU, 0xae5757f9U, 0x69b9b9d0U, + 0x17868691U, 0x99c1c158U, 0x3a1d1d27U, 0x279e9eb9U, + 0xd9e1e138U, 0xebf8f813U, 0x2b9898b3U, 0x22111133U, + 0xd26969bbU, 0xa9d9d970U, 0x078e8e89U, 0x339494a7U, + 0x2d9b9bb6U, 0x3c1e1e22U, 0x15878792U, 0xc9e9e920U, + 0x87cece49U, 0xaa5555ffU, 0x50282878U, 0xa5dfdf7aU, + 0x038c8c8fU, 0x59a1a1f8U, 0x09898980U, 0x1a0d0d17U, + 0x65bfbfdaU, 0xd7e6e631U, 0x844242c6U, 0xd06868b8U, + 0x824141c3U, 0x299999b0U, 0x5a2d2d77U, 0x1e0f0f11U, + 0x7bb0b0cbU, 0xa85454fcU, 0x6dbbbbd6U, 0x2c16163aU, +}; +static const u32 Te1[256] = { + 0xa5c66363U, 0x84f87c7cU, 0x99ee7777U, 0x8df67b7bU, + 0x0dfff2f2U, 0xbdd66b6bU, 0xb1de6f6fU, 0x5491c5c5U, + 0x50603030U, 0x03020101U, 0xa9ce6767U, 0x7d562b2bU, + 0x19e7fefeU, 0x62b5d7d7U, 0xe64dababU, 0x9aec7676U, + 0x458fcacaU, 0x9d1f8282U, 0x4089c9c9U, 0x87fa7d7dU, + 0x15effafaU, 0xebb25959U, 0xc98e4747U, 0x0bfbf0f0U, + 0xec41adadU, 0x67b3d4d4U, 0xfd5fa2a2U, 0xea45afafU, + 0xbf239c9cU, 0xf753a4a4U, 0x96e47272U, 0x5b9bc0c0U, + 0xc275b7b7U, 0x1ce1fdfdU, 0xae3d9393U, 0x6a4c2626U, + 0x5a6c3636U, 0x417e3f3fU, 0x02f5f7f7U, 0x4f83ccccU, + 0x5c683434U, 0xf451a5a5U, 0x34d1e5e5U, 0x08f9f1f1U, + 0x93e27171U, 0x73abd8d8U, 0x53623131U, 0x3f2a1515U, + 0x0c080404U, 0x5295c7c7U, 0x65462323U, 0x5e9dc3c3U, + 0x28301818U, 0xa1379696U, 0x0f0a0505U, 0xb52f9a9aU, + 0x090e0707U, 0x36241212U, 0x9b1b8080U, 0x3ddfe2e2U, + 0x26cdebebU, 0x694e2727U, 0xcd7fb2b2U, 0x9fea7575U, + 0x1b120909U, 0x9e1d8383U, 0x74582c2cU, 0x2e341a1aU, + 0x2d361b1bU, 0xb2dc6e6eU, 0xeeb45a5aU, 0xfb5ba0a0U, + 0xf6a45252U, 0x4d763b3bU, 0x61b7d6d6U, 0xce7db3b3U, + 0x7b522929U, 0x3edde3e3U, 0x715e2f2fU, 0x97138484U, + 0xf5a65353U, 0x68b9d1d1U, 0x00000000U, 0x2cc1ededU, + 0x60402020U, 0x1fe3fcfcU, 0xc879b1b1U, 0xedb65b5bU, + 0xbed46a6aU, 0x468dcbcbU, 0xd967bebeU, 0x4b723939U, + 0xde944a4aU, 0xd4984c4cU, 0xe8b05858U, 0x4a85cfcfU, + 0x6bbbd0d0U, 0x2ac5efefU, 0xe54faaaaU, 0x16edfbfbU, + 0xc5864343U, 0xd79a4d4dU, 0x55663333U, 0x94118585U, + 0xcf8a4545U, 0x10e9f9f9U, 0x06040202U, 0x81fe7f7fU, + 0xf0a05050U, 0x44783c3cU, 0xba259f9fU, 0xe34ba8a8U, + 0xf3a25151U, 0xfe5da3a3U, 0xc0804040U, 0x8a058f8fU, + 0xad3f9292U, 0xbc219d9dU, 0x48703838U, 0x04f1f5f5U, + 0xdf63bcbcU, 0xc177b6b6U, 0x75afdadaU, 0x63422121U, + 0x30201010U, 0x1ae5ffffU, 0x0efdf3f3U, 0x6dbfd2d2U, + 0x4c81cdcdU, 0x14180c0cU, 0x35261313U, 0x2fc3ececU, + 0xe1be5f5fU, 0xa2359797U, 0xcc884444U, 0x392e1717U, + 0x5793c4c4U, 0xf255a7a7U, 0x82fc7e7eU, 0x477a3d3dU, + 0xacc86464U, 0xe7ba5d5dU, 0x2b321919U, 0x95e67373U, + 0xa0c06060U, 0x98198181U, 0xd19e4f4fU, 0x7fa3dcdcU, + 0x66442222U, 0x7e542a2aU, 0xab3b9090U, 0x830b8888U, + 0xca8c4646U, 0x29c7eeeeU, 0xd36bb8b8U, 0x3c281414U, + 0x79a7dedeU, 0xe2bc5e5eU, 0x1d160b0bU, 0x76addbdbU, + 0x3bdbe0e0U, 0x56643232U, 0x4e743a3aU, 0x1e140a0aU, + 0xdb924949U, 0x0a0c0606U, 0x6c482424U, 0xe4b85c5cU, + 0x5d9fc2c2U, 0x6ebdd3d3U, 0xef43acacU, 0xa6c46262U, + 0xa8399191U, 0xa4319595U, 0x37d3e4e4U, 0x8bf27979U, + 0x32d5e7e7U, 0x438bc8c8U, 0x596e3737U, 0xb7da6d6dU, + 0x8c018d8dU, 0x64b1d5d5U, 0xd29c4e4eU, 0xe049a9a9U, + 0xb4d86c6cU, 0xfaac5656U, 0x07f3f4f4U, 0x25cfeaeaU, + 0xafca6565U, 0x8ef47a7aU, 0xe947aeaeU, 0x18100808U, + 0xd56fbabaU, 0x88f07878U, 0x6f4a2525U, 0x725c2e2eU, + 0x24381c1cU, 0xf157a6a6U, 0xc773b4b4U, 0x5197c6c6U, + 0x23cbe8e8U, 0x7ca1ddddU, 0x9ce87474U, 0x213e1f1fU, + 0xdd964b4bU, 0xdc61bdbdU, 0x860d8b8bU, 0x850f8a8aU, + 0x90e07070U, 0x427c3e3eU, 0xc471b5b5U, 0xaacc6666U, + 0xd8904848U, 0x05060303U, 0x01f7f6f6U, 0x121c0e0eU, + 0xa3c26161U, 0x5f6a3535U, 0xf9ae5757U, 0xd069b9b9U, + 0x91178686U, 0x5899c1c1U, 0x273a1d1dU, 0xb9279e9eU, + 0x38d9e1e1U, 0x13ebf8f8U, 0xb32b9898U, 0x33221111U, + 0xbbd26969U, 0x70a9d9d9U, 0x89078e8eU, 0xa7339494U, + 0xb62d9b9bU, 0x223c1e1eU, 0x92158787U, 0x20c9e9e9U, + 0x4987ceceU, 0xffaa5555U, 0x78502828U, 0x7aa5dfdfU, + 0x8f038c8cU, 0xf859a1a1U, 0x80098989U, 0x171a0d0dU, + 0xda65bfbfU, 0x31d7e6e6U, 0xc6844242U, 0xb8d06868U, + 0xc3824141U, 0xb0299999U, 0x775a2d2dU, 0x111e0f0fU, + 0xcb7bb0b0U, 0xfca85454U, 0xd66dbbbbU, 0x3a2c1616U, +}; +static const u32 Te2[256] = { + 0x63a5c663U, 0x7c84f87cU, 0x7799ee77U, 0x7b8df67bU, + 0xf20dfff2U, 0x6bbdd66bU, 0x6fb1de6fU, 0xc55491c5U, + 0x30506030U, 0x01030201U, 0x67a9ce67U, 0x2b7d562bU, + 0xfe19e7feU, 0xd762b5d7U, 0xabe64dabU, 0x769aec76U, + 0xca458fcaU, 0x829d1f82U, 0xc94089c9U, 0x7d87fa7dU, + 0xfa15effaU, 0x59ebb259U, 0x47c98e47U, 0xf00bfbf0U, + 0xadec41adU, 0xd467b3d4U, 0xa2fd5fa2U, 0xafea45afU, + 0x9cbf239cU, 0xa4f753a4U, 0x7296e472U, 0xc05b9bc0U, + 0xb7c275b7U, 0xfd1ce1fdU, 0x93ae3d93U, 0x266a4c26U, + 0x365a6c36U, 0x3f417e3fU, 0xf702f5f7U, 0xcc4f83ccU, + 0x345c6834U, 0xa5f451a5U, 0xe534d1e5U, 0xf108f9f1U, + 0x7193e271U, 0xd873abd8U, 0x31536231U, 0x153f2a15U, + 0x040c0804U, 0xc75295c7U, 0x23654623U, 0xc35e9dc3U, + 0x18283018U, 0x96a13796U, 0x050f0a05U, 0x9ab52f9aU, + 0x07090e07U, 0x12362412U, 0x809b1b80U, 0xe23ddfe2U, + 0xeb26cdebU, 0x27694e27U, 0xb2cd7fb2U, 0x759fea75U, + 0x091b1209U, 0x839e1d83U, 0x2c74582cU, 0x1a2e341aU, + 0x1b2d361bU, 0x6eb2dc6eU, 0x5aeeb45aU, 0xa0fb5ba0U, + 0x52f6a452U, 0x3b4d763bU, 0xd661b7d6U, 0xb3ce7db3U, + 0x297b5229U, 0xe33edde3U, 0x2f715e2fU, 0x84971384U, + 0x53f5a653U, 0xd168b9d1U, 0x00000000U, 0xed2cc1edU, + 0x20604020U, 0xfc1fe3fcU, 0xb1c879b1U, 0x5bedb65bU, + 0x6abed46aU, 0xcb468dcbU, 0xbed967beU, 0x394b7239U, + 0x4ade944aU, 0x4cd4984cU, 0x58e8b058U, 0xcf4a85cfU, + 0xd06bbbd0U, 0xef2ac5efU, 0xaae54faaU, 0xfb16edfbU, + 0x43c58643U, 0x4dd79a4dU, 0x33556633U, 0x85941185U, + 0x45cf8a45U, 0xf910e9f9U, 0x02060402U, 0x7f81fe7fU, + 0x50f0a050U, 0x3c44783cU, 0x9fba259fU, 0xa8e34ba8U, + 0x51f3a251U, 0xa3fe5da3U, 0x40c08040U, 0x8f8a058fU, + 0x92ad3f92U, 0x9dbc219dU, 0x38487038U, 0xf504f1f5U, + 0xbcdf63bcU, 0xb6c177b6U, 0xda75afdaU, 0x21634221U, + 0x10302010U, 0xff1ae5ffU, 0xf30efdf3U, 0xd26dbfd2U, + 0xcd4c81cdU, 0x0c14180cU, 0x13352613U, 0xec2fc3ecU, + 0x5fe1be5fU, 0x97a23597U, 0x44cc8844U, 0x17392e17U, + 0xc45793c4U, 0xa7f255a7U, 0x7e82fc7eU, 0x3d477a3dU, + 0x64acc864U, 0x5de7ba5dU, 0x192b3219U, 0x7395e673U, + 0x60a0c060U, 0x81981981U, 0x4fd19e4fU, 0xdc7fa3dcU, + 0x22664422U, 0x2a7e542aU, 0x90ab3b90U, 0x88830b88U, + 0x46ca8c46U, 0xee29c7eeU, 0xb8d36bb8U, 0x143c2814U, + 0xde79a7deU, 0x5ee2bc5eU, 0x0b1d160bU, 0xdb76addbU, + 0xe03bdbe0U, 0x32566432U, 0x3a4e743aU, 0x0a1e140aU, + 0x49db9249U, 0x060a0c06U, 0x246c4824U, 0x5ce4b85cU, + 0xc25d9fc2U, 0xd36ebdd3U, 0xacef43acU, 0x62a6c462U, + 0x91a83991U, 0x95a43195U, 0xe437d3e4U, 0x798bf279U, + 0xe732d5e7U, 0xc8438bc8U, 0x37596e37U, 0x6db7da6dU, + 0x8d8c018dU, 0xd564b1d5U, 0x4ed29c4eU, 0xa9e049a9U, + 0x6cb4d86cU, 0x56faac56U, 0xf407f3f4U, 0xea25cfeaU, + 0x65afca65U, 0x7a8ef47aU, 0xaee947aeU, 0x08181008U, + 0xbad56fbaU, 0x7888f078U, 0x256f4a25U, 0x2e725c2eU, + 0x1c24381cU, 0xa6f157a6U, 0xb4c773b4U, 0xc65197c6U, + 0xe823cbe8U, 0xdd7ca1ddU, 0x749ce874U, 0x1f213e1fU, + 0x4bdd964bU, 0xbddc61bdU, 0x8b860d8bU, 0x8a850f8aU, + 0x7090e070U, 0x3e427c3eU, 0xb5c471b5U, 0x66aacc66U, + 0x48d89048U, 0x03050603U, 0xf601f7f6U, 0x0e121c0eU, + 0x61a3c261U, 0x355f6a35U, 0x57f9ae57U, 0xb9d069b9U, + 0x86911786U, 0xc15899c1U, 0x1d273a1dU, 0x9eb9279eU, + 0xe138d9e1U, 0xf813ebf8U, 0x98b32b98U, 0x11332211U, + 0x69bbd269U, 0xd970a9d9U, 0x8e89078eU, 0x94a73394U, + 0x9bb62d9bU, 0x1e223c1eU, 0x87921587U, 0xe920c9e9U, + 0xce4987ceU, 0x55ffaa55U, 0x28785028U, 0xdf7aa5dfU, + 0x8c8f038cU, 0xa1f859a1U, 0x89800989U, 0x0d171a0dU, + 0xbfda65bfU, 0xe631d7e6U, 0x42c68442U, 0x68b8d068U, + 0x41c38241U, 0x99b02999U, 0x2d775a2dU, 0x0f111e0fU, + 0xb0cb7bb0U, 0x54fca854U, 0xbbd66dbbU, 0x163a2c16U, +}; +static const u32 Te3[256] = { + + 0x6363a5c6U, 0x7c7c84f8U, 0x777799eeU, 0x7b7b8df6U, + 0xf2f20dffU, 0x6b6bbdd6U, 0x6f6fb1deU, 0xc5c55491U, + 0x30305060U, 0x01010302U, 0x6767a9ceU, 0x2b2b7d56U, + 0xfefe19e7U, 0xd7d762b5U, 0xababe64dU, 0x76769aecU, + 0xcaca458fU, 0x82829d1fU, 0xc9c94089U, 0x7d7d87faU, + 0xfafa15efU, 0x5959ebb2U, 0x4747c98eU, 0xf0f00bfbU, + 0xadadec41U, 0xd4d467b3U, 0xa2a2fd5fU, 0xafafea45U, + 0x9c9cbf23U, 0xa4a4f753U, 0x727296e4U, 0xc0c05b9bU, + 0xb7b7c275U, 0xfdfd1ce1U, 0x9393ae3dU, 0x26266a4cU, + 0x36365a6cU, 0x3f3f417eU, 0xf7f702f5U, 0xcccc4f83U, + 0x34345c68U, 0xa5a5f451U, 0xe5e534d1U, 0xf1f108f9U, + 0x717193e2U, 0xd8d873abU, 0x31315362U, 0x15153f2aU, + 0x04040c08U, 0xc7c75295U, 0x23236546U, 0xc3c35e9dU, + 0x18182830U, 0x9696a137U, 0x05050f0aU, 0x9a9ab52fU, + 0x0707090eU, 0x12123624U, 0x80809b1bU, 0xe2e23ddfU, + 0xebeb26cdU, 0x2727694eU, 0xb2b2cd7fU, 0x75759feaU, + 0x09091b12U, 0x83839e1dU, 0x2c2c7458U, 0x1a1a2e34U, + 0x1b1b2d36U, 0x6e6eb2dcU, 0x5a5aeeb4U, 0xa0a0fb5bU, + 0x5252f6a4U, 0x3b3b4d76U, 0xd6d661b7U, 0xb3b3ce7dU, + 0x29297b52U, 0xe3e33eddU, 0x2f2f715eU, 0x84849713U, + 0x5353f5a6U, 0xd1d168b9U, 0x00000000U, 0xeded2cc1U, + 0x20206040U, 0xfcfc1fe3U, 0xb1b1c879U, 0x5b5bedb6U, + 0x6a6abed4U, 0xcbcb468dU, 0xbebed967U, 0x39394b72U, + 0x4a4ade94U, 0x4c4cd498U, 0x5858e8b0U, 0xcfcf4a85U, + 0xd0d06bbbU, 0xefef2ac5U, 0xaaaae54fU, 0xfbfb16edU, + 0x4343c586U, 0x4d4dd79aU, 0x33335566U, 0x85859411U, + 0x4545cf8aU, 0xf9f910e9U, 0x02020604U, 0x7f7f81feU, + 0x5050f0a0U, 0x3c3c4478U, 0x9f9fba25U, 0xa8a8e34bU, + 0x5151f3a2U, 0xa3a3fe5dU, 0x4040c080U, 0x8f8f8a05U, + 0x9292ad3fU, 0x9d9dbc21U, 0x38384870U, 0xf5f504f1U, + 0xbcbcdf63U, 0xb6b6c177U, 0xdada75afU, 0x21216342U, + 0x10103020U, 0xffff1ae5U, 0xf3f30efdU, 0xd2d26dbfU, + 0xcdcd4c81U, 0x0c0c1418U, 0x13133526U, 0xecec2fc3U, + 0x5f5fe1beU, 0x9797a235U, 0x4444cc88U, 0x1717392eU, + 0xc4c45793U, 0xa7a7f255U, 0x7e7e82fcU, 0x3d3d477aU, + 0x6464acc8U, 0x5d5de7baU, 0x19192b32U, 0x737395e6U, + 0x6060a0c0U, 0x81819819U, 0x4f4fd19eU, 0xdcdc7fa3U, + 0x22226644U, 0x2a2a7e54U, 0x9090ab3bU, 0x8888830bU, + 0x4646ca8cU, 0xeeee29c7U, 0xb8b8d36bU, 0x14143c28U, + 0xdede79a7U, 0x5e5ee2bcU, 0x0b0b1d16U, 0xdbdb76adU, + 0xe0e03bdbU, 0x32325664U, 0x3a3a4e74U, 0x0a0a1e14U, + 0x4949db92U, 0x06060a0cU, 0x24246c48U, 0x5c5ce4b8U, + 0xc2c25d9fU, 0xd3d36ebdU, 0xacacef43U, 0x6262a6c4U, + 0x9191a839U, 0x9595a431U, 0xe4e437d3U, 0x79798bf2U, + 0xe7e732d5U, 0xc8c8438bU, 0x3737596eU, 0x6d6db7daU, + 0x8d8d8c01U, 0xd5d564b1U, 0x4e4ed29cU, 0xa9a9e049U, + 0x6c6cb4d8U, 0x5656faacU, 0xf4f407f3U, 0xeaea25cfU, + 0x6565afcaU, 0x7a7a8ef4U, 0xaeaee947U, 0x08081810U, + 0xbabad56fU, 0x787888f0U, 0x25256f4aU, 0x2e2e725cU, + 0x1c1c2438U, 0xa6a6f157U, 0xb4b4c773U, 0xc6c65197U, + 0xe8e823cbU, 0xdddd7ca1U, 0x74749ce8U, 0x1f1f213eU, + 0x4b4bdd96U, 0xbdbddc61U, 0x8b8b860dU, 0x8a8a850fU, + 0x707090e0U, 0x3e3e427cU, 0xb5b5c471U, 0x6666aaccU, + 0x4848d890U, 0x03030506U, 0xf6f601f7U, 0x0e0e121cU, + 0x6161a3c2U, 0x35355f6aU, 0x5757f9aeU, 0xb9b9d069U, + 0x86869117U, 0xc1c15899U, 0x1d1d273aU, 0x9e9eb927U, + 0xe1e138d9U, 0xf8f813ebU, 0x9898b32bU, 0x11113322U, + 0x6969bbd2U, 0xd9d970a9U, 0x8e8e8907U, 0x9494a733U, + 0x9b9bb62dU, 0x1e1e223cU, 0x87879215U, 0xe9e920c9U, + 0xcece4987U, 0x5555ffaaU, 0x28287850U, 0xdfdf7aa5U, + 0x8c8c8f03U, 0xa1a1f859U, 0x89898009U, 0x0d0d171aU, + 0xbfbfda65U, 0xe6e631d7U, 0x4242c684U, 0x6868b8d0U, + 0x4141c382U, 0x9999b029U, 0x2d2d775aU, 0x0f0f111eU, + 0xb0b0cb7bU, 0x5454fca8U, 0xbbbbd66dU, 0x16163a2cU, +}; +static const u32 Te4[256] = { + 0x63636363U, 0x7c7c7c7cU, 0x77777777U, 0x7b7b7b7bU, + 0xf2f2f2f2U, 0x6b6b6b6bU, 0x6f6f6f6fU, 0xc5c5c5c5U, + 0x30303030U, 0x01010101U, 0x67676767U, 0x2b2b2b2bU, + 0xfefefefeU, 0xd7d7d7d7U, 0xababababU, 0x76767676U, + 0xcacacacaU, 0x82828282U, 0xc9c9c9c9U, 0x7d7d7d7dU, + 0xfafafafaU, 0x59595959U, 0x47474747U, 0xf0f0f0f0U, + 0xadadadadU, 0xd4d4d4d4U, 0xa2a2a2a2U, 0xafafafafU, + 0x9c9c9c9cU, 0xa4a4a4a4U, 0x72727272U, 0xc0c0c0c0U, + 0xb7b7b7b7U, 0xfdfdfdfdU, 0x93939393U, 0x26262626U, + 0x36363636U, 0x3f3f3f3fU, 0xf7f7f7f7U, 0xccccccccU, + 0x34343434U, 0xa5a5a5a5U, 0xe5e5e5e5U, 0xf1f1f1f1U, + 0x71717171U, 0xd8d8d8d8U, 0x31313131U, 0x15151515U, + 0x04040404U, 0xc7c7c7c7U, 0x23232323U, 0xc3c3c3c3U, + 0x18181818U, 0x96969696U, 0x05050505U, 0x9a9a9a9aU, + 0x07070707U, 0x12121212U, 0x80808080U, 0xe2e2e2e2U, + 0xebebebebU, 0x27272727U, 0xb2b2b2b2U, 0x75757575U, + 0x09090909U, 0x83838383U, 0x2c2c2c2cU, 0x1a1a1a1aU, + 0x1b1b1b1bU, 0x6e6e6e6eU, 0x5a5a5a5aU, 0xa0a0a0a0U, + 0x52525252U, 0x3b3b3b3bU, 0xd6d6d6d6U, 0xb3b3b3b3U, + 0x29292929U, 0xe3e3e3e3U, 0x2f2f2f2fU, 0x84848484U, + 0x53535353U, 0xd1d1d1d1U, 0x00000000U, 0xededededU, + 0x20202020U, 0xfcfcfcfcU, 0xb1b1b1b1U, 0x5b5b5b5bU, + 0x6a6a6a6aU, 0xcbcbcbcbU, 0xbebebebeU, 0x39393939U, + 0x4a4a4a4aU, 0x4c4c4c4cU, 0x58585858U, 0xcfcfcfcfU, + 0xd0d0d0d0U, 0xefefefefU, 0xaaaaaaaaU, 0xfbfbfbfbU, + 0x43434343U, 0x4d4d4d4dU, 0x33333333U, 0x85858585U, + 0x45454545U, 0xf9f9f9f9U, 0x02020202U, 0x7f7f7f7fU, + 0x50505050U, 0x3c3c3c3cU, 0x9f9f9f9fU, 0xa8a8a8a8U, + 0x51515151U, 0xa3a3a3a3U, 0x40404040U, 0x8f8f8f8fU, + 0x92929292U, 0x9d9d9d9dU, 0x38383838U, 0xf5f5f5f5U, + 0xbcbcbcbcU, 0xb6b6b6b6U, 0xdadadadaU, 0x21212121U, + 0x10101010U, 0xffffffffU, 0xf3f3f3f3U, 0xd2d2d2d2U, + 0xcdcdcdcdU, 0x0c0c0c0cU, 0x13131313U, 0xececececU, + 0x5f5f5f5fU, 0x97979797U, 0x44444444U, 0x17171717U, + 0xc4c4c4c4U, 0xa7a7a7a7U, 0x7e7e7e7eU, 0x3d3d3d3dU, + 0x64646464U, 0x5d5d5d5dU, 0x19191919U, 0x73737373U, + 0x60606060U, 0x81818181U, 0x4f4f4f4fU, 0xdcdcdcdcU, + 0x22222222U, 0x2a2a2a2aU, 0x90909090U, 0x88888888U, + 0x46464646U, 0xeeeeeeeeU, 0xb8b8b8b8U, 0x14141414U, + 0xdedededeU, 0x5e5e5e5eU, 0x0b0b0b0bU, 0xdbdbdbdbU, + 0xe0e0e0e0U, 0x32323232U, 0x3a3a3a3aU, 0x0a0a0a0aU, + 0x49494949U, 0x06060606U, 0x24242424U, 0x5c5c5c5cU, + 0xc2c2c2c2U, 0xd3d3d3d3U, 0xacacacacU, 0x62626262U, + 0x91919191U, 0x95959595U, 0xe4e4e4e4U, 0x79797979U, + 0xe7e7e7e7U, 0xc8c8c8c8U, 0x37373737U, 0x6d6d6d6dU, + 0x8d8d8d8dU, 0xd5d5d5d5U, 0x4e4e4e4eU, 0xa9a9a9a9U, + 0x6c6c6c6cU, 0x56565656U, 0xf4f4f4f4U, 0xeaeaeaeaU, + 0x65656565U, 0x7a7a7a7aU, 0xaeaeaeaeU, 0x08080808U, + 0xbabababaU, 0x78787878U, 0x25252525U, 0x2e2e2e2eU, + 0x1c1c1c1cU, 0xa6a6a6a6U, 0xb4b4b4b4U, 0xc6c6c6c6U, + 0xe8e8e8e8U, 0xddddddddU, 0x74747474U, 0x1f1f1f1fU, + 0x4b4b4b4bU, 0xbdbdbdbdU, 0x8b8b8b8bU, 0x8a8a8a8aU, + 0x70707070U, 0x3e3e3e3eU, 0xb5b5b5b5U, 0x66666666U, + 0x48484848U, 0x03030303U, 0xf6f6f6f6U, 0x0e0e0e0eU, + 0x61616161U, 0x35353535U, 0x57575757U, 0xb9b9b9b9U, + 0x86868686U, 0xc1c1c1c1U, 0x1d1d1d1dU, 0x9e9e9e9eU, + 0xe1e1e1e1U, 0xf8f8f8f8U, 0x98989898U, 0x11111111U, + 0x69696969U, 0xd9d9d9d9U, 0x8e8e8e8eU, 0x94949494U, + 0x9b9b9b9bU, 0x1e1e1e1eU, 0x87878787U, 0xe9e9e9e9U, + 0xcecececeU, 0x55555555U, 0x28282828U, 0xdfdfdfdfU, + 0x8c8c8c8cU, 0xa1a1a1a1U, 0x89898989U, 0x0d0d0d0dU, + 0xbfbfbfbfU, 0xe6e6e6e6U, 0x42424242U, 0x68686868U, + 0x41414141U, 0x99999999U, 0x2d2d2d2dU, 0x0f0f0f0fU, + 0xb0b0b0b0U, 0x54545454U, 0xbbbbbbbbU, 0x16161616U, +}; +static const u32 Td0[256] = { + 0x51f4a750U, 0x7e416553U, 0x1a17a4c3U, 0x3a275e96U, + 0x3bab6bcbU, 0x1f9d45f1U, 0xacfa58abU, 0x4be30393U, + 0x2030fa55U, 0xad766df6U, 0x88cc7691U, 0xf5024c25U, + 0x4fe5d7fcU, 0xc52acbd7U, 0x26354480U, 0xb562a38fU, + 0xdeb15a49U, 0x25ba1b67U, 0x45ea0e98U, 0x5dfec0e1U, + 0xc32f7502U, 0x814cf012U, 0x8d4697a3U, 0x6bd3f9c6U, + 0x038f5fe7U, 0x15929c95U, 0xbf6d7aebU, 0x955259daU, + 0xd4be832dU, 0x587421d3U, 0x49e06929U, 0x8ec9c844U, + 0x75c2896aU, 0xf48e7978U, 0x99583e6bU, 0x27b971ddU, + 0xbee14fb6U, 0xf088ad17U, 0xc920ac66U, 0x7dce3ab4U, + 0x63df4a18U, 0xe51a3182U, 0x97513360U, 0x62537f45U, + 0xb16477e0U, 0xbb6bae84U, 0xfe81a01cU, 0xf9082b94U, + 0x70486858U, 0x8f45fd19U, 0x94de6c87U, 0x527bf8b7U, + 0xab73d323U, 0x724b02e2U, 0xe31f8f57U, 0x6655ab2aU, + 0xb2eb2807U, 0x2fb5c203U, 0x86c57b9aU, 0xd33708a5U, + 0x302887f2U, 0x23bfa5b2U, 0x02036abaU, 0xed16825cU, + 0x8acf1c2bU, 0xa779b492U, 0xf307f2f0U, 0x4e69e2a1U, + 0x65daf4cdU, 0x0605bed5U, 0xd134621fU, 0xc4a6fe8aU, + 0x342e539dU, 0xa2f355a0U, 0x058ae132U, 0xa4f6eb75U, + 0x0b83ec39U, 0x4060efaaU, 0x5e719f06U, 0xbd6e1051U, + 0x3e218af9U, 0x96dd063dU, 0xdd3e05aeU, 0x4de6bd46U, + 0x91548db5U, 0x71c45d05U, 0x0406d46fU, 0x605015ffU, + 0x1998fb24U, 0xd6bde997U, 0x894043ccU, 0x67d99e77U, + 0xb0e842bdU, 0x07898b88U, 0xe7195b38U, 0x79c8eedbU, + 0xa17c0a47U, 0x7c420fe9U, 0xf8841ec9U, 0x00000000U, + 0x09808683U, 0x322bed48U, 0x1e1170acU, 0x6c5a724eU, + 0xfd0efffbU, 0x0f853856U, 0x3daed51eU, 0x362d3927U, + 0x0a0fd964U, 0x685ca621U, 0x9b5b54d1U, 0x24362e3aU, + 0x0c0a67b1U, 0x9357e70fU, 0xb4ee96d2U, 0x1b9b919eU, + 0x80c0c54fU, 0x61dc20a2U, 0x5a774b69U, 0x1c121a16U, + 0xe293ba0aU, 0xc0a02ae5U, 0x3c22e043U, 0x121b171dU, + 0x0e090d0bU, 0xf28bc7adU, 0x2db6a8b9U, 0x141ea9c8U, + 0x57f11985U, 0xaf75074cU, 0xee99ddbbU, 0xa37f60fdU, + 0xf701269fU, 0x5c72f5bcU, 0x44663bc5U, 0x5bfb7e34U, + 0x8b432976U, 0xcb23c6dcU, 0xb6edfc68U, 0xb8e4f163U, + 0xd731dccaU, 0x42638510U, 0x13972240U, 0x84c61120U, + 0x854a247dU, 0xd2bb3df8U, 0xaef93211U, 0xc729a16dU, + 0x1d9e2f4bU, 0xdcb230f3U, 0x0d8652ecU, 0x77c1e3d0U, + 0x2bb3166cU, 0xa970b999U, 0x119448faU, 0x47e96422U, + 0xa8fc8cc4U, 0xa0f03f1aU, 0x567d2cd8U, 0x223390efU, + 0x87494ec7U, 0xd938d1c1U, 0x8ccaa2feU, 0x98d40b36U, + 0xa6f581cfU, 0xa57ade28U, 0xdab78e26U, 0x3fadbfa4U, + 0x2c3a9de4U, 0x5078920dU, 0x6a5fcc9bU, 0x547e4662U, + 0xf68d13c2U, 0x90d8b8e8U, 0x2e39f75eU, 0x82c3aff5U, + 0x9f5d80beU, 0x69d0937cU, 0x6fd52da9U, 0xcf2512b3U, + 0xc8ac993bU, 0x10187da7U, 0xe89c636eU, 0xdb3bbb7bU, + 0xcd267809U, 0x6e5918f4U, 0xec9ab701U, 0x834f9aa8U, + 0xe6956e65U, 0xaaffe67eU, 0x21bccf08U, 0xef15e8e6U, + 0xbae79bd9U, 0x4a6f36ceU, 0xea9f09d4U, 0x29b07cd6U, + 0x31a4b2afU, 0x2a3f2331U, 0xc6a59430U, 0x35a266c0U, + 0x744ebc37U, 0xfc82caa6U, 0xe090d0b0U, 0x33a7d815U, + 0xf104984aU, 0x41ecdaf7U, 0x7fcd500eU, 0x1791f62fU, + 0x764dd68dU, 0x43efb04dU, 0xccaa4d54U, 0xe49604dfU, + 0x9ed1b5e3U, 0x4c6a881bU, 0xc12c1fb8U, 0x4665517fU, + 0x9d5eea04U, 0x018c355dU, 0xfa877473U, 0xfb0b412eU, + 0xb3671d5aU, 0x92dbd252U, 0xe9105633U, 0x6dd64713U, + 0x9ad7618cU, 0x37a10c7aU, 0x59f8148eU, 0xeb133c89U, + 0xcea927eeU, 0xb761c935U, 0xe11ce5edU, 0x7a47b13cU, + 0x9cd2df59U, 0x55f2733fU, 0x1814ce79U, 0x73c737bfU, + 0x53f7cdeaU, 0x5ffdaa5bU, 0xdf3d6f14U, 0x7844db86U, + 0xcaaff381U, 0xb968c43eU, 0x3824342cU, 0xc2a3405fU, + 0x161dc372U, 0xbce2250cU, 0x283c498bU, 0xff0d9541U, + 0x39a80171U, 0x080cb3deU, 0xd8b4e49cU, 0x6456c190U, + 0x7bcb8461U, 0xd532b670U, 0x486c5c74U, 0xd0b85742U, +}; +static const u32 Td1[256] = { + 0x5051f4a7U, 0x537e4165U, 0xc31a17a4U, 0x963a275eU, + 0xcb3bab6bU, 0xf11f9d45U, 0xabacfa58U, 0x934be303U, + 0x552030faU, 0xf6ad766dU, 0x9188cc76U, 0x25f5024cU, + 0xfc4fe5d7U, 0xd7c52acbU, 0x80263544U, 0x8fb562a3U, + 0x49deb15aU, 0x6725ba1bU, 0x9845ea0eU, 0xe15dfec0U, + 0x02c32f75U, 0x12814cf0U, 0xa38d4697U, 0xc66bd3f9U, + 0xe7038f5fU, 0x9515929cU, 0xebbf6d7aU, 0xda955259U, + 0x2dd4be83U, 0xd3587421U, 0x2949e069U, 0x448ec9c8U, + 0x6a75c289U, 0x78f48e79U, 0x6b99583eU, 0xdd27b971U, + 0xb6bee14fU, 0x17f088adU, 0x66c920acU, 0xb47dce3aU, + 0x1863df4aU, 0x82e51a31U, 0x60975133U, 0x4562537fU, + 0xe0b16477U, 0x84bb6baeU, 0x1cfe81a0U, 0x94f9082bU, + 0x58704868U, 0x198f45fdU, 0x8794de6cU, 0xb7527bf8U, + 0x23ab73d3U, 0xe2724b02U, 0x57e31f8fU, 0x2a6655abU, + 0x07b2eb28U, 0x032fb5c2U, 0x9a86c57bU, 0xa5d33708U, + 0xf2302887U, 0xb223bfa5U, 0xba02036aU, 0x5ced1682U, + 0x2b8acf1cU, 0x92a779b4U, 0xf0f307f2U, 0xa14e69e2U, + 0xcd65daf4U, 0xd50605beU, 0x1fd13462U, 0x8ac4a6feU, + 0x9d342e53U, 0xa0a2f355U, 0x32058ae1U, 0x75a4f6ebU, + 0x390b83ecU, 0xaa4060efU, 0x065e719fU, 0x51bd6e10U, + 0xf93e218aU, 0x3d96dd06U, 0xaedd3e05U, 0x464de6bdU, + 0xb591548dU, 0x0571c45dU, 0x6f0406d4U, 0xff605015U, + 0x241998fbU, 0x97d6bde9U, 0xcc894043U, 0x7767d99eU, + 0xbdb0e842U, 0x8807898bU, 0x38e7195bU, 0xdb79c8eeU, + 0x47a17c0aU, 0xe97c420fU, 0xc9f8841eU, 0x00000000U, + 0x83098086U, 0x48322bedU, 0xac1e1170U, 0x4e6c5a72U, + 0xfbfd0effU, 0x560f8538U, 0x1e3daed5U, 0x27362d39U, + 0x640a0fd9U, 0x21685ca6U, 0xd19b5b54U, 0x3a24362eU, + 0xb10c0a67U, 0x0f9357e7U, 0xd2b4ee96U, 0x9e1b9b91U, + 0x4f80c0c5U, 0xa261dc20U, 0x695a774bU, 0x161c121aU, + 0x0ae293baU, 0xe5c0a02aU, 0x433c22e0U, 0x1d121b17U, + 0x0b0e090dU, 0xadf28bc7U, 0xb92db6a8U, 0xc8141ea9U, + 0x8557f119U, 0x4caf7507U, 0xbbee99ddU, 0xfda37f60U, + 0x9ff70126U, 0xbc5c72f5U, 0xc544663bU, 0x345bfb7eU, + 0x768b4329U, 0xdccb23c6U, 0x68b6edfcU, 0x63b8e4f1U, + 0xcad731dcU, 0x10426385U, 0x40139722U, 0x2084c611U, + 0x7d854a24U, 0xf8d2bb3dU, 0x11aef932U, 0x6dc729a1U, + 0x4b1d9e2fU, 0xf3dcb230U, 0xec0d8652U, 0xd077c1e3U, + 0x6c2bb316U, 0x99a970b9U, 0xfa119448U, 0x2247e964U, + 0xc4a8fc8cU, 0x1aa0f03fU, 0xd8567d2cU, 0xef223390U, + 0xc787494eU, 0xc1d938d1U, 0xfe8ccaa2U, 0x3698d40bU, + 0xcfa6f581U, 0x28a57adeU, 0x26dab78eU, 0xa43fadbfU, + 0xe42c3a9dU, 0x0d507892U, 0x9b6a5fccU, 0x62547e46U, + 0xc2f68d13U, 0xe890d8b8U, 0x5e2e39f7U, 0xf582c3afU, + 0xbe9f5d80U, 0x7c69d093U, 0xa96fd52dU, 0xb3cf2512U, + 0x3bc8ac99U, 0xa710187dU, 0x6ee89c63U, 0x7bdb3bbbU, + 0x09cd2678U, 0xf46e5918U, 0x01ec9ab7U, 0xa8834f9aU, + 0x65e6956eU, 0x7eaaffe6U, 0x0821bccfU, 0xe6ef15e8U, + 0xd9bae79bU, 0xce4a6f36U, 0xd4ea9f09U, 0xd629b07cU, + 0xaf31a4b2U, 0x312a3f23U, 0x30c6a594U, 0xc035a266U, + 0x37744ebcU, 0xa6fc82caU, 0xb0e090d0U, 0x1533a7d8U, + 0x4af10498U, 0xf741ecdaU, 0x0e7fcd50U, 0x2f1791f6U, + 0x8d764dd6U, 0x4d43efb0U, 0x54ccaa4dU, 0xdfe49604U, + 0xe39ed1b5U, 0x1b4c6a88U, 0xb8c12c1fU, 0x7f466551U, + 0x049d5eeaU, 0x5d018c35U, 0x73fa8774U, 0x2efb0b41U, + 0x5ab3671dU, 0x5292dbd2U, 0x33e91056U, 0x136dd647U, + 0x8c9ad761U, 0x7a37a10cU, 0x8e59f814U, 0x89eb133cU, + 0xeecea927U, 0x35b761c9U, 0xede11ce5U, 0x3c7a47b1U, + 0x599cd2dfU, 0x3f55f273U, 0x791814ceU, 0xbf73c737U, + 0xea53f7cdU, 0x5b5ffdaaU, 0x14df3d6fU, 0x867844dbU, + 0x81caaff3U, 0x3eb968c4U, 0x2c382434U, 0x5fc2a340U, + 0x72161dc3U, 0x0cbce225U, 0x8b283c49U, 0x41ff0d95U, + 0x7139a801U, 0xde080cb3U, 0x9cd8b4e4U, 0x906456c1U, + 0x617bcb84U, 0x70d532b6U, 0x74486c5cU, 0x42d0b857U, +}; +static const u32 Td2[256] = { + 0xa75051f4U, 0x65537e41U, 0xa4c31a17U, 0x5e963a27U, + 0x6bcb3babU, 0x45f11f9dU, 0x58abacfaU, 0x03934be3U, + 0xfa552030U, 0x6df6ad76U, 0x769188ccU, 0x4c25f502U, + 0xd7fc4fe5U, 0xcbd7c52aU, 0x44802635U, 0xa38fb562U, + 0x5a49deb1U, 0x1b6725baU, 0x0e9845eaU, 0xc0e15dfeU, + 0x7502c32fU, 0xf012814cU, 0x97a38d46U, 0xf9c66bd3U, + 0x5fe7038fU, 0x9c951592U, 0x7aebbf6dU, 0x59da9552U, + 0x832dd4beU, 0x21d35874U, 0x692949e0U, 0xc8448ec9U, + 0x896a75c2U, 0x7978f48eU, 0x3e6b9958U, 0x71dd27b9U, + 0x4fb6bee1U, 0xad17f088U, 0xac66c920U, 0x3ab47dceU, + 0x4a1863dfU, 0x3182e51aU, 0x33609751U, 0x7f456253U, + 0x77e0b164U, 0xae84bb6bU, 0xa01cfe81U, 0x2b94f908U, + 0x68587048U, 0xfd198f45U, 0x6c8794deU, 0xf8b7527bU, + 0xd323ab73U, 0x02e2724bU, 0x8f57e31fU, 0xab2a6655U, + 0x2807b2ebU, 0xc2032fb5U, 0x7b9a86c5U, 0x08a5d337U, + 0x87f23028U, 0xa5b223bfU, 0x6aba0203U, 0x825ced16U, + 0x1c2b8acfU, 0xb492a779U, 0xf2f0f307U, 0xe2a14e69U, + 0xf4cd65daU, 0xbed50605U, 0x621fd134U, 0xfe8ac4a6U, + 0x539d342eU, 0x55a0a2f3U, 0xe132058aU, 0xeb75a4f6U, + 0xec390b83U, 0xefaa4060U, 0x9f065e71U, 0x1051bd6eU, + + 0x8af93e21U, 0x063d96ddU, 0x05aedd3eU, 0xbd464de6U, + 0x8db59154U, 0x5d0571c4U, 0xd46f0406U, 0x15ff6050U, + 0xfb241998U, 0xe997d6bdU, 0x43cc8940U, 0x9e7767d9U, + 0x42bdb0e8U, 0x8b880789U, 0x5b38e719U, 0xeedb79c8U, + 0x0a47a17cU, 0x0fe97c42U, 0x1ec9f884U, 0x00000000U, + 0x86830980U, 0xed48322bU, 0x70ac1e11U, 0x724e6c5aU, + 0xfffbfd0eU, 0x38560f85U, 0xd51e3daeU, 0x3927362dU, + 0xd9640a0fU, 0xa621685cU, 0x54d19b5bU, 0x2e3a2436U, + 0x67b10c0aU, 0xe70f9357U, 0x96d2b4eeU, 0x919e1b9bU, + 0xc54f80c0U, 0x20a261dcU, 0x4b695a77U, 0x1a161c12U, + 0xba0ae293U, 0x2ae5c0a0U, 0xe0433c22U, 0x171d121bU, + 0x0d0b0e09U, 0xc7adf28bU, 0xa8b92db6U, 0xa9c8141eU, + 0x198557f1U, 0x074caf75U, 0xddbbee99U, 0x60fda37fU, + 0x269ff701U, 0xf5bc5c72U, 0x3bc54466U, 0x7e345bfbU, + 0x29768b43U, 0xc6dccb23U, 0xfc68b6edU, 0xf163b8e4U, + 0xdccad731U, 0x85104263U, 0x22401397U, 0x112084c6U, + 0x247d854aU, 0x3df8d2bbU, 0x3211aef9U, 0xa16dc729U, + 0x2f4b1d9eU, 0x30f3dcb2U, 0x52ec0d86U, 0xe3d077c1U, + 0x166c2bb3U, 0xb999a970U, 0x48fa1194U, 0x642247e9U, + 0x8cc4a8fcU, 0x3f1aa0f0U, 0x2cd8567dU, 0x90ef2233U, + 0x4ec78749U, 0xd1c1d938U, 0xa2fe8ccaU, 0x0b3698d4U, + 0x81cfa6f5U, 0xde28a57aU, 0x8e26dab7U, 0xbfa43fadU, + 0x9de42c3aU, 0x920d5078U, 0xcc9b6a5fU, 0x4662547eU, + 0x13c2f68dU, 0xb8e890d8U, 0xf75e2e39U, 0xaff582c3U, + 0x80be9f5dU, 0x937c69d0U, 0x2da96fd5U, 0x12b3cf25U, + 0x993bc8acU, 0x7da71018U, 0x636ee89cU, 0xbb7bdb3bU, + 0x7809cd26U, 0x18f46e59U, 0xb701ec9aU, 0x9aa8834fU, + 0x6e65e695U, 0xe67eaaffU, 0xcf0821bcU, 0xe8e6ef15U, + 0x9bd9bae7U, 0x36ce4a6fU, 0x09d4ea9fU, 0x7cd629b0U, + 0xb2af31a4U, 0x23312a3fU, 0x9430c6a5U, 0x66c035a2U, + 0xbc37744eU, 0xcaa6fc82U, 0xd0b0e090U, 0xd81533a7U, + 0x984af104U, 0xdaf741ecU, 0x500e7fcdU, 0xf62f1791U, + 0xd68d764dU, 0xb04d43efU, 0x4d54ccaaU, 0x04dfe496U, + 0xb5e39ed1U, 0x881b4c6aU, 0x1fb8c12cU, 0x517f4665U, + 0xea049d5eU, 0x355d018cU, 0x7473fa87U, 0x412efb0bU, + 0x1d5ab367U, 0xd25292dbU, 0x5633e910U, 0x47136dd6U, + 0x618c9ad7U, 0x0c7a37a1U, 0x148e59f8U, 0x3c89eb13U, + 0x27eecea9U, 0xc935b761U, 0xe5ede11cU, 0xb13c7a47U, + 0xdf599cd2U, 0x733f55f2U, 0xce791814U, 0x37bf73c7U, + 0xcdea53f7U, 0xaa5b5ffdU, 0x6f14df3dU, 0xdb867844U, + 0xf381caafU, 0xc43eb968U, 0x342c3824U, 0x405fc2a3U, + 0xc372161dU, 0x250cbce2U, 0x498b283cU, 0x9541ff0dU, + 0x017139a8U, 0xb3de080cU, 0xe49cd8b4U, 0xc1906456U, + 0x84617bcbU, 0xb670d532U, 0x5c74486cU, 0x5742d0b8U, +}; +static const u32 Td3[256] = { + 0xf4a75051U, 0x4165537eU, 0x17a4c31aU, 0x275e963aU, + 0xab6bcb3bU, 0x9d45f11fU, 0xfa58abacU, 0xe303934bU, + 0x30fa5520U, 0x766df6adU, 0xcc769188U, 0x024c25f5U, + 0xe5d7fc4fU, 0x2acbd7c5U, 0x35448026U, 0x62a38fb5U, + 0xb15a49deU, 0xba1b6725U, 0xea0e9845U, 0xfec0e15dU, + 0x2f7502c3U, 0x4cf01281U, 0x4697a38dU, 0xd3f9c66bU, + 0x8f5fe703U, 0x929c9515U, 0x6d7aebbfU, 0x5259da95U, + 0xbe832dd4U, 0x7421d358U, 0xe0692949U, 0xc9c8448eU, + 0xc2896a75U, 0x8e7978f4U, 0x583e6b99U, 0xb971dd27U, + 0xe14fb6beU, 0x88ad17f0U, 0x20ac66c9U, 0xce3ab47dU, + 0xdf4a1863U, 0x1a3182e5U, 0x51336097U, 0x537f4562U, + 0x6477e0b1U, 0x6bae84bbU, 0x81a01cfeU, 0x082b94f9U, + 0x48685870U, 0x45fd198fU, 0xde6c8794U, 0x7bf8b752U, + 0x73d323abU, 0x4b02e272U, 0x1f8f57e3U, 0x55ab2a66U, + 0xeb2807b2U, 0xb5c2032fU, 0xc57b9a86U, 0x3708a5d3U, + 0x2887f230U, 0xbfa5b223U, 0x036aba02U, 0x16825cedU, + 0xcf1c2b8aU, 0x79b492a7U, 0x07f2f0f3U, 0x69e2a14eU, + 0xdaf4cd65U, 0x05bed506U, 0x34621fd1U, 0xa6fe8ac4U, + 0x2e539d34U, 0xf355a0a2U, 0x8ae13205U, 0xf6eb75a4U, + 0x83ec390bU, 0x60efaa40U, 0x719f065eU, 0x6e1051bdU, + 0x218af93eU, 0xdd063d96U, 0x3e05aeddU, 0xe6bd464dU, + 0x548db591U, 0xc45d0571U, 0x06d46f04U, 0x5015ff60U, + 0x98fb2419U, 0xbde997d6U, 0x4043cc89U, 0xd99e7767U, + 0xe842bdb0U, 0x898b8807U, 0x195b38e7U, 0xc8eedb79U, + 0x7c0a47a1U, 0x420fe97cU, 0x841ec9f8U, 0x00000000U, + 0x80868309U, 0x2bed4832U, 0x1170ac1eU, 0x5a724e6cU, + 0x0efffbfdU, 0x8538560fU, 0xaed51e3dU, 0x2d392736U, + 0x0fd9640aU, 0x5ca62168U, 0x5b54d19bU, 0x362e3a24U, + 0x0a67b10cU, 0x57e70f93U, 0xee96d2b4U, 0x9b919e1bU, + 0xc0c54f80U, 0xdc20a261U, 0x774b695aU, 0x121a161cU, + 0x93ba0ae2U, 0xa02ae5c0U, 0x22e0433cU, 0x1b171d12U, + 0x090d0b0eU, 0x8bc7adf2U, 0xb6a8b92dU, 0x1ea9c814U, + 0xf1198557U, 0x75074cafU, 0x99ddbbeeU, 0x7f60fda3U, + 0x01269ff7U, 0x72f5bc5cU, 0x663bc544U, 0xfb7e345bU, + 0x4329768bU, 0x23c6dccbU, 0xedfc68b6U, 0xe4f163b8U, + 0x31dccad7U, 0x63851042U, 0x97224013U, 0xc6112084U, + 0x4a247d85U, 0xbb3df8d2U, 0xf93211aeU, 0x29a16dc7U, + 0x9e2f4b1dU, 0xb230f3dcU, 0x8652ec0dU, 0xc1e3d077U, + 0xb3166c2bU, 0x70b999a9U, 0x9448fa11U, 0xe9642247U, + 0xfc8cc4a8U, 0xf03f1aa0U, 0x7d2cd856U, 0x3390ef22U, + 0x494ec787U, 0x38d1c1d9U, 0xcaa2fe8cU, 0xd40b3698U, + 0xf581cfa6U, 0x7ade28a5U, 0xb78e26daU, 0xadbfa43fU, + 0x3a9de42cU, 0x78920d50U, 0x5fcc9b6aU, 0x7e466254U, + 0x8d13c2f6U, 0xd8b8e890U, 0x39f75e2eU, 0xc3aff582U, + 0x5d80be9fU, 0xd0937c69U, 0xd52da96fU, 0x2512b3cfU, + 0xac993bc8U, 0x187da710U, 0x9c636ee8U, 0x3bbb7bdbU, + 0x267809cdU, 0x5918f46eU, 0x9ab701ecU, 0x4f9aa883U, + 0x956e65e6U, 0xffe67eaaU, 0xbccf0821U, 0x15e8e6efU, + 0xe79bd9baU, 0x6f36ce4aU, 0x9f09d4eaU, 0xb07cd629U, + 0xa4b2af31U, 0x3f23312aU, 0xa59430c6U, 0xa266c035U, + 0x4ebc3774U, 0x82caa6fcU, 0x90d0b0e0U, 0xa7d81533U, + 0x04984af1U, 0xecdaf741U, 0xcd500e7fU, 0x91f62f17U, + 0x4dd68d76U, 0xefb04d43U, 0xaa4d54ccU, 0x9604dfe4U, + 0xd1b5e39eU, 0x6a881b4cU, 0x2c1fb8c1U, 0x65517f46U, + 0x5eea049dU, 0x8c355d01U, 0x877473faU, 0x0b412efbU, + 0x671d5ab3U, 0xdbd25292U, 0x105633e9U, 0xd647136dU, + 0xd7618c9aU, 0xa10c7a37U, 0xf8148e59U, 0x133c89ebU, + 0xa927eeceU, 0x61c935b7U, 0x1ce5ede1U, 0x47b13c7aU, + 0xd2df599cU, 0xf2733f55U, 0x14ce7918U, 0xc737bf73U, + 0xf7cdea53U, 0xfdaa5b5fU, 0x3d6f14dfU, 0x44db8678U, + 0xaff381caU, 0x68c43eb9U, 0x24342c38U, 0xa3405fc2U, + 0x1dc37216U, 0xe2250cbcU, 0x3c498b28U, 0x0d9541ffU, + 0xa8017139U, 0x0cb3de08U, 0xb4e49cd8U, 0x56c19064U, + 0xcb84617bU, 0x32b670d5U, 0x6c5c7448U, 0xb85742d0U, +}; +static const u32 Td4[256] = { + 0x52525252U, 0x09090909U, 0x6a6a6a6aU, 0xd5d5d5d5U, + 0x30303030U, 0x36363636U, 0xa5a5a5a5U, 0x38383838U, + 0xbfbfbfbfU, 0x40404040U, 0xa3a3a3a3U, 0x9e9e9e9eU, + 0x81818181U, 0xf3f3f3f3U, 0xd7d7d7d7U, 0xfbfbfbfbU, + 0x7c7c7c7cU, 0xe3e3e3e3U, 0x39393939U, 0x82828282U, + 0x9b9b9b9bU, 0x2f2f2f2fU, 0xffffffffU, 0x87878787U, + 0x34343434U, 0x8e8e8e8eU, 0x43434343U, 0x44444444U, + 0xc4c4c4c4U, 0xdedededeU, 0xe9e9e9e9U, 0xcbcbcbcbU, + 0x54545454U, 0x7b7b7b7bU, 0x94949494U, 0x32323232U, + 0xa6a6a6a6U, 0xc2c2c2c2U, 0x23232323U, 0x3d3d3d3dU, + 0xeeeeeeeeU, 0x4c4c4c4cU, 0x95959595U, 0x0b0b0b0bU, + 0x42424242U, 0xfafafafaU, 0xc3c3c3c3U, 0x4e4e4e4eU, + 0x08080808U, 0x2e2e2e2eU, 0xa1a1a1a1U, 0x66666666U, + 0x28282828U, 0xd9d9d9d9U, 0x24242424U, 0xb2b2b2b2U, + 0x76767676U, 0x5b5b5b5bU, 0xa2a2a2a2U, 0x49494949U, + 0x6d6d6d6dU, 0x8b8b8b8bU, 0xd1d1d1d1U, 0x25252525U, + 0x72727272U, 0xf8f8f8f8U, 0xf6f6f6f6U, 0x64646464U, + 0x86868686U, 0x68686868U, 0x98989898U, 0x16161616U, + 0xd4d4d4d4U, 0xa4a4a4a4U, 0x5c5c5c5cU, 0xccccccccU, + 0x5d5d5d5dU, 0x65656565U, 0xb6b6b6b6U, 0x92929292U, + 0x6c6c6c6cU, 0x70707070U, 0x48484848U, 0x50505050U, + 0xfdfdfdfdU, 0xededededU, 0xb9b9b9b9U, 0xdadadadaU, + 0x5e5e5e5eU, 0x15151515U, 0x46464646U, 0x57575757U, + 0xa7a7a7a7U, 0x8d8d8d8dU, 0x9d9d9d9dU, 0x84848484U, + 0x90909090U, 0xd8d8d8d8U, 0xababababU, 0x00000000U, + 0x8c8c8c8cU, 0xbcbcbcbcU, 0xd3d3d3d3U, 0x0a0a0a0aU, + 0xf7f7f7f7U, 0xe4e4e4e4U, 0x58585858U, 0x05050505U, + 0xb8b8b8b8U, 0xb3b3b3b3U, 0x45454545U, 0x06060606U, + 0xd0d0d0d0U, 0x2c2c2c2cU, 0x1e1e1e1eU, 0x8f8f8f8fU, + 0xcacacacaU, 0x3f3f3f3fU, 0x0f0f0f0fU, 0x02020202U, + 0xc1c1c1c1U, 0xafafafafU, 0xbdbdbdbdU, 0x03030303U, + 0x01010101U, 0x13131313U, 0x8a8a8a8aU, 0x6b6b6b6bU, + 0x3a3a3a3aU, 0x91919191U, 0x11111111U, 0x41414141U, + 0x4f4f4f4fU, 0x67676767U, 0xdcdcdcdcU, 0xeaeaeaeaU, + 0x97979797U, 0xf2f2f2f2U, 0xcfcfcfcfU, 0xcecececeU, + 0xf0f0f0f0U, 0xb4b4b4b4U, 0xe6e6e6e6U, 0x73737373U, + 0x96969696U, 0xacacacacU, 0x74747474U, 0x22222222U, + 0xe7e7e7e7U, 0xadadadadU, 0x35353535U, 0x85858585U, + 0xe2e2e2e2U, 0xf9f9f9f9U, 0x37373737U, 0xe8e8e8e8U, + 0x1c1c1c1cU, 0x75757575U, 0xdfdfdfdfU, 0x6e6e6e6eU, + 0x47474747U, 0xf1f1f1f1U, 0x1a1a1a1aU, 0x71717171U, + 0x1d1d1d1dU, 0x29292929U, 0xc5c5c5c5U, 0x89898989U, + 0x6f6f6f6fU, 0xb7b7b7b7U, 0x62626262U, 0x0e0e0e0eU, + 0xaaaaaaaaU, 0x18181818U, 0xbebebebeU, 0x1b1b1b1bU, + 0xfcfcfcfcU, 0x56565656U, 0x3e3e3e3eU, 0x4b4b4b4bU, + 0xc6c6c6c6U, 0xd2d2d2d2U, 0x79797979U, 0x20202020U, + 0x9a9a9a9aU, 0xdbdbdbdbU, 0xc0c0c0c0U, 0xfefefefeU, + 0x78787878U, 0xcdcdcdcdU, 0x5a5a5a5aU, 0xf4f4f4f4U, + 0x1f1f1f1fU, 0xddddddddU, 0xa8a8a8a8U, 0x33333333U, + 0x88888888U, 0x07070707U, 0xc7c7c7c7U, 0x31313131U, + 0xb1b1b1b1U, 0x12121212U, 0x10101010U, 0x59595959U, + 0x27272727U, 0x80808080U, 0xececececU, 0x5f5f5f5fU, + 0x60606060U, 0x51515151U, 0x7f7f7f7fU, 0xa9a9a9a9U, + 0x19191919U, 0xb5b5b5b5U, 0x4a4a4a4aU, 0x0d0d0d0dU, + 0x2d2d2d2dU, 0xe5e5e5e5U, 0x7a7a7a7aU, 0x9f9f9f9fU, + 0x93939393U, 0xc9c9c9c9U, 0x9c9c9c9cU, 0xefefefefU, + 0xa0a0a0a0U, 0xe0e0e0e0U, 0x3b3b3b3bU, 0x4d4d4d4dU, + 0xaeaeaeaeU, 0x2a2a2a2aU, 0xf5f5f5f5U, 0xb0b0b0b0U, + 0xc8c8c8c8U, 0xebebebebU, 0xbbbbbbbbU, 0x3c3c3c3cU, + 0x83838383U, 0x53535353U, 0x99999999U, 0x61616161U, + 0x17171717U, 0x2b2b2b2bU, 0x04040404U, 0x7e7e7e7eU, + 0xbabababaU, 0x77777777U, 0xd6d6d6d6U, 0x26262626U, + 0xe1e1e1e1U, 0x69696969U, 0x14141414U, 0x63636363U, + 0x55555555U, 0x21212121U, 0x0c0c0c0cU, 0x7d7d7d7dU, +}; +static const u32 rcon[] = { + 0x01000000, 0x02000000, 0x04000000, 0x08000000, + 0x10000000, 0x20000000, 0x40000000, 0x80000000, + 0x1B000000, 0x36000000, /* for 128-bit blocks, Rijndael never uses more than 10 rcon values */ +}; + +/** + * Expand the cipher key into the encryption key schedule. + */ +int AES_set_encrypt_key(const unsigned char *userKey, const int bits, + AES_KEY *key) { + + u32 *rk; + int i = 0; + u32 temp; + + if (!userKey || !key) + return -1; + if (bits != 128 && bits != 192 && bits != 256) + return -2; + + rk = key->rd_key; + + if (bits==128) + key->rounds = 10; + else if (bits==192) + key->rounds = 12; + else + key->rounds = 14; + + rk[0] = GETU32(userKey ); + rk[1] = GETU32(userKey + 4); + rk[2] = GETU32(userKey + 8); + rk[3] = GETU32(userKey + 12); + if (bits == 128) { + while (1) { + temp = rk[3]; + rk[4] = rk[0] ^ + (Te4[(temp >> 16) & 0xff] & 0xff000000) ^ + (Te4[(temp >> 8) & 0xff] & 0x00ff0000) ^ + (Te4[(temp ) & 0xff] & 0x0000ff00) ^ + (Te4[(temp >> 24) ] & 0x000000ff) ^ + rcon[i]; + rk[5] = rk[1] ^ rk[4]; + rk[6] = rk[2] ^ rk[5]; + rk[7] = rk[3] ^ rk[6]; + if (++i == 10) { + return 0; + } + rk += 4; + } + } + rk[4] = GETU32(userKey + 16); + rk[5] = GETU32(userKey + 20); + if (bits == 192) { + while (1) { + temp = rk[ 5]; + rk[ 6] = rk[ 0] ^ + (Te4[(temp >> 16) & 0xff] & 0xff000000) ^ + (Te4[(temp >> 8) & 0xff] & 0x00ff0000) ^ + (Te4[(temp ) & 0xff] & 0x0000ff00) ^ + (Te4[(temp >> 24) ] & 0x000000ff) ^ + rcon[i]; + rk[ 7] = rk[ 1] ^ rk[ 6]; + rk[ 8] = rk[ 2] ^ rk[ 7]; + rk[ 9] = rk[ 3] ^ rk[ 8]; + if (++i == 8) { + return 0; + } + rk[10] = rk[ 4] ^ rk[ 9]; + rk[11] = rk[ 5] ^ rk[10]; + rk += 6; + } + } + rk[6] = GETU32(userKey + 24); + rk[7] = GETU32(userKey + 28); + if (bits == 256) { + while (1) { + temp = rk[ 7]; + rk[ 8] = rk[ 0] ^ + (Te4[(temp >> 16) & 0xff] & 0xff000000) ^ + (Te4[(temp >> 8) & 0xff] & 0x00ff0000) ^ + (Te4[(temp ) & 0xff] & 0x0000ff00) ^ + (Te4[(temp >> 24) ] & 0x000000ff) ^ + rcon[i]; + rk[ 9] = rk[ 1] ^ rk[ 8]; + rk[10] = rk[ 2] ^ rk[ 9]; + rk[11] = rk[ 3] ^ rk[10]; + if (++i == 7) { + return 0; + } + temp = rk[11]; + rk[12] = rk[ 4] ^ + (Te4[(temp >> 24) ] & 0xff000000) ^ + (Te4[(temp >> 16) & 0xff] & 0x00ff0000) ^ + (Te4[(temp >> 8) & 0xff] & 0x0000ff00) ^ + (Te4[(temp ) & 0xff] & 0x000000ff); + rk[13] = rk[ 5] ^ rk[12]; + rk[14] = rk[ 6] ^ rk[13]; + rk[15] = rk[ 7] ^ rk[14]; + + rk += 8; + } + } + return 0; +} + +/** + * Expand the cipher key into the decryption key schedule. + */ +int AES_set_decrypt_key(const unsigned char *userKey, const int bits, + AES_KEY *key) { + + u32 *rk; + int i, j, status; + u32 temp; + + /* first, start with an encryption schedule */ + status = AES_set_encrypt_key(userKey, bits, key); + if (status < 0) + return status; + + rk = key->rd_key; + + /* invert the order of the round keys: */ + for (i = 0, j = 4*(key->rounds); i < j; i += 4, j -= 4) { + temp = rk[i ]; rk[i ] = rk[j ]; rk[j ] = temp; + temp = rk[i + 1]; rk[i + 1] = rk[j + 1]; rk[j + 1] = temp; + temp = rk[i + 2]; rk[i + 2] = rk[j + 2]; rk[j + 2] = temp; + temp = rk[i + 3]; rk[i + 3] = rk[j + 3]; rk[j + 3] = temp; + } + /* apply the inverse MixColumn transform to all round keys but the first and the last: */ + for (i = 1; i < (key->rounds); i++) { + rk += 4; + rk[0] = + Td0[Te4[(rk[0] >> 24) ] & 0xff] ^ + Td1[Te4[(rk[0] >> 16) & 0xff] & 0xff] ^ + Td2[Te4[(rk[0] >> 8) & 0xff] & 0xff] ^ + Td3[Te4[(rk[0] ) & 0xff] & 0xff]; + rk[1] = + Td0[Te4[(rk[1] >> 24) ] & 0xff] ^ + Td1[Te4[(rk[1] >> 16) & 0xff] & 0xff] ^ + Td2[Te4[(rk[1] >> 8) & 0xff] & 0xff] ^ + Td3[Te4[(rk[1] ) & 0xff] & 0xff]; + rk[2] = + Td0[Te4[(rk[2] >> 24) ] & 0xff] ^ + Td1[Te4[(rk[2] >> 16) & 0xff] & 0xff] ^ + Td2[Te4[(rk[2] >> 8) & 0xff] & 0xff] ^ + Td3[Te4[(rk[2] ) & 0xff] & 0xff]; + rk[3] = + Td0[Te4[(rk[3] >> 24) ] & 0xff] ^ + Td1[Te4[(rk[3] >> 16) & 0xff] & 0xff] ^ + Td2[Te4[(rk[3] >> 8) & 0xff] & 0xff] ^ + Td3[Te4[(rk[3] ) & 0xff] & 0xff]; + } + return 0; +} + +#ifndef AES_ASM +/* + * Encrypt a single block + * in and out can overlap + */ +void AES_encrypt(const unsigned char *in, unsigned char *out, + const AES_KEY *key) { + + const u32 *rk; + u32 s0, s1, s2, s3, t0, t1, t2, t3; +#ifndef FULL_UNROLL + int r; +#endif /* ?FULL_UNROLL */ + +// assert(in && out && key); + rk = key->rd_key; + + /* + * map byte array block to cipher state + * and add initial round key: + */ + s0 = GETU32(in ) ^ rk[0]; + s1 = GETU32(in + 4) ^ rk[1]; + s2 = GETU32(in + 8) ^ rk[2]; + s3 = GETU32(in + 12) ^ rk[3]; +#ifdef FULL_UNROLL + /* round 1: */ + t0 = Te0[s0 >> 24] ^ Te1[(s1 >> 16) & 0xff] ^ Te2[(s2 >> 8) & 0xff] ^ Te3[s3 & 0xff] ^ rk[ 4]; + t1 = Te0[s1 >> 24] ^ Te1[(s2 >> 16) & 0xff] ^ Te2[(s3 >> 8) & 0xff] ^ Te3[s0 & 0xff] ^ rk[ 5]; + t2 = Te0[s2 >> 24] ^ Te1[(s3 >> 16) & 0xff] ^ Te2[(s0 >> 8) & 0xff] ^ Te3[s1 & 0xff] ^ rk[ 6]; + t3 = Te0[s3 >> 24] ^ Te1[(s0 >> 16) & 0xff] ^ Te2[(s1 >> 8) & 0xff] ^ Te3[s2 & 0xff] ^ rk[ 7]; + /* round 2: */ + s0 = Te0[t0 >> 24] ^ Te1[(t1 >> 16) & 0xff] ^ Te2[(t2 >> 8) & 0xff] ^ Te3[t3 & 0xff] ^ rk[ 8]; + s1 = Te0[t1 >> 24] ^ Te1[(t2 >> 16) & 0xff] ^ Te2[(t3 >> 8) & 0xff] ^ Te3[t0 & 0xff] ^ rk[ 9]; + s2 = Te0[t2 >> 24] ^ Te1[(t3 >> 16) & 0xff] ^ Te2[(t0 >> 8) & 0xff] ^ Te3[t1 & 0xff] ^ rk[10]; + s3 = Te0[t3 >> 24] ^ Te1[(t0 >> 16) & 0xff] ^ Te2[(t1 >> 8) & 0xff] ^ Te3[t2 & 0xff] ^ rk[11]; + /* round 3: */ + t0 = Te0[s0 >> 24] ^ Te1[(s1 >> 16) & 0xff] ^ Te2[(s2 >> 8) & 0xff] ^ Te3[s3 & 0xff] ^ rk[12]; + t1 = Te0[s1 >> 24] ^ Te1[(s2 >> 16) & 0xff] ^ Te2[(s3 >> 8) & 0xff] ^ Te3[s0 & 0xff] ^ rk[13]; + t2 = Te0[s2 >> 24] ^ Te1[(s3 >> 16) & 0xff] ^ Te2[(s0 >> 8) & 0xff] ^ Te3[s1 & 0xff] ^ rk[14]; + t3 = Te0[s3 >> 24] ^ Te1[(s0 >> 16) & 0xff] ^ Te2[(s1 >> 8) & 0xff] ^ Te3[s2 & 0xff] ^ rk[15]; + /* round 4: */ + s0 = Te0[t0 >> 24] ^ Te1[(t1 >> 16) & 0xff] ^ Te2[(t2 >> 8) & 0xff] ^ Te3[t3 & 0xff] ^ rk[16]; + s1 = Te0[t1 >> 24] ^ Te1[(t2 >> 16) & 0xff] ^ Te2[(t3 >> 8) & 0xff] ^ Te3[t0 & 0xff] ^ rk[17]; + s2 = Te0[t2 >> 24] ^ Te1[(t3 >> 16) & 0xff] ^ Te2[(t0 >> 8) & 0xff] ^ Te3[t1 & 0xff] ^ rk[18]; + s3 = Te0[t3 >> 24] ^ Te1[(t0 >> 16) & 0xff] ^ Te2[(t1 >> 8) & 0xff] ^ Te3[t2 & 0xff] ^ rk[19]; + /* round 5: */ + t0 = Te0[s0 >> 24] ^ Te1[(s1 >> 16) & 0xff] ^ Te2[(s2 >> 8) & 0xff] ^ Te3[s3 & 0xff] ^ rk[20]; + t1 = Te0[s1 >> 24] ^ Te1[(s2 >> 16) & 0xff] ^ Te2[(s3 >> 8) & 0xff] ^ Te3[s0 & 0xff] ^ rk[21]; + t2 = Te0[s2 >> 24] ^ Te1[(s3 >> 16) & 0xff] ^ Te2[(s0 >> 8) & 0xff] ^ Te3[s1 & 0xff] ^ rk[22]; + t3 = Te0[s3 >> 24] ^ Te1[(s0 >> 16) & 0xff] ^ Te2[(s1 >> 8) & 0xff] ^ Te3[s2 & 0xff] ^ rk[23]; + /* round 6: */ + s0 = Te0[t0 >> 24] ^ Te1[(t1 >> 16) & 0xff] ^ Te2[(t2 >> 8) & 0xff] ^ Te3[t3 & 0xff] ^ rk[24]; + s1 = Te0[t1 >> 24] ^ Te1[(t2 >> 16) & 0xff] ^ Te2[(t3 >> 8) & 0xff] ^ Te3[t0 & 0xff] ^ rk[25]; + s2 = Te0[t2 >> 24] ^ Te1[(t3 >> 16) & 0xff] ^ Te2[(t0 >> 8) & 0xff] ^ Te3[t1 & 0xff] ^ rk[26]; + s3 = Te0[t3 >> 24] ^ Te1[(t0 >> 16) & 0xff] ^ Te2[(t1 >> 8) & 0xff] ^ Te3[t2 & 0xff] ^ rk[27]; + /* round 7: */ + t0 = Te0[s0 >> 24] ^ Te1[(s1 >> 16) & 0xff] ^ Te2[(s2 >> 8) & 0xff] ^ Te3[s3 & 0xff] ^ rk[28]; + t1 = Te0[s1 >> 24] ^ Te1[(s2 >> 16) & 0xff] ^ Te2[(s3 >> 8) & 0xff] ^ Te3[s0 & 0xff] ^ rk[29]; + t2 = Te0[s2 >> 24] ^ Te1[(s3 >> 16) & 0xff] ^ Te2[(s0 >> 8) & 0xff] ^ Te3[s1 & 0xff] ^ rk[30]; + t3 = Te0[s3 >> 24] ^ Te1[(s0 >> 16) & 0xff] ^ Te2[(s1 >> 8) & 0xff] ^ Te3[s2 & 0xff] ^ rk[31]; + /* round 8: */ + s0 = Te0[t0 >> 24] ^ Te1[(t1 >> 16) & 0xff] ^ Te2[(t2 >> 8) & 0xff] ^ Te3[t3 & 0xff] ^ rk[32]; + s1 = Te0[t1 >> 24] ^ Te1[(t2 >> 16) & 0xff] ^ Te2[(t3 >> 8) & 0xff] ^ Te3[t0 & 0xff] ^ rk[33]; + s2 = Te0[t2 >> 24] ^ Te1[(t3 >> 16) & 0xff] ^ Te2[(t0 >> 8) & 0xff] ^ Te3[t1 & 0xff] ^ rk[34]; + s3 = Te0[t3 >> 24] ^ Te1[(t0 >> 16) & 0xff] ^ Te2[(t1 >> 8) & 0xff] ^ Te3[t2 & 0xff] ^ rk[35]; + /* round 9: */ + t0 = Te0[s0 >> 24] ^ Te1[(s1 >> 16) & 0xff] ^ Te2[(s2 >> 8) & 0xff] ^ Te3[s3 & 0xff] ^ rk[36]; + t1 = Te0[s1 >> 24] ^ Te1[(s2 >> 16) & 0xff] ^ Te2[(s3 >> 8) & 0xff] ^ Te3[s0 & 0xff] ^ rk[37]; + t2 = Te0[s2 >> 24] ^ Te1[(s3 >> 16) & 0xff] ^ Te2[(s0 >> 8) & 0xff] ^ Te3[s1 & 0xff] ^ rk[38]; + t3 = Te0[s3 >> 24] ^ Te1[(s0 >> 16) & 0xff] ^ Te2[(s1 >> 8) & 0xff] ^ Te3[s2 & 0xff] ^ rk[39]; + if (key->rounds > 10) { + /* round 10: */ + s0 = Te0[t0 >> 24] ^ Te1[(t1 >> 16) & 0xff] ^ Te2[(t2 >> 8) & 0xff] ^ Te3[t3 & 0xff] ^ rk[40]; + s1 = Te0[t1 >> 24] ^ Te1[(t2 >> 16) & 0xff] ^ Te2[(t3 >> 8) & 0xff] ^ Te3[t0 & 0xff] ^ rk[41]; + s2 = Te0[t2 >> 24] ^ Te1[(t3 >> 16) & 0xff] ^ Te2[(t0 >> 8) & 0xff] ^ Te3[t1 & 0xff] ^ rk[42]; + s3 = Te0[t3 >> 24] ^ Te1[(t0 >> 16) & 0xff] ^ Te2[(t1 >> 8) & 0xff] ^ Te3[t2 & 0xff] ^ rk[43]; + /* round 11: */ + t0 = Te0[s0 >> 24] ^ Te1[(s1 >> 16) & 0xff] ^ Te2[(s2 >> 8) & 0xff] ^ Te3[s3 & 0xff] ^ rk[44]; + t1 = Te0[s1 >> 24] ^ Te1[(s2 >> 16) & 0xff] ^ Te2[(s3 >> 8) & 0xff] ^ Te3[s0 & 0xff] ^ rk[45]; + t2 = Te0[s2 >> 24] ^ Te1[(s3 >> 16) & 0xff] ^ Te2[(s0 >> 8) & 0xff] ^ Te3[s1 & 0xff] ^ rk[46]; + t3 = Te0[s3 >> 24] ^ Te1[(s0 >> 16) & 0xff] ^ Te2[(s1 >> 8) & 0xff] ^ Te3[s2 & 0xff] ^ rk[47]; + if (key->rounds > 12) { + /* round 12: */ + s0 = Te0[t0 >> 24] ^ Te1[(t1 >> 16) & 0xff] ^ Te2[(t2 >> 8) & 0xff] ^ Te3[t3 & 0xff] ^ rk[48]; + s1 = Te0[t1 >> 24] ^ Te1[(t2 >> 16) & 0xff] ^ Te2[(t3 >> 8) & 0xff] ^ Te3[t0 & 0xff] ^ rk[49]; + s2 = Te0[t2 >> 24] ^ Te1[(t3 >> 16) & 0xff] ^ Te2[(t0 >> 8) & 0xff] ^ Te3[t1 & 0xff] ^ rk[50]; + s3 = Te0[t3 >> 24] ^ Te1[(t0 >> 16) & 0xff] ^ Te2[(t1 >> 8) & 0xff] ^ Te3[t2 & 0xff] ^ rk[51]; + /* round 13: */ + t0 = Te0[s0 >> 24] ^ Te1[(s1 >> 16) & 0xff] ^ Te2[(s2 >> 8) & 0xff] ^ Te3[s3 & 0xff] ^ rk[52]; + t1 = Te0[s1 >> 24] ^ Te1[(s2 >> 16) & 0xff] ^ Te2[(s3 >> 8) & 0xff] ^ Te3[s0 & 0xff] ^ rk[53]; + t2 = Te0[s2 >> 24] ^ Te1[(s3 >> 16) & 0xff] ^ Te2[(s0 >> 8) & 0xff] ^ Te3[s1 & 0xff] ^ rk[54]; + t3 = Te0[s3 >> 24] ^ Te1[(s0 >> 16) & 0xff] ^ Te2[(s1 >> 8) & 0xff] ^ Te3[s2 & 0xff] ^ rk[55]; + } + } + rk += key->rounds << 2; +#else /* !FULL_UNROLL */ + /* + * Nr - 1 full rounds: + */ + r = key->rounds >> 1; + for (;;) { + t0 = + Te0[(s0 >> 24) ] ^ + Te1[(s1 >> 16) & 0xff] ^ + Te2[(s2 >> 8) & 0xff] ^ + Te3[(s3 ) & 0xff] ^ + rk[4]; + t1 = + Te0[(s1 >> 24) ] ^ + Te1[(s2 >> 16) & 0xff] ^ + Te2[(s3 >> 8) & 0xff] ^ + Te3[(s0 ) & 0xff] ^ + rk[5]; + t2 = + Te0[(s2 >> 24) ] ^ + Te1[(s3 >> 16) & 0xff] ^ + Te2[(s0 >> 8) & 0xff] ^ + Te3[(s1 ) & 0xff] ^ + rk[6]; + t3 = + Te0[(s3 >> 24) ] ^ + Te1[(s0 >> 16) & 0xff] ^ + Te2[(s1 >> 8) & 0xff] ^ + Te3[(s2 ) & 0xff] ^ + rk[7]; + + rk += 8; + if (--r == 0) { + break; + } + + s0 = + Te0[(t0 >> 24) ] ^ + Te1[(t1 >> 16) & 0xff] ^ + Te2[(t2 >> 8) & 0xff] ^ + Te3[(t3 ) & 0xff] ^ + rk[0]; + s1 = + Te0[(t1 >> 24) ] ^ + Te1[(t2 >> 16) & 0xff] ^ + Te2[(t3 >> 8) & 0xff] ^ + Te3[(t0 ) & 0xff] ^ + rk[1]; + s2 = + Te0[(t2 >> 24) ] ^ + Te1[(t3 >> 16) & 0xff] ^ + Te2[(t0 >> 8) & 0xff] ^ + Te3[(t1 ) & 0xff] ^ + rk[2]; + s3 = + Te0[(t3 >> 24) ] ^ + Te1[(t0 >> 16) & 0xff] ^ + Te2[(t1 >> 8) & 0xff] ^ + Te3[(t2 ) & 0xff] ^ + rk[3]; + } +#endif /* ?FULL_UNROLL */ + /* + * apply last round and + * map cipher state to byte array block: + */ + s0 = + (Te4[(t0 >> 24) ] & 0xff000000) ^ + (Te4[(t1 >> 16) & 0xff] & 0x00ff0000) ^ + (Te4[(t2 >> 8) & 0xff] & 0x0000ff00) ^ + (Te4[(t3 ) & 0xff] & 0x000000ff) ^ + rk[0]; + PUTU32(out , s0); + s1 = + (Te4[(t1 >> 24) ] & 0xff000000) ^ + (Te4[(t2 >> 16) & 0xff] & 0x00ff0000) ^ + (Te4[(t3 >> 8) & 0xff] & 0x0000ff00) ^ + (Te4[(t0 ) & 0xff] & 0x000000ff) ^ + rk[1]; + PUTU32(out + 4, s1); + s2 = + (Te4[(t2 >> 24) ] & 0xff000000) ^ + (Te4[(t3 >> 16) & 0xff] & 0x00ff0000) ^ + (Te4[(t0 >> 8) & 0xff] & 0x0000ff00) ^ + (Te4[(t1 ) & 0xff] & 0x000000ff) ^ + rk[2]; + PUTU32(out + 8, s2); + s3 = + (Te4[(t3 >> 24) ] & 0xff000000) ^ + (Te4[(t0 >> 16) & 0xff] & 0x00ff0000) ^ + (Te4[(t1 >> 8) & 0xff] & 0x0000ff00) ^ + (Te4[(t2 ) & 0xff] & 0x000000ff) ^ + rk[3]; + PUTU32(out + 12, s3); +} + +/* + * Decrypt a single block + * in and out can overlap + */ +void AES_decrypt(const unsigned char *in, unsigned char *out, + const AES_KEY *key) { + + const u32 *rk; + u32 s0, s1, s2, s3, t0, t1, t2, t3; +#ifndef FULL_UNROLL + int r; +#endif /* ?FULL_UNROLL */ + +// assert(in && out && key); + rk = key->rd_key; + + /* + * map byte array block to cipher state + * and add initial round key: + */ + s0 = GETU32(in ) ^ rk[0]; + s1 = GETU32(in + 4) ^ rk[1]; + s2 = GETU32(in + 8) ^ rk[2]; + s3 = GETU32(in + 12) ^ rk[3]; +#ifdef FULL_UNROLL + /* round 1: */ + t0 = Td0[s0 >> 24] ^ Td1[(s3 >> 16) & 0xff] ^ Td2[(s2 >> 8) & 0xff] ^ Td3[s1 & 0xff] ^ rk[ 4]; + t1 = Td0[s1 >> 24] ^ Td1[(s0 >> 16) & 0xff] ^ Td2[(s3 >> 8) & 0xff] ^ Td3[s2 & 0xff] ^ rk[ 5]; + t2 = Td0[s2 >> 24] ^ Td1[(s1 >> 16) & 0xff] ^ Td2[(s0 >> 8) & 0xff] ^ Td3[s3 & 0xff] ^ rk[ 6]; + t3 = Td0[s3 >> 24] ^ Td1[(s2 >> 16) & 0xff] ^ Td2[(s1 >> 8) & 0xff] ^ Td3[s0 & 0xff] ^ rk[ 7]; + /* round 2: */ + s0 = Td0[t0 >> 24] ^ Td1[(t3 >> 16) & 0xff] ^ Td2[(t2 >> 8) & 0xff] ^ Td3[t1 & 0xff] ^ rk[ 8]; + s1 = Td0[t1 >> 24] ^ Td1[(t0 >> 16) & 0xff] ^ Td2[(t3 >> 8) & 0xff] ^ Td3[t2 & 0xff] ^ rk[ 9]; + s2 = Td0[t2 >> 24] ^ Td1[(t1 >> 16) & 0xff] ^ Td2[(t0 >> 8) & 0xff] ^ Td3[t3 & 0xff] ^ rk[10]; + s3 = Td0[t3 >> 24] ^ Td1[(t2 >> 16) & 0xff] ^ Td2[(t1 >> 8) & 0xff] ^ Td3[t0 & 0xff] ^ rk[11]; + /* round 3: */ + t0 = Td0[s0 >> 24] ^ Td1[(s3 >> 16) & 0xff] ^ Td2[(s2 >> 8) & 0xff] ^ Td3[s1 & 0xff] ^ rk[12]; + t1 = Td0[s1 >> 24] ^ Td1[(s0 >> 16) & 0xff] ^ Td2[(s3 >> 8) & 0xff] ^ Td3[s2 & 0xff] ^ rk[13]; + t2 = Td0[s2 >> 24] ^ Td1[(s1 >> 16) & 0xff] ^ Td2[(s0 >> 8) & 0xff] ^ Td3[s3 & 0xff] ^ rk[14]; + t3 = Td0[s3 >> 24] ^ Td1[(s2 >> 16) & 0xff] ^ Td2[(s1 >> 8) & 0xff] ^ Td3[s0 & 0xff] ^ rk[15]; + /* round 4: */ + s0 = Td0[t0 >> 24] ^ Td1[(t3 >> 16) & 0xff] ^ Td2[(t2 >> 8) & 0xff] ^ Td3[t1 & 0xff] ^ rk[16]; + s1 = Td0[t1 >> 24] ^ Td1[(t0 >> 16) & 0xff] ^ Td2[(t3 >> 8) & 0xff] ^ Td3[t2 & 0xff] ^ rk[17]; + s2 = Td0[t2 >> 24] ^ Td1[(t1 >> 16) & 0xff] ^ Td2[(t0 >> 8) & 0xff] ^ Td3[t3 & 0xff] ^ rk[18]; + s3 = Td0[t3 >> 24] ^ Td1[(t2 >> 16) & 0xff] ^ Td2[(t1 >> 8) & 0xff] ^ Td3[t0 & 0xff] ^ rk[19]; + /* round 5: */ + t0 = Td0[s0 >> 24] ^ Td1[(s3 >> 16) & 0xff] ^ Td2[(s2 >> 8) & 0xff] ^ Td3[s1 & 0xff] ^ rk[20]; + t1 = Td0[s1 >> 24] ^ Td1[(s0 >> 16) & 0xff] ^ Td2[(s3 >> 8) & 0xff] ^ Td3[s2 & 0xff] ^ rk[21]; + t2 = Td0[s2 >> 24] ^ Td1[(s1 >> 16) & 0xff] ^ Td2[(s0 >> 8) & 0xff] ^ Td3[s3 & 0xff] ^ rk[22]; + t3 = Td0[s3 >> 24] ^ Td1[(s2 >> 16) & 0xff] ^ Td2[(s1 >> 8) & 0xff] ^ Td3[s0 & 0xff] ^ rk[23]; + /* round 6: */ + s0 = Td0[t0 >> 24] ^ Td1[(t3 >> 16) & 0xff] ^ Td2[(t2 >> 8) & 0xff] ^ Td3[t1 & 0xff] ^ rk[24]; + s1 = Td0[t1 >> 24] ^ Td1[(t0 >> 16) & 0xff] ^ Td2[(t3 >> 8) & 0xff] ^ Td3[t2 & 0xff] ^ rk[25]; + s2 = Td0[t2 >> 24] ^ Td1[(t1 >> 16) & 0xff] ^ Td2[(t0 >> 8) & 0xff] ^ Td3[t3 & 0xff] ^ rk[26]; + s3 = Td0[t3 >> 24] ^ Td1[(t2 >> 16) & 0xff] ^ Td2[(t1 >> 8) & 0xff] ^ Td3[t0 & 0xff] ^ rk[27]; + /* round 7: */ + t0 = Td0[s0 >> 24] ^ Td1[(s3 >> 16) & 0xff] ^ Td2[(s2 >> 8) & 0xff] ^ Td3[s1 & 0xff] ^ rk[28]; + t1 = Td0[s1 >> 24] ^ Td1[(s0 >> 16) & 0xff] ^ Td2[(s3 >> 8) & 0xff] ^ Td3[s2 & 0xff] ^ rk[29]; + t2 = Td0[s2 >> 24] ^ Td1[(s1 >> 16) & 0xff] ^ Td2[(s0 >> 8) & 0xff] ^ Td3[s3 & 0xff] ^ rk[30]; + t3 = Td0[s3 >> 24] ^ Td1[(s2 >> 16) & 0xff] ^ Td2[(s1 >> 8) & 0xff] ^ Td3[s0 & 0xff] ^ rk[31]; + /* round 8: */ + s0 = Td0[t0 >> 24] ^ Td1[(t3 >> 16) & 0xff] ^ Td2[(t2 >> 8) & 0xff] ^ Td3[t1 & 0xff] ^ rk[32]; + s1 = Td0[t1 >> 24] ^ Td1[(t0 >> 16) & 0xff] ^ Td2[(t3 >> 8) & 0xff] ^ Td3[t2 & 0xff] ^ rk[33]; + s2 = Td0[t2 >> 24] ^ Td1[(t1 >> 16) & 0xff] ^ Td2[(t0 >> 8) & 0xff] ^ Td3[t3 & 0xff] ^ rk[34]; + s3 = Td0[t3 >> 24] ^ Td1[(t2 >> 16) & 0xff] ^ Td2[(t1 >> 8) & 0xff] ^ Td3[t0 & 0xff] ^ rk[35]; + /* round 9: */ + t0 = Td0[s0 >> 24] ^ Td1[(s3 >> 16) & 0xff] ^ Td2[(s2 >> 8) & 0xff] ^ Td3[s1 & 0xff] ^ rk[36]; + t1 = Td0[s1 >> 24] ^ Td1[(s0 >> 16) & 0xff] ^ Td2[(s3 >> 8) & 0xff] ^ Td3[s2 & 0xff] ^ rk[37]; + t2 = Td0[s2 >> 24] ^ Td1[(s1 >> 16) & 0xff] ^ Td2[(s0 >> 8) & 0xff] ^ Td3[s3 & 0xff] ^ rk[38]; + t3 = Td0[s3 >> 24] ^ Td1[(s2 >> 16) & 0xff] ^ Td2[(s1 >> 8) & 0xff] ^ Td3[s0 & 0xff] ^ rk[39]; + if (key->rounds > 10) { + /* round 10: */ + s0 = Td0[t0 >> 24] ^ Td1[(t3 >> 16) & 0xff] ^ Td2[(t2 >> 8) & 0xff] ^ Td3[t1 & 0xff] ^ rk[40]; + s1 = Td0[t1 >> 24] ^ Td1[(t0 >> 16) & 0xff] ^ Td2[(t3 >> 8) & 0xff] ^ Td3[t2 & 0xff] ^ rk[41]; + s2 = Td0[t2 >> 24] ^ Td1[(t1 >> 16) & 0xff] ^ Td2[(t0 >> 8) & 0xff] ^ Td3[t3 & 0xff] ^ rk[42]; + s3 = Td0[t3 >> 24] ^ Td1[(t2 >> 16) & 0xff] ^ Td2[(t1 >> 8) & 0xff] ^ Td3[t0 & 0xff] ^ rk[43]; + /* round 11: */ + t0 = Td0[s0 >> 24] ^ Td1[(s3 >> 16) & 0xff] ^ Td2[(s2 >> 8) & 0xff] ^ Td3[s1 & 0xff] ^ rk[44]; + t1 = Td0[s1 >> 24] ^ Td1[(s0 >> 16) & 0xff] ^ Td2[(s3 >> 8) & 0xff] ^ Td3[s2 & 0xff] ^ rk[45]; + t2 = Td0[s2 >> 24] ^ Td1[(s1 >> 16) & 0xff] ^ Td2[(s0 >> 8) & 0xff] ^ Td3[s3 & 0xff] ^ rk[46]; + t3 = Td0[s3 >> 24] ^ Td1[(s2 >> 16) & 0xff] ^ Td2[(s1 >> 8) & 0xff] ^ Td3[s0 & 0xff] ^ rk[47]; + if (key->rounds > 12) { + /* round 12: */ + s0 = Td0[t0 >> 24] ^ Td1[(t3 >> 16) & 0xff] ^ Td2[(t2 >> 8) & 0xff] ^ Td3[t1 & 0xff] ^ rk[48]; + s1 = Td0[t1 >> 24] ^ Td1[(t0 >> 16) & 0xff] ^ Td2[(t3 >> 8) & 0xff] ^ Td3[t2 & 0xff] ^ rk[49]; + s2 = Td0[t2 >> 24] ^ Td1[(t1 >> 16) & 0xff] ^ Td2[(t0 >> 8) & 0xff] ^ Td3[t3 & 0xff] ^ rk[50]; + s3 = Td0[t3 >> 24] ^ Td1[(t2 >> 16) & 0xff] ^ Td2[(t1 >> 8) & 0xff] ^ Td3[t0 & 0xff] ^ rk[51]; + /* round 13: */ + t0 = Td0[s0 >> 24] ^ Td1[(s3 >> 16) & 0xff] ^ Td2[(s2 >> 8) & 0xff] ^ Td3[s1 & 0xff] ^ rk[52]; + t1 = Td0[s1 >> 24] ^ Td1[(s0 >> 16) & 0xff] ^ Td2[(s3 >> 8) & 0xff] ^ Td3[s2 & 0xff] ^ rk[53]; + t2 = Td0[s2 >> 24] ^ Td1[(s1 >> 16) & 0xff] ^ Td2[(s0 >> 8) & 0xff] ^ Td3[s3 & 0xff] ^ rk[54]; + t3 = Td0[s3 >> 24] ^ Td1[(s2 >> 16) & 0xff] ^ Td2[(s1 >> 8) & 0xff] ^ Td3[s0 & 0xff] ^ rk[55]; + } + } + rk += key->rounds << 2; +#else /* !FULL_UNROLL */ + /* + * Nr - 1 full rounds: + */ + r = key->rounds >> 1; + for (;;) { + t0 = + Td0[(s0 >> 24) ] ^ + Td1[(s3 >> 16) & 0xff] ^ + Td2[(s2 >> 8) & 0xff] ^ + Td3[(s1 ) & 0xff] ^ + rk[4]; + t1 = + Td0[(s1 >> 24) ] ^ + Td1[(s0 >> 16) & 0xff] ^ + Td2[(s3 >> 8) & 0xff] ^ + Td3[(s2 ) & 0xff] ^ + rk[5]; + t2 = + Td0[(s2 >> 24) ] ^ + Td1[(s1 >> 16) & 0xff] ^ + Td2[(s0 >> 8) & 0xff] ^ + Td3[(s3 ) & 0xff] ^ + rk[6]; + t3 = + Td0[(s3 >> 24) ] ^ + Td1[(s2 >> 16) & 0xff] ^ + Td2[(s1 >> 8) & 0xff] ^ + Td3[(s0 ) & 0xff] ^ + rk[7]; + + rk += 8; + if (--r == 0) { + break; + } + + s0 = + Td0[(t0 >> 24) ] ^ + Td1[(t3 >> 16) & 0xff] ^ + Td2[(t2 >> 8) & 0xff] ^ + Td3[(t1 ) & 0xff] ^ + rk[0]; + s1 = + Td0[(t1 >> 24) ] ^ + Td1[(t0 >> 16) & 0xff] ^ + Td2[(t3 >> 8) & 0xff] ^ + Td3[(t2 ) & 0xff] ^ + rk[1]; + s2 = + Td0[(t2 >> 24) ] ^ + Td1[(t1 >> 16) & 0xff] ^ + Td2[(t0 >> 8) & 0xff] ^ + Td3[(t3 ) & 0xff] ^ + rk[2]; + s3 = + Td0[(t3 >> 24) ] ^ + Td1[(t2 >> 16) & 0xff] ^ + Td2[(t1 >> 8) & 0xff] ^ + Td3[(t0 ) & 0xff] ^ + rk[3]; + } +#endif /* ?FULL_UNROLL */ + /* + * apply last round and + * map cipher state to byte array block: + */ + s0 = + (Td4[(t0 >> 24) ] & 0xff000000) ^ + (Td4[(t3 >> 16) & 0xff] & 0x00ff0000) ^ + (Td4[(t2 >> 8) & 0xff] & 0x0000ff00) ^ + (Td4[(t1 ) & 0xff] & 0x000000ff) ^ + rk[0]; + PUTU32(out , s0); + s1 = + (Td4[(t1 >> 24) ] & 0xff000000) ^ + (Td4[(t0 >> 16) & 0xff] & 0x00ff0000) ^ + (Td4[(t3 >> 8) & 0xff] & 0x0000ff00) ^ + (Td4[(t2 ) & 0xff] & 0x000000ff) ^ + rk[1]; + PUTU32(out + 4, s1); + s2 = + (Td4[(t2 >> 24) ] & 0xff000000) ^ + (Td4[(t1 >> 16) & 0xff] & 0x00ff0000) ^ + (Td4[(t0 >> 8) & 0xff] & 0x0000ff00) ^ + (Td4[(t3 ) & 0xff] & 0x000000ff) ^ + rk[2]; + PUTU32(out + 8, s2); + s3 = + (Td4[(t3 >> 24) ] & 0xff000000) ^ + (Td4[(t2 >> 16) & 0xff] & 0x00ff0000) ^ + (Td4[(t1 >> 8) & 0xff] & 0x0000ff00) ^ + (Td4[(t0 ) & 0xff] & 0x000000ff) ^ + rk[3]; + PUTU32(out + 12, s3); +} + +#endif /* AES_ASM */ + +#if 1 +void AES_cbc_encrypt(const unsigned char *in, unsigned char *out, + const unsigned long length, const AES_KEY *key, + unsigned char *ivec, const int enc) +{ + + unsigned long n; + unsigned long len = length; + unsigned char tmp[AES_BLOCK_SIZE]; + + assert(in && out && key && ivec); + + if (enc) { + while (len >= AES_BLOCK_SIZE) { + for(n=0; n < AES_BLOCK_SIZE; ++n) + tmp[n] = in[n] ^ ivec[n]; + AES_encrypt(tmp, out, key); + memcpy(ivec, out, AES_BLOCK_SIZE); + len -= AES_BLOCK_SIZE; + in += AES_BLOCK_SIZE; + out += AES_BLOCK_SIZE; + } + if (len) { + for(n=0; n < len; ++n) + tmp[n] = in[n] ^ ivec[n]; + for(n=len; n < AES_BLOCK_SIZE; ++n) + tmp[n] = ivec[n]; + AES_encrypt(tmp, tmp, key); + memcpy(out, tmp, AES_BLOCK_SIZE); + memcpy(ivec, tmp, AES_BLOCK_SIZE); + } + } else { + while (len >= AES_BLOCK_SIZE) { + memcpy(tmp, in, AES_BLOCK_SIZE); + AES_decrypt(in, out, key); + for(n=0; n < AES_BLOCK_SIZE; ++n) + out[n] ^= ivec[n]; + memcpy(ivec, tmp, AES_BLOCK_SIZE); + len -= AES_BLOCK_SIZE; + in += AES_BLOCK_SIZE; + out += AES_BLOCK_SIZE; + } + if (len) { + memcpy(tmp, in, AES_BLOCK_SIZE); + AES_decrypt(tmp, tmp, key); + for(n=0; n < len; ++n) + out[n] = tmp[n] ^ ivec[n]; + memcpy(ivec, tmp, AES_BLOCK_SIZE); + } + } +} +#endif + + diff --git a/ps2classic/aes.h b/ps2classic/aes.h new file mode 100644 index 0000000..8c65209 --- /dev/null +++ b/ps2classic/aes.h @@ -0,0 +1,30 @@ +#ifndef QEMU_AES_H +#define QEMU_AES_H + +#include "tools.h" + +#define AES_MAXNR 14 +#define AES_BLOCK_SIZE 16 + +struct aes_key_st { + uint32_t rd_key[4 *(AES_MAXNR + 1)]; + int rounds; +}; +typedef struct aes_key_st AES_KEY; + +int AES_set_encrypt_key(const unsigned char *userKey, const int bits, + AES_KEY *key); +int AES_set_decrypt_key(const unsigned char *userKey, const int bits, + AES_KEY *key); + +void AES_encrypt(const unsigned char *in, unsigned char *out, + const AES_KEY *key); +void AES_decrypt(const unsigned char *in, unsigned char *out, + const AES_KEY *key); + +#if 1 +void AES_cbc_encrypt(const unsigned char *in, unsigned char *out, + const unsigned long length, const AES_KEY *key, + unsigned char *ivec, const int enc); +#endif +#endif diff --git a/ps2classic/iso.c b/ps2classic/iso.c new file mode 100644 index 0000000..50a5d09 --- /dev/null +++ b/ps2classic/iso.c @@ -0,0 +1,576 @@ +#include "iso.h" + +#include +#include +#include +#include +#include + + +void *_openfile(const char *filename, int flags) +{ + + if (flags & O_WRONLY) + return fopen(filename, "wb"); + else + return fopen(filename, "rb"); +} + + +u64 _tellfile(void *handle) +{ + s64 cursize = ftell(handle); + if (cursize == -1) + { + // try 64bit + cursize = ftello(handle); + if (cursize < -1) + { + // zero top 32 bits + cursize &= 0xffffffff; + } + } + return cursize; +} + +int _seekfile(void *handle, u64 offset, int whence) +{ + int seekerr = fseeko(handle, offset, whence); + + if (seekerr == -1) printf("failed to seek\n"); + + return seekerr; +} + +int _readfile(void *handle, void *dst, int size) +{ + return fread(dst, 1, size, handle); +} + +int _writefile(void *handle, void *src, int size) +{ + return fwrite(src, 1, size, handle); +} + +void _closefile(void *handle) +{ + fclose(handle); +} + + +int detect(struct isoFile *iso) +{ + u8 buf[2448]; + struct cdVolDesc *volDesc; + + if (isoReadBlock(iso, buf + iso->blockofs, 16) == -1) return -1; + + volDesc = (struct cdVolDesc *)(buf + 24); + + if (strncmp((char*)volDesc->volID, "CD001", 5)) return 0; + + if (volDesc->rootToc.tocSize == 2048) + iso->type = ISOTYPE_CD; + else + iso->type = ISOTYPE_DVD; + + return 1; +} + +int _isoReadDtable(struct isoFile *iso) +{ + int ret; + int i; + + _seekfile(iso->handle, 0, SEEK_END); + iso->dtablesize = (_tellfile(iso->handle) - 16) / (iso->blocksize + 4); + iso->dtable = (u32*)malloc(iso->dtablesize * 4); + + for (i = 0; i < iso->dtablesize; i++) + { + _seekfile(iso->handle, 16 + (iso->blocksize + 4)*i, SEEK_SET); + ret = _readfile(iso->handle, &iso->dtable[i], 4); + if (ret < 4) return -1; + } + + return 0; +} + +int isoDetect(struct isoFile *iso) // based on florin's CDVDbin detection code :) +{ + char buf[32]; + int len; + + iso->type = ISOTYPE_ILLEGAL; + + len = strlen(iso->filename); + + _seekfile(iso->handle, 0, SEEK_SET); + _readfile(iso->handle, buf, 4); + + if (strncmp(buf, "BDV2", 4) == 0) + { + iso->flags = ISOFLAGS_BLOCKDUMP; + _readfile(iso->handle, &iso->blocksize, 4); + _readfile(iso->handle, &iso->blocks, 4); + _readfile(iso->handle, &iso->blockofs, 4); + _isoReadDtable(iso); + return detect(iso) == 1 ? 0 : -1; + } + else + { + iso->blocks = 16; + } + + // ISO 2048 + iso->blocksize = 2048; + iso->offset = 0; + iso->blockofs = 24; + if (detect(iso) == 1) return 0; + + // RAW 2336 + iso->blocksize = 2336; + iso->offset = 0; + iso->blockofs = 16; + if (detect(iso) == 1) return 0; + + // RAW 2352 + iso->blocksize = 2352; + iso->offset = 0; + iso->blockofs = 0; + if (detect(iso) == 1) return 0; + + // RAWQ 2448 + iso->blocksize = 2448; + iso->offset = 0; + iso->blockofs = 0; + if (detect(iso) == 1) return 0; + + // NERO ISO 2048 + iso->blocksize = 2048; + iso->offset = 150 * 2048; + iso->blockofs = 24; + if (detect(iso) == 1) return 0; + + // NERO RAW 2352 + iso->blocksize = 2352; + iso->offset = 150 * 2048; + iso->blockofs = 0; + if (detect(iso) == 1) return 0; + + // NERO RAWQ 2448 + iso->blocksize = 2448; + iso->offset = 150 * 2048; + iso->blockofs = 0; + if (detect(iso) == 1) return 0; + + // ISO 2048 + iso->blocksize = 2048; + iso->offset = -8; + iso->blockofs = 24; + if (detect(iso) == 1) return 0; + + // RAW 2352 + iso->blocksize = 2352; + iso->offset = -8; + iso->blockofs = 0; + if (detect(iso) == 1) return 0; + + // RAWQ 2448 + iso->blocksize = 2448; + iso->offset = -8; + iso->blockofs = 0; + if (detect(iso) == 1) return 0; + + iso->offset = 0; + iso->blocksize = 2352; + iso->type = ISOTYPE_AUDIO; + return 0; + + return -1; +} + +struct isoFile *isoOpen(const char *filename) +{ + struct isoFile *iso; + int i; + + iso = (struct isoFile*)malloc(sizeof(struct isoFile)); + if (iso == NULL) return NULL; + + memset(iso, 0, sizeof(struct isoFile)); + strcpy(iso->filename, filename); + + iso->handle = _openfile(iso->filename, O_RDONLY); + if (iso->handle == NULL) + { + printf("Error loading %s\n", iso->filename); + return NULL; + } + + if (isoDetect(iso) == -1) return NULL; + + //printf("detected blocksize = %d\n", iso->blocksize); + + if (strlen(iso->filename) > 3 && strncmp(iso->filename + (strlen(iso->filename) - 3), "I00", 3) == 0) + { + _closefile(iso->handle); + iso->flags |= ISOFLAGS_MULTI; + iso->blocks = 0; + for (i = 0; i < 8; i++) + { + iso->filename[strlen(iso->filename) - 1] = '0' + i; + iso->multih[i].handle = _openfile(iso->filename, O_RDONLY); + if (iso->multih[i].handle == NULL) + { + break; + } + iso->multih[i].slsn = iso->blocks; + _seekfile(iso->multih[i].handle, 0, SEEK_END); + iso->blocks += (u32)((_tellfile(iso->multih[i].handle) - iso->offset) / + (iso->blocksize)); + iso->multih[i].elsn = iso->blocks - 1; + } + + if (i == 0) + { + return NULL; + } + } + + if (iso->flags == 0) + { + _seekfile(iso->handle, 0, SEEK_END); + iso->blocks = (u32)((_tellfile(iso->handle) - iso->offset) / + (iso->blocksize)); + } + + + //printf("isoOpen: %s ok\n", iso->filename); + /*printf("offset = %d\n", iso->offset); + printf("blockofs = %d\n", iso->blockofs); + printf("blocksize = %d\n", iso->blocksize); + printf("blocks = %d\n", iso->blocks);*/ + //printf("type = %d\n", iso->type); + + return iso; +} + +struct isoFile *isoCreate(const char *filename, int flags) +{ + struct isoFile *iso; + char Zfile[256]; + + iso = (struct isoFile*)malloc(sizeof(struct isoFile)); + if (iso == NULL) return NULL; + + memset(iso, 0, sizeof(struct isoFile)); + strcpy(iso->filename, filename); + iso->flags = flags; + iso->offset = 0; + iso->blockofs = 24; + iso->blocksize = CD_FRAMESIZE_RAW; + iso->blocksize = 2048; + + if (iso->flags & (ISOFLAGS_Z | ISOFLAGS_Z2 | ISOFLAGS_BZ2)) + { + sprintf(Zfile, "%s.table", iso->filename); + iso->htable = _openfile(Zfile, O_WRONLY); + if (iso->htable == NULL) + { + return NULL; + } + } + + iso->handle = _openfile(iso->filename, O_WRONLY | O_CREAT); + if (iso->handle == NULL) + { + printf("Error loading %s\n", iso->filename); + return NULL; + } + printf("isoCreate: %s ok\n", iso->filename); + printf("offset = %d\n", iso->offset); + + return iso; +} + +int isoSetFormat(struct isoFile *iso, int blockofs, int blocksize, int blocks) +{ + iso->blocksize = blocksize; + iso->blocks = blocks; + iso->blockofs = blockofs; + printf("blockofs = %d\n", iso->blockofs); + printf("blocksize = %d\n", iso->blocksize); + printf("blocks = %d\n", iso->blocks); + if (iso->flags & ISOFLAGS_BLOCKDUMP) + { + if (_writefile(iso->handle, "BDV2", 4) < 4) return -1; + if (_writefile(iso->handle, &blocksize, 4) < 4) return -1; + if (_writefile(iso->handle, &blocks, 4) < 4) return -1; + if (_writefile(iso->handle, &blockofs, 4) < 4) return -1; + } + + return 0; +} + +s32 MSFtoLSN(u8 *Time) +{ + u32 lsn; + + lsn = Time[2]; + lsn += (Time[1] - 2) * 75; + lsn += Time[0] * 75 * 60; + return lsn; +} + +void LSNtoMSF(u8 *Time, s32 lsn) +{ + u8 m, s, f; + + lsn += 150; + m = lsn / 4500; // minuten + lsn = lsn - m * 4500; // minuten rest + s = lsn / 75; // sekunden + f = lsn - (s * 75); // sekunden rest + Time[0] = itob(m); + Time[1] = itob(s); + Time[2] = itob(f); +} + +int _isoReadBlock(struct isoFile *iso, u8 *dst, int lsn) +{ + u64 ofs = (u64)lsn * iso->blocksize + iso->offset; + u32 ret; + + memset(dst, 0, iso->blockofs); + _seekfile(iso->handle, ofs, SEEK_SET); + ret = _readfile(iso->handle, dst, iso->blocksize); + if (ret < iso->blocksize) + { + printf("read error %d\n", ret); + return -1; + } + + return 0; +} + +int _isoReadBlockD(struct isoFile *iso, u8 *dst, u32 lsn) +{ + u32 ret; + int i; + +// printf("_isoReadBlockD %d, blocksize=%d, blockofs=%d\n", lsn, iso->blocksize, iso->blockofs); + memset(dst, 0, iso->blockofs); + for (i = 0; i < iso->dtablesize;i++) + { + if (iso->dtable[i] != lsn) continue; + + _seekfile(iso->handle, 16 + i*(iso->blocksize + 4) + 4, SEEK_SET); + ret = _readfile(iso->handle, dst, iso->blocksize); + if (ret < iso->blocksize) return -1; + + return 0; + } + printf("block %d not found in dump\n", lsn); + + return -1; +} + +int _isoReadBlockM(struct isoFile *iso, u8 *dst, u32 lsn) +{ + u64 ofs; + u32 ret; + int i; + + for (i = 0; i < 8; i++) + { + if (lsn >= iso->multih[i].slsn && + lsn <= iso->multih[i].elsn) + { + break; + } + } + if (i == 8) return -1; + + ofs = (u64)(lsn - iso->multih[i].slsn) * iso->blocksize + iso->offset; +// printf("_isoReadBlock %d, blocksize=%d, blockofs=%d\n", lsn, iso->blocksize, iso->blockofs); + memset(dst, 0, iso->blockofs); + _seekfile(iso->multih[i].handle, ofs, SEEK_SET); + ret = _readfile(iso->multih[i].handle, dst, iso->blocksize); + + if (ret < iso->blocksize) + { + printf("read error %d\n", ret); + return -1; + } + + return 0; +} + +int isoReadBlock(struct isoFile *iso, u8 *dst, u32 lsn) +{ + int ret; + + if (lsn > iso->blocks) + { + printf("isoReadBlock: %d > %d\n", lsn, iso->blocks); + return -1; + } + + if (iso->flags & ISOFLAGS_BLOCKDUMP) + ret = _isoReadBlockD(iso, dst, lsn); + else if (iso->flags & ISOFLAGS_MULTI) + ret = _isoReadBlockM(iso, dst, lsn); + else + ret = _isoReadBlock(iso, dst, lsn); + + if (ret == -1) return ret; + + if (iso->type == ISOTYPE_CD) + { + LSNtoMSF(dst + 12, lsn); + dst[15] = 2; + } + + return 0; +} + + +int _isoWriteBlock(struct isoFile *iso, u8 *src, u32 lsn) +{ + u64 ofs = (u64)lsn * iso->blocksize + iso->offset; + u32 ret; + + _seekfile(iso->handle, ofs, SEEK_SET); + ret = _writefile(iso->handle, src, iso->blocksize); + if (ret < iso->blocksize) return -1; + + return 0; +} + +int _isoWriteBlockD(struct isoFile *iso, u8 *src, u32 lsn) +{ + u32 ret; + +// printf("_isoWriteBlock %d (ofs=%d)\n", iso->blocksize, ofs); + ret = _writefile(iso->handle, &lsn, 4); + if (ret < 4) return -1; + ret = _writefile(iso->handle, src, iso->blocksize); +// printf("_isoWriteBlock %d\n", ret); + if (ret < iso->blocksize) return -1; + + return 0; +} + +int isoWriteBlock(struct isoFile *iso, u8 *src, u32 lsn) +{ + int ret; + + if (iso->flags & ISOFLAGS_BLOCKDUMP) + ret = _isoWriteBlockD(iso, src, lsn); + else + ret = _isoWriteBlock(iso, src, lsn); + + if (ret == -1) return ret; + return 0; +} + +void isoClose(struct isoFile *iso) +{ + if (iso->handle) _closefile(iso->handle); + if (iso->htable) _closefile(iso->htable); + if (iso->buffer) free(iso->buffer); + + free(iso); +} + +void print_ps2image_info(const char *image_name) +{ + struct isoFile *iso; + u8 * buffer; + + iso = isoOpen(image_name); + + printf("\nImage info:\n\n"); + + printf("offset:\t\t %d\n", iso->offset); + printf("blockofs:\t %d\n", iso->blockofs); + printf("blocksize:\t %d\n", iso->blocksize); + printf("blocks:\t\t %d\n", iso->blocks); + + if((iso->blocksize*iso->blocks) % 0x4000 == 0) + printf("image size:\t OK\n"); + else + printf("image size:\t NG\n"); + + + buffer = (u8*)malloc(iso->blocksize); + isoReadBlock(iso, buffer, iso->blocks - 8); + + if(strncmp(buffer, "LIMG", 4) && be32(buffer+4) != 1 && be32(buffer+8) != ((iso->blocks) - 8 / 0x800) && be32(buffer+12) != 0x800) + printf("LIMG block:\t NG\n"); + else + printf("LIMG block:\t OK\n"); + + isoClose(iso); +} + + +void prepare_iso(char image_name[]) +{ + + FILE * in; + u64 data_size; + u32 data_append; + u64 ret; + u8 buffer[0x4000]; + u8 header_buffer[0x10]; + char limg_header[4] = "LIMG"; + + memset(buffer, 0, 0x4000); + + in = fopen(image_name, "r+b"); + + printf("\nPreparing Image:\n\n"); + + //get file info + fseeko(in, 0, SEEK_END); + data_size = ftello(in); + + + //append iso + data_append = 0x4000 - (data_size % 0x4000); + + if(data_append != 0x4000) + { + fwrite(buffer, data_append, 1, in); + data_size += data_append; + printf("\timage size:\t FIXED\n"); + }else{ + printf("\timage size:\t OK\n"); + } + + + //add limg header + fseeko(in, data_size - 0x4000, SEEK_SET); + ret = fread(header_buffer, 0x10, 1, in); + + if(memcmp(header_buffer, limg_header, 4) && be32(header_buffer+4) != 1 && be32(header_buffer+8) != (data_size/0x800) && be32(header_buffer+12) != 0x800) + { + memcpy(buffer, limg_header, 4); + wbe32(buffer+8, data_size/0x800); + wbe32(buffer+12, 0x800); + wbe32(buffer+4, 1); + + if(memcmp(header_buffer, limg_header, 4)) + fseeko(in, 0, SEEK_END); + else + fseeko(in, data_size - 0x4000, SEEK_SET); + fwrite(buffer, 0x4000, 1, in); + printf("\tLIMG sector:\t ADDED/FIXED\n"); + }else{ + printf("\tLIMG sector:\t OK\n"); + } + + fclose(in); +} diff --git a/ps2classic/iso.h b/ps2classic/iso.h new file mode 100644 index 0000000..da127d2 --- /dev/null +++ b/ps2classic/iso.h @@ -0,0 +1,135 @@ +#ifndef __LIBISO_H__ +#define __LIBISO_H__ + +#define ISOTYPE_ILLEGAL 0 +#define ISOTYPE_CD 1 +#define ISOTYPE_DVD 2 +#define ISOTYPE_AUDIO 3 +#define ISOTYPE_DVDDL 4 + +#define ISOFLAGS_Z 0x0001 +#define ISOFLAGS_Z2 0x0002 +#define ISOFLAGS_BLOCKDUMP 0x0004 +#define ISOFLAGS_MULTI 0x0008 +#define ISOFLAGS_BZ2 0x0010 + +#define CD_FRAMESIZE_RAW 2352 +#define DATA_SIZE (CD_FRAMESIZE_RAW-12) + +#define itob(i) ((i)/10*16 + (i)%10) /* u_char to BCD */ +#define btoi(b) ((b)/16*10 + (b)%16) /* BCD to u_char */ + +#include "types.h" + +typedef struct +{ + u32 slsn; + u32 elsn; + void *handle; +} _multih; + +struct isoFile +{ + char filename[256]; + u32 type; + u32 flags; + u32 offset; + u32 blockofs; + u32 blocksize; + u32 blocks; + void *handle; + void *htable; + char *Ztable; + u32 *dtable; + int dtablesize; + _multih multih[8]; + int buflsn; + u8 *buffer; +}; + + +struct rootDirTocHeader +{ + u16 length; //+00 + u32 tocLBA; //+02 + u32 tocLBA_bigend; //+06 + u32 tocSize; //+0A + u32 tocSize_bigend; //+0E + u8 dateStamp[8]; //+12 + u8 reserved[6]; //+1A + u8 reserved2; //+20 + u8 reserved3; //+21 +} __attribute__((packed)); + + +struct asciiDate +{ + char year[4]; + char month[2]; + char day[2]; + char hours[2]; + char minutes[2]; + char seconds[2]; + char hundreths[2]; + char terminator[1]; +} __attribute__((packed)); + + +struct cdVolDesc +{ + u8 filesystemType; // 0x01 = ISO9660, 0x02 = Joliet, 0xFF = NULL + u8 volID[5]; // "CD001" + u8 reserved2; + u8 reserved3; + u8 sysIdName[32]; + u8 volName[32]; // The ISO9660 Volume Name + u8 reserved5[8]; + u32 volSize; // Volume Size + u32 volSizeBig; // Volume Size Big-Endian + u8 reserved6[32]; + u32 unknown1; + u32 unknown1_bigend; + u16 volDescSize; //+80 + u16 volDescSize_bigend; //+82 + u32 unknown3; //+84 + u32 unknown3_bigend; //+88 + u32 priDirTableLBA; // LBA of Primary Dir Table //+8C + u32 reserved7; //+90 + u32 secDirTableLBA; // LBA of Secondary Dir Table //+94 + u32 reserved8; //+98 + struct rootDirTocHeader rootToc; + s8 volSetName[128]; + s8 publisherName[128]; + s8 preparerName[128]; + s8 applicationName[128]; + s8 copyrightFileName[37]; + s8 abstractFileName[37]; + s8 bibliographyFileName[37]; + struct asciiDate creationDate; + struct asciiDate modificationDate; + struct asciiDate effectiveDate; + struct asciiDate expirationDate; + u8 reserved10; + u8 reserved11[1166]; +} __attribute__((packed)); + + + +struct isoFile *isoOpen(const char *filename); +struct isoFile *isoCreate(const char *filename, int mode); +int isoSetFormat(struct isoFile *iso, int blockofs, int blocksize, int blocks); +int isoDetect(struct isoFile *iso); +int isoReadBlock(struct isoFile *iso, u8 *dst, u32 lsn); +int isoWriteBlock(struct isoFile *iso, u8 *src, u32 lsn); +void isoClose(struct isoFile *iso); +void print_ps2image_info(const char *image_name); +void prepare_iso(char image_name[]); + +void *_openfile(const char *filename, int flags); +u64 _tellfile(void *handle); +int _seekfile(void *handle, u64 offset, int whence); +int _readfile(void *handle, void *dst, int size); +int _writefile(void *handle, void *src, int size); +void _closefile(void *handle); + +#endif /* __LIBISO_H__ */ \ No newline at end of file diff --git a/ps2classic/ps2classic.c b/ps2classic/ps2classic.c new file mode 100644 index 0000000..9aacc10 --- /dev/null +++ b/ps2classic/ps2classic.c @@ -0,0 +1,413 @@ +/*+-----------------------------+*/ +/*|2013 USER |*/ +/*|decrypt algos by flatz |*/ +/*| |*/ +/*|GPL v3, DO NOT USE IF YOU |*/ +/*|DISAGREE TO RELEASE SRC :P |*/ +/*+-----------------------------+*/ + +#include "tools.h" +#include "types.h" +#include "iso.h" + +#include +#include +#include +#include + + +// !!!---- IMPORTANT FOR FWRITE FILES > 2GB ON 32BIT SYSTEMS ----!!! +// add -D"_LARGEFILE64_SOURCE" +// and -D"_FILE_OFFSET_BITS=64" +// to CFLAGS +// !!!-----------------------------------------------------------!!! + +#define PS2_META_SEGMENT_START 1 +#define PS2_DATA_SEGMENT_START 2 +#define PS2_DEFAULT_SEGMENT_SIZE 0x4000 +#define PS2_META_ENTRY_SIZE 0x20 + +#define PS2_VMC_ENCRYPT 1 +#define PS2_VMC_DECRYPT 0 + +//prototypes +void ps2_encrypt_image(char mode[], char image_name[], char data_file[], char real_out_name[], char CID[]); +void ps2_decrypt_image(char mode[], char image_name[], char meta_file[], char data_file[]); +void ps2_crypt_vmc(char mode[], char vmc_path[], char vmc_out[], u8 root_key[], int crypt_mode); +static void build_ps2_header(u8 * buffer, int npd_type, char content_id[], char filename[], s64 iso_size); + + +//keys +u8 ps2_per_console_seed[] = { 0xD9, 0x2D, 0x65, 0xDB, 0x05, 0x7D, 0x49, 0xE1, 0xA6, 0x6F, 0x22, 0x74, 0xB8, 0xBA, 0xC5, 0x08 }; + +u8 ps2_key_cex_meta[] = { 0x38, 0x9D, 0xCB, 0xA5, 0x20, 0x3C, 0x81, 0x59, 0xEC, 0xF9, 0x4C, 0x93, 0x93, 0x16, 0x4C, 0xC9 }; +u8 ps2_key_cex_data[] = { 0x10, 0x17, 0x82, 0x34, 0x63, 0xF4, 0x68, 0xC1, 0xAA, 0x41, 0xD7, 0x00, 0xB1, 0x40, 0xF2, 0x57 }; +u8 ps2_key_cex_vmc[] = { 0x64, 0xE3, 0x0D, 0x19, 0xA1, 0x69, 0x41, 0xD6, 0x77, 0xE3, 0x2E, 0xEB, 0xE0, 0x7F, 0x45, 0xD2 }; + +u8 ps2_key_dex_meta[] = { 0x2B, 0x05, 0xF7, 0xC7, 0xAF, 0xD1, 0xB1, 0x69, 0xD6, 0x25, 0x86, 0x50, 0x3A, 0xEA, 0x97, 0x98 }; +u8 ps2_key_dex_data[] = { 0x74, 0xFF, 0x7E, 0x5D, 0x1D, 0x7B, 0x96, 0x94, 0x3B, 0xEF, 0xDC, 0xFA, 0x81, 0xFC, 0x20, 0x07 }; +u8 ps2_key_dex_vmc[] = { 0x30, 0x47, 0x9D, 0x4B, 0x80, 0xE8, 0x9E, 0x2B, 0x59, 0xE5, 0xC9, 0x14, 0x5E, 0x10, 0x64, 0xA9 }; + +u8 ps2_iv[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; + +u8 fallback_header_hash[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 }; + +u8 npd_omac_key2[] = {0x6B,0xA5,0x29,0x76,0xEF,0xDA,0x16,0xEF,0x3C,0x33,0x9F,0xB2,0x97,0x1E,0x25,0x6B}; +u8 npd_omac_key3[] = {0x9B,0x51,0x5F,0xEA,0xCF,0x75,0x06,0x49,0x81,0xAA,0x60,0x4D,0x91,0xA5,0x4E,0x97}; +u8 npd_kek[] = {0x72,0xF9,0x90,0x78,0x8F,0x9C,0xFF,0x74,0x57,0x25,0xF0,0x8E,0x4C,0x12,0x83,0x87}; + + +u8 eid_root_key[0x30]; +u8 * klicensee; + + +static void set_ps2_iv(u8 iv[]) +{ + memcpy(iv, ps2_iv, 0x10); +} + + +static void build_ps2_header(u8 * buffer, int npd_type, char content_id[], char filename[], s64 iso_size) +{ + + int i; + u32 type = 1; + u8 test_hash[] = { 0xBF, 0x2E, 0x44, 0x15, 0x52, 0x8F, 0xD7, 0xDD, 0xDB, 0x0A, 0xC2, 0xBF, 0x8C, 0x15, 0x87, 0x51 }; + + wbe32(buffer, 0x50533200); // PS2\0 + wbe16(buffer + 0x4, 0x1); // ver major + wbe16(buffer + 0x6, 0x1); // ver minor + wbe32(buffer + 0x8, npd_type); // NPD type XX + wbe32(buffer + 0xc, type); // type + + wbe64(buffer + 0x88, iso_size); //iso size + wbe32(buffer + 0x84, PS2_DEFAULT_SEGMENT_SIZE); //segment size + + strncpy(buffer + 0x10, content_id, 0x30); + + u8 npd_omac_key[0x10]; + + for(i=0;i<0x10;i++) npd_omac_key[i] = npd_kek[i] ^ npd_omac_key2[i]; + + get_rand(buffer + 0x40, 0x10); //npdhash1 + //memcpy(buffer + 0x40, test_hash, 0x10); + + int buf_len = 0x30+strlen(filename); + char *buf = (char*)malloc(buf_len+1); + memcpy(buf, buffer + 0x10, 0x30); + strcpy(buf+0x30, filename); + aesOmacMode1(buffer + 0x50, buf, buf_len, npd_omac_key3, sizeof(npd_omac_key3)*8); //npdhash2 + free(buf); + aesOmacMode1(buffer + 0x60, (u8*)(buffer), 0x60, npd_omac_key, sizeof(npd_omac_key)*8); //npdhash3 + +} + + +void ps2_decrypt_image(char mode[], char image_name[], char meta_file[], char data_file[]) +{ + FILE * in; + FILE * data_out; + FILE * meta_out; + + u8 ps2_data_key[0x10]; + u8 ps2_meta_key[0x10]; + u8 iv[0x10]; + + int segment_size; + s64 data_size; + int i; + u8 header[256]; + u8 * data_buffer; + u8 * meta_buffer; + u32 read = 0; + int num_child_segments; + + //open files + in = fopen(image_name, "rb"); + meta_out = fopen(meta_file, "wb"); + data_out = fopen(data_file, "wb"); + + //get file info + read = fread(header, 256, 1, in); + segment_size = be32(header + 0x84); + data_size = be64(header + 0x88); + num_child_segments = segment_size / PS2_META_ENTRY_SIZE; + + printf("segment size: %x\ndata_size: %lx\n\n", segment_size, data_size); + + //alloc buffers + data_buffer = malloc(segment_size*num_child_segments); + meta_buffer = malloc(segment_size); + + //generate keys + if(strcmp(mode, "cex") == 0) + { + printf("cex\n"); + set_ps2_iv(iv); + aes128cbc_enc(ps2_key_cex_data, iv, klicensee, 0x10, ps2_data_key); + aes128cbc_enc(ps2_key_cex_meta, iv, klicensee, 0x10, ps2_meta_key); + }else{ + printf("dex\n"); + set_ps2_iv(iv); + aes128cbc_enc(ps2_key_dex_data, iv, klicensee, 0x10, ps2_data_key); + aes128cbc_enc(ps2_key_dex_meta, iv, klicensee, 0x10, ps2_meta_key); + } + + + //decrypt iso + fseek(in, segment_size, SEEK_SET); + + while(read = fread(meta_buffer, 1, segment_size, in)) + { + //decrypt meta + aes128cbc(ps2_meta_key, iv, meta_buffer, read, meta_buffer); + fwrite(meta_buffer, read, 1, meta_out); + + + read = fread(data_buffer, 1, segment_size*num_child_segments, in); + for(i=0;i= read) + fwrite(data_buffer, read, 1, data_out); + else + fwrite(data_buffer, data_size, 1, data_out); + + data_size -= read; + } + + //cleanup + free(data_buffer); + free(meta_buffer); + + fclose(in); + fclose(data_out); + fclose(meta_out); +} + + +void ps2_encrypt_image(char mode[], char image_name[], char data_file[], char real_out_name[], char CID[]) +{ + FILE * in; + FILE * data_out; + + u8 ps2_data_key[0x10]; + u8 ps2_meta_key[0x10]; + u8 iv[0x10]; + + u32 segment_size; + s64 data_size; + u32 i; + u8 header[256]; + u8 * data_buffer; + u8 * meta_buffer; + u8 * ps2_header; + + + u32 read = 0; + u32 num_child_segments = 0x200; + u32 segment_number = 0; + + //open files + in = fopen(image_name, "rb"); + data_out = fopen(data_file, "wb"); + + //get file info + segment_size = PS2_DEFAULT_SEGMENT_SIZE; + fseeko(in, 0, SEEK_END); + data_size = ftello(in); + fseeko(in, 0, SEEK_SET); + + printf("segment size: %x\ndata_size: %lx\nCID: %s\niso %s\nout file: %s\n", segment_size, data_size, CID, image_name, data_file); + + //prepare buffers + data_buffer = malloc(segment_size * 0x200); + meta_buffer = malloc(segment_size); + ps2_header = malloc(segment_size); + memset(ps2_header, 0, segment_size); + + //generate keys + if(strcmp(mode, "cex") == 0) + { + printf("cex\n"); + set_ps2_iv(iv); + aes128cbc_enc(ps2_key_cex_data, iv, klicensee, 0x10, ps2_data_key); + aes128cbc_enc(ps2_key_cex_meta, iv, klicensee, 0x10, ps2_meta_key); + }else{ + printf("dex\n"); + set_ps2_iv(iv); + aes128cbc_enc(ps2_key_dex_data, iv, klicensee, 0x10, ps2_data_key); + aes128cbc_enc(ps2_key_dex_meta, iv, klicensee, 0x10, ps2_meta_key); + } + + + //write incomplete ps2 header + build_ps2_header(ps2_header, 2, CID, real_out_name, data_size); + fwrite(ps2_header, segment_size, 1, data_out); + + + //write encrypted image + while(read = fread(data_buffer, 1, segment_size*num_child_segments, in)) + { + //last segments? + if(read != (segment_size*num_child_segments)) + { + num_child_segments = (read / segment_size); + if((read % segment_size) > 0) + num_child_segments += 1; + } + + memset(meta_buffer, 0, segment_size); + + //encrypt data and create meta + for(i=0;i 6) + klicensee = mmap_file(argv[3]); + + if(strcmp(argv[1], "d") == 0) + if(argc == 7) + ps2_decrypt_image(argv[2], argv[4], argv[6], argv[5]); + else + printf("Error: invalid number of arguments for decryption\n"); + else if(strcmp(argv[1], "e") == 0) + if(argc == 8) + ps2_encrypt_image(argv[2], argv[4], argv[5], argv[6], argv[7]); + else + printf("Error: invalid number of arguments for encryption\n"); + else if(strcmp(argv[1], "vd") == 0 || strcmp(argv[1], "ve") == 0) + { + if(argc == 6) + root_key = mmap_file(argv[3]); + else if(argc == 5){ + root_key = malloc(0x30); + memset(root_key, 0, 0x30); + }else{ + printf("Error: invalid number of arguments for vme processing\n"); + exit(0); + } + + if(strcmp(argv[1], "vd") == 0) + ps2_crypt_vmc(argv[2], argv[3], argv[4], root_key, PS2_VMC_DECRYPT); + else + ps2_crypt_vmc(argv[2], argv[3], argv[4], root_key, PS2_VMC_ENCRYPT); + + free(root_key); + } + else if(strcmp(argv[1], "prepare") == 0 && argc == 3) + { + prepare_iso(argv[2]); + } + else if(strcmp(argv[1], "info") == 0 && argc == 3) + { + print_ps2image_info(argv[2]); + } + else + printf("FAIL: unknown option or wrong number of arguments\n"); + +} diff --git a/ps2classic/sha1.c b/ps2classic/sha1.c new file mode 100644 index 0000000..88629da --- /dev/null +++ b/ps2classic/sha1.c @@ -0,0 +1,380 @@ +/* + * sha1.c + * + * Copyright (C) 1998 + * Paul E. Jones + * All Rights Reserved + * + * This software is licensed as "freeware." Permission to distribute + * this software in source and binary forms is hereby granted without + * a fee. THIS SOFTWARE IS PROVIDED 'AS IS' AND WITHOUT ANY EXPRESSED + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + * THE AUTHOR SHALL NOT BE HELD LIABLE FOR ANY DAMAGES RESULTING + * FROM THE USE OF THIS SOFTWARE, EITHER DIRECTLY OR INDIRECTLY, INCLUDING, + * BUT NOT LIMITED TO, LOSS OF DATA OR DATA BEING RENDERED INACCURATE. + * + ***************************************************************************** + * $Id: sha1.c,v 1.2 2004/03/27 18:00:33 paulej Exp $ + ***************************************************************************** + * + * Description: + * This file implements the Secure Hashing Standard as defined + * in FIPS PUB 180-1 published April 17, 1995. + * + * The Secure Hashing Standard, which uses the Secure Hashing + * Algorithm (SHA), produces a 160-bit message digest for a + * given data stream. In theory, it is highly improbable that + * two messages will produce the same message digest. Therefore, + * this algorithm can serve as a means of providing a "fingerprint" + * for a message. + * + * Portability Issues: + * SHA-1 is defined in terms of 32-bit "words". This code was + * written with the expectation that the processor has at least + * a 32-bit machine word size. If the machine word size is larger, + * the code should still function properly. One caveat to that + * is that the input functions taking characters and character + * arrays assume that only 8 bits of information are stored in each + * character. + * + * Caveats: + * SHA-1 is designed to work with messages less than 2^64 bits + * long. Although SHA-1 allows a message digest to be generated for + * messages of any number of bits less than 2^64, this + * implementation only works with messages with a length that is a + * multiple of the size of an 8-bit character. + * + */ + +#include "sha1.h" + +/* + * Define the circular shift macro + */ +#define SHA1CircularShift(bits,word) \ + ((((word) << (bits)) & 0xFFFFFFFF) | \ + ((word) >> (32-(bits)))) + +/* Function prototypes */ +void SHA1ProcessMessageBlock(SHA1Context *); +void SHA1PadMessage(SHA1Context *); + +/* + * SHA1Reset + * + * Description: + * This function will initialize the SHA1Context in preparation + * for computing a new message digest. + * + * Parameters: + * context: [in/out] + * The context to reset. + * + * Returns: + * Nothing. + * + * Comments: + * + */ +void SHA1Reset(SHA1Context *context) +{ + context->Length_Low = 0; + context->Length_High = 0; + context->Message_Block_Index = 0; + + context->Message_Digest[0] = 0x67452301; + context->Message_Digest[1] = 0xEFCDAB89; + context->Message_Digest[2] = 0x98BADCFE; + context->Message_Digest[3] = 0x10325476; + context->Message_Digest[4] = 0xC3D2E1F0; + + context->Computed = 0; + context->Corrupted = 0; +} + +/* + * SHA1Result + * + * Description: + * This function will return the 160-bit message digest into the + * Message_Digest array within the SHA1Context provided + * + * Parameters: + * context: [in/out] + * The context to use to calculate the SHA-1 hash. + * + * Returns: + * 1 if successful, 0 if it failed. + * + * Comments: + * + */ +int SHA1Result(SHA1Context *context) +{ + + if (context->Corrupted) + { + return 0; + } + + if (!context->Computed) + { + SHA1PadMessage(context); + context->Computed = 1; + } + + return 1; +} + +/* + * SHA1Input + * + * Description: + * This function accepts an array of octets as the next portion of + * the message. + * + * Parameters: + * context: [in/out] + * The SHA-1 context to update + * message_array: [in] + * An array of characters representing the next portion of the + * message. + * length: [in] + * The length of the message in message_array + * + * Returns: + * Nothing. + * + * Comments: + * + */ +void SHA1Input( SHA1Context *context, + const unsigned char *message_array, + unsigned length) +{ + if (!length) + { + return; + } + + if (context->Computed || context->Corrupted) + { + context->Corrupted = 1; + return; + } + + while(length-- && !context->Corrupted) + { + context->Message_Block[context->Message_Block_Index++] = + (*message_array & 0xFF); + + context->Length_Low += 8; + /* Force it to 32 bits */ + context->Length_Low &= 0xFFFFFFFF; + if (context->Length_Low == 0) + { + context->Length_High++; + /* Force it to 32 bits */ + context->Length_High &= 0xFFFFFFFF; + if (context->Length_High == 0) + { + /* Message is too long */ + context->Corrupted = 1; + } + } + + if (context->Message_Block_Index == 64) + { + SHA1ProcessMessageBlock(context); + } + + message_array++; + } +} + +/* + * SHA1ProcessMessageBlock + * + * Description: + * This function will process the next 512 bits of the message + * stored in the Message_Block array. + * + * Parameters: + * None. + * + * Returns: + * Nothing. + * + * Comments: + * Many of the variable names in the SHAContext, especially the + * single character names, were used because those were the names + * used in the publication. + * + * + */ +void SHA1ProcessMessageBlock(SHA1Context *context) +{ + const unsigned K[] = /* Constants defined in SHA-1 */ + { + 0x5A827999, + 0x6ED9EBA1, + 0x8F1BBCDC, + 0xCA62C1D6 + }; + int t; /* Loop counter */ + unsigned temp; /* Temporary word value */ + unsigned W[80]; /* Word sequence */ + unsigned A, B, C, D, E; /* Word buffers */ + + /* + * Initialize the first 16 words in the array W + */ + for(t = 0; t < 16; t++) + { + W[t] = ((unsigned) context->Message_Block[t * 4]) << 24; + W[t] |= ((unsigned) context->Message_Block[t * 4 + 1]) << 16; + W[t] |= ((unsigned) context->Message_Block[t * 4 + 2]) << 8; + W[t] |= ((unsigned) context->Message_Block[t * 4 + 3]); + } + + for(t = 16; t < 80; t++) + { + W[t] = SHA1CircularShift(1,W[t-3] ^ W[t-8] ^ W[t-14] ^ W[t-16]); + } + + A = context->Message_Digest[0]; + B = context->Message_Digest[1]; + C = context->Message_Digest[2]; + D = context->Message_Digest[3]; + E = context->Message_Digest[4]; + + for(t = 0; t < 20; t++) + { + temp = SHA1CircularShift(5,A) + + ((B & C) | ((~B) & D)) + E + W[t] + K[0]; + temp &= 0xFFFFFFFF; + E = D; + D = C; + C = SHA1CircularShift(30,B); + B = A; + A = temp; + } + + for(t = 20; t < 40; t++) + { + temp = SHA1CircularShift(5,A) + (B ^ C ^ D) + E + W[t] + K[1]; + temp &= 0xFFFFFFFF; + E = D; + D = C; + C = SHA1CircularShift(30,B); + B = A; + A = temp; + } + + for(t = 40; t < 60; t++) + { + temp = SHA1CircularShift(5,A) + + ((B & C) | (B & D) | (C & D)) + E + W[t] + K[2]; + temp &= 0xFFFFFFFF; + E = D; + D = C; + C = SHA1CircularShift(30,B); + B = A; + A = temp; + } + + for(t = 60; t < 80; t++) + { + temp = SHA1CircularShift(5,A) + (B ^ C ^ D) + E + W[t] + K[3]; + temp &= 0xFFFFFFFF; + E = D; + D = C; + C = SHA1CircularShift(30,B); + B = A; + A = temp; + } + + context->Message_Digest[0] = + (context->Message_Digest[0] + A) & 0xFFFFFFFF; + context->Message_Digest[1] = + (context->Message_Digest[1] + B) & 0xFFFFFFFF; + context->Message_Digest[2] = + (context->Message_Digest[2] + C) & 0xFFFFFFFF; + context->Message_Digest[3] = + (context->Message_Digest[3] + D) & 0xFFFFFFFF; + context->Message_Digest[4] = + (context->Message_Digest[4] + E) & 0xFFFFFFFF; + + context->Message_Block_Index = 0; +} + +/* + * SHA1PadMessage + * + * Description: + * According to the standard, the message must be padded to an even + * 512 bits. The first padding bit must be a '1'. The last 64 + * bits represent the length of the original message. All bits in + * between should be 0. This function will pad the message + * according to those rules by filling the Message_Block array + * accordingly. It will also call SHA1ProcessMessageBlock() + * appropriately. When it returns, it can be assumed that the + * message digest has been computed. + * + * Parameters: + * context: [in/out] + * The context to pad + * + * Returns: + * Nothing. + * + * Comments: + * + */ +void SHA1PadMessage(SHA1Context *context) +{ + /* + * Check to see if the current message block is too small to hold + * the initial padding bits and length. If so, we will pad the + * block, process it, and then continue padding into a second + * block. + */ + if (context->Message_Block_Index > 55) + { + context->Message_Block[context->Message_Block_Index++] = 0x80; + while(context->Message_Block_Index < 64) + { + context->Message_Block[context->Message_Block_Index++] = 0; + } + + SHA1ProcessMessageBlock(context); + + while(context->Message_Block_Index < 56) + { + context->Message_Block[context->Message_Block_Index++] = 0; + } + } + else + { + context->Message_Block[context->Message_Block_Index++] = 0x80; + while(context->Message_Block_Index < 56) + { + context->Message_Block[context->Message_Block_Index++] = 0; + } + } + + /* + * Store the message length as the last 8 octets + */ + context->Message_Block[56] = (context->Length_High >> 24) & 0xFF; + context->Message_Block[57] = (context->Length_High >> 16) & 0xFF; + context->Message_Block[58] = (context->Length_High >> 8) & 0xFF; + context->Message_Block[59] = (context->Length_High) & 0xFF; + context->Message_Block[60] = (context->Length_Low >> 24) & 0xFF; + context->Message_Block[61] = (context->Length_Low >> 16) & 0xFF; + context->Message_Block[62] = (context->Length_Low >> 8) & 0xFF; + context->Message_Block[63] = (context->Length_Low) & 0xFF; + + SHA1ProcessMessageBlock(context); +} diff --git a/ps2classic/sha1.h b/ps2classic/sha1.h new file mode 100644 index 0000000..b355d22 --- /dev/null +++ b/ps2classic/sha1.h @@ -0,0 +1,72 @@ +/* + * sha1.h + * + * Copyright (C) 1998 + * Paul E. Jones + * All Rights Reserved + * + * This software is licensed as "freeware." Permission to distribute + * this software in source and binary forms is hereby granted without + * a fee. THIS SOFTWARE IS PROVIDED 'AS IS' AND WITHOUT ANY EXPRESSED + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + * THE AUTHOR SHALL NOT BE HELD LIABLE FOR ANY DAMAGES RESULTING + * FROM THE USE OF THIS SOFTWARE, EITHER DIRECTLY OR INDIRECTLY, INCLUDING, + * BUT NOT LIMITED TO, LOSS OF DATA OR DATA BEING RENDERED INACCURATE. + * + * This software is licensed as "freeware." Permission to distribute + * this software in source and binary forms is hereby granted without + * a fee. THIS SOFTWARE IS PROVIDED 'AS IS' AND WITHOUT ANY EXPRESSED + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + * THE AUTHOR SHALL NOT BE HELD LIABLE FOR ANY DAMAGES RESULTING + * FROM THE USE OF THIS SOFTWARE, EITHER DIRECTLY OR INDIRECTLY, INCLUDING, + * BUT NOT LIMITED TO, LOSS OF DATA OR DATA BEING RENDERED INACCURATE. + * + ***************************************************************************** + * $Id: sha1.h,v 1.2 2004/03/27 18:00:33 paulej Exp $ + ***************************************************************************** + * + * Description: + * This class implements the Secure Hashing Standard as defined + * in FIPS PUB 180-1 published April 17, 1995. + * + * Many of the variable names in the SHA1Context, especially the + * single character names, were used because those were the names + * used in the publication. + * + * Please read the file sha1.c for more information. + * + */ + +#ifndef _SHA1_H_ +#define _SHA1_H_ + +/* + * This structure will hold context information for the hashing + * operation + */ +typedef struct SHA1Context +{ + unsigned Message_Digest[5]; /* Message Digest (output) */ + + unsigned Length_Low; /* Message length in bits */ + unsigned Length_High; /* Message length in bits */ + + unsigned char Message_Block[64]; /* 512-bit message blocks */ + int Message_Block_Index; /* Index into message block array */ + + int Computed; /* Is the digest computed? */ + int Corrupted; /* Is the message digest corruped? */ +} SHA1Context; + +/* + * Function Prototypes + */ +void SHA1Reset(SHA1Context *); +int SHA1Result(SHA1Context *); +void SHA1Input( SHA1Context *, + const unsigned char *, + unsigned); + +#endif diff --git a/ps2classic/tools.c b/ps2classic/tools.c new file mode 100644 index 0000000..865ee65 --- /dev/null +++ b/ps2classic/tools.c @@ -0,0 +1,273 @@ +// some functions borrowed from: +// Sven Peter +// Segher Boessenkool +// Licensed under the terms of the GNU GPL, version 2 +// http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#ifdef WIN32 +#include "mingw_mmap.h" +#include +#include +#include +#include +#else +#include +#endif + +#include "tools.h" + + + + + +void *mmap_file(const char *path) +{ + int fd; + struct stat st; + void *ptr; + + fd = open(path, O_RDONLY); + if(fd == -1) + fail("open %s", path); + if(fstat(fd, &st) != 0) + fail("fstat %s", path); + + ptr = mmap(0, st.st_size, PROT_READ | PROT_WRITE, MAP_PRIVATE, fd, 0); + if(ptr==NULL) + fail("mmap"); + close(fd); + + return ptr; +} + + +void fail(const char *a, ...) +{ + char msg[1024]; + va_list va; + + va_start(va, a); + vsnprintf(msg, sizeof msg, a, va); + fprintf(stderr, "%s\n", msg); + perror("perror"); + + exit(1); +} + + + +void print_hash(u8 *ptr, u32 len) +{ + while(len--) + printf(" %02x", *ptr++); +} + +void aes256cbc(u8 *key, u8 *iv_in, u8 *in, u64 len, u8 *out) +{ + AES_KEY k; + u32 i; + u8 tmp[16]; + u8 iv[16]; + + memcpy(iv, iv_in, 16); + memset(&k, 0, sizeof k); + AES_set_decrypt_key(key, 256, &k); + + while (len > 0) { + memcpy(tmp, in, 16); + AES_decrypt(in, out, &k); + + for (i = 0; i < 16; i++) + out[i] ^= iv[i]; + + memcpy(iv, tmp, 16); + + out += 16; + in += 16; + len -= 16; + + } +} + + +void aes256cbc_enc(u8 *key, u8 *iv, u8 *in, u64 len, u8 *out) +{ + AES_KEY k; + u32 i; + u8 tmp[16]; + + memcpy(tmp, iv, 16); + memset(&k, 0, sizeof k); + AES_set_encrypt_key(key, 256, &k); + + while (len > 0) { + for (i = 0; i < 16; i++) + tmp[i] ^= *in++; + + AES_encrypt(tmp, out, &k); + memcpy(tmp, out, 16); + + out += 16; + len -= 16; + } +} + + +void aes128cbc(u8 *key, u8 *iv_in, u8 *in, u64 len, u8 *out) +{ + AES_KEY k; + u32 i; + u8 tmp[16]; + u8 iv[16]; + + memcpy(iv, iv_in, 16); + memset(&k, 0, sizeof k); + AES_set_decrypt_key(key, 128, &k); + + while (len > 0) { + memcpy(tmp, in, 16); + AES_decrypt(in, out, &k); + + for (i = 0; i < 16; i++) + out[i] ^= iv[i]; + + memcpy(iv, tmp, 16); + + out += 16; + in += 16; + len -= 16; + + } +} + +void aes128cbc_enc(u8 *key, u8 *iv, u8 *in, u64 len, u8 *out) +{ + AES_KEY k; + u32 i; + u8 tmp[16]; + + memcpy(tmp, iv, 16); + memset(&k, 0, sizeof k); + AES_set_encrypt_key(key, 128, &k); + + while (len > 0) { + for (i = 0; i < 16; i++) + tmp[i] ^= *in++; + + AES_encrypt(tmp, out, &k); + memcpy(tmp, out, 16); + + out += 16; + len -= 16; + } +} + +void rol1(u8* worthless) { + int i; + u8 xor = (worthless[0]&0x80)?0x87:0; + for(i=0;i<0xF;i++) { + worthless[i] <<= 1; + worthless[i] |= worthless[i+1]>>7; + } + worthless[0xF] <<= 1; + worthless[0xF] ^= xor; +} + +void aesOmacMode1(u8* output, u8* input, int len, u8* aes_key_data, int aes_key_bits) +{ + int i,j; + i = 0; + AES_KEY aes_key; + AES_set_encrypt_key(aes_key_data, aes_key_bits, &aes_key); + + u8 running[0x10]; memset(running, 0, 0x10); + u8 hash[0x10]; + u8 worthless[0x10]; + u8 final[0x10]; + + AES_encrypt(running, worthless, &aes_key); + rol1(worthless); + + if(len > 0x10) { + for(i=0;i<(len-0x10);i+=0x10) { + for(j=0;j<0x10;j++) hash[j] = running[j] ^ input[i+j]; + AES_encrypt(hash, running, &aes_key); + } + } + int overrun = len&0xF; + if( (len%0x10) == 0 ) overrun = 0x10; + + memset(hash, 0, 0x10); + memcpy(hash, &input[i], overrun); + + if(overrun != 0x10) { + hash[overrun] = 0x80; + rol1(worthless); + } + + for(j=0;j<0x10;j++) hash[j] ^= running[j] ^ worthless[j]; + AES_encrypt(hash, output, &aes_key); +} + + +static void sha1_fixup(struct SHA1Context *ctx, u8 *digest) +{ + u32 i; + + for(i = 0; i < 5; i++) { + *digest++ = ctx->Message_Digest[i] >> 24 & 0xff; + *digest++ = ctx->Message_Digest[i] >> 16 & 0xff; + *digest++ = ctx->Message_Digest[i] >> 8 & 0xff; + *digest++ = ctx->Message_Digest[i] & 0xff; + } +} + +void sha1(u8 *data, u32 len, u8 *digest) +{ + struct SHA1Context ctx; + + SHA1Reset(&ctx); + SHA1Input(&ctx, data, len); + SHA1Result(&ctx); + + sha1_fixup(&ctx, digest); +} + +#ifdef WIN32 +void get_rand(u8 *bfr, u32 size) +{ + HCRYPTPROV hProv; + + if (!CryptAcquireContext(&hProv, NULL, NULL, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT)) + fail("unable to open random"); + + if (!CryptGenRandom(hProv, size, bfr)) + fail("unable to read random numbers"); + + CryptReleaseContext(hProv, 0); +} +#else +void get_rand(u8 *bfr, u32 size) +{ + FILE *fp; + + fp = fopen("/dev/urandom", "r"); + if (fp == NULL) + fail("unable to open random"); + + if (fread(bfr, size, 1, fp) != 1) + printf("unable to read /dev/urandom"); + + fclose(fp); +} +#endif diff --git a/ps2classic/tools.h b/ps2classic/tools.h new file mode 100644 index 0000000..a0b695f --- /dev/null +++ b/ps2classic/tools.h @@ -0,0 +1,30 @@ +// some functions borrowed from: +// Sven Peter +// Segher Boessenkool +// Licensed under the terms of the GNU GPL, version 2 +// http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt + +#ifndef TOOLS_H__ +#define TOOLS_H__ 1 +#include +#include +#include +#include + +#include "types.h" +#include "aes.h" +#include "sha1.h" + +void fail(const char *a, ...); +void *mmap_file(const char *path); + +void aes256cbc(u8 *key, u8 *iv, u8 *in, u64 len, u8 *out); +void aes256cbc_enc(u8 *key, u8 *iv, u8 *in, u64 len, u8 *out); +void aes128cbc(u8 *key, u8 *iv_in, u8 *in, u64 len, u8 *out); +void aes128cbc_enc(u8 *key, u8 *iv, u8 *in, u64 len, u8 *out); +void aesOmacMode1(u8* output, u8* input, int len, u8* aes_key_data, int aes_key_bits); + +void sha1(u8 *data, u32 len, u8 *digest); + +void get_rand(u8 *bfr, u32 size); +#endif diff --git a/ps2classic/types.h b/ps2classic/types.h new file mode 100644 index 0000000..3f284a0 --- /dev/null +++ b/ps2classic/types.h @@ -0,0 +1,107 @@ +// Copyright 2013 RobertoB* +// Licensed under the terms of the GNU GPL, version 2 +// http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt +#ifndef TYPES_H__ +#define TYPES_H__ + +#include + +typedef uint64_t u64; +typedef int64_t s64; +typedef uint32_t u32; +typedef int32_t s32; +typedef uint16_t u16; +typedef int16_t s16; +typedef uint8_t u8; +typedef int8_t s8; + + +#ifdef WIN32 + #define ftello ftello64 + #define fseeko fseeko64 +#endif + + + +static inline u8 be8(u8 *p) +{ + return *p; +} + +static inline u16 be16(u8 *p) +{ + u16 a; + + a = p[0] << 8; + a |= p[1]; + + return a; +} + +static inline u16 le16(u8 *p) +{ + u16 a; + + a = p[1] << 8; + a |= p[0]; + + return a; +} + +static inline u32 be32(u8 *p) +{ + u32 a; + + a = p[0] << 24; + a |= p[1] << 16; + a |= p[2] << 8; + a |= p[3] << 0; + + return a; +} + +static inline u32 le32(u8 *p) +{ + u32 a; + + a = p[3] << 24; + a |= p[2] << 16; + a |= p[1] << 8; + a |= p[0] << 0; + + return a; +} + +static inline u64 be64(u8 *p) +{ + u32 a, b; + + a = be32(p); + b = be32(p + 4); + + return ((u64)a<<32) | b; +} + +static inline void wbe16(u8 *p, u16 v) +{ + p[0] = v >> 8; + p[1] = v; +} + +static inline void wbe32(u8 *p, u32 v) +{ + p[0] = v >> 24; + p[1] = v >> 16; + p[2] = v >> 8; + p[3] = v; +} + +static inline void wbe64(u8 *p, u64 v) +{ + wbe32(p + 4, v); + v >>= 32; + wbe32(p, v); +} + + +#endif diff --git a/skeleton.tgz b/skeleton.tgz new file mode 100644 index 0000000000000000000000000000000000000000..ee71b16e911088ec211c8e7b608b99709ae1ce72 GIT binary patch literal 365906 zcmV(zK<2+6iwFP!000001MK~EP+U>_E{Ng;2#^E_!Cis|cXxM(CIt834nYzi3GPmC zch?{Z?$UVU4K!{IG%}s!`%RsxbL-r5|2XH)RLv@O_ugyoz4VpmS^cg=K}t>a9h&vj1E$n))OF?Thk#4E$s{S){qyA(s+o~lG08e)U`Wa;JYA( zfe3s6ysde8l;wHGoz&FJNpdd;2$0UDKVm3}CyVP#tIxle@c^{o+^ zmMy}fB1|+1*!Y|-LK1>vNpj;<8f*EaC4=Bz`HC5D$ z5bZEN-d*mWeNU;O!<_efM^DOG7i~o*7zKGtEoWpZHD0~ULBOy#~k+G;3liF^w}BRx>kNI zt5K^YpR!_}XP+ocHKIMf$Lk`z70_k(;?O6)Wsi@th(9NXmJ`|eUoK!_&OtW0ddSDS`e%!M-$69^V0&NOUn8*1fs#&KBZDi>w9@%Fu$vY! zJ#sP~!Jcsbu;CSn%1b(L*;n5iyO=P(5^@;??GZj_mscUNAc-^}l~fJmOncX-{H2uh zIVLEl@>#TmSX zw@x{Ober=tRrrVMtL^PEdJa@D3I6DZDX}-63bW7p1nt&`&jWbV+sjBmZ0GhWi4n

i-)gC-^a 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

|$8X&i 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