/* SPDX-License-Identifier: GPL-2.0-or-later */
/*
* 4K AES tables for PPC AES implementation
*
* Copyright (c) 2015 Markus Stockhausen <stockhausen@collogia.de>
*/
/*
* These big endian AES encryption/decryption tables have been taken from
* crypto/aes_generic.c and are designed to be simply accessed by a combination
* of rlwimi/lwz instructions with a minimum of table registers (usually only
* one required). Thus they are aligned to 4K. The locality of rotated values
* is derived from the reduced offsets that are available in the SPE load
* instructions. E.g. evldw, evlwwsplat, ...
*
* For the safety-conscious it has to be noted that they might be vulnerable
* to cache timing attacks because of their size. Nevertheless in contrast to
* the generic tables they have been reduced from 16KB to 8KB + 256 bytes.
* This is a quite good tradeoff for low power devices (e.g. routers) without
* dedicated encryption hardware where we usually have no multiuser
* environment.
*
*/
#define R(a, b, c, d) \
0 x##a##b##c##d, 0 x##d##a##b##c, 0 x##c##d##a##b, 0 x##b##c##d##a
.data
.align 12
.globl PPC_AES_4K_ENCTAB
PPC_AES_4K_ENCTAB:
/* encryption table, same as crypto_ft_tab in crypto/aes-generic.c */
.long R(c6, 63 , 63 , a5), R(f8, 7 c, 7 c, 84 )
.long R(ee, 77 , 77 , 99 ), R(f6, 7 b, 7 b, 8 d)
.long R(ff, f2, f2, 0 d), R(d6, 6 b, 6 b, bd)
.long R(de, 6 f, 6 f, b1), R(91 , c5, c5, 54 )
.long R(60 , 30 , 30 , 50 ), R(02 , 01 , 01 , 03 )
.long R(ce, 67 , 67 , a9), R(56 , 2 b, 2 b, 7 d)
.long R(e7, fe, fe, 19 ), R(b5, d7, d7, 62 )
.long R(4 d, ab, ab, e6), R(ec, 76 , 76 , 9 a)
.long R(8 f, ca, ca, 45 ), R(1 f, 82 , 82 , 9 d)
.long R(89 , c9, c9, 40 ), R(fa, 7 d, 7 d, 87 )
.long R(ef, fa, fa, 15 ), R(b2, 59 , 59 , eb)
.long R(8 e, 47 , 47 , c9), R(fb, f0, f0, 0 b)
.long R(41 , ad, ad, ec), R(b3, d4, d4, 67 )
.long R(5 f, a2, a2, fd), R(45 , af, af, ea)
.long R(23 , 9 c, 9 c, bf), R(53 , a4, a4, f7)
.long R(e4, 72 , 72 , 96 ), R(9 b, c0, c0, 5 b)
.long R(75 , b7, b7, c2), R(e1, fd, fd, 1 c)
.long R(3 d, 93 , 93 , ae), R(4 c, 26 , 26 , 6 a)
.long R(6 c, 36 , 36 , 5 a), R(7 e, 3 f, 3 f, 41 )
.long R(f5, f7, f7, 02 ), R(83 , cc, cc, 4 f)
.long R(68 , 34 , 34 , 5 c), R(51 , a5, a5, f4)
.long R(d1, e5, e5, 34 ), R(f9, f1, f1, 08 )
.long R(e2, 71 , 71 , 93 ), R(ab, d8, d8, 73 )
.long R(62 , 31 , 31 , 53 ), R(2 a, 15 , 15 , 3 f)
.long R(08 , 04 , 04 , 0 c), R(95 , c7, c7, 52 )
.long R(46 , 23 , 23 , 65 ), R(9 d, c3, c3, 5 e)
.long R(30 , 18 , 18 , 28 ), R(37 , 96 , 96 , a1)
.long R(0 a, 05 , 05 , 0 f), R(2 f, 9 a, 9 a, b5)
.long R(0 e, 07 , 07 , 09 ), R(24 , 12 , 12 , 36 )
.long R(1 b, 80 , 80 , 9 b), R(df, e2, e2, 3 d)
.long R(cd, eb, eb, 26 ), R(4 e, 27 , 27 , 69 )
.long R(7 f, b2, b2, cd), R(ea, 75 , 75 , 9 f)
.long R(12 , 09 , 09 , 1 b), R(1 d, 83 , 83 , 9 e)
.long R(58 , 2 c, 2 c, 74 ), R(34 , 1 a, 1 a, 2 e)
.long R(36 , 1 b, 1 b, 2 d), R(dc, 6 e, 6 e, b2)
.long R(b4, 5 a, 5 a, ee), R(5 b, a0, a0, fb)
.long R(a4, 52 , 52 , f6), R(76 , 3 b, 3 b, 4 d)
.long R(b7, d6, d6, 61 ), R(7 d, b3, b3, ce)
.long R(52 , 29 , 29 , 7 b), R(dd, e3, e3, 3 e)
.long R(5 e, 2 f, 2 f, 71 ), R(13 , 84 , 84 , 97 )
.long R(a6, 53 , 53 , f5), R(b9, d1, d1, 68 )
.long R(00 , 00 , 00 , 00 ), R(c1, ed, ed, 2 c)
.long R(40 , 20 , 20 , 60 ), R(e3, fc, fc, 1 f)
.long R(79 , b1, b1, c8), R(b6, 5 b, 5 b, ed)
.long R(d4, 6 a, 6 a, be), R(8 d, cb, cb, 46 )
.long R(67 , be, be, d9), R(72 , 39 , 39 , 4 b)
.long R(94 , 4 a, 4 a, de), R(98 , 4 c, 4 c, d4)
.long R(b0, 58 , 58 , e8), R(85 , cf, cf, 4 a)
.long R(bb, d0, d0, 6 b), R(c5, ef, ef, 2 a)
.long R(4 f, aa, aa, e5), R(ed, fb, fb, 16 )
.long R(86 , 43 , 43 , c5), R(9 a, 4 d, 4 d, d7)
.long R(66 , 33 , 33 , 55 ), R(11 , 85 , 85 , 94 )
.long R(8 a, 45 , 45 , cf), R(e9, f9, f9, 10 )
.long R(04 , 02 , 02 , 06 ), R(fe, 7 f, 7 f, 81 )
.long R(a0, 50 , 50 , f0), R(78 , 3 c, 3 c, 44 )
.long R(25 , 9 f, 9 f, ba), R(4 b, a8, a8, e3)
.long R(a2, 51 , 51 , f3), R(5 d, a3, a3, fe)
.long R(80 , 40 , 40 , c0), R(05 , 8 f, 8 f, 8 a)
.long R(3 f, 92 , 92 , ad), R(21 , 9 d, 9 d, bc)
.long R(70 , 38 , 38 , 48 ), R(f1, f5, f5, 04 )
.long R(63 , bc, bc, df), R(77 , b6, b6, c1)
.long R(af, da, da, 75 ), R(42 , 21 , 21 , 63 )
.long R(20 , 10 , 10 , 30 ), R(e5, ff, ff, 1 a)
.long R(fd, f3, f3, 0 e), R(bf, d2, d2, 6 d)
.long R(81 , cd, cd, 4 c), R(18 , 0 c, 0 c, 14 )
.long R(26 , 13 , 13 , 35 ), R(c3, ec, ec, 2 f)
.long R(be, 5 f, 5 f, e1), R(35 , 97 , 97 , a2)
.long R(88 , 44 , 44 , cc), R(2 e, 17 , 17 , 39 )
.long R(93 , c4, c4, 57 ), R(55 , a7, a7, f2)
.long R(fc, 7 e, 7 e, 82 ), R(7 a, 3 d, 3 d, 47 )
.long R(c8, 64 , 64 , ac), R(ba, 5 d, 5 d, e7)
.long R(32 , 19 , 19 , 2 b), R(e6, 73 , 73 , 95 )
.long R(c0, 60 , 60 , a0), R(19 , 81 , 81 , 98 )
.long R(9 e, 4 f, 4 f, d1), R(a3, dc, dc, 7 f)
.long R(44 , 22 , 22 , 66 ), R(54 , 2 a, 2 a, 7 e)
.long R(3 b, 90 , 90 , ab), R(0 b, 88 , 88 , 83 )
.long R(8 c, 46 , 46 , ca), R(c7, ee, ee, 29 )
.long R(6 b, b8, b8, d3), R(28 , 14 , 14 , 3 c)
.long R(a7, de, de, 79 ), R(bc, 5 e, 5 e, e2)
.long R(16 , 0 b, 0 b, 1 d), R(ad, db, db, 76 )
.long R(db, e0, e0, 3 b), R(64 , 32 , 32 , 56 )
.long R(74 , 3 a, 3 a, 4 e), R(14 , 0 a, 0 a, 1 e)
.long R(92 , 49 , 49 , db), R(0 c, 06 , 06 , 0 a)
.long R(48 , 24 , 24 , 6 c), R(b8, 5 c, 5 c, e4)
.long R(9 f, c2, c2, 5 d), R(bd, d3, d3, 6 e)
.long R(43 , ac, ac, ef), R(c4, 62 , 62 , a6)
.long R(39 , 91 , 91 , a8), R(31 , 95 , 95 , a4)
.long R(d3, e4, e4, 37 ), R(f2, 79 , 79 , 8 b)
.long R(d5, e7, e7, 32 ), R(8 b, c8, c8, 43 )
.long R(6 e, 37 , 37 , 59 ), R(da, 6 d, 6 d, b7)
.long R(01 , 8 d, 8 d, 8 c), R(b1, d5, d5, 64 )
.long R(9 c, 4 e, 4 e, d2), R(49 , a9, a9, e0)
.long R(d8, 6 c, 6 c, b4), R(ac, 56 , 56 , fa)
.long R(f3, f4, f4, 07 ), R(cf, ea, ea, 25 )
.long R(ca, 65 , 65 , af), R(f4, 7 a, 7 a, 8 e)
.long R(47 , ae, ae, e9), R(10 , 08 , 08 , 18 )
.long R(6 f, ba, ba, d5), R(f0, 78 , 78 , 88 )
.long R(4 a, 25 , 25 , 6 f), R(5 c, 2 e, 2 e, 72 )
.long R(38 , 1 c, 1 c, 24 ), R(57 , a6, a6, f1)
.long R(73 , b4, b4, c7), R(97 , c6, c6, 51 )
.long R(cb, e8, e8, 23 ), R(a1, dd, dd, 7 c)
.long R(e8, 74 , 74 , 9 c), R(3 e, 1 f, 1 f, 21 )
.long R(96 , 4 b, 4 b, dd), R(61 , bd, bd, dc)
.long R(0 d, 8 b, 8 b, 86 ), R(0 f, 8 a, 8 a, 85 )
.long R(e0, 70 , 70 , 90 ), R(7 c, 3 e, 3 e, 42 )
.long R(71 , b5, b5, c4), R(cc, 66 , 66 , aa)
.long R(90 , 48 , 48 , d8), R(06 , 03 , 03 , 05 )
.long R(f7, f6, f6, 01 ), R(1 c, 0 e, 0 e, 12 )
.long R(c2, 61 , 61 , a3), R(6 a, 35 , 35 , 5 f)
.long R(ae, 57 , 57 , f9), R(69 , b9, b9, d0)
.long R(17 , 86 , 86 , 91 ), R(99 , c1, c1, 58 )
.long R(3 a, 1 d, 1 d, 27 ), R(27 , 9 e, 9 e, b9)
.long R(d9, e1, e1, 38 ), R(eb, f8, f8, 13 )
.long R(2 b, 98 , 98 , b3), R(22 , 11 , 11 , 33 )
.long R(d2, 69 , 69 , bb), R(a9, d9, d9, 70 )
.long R(07 , 8 e, 8 e, 89 ), R(33 , 94 , 94 , a7)
.long R(2 d, 9 b, 9 b, b6), R(3 c, 1 e, 1 e, 22 )
.long R(15 , 87 , 87 , 92 ), R(c9, e9, e9, 20 )
.long R(87 , ce, ce, 49 ), R(aa, 55 , 55 , ff)
.long R(50 , 28 , 28 , 78 ), R(a5, df, df, 7 a)
.long R(03 , 8 c, 8 c, 8 f), R(59 , a1, a1, f8)
.long R(09 , 89 , 89 , 80 ), R(1 a, 0 d, 0 d, 17 )
.long R(65 , bf, bf, da), R(d7, e6, e6, 31 )
.long R(84 , 42 , 42 , c6), R(d0, 68 , 68 , b8)
.long R(82 , 41 , 41 , c3), R(29 , 99 , 99 , b0)
.long R(5 a, 2 d, 2 d, 77 ), R(1 e, 0 f, 0 f, 11 )
.long R(7 b, b0, b0, cb), R(a8, 54 , 54 , fc)
.long R(6 d, bb, bb, d6), R(2 c, 16 , 16 , 3 a)
.globl PPC_AES_4K_DECTAB
PPC_AES_4K_DECTAB:
/* decryption table, same as crypto_it_tab in crypto/aes-generic.c */
.long R(51 , f4, a7, 50 ), R(7 e, 41 , 65 , 53 )
.long R(1 a, 17 , a4, c3), R(3 a, 27 , 5 e, 96 )
.long R(3 b, ab, 6 b, cb), R(1 f, 9 d, 45 , f1)
.long R(ac, fa, 58 , ab), R(4 b, e3, 03 , 93 )
.long R(20 , 30 , fa, 55 ), R(ad, 76 , 6 d, f6)
.long R(88 , cc, 76 , 91 ), R(f5, 02 , 4 c, 25 )
.long R(4 f, e5, d7, fc), R(c5, 2 a, cb, d7)
.long R(26 , 35 , 44 , 80 ), R(b5, 62 , a3, 8 f)
.long R(de, b1, 5 a, 49 ), R(25 , ba, 1 b, 67 )
.long R(45 , ea, 0 e, 98 ), R(5 d, fe, c0, e1)
.long R(c3, 2 f, 75 , 02 ), R(81 , 4 c, f0, 12 )
.long R(8 d, 46 , 97 , a3), R(6 b, d3, f9, c6)
.long R(03 , 8 f, 5 f, e7), R(15 , 92 , 9 c, 95 )
.long R(bf, 6 d, 7 a, eb), R(95 , 52 , 59 , da)
.long R(d4, be, 83 , 2 d), R(58 , 74 , 21 , d3)
.long R(49 , e0, 69 , 29 ), R(8 e, c9, c8, 44 )
.long R(75 , c2, 89 , 6 a), R(f4, 8 e, 79 , 78 )
.long R(99 , 58 , 3 e, 6 b), R(27 , b9, 71 , dd)
.long R(be, e1, 4 f, b6), R(f0, 88 , ad, 17 )
.long R(c9, 20 , ac, 66 ), R(7 d, ce, 3 a, b4)
.long R(63 , df, 4 a, 18 ), R(e5, 1 a, 31 , 82 )
.long R(97 , 51 , 33 , 60 ), R(62 , 53 , 7 f, 45 )
.long R(b1, 64 , 77 , e0), R(bb, 6 b, ae, 84 )
.long R(fe, 81 , a0, 1 c), R(f9, 08 , 2 b, 94 )
.long R(70 , 48 , 68 , 58 ), R(8 f, 45 , fd, 19 )
.long R(94 , de, 6 c, 87 ), R(52 , 7 b, f8, b7)
.long R(ab, 73 , d3, 23 ), R(72 , 4 b, 02 , e2)
.long R(e3, 1 f, 8 f, 57 ), R(66 , 55 , ab, 2 a)
.long R(b2, eb, 28 , 07 ), R(2 f, b5, c2, 03 )
.long R(86 , c5, 7 b, 9 a), R(d3, 37 , 08 , a5)
.long R(30 , 28 , 87 , f2), R(23 , bf, a5, b2)
.long R(02 , 03 , 6 a, ba), R(ed, 16 , 82 , 5 c)
.long R(8 a, cf, 1 c, 2 b), R(a7, 79 , b4, 92 )
.long R(f3, 07 , f2, f0), R(4 e, 69 , e2, a1)
.long R(65 , da, f4, cd), R(06 , 05 , be, d5)
.long R(d1, 34 , 62 , 1 f), R(c4, a6, fe, 8 a)
.long R(34 , 2 e, 53 , 9 d), R(a2, f3, 55 , a0)
.long R(05 , 8 a, e1, 32 ), R(a4, f6, eb, 75 )
.long R(0 b, 83 , ec, 39 ), R(40 , 60 , ef, aa)
.long R(5 e, 71 , 9 f, 06 ), R(bd, 6 e, 10 , 51 )
.long R(3 e, 21 , 8 a, f9), R(96 , dd, 06 , 3 d)
.long R(dd, 3 e, 05 , ae), R(4 d, e6, bd, 46 )
.long R(91 , 54 , 8 d, b5), R(71 , c4, 5 d, 05 )
.long R(04 , 06 , d4, 6 f), R(60 , 50 , 15 , ff)
.long R(19 , 98 , fb, 24 ), R(d6, bd, e9, 97 )
.long R(89 , 40 , 43 , cc), R(67 , d9, 9 e, 77 )
.long R(b0, e8, 42 , bd), R(07 , 89 , 8 b, 88 )
.long R(e7, 19 , 5 b, 38 ), R(79 , c8, ee, db)
.long R(a1, 7 c, 0 a, 47 ), R(7 c, 42 , 0 f, e9)
.long R(f8, 84 , 1 e, c9), R(00 , 00 , 00 , 00 )
.long R(09 , 80 , 86 , 83 ), R(32 , 2 b, ed, 48 )
.long R(1 e, 11 , 70 , ac), R(6 c, 5 a, 72 , 4 e)
.long R(fd, 0 e, ff, fb), R(0 f, 85 , 38 , 56 )
.long R(3 d, ae, d5, 1 e), R(36 , 2 d, 39 , 27 )
.long R(0 a, 0 f, d9, 64 ), R(68 , 5 c, a6, 21 )
.long R(9 b, 5 b, 54 , d1), R(24 , 36 , 2 e, 3 a)
.long R(0 c, 0 a, 67 , b1), R(93 , 57 , e7, 0 f)
.long R(b4, ee, 96 , d2), R(1 b, 9 b, 91 , 9 e)
.long R(80 , c0, c5, 4 f), R(61 , dc, 20 , a2)
.long R(5 a, 77 , 4 b, 69 ), R(1 c, 12 , 1 a, 16 )
.long R(e2, 93 , ba, 0 a), R(c0, a0, 2 a, e5)
.long R(3 c, 22 , e0, 43 ), R(12 , 1 b, 17 , 1 d)
.long R(0 e, 09 , 0 d, 0 b), R(f2, 8 b, c7, ad)
.long R(2 d, b6, a8, b9), R(14 , 1 e, a9, c8)
.long R(57 , f1, 19 , 85 ), R(af, 75 , 07 , 4 c)
.long R(ee, 99 , dd, bb), R(a3, 7 f, 60 , fd)
.long R(f7, 01 , 26 , 9 f), R(5 c, 72 , f5, bc)
.long R(44 , 66 , 3 b, c5), R(5 b, fb, 7 e, 34 )
.long R(8 b, 43 , 29 , 76 ), R(cb, 23 , c6, dc)
.long R(b6, ed, fc, 68 ), R(b8, e4, f1, 63 )
.long R(d7, 31 , dc, ca), R(42 , 63 , 85 , 10 )
.long R(13 , 97 , 22 , 40 ), R(84 , c6, 11 , 20 )
.long R(85 , 4 a, 24 , 7 d), R(d2, bb, 3 d, f8)
.long R(ae, f9, 32 , 11 ), R(c7, 29 , a1, 6 d)
.long R(1 d, 9 e, 2 f, 4 b), R(dc, b2, 30 , f3)
.long R(0 d, 86 , 52 , ec), R(77 , c1, e3, d0)
.long R(2 b, b3, 16 , 6 c), R(a9, 70 , b9, 99 )
.long R(11 , 94 , 48 , fa), R(47 , e9, 64 , 22 )
.long R(a8, fc, 8 c, c4), R(a0, f0, 3 f, 1 a)
.long R(56 , 7 d, 2 c, d8), R(22 , 33 , 90 , ef)
.long R(87 , 49 , 4 e, c7), R(d9, 38 , d1, c1)
.long R(8 c, ca, a2, fe), R(98 , d4, 0 b, 36 )
.long R(a6, f5, 81 , cf), R(a5, 7 a, de, 28 )
.long R(da, b7, 8 e, 26 ), R(3 f, ad, bf, a4)
.long R(2 c, 3 a, 9 d, e4), R(50 , 78 , 92 , 0 d)
.long R(6 a, 5 f, cc, 9 b), R(54 , 7 e, 46 , 62 )
.long R(f6, 8 d, 13 , c2), R(90 , d8, b8, e8)
.long R(2 e, 39 , f7, 5 e), R(82 , c3, af, f5)
.long R(9 f, 5 d, 80 , be), R(69 , d0, 93 , 7 c)
.long R(6 f, d5, 2 d, a9), R(cf, 25 , 12 , b3)
.long R(c8, ac, 99 , 3 b), R(10 , 18 , 7 d, a7)
.long R(e8, 9 c, 63 , 6 e), R(db, 3 b, bb, 7 b)
.long R(cd, 26 , 78 , 09 ), R(6 e, 59 , 18 , f4)
.long R(ec, 9 a, b7, 01 ), R(83 , 4 f, 9 a, a8)
.long R(e6, 95 , 6 e, 65 ), R(aa, ff, e6, 7 e)
.long R(21 , bc, cf, 08 ), R(ef, 15 , e8, e6)
.long R(ba, e7, 9 b, d9), R(4 a, 6 f, 36 , ce)
.long R(ea, 9 f, 09 , d4), R(29 , b0, 7 c, d6)
.long R(31 , a4, b2, af), R(2 a, 3 f, 23 , 31 )
.long R(c6, a5, 94 , 30 ), R(35 , a2, 66 , c0)
.long R(74 , 4 e, bc, 37 ), R(fc, 82 , ca, a6)
.long R(e0, 90 , d0, b0), R(33 , a7, d8, 15 )
.long R(f1, 04 , 98 , 4 a), R(41 , ec, da, f7)
.long R(7 f, cd, 50 , 0 e), R(17 , 91 , f6, 2 f)
.long R(76 , 4 d, d6, 8 d), R(43 , ef, b0, 4 d)
.long R(cc, aa, 4 d, 54 ), R(e4, 96 , 04 , df)
.long R(9 e, d1, b5, e3), R(4 c, 6 a, 88 , 1 b)
.long R(c1, 2 c, 1 f, b8), R(46 , 65 , 51 , 7 f)
.long R(9 d, 5 e, ea, 04 ), R(01 , 8 c, 35 , 5 d)
.long R(fa, 87 , 74 , 73 ), R(fb, 0 b, 41 , 2 e)
.long R(b3, 67 , 1 d, 5 a), R(92 , db, d2, 52 )
.long R(e9, 10 , 56 , 33 ), R(6 d, d6, 47 , 13 )
.long R(9 a, d7, 61 , 8 c), R(37 , a1, 0 c, 7 a)
.long R(59 , f8, 14 , 8 e), R(eb, 13 , 3 c, 89 )
.long R(ce, a9, 27 , ee), R(b7, 61 , c9, 35 )
.long R(e1, 1 c, e5, ed), R(7 a, 47 , b1, 3 c)
.long R(9 c, d2, df, 59 ), R(55 , f2, 73 , 3 f)
.long R(18 , 14 , ce, 79 ), R(73 , c7, 37 , bf)
.long R(53 , f7, cd, ea), R(5 f, fd, aa, 5 b)
.long R(df, 3 d, 6 f, 14 ), R(78 , 44 , db, 86 )
.long R(ca, af, f3, 81 ), R(b9, 68 , c4, 3 e)
.long R(38 , 24 , 34 , 2 c), R(c2, a3, 40 , 5 f)
.long R(16 , 1 d, c3, 72 ), R(bc, e2, 25 , 0 c)
.long R(28 , 3 c, 49 , 8 b), R(ff, 0 d, 95 , 41 )
.long R(39 , a8, 01 , 71 ), R(08 , 0 c, b3, de)
.long R(d8, b4, e4, 9 c), R(64 , 56 , c1, 90 )
.long R(7 b, cb, 84 , 61 ), R(d5, 32 , b6, 70 )
.long R(48 , 6 c, 5 c, 74 ), R(d0, b8, 57 , 42 )
.globl PPC_AES_4K_DECTAB2
PPC_AES_4K_DECTAB2:
/* decryption table, same as crypto_il_tab in crypto/aes-generic.c */
.byte 0 x52, 0 x09, 0 x6a, 0 xd5, 0 x30, 0 x36, 0 xa5, 0 x38
.byte 0 xbf, 0 x40, 0 xa3, 0 x9e, 0 x81, 0 xf3, 0 xd7, 0 xfb
.byte 0 x7c, 0 xe3, 0 x39, 0 x82, 0 x9b, 0 x2f, 0 xff, 0 x87
.byte 0 x34, 0 x8e, 0 x43, 0 x44, 0 xc4, 0 xde, 0 xe9, 0 xcb
.byte 0 x54, 0 x7b, 0 x94, 0 x32, 0 xa6, 0 xc2, 0 x23, 0 x3d
.byte 0 xee, 0 x4c, 0 x95, 0 x0b, 0 x42, 0 xfa, 0 xc3, 0 x4e
.byte 0 x08, 0 x2e, 0 xa1, 0 x66, 0 x28, 0 xd9, 0 x24, 0 xb2
.byte 0 x76, 0 x5b, 0 xa2, 0 x49, 0 x6d, 0 x8b, 0 xd1, 0 x25
.byte 0 x72, 0 xf8, 0 xf6, 0 x64, 0 x86, 0 x68, 0 x98, 0 x16
.byte 0 xd4, 0 xa4, 0 x5c, 0 xcc, 0 x5d, 0 x65, 0 xb6, 0 x92
.byte 0 x6c, 0 x70, 0 x48, 0 x50, 0 xfd, 0 xed, 0 xb9, 0 xda
.byte 0 x5e, 0 x15, 0 x46, 0 x57, 0 xa7, 0 x8d, 0 x9d, 0 x84
.byte 0 x90, 0 xd8, 0 xab, 0 x00, 0 x8c, 0 xbc, 0 xd3, 0 x0a
.byte 0 xf7, 0 xe4, 0 x58, 0 x05, 0 xb8, 0 xb3, 0 x45, 0 x06
.byte 0 xd0, 0 x2c, 0 x1e, 0 x8f, 0 xca, 0 x3f, 0 x0f, 0 x02
.byte 0 xc1, 0 xaf, 0 xbd, 0 x03, 0 x01, 0 x13, 0 x8a, 0 x6b
.byte 0 x3a, 0 x91, 0 x11, 0 x41, 0 x4f, 0 x67, 0 xdc, 0 xea
.byte 0 x97, 0 xf2, 0 xcf, 0 xce, 0 xf0, 0 xb4, 0 xe6, 0 x73
.byte 0 x96, 0 xac, 0 x74, 0 x22, 0 xe7, 0 xad, 0 x35, 0 x85
.byte 0 xe2, 0 xf9, 0 x37, 0 xe8, 0 x1c, 0 x75, 0 xdf, 0 x6e
.byte 0 x47, 0 xf1, 0 x1a, 0 x71, 0 x1d, 0 x29, 0 xc5, 0 x89
.byte 0 x6f, 0 xb7, 0 x62, 0 x0e, 0 xaa, 0 x18, 0 xbe, 0 x1b
.byte 0 xfc, 0 x56, 0 x3e, 0 x4b, 0 xc6, 0 xd2, 0 x79, 0 x20
.byte 0 x9a, 0 xdb, 0 xc0, 0 xfe, 0 x78, 0 xcd, 0 x5a, 0 xf4
.byte 0 x1f, 0 xdd, 0 xa8, 0 x33, 0 x88, 0 x07, 0 xc7, 0 x31
.byte 0 xb1, 0 x12, 0 x10, 0 x59, 0 x27, 0 x80, 0 xec, 0 x5f
.byte 0 x60, 0 x51, 0 x7f, 0 xa9, 0 x19, 0 xb5, 0 x4a, 0 x0d
.byte 0 x2d, 0 xe5, 0 x7a, 0 x9f, 0 x93, 0 xc9, 0 x9c, 0 xef
.byte 0 xa0, 0 xe0, 0 x3b, 0 x4d, 0 xae, 0 x2a, 0 xf5, 0 xb0
.byte 0 xc8, 0 xeb, 0 xbb, 0 x3c, 0 x83, 0 x53, 0 x99, 0 x61
.byte 0 x17, 0 x2b, 0 x04, 0 x7e, 0 xba, 0 x77, 0 xd6, 0 x26
.byte 0 xe1, 0 x69, 0 x14, 0 x63, 0 x55, 0 x21, 0 x0c, 0 x7d
Messung V0.5 in Prozent C=96 H=95 G=95