50
50
51
51
52
52
TABLE_A2B_B64 = (
53
- - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 ,
54
- - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 ,
55
- - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , 62 , - 1 , - 1 , - 1 , 63 ,
56
- 52 , 53 , 54 , 55 , 56 , 57 , 58 , 59 , 60 , 61 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 ,
57
- - 1 , 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 ,
58
- 15 , 16 , 17 , 18 , 19 , 20 , 21 , 22 , 23 , 24 , 25 , - 1 , - 1 , - 1 , - 1 , - 1 ,
59
- - 1 , 26 , 27 , 28 , 29 , 30 , 31 , 32 , 33 , 34 , 35 , 36 , 37 , 38 , 39 , 40 ,
60
- 41 , 42 , 43 , 44 , 45 , 46 , 47 , 48 , 49 , 50 , 51 , - 1 , - 1 , - 1 , - 1 , - 1 ,
61
- - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 ,
62
- - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 ,
63
- - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 ,
64
- - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 ,
65
- - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 ,
66
- - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 ,
67
- - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 ,
68
- - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 ,
53
+ - 1 ,
54
+ - 1 ,
55
+ - 1 ,
56
+ - 1 ,
57
+ - 1 ,
58
+ - 1 ,
59
+ - 1 ,
60
+ - 1 ,
61
+ - 1 ,
62
+ - 1 ,
63
+ - 1 ,
64
+ - 1 ,
65
+ - 1 ,
66
+ - 1 ,
67
+ - 1 ,
68
+ - 1 ,
69
+ - 1 ,
70
+ - 1 ,
71
+ - 1 ,
72
+ - 1 ,
73
+ - 1 ,
74
+ - 1 ,
75
+ - 1 ,
76
+ - 1 ,
77
+ - 1 ,
78
+ - 1 ,
79
+ - 1 ,
80
+ - 1 ,
81
+ - 1 ,
82
+ - 1 ,
83
+ - 1 ,
84
+ - 1 ,
85
+ - 1 ,
86
+ - 1 ,
87
+ - 1 ,
88
+ - 1 ,
89
+ - 1 ,
90
+ - 1 ,
91
+ - 1 ,
92
+ - 1 ,
93
+ - 1 ,
94
+ - 1 ,
95
+ - 1 ,
96
+ 62 ,
97
+ - 1 ,
98
+ - 1 ,
99
+ - 1 ,
100
+ 63 ,
101
+ 52 ,
102
+ 53 ,
103
+ 54 ,
104
+ 55 ,
105
+ 56 ,
106
+ 57 ,
107
+ 58 ,
108
+ 59 ,
109
+ 60 ,
110
+ 61 ,
111
+ - 1 ,
112
+ - 1 ,
113
+ - 1 ,
114
+ - 1 ,
115
+ - 1 ,
116
+ - 1 ,
117
+ - 1 ,
118
+ 0 ,
119
+ 1 ,
120
+ 2 ,
121
+ 3 ,
122
+ 4 ,
123
+ 5 ,
124
+ 6 ,
125
+ 7 ,
126
+ 8 ,
127
+ 9 ,
128
+ 10 ,
129
+ 11 ,
130
+ 12 ,
131
+ 13 ,
132
+ 14 ,
133
+ 15 ,
134
+ 16 ,
135
+ 17 ,
136
+ 18 ,
137
+ 19 ,
138
+ 20 ,
139
+ 21 ,
140
+ 22 ,
141
+ 23 ,
142
+ 24 ,
143
+ 25 ,
144
+ - 1 ,
145
+ - 1 ,
146
+ - 1 ,
147
+ - 1 ,
148
+ - 1 ,
149
+ - 1 ,
150
+ 26 ,
151
+ 27 ,
152
+ 28 ,
153
+ 29 ,
154
+ 30 ,
155
+ 31 ,
156
+ 32 ,
157
+ 33 ,
158
+ 34 ,
159
+ 35 ,
160
+ 36 ,
161
+ 37 ,
162
+ 38 ,
163
+ 39 ,
164
+ 40 ,
165
+ 41 ,
166
+ 42 ,
167
+ 43 ,
168
+ 44 ,
169
+ 45 ,
170
+ 46 ,
171
+ 47 ,
172
+ 48 ,
173
+ 49 ,
174
+ 50 ,
175
+ 51 ,
176
+ - 1 ,
177
+ - 1 ,
178
+ - 1 ,
179
+ - 1 ,
180
+ - 1 ,
181
+ - 1 ,
182
+ - 1 ,
183
+ - 1 ,
184
+ - 1 ,
185
+ - 1 ,
186
+ - 1 ,
187
+ - 1 ,
188
+ - 1 ,
189
+ - 1 ,
190
+ - 1 ,
191
+ - 1 ,
192
+ - 1 ,
193
+ - 1 ,
194
+ - 1 ,
195
+ - 1 ,
196
+ - 1 ,
197
+ - 1 ,
198
+ - 1 ,
199
+ - 1 ,
200
+ - 1 ,
201
+ - 1 ,
202
+ - 1 ,
203
+ - 1 ,
204
+ - 1 ,
205
+ - 1 ,
206
+ - 1 ,
207
+ - 1 ,
208
+ - 1 ,
209
+ - 1 ,
210
+ - 1 ,
211
+ - 1 ,
212
+ - 1 ,
213
+ - 1 ,
214
+ - 1 ,
215
+ - 1 ,
216
+ - 1 ,
217
+ - 1 ,
218
+ - 1 ,
219
+ - 1 ,
220
+ - 1 ,
221
+ - 1 ,
222
+ - 1 ,
223
+ - 1 ,
224
+ - 1 ,
225
+ - 1 ,
226
+ - 1 ,
227
+ - 1 ,
228
+ - 1 ,
229
+ - 1 ,
230
+ - 1 ,
231
+ - 1 ,
232
+ - 1 ,
233
+ - 1 ,
234
+ - 1 ,
235
+ - 1 ,
236
+ - 1 ,
237
+ - 1 ,
238
+ - 1 ,
239
+ - 1 ,
240
+ - 1 ,
241
+ - 1 ,
242
+ - 1 ,
243
+ - 1 ,
244
+ - 1 ,
245
+ - 1 ,
246
+ - 1 ,
247
+ - 1 ,
248
+ - 1 ,
249
+ - 1 ,
250
+ - 1 ,
251
+ - 1 ,
252
+ - 1 ,
253
+ - 1 ,
254
+ - 1 ,
255
+ - 1 ,
256
+ - 1 ,
257
+ - 1 ,
258
+ - 1 ,
259
+ - 1 ,
260
+ - 1 ,
261
+ - 1 ,
262
+ - 1 ,
263
+ - 1 ,
264
+ - 1 ,
265
+ - 1 ,
266
+ - 1 ,
267
+ - 1 ,
268
+ - 1 ,
269
+ - 1 ,
270
+ - 1 ,
271
+ - 1 ,
272
+ - 1 ,
273
+ - 1 ,
274
+ - 1 ,
275
+ - 1 ,
276
+ - 1 ,
277
+ - 1 ,
278
+ - 1 ,
279
+ - 1 ,
280
+ - 1 ,
281
+ - 1 ,
282
+ - 1 ,
283
+ - 1 ,
284
+ - 1 ,
285
+ - 1 ,
286
+ - 1 ,
287
+ - 1 ,
288
+ - 1 ,
289
+ - 1 ,
290
+ - 1 ,
291
+ - 1 ,
292
+ - 1 ,
293
+ - 1 ,
294
+ - 1 ,
295
+ - 1 ,
296
+ - 1 ,
297
+ - 1 ,
298
+ - 1 ,
299
+ - 1 ,
300
+ - 1 ,
301
+ - 1 ,
302
+ - 1 ,
303
+ - 1 ,
304
+ - 1 ,
305
+ - 1 ,
306
+ - 1 ,
307
+ - 1 ,
308
+ - 1 ,
69
309
)
70
310
71
- TABLE_B2A_B64 = (
72
- "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" )
311
+ TABLE_B2A_B64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
312
+
73
313
74
314
class Error (Exception ):
75
315
"""Exception raised on errors. These are usually programming errors."""
316
+
76
317
# pylint: disable=unnecessary-pass
77
318
pass
78
319
320
+
79
321
if not "unhexlify" in globals ():
80
322
# pylint: disable=function-redefined
81
323
def unhexlify (hexstr ):
@@ -104,18 +346,23 @@ def hexlify(data):
104
346
if not data :
105
347
raise TypeError ("Data provided is zero-length" )
106
348
data = "" .join ("%02x" % i for i in data )
107
- return bytes (data , 'utf-8' )
349
+ return bytes (data , "utf-8" )
350
+
108
351
109
352
B2A_HEX = hexlify
110
353
A2B_HEX = unhexlify
111
354
355
+
112
356
def _transform (n ):
113
357
if n == - 1 :
114
- return ' \xff '
358
+ return " \xff "
115
359
return chr (n )
116
- TABLE_A2B_B64 = '' .join (map (_transform , TABLE_A2B_B64 ))
360
+
361
+
362
+ TABLE_A2B_B64 = "" .join (map (_transform , TABLE_A2B_B64 ))
117
363
assert len (TABLE_A2B_B64 ) == 256
118
364
365
+
119
366
def a2b_base64 (b64_data ):
120
367
"""Convert a block of base64 data back to binary and return the binary data.
121
368
@@ -132,12 +379,12 @@ def a2b_base64(b64_data):
132
379
char = chr (char )
133
380
if char == "=" :
134
381
if quad_pos > 2 or (quad_pos == 2 and last_char_was_a_pad ):
135
- break # stop on 'xxx=' or on 'xx=='
382
+ break # stop on 'xxx=' or on 'xx=='
136
383
last_char_was_a_pad = True
137
384
else :
138
385
n = ord (TABLE_A2B_B64 [ord (char )])
139
- if n == 0xff :
140
- continue # ignore strange characters
386
+ if n == 0xFF :
387
+ continue # ignore strange characters
141
388
#
142
389
# Shift it in on the low end, and see if there's
143
390
# a byte ready for output.
@@ -147,15 +394,16 @@ def a2b_base64(b64_data):
147
394
#
148
395
if leftbits >= 8 :
149
396
leftbits -= 8
150
- res .append ((leftchar >> leftbits ).to_bytes (1 , ' big' ))
151
- leftchar &= (( 1 << leftbits ) - 1 )
397
+ res .append ((leftchar >> leftbits ).to_bytes (1 , " big" ))
398
+ leftchar &= (1 << leftbits ) - 1
152
399
#
153
400
last_char_was_a_pad = False
154
401
else :
155
402
if leftbits != 0 :
156
403
raise Exception ("Incorrect padding" )
157
404
158
- return b'' .join (res )
405
+ return b"" .join (res )
406
+
159
407
160
408
def b2a_base64 (bin_data ):
161
409
"""Convert binary data to a line of ASCII characters in base64 coding.
@@ -173,18 +421,18 @@ def b2a_base64(bin_data):
173
421
# Shift into our buffer, and output any 6bits ready
174
422
leftchar = (leftchar << 8 ) | char
175
423
leftbits += 8
176
- res .append (TABLE_B2A_B64 [(leftchar >> (leftbits - 6 )) & 0x3f ])
424
+ res .append (TABLE_B2A_B64 [(leftchar >> (leftbits - 6 )) & 0x3F ])
177
425
leftbits -= 6
178
426
if leftbits >= 6 :
179
- res .append (TABLE_B2A_B64 [(leftchar >> (leftbits - 6 )) & 0x3f ])
427
+ res .append (TABLE_B2A_B64 [(leftchar >> (leftbits - 6 )) & 0x3F ])
180
428
leftbits -= 6
181
429
#
182
430
if leftbits == 2 :
183
431
res .append (TABLE_B2A_B64 [(leftchar & 3 ) << 4 ])
184
432
res .append ("=" )
185
433
res .append ("=" )
186
434
elif leftbits == 4 :
187
- res .append (TABLE_B2A_B64 [(leftchar & 0xf ) << 2 ])
435
+ res .append (TABLE_B2A_B64 [(leftchar & 0xF ) << 2 ])
188
436
res .append ("=" )
189
- res .append (' \n ' )
190
- return bytes ('' .join (res ), ' ascii' )
437
+ res .append (" \n " )
438
+ return bytes ("" .join (res ), " ascii" )
0 commit comments