blob: efa9d96bdedfac639e1f9b769c0f3368a2894232 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
diff -aurN a/HMAC.php b/HMAC.php
--- a/HMAC.php 2005-02-20 14:24:14.000000000 -0500
+++ b/HMAC.php 2018-02-13 14:03:59.421976960 -0500
@@ -68,8 +68,21 @@
* @access private
*/
var $_pack;
-
-
+
+ /**
+ * Constructor
+ * Pass method as first parameter
+ *
+ * @param string $key Key to use for hash
+ * @param string $func Hash function used for the calculation
+ * @return void
+ * @access public
+ */
+ function __construct($key, $func = 'md5')
+ {
+ $this->Crypt_HMAC($key, $func);
+ }
+
/**
* Constructor
* Pass method as first parameter
diff -aurN a/tests/HMAC_001.phpt b/tests/HMAC_001.phpt
--- a/tests/HMAC_001.phpt 1969-12-31 19:00:00.000000000 -0500
+++ b/tests/HMAC_001.phpt 2018-02-13 14:00:47.899812172 -0500
@@ -0,0 +1,26 @@
+--TEST--
+RFC 2104 Test Vectors
+--DESCRIPTION--
+This test file implements the three test vectors as described in
+RFC 2104 (https://www.ietf.org/rfc/rfc2104.txt)
+--FILE--
+<?php
+ require_once 'Crypt/HMAC.php';
+
+ $key = str_repeat(chr(0x0b), 16);
+ $crypt = new Crypt_HMAC($key, 'md5');
+ echo $crypt->hash('Hi There')."\n";
+
+ $key = 'Jefe';
+ $crypt->setKey($key);
+ echo $crypt->hash('what do ya want for nothing?')."\n";
+
+ $key = str_repeat(chr(0xaa), 16);
+ $data = str_repeat(chr(0xdd), 50);
+ $crypt->setKey($key);
+ echo $crypt->hash($data)."\n";
+?>
+--EXPECT--
+9294727a3638bb1c13f48ef8158bfc9d
+750c783e6ab0b503eaa86e310a5db738
+56be34521d144c88dbb8c733f0e8b3f6
|