cryptopp 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (157) hide show
  1. data/.gitignore +8 -0
  2. data/MIT-LICENSE +22 -0
  3. data/README +7 -0
  4. data/Rakefile +42 -0
  5. data/cryptopp.gemspec +199 -0
  6. data/ext/.gitignore +5 -0
  7. data/ext/Rakefile +16 -0
  8. data/ext/ciphers.cpp +1402 -0
  9. data/ext/cryptopp.cpp +285 -0
  10. data/ext/cryptopp_ruby_api.h +139 -0
  11. data/ext/defs/block_modes.def +10 -0
  12. data/ext/defs/checksums.def +10 -0
  13. data/ext/defs/ciphers.def +136 -0
  14. data/ext/defs/hashes.def +78 -0
  15. data/ext/defs/hmacs.def +54 -0
  16. data/ext/defs/paddings.def +9 -0
  17. data/ext/defs/rngs.def +7 -0
  18. data/ext/digests.cpp +1120 -0
  19. data/ext/extconf.rb +39 -0
  20. data/ext/j3way.cpp +22 -0
  21. data/ext/j3way.h +29 -0
  22. data/ext/jadler32.h +32 -0
  23. data/ext/jaes.cpp +22 -0
  24. data/ext/jaes.h +31 -0
  25. data/ext/jarc4.cpp +22 -0
  26. data/ext/jarc4.h +37 -0
  27. data/ext/jbase.cpp +172 -0
  28. data/ext/jbase.h +92 -0
  29. data/ext/jbasiccipherinfo.h +74 -0
  30. data/ext/jblowfish.cpp +22 -0
  31. data/ext/jblowfish.h +29 -0
  32. data/ext/jcamellia.cpp +24 -0
  33. data/ext/jcamellia.h +33 -0
  34. data/ext/jcast128.cpp +22 -0
  35. data/ext/jcast128.h +31 -0
  36. data/ext/jcast256.cpp +22 -0
  37. data/ext/jcast256.h +31 -0
  38. data/ext/jcipher.cpp +112 -0
  39. data/ext/jcipher.h +42 -0
  40. data/ext/jcipher_t.h +469 -0
  41. data/ext/jconfig.h +127 -0
  42. data/ext/jconstants.h +189 -0
  43. data/ext/jcrc32.h +32 -0
  44. data/ext/jdes.cpp +22 -0
  45. data/ext/jdes.h +31 -0
  46. data/ext/jdes_ede2.cpp +22 -0
  47. data/ext/jdes_ede2.h +31 -0
  48. data/ext/jdes_ede3.cpp +22 -0
  49. data/ext/jdes_ede3.h +31 -0
  50. data/ext/jdes_xex3.cpp +22 -0
  51. data/ext/jdes_xex3.h +31 -0
  52. data/ext/jdiamond2.cpp +22 -0
  53. data/ext/jdiamond2.h +31 -0
  54. data/ext/jdiamond2lite.cpp +22 -0
  55. data/ext/jdiamond2lite.h +31 -0
  56. data/ext/jexception.h +20 -0
  57. data/ext/jgost.cpp +22 -0
  58. data/ext/jgost.h +31 -0
  59. data/ext/jhash.cpp +92 -0
  60. data/ext/jhash.h +54 -0
  61. data/ext/jhash_t.h +121 -0
  62. data/ext/jhaval.h +64 -0
  63. data/ext/jhelpers.cpp +90 -0
  64. data/ext/jhelpers.h +38 -0
  65. data/ext/jhmac.cpp +44 -0
  66. data/ext/jhmac.h +34 -0
  67. data/ext/jhmac_t.h +125 -0
  68. data/ext/jidea.cpp +22 -0
  69. data/ext/jidea.h +31 -0
  70. data/ext/jmarc4.cpp +22 -0
  71. data/ext/jmarc4.h +37 -0
  72. data/ext/jmars.cpp +22 -0
  73. data/ext/jmars.h +31 -0
  74. data/ext/jmd2.h +56 -0
  75. data/ext/jmd4.h +56 -0
  76. data/ext/jmd5.h +56 -0
  77. data/ext/jpanamacipher.cpp +32 -0
  78. data/ext/jpanamacipher.h +46 -0
  79. data/ext/jpanamahash.h +44 -0
  80. data/ext/jrc2.cpp +44 -0
  81. data/ext/jrc2.h +39 -0
  82. data/ext/jrc5.cpp +22 -0
  83. data/ext/jrc5.h +31 -0
  84. data/ext/jrc6.cpp +22 -0
  85. data/ext/jrc6.h +31 -0
  86. data/ext/jripemd160.h +113 -0
  87. data/ext/jsafer.cpp +32 -0
  88. data/ext/jsafer.h +42 -0
  89. data/ext/jseal.cpp +32 -0
  90. data/ext/jseal.h +42 -0
  91. data/ext/jserpent.cpp +22 -0
  92. data/ext/jserpent.h +31 -0
  93. data/ext/jsha.h +122 -0
  94. data/ext/jshacal2.cpp +22 -0
  95. data/ext/jshacal2.h +31 -0
  96. data/ext/jshark.cpp +24 -0
  97. data/ext/jshark.h +33 -0
  98. data/ext/jsink.cpp +90 -0
  99. data/ext/jsink.h +154 -0
  100. data/ext/jskipjack.cpp +22 -0
  101. data/ext/jskipjack.h +31 -0
  102. data/ext/jsquare.cpp +22 -0
  103. data/ext/jsquare.h +31 -0
  104. data/ext/jstream.cpp +8 -0
  105. data/ext/jstream.h +20 -0
  106. data/ext/jstream_t.h +175 -0
  107. data/ext/jtea.cpp +22 -0
  108. data/ext/jtea.h +31 -0
  109. data/ext/jtiger.h +52 -0
  110. data/ext/jtwofish.cpp +22 -0
  111. data/ext/jtwofish.h +31 -0
  112. data/ext/jwhirlpool.h +52 -0
  113. data/ext/utils.cpp +8 -0
  114. data/extras/parser_c.rb +114 -0
  115. data/test/ciphers_test.rb +37 -0
  116. data/test/data/ciphers/3desval.dat +7 -0
  117. data/test/data/ciphers/3wayval.dat +6 -0
  118. data/test/data/ciphers/arc4.dat +8 -0
  119. data/test/data/ciphers/blowfish.dat +5 -0
  120. data/test/data/ciphers/camellia.dat +7 -0
  121. data/test/data/ciphers/cast128v.dat +5 -0
  122. data/test/data/ciphers/cast256v.dat +5 -0
  123. data/test/data/ciphers/descert.dat +198 -0
  124. data/test/data/ciphers/diamond.dat +9 -0
  125. data/test/data/ciphers/gostval.dat +10 -0
  126. data/test/data/ciphers/ideaval.dat +13 -0
  127. data/test/data/ciphers/marsval.dat +11 -0
  128. data/test/data/ciphers/panamac.dat +7 -0
  129. data/test/data/ciphers/rc2val.dat +10 -0
  130. data/test/data/ciphers/rc5val.dat +7 -0
  131. data/test/data/ciphers/rc6val.dat +8 -0
  132. data/test/data/ciphers/rijndael.dat +11 -0
  133. data/test/data/ciphers/saferval.dat +27 -0
  134. data/test/data/ciphers/seal.dat +3 -0
  135. data/test/data/ciphers/serpentv.dat +11 -0
  136. data/test/data/ciphers/shacal2.dat +7 -0
  137. data/test/data/ciphers/sharkval.dat +9 -0
  138. data/test/data/ciphers/skipjack.dat +3 -0
  139. data/test/data/ciphers/squareva.dat +10 -0
  140. data/test/data/ciphers/twofishv.dat +11 -0
  141. data/test/data/digests/adler32.dat +8 -0
  142. data/test/data/digests/crc32.dat +10 -0
  143. data/test/data/digests/haval.dat +4 -0
  144. data/test/data/digests/havalcer.dat +23 -0
  145. data/test/data/digests/md2.dat +9 -0
  146. data/test/data/digests/md4.dat +9 -0
  147. data/test/data/digests/md5.dat +9 -0
  148. data/test/data/digests/panamah.dat +8 -0
  149. data/test/data/digests/ripemd.dat +43 -0
  150. data/test/data/digests/sha.dat +19 -0
  151. data/test/data/digests/tiger.dat +11 -0
  152. data/test/data/digests/whirlpool.dat +13 -0
  153. data/test/data/hmacs/hmac.dat +6 -0
  154. data/test/digests_test.rb +29 -0
  155. data/test/hmacs_test.rb +38 -0
  156. data/test/test_helper.rb +42 -0
  157. metadata +220 -0
@@ -0,0 +1,9 @@
1
+ algorithm cipher diamond2
2
+ fields key_hex plaintext_hex ciphertext_hex rounds
3
+ test e834fdb933c502923d92bc9e14368e70d41c66cbdf36155033a66e07e6cc6d8d 5a8d872d31eedde63fc46f6c36456d8e 39b60490aeef791a29015d74494aaa89 15
4
+ test 599b02fbd0d321a789eb97b388bf77c663 56a25a87d40ab25a1dd972a7d154f8a5 081420f230d5a85ab2b55453c43c7967 14
5
+ test 3361066b2c297543 787699fcb627774fcf0f0d82462d6e7d ceb8b4f88c02df34addaf431e7a7a07c 9
6
+ algorithm cipher diamond2_lite
7
+ test e834fdb933c502923d92bc9e14368e70d41c66cbdf36155033a66e07e6cc6d8d 5a8d872d31eedde6 2e69544d7723cba0 30
8
+ test 599b02fbd0d321a789eb97b388bf77c663 56a25a87d40ab25a 3177400de74099bb 11
9
+ test 3361066b2c297543 787699fcb627774f 06ad8cdf623d31f7 10
@@ -0,0 +1,10 @@
1
+ algorithm cipher gost
2
+ fields key_hex plaintext_hex ciphertext_hex
3
+ test be5ec2006cff9dcf52354959f1ff0cbfe95061b5a648c10387069c25997c0672 0df82802b741a292 07f9027df7f7df89
4
+ test b385272ac8d72a5a8b344bc80363ac4d09bf58f41f540624cbcb8fdcf55307d7 1354ee9c0a11cd4c 4fb50536f960a7b1
5
+ test aee02f609a35660e4097e546fd3026b032cd107c7d459977adf489bef2652262 6693d492c4b0cc39 670034ac0fa811b5
6
+ test 320e9d8422165d58911dfc7d8bbb1f81b0ecd924023bf94d9df7dcf7801240e0 99e2d13080928d79 8118ff9d3b3cfe7d
7
+ test c9f703bbbfc63691bfa3b7b87ea8fd5e8e8ef384ef733f1a61aef68c8ffa265f d1e787749c72814c a083826a790d3e0c
8
+ test 728fee32f04b4c654ad7f607d71c660c2c2670d7c999713233149a1c0c17a1f0 d4c05323a4f7a7b5 4d1f2e6b0d9de2ce
9
+ test 35fc96402209500fcfdef5352d1abb038fe33fc0d9d58512e56370b22baa133b 8742d9a05f6a3af6 2f3bb84879d11e52
10
+ test d416f630be65b7fe150656183370e07018234ee5da3d89c4ce9152a03e5bfb77 f86506da04e41cb8 96f0a5c77a04f5ce
@@ -0,0 +1,13 @@
1
+ algorithm cipher idea
2
+ fields key_hex plaintext_hex ciphertext_hex
3
+ test 00010002000300040005000600070008 0000000100020003 11fbed2b01986de5
4
+ test 00010002000300040005000600070008 0102030405060708 540e5fea18c2f8b1
5
+ test 00010002000300040005000600070008 0019324b647d96af 9f0a0ab6e10ced78
6
+ test 00010002000300040005000600070008 f5202d5b9c671b08 cf18fd7355e2c5c5
7
+ test 00010002000300040005000600070008 fae6d2beaa96826e 85df52005608193d
8
+ test 00010002000300040005000600070008 0a141e28323c4650 2f7de750212fb734
9
+ test 00010002000300040005000600070008 050a0f14191e2328 7b7314925de59c09
10
+ test 0005000a000f00140019001e00230028 0102030405060708 3ec04780beff6e20
11
+ test 3a984e2000195db32ee501c8c47cea60 0102030405060708 97bcd8200780da86
12
+ test 006400c8012c019001f4025802bc0320 05320a6414c819fa 65be87e7a2538aed
13
+ test 9d4075c103bc322afb03e7be6ab30006 0808080808080808 f5db1ac45e5ef9f9
@@ -0,0 +1,11 @@
1
+ algorithm cipher mars
2
+ fields key_hex plaintext_hex ciphertext_hex
3
+ test 00000000000000000000000000000000 00000000000000000000000000000000 dcc07b8dfb0738d6e30a22dfcf27e886
4
+ test 00000000000000000000000000000000 dcc07b8dfb0738d6e30a22dfcf27e886 33caffbddc7f1dda0f9c15fa2f30e2ff
5
+ test cb14a1776abbc1cdafe7243def2cea02 f94512a9b42d034ec4792204d708a69b 225da2cb64b73f79069f21a5e3cb8522
6
+ test 86edf4da31824cabef6a4637c40b0bab 4df955ad5b398d66408d620a2b27e1a9 a4b737340ae6d2cafd930ba97d86129f
7
+ test 000000000000000000000000000000000000000000000000 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 97778747d60e425c2b4202599db856fb
8
+ test d158860838874d9500000000000000000000000000000000 93a953a82c10411dd158860838874d95 4fa0e5f64893131712f01408d233e9f7
9
+ test 791739a58b04581a93a953a82c10411dd158860838874d95 6761c42d3e6142d2a84fbfadb383158f f706bc0fd97e28b6f1af4e17d8755fff
10
+ test 0000000000000000000000000000000000000000000000000000000000000000 62e45b4cf3477f1dd65063729d9aba8f 0f4b897ea014d21fbc20f1054a42f719
11
+ test fba167983e7aef22317ce28c02aae1a3e8e5cc3cedbea82a99dbc39ad65e7227 1344aba4d3c44708a8a72116d4f49384 458335d95ea42a9f4dccd41aecc2390d
@@ -0,0 +1,7 @@
1
+ algorithm cipher panama_le
2
+ fields key_hex plaintext_hex iv_hex ciphertext_hex
3
+ test 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f f07f5ff2ccd01a0a7d44acd6d239c2af0da1ff35275baf5dfa6e09411b79d8b9
4
+
5
+ algorithm cipher panama_be
6
+ fields key_hex plaintext_hex iv_hex ciphertext_hex
7
+ test 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f e12e2f6ba41ae832d888da9fa6863bc37c0e996f190a1711330322d37bd98ca4
@@ -0,0 +1,10 @@
1
+ algorithm cipher rc2
2
+ fields key_length effective_key_length key_hex plaintext_hex ciphertext_hex
3
+ test 8 63 0000000000000000 0000000000000000 ebb773f993278eff
4
+ test 8 64 ffffffffffffffff ffffffffffffffff 278b27e42e2f0d49
5
+ test 8 64 3000000000000000 1000000000000001 30649edf9be7d2c2
6
+ test 1 64 88 0000000000000000 61a8a244adacccf0
7
+ test 7 64 88bca90e90875a 0000000000000000 6ccf4308974c267f
8
+ test 16 64 88bca90e90875a7f0f79c384627bafb2 0000000000000000 1a807d272bbe5db1
9
+ test 16 128 88bca90e90875a7f0f79c384627bafb2 0000000000000000 2269552ab0f85ca6
10
+ test 33 129 88bca90e90875a7f0f79c384627bafb216f80a6f85920584c42fceb0be255daf1e 0000000000000000 5b78d3a43dfff1f1
@@ -0,0 +1,7 @@
1
+ algorithm cipher rc5
2
+ fields key_hex plaintext_hex ciphertext_hex rounds
3
+ test 00000000000000000000000000000000 0000000000000000 21a5dbee154b8f6d 12
4
+ test 915f4619be41b2516355a50110a9ce91 21a5dbee154b8f6d f7c013ac5b2b8952 12
5
+ test 783348e75aeb0f2fd7b169bb8dc16787 f7c013ac5b2b8952 2f42b3b70369fc92 12
6
+ test dc49db1375a5584f6485b413b5f12baf 2f42b3b70369fc92 65c178b284d197cc 12
7
+ test 5269f149d41ba0152497574d7f153125 65c178b284d197cc eb44e415da319824 12
@@ -0,0 +1,8 @@
1
+ algorithm cipher rc6
2
+ fields key_hex plaintext_hex ciphertext_hex
3
+ test 00000000000000000000000000000000 00000000000000000000000000000000 8fc3a53656b1f778c129df4e9848a41e
4
+ test 0123456789abcdef0112233445566778 02132435465768798a9bacbdcedfe0f1 524e192f4715c6231f51f6367ea43f18
5
+ test 000000000000000000000000000000000000000000000000 00000000000000000000000000000000 6cd61bcb190b30384e8a3f168690ae82
6
+ test 0123456789abcdef0112233445566778899aabbccddeeff0 02132435465768798a9bacbdcedfe0f1 688329d019e505041e52e92af95291d4
7
+ test 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000 8f5fbd0510d15fa893fa3fda6e857ec2
8
+ test 0123456789abcdef0112233445566778899aabbccddeeff01032547698badcfe 02132435465768798a9bacbdcedfe0f1 c8241816f0d7e48920ad16a1674e5d48
@@ -0,0 +1,11 @@
1
+ algorithm cipher aes
2
+ fields key_hex plaintext_hex ciphertext_hex
3
+ test 000102030405060708090a0b0c0d0e0f 000102030405060708090a0b0c0d0e0f 0a940bb5416ef045f1c39458c653ea5a
4
+ test 00010203050607080a0b0c0d0f101112 506812a45f08c889b97f5980038b8359 d8f532538289ef7d06b506a4fd5be9c9
5
+ test 14151617191a1b1c1e1f202123242526 5c6d71ca30de8b8b00549984d2ec7d4b 59ab30f4d4ee6e4ff9907ef65b1fb68c
6
+ test 28292a2b2d2e2f30323334353738393a 53f3f4c64f8616e4e7c56199f48f21f6 bf1ed2fcb2af3fd41443b56d85025cb1
7
+ test 00010203050607080a0b0c0d0f10111214151617191a1b1c 2d33eef2c0430a8a9ebf45e809c40bb6 dff4945e0336df4c1c56bc700eff837f
8
+ test 1e1f20212324252628292a2b2d2e2f30323334353738393a 6aa375d1fa155a61fb72353e0a5a8756 b6fddef4752765e347d5d2dc196d1252
9
+ test 3c3d3e3f41424344464748494b4c4d4e5051525355565758 bc3736518b9490dcb8ed60eb26758ed4 d23684e3d963b3afcf1a114aca90cbd6
10
+ test 00010203050607080a0b0c0d0f10111214151617191a1b1c1e1f202123242526 834eadfccac7e1b30664b1aba44815ab 1946dabf6a03a2a2c3d0b05080aed6fc
11
+ test 28292a2b2d2e2f30323334353738393a3c3d3e3f41424344464748494b4c4d4e d9dc4dba3021b05d67c0518f72b62bf1 5ed301d747d3cc715445ebdec62f2fb4
@@ -0,0 +1,27 @@
1
+ algorithm cipher safer_k
2
+ fields key_hex plaintext_hex ciphertext_hex
3
+ test 0000000000000000 0000000000000000 032808c90ee7ab7f
4
+ test 0000000000000000 0102030405060708 7d28038633b92eb4
5
+ test 0102030405060708 1011121314151617 71e5cf7f083a59c5
6
+ test 0102030405060708 18191a1b1c1d1e1f 356f702cc7fa8161
7
+
8
+ algorithm cipher safer_k
9
+ fields key_hex plaintext_hex ciphertext_hex rounds
10
+ test 08070605040302010807060504030201 5051525354555657 38e64dbf6e0f896e 12
11
+ test 08070605040302010807060504030201 58595a5b5c5d5e5f 7d8f014a902480fe 12
12
+ test 01020304050607080807060504030201 6061626364656667 113511c22e7936df 12
13
+ test 01020304050607080807060504030201 68696a6b6c6d6e6f 9eeb2d17c0581437 12
14
+
15
+ algorithm cipher safer_sk
16
+ fields key_hex plaintext_hex ciphertext_hex rounds
17
+ test 0000000000000001 7071727374757677 9abe2c85be2d7614 6
18
+ test 0000000000000001 78797a7b7c7d7e7f ebc4a9c6c25cf215 6
19
+ test 0102030405060708 8081828384858687 54e72ba2d744c566 6
20
+ test 0102030405060708 88898a8b8c8d8e8f 57f55d0f7eb6f8fe 6
21
+
22
+ algorithm cipher safer_sk
23
+ fields key_hex plaintext_hex ciphertext_hex rounds
24
+ test 00000000000000010000000000000001 9091929394959697 9eaa4df1e0eff445 10
25
+ test 00000000000000010000000000000001 98999a9b9c9d9e9f 4cc14838399e532d 10
26
+ test 01020304050607080000000000000000 a0a1a2a3a4a5a6a7 41246b65f1dc6afa 10
27
+ test 00000000000000000102030405060708 a0a1a2a3a4a5a6a7 5cbd77b03626fe3b 10
@@ -0,0 +1,3 @@
1
+ algorithm cipher seal
2
+ fields key_hex plaintext_hex iv_hex ciphertext_hex
3
+ test 67452301efcdab8998badcfe10325476c3d2e1f0 37a005959b84c49ca4be1e050673530f5fb097fdf6a13fbd6c2cdecd81fdee7c 013577af 0000000000000000000000000000000000000000000000000000000000000000
@@ -0,0 +1,11 @@
1
+ algorithm cipher serpent
2
+ fields key_hex plaintext_hex ciphertext_hex
3
+ test 00000000000000000000000000000000 d29d576fcea3a3a7ed9099f29273d78e b2288b968ae8b08648d1ce9606fd992d
4
+ test 00000000000000000000000000000000 d29d576fcea3a3a7ed9099f26d8c2871 563a8403ff5309d62370b1dcf5a11edd
5
+ test ffeeddccbbaa99887766554433221100 1032547698badcfeefcdab8967452301 d5baa00a4bb9d8a7c981c8dc90d89d92
6
+ test ffeeddccbbaa99887766554433221100 145f0b8b663176b95dcab7e9dcd5cc24 1032547698badcfeefcdab8967452301
7
+ test 000000000000000000000000000000000000000000000000 d29d576fceaba3a7ed9899f2927bd78e 130e353e1037c22405e8faefb2c3c3e9
8
+ test 8899aabbccddeeffffeeddccbbaa99887766554433221100 1032547698badcfeefcdab8967452301 da860842b720802bf404a4c71034879a
9
+ test 8899aabbccddeeffffeeddccbbaa99887766554433221100 b2696bd0d98c17953e4239225d27202c 1032547698badcfeefcdab8967452301
10
+ test 0000000000000000000000000000000000000000000000000000000000000000 92074732d84e1841a013a0034c52bf50 81c4eb7b8ad9a8d0f2aa5d7bd626b560
11
+ test 00112233445566778899aabbccddeeffffeeddccbbaa99887766554433221100 1032547698badcfeefcdab8967452301 93df9a3cafe387bd999eebe393a17fca
@@ -0,0 +1,7 @@
1
+ algorithm cipher shacal2
2
+ fields key_hex plaintext_hex ciphertext_hex
3
+ test 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 361ab6322fa9e7a7bb23818d839e01bddafdf47305426edd297aedb9f6202bae
4
+ test 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 8000000000000000000000000000000000000000000000000000000000000000 2cae7c0460ee2fc3200923a1b6c2abeea746c8b44f6c3fb941bd3af02a3e6e3e
5
+ test 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 7ca51614425c3ba8ce54dd2fc2020ae7b6e574d198136d0fae7e26ccbf0be7a6
6
+ test 24242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424 2424242424242424242424242424242424242424242424242424242424242424 9766d3f9e73987ee10a20605c8338c0759a7024cf2df549de5084ec4902c550a
7
+ test fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe 5dc15c83e7c4f5aaf8d8482ed1e443271b28b59288783dbcddec3544e3368a6e
@@ -0,0 +1,9 @@
1
+ algorithm cipher shark
2
+ fields key_hex plaintext_hex ciphertext_hex
3
+ test 00000000000000000000000000000000 0000000000000000 214bcf4e7716420a
4
+ test 000102030405060708090a0b0c0d0e0f 0000000000000000 c76c696289898137
5
+ test 000102030405060708090a0b0c0d0e0f c76c696289898137 077a4a59faeeea4d
6
+ test 915f4619be41b2516355a50110a9ce91 21a5dbee154b8f6d 6ff33b98f448e95a
7
+ test 783348e75aeb0f2fd7b169bb8dc16787 f7c013ac5b2b8952 e5e554abe9ced2d2
8
+ test dc49db1375a5584f6485b413b5f12baf 2f42b3b70369fc92 9ae068313f343a7a
9
+ test 5269f149d41ba0152497574d7f153125 65c178b284d197cc d3f111a282f17f29
@@ -0,0 +1,3 @@
1
+ algorithm cipher skipjack
2
+ fields key_hex plaintext_hex ciphertext_hex
3
+ test 11223344556677889900 aabbccdd00112233 00d3127ae2ca8725
@@ -0,0 +1,10 @@
1
+ algorithm cipher square
2
+ fields key_hex plaintext_hex ciphertext_hex
3
+ test 00000000000000000000000000000000 00000000000000000000000000000000 3c00428f8abbc0b84f057cc19c26f8cf
4
+ test 000102030405060708090a0b0c0d0e0f 00000000000000000000000000000000 ff596fa668bfc3014200ae01e2bba0a0
5
+ test 000102030405060708090a0b0c0d0e0f 000102030405060708090a0b0c0d0e0f 7c3491d94994e70f0ec2e7a5ccb5a14f
6
+ test 000102030405060708090a0b0c0d0e0f c76c696289898137077a4a59faeeea4d 88c6ff4b92604c6e66656b02ddaf9f40
7
+ test 915f4619be41b2516355a50110a9ce91 21a5dbee154b8f6d6ff33b98f448e95a 3388801f66e7fcc0bce522a23a4f0c7f
8
+ test 783348e75aeb0f2fd7b169bb8dc16787 f7c013ac5b2b8952e5e554abe9ced2d2 a1c0e9215141343dec2b556942c92bde
9
+ test dc49db1375a5584f6485b413b5f12baf 2f42b3b70369fc929ae068313f343a7a 3fbe6811b998cdf3e50abde2f3c075e3
10
+ test 5269f149d41ba0152497574d7f153125 65c178b284d197ccd3f111a282f17f29 d7b7209e0879744c782809b6d2e0b1b0
@@ -0,0 +1,11 @@
1
+ algorithm cipher twofish
2
+ fields key_hex plaintext_hex ciphertext_hex
3
+ test 00000000000000000000000000000000 00000000000000000000000000000000 9f589f5cf6122c32b6bfec2f2ae8c35a
4
+ test 00000000000000000000000000000000 9f589f5cf6122c32b6bfec2f2ae8c35a d491db16e7b1c39e86cb086b789f5419
5
+ test 9f589f5cf6122c32b6bfec2f2ae8c35a d491db16e7b1c39e86cb086b789f5419 019f9809de1711858faac3a3ba20fbc3
6
+ test d491db16e7b1c39e86cb086b789f5419 019f9809de1711858faac3a3ba20fbc3 6363977de839486297e661c6c9d668eb
7
+ test 000000000000000000000000000000000000000000000000 00000000000000000000000000000000 efa71f788965bd4453f860178fc19101
8
+ test efa71f788965bd4453f860178fc191010000000000000000 88b2b2706b105e36b446bb6d731a1e88 39da69d6ba4997d585b6dc073ca341b2
9
+ test 88b2b2706b105e36b446bb6d731a1e88efa71f788965bd44 39da69d6ba4997d585b6dc073ca341b2 182b02d81497ea45f9daacdc29193a65
10
+ test 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000 57ff739d4dc92c1bd7fc01700cc8216f
11
+ test d43bb7556ea32e46f2a282b7d45b4e0d57ff739d4dc92c1bd7fc01700cc8216f 90afe91bb288544f2c32dc239b2635e6 6cb4561c40bf0a9705931cb6d408e7fa
@@ -0,0 +1,8 @@
1
+ algorithm checksum adler32
2
+ fields plaintext digest_hex
3
+ test 00000001
4
+ test a 00620062
5
+ test abc 024d0127
6
+ test message digest 29750586
7
+ test abcdefghijklmnopqrstuvwxyz 90860b20
8
+ test ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 8adb150c
@@ -0,0 +1,10 @@
1
+ algorithm checksum crc32
2
+ fields plaintext digest_hex
3
+ test 00000000
4
+ test a 43beb7e8
5
+ test abc c2412435
6
+ test message digest 7f9d1520
7
+ test abcdefghijklmnopqrstuvwxyz bd50274c
8
+ test ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 d2e6c21f
9
+ test 12345678901234567890123456789012345678901234567890123456789012345678901234567890 724aa97c
10
+ test 123456789 2639f4cb
@@ -0,0 +1,4 @@
1
+ algorithm digest haval5
2
+ fields plaintext digest
3
+ test abcdefghijklmnopqrstuvwxyz c9c7d8afa159fd9e965cb83ff5ee6f58aeda352c0eff005548153a61551c38ee
4
+ test ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 b45cb6e62f2b1320e4f8f1b0b273d45add47c321fd23999dcf403ac37636d963
@@ -0,0 +1,23 @@
1
+ 3 128
2
+
3
+ 1BDC556B29AD02EC09AF8C66477F2A87
4
+
5
+ 3 160
6
+ a
7
+ 5E1610FCED1D3ADB0BB18E92AC2B11F0BD99D8ED
8
+
9
+ 4 192
10
+ HAVAL
11
+ 74AA31182FF09BCCE453A7F71B5A7C5E80872FA90CD93AE4
12
+
13
+ 4 224
14
+ 0123456789
15
+ 144CB2DE11F05DF7C356282A3B485796DA653F6B702868C7DCF4AE76
16
+
17
+ 5 256
18
+ abcdefghijklmnopqrstuvwxyz
19
+ 1A1DC8099BDAA7F35B4DA4E805F1A28FEE909D8DEE920198185CBCAED8A10A8D
20
+
21
+ 5 256
22
+ ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789
23
+ C5647FC6C1877FFF96742F27E9266B6874894F41A08F5913033D9D532AEDDB39
@@ -0,0 +1,9 @@
1
+ algorithm digest md2
2
+ fields plaintext digest_hex
3
+ test 8350e5a3e24c153df2275c9f80692773
4
+ test a 32ec01ec4a6dac72c0ab96fb34c0b5d1
5
+ test abc da853b0d3f88d99b30283a69e6ded6bb
6
+ test message digest ab4f496bfb2a530b219ff33031fe06b0
7
+ test abcdefghijklmnopqrstuvwxyz 4e8ddff3650292ab5a4108c3aa47940b
8
+ test ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 da33def2a42df13975352846c30338cd
9
+ test 12345678901234567890123456789012345678901234567890123456789012345678901234567890 d5976f79d83d3a0dc9806c3c66f3efd8
@@ -0,0 +1,9 @@
1
+ algorithm digest md4
2
+ fields plaintext digest_hex
3
+ test 31d6cfe0d16ae931b73c59d7e0c089c0
4
+ test a bde52cb31de33e46245e05fbdbd6fb24
5
+ test abc a448017aaf21d8525fc10ae87aa6729d
6
+ test message digest d9130a8164549fe818874806e1c7014b
7
+ test abcdefghijklmnopqrstuvwxyz d79e1c308aa5bbcdeea8ed63df412da9
8
+ test ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 043f8582f241db351ce627e153e7f0e4
9
+ test 12345678901234567890123456789012345678901234567890123456789012345678901234567890 e33b4ddc9c38f2199c3e7b164fcc0536
@@ -0,0 +1,9 @@
1
+ algorithm digest md5
2
+ fields plaintext digest_hex
3
+ test d41d8cd98f00b204e9800998ecf8427e
4
+ test a 0cc175b9c0f1b6a831c399e269772661
5
+ test abc 900150983cd24fb0d6963f7d28e17f72
6
+ test message digest f96b697d7cb7938d525a2f31aaf161d0
7
+ test abcdefghijklmnopqrstuvwxyz c3fcd3d76192e4007dfb496cca67e13b
8
+ test ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 d174ab98d277d9f5a5611c2c9f419d9f
9
+ test 12345678901234567890123456789012345678901234567890123456789012345678901234567890 57edf4a22be3c955ac49da2e2107b67a
@@ -0,0 +1,8 @@
1
+ algorithm digest panama_le
2
+ fields plaintext digest_hex
3
+ test aa0cc954d757d7ac7779ca3342334ca471abd47d5952ac91ed837ecd5b16922b
4
+ test The quick brown fox jumps over the lazy dog 5f5ca355b90ac622b0aa7e654ef5f27e9e75111415b48b8afe3add1c6b89cba1
5
+ algorithm digest panama_be
6
+ fields plaintext digest_hex
7
+ test e81aa04523532dd7267e5c5bc3ba0e289837a62ba032350351980e960a84b0af
8
+ test The quick brown fox jumps over the lazy dog 8fa7dadce0110f979a0b795e76b2c25628d8bda88747758149c42e3bc13f85bc
@@ -0,0 +1,43 @@
1
+ algorithm digest ripemd128
2
+ fields plaintext digest_hex
3
+ test cdf26213a150dc3ecb610f18f6b38b46
4
+ test a 86be7afa339d0fc7cfc785e72f578d33
5
+ test abc c14a12199c66e4ba84636b0f69144c77
6
+ test message digest 9e327b3d6e523062afc1132d7df9d1b8
7
+ test abcdefghijklmnopqrstuvwxyz fd2aa607f71dc8f510714922b371834e
8
+ test abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq a1aa0689d0fafa2ddc22e88b49133a06
9
+ test ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 d1e959eb179c911faea4624c60c5c702
10
+ test 12345678901234567890123456789012345678901234567890123456789012345678901234567890 3f45ef194732c2dbb2c4a2c769795fa3
11
+
12
+ algorithm digest ripemd160
13
+ fields plaintext digest_hex
14
+ test 9c1185a5c5e9fc54612808977ee8f548b2258d31
15
+ test a 0bdc9d2d256b3ee9daae347be6f4dc835a467ffe
16
+ test abc 8eb208f7e05d987a9b044a8e98c6b087f15a0bfc
17
+ test message digest 5d0689ef49d2fae572b881b123a85ffa21595f36
18
+ test abcdefghijklmnopqrstuvwxyz f71c27109c692c1b56bbdceb5b9d2865b3708dbc
19
+ test abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq 12a053384a9c0c88e405a06c27dcf49ada62eb2b
20
+ test ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 b0e20b6e3116640286ed3a87a5713079b21f5189
21
+ test 12345678901234567890123456789012345678901234567890123456789012345678901234567890 9b752e45573d4b39f4dbd3323cab82bf63326bfb
22
+
23
+ algorithm digest ripemd256
24
+ fields plaintext digest_hex
25
+ test 02ba4c4e5f8ecd1877fc52d64d30e37a2d9774fb1e5d026380ae0168e3c5522d
26
+ test a f9333e45d857f5d90a91bab70a1eba0cfb1be4b0783c9acfcd883a9134692925
27
+ test abc afbd6e228b9d8cbbcef5ca2d03e6dba10ac0bc7dcbe4680e1e42d2e975459b65
28
+ test message digest 87e971759a1ce47a514d5c914c392c9018c7c46bc14465554afcdf54a5070c0e
29
+ test abcdefghijklmnopqrstuvwxyz 649d3034751ea216776bf9a18acc81bc7896118a5197968782dd1fd97d8d5133
30
+ test abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq 3843045583aac6c8c8d9128573e7a9809afb2a0f34ccc36ea9e72f16f6368e3f
31
+ test ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 5740a408ac16b720b84424ae931cbb1fe363d1d0bf4017f1a89f7ea6de77a0b8
32
+ test 12345678901234567890123456789012345678901234567890123456789012345678901234567890 06fdcc7a409548aaf91368c06a6275b553e3f099bf0ea4edfd6778df89a890dd
33
+
34
+ algorithm digest ripemd320
35
+ fields plaintext digest_hex
36
+ test 22d65d5661536cdc75c1fdf5c6de7b41b9f27325ebc61e8557177d705a0ec880151c3a32a00899b8
37
+ test a ce78850638f92658a5a585097579926dda667a5716562cfcf6fbe77f63542f99b04705d6970dff5d
38
+ test abc de4c01b3054f8930a79d09ae738e92301e5a17085beffdc1b8d116713e74f82fa942d64cdbc4682d
39
+ test message digest 3a8e28502ed45d422f68844f9dd316e7b98533fa3f2a91d29f84d425c88d6b4eff727df66a7c0197
40
+ test abcdefghijklmnopqrstuvwxyz cabdb1810b92470a2093aa6bce05952c28348cf43ff60841975166bb40ed234004b8824463e6b009
41
+ test abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq d034a7950cf722021ba4b84df769a5de2060e259df4c9bb4a4268c0e935bbc7470a969c9d072a1ac
42
+ test ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 ed544940c86d67f250d232c30b7b3e5770e0c60c8cb9a4cafe3b11388af9920e1b99230b843c86a4
43
+ test 12345678901234567890123456789012345678901234567890123456789012345678901234567890 557888af5f6d8ed62ab66945c6d2a0a47ecd5341e915eb8fea1d0524955f825dc717e4a008ab2d42
@@ -0,0 +1,19 @@
1
+ algorithm digest sha1
2
+ fields plaintext digest_hex
3
+ test abc a9993e364706816aba3e25717850c26c9cd0d89d
4
+ test abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq 84983e441c3bd26ebaae4aa1f95129e5e54670f1
5
+
6
+ algorithm digest sha256
7
+ fields plaintext digest_hex
8
+ test abc ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad
9
+ test abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq 248d6a61d20638b8e5c026930c3e6039a33ce45964ff2167f6ecedd419db06c1
10
+
11
+ algorithm digest sha384
12
+ fields plaintext digest_hex
13
+ test abc cb00753f45a35e8bb5a03d699ac65007272c32ab0eded1631a8b605a43ff5bed8086072ba1e7cc2358baeca134c825a7
14
+ test abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu 09330c33f71147e83d192fc782cd1b4753111b173b3b05d22fa08086e3b0f712fcc7c71a557e2db966c3e9fa91746039
15
+
16
+ algorithm digest sha512
17
+ fields plaintext digest_hex
18
+ test abc ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f
19
+ test abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu 8e959b75dae313da8cf4f72814fc143f8f7779c6eb9f7fa17299aeadb6889018501d289e4900f7e4331b99dec4b5433ac7d329eeb6dd26545e96e55b874be909
@@ -0,0 +1,11 @@
1
+ algorithm digest tiger
2
+ fields plaintext digest_hex
3
+ test 3293ac630c13f0245f92bbb1766e16167a4e58492dde73f3
4
+ test abc 2aab1484e8c158f2bfb8c5ff41b57a525129131c957b5f93
5
+ test Tiger dd00230799f5009fec6debc838bb6a27df2b9d6f110c7937
6
+ test ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+- f71c8583902afb879edfe610f82c0d4786a3a534504486b5
7
+ test ABCDEFGHIJKLMNOPQRSTUVWXYZ=abcdefghijklmnopqrstuvwxyz+0123456789 48ceeb6308b87d46e95d656112cdf18d97915f9765658957
8
+ test Tiger - A Fast New Hash Function, by Ross Anderson and Eli Biham 8a866829040a410c729ad23f5ada711603b3cdd357e4c15e
9
+ test Tiger - A Fast New Hash Function, by Ross Anderson and Eli Biham, proceedings of Fast Software Encryption 3, Cambridge. ce55a6afd591f5ebac547ff84f89227f9331dab0b611c889
10
+ test Tiger - A Fast New Hash Function, by Ross Anderson and Eli Biham, proceedings of Fast Software Encryption 3, Cambridge, 1996. 631abdd103eb9a3d245b6dfd4d77b257fc7439501d1568dd
11
+ test ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+- c54034e5b43eb8005848a7e0ae6aac76e4ff590ae715fd25
@@ -0,0 +1,13 @@
1
+ algorithm digest whirlpool
2
+ fields plaintext digest_hex
3
+ test 19fa61d75522a4669b44e39c1d2e1726c530232130d407f89afee0964997f7a73e83be698b288febcf88e3e03c4f0757ea8964e59b63d93708b138cc42a66eb3
4
+ test a 8aca2602792aec6f11a67206531fb7d7f0dff59413145e6973c45001d0087b42d11bc645413aeff63a42391a39145a591a92200d560195e53b478584fdae231a
5
+ test abc 4e2448a4c6f486bb16b6562c73b4020bf3043e3a731bce721ae1b303d97e6d4c7181eebdb6c57e277d0e34957114cbd6c797fc9d95d8b582d225292076d4eef5
6
+ test message digest 378c84a4126e2dc6e56dcc7458377aac838d00032230f53ce1f5700c0ffb4d3b8421557659ef55c106b4b52ac5a4aaa692ed920052838f3362e86dbd37a8903e
7
+ test abcdefghijklmnopqrstuvwxyz f1d754662636ffe92c82ebb9212a484a8d38631ead4238f5442ee13b8054e41b08bf2a9251c30b6a0b8aae86177ab4a6f68f673e7207865d5d9819a3dba4eb3b
8
+ test ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 dc37e008cf9ee69bf11f00ed9aba26901dd7c28cdec066cc6af42e40f82f3a1e08eba26629129d8fb7cb57211b9281a65517cc879d7b962142c65f5a7af01467
9
+ test 12345678901234567890123456789012345678901234567890123456789012345678901234567890 466ef18babb0154d25b9d38a6414f5c08784372bccb204d6549c4afadb6014294d5bd8df2a6c44e538cd047b2681a51a2c60481e88c5a20b2c2a80cf3a9a083b
10
+ test abcdbcdecdefdefgefghfghighijhijk 2a987ea40f917061f5d6f0a0e4644f488a7a5a52deee656207c562f988e95c6916bdc8031bc5be1b7b947639fe050b56939baaa0adff9ae6745b7b181c3be3fd
11
+ #Message: r1000000 "a"
12
+ #Digest: 0C99005BEB57EFF5 0A7CF005560DDF5D 29057FD86B20BFD6 2DECA0F1CCEA4AF5\
13
+ # 1FC15490EDDC47AF 32BB2B66C34FF9AD 8C6008AD677F7712 6953B226E4ED8B01
@@ -0,0 +1,6 @@
1
+ algorithm hmac MD5
2
+ fields plaintext key_hex digest_hex
3
+ test Hi There 0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b 9294727a3638bb1c13f48ef8158bfc9d
4
+ test what do ya want for nothing? 4A656665 750c783e6ab0b503eaa86e310a5db738
5
+ fields plaintext key_hex key_repeat digest_hex
6
+ test Test Using Larger Than Block-Size Key - Hash Key First A 160 6b1ab7fe4bd7bf8f0b62e6ce61b9d0cd
@@ -0,0 +1,29 @@
1
+
2
+ require 'test/unit'
3
+ require 'test/test_helper'
4
+
5
+ class DigestsTest < Test::Unit::TestCase
6
+ include TestHelper
7
+
8
+ Dir.glob('test/data/digests/*.dat').sort.each do |f|
9
+ test_name = File.basename(f).gsub(/.dat$/, '')
10
+
11
+ class_eval(%{
12
+ def test_#{test_name}
13
+ run_digest_test("#{f}")
14
+ end
15
+ })
16
+ end
17
+
18
+ def run_digest_test(file)
19
+ readfile(file) do |options|
20
+ if CryptoPP.digest_enabled? options[:algorithm]
21
+ d = CryptoPP.digest_factory(options[:algorithm], options[:plaintext])
22
+ t = CryptoPP.digest_factory(options[:algorithm], { :digest => d.digest, :plaintext => d.plaintext })
23
+
24
+ assert(t.validate)
25
+ assert_equal(d.digest_hex, options[:digest_hex])
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,38 @@
1
+
2
+ require 'test/unit'
3
+ require 'test/test_helper'
4
+
5
+ class HMACsTest < Test::Unit::TestCase
6
+ include TestHelper
7
+
8
+ Dir.glob('test/data/hmacs/*.dat').sort.each do |f|
9
+ test_name = File.basename(f).gsub(/.dat$/, '')
10
+
11
+ class_eval(%{
12
+ def test_#{test_name}
13
+ run_digest_test("#{f}")
14
+ end
15
+ })
16
+ end
17
+
18
+ def run_digest_test(file)
19
+ readfile(file) do |options|
20
+ if CryptoPP.digest_enabled? options[:algorithm]
21
+ d = CryptoPP.hmac_factory(options[:algorithm], {
22
+ :key_hex => options[:key_hex],
23
+ :plaintext => options[:plaintext]
24
+ })
25
+ d.calculate
26
+
27
+ t = CryptoPP.hmac_factory(options[:algorithm], {
28
+ :digest => d.digest,
29
+ :plaintext => d.plaintext,
30
+ :key => d.key
31
+ })
32
+
33
+ assert(t.validate)
34
+ assert_equal(d.digest_hex, options[:digest_hex])
35
+ end
36
+ end
37
+ end
38
+ end