(v, key, n=32)
| 34 | |
| 35 | XTEA_BLOCK_SIZE = 8 |
| 36 | def xtea_decrypt(v, key, n=32): |
| 37 | v0 = (v >> 32) & 0xFFFFFFFF; |
| 38 | v1 = (v >> 0) & 0xFFFFFFFF; |
| 39 | k = struct.unpack(">4L", key) |
| 40 | sum = 0 |
| 41 | delta = 0x9e3779b9 |
| 42 | for round in range(n): |
| 43 | v0 = (v0 + ((((v1 << 4) ^ (v1 >> 5)) + v1) ^ (sum + k[sum & 3]))) & 0xFFFFFFFF; |
| 44 | sum = (sum + delta) & 0xFFFFFFFF; |
| 45 | v1 = (v1 + ((((v0 << 4) ^ (v0 >> 5)) + v0) ^ (sum + k[(sum>>11) & 3]))) & 0xFFFFFFFF; |
| 46 | return struct.pack(">2L", v0, v1) |
| 47 | def xtea_decryptCTR(key, data, n=32): |
| 48 | global XTEA_BLOCK_SIZE |
| 49 | counter = 0; |
no test coverage detected