1
2
3
4
5
6
7
8
9
10
11
|
1
2
3
4
5
6
7
8
9
10
11
|
-
-
+
+
|
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
* 2018, 2019
* Jonathan Schleifer <js@heap.zone>
* 2018, 2019, 2020
* Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
* This file is part of ObjFW. It may be distributed under the terms of the
* Q Public License 1.0, which can be found in the file LICENSE.QPL included in
* the packaging of this file.
*
|
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
|
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
|
-
+
+
-
+
+
-
+
+
-
+
+
-
+
+
-
+
+
|
void *pool = objc_autoreleasePoolPush();
OFFile *f = [OFFile fileWithPath: @"testfile.bin"
mode: @"r"];
OFHMAC *HMAC_MD5, *HMAC_SHA1, *HMAC_RMD160;
OFHMAC *HMAC_SHA256, *HMAC_SHA384, *HMAC_SHA512;
TEST(@"+[HMACWithHashClass:] with MD5",
(HMAC_MD5 = [OFHMAC HMACWithHashClass: [OFMD5Hash class]]))
(HMAC_MD5 = [OFHMAC HMACWithHashClass: [OFMD5Hash class]
allowsSwappableMemory: true]))
TEST(@"+[HMACWithHashClass:] with SHA-1",
(HMAC_SHA1 = [OFHMAC HMACWithHashClass: [OFSHA1Hash class]]))
(HMAC_SHA1 = [OFHMAC HMACWithHashClass: [OFSHA1Hash class]
allowsSwappableMemory: true]))
TEST(@"+[HMACWithHashClass:] with RIPEMD-160",
(HMAC_RMD160 = [OFHMAC HMACWithHashClass: [OFRIPEMD160Hash class]]))
(HMAC_RMD160 = [OFHMAC HMACWithHashClass: [OFRIPEMD160Hash class]
allowsSwappableMemory: true]))
TEST(@"+[HMACWithHashClass:] with SHA-256",
(HMAC_SHA256 = [OFHMAC HMACWithHashClass: [OFSHA256Hash class]]))
(HMAC_SHA256 = [OFHMAC HMACWithHashClass: [OFSHA256Hash class]
allowsSwappableMemory: true]))
TEST(@"+[HMACWithHashClass:] with SHA-384",
(HMAC_SHA384 = [OFHMAC HMACWithHashClass: [OFSHA384Hash class]]))
(HMAC_SHA384 = [OFHMAC HMACWithHashClass: [OFSHA384Hash class]
allowsSwappableMemory: true]))
TEST(@"+[HMACWithHashClass:] with SHA-512",
(HMAC_SHA512 = [OFHMAC HMACWithHashClass: [OFSHA512Hash class]]))
(HMAC_SHA512 = [OFHMAC HMACWithHashClass: [OFSHA512Hash class]
allowsSwappableMemory: true]))
EXPECT_EXCEPTION(@"Detection of missing key",
OFInvalidArgumentException, [HMAC_MD5 updateWithBuffer: ""
length: 0])
TEST(@"-[setKey:length:] with MD5",
R([HMAC_MD5 setKey: key
|