]> git.sesse.net Git - vlc/blob - extras/libdvdcss/csstables.h
c223e2d521578a0d8993bf036c7c4c90343e0c44
[vlc] / extras / libdvdcss / csstables.h
1 /*****************************************************************************
2  * csstables.h: CSS Tables for DVD unscrambling
3  *****************************************************************************
4  * Copyright (C) 1999-2001 VideoLAN
5  * $Id: csstables.h,v 1.1 2001/06/12 22:14:44 sam Exp $
6  *
7  * Author: Stéphane Borel <stef@via.ecp.fr>
8  *
9  * based on:
10  *  - css-auth by Derek Fawcus <derek@spider.com>
11  *  - DVD CSS ioctls example program by Andrew T. Veliath <andrewtv@usa.net>
12  *  - The Divide and conquer attack by Frank A. Stevenson <frank@funcom.com>
13  *  - DeCSSPlus by Ethan Hawke
14  *  - DecVOB
15  *  see http://www.lemuria.org/DeCSS/ by Tom Vogt for more information.
16  * 
17  * This program is free software; you can redistribute it and/or modify
18  * it under the terms of the GNU General Public License as published by
19  * the Free Software Foundation; either version 2 of the License, or
20  * (at your option) any later version.
21  *
22  * This program is distributed in the hope that it will be useful,
23  * but WITHOUT ANY WARRANTY; without even the implied warranty of
24  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
25  * GNU General Public License for more details.
26  *
27  * You should have received a copy of the GNU General Public License
28  * along with this program; if not, write to the Free Software
29  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111, USA.
30  *****************************************************************************/
31
32 static u8 pi_css_tab1[ 256 ] =
33 {
34     0x33, 0x73, 0x3b, 0x26, 0x63, 0x23, 0x6b, 0x76,
35     0x3e, 0x7e, 0x36, 0x2b, 0x6e, 0x2e, 0x66, 0x7b,
36     0xd3, 0x93, 0xdb, 0x06, 0x43, 0x03, 0x4b, 0x96,
37     0xde, 0x9e, 0xd6, 0x0b, 0x4e, 0x0e, 0x46, 0x9b,
38     0x57, 0x17, 0x5f, 0x82, 0xc7, 0x87, 0xcf, 0x12,
39     0x5a, 0x1a, 0x52, 0x8f, 0xca, 0x8a, 0xc2, 0x1f,
40     0xd9, 0x99, 0xd1, 0x00, 0x49, 0x09, 0x41, 0x90,
41     0xd8, 0x98, 0xd0, 0x01, 0x48, 0x08, 0x40, 0x91,
42     0x3d, 0x7d, 0x35, 0x24, 0x6d, 0x2d, 0x65, 0x74,
43     0x3c, 0x7c, 0x34, 0x25, 0x6c, 0x2c, 0x64, 0x75,
44     0xdd, 0x9d, 0xd5, 0x04, 0x4d, 0x0d, 0x45, 0x94,
45     0xdc, 0x9c, 0xd4, 0x05, 0x4c, 0x0c, 0x44, 0x95,
46     0x59, 0x19, 0x51, 0x80, 0xc9, 0x89, 0xc1, 0x10,
47     0x58, 0x18, 0x50, 0x81, 0xc8, 0x88, 0xc0, 0x11,
48     0xd7, 0x97, 0xdf, 0x02, 0x47, 0x07, 0x4f, 0x92,
49     0xda, 0x9a, 0xd2, 0x0f, 0x4a, 0x0a, 0x42, 0x9f,
50     0x53, 0x13, 0x5b, 0x86, 0xc3, 0x83, 0xcb, 0x16,
51     0x5e, 0x1e, 0x56, 0x8b, 0xce, 0x8e, 0xc6, 0x1b,
52     0xb3, 0xf3, 0xbb, 0xa6, 0xe3, 0xa3, 0xeb, 0xf6,
53     0xbe, 0xfe, 0xb6, 0xab, 0xee, 0xae, 0xe6, 0xfb,
54     0x37, 0x77, 0x3f, 0x22, 0x67, 0x27, 0x6f, 0x72,
55     0x3a, 0x7a, 0x32, 0x2f, 0x6a, 0x2a, 0x62, 0x7f,
56     0xb9, 0xf9, 0xb1, 0xa0, 0xe9, 0xa9, 0xe1, 0xf0,
57     0xb8, 0xf8, 0xb0, 0xa1, 0xe8, 0xa8, 0xe0, 0xf1,
58     0x5d, 0x1d, 0x55, 0x84, 0xcd, 0x8d, 0xc5, 0x14,
59     0x5c, 0x1c, 0x54, 0x85, 0xcc, 0x8c, 0xc4, 0x15,
60     0xbd, 0xfd, 0xb5, 0xa4, 0xed, 0xad, 0xe5, 0xf4,
61     0xbc, 0xfc, 0xb4, 0xa5, 0xec, 0xac, 0xe4, 0xf5,
62     0x39, 0x79, 0x31, 0x20, 0x69, 0x29, 0x61, 0x70,
63     0x38, 0x78, 0x30, 0x21, 0x68, 0x28, 0x60, 0x71,
64     0xb7, 0xf7, 0xbf, 0xa2, 0xe7, 0xa7, 0xef, 0xf2,
65     0xba, 0xfa, 0xb2, 0xaf, 0xea, 0xaa, 0xe2, 0xff
66 };
67
68 static u8 pi_css_tab2[ 256 ] =
69 {
70     0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
71     0x09, 0x08, 0x0b, 0x0a, 0x0d, 0x0c, 0x0f, 0x0e,
72     0x12, 0x13, 0x10, 0x11, 0x16, 0x17, 0x14, 0x15,
73     0x1b, 0x1a, 0x19, 0x18, 0x1f, 0x1e, 0x1d, 0x1c,
74     0x24, 0x25, 0x26, 0x27, 0x20, 0x21, 0x22, 0x23,
75     0x2d, 0x2c, 0x2f, 0x2e, 0x29, 0x28, 0x2b, 0x2a,
76     0x36, 0x37, 0x34, 0x35, 0x32, 0x33, 0x30, 0x31,
77     0x3f, 0x3e, 0x3d, 0x3c, 0x3b, 0x3a, 0x39, 0x38,
78     0x49, 0x48, 0x4b, 0x4a, 0x4d, 0x4c, 0x4f, 0x4e,
79     0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
80     0x5b, 0x5a, 0x59, 0x58, 0x5f, 0x5e, 0x5d, 0x5c,
81     0x52, 0x53, 0x50, 0x51, 0x56, 0x57, 0x54, 0x55,
82     0x6d, 0x6c, 0x6f, 0x6e, 0x69, 0x68, 0x6b, 0x6a,
83     0x64, 0x65, 0x66, 0x67, 0x60, 0x61, 0x62, 0x63,
84     0x7f, 0x7e, 0x7d, 0x7c, 0x7b, 0x7a, 0x79, 0x78,
85     0x76, 0x77, 0x74, 0x75, 0x72, 0x73, 0x70, 0x71,
86     0x92, 0x93, 0x90, 0x91, 0x96, 0x97, 0x94, 0x95,
87     0x9b, 0x9a, 0x99, 0x98, 0x9f, 0x9e, 0x9d, 0x9c,
88     0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
89     0x89, 0x88, 0x8b, 0x8a, 0x8d, 0x8c, 0x8f, 0x8e,
90     0xb6, 0xb7, 0xb4, 0xb5, 0xb2, 0xb3, 0xb0, 0xb1,
91     0xbf, 0xbe, 0xbd, 0xbc, 0xbb, 0xba, 0xb9, 0xb8,
92     0xa4, 0xa5, 0xa6, 0xa7, 0xa0, 0xa1, 0xa2, 0xa3,
93     0xad, 0xac, 0xaf, 0xae, 0xa9, 0xa8, 0xab, 0xaa,
94     0xdb, 0xda, 0xd9, 0xd8, 0xdf, 0xde, 0xdd, 0xdc,
95     0xd2, 0xd3, 0xd0, 0xd1, 0xd6, 0xd7, 0xd4, 0xd5,
96     0xc9, 0xc8, 0xcb, 0xca, 0xcd, 0xcc, 0xcf, 0xce,
97     0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
98     0xff, 0xfe, 0xfd, 0xfc, 0xfb, 0xfa, 0xf9, 0xf8,
99     0xf6, 0xf7, 0xf4, 0xf5, 0xf2, 0xf3, 0xf0, 0xf1,
100     0xed, 0xec, 0xef, 0xee, 0xe9, 0xe8, 0xeb, 0xea,
101     0xe4, 0xe5, 0xe6, 0xe7, 0xe0, 0xe1, 0xe2, 0xe3
102 };
103
104 static u8 pi_css_tab3[ 512 ] =
105 {
106     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
107     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
108     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
109     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
110     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
111     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
112     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
113     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
114     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
115     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
116     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
117     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
118     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
119     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
120     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
121     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
122     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
123     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
124     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
125     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
126     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
127     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
128     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
129     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
130     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
131     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
132     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
133     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
134     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
135     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
136     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
137     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
138     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
139     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
140     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
141     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
142     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
143     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
144     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
145     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
146     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
147     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
148     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
149     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
150     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
151     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
152     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
153     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
154     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
155     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
156     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
157     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
158     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
159     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
160     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
161     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
162     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
163     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
164     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
165     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
166     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
167     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
168     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
169     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff
170 };
171
172 static u8 pi_css_tab4[ 256 ] =
173 {
174     0x00, 0x80, 0x40, 0xc0, 0x20, 0xa0, 0x60, 0xe0,
175     0x10, 0x90, 0x50, 0xd0, 0x30, 0xb0, 0x70, 0xf0,
176     0x08, 0x88, 0x48, 0xc8, 0x28, 0xa8, 0x68, 0xe8,
177     0x18, 0x98, 0x58, 0xd8, 0x38, 0xb8, 0x78, 0xf8,
178     0x04, 0x84, 0x44, 0xc4, 0x24, 0xa4, 0x64, 0xe4,
179     0x14, 0x94, 0x54, 0xd4, 0x34, 0xb4, 0x74, 0xf4,
180     0x0c, 0x8c, 0x4c, 0xcc, 0x2c, 0xac, 0x6c, 0xec,
181     0x1c, 0x9c, 0x5c, 0xdc, 0x3c, 0xbc, 0x7c, 0xfc,
182     0x02, 0x82, 0x42, 0xc2, 0x22, 0xa2, 0x62, 0xe2,
183     0x12, 0x92, 0x52, 0xd2, 0x32, 0xb2, 0x72, 0xf2,
184     0x0a, 0x8a, 0x4a, 0xca, 0x2a, 0xaa, 0x6a, 0xea,
185     0x1a, 0x9a, 0x5a, 0xda, 0x3a, 0xba, 0x7a, 0xfa,
186     0x06, 0x86, 0x46, 0xc6, 0x26, 0xa6, 0x66, 0xe6,
187     0x16, 0x96, 0x56, 0xd6, 0x36, 0xb6, 0x76, 0xf6,
188     0x0e, 0x8e, 0x4e, 0xce, 0x2e, 0xae, 0x6e, 0xee,
189     0x1e, 0x9e, 0x5e, 0xde, 0x3e, 0xbe, 0x7e, 0xfe,
190     0x01, 0x81, 0x41, 0xc1, 0x21, 0xa1, 0x61, 0xe1,
191     0x11, 0x91, 0x51, 0xd1, 0x31, 0xb1, 0x71, 0xf1,
192     0x09, 0x89, 0x49, 0xc9, 0x29, 0xa9, 0x69, 0xe9,
193     0x19, 0x99, 0x59, 0xd9, 0x39, 0xb9, 0x79, 0xf9,
194     0x05, 0x85, 0x45, 0xc5, 0x25, 0xa5, 0x65, 0xe5,
195     0x15, 0x95, 0x55, 0xd5, 0x35, 0xb5, 0x75, 0xf5,
196     0x0d, 0x8d, 0x4d, 0xcd, 0x2d, 0xad, 0x6d, 0xed,
197     0x1d, 0x9d, 0x5d, 0xdd, 0x3d, 0xbd, 0x7d, 0xfd,
198     0x03, 0x83, 0x43, 0xc3, 0x23, 0xa3, 0x63, 0xe3,
199     0x13, 0x93, 0x53, 0xd3, 0x33, 0xb3, 0x73, 0xf3,
200     0x0b, 0x8b, 0x4b, 0xcb, 0x2b, 0xab, 0x6b, 0xeb,
201     0x1b, 0x9b, 0x5b, 0xdb, 0x3b, 0xbb, 0x7b, 0xfb,
202     0x07, 0x87, 0x47, 0xc7, 0x27, 0xa7, 0x67, 0xe7,
203     0x17, 0x97, 0x57, 0xd7, 0x37, 0xb7, 0x77, 0xf7,
204     0x0f, 0x8f, 0x4f, 0xcf, 0x2f, 0xaf, 0x6f, 0xef,
205     0x1f, 0x9f, 0x5f, 0xdf, 0x3f, 0xbf, 0x7f, 0xff
206 };
207
208 static u8 pi_css_tab5[ 256 ] =
209 {
210     0xff, 0x7f, 0xbf, 0x3f, 0xdf, 0x5f, 0x9f, 0x1f,
211     0xef, 0x6f, 0xaf, 0x2f, 0xcf, 0x4f, 0x8f, 0x0f,
212     0xf7, 0x77, 0xb7, 0x37, 0xd7, 0x57, 0x97, 0x17,
213     0xe7, 0x67, 0xa7, 0x27, 0xc7, 0x47, 0x87, 0x07,
214     0xfb, 0x7b, 0xbb, 0x3b, 0xdb, 0x5b, 0x9b, 0x1b,
215     0xeb, 0x6b, 0xab, 0x2b, 0xcb, 0x4b, 0x8b, 0x0b,
216     0xf3, 0x73, 0xb3, 0x33, 0xd3, 0x53, 0x93, 0x13,
217     0xe3, 0x63, 0xa3, 0x23, 0xc3, 0x43, 0x83, 0x03,
218     0xfd, 0x7d, 0xbd, 0x3d, 0xdd, 0x5d, 0x9d, 0x1d,
219     0xed, 0x6d, 0xad, 0x2d, 0xcd, 0x4d, 0x8d, 0x0d,
220     0xf5, 0x75, 0xb5, 0x35, 0xd5, 0x55, 0x95, 0x15,
221     0xe5, 0x65, 0xa5, 0x25, 0xc5, 0x45, 0x85, 0x05,
222     0xf9, 0x79, 0xb9, 0x39, 0xd9, 0x59, 0x99, 0x19,
223     0xe9, 0x69, 0xa9, 0x29, 0xc9, 0x49, 0x89, 0x09,
224     0xf1, 0x71, 0xb1, 0x31, 0xd1, 0x51, 0x91, 0x11,
225     0xe1, 0x61, 0xa1, 0x21, 0xc1, 0x41, 0x81, 0x01,
226     0xfe, 0x7e, 0xbe, 0x3e, 0xde, 0x5e, 0x9e, 0x1e,
227     0xee, 0x6e, 0xae, 0x2e, 0xce, 0x4e, 0x8e, 0x0e,
228     0xf6, 0x76, 0xb6, 0x36, 0xd6, 0x56, 0x96, 0x16,
229     0xe6, 0x66, 0xa6, 0x26, 0xc6, 0x46, 0x86, 0x06,
230     0xfa, 0x7a, 0xba, 0x3a, 0xda, 0x5a, 0x9a, 0x1a,
231     0xea, 0x6a, 0xaa, 0x2a, 0xca, 0x4a, 0x8a, 0x0a,
232     0xf2, 0x72, 0xb2, 0x32, 0xd2, 0x52, 0x92, 0x12,
233     0xe2, 0x62, 0xa2, 0x22, 0xc2, 0x42, 0x82, 0x02,
234     0xfc, 0x7c, 0xbc, 0x3c, 0xdc, 0x5c, 0x9c, 0x1c,
235     0xec, 0x6c, 0xac, 0x2c, 0xcc, 0x4c, 0x8c, 0x0c,
236     0xf4, 0x74, 0xb4, 0x34, 0xd4, 0x54, 0x94, 0x14,
237     0xe4, 0x64, 0xa4, 0x24, 0xc4, 0x44, 0x84, 0x04,
238     0xf8, 0x78, 0xb8, 0x38, 0xd8, 0x58, 0x98, 0x18,
239     0xe8, 0x68, 0xa8, 0x28, 0xc8, 0x48, 0x88, 0x08,
240     0xf0, 0x70, 0xb0, 0x30, 0xd0, 0x50, 0x90, 0x10,
241     0xe0, 0x60, 0xa0, 0x20, 0xc0, 0x40, 0x80, 0x00
242 };
243
244 static u8 pi_crypt_tab0[ 256 ] =
245 {
246     0xB7, 0xF4, 0x82, 0x57, 0xDA, 0x4D, 0xDB, 0xE2,
247     0x2F, 0x52, 0x1A, 0xA8, 0x68, 0x5A, 0x8A, 0xFF,
248     0xFB, 0x0E, 0x6D, 0x35, 0xF7, 0x5C, 0x76, 0x12,
249     0xCE, 0x25, 0x79, 0x29, 0x39, 0x62, 0x08, 0x24,
250     0xA5, 0x85, 0x7B, 0x56, 0x01, 0x23, 0x68, 0xCF,
251     0x0A, 0xE2, 0x5A, 0xED, 0x3D, 0x59, 0xB0, 0xA9,
252     0xB0, 0x2C, 0xF2, 0xB8, 0xEF, 0x32, 0xA9, 0x40,
253     0x80, 0x71, 0xAF, 0x1E, 0xDE, 0x8F, 0x58, 0x88,
254     0xB8, 0x3A, 0xD0, 0xFC, 0xC4, 0x1E, 0xB5, 0xA0,
255     0xBB, 0x3B, 0x0F, 0x01, 0x7E, 0x1F, 0x9F, 0xD9,
256     0xAA, 0xB8, 0x3D, 0x9D, 0x74, 0x1E, 0x25, 0xDB,
257     0x37, 0x56, 0x8F, 0x16, 0xBA, 0x49, 0x2B, 0xAC,
258     0xD0, 0xBD, 0x95, 0x20, 0xBE, 0x7A, 0x28, 0xD0,
259     0x51, 0x64, 0x63, 0x1C, 0x7F, 0x66, 0x10, 0xBB,
260     0xC4, 0x56, 0x1A, 0x04, 0x6E, 0x0A, 0xEC, 0x9C,
261     0xD6, 0xE8, 0x9A, 0x7A, 0xCF, 0x8C, 0xDB, 0xB1,
262     0xEF, 0x71, 0xDE, 0x31, 0xFF, 0x54, 0x3E, 0x5E,
263     0x07, 0x69, 0x96, 0xB0, 0xCF, 0xDD, 0x9E, 0x47,
264     0xC7, 0x96, 0x8F, 0xE4, 0x2B, 0x59, 0xC6, 0xEE,
265     0xB9, 0x86, 0x9A, 0x64, 0x84, 0x72, 0xE2, 0x5B,
266     0xA2, 0x96, 0x58, 0x99, 0x50, 0x03, 0xF5, 0x38,
267     0x4D, 0x02, 0x7D, 0xE7, 0x7D, 0x75, 0xA7, 0xB8,
268     0x67, 0x87, 0x84, 0x3F, 0x1D, 0x11, 0xE5, 0xFC,
269     0x1E, 0xD3, 0x83, 0x16, 0xA5, 0x29, 0xF6, 0xC7,
270     0x15, 0x61, 0x29, 0x1A, 0x43, 0x4F, 0x9B, 0xAF,
271     0xC5, 0x87, 0x34, 0x6C, 0x0F, 0x3B, 0xA8, 0x1D,
272     0x45, 0x58, 0x25, 0xDC, 0xA8, 0xA3, 0x3B, 0xD1,
273     0x79, 0x1B, 0x48, 0xF2, 0xE9, 0x93, 0x1F, 0xFC,
274     0xDB, 0x2A, 0x90, 0xA9, 0x8A, 0x3D, 0x39, 0x18,
275     0xA3, 0x8E, 0x58, 0x6C, 0xE0, 0x12, 0xBB, 0x25,
276     0xCD, 0x71, 0x22, 0xA2, 0x64, 0xC6, 0xE7, 0xFB,
277     0xAD, 0x94, 0x77, 0x04, 0x9A, 0x39, 0xCF, 0x7C
278 };
279
280 static u8 pi_crypt_tab1[ 256 ] =
281 {
282     0x8C, 0x47, 0xB0, 0xE1, 0xEB, 0xFC, 0xEB, 0x56,
283     0x10, 0xE5, 0x2C, 0x1A, 0x5D, 0xEF, 0xBE, 0x4F,
284     0x08, 0x75, 0x97, 0x4B, 0x0E, 0x25, 0x8E, 0x6E,
285     0x39, 0x5A, 0x87, 0x53, 0xC4, 0x1F, 0xF4, 0x5C,
286     0x4E, 0xE6, 0x99, 0x30, 0xE0, 0x42, 0x88, 0xAB,
287     0xE5, 0x85, 0xBC, 0x8F, 0xD8, 0x3C, 0x54, 0xC9,
288     0x53, 0x47, 0x18, 0xD6, 0x06, 0x5B, 0x41, 0x2C,
289     0x67, 0x1E, 0x41, 0x74, 0x33, 0xE2, 0xB4, 0xE0,
290     0x23, 0x29, 0x42, 0xEA, 0x55, 0x0F, 0x25, 0xB4,
291     0x24, 0x2C, 0x99, 0x13, 0xEB, 0x0A, 0x0B, 0xC9,
292     0xF9, 0x63, 0x67, 0x43, 0x2D, 0xC7, 0x7D, 0x07,
293     0x60, 0x89, 0xD1, 0xCC, 0xE7, 0x94, 0x77, 0x74,
294     0x9B, 0x7E, 0xD7, 0xE6, 0xFF, 0xBB, 0x68, 0x14,
295     0x1E, 0xA3, 0x25, 0xDE, 0x3A, 0xA3, 0x54, 0x7B,
296     0x87, 0x9D, 0x50, 0xCA, 0x27, 0xC3, 0xA4, 0x50,
297     0x91, 0x27, 0xD4, 0xB0, 0x82, 0x41, 0x97, 0x79,
298     0x94, 0x82, 0xAC, 0xC7, 0x8E, 0xA5, 0x4E, 0xAA,
299     0x78, 0x9E, 0xE0, 0x42, 0xBA, 0x28, 0xEA, 0xB7,
300     0x74, 0xAD, 0x35, 0xDA, 0x92, 0x60, 0x7E, 0xD2,
301     0x0E, 0xB9, 0x24, 0x5E, 0x39, 0x4F, 0x5E, 0x63,
302     0x09, 0xB5, 0xFA, 0xBF, 0xF1, 0x22, 0x55, 0x1C,
303     0xE2, 0x25, 0xDB, 0xC5, 0xD8, 0x50, 0x03, 0x98,
304     0xC4, 0xAC, 0x2E, 0x11, 0xB4, 0x38, 0x4D, 0xD0,
305     0xB9, 0xFC, 0x2D, 0x3C, 0x08, 0x04, 0x5A, 0xEF,
306     0xCE, 0x32, 0xFB, 0x4C, 0x92, 0x1E, 0x4B, 0xFB,
307     0x1A, 0xD0, 0xE2, 0x3E, 0xDA, 0x6E, 0x7C, 0x4D,
308     0x56, 0xC3, 0x3F, 0x42, 0xB1, 0x3A, 0x23, 0x4D,
309     0x6E, 0x84, 0x56, 0x68, 0xF4, 0x0E, 0x03, 0x64,
310     0xD0, 0xA9, 0x92, 0x2F, 0x8B, 0xBC, 0x39, 0x9C,
311     0xAC, 0x09, 0x5E, 0xEE, 0xE5, 0x97, 0xBF, 0xA5,
312     0xCE, 0xFA, 0x28, 0x2C, 0x6D, 0x4F, 0xEF, 0x77,
313     0xAA, 0x1B, 0x79, 0x8E, 0x97, 0xB4, 0xC3, 0xF4
314 };
315
316 static u8 pi_crypt_tab2[ 256 ] =
317 {
318     0xB7, 0x75, 0x81, 0xD5, 0xDC, 0xCA, 0xDE, 0x66,
319     0x23, 0xDF, 0x15, 0x26, 0x62, 0xD1, 0x83, 0x77,
320     0xE3, 0x97, 0x76, 0xAF, 0xE9, 0xC3, 0x6B, 0x8E,
321     0xDA, 0xB0, 0x6E, 0xBF, 0x2B, 0xF1, 0x19, 0xB4,
322     0x95, 0x34, 0x48, 0xE4, 0x37, 0x94, 0x5D, 0x7B,
323     0x36, 0x5F, 0x65, 0x53, 0x07, 0xE2, 0x89, 0x11,
324     0x98, 0x85, 0xD9, 0x12, 0xC1, 0x9D, 0x84, 0xEC,
325     0xA4, 0xD4, 0x88, 0xB8, 0xFC, 0x2C, 0x79, 0x28,
326     0xD8, 0xDB, 0xB3, 0x1E, 0xA2, 0xF9, 0xD0, 0x44,
327     0xD7, 0xD6, 0x60, 0xEF, 0x14, 0xF4, 0xF6, 0x31,
328     0xD2, 0x41, 0x46, 0x67, 0x0A, 0xE1, 0x58, 0x27,
329     0x43, 0xA3, 0xF8, 0xE0, 0xC8, 0xBA, 0x5A, 0x5C,
330     0x80, 0x6C, 0xC6, 0xF2, 0xE8, 0xAD, 0x7D, 0x04,
331     0x0D, 0xB9, 0x3C, 0xC2, 0x25, 0xBD, 0x49, 0x63,
332     0x8C, 0x9F, 0x51, 0xCE, 0x20, 0xC5, 0xA1, 0x50,
333     0x92, 0x2D, 0xDD, 0xBC, 0x8D, 0x4F, 0x9A, 0x71,
334     0x2F, 0x30, 0x1D, 0x73, 0x39, 0x13, 0xFB, 0x1A,
335     0xCB, 0x24, 0x59, 0xFE, 0x05, 0x96, 0x57, 0x0F,
336     0x1F, 0xCF, 0x54, 0xBE, 0xF5, 0x06, 0x1B, 0xB2,
337     0x6D, 0xD3, 0x4D, 0x32, 0x56, 0x21, 0x33, 0x0B,
338     0x52, 0xE7, 0xAB, 0xEB, 0xA6, 0x74, 0x00, 0x4C,
339     0xB1, 0x7F, 0x82, 0x99, 0x87, 0x0E, 0x5E, 0xC0,
340     0x8F, 0xEE, 0x6F, 0x55, 0xF3, 0x7E, 0x08, 0x90,
341     0xFA, 0xB6, 0x64, 0x70, 0x47, 0x4A, 0x17, 0xA7,
342     0xB5, 0x40, 0x8A, 0x38, 0xE5, 0x68, 0x3E, 0x8B,
343     0x69, 0xAA, 0x9B, 0x42, 0xA5, 0x10, 0x01, 0x35,
344     0xFD, 0x61, 0x9E, 0xE6, 0x16, 0x9C, 0x86, 0xED,
345     0xCD, 0x2E, 0xFF, 0xC4, 0x5B, 0xA0, 0xAE, 0xCC,
346     0x4B, 0x3B, 0x03, 0xBB, 0x1C, 0x2A, 0xAC, 0x0C,
347     0x3F, 0x93, 0xC7, 0x72, 0x7A, 0x09, 0x22, 0x3D,
348     0x45, 0x78, 0xA9, 0xA8, 0xEA, 0xC9, 0x6A, 0xF7,
349     0x29, 0x91, 0xF0, 0x02, 0x18, 0x3A, 0x4E, 0x7C 
350 };
351
352 static u8 pi_crypt_tab3[ 288 ] =
353 {
354     0x73, 0x51, 0x95, 0xE1, 0x12, 0xE4, 0xC0, 0x58,
355     0xEE, 0xF2, 0x08, 0x1B, 0xA9, 0xFA, 0x98, 0x4C,
356     0xA7, 0x33, 0xE2, 0x1B, 0xA7, 0x6D, 0xF5, 0x30,
357     0x97, 0x1D, 0xF3, 0x02, 0x60, 0x5A, 0x82, 0x0F,
358     0x91, 0xD0, 0x9C, 0x10, 0x39, 0x7A, 0x83, 0x85,
359     0x3B, 0xB2, 0xB8, 0xAE, 0x0C, 0x09, 0x52, 0xEA,
360     0x1C, 0xE1, 0x8D, 0x66, 0x4F, 0xF3, 0xDA, 0x92,
361     0x29, 0xB9, 0xD5, 0xC5, 0x77, 0x47, 0x22, 0x53,
362     0x14, 0xF7, 0xAF, 0x22, 0x64, 0xDF, 0xC6, 0x72,
363     0x12, 0xF3, 0x75, 0xDA, 0xD7, 0xD7, 0xE5, 0x02,
364     0x9E, 0xED, 0xDA, 0xDB, 0x4C, 0x47, 0xCE, 0x91,
365     0x06, 0x06, 0x6D, 0x55, 0x8B, 0x19, 0xC9, 0xEF,
366     0x8C, 0x80, 0x1A, 0x0E, 0xEE, 0x4B, 0xAB, 0xF2,
367     0x08, 0x5C, 0xE9, 0x37, 0x26, 0x5E, 0x9A, 0x90,
368     0x00, 0xF3, 0x0D, 0xB2, 0xA6, 0xA3, 0xF7, 0x26,
369     0x17, 0x48, 0x88, 0xC9, 0x0E, 0x2C, 0xC9, 0x02,
370     0xE7, 0x18, 0x05, 0x4B, 0xF3, 0x39, 0xE1, 0x20,
371     0x02, 0x0D, 0x40, 0xC7, 0xCA, 0xB9, 0x48, 0x30,
372     0x57, 0x67, 0xCC, 0x06, 0xBF, 0xAC, 0x81, 0x08,
373     0x24, 0x7A, 0xD4, 0x8B, 0x19, 0x8E, 0xAC, 0xB4,
374     0x5A, 0x0F, 0x73, 0x13, 0xAC, 0x9E, 0xDA, 0xB6,
375     0xB8, 0x96, 0x5B, 0x60, 0x88, 0xE1, 0x81, 0x3F,
376     0x07, 0x86, 0x37, 0x2D, 0x79, 0x14, 0x52, 0xEA,
377     0x73, 0xDF, 0x3D, 0x09, 0xC8, 0x25, 0x48, 0xD8,
378     0x75, 0x60, 0x9A, 0x08, 0x27, 0x4A, 0x2C, 0xB9,
379     0xA8, 0x8B, 0x8A, 0x73, 0x62, 0x37, 0x16, 0x02,
380     0xBD, 0xC1, 0x0E, 0x56, 0x54, 0x3E, 0x14, 0x5F,
381     0x8C, 0x8F, 0x6E, 0x75, 0x1C, 0x07, 0x39, 0x7B,
382     0x4B, 0xDB, 0xD3, 0x4B, 0x1E, 0xC8, 0x7E, 0xFE,
383     0x3E, 0x72, 0x16, 0x83, 0x7D, 0xEE, 0xF5, 0xCA,
384     0xC5, 0x18, 0xF9, 0xD8, 0x68, 0xAB, 0x38, 0x85,
385     0xA8, 0xF0, 0xA1, 0x73, 0x9F, 0x5D, 0x19, 0x0B,
386     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
387     0x33, 0x72, 0x39, 0x25, 0x67, 0x26, 0x6D, 0x71,
388     0x36, 0x77, 0x3C, 0x20, 0x62, 0x23, 0x68, 0x74,
389     0xC3, 0x82, 0xC9, 0x15, 0x57, 0x16, 0x5D, 0x81
390 };
391