DigestTest.php 3.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. <?php
  2. namespace Test\Unit;
  3. require_once dirname(__DIR__) . '/Setup.php';
  4. use Test\Setup;
  5. use Braintree;
  6. class DigestTest extends Setup
  7. {
  8. public function testSecureCompareReturnsTrueForMatches()
  9. {
  10. $this->assertTrue(Braintree\Digest::secureCompare("a_string", "a_string"));
  11. }
  12. public function testSecureCompareReturnsFalseForDifferentLengths()
  13. {
  14. $this->assertFalse(Braintree\Digest::secureCompare("a_string", "a_string_that_is_longer"));
  15. }
  16. public function testSecureCompareReturnsFalseForNonmatchingSameLengthStrings()
  17. {
  18. $this->assertFalse(Braintree\Digest::secureCompare("a_string", "a_strong"));
  19. }
  20. public function testHexDigestSha1()
  21. {
  22. $key = str_repeat(chr(0xaa),80);
  23. $message = 'Test Using Larger Than Block-Size Key - Hash Key First';
  24. $d = Braintree\Digest::hexDigestSha1($key, $message);
  25. $this->assertEquals('aa4ae5e15272d00e95705637ce8a3b55ed402112', $d);
  26. }
  27. public function testHexDigestSha1_again()
  28. {
  29. $key = str_repeat(chr(0xaa),80);
  30. $message = 'Test Using Larger Than Block-Size Key and Larger Than One Block-Size Data';
  31. $d = Braintree\Digest::hexDigestSha1($key, $message);
  32. $this->assertEquals('e8e99d0f45237d786d6bbaa7965c7808bbff1a91', $d);
  33. }
  34. public function testHexDigestSha256()
  35. {
  36. $key = str_repeat(chr(0xaa),80);
  37. $message = 'Test Using Larger Than Block-Size Key - Hash Key First';
  38. $d = Braintree\Digest::hexDigestSha256($key, $message);
  39. $this->assertEquals('6953025ed96f0c09f80a96f78e6538dbe2e7b820e3dd970e7ddd39091b32352f', $d);
  40. }
  41. public function testHexDigestSha256_again()
  42. {
  43. $key = str_repeat(chr(0xaa),80);
  44. $message = 'Test Using Larger Than Block-Size Key and Larger Than One Block-Size Data';
  45. $d = Braintree\Digest::hexDigestSha256($key, $message);
  46. $this->assertEquals('6355ac22e890d0a3c8481a5ca4825bc884d3e7a1ff98a2fc2ac7d8e064c3b2e6', $d);
  47. }
  48. public function testBuiltInHmacSha1()
  49. {
  50. Braintree\Configuration::privateKey(str_repeat(chr(0xaa),80));
  51. $message = 'Test Using Larger Than Block-Size Key - Hash Key First';
  52. $d = Braintree\Digest::_builtInHmacSha1($message, Braintree\Configuration::privateKey());
  53. $this->assertEquals('aa4ae5e15272d00e95705637ce8a3b55ed402112', $d);
  54. }
  55. public function testBuiltInHmacSha1_again()
  56. {
  57. Braintree\Configuration::privateKey(str_repeat(chr(0xaa),80));
  58. $message = 'Test Using Larger Than Block-Size Key and Larger Than One Block-Size Data';
  59. $d = Braintree\Digest::_builtInHmacSha1($message, Braintree\Configuration::privateKey());
  60. $this->assertEquals('e8e99d0f45237d786d6bbaa7965c7808bbff1a91', $d);
  61. }
  62. public function testHmacSha1()
  63. {
  64. Braintree\Configuration::privateKey(str_repeat(chr(0xaa),80));
  65. $message = 'Test Using Larger Than Block-Size Key - Hash Key First';
  66. $d = Braintree\Digest::_hmacSha1($message, Braintree\Configuration::privateKey());
  67. $this->assertEquals('aa4ae5e15272d00e95705637ce8a3b55ed402112', $d);
  68. }
  69. public function testHmacSha1_again()
  70. {
  71. Braintree\Configuration::privateKey(str_repeat(chr(0xaa),80));
  72. $message = 'Test Using Larger Than Block-Size Key and Larger Than One Block-Size Data';
  73. $d = Braintree\Digest::_hmacSha1($message, Braintree\Configuration::privateKey());
  74. $this->assertEquals('e8e99d0f45237d786d6bbaa7965c7808bbff1a91', $d);
  75. }
  76. }