|
|
1.1.1.9 root 1: /* 1.1.1.11! root 2: Legal Notice: Some portions of the source code contained in this file were ! 3: derived from the source code of Encryption for the Masses 2.02a, which is ! 4: Copyright (c) 1998-2000 Paul Le Roux and which is governed by the 'License ! 5: Agreement for Encryption for the Masses'. Modifications and additions to ! 6: the original source code (contained in this file) and all other portions of ! 7: this file are Copyright (c) 2003-2008 TrueCrypt Foundation and are governed ! 8: by the TrueCrypt License 2.4 the full text of which is contained in the ! 9: file License.txt included in TrueCrypt binary and source code distribution 1.1.1.9 root 10: packages. */ 1.1.1.6 root 11: 12: #include "Tcdefs.h" 1.1.1.9 root 13: #include "Common/Endian.h" 14: 15: 16: unsigned __int16 MirrorBytes16 (unsigned __int16 x) 17: { 18: return (x << 8) | (x >> 8); 19: } 1.1.1.6 root 20: 21: 22: unsigned __int32 MirrorBytes32 (unsigned __int32 x) 23: { 24: unsigned __int32 n = (unsigned __int8) x; 25: n <<= 8; n |= (unsigned __int8) (x >> 8); 26: n <<= 8; n |= (unsigned __int8) (x >> 16); 27: return (n << 8) | (unsigned __int8) (x >> 24); 28: } 29: 1.1.1.11! root 30: #ifndef TC_NO_COMPILER_INT64 1.1.1.6 root 31: unsigned __int64 MirrorBytes64 (unsigned __int64 x) 32: { 33: unsigned __int64 n = (unsigned __int8) x; 34: n <<= 8; n |= (unsigned __int8) (x >> 8); 35: n <<= 8; n |= (unsigned __int8) (x >> 16); 36: n <<= 8; n |= (unsigned __int8) (x >> 24); 37: n <<= 8; n |= (unsigned __int8) (x >> 32); 38: n <<= 8; n |= (unsigned __int8) (x >> 40); 39: n <<= 8; n |= (unsigned __int8) (x >> 48); 40: return (n << 8) | (unsigned __int8) (x >> 56); 41: } 1.1.1.11! root 42: #endif 1.1 root 43: 44: void 1.1.1.6 root 45: LongReverse (unsigned __int32 *buffer, unsigned byteCount) 1.1 root 46: { 1.1.1.6 root 47: unsigned __int32 value; 1.1 root 48: 1.1.1.6 root 49: byteCount /= sizeof (unsigned __int32); 1.1 root 50: while (byteCount--) 51: { 52: value = *buffer; 53: value = ((value & 0xFF00FF00L) >> 8) | \ 54: ((value & 0x00FF00FFL) << 8); 55: *buffer++ = (value << 16) | (value >> 16); 56: } 57: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.