18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
#include <string.h>
#import "ObjFW.h"
#import "ObjFWTest.h"
@interface OFCryptographicHashTests: OTTestCase
{
OFStream *_file;
}
@end
const unsigned char testFileMD5[16] =
"\x00\x8B\x9D\x1B\x58\xDF\xF8\xFE\xEE\xF3\xAE\x8D\xBB\x68\x2D\x38";
const unsigned char testFileRIPEMD160[20] =
"\x46\x02\x97\xF5\x85\xDF\xB9\x21\x00\xC8\xF9\x87\xC6\xEC\x84\x0D"
|
|
|
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
#include <string.h>
#import "ObjFW.h"
#import "ObjFWTest.h"
@interface OFCryptographicHashTests: OTTestCase
{
OFStream *_stream;
}
@end
const unsigned char testFileMD5[16] =
"\x00\x8B\x9D\x1B\x58\xDF\xF8\xFE\xEE\xF3\xAE\x8D\xBB\x68\x2D\x38";
const unsigned char testFileRIPEMD160[20] =
"\x46\x02\x97\xF5\x85\xDF\xB9\x21\x00\xC8\xF9\x87\xC6\xEC\x84\x0D"
|
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
|
- (void)setUp
{
OFIRI *IRI;
[super setUp];
IRI = [OFIRI IRIWithString: @"embedded:testfile.bin"];
_file = [[OFIRIHandler openItemAtIRI: IRI mode: @"r"] retain];
}
- (void)tearDown
{
[_file close];
}
- (void)dealloc
{
[_file release];
[super dealloc];
}
- (void)testHash: (Class)hashClass
expectedDigest: (const unsigned char *)expectedDigest
{
id <OFCryptographicHash> hash =
[hashClass hashWithAllowsSwappableMemory: true];
id <OFCryptographicHash> copy;
OTAssertNotNil(hash);
while (!_file.atEndOfStream) {
char buffer[64];
size_t length = [_file readIntoBuffer: buffer length: 64];
[hash updateWithBuffer: buffer length: length];
}
copy = [[hash copy] autorelease];
[hash calculate];
[copy calculate];
|
|
|
>
>
|
|
|
|
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
|
- (void)setUp
{
OFIRI *IRI;
[super setUp];
IRI = [OFIRI IRIWithString: @"embedded:testfile.bin"];
_stream = [[OFIRIHandler openItemAtIRI: IRI mode: @"r"] retain];
}
- (void)tearDown
{
[_stream close];
[super tearDown];
}
- (void)dealloc
{
[_stream release];
[super dealloc];
}
- (void)testHash: (Class)hashClass
expectedDigest: (const unsigned char *)expectedDigest
{
id <OFCryptographicHash> hash =
[hashClass hashWithAllowsSwappableMemory: true];
id <OFCryptographicHash> copy;
OTAssertNotNil(hash);
while (!_stream.atEndOfStream) {
char buffer[64];
size_t length = [_stream readIntoBuffer: buffer length: 64];
[hash updateWithBuffer: buffer length: length];
}
copy = [[hash copy] autorelease];
[hash calculate];
[copy calculate];
|