35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
-
-
+
+
|
void *pool = objc_autoreleasePoolPush();
id <OFCryptographicHash> hash =
[class hashWithAllowsSwappableMemory: true];
size_t digestSize = [class digestSize];
const unsigned char *digest;
char cString[digestSize * 2];
[hash updateWithBuffer: self->_items
length: self->_count * self->_itemSize];
[hash updateWithBuffer: self.items
length: self.count * self.itemSize];
[hash calculate];
digest = hash.digest;
for (size_t i = 0; i < digestSize; i++) {
uint8_t high, low;
high = digest[i] >> 4;
|