Artifact
c9b556e8aac4f1af16ffbe279ef26b5cb0a1b98a:
0000: 69 6d 70 6f 72 74 20 6a 61 76 61 2e 69 6f 2e 46 import java.io.F
0010: 69 6c 65 3b 0a 69 6d 70 6f 72 74 20 6a 61 76 61 ile;.import java
0020: 2e 69 6f 2e 49 4f 45 78 63 65 70 74 69 6f 6e 3b .io.IOException;
0030: 0a 69 6d 70 6f 72 74 20 6a 61 76 61 2e 69 6f 2e .import java.io.
0040: 50 72 69 6e 74 53 74 72 65 61 6d 3b 0a 69 6d 70 PrintStream;.imp
0050: 6f 72 74 20 6a 61 76 61 2e 75 74 69 6c 2e 45 6e ort java.util.En
0060: 75 6d 53 65 74 3b 0a 0a 69 6d 70 6f 72 74 20 6f umSet;..import o
0070: 72 67 2e 73 66 2e 72 68 61 73 68 2e 2a 3b 0a 69 rg.sf.rhash.*;.i
0080: 6d 70 6f 72 74 20 73 74 61 74 69 63 20 6f 72 67 mport static org
0090: 2e 73 66 2e 72 68 61 73 68 2e 48 61 73 68 54 79 .sf.rhash.HashTy
00a0: 70 65 2e 2a 3b 0a 0a 69 6d 70 6f 72 74 20 6f 72 pe.*;..import or
00b0: 67 2e 6a 75 6e 69 74 2e 54 65 73 74 3b 0a 69 6d g.junit.Test;.im
00c0: 70 6f 72 74 20 6a 75 6e 69 74 2e 66 72 61 6d 65 port junit.frame
00d0: 77 6f 72 6b 2e 4a 55 6e 69 74 34 54 65 73 74 41 work.JUnit4TestA
00e0: 64 61 70 74 65 72 3b 0a 69 6d 70 6f 72 74 20 73 dapter;.import s
00f0: 74 61 74 69 63 20 6a 75 6e 69 74 2e 66 72 61 6d tatic junit.fram
0100: 65 77 6f 72 6b 2e 54 65 73 74 43 61 73 65 2e 2a ework.TestCase.*
0110: 3b 0a 0a 70 75 62 6c 69 63 20 63 6c 61 73 73 20 ;..public class
0120: 52 48 61 73 68 54 65 73 74 20 7b 0a 0a 09 40 54 RHashTest {...@T
0130: 65 73 74 0a 09 70 75 62 6c 69 63 20 76 6f 69 64 est..public void
0140: 20 74 65 73 74 41 6c 6c 48 61 73 68 65 73 28 29 testAllHashes()
0150: 20 7b 0a 09 09 52 48 61 73 68 20 72 20 3d 20 6e {...RHash r = n
0160: 65 77 20 52 48 61 73 68 28 45 6e 75 6d 53 65 74 ew RHash(EnumSet
0170: 2e 61 6c 6c 4f 66 28 48 61 73 68 54 79 70 65 2e .allOf(HashType.
0180: 63 6c 61 73 73 29 29 3b 0a 09 09 72 2e 75 70 64 class));...r.upd
0190: 61 74 65 28 22 61 22 29 2e 66 69 6e 69 73 68 28 ate("a").finish(
01a0: 29 3b 0a 09 09 0a 09 09 61 73 73 65 72 74 45 71 );......assertEq
01b0: 75 61 6c 73 28 22 65 38 62 37 62 65 34 33 22 2c uals("e8b7be43",
01c0: 20 72 2e 67 65 74 44 69 67 65 73 74 28 43 52 43 r.getDigest(CRC
01d0: 33 32 29 2e 74 6f 53 74 72 69 6e 67 28 29 29 3b 32).toString());
01e0: 0a 09 09 61 73 73 65 72 74 45 71 75 61 6c 73 28 ...assertEquals(
01f0: 22 62 64 65 35 32 63 62 33 31 64 65 33 33 65 34 "bde52cb31de33e4
0200: 36 32 34 35 65 30 35 66 62 64 62 64 36 66 62 32 6245e05fbdbd6fb2
0210: 34 22 2c 20 72 2e 67 65 74 44 69 67 65 73 74 28 4", r.getDigest(
0220: 4d 44 34 29 2e 74 6f 53 74 72 69 6e 67 28 29 29 MD4).toString())
0230: 3b 0a 09 09 61 73 73 65 72 74 45 71 75 61 6c 73 ;...assertEquals
0240: 28 22 30 63 63 31 37 35 62 39 63 30 66 31 62 36 ("0cc175b9c0f1b6
0250: 61 38 33 31 63 33 39 39 65 32 36 39 37 37 32 36 a831c399e2697726
0260: 36 31 22 2c 20 72 2e 67 65 74 44 69 67 65 73 74 61", r.getDigest
0270: 28 4d 44 35 29 2e 74 6f 53 74 72 69 6e 67 28 29 (MD5).toString()
0280: 29 3b 0a 09 09 61 73 73 65 72 74 45 71 75 61 6c );...assertEqual
0290: 73 28 22 38 36 66 37 65 34 33 37 66 61 61 35 61 s("86f7e437faa5a
02a0: 37 66 63 65 31 35 64 31 64 64 63 62 39 65 61 65 7fce15d1ddcb9eae
02b0: 61 65 61 33 37 37 36 36 37 62 38 22 2c 20 72 2e aea377667b8", r.
02c0: 67 65 74 44 69 67 65 73 74 28 53 48 41 31 29 2e getDigest(SHA1).
02d0: 74 6f 53 74 72 69 6e 67 28 29 29 3b 0a 09 09 61 toString());...a
02e0: 73 73 65 72 74 45 71 75 61 6c 73 28 22 37 37 62 ssertEquals("77b
02f0: 65 66 62 65 66 32 65 37 65 66 38 61 62 32 65 63 efbef2e7ef8ab2ec
0300: 38 66 39 33 62 66 35 38 37 61 37 66 63 36 31 33 8f93bf587a7fc613
0310: 65 32 34 37 66 35 66 32 34 37 38 30 39 22 2c 20 e247f5f247809",
0320: 72 2e 67 65 74 44 69 67 65 73 74 28 54 49 47 45 r.getDigest(TIGE
0330: 52 29 2e 74 6f 53 74 72 69 6e 67 28 29 29 3b 0a R).toString());.
0340: 09 09 61 73 73 65 72 74 45 71 75 61 6c 73 28 22 ..assertEquals("
0350: 63 7a 71 75 77 68 33 69 79 78 62 66 35 6c 33 62 czquwh3iyxbf5l3b
0360: 67 79 75 67 7a 68 61 73 73 6d 78 75 36 34 37 69 gyugzhassmxu647i
0370: 70 32 69 6b 65 34 79 22 2c 20 72 2e 67 65 74 44 p2ike4y", r.getD
0380: 69 67 65 73 74 28 54 54 48 29 2e 74 6f 53 74 72 igest(TTH).toStr
0390: 69 6e 67 28 29 29 3b 0a 09 09 61 73 73 65 72 74 ing());...assert
03a0: 45 71 75 61 6c 73 28 34 30 2c 20 72 2e 67 65 74 Equals(40, r.get
03b0: 44 69 67 65 73 74 28 42 54 49 48 29 2e 74 6f 53 Digest(BTIH).toS
03c0: 74 72 69 6e 67 28 29 2e 6c 65 6e 67 74 68 28 29 tring().length()
03d0: 29 3b 0a 09 09 61 73 73 65 72 74 45 71 75 61 6c );...assertEqual
03e0: 73 28 22 62 64 65 35 32 63 62 33 31 64 65 33 33 s("bde52cb31de33
03f0: 65 34 36 32 34 35 65 30 35 66 62 64 62 64 36 66 e46245e05fbdbd6f
0400: 62 32 34 22 2c 20 72 2e 67 65 74 44 69 67 65 73 b24", r.getDiges
0410: 74 28 45 44 32 4b 29 2e 74 6f 53 74 72 69 6e 67 t(ED2K).toString
0420: 28 29 29 3b 0a 09 09 61 73 73 65 72 74 45 71 75 ());...assertEqu
0430: 61 6c 73 28 22 71 33 33 36 69 6e 37 32 75 77 74 als("q336in72uwt
0440: 37 7a 79 6b 35 64 78 6f 6c 74 32 78 6b 35 69 33 7zyk5dxolt2xk5i3
0450: 78 6d 7a 35 79 22 2c 20 72 2e 67 65 74 44 69 67 xmz5y", r.getDig
0460: 65 73 74 28 41 49 43 48 29 2e 74 6f 53 74 72 69 est(AICH).toStri
0470: 6e 67 28 29 29 3b 0a 09 09 61 73 73 65 72 74 45 ng());...assertE
0480: 71 75 61 6c 73 28 22 38 61 63 61 32 36 30 32 37 quals("8aca26027
0490: 39 32 61 65 63 36 66 31 31 61 36 37 32 30 36 35 92aec6f11a672065
04a0: 33 31 66 62 37 64 37 66 30 64 66 66 35 39 34 31 31fb7d7f0dff5941
04b0: 33 31 34 35 65 36 39 37 33 63 34 35 30 30 31 64 3145e6973c45001d
04c0: 30 30 38 37 62 34 32 64 31 31 62 63 36 34 35 34 0087b42d11bc6454
04d0: 31 33 61 65 66 66 36 33 61 34 32 33 39 31 61 33 13aeff63a42391a3
04e0: 39 31 34 35 61 35 39 31 61 39 32 32 30 30 64 35 9145a591a92200d5
04f0: 36 30 31 39 35 65 35 33 62 34 37 38 35 38 34 66 60195e53b478584f
0500: 64 61 65 32 33 31 61 22 2c 20 72 2e 67 65 74 44 dae231a", r.getD
0510: 69 67 65 73 74 28 57 48 49 52 4c 50 4f 4f 4c 29 igest(WHIRLPOOL)
0520: 2e 74 6f 53 74 72 69 6e 67 28 29 29 3b 0a 09 09 .toString());...
0530: 61 73 73 65 72 74 45 71 75 61 6c 73 28 22 30 62 assertEquals("0b
0540: 64 63 39 64 32 64 32 35 36 62 33 65 65 39 64 61 dc9d2d256b3ee9da
0550: 61 65 33 34 37 62 65 36 66 34 64 63 38 33 35 61 ae347be6f4dc835a
0560: 34 36 37 66 66 65 22 2c 20 72 2e 67 65 74 44 69 467ffe", r.getDi
0570: 67 65 73 74 28 52 49 50 45 4d 44 31 36 30 29 2e gest(RIPEMD160).
0580: 74 6f 53 74 72 69 6e 67 28 29 29 3b 0a 09 09 61 toString());...a
0590: 73 73 65 72 74 45 71 75 61 6c 73 28 22 64 34 32 ssertEquals("d42
05a0: 63 35 33 39 65 33 36 37 63 36 36 65 39 63 38 38 c539e367c66e9c88
05b0: 61 38 30 31 66 36 36 34 39 33 34 39 63 32 31 38 a801f6649349c218
05c0: 37 31 62 34 33 34 34 63 36 61 35 37 33 66 38 34 71b4344c6a573f84
05d0: 39 66 64 63 65 36 32 66 33 31 34 64 64 22 2c 20 9fdce62f314dd",
05e0: 72 2e 67 65 74 44 69 67 65 73 74 28 47 4f 53 54 r.getDigest(GOST
05f0: 29 2e 74 6f 53 74 72 69 6e 67 28 29 29 3b 0a 09 ).toString());..
0600: 09 61 73 73 65 72 74 45 71 75 61 6c 73 28 22 65 .assertEquals("e
0610: 37 34 63 35 32 64 64 32 38 32 31 38 33 62 66 33 74c52dd282183bf3
0620: 37 61 66 30 30 37 39 63 39 66 37 38 30 35 35 37 7af0079c9f780557
0630: 31 35 61 31 30 33 66 31 37 65 33 31 33 33 63 65 15a103f17e3133ce
0640: 66 66 31 61 61 63 66 32 66 34 30 33 30 31 31 22 ff1aacf2f403011"
0650: 2c 20 72 2e 67 65 74 44 69 67 65 73 74 28 47 4f , r.getDigest(GO
0660: 53 54 5f 43 52 59 50 54 4f 50 52 4f 29 2e 74 6f ST_CRYPTOPRO).to
0670: 53 74 72 69 6e 67 28 29 29 3b 0a 09 09 61 73 73 String());...ass
0680: 65 72 74 45 71 75 61 6c 73 28 22 34 38 37 32 62 ertEquals("4872b
0690: 63 62 63 34 63 64 30 66 30 61 39 64 63 37 63 32 cbc4cd0f0a9dc7c2
06a0: 66 37 30 34 35 65 35 62 34 33 62 36 63 38 33 30 f7045e5b43b6c830
06b0: 64 62 38 22 2c 20 72 2e 67 65 74 44 69 67 65 73 db8", r.getDiges
06c0: 74 28 48 41 53 31 36 30 29 2e 74 6f 53 74 72 69 t(HAS160).toStri
06d0: 6e 67 28 29 29 3b 0a 09 09 61 73 73 65 72 74 45 ng());...assertE
06e0: 71 75 61 6c 73 28 22 62 66 35 63 65 35 34 30 61 quals("bf5ce540a
06f0: 65 35 31 62 63 35 30 33 39 39 66 39 36 37 34 36 e51bc50399f96746
0700: 63 35 61 31 35 62 64 22 2c 20 72 2e 67 65 74 44 c5a15bd", r.getD
0710: 69 67 65 73 74 28 53 4e 45 46 52 55 31 32 38 29 igest(SNEFRU128)
0720: 2e 74 6f 53 74 72 69 6e 67 28 29 29 3b 0a 09 09 .toString());...
0730: 61 73 73 65 72 74 45 71 75 61 6c 73 28 22 34 35 assertEquals("45
0740: 31 36 31 35 38 39 61 63 33 31 37 62 65 30 63 65 161589ac317be0ce
0750: 62 61 37 30 64 62 32 35 37 33 64 64 64 61 36 65 ba70db2573ddda6e
0760: 36 36 38 61 33 31 39 38 34 62 33 39 62 66 36 35 668a31984b39bf65
0770: 65 34 62 36 36 34 62 35 38 34 63 36 33 64 22 2c e4b664b584c63d",
0780: 20 72 2e 67 65 74 44 69 67 65 73 74 28 53 4e 45 r.getDigest(SNE
0790: 46 52 55 32 35 36 29 2e 74 6f 53 74 72 69 6e 67 FRU256).toString
07a0: 28 29 29 3b 0a 09 09 61 73 73 65 72 74 45 71 75 ());...assertEqu
07b0: 61 6c 73 28 22 61 62 64 33 37 35 33 34 63 37 64 als("abd37534c7d
07c0: 39 61 32 65 66 62 39 34 36 35 64 65 39 33 31 63 9a2efb9465de931c
07d0: 64 37 30 35 35 66 66 64 62 38 38 37 39 35 36 33 d7055ffdb8879563
07e0: 61 65 39 38 30 37 38 64 36 64 36 64 35 22 2c 20 ae98078d6d6d5",
07f0: 72 2e 67 65 74 44 69 67 65 73 74 28 53 48 41 32 r.getDigest(SHA2
0800: 32 34 29 2e 74 6f 53 74 72 69 6e 67 28 29 29 3b 24).toString());
0810: 0a 09 09 61 73 73 65 72 74 45 71 75 61 6c 73 28 ...assertEquals(
0820: 22 63 61 39 37 38 31 31 32 63 61 31 62 62 64 63 "ca978112ca1bbdc
0830: 61 66 61 63 32 33 31 62 33 39 61 32 33 64 63 34 afac231b39a23dc4
0840: 64 61 37 38 36 65 66 66 38 31 34 37 63 34 65 37 da786eff8147c4e7
0850: 32 62 39 38 30 37 37 38 35 61 66 65 65 34 38 62 2b9807785afee48b
0860: 62 22 2c 20 72 2e 67 65 74 44 69 67 65 73 74 28 b", r.getDigest(
0870: 53 48 41 32 35 36 29 2e 74 6f 53 74 72 69 6e 67 SHA256).toString
0880: 28 29 29 3b 0a 09 09 61 73 73 65 72 74 45 71 75 ());...assertEqu
0890: 61 6c 73 28 22 35 34 61 35 39 62 39 66 32 32 62 als("54a59b9f22b
08a0: 30 62 38 30 38 38 30 64 38 34 32 37 65 35 34 38 0b80880d8427e548
08b0: 62 37 63 32 33 61 62 64 38 37 33 34 38 36 65 31 b7c23abd873486e1
08c0: 66 30 33 35 64 63 65 39 63 64 36 39 37 65 38 35 f035dce9cd697e85
08d0: 31 37 35 30 33 33 63 61 61 38 38 65 36 64 35 37 175033caa88e6d57
08e0: 62 63 33 35 65 66 61 65 30 62 35 61 66 64 33 31 bc35efae0b5afd31
08f0: 34 35 66 33 31 22 2c 20 72 2e 67 65 74 44 69 67 45f31", r.getDig
0900: 65 73 74 28 53 48 41 33 38 34 29 2e 74 6f 53 74 est(SHA384).toSt
0910: 72 69 6e 67 28 29 29 3b 0a 09 09 61 73 73 65 72 ring());...asser
0920: 74 45 71 75 61 6c 73 28 22 31 66 34 30 66 63 39 tEquals("1f40fc9
0930: 32 64 61 32 34 31 36 39 34 37 35 30 39 37 39 65 2da241694750979e
0940: 65 36 63 66 35 38 32 66 32 64 35 64 37 64 32 38 e6cf582f2d5d7d28
0950: 65 31 38 33 33 35 64 65 30 35 61 62 63 35 34 64 e18335de05abc54d
0960: 30 35 36 30 65 30 66 35 33 30 32 38 36 30 63 36 0560e0f5302860c6
0970: 35 32 62 66 30 38 64 35 36 30 32 35 32 61 61 35 52bf08d560252aa5
0980: 65 37 34 32 31 30 35 34 36 66 33 36 39 66 62 62 e74210546f369fbb
0990: 62 63 65 38 63 31 32 63 66 63 37 39 35 37 62 32 bce8c12cfc7957b2
09a0: 36 35 32 66 65 39 61 37 35 22 2c 20 72 2e 67 65 652fe9a75", r.ge
09b0: 74 44 69 67 65 73 74 28 53 48 41 35 31 32 29 2e tDigest(SHA512).
09c0: 74 6f 53 74 72 69 6e 67 28 29 29 3b 0a 09 09 61 toString());...a
09d0: 73 73 65 72 74 45 71 75 61 6c 73 28 22 39 34 33 ssertEquals("943
09e0: 61 61 39 32 32 35 61 32 63 66 31 35 34 65 63 32 aa9225a2cf154ec2
09f0: 65 34 64 64 38 31 32 33 37 37 32 30 62 61 35 33 e4dd81237720ba53
0a00: 38 63 61 38 64 66 32 66 64 38 33 63 30 62 38 39 8ca8df2fd83c0b89
0a10: 33 63 35 64 32 36 35 66 33 35 33 61 30 22 2c 20 3c5d265f353a0",
0a20: 72 2e 67 65 74 44 69 67 65 73 74 28 45 44 4f 4e r.getDigest(EDON
0a30: 52 32 35 36 29 2e 74 6f 53 74 72 69 6e 67 28 29 R256).toString()
0a40: 29 3b 0a 09 09 61 73 73 65 72 74 45 71 75 61 6c );...assertEqual
0a50: 73 28 22 62 35 39 65 63 34 34 66 37 62 65 65 66 s("b59ec44f7beef
0a60: 38 61 30 34 63 65 65 64 33 38 61 39 37 33 64 37 8a04ceed38a973d7
0a70: 37 63 36 35 65 32 32 65 39 34 35 38 64 35 66 36 7c65e22e9458d5f6
0a80: 37 62 34 39 37 39 34 38 64 61 33 34 39 38 36 63 7b497948da34986c
0a90: 30 39 33 62 35 65 66 63 35 34 38 33 66 62 65 65 093b5efc5483fbee
0aa0: 35 35 66 32 66 37 34 30 66 63 61 64 33 31 66 31 55f2f740fcad31f1
0ab0: 38 64 38 30 64 62 34 34 62 62 36 62 38 38 34 33 8d80db44bb6b8843
0ac0: 65 37 66 64 35 39 39 31 38 38 65 37 63 30 37 32 e7fd599188e7c072
0ad0: 33 33 62 22 2c 20 72 2e 67 65 74 44 69 67 65 73 33b", r.getDiges
0ae0: 74 28 45 44 4f 4e 52 35 31 32 29 2e 74 6f 53 74 t(EDONR512).toSt
0af0: 72 69 6e 67 28 29 29 3b 0a 09 09 61 73 73 65 72 ring());...asser
0b00: 74 45 71 75 61 6c 73 28 22 39 65 38 36 66 66 36 tEquals("9e86ff6
0b10: 39 35 35 37 63 61 39 35 66 34 30 35 66 30 38 31 9557ca95f405f081
0b20: 32 36 39 36 38 35 62 33 38 65 33 61 38 31 39 62 269685b38e3a819b
0b30: 33 30 39 65 65 39 34 32 66 34 38 32 62 36 61 38 309ee942f482b6a8
0b40: 62 22 2c 20 72 2e 67 65 74 44 69 67 65 73 74 28 b", r.getDigest(
0b50: 53 48 41 33 5f 32 32 34 29 2e 74 6f 53 74 72 69 SHA3_224).toStri
0b60: 6e 67 28 29 29 3b 0a 09 09 61 73 73 65 72 74 45 ng());...assertE
0b70: 71 75 61 6c 73 28 22 38 30 30 38 34 62 66 32 66 quals("80084bf2f
0b80: 62 61 30 32 34 37 35 37 32 36 66 65 62 32 63 61 ba02475726feb2ca
0b90: 62 32 64 38 32 31 35 65 61 62 31 34 62 63 36 62 b2d8215eab14bc6b
0ba0: 64 64 38 62 66 62 32 63 38 31 35 31 32 35 37 30 dd8bfb2c81512570
0bb0: 33 32 65 63 64 38 62 22 2c 20 72 2e 67 65 74 44 32ecd8b", r.getD
0bc0: 69 67 65 73 74 28 53 48 41 33 5f 32 35 36 29 2e igest(SHA3_256).
0bd0: 74 6f 53 74 72 69 6e 67 28 29 29 3b 0a 09 09 61 toString());...a
0be0: 73 73 65 72 74 45 71 75 61 6c 73 28 22 31 38 31 ssertEquals("181
0bf0: 35 66 37 37 34 66 33 32 30 34 39 31 62 34 38 35 5f774f320491b485
0c00: 36 39 65 66 65 63 37 39 34 64 32 34 39 65 65 62 69efec794d249eeb
0c10: 35 39 61 61 65 34 36 64 32 32 62 66 37 37 64 61 59aae46d22bf77da
0c20: 66 65 32 35 63 35 65 64 63 32 38 64 37 65 61 34 fe25c5edc28d7ea4
0c30: 34 66 39 33 65 65 31 32 33 34 61 61 38 38 66 36 4f93ee1234aa88f6
0c40: 31 63 39 31 39 31 32 61 34 63 63 64 39 22 2c 20 1c91912a4ccd9",
0c50: 72 2e 67 65 74 44 69 67 65 73 74 28 53 48 41 33 r.getDigest(SHA3
0c60: 5f 33 38 34 29 2e 74 6f 53 74 72 69 6e 67 28 29 _384).toString()
0c70: 29 3b 0a 09 09 61 73 73 65 72 74 45 71 75 61 6c );...assertEqual
0c80: 73 28 22 36 39 37 66 32 64 38 35 36 31 37 32 63 s("697f2d856172c
0c90: 62 38 33 30 39 64 36 62 38 62 39 37 64 61 63 34 b8309d6b8b97dac4
0ca0: 64 65 33 34 34 62 35 34 39 64 34 64 65 65 36 31 de344b549d4dee61
0cb0: 65 64 66 62 34 39 36 32 64 38 36 39 38 62 37 66 edfb4962d8698b7f
0cc0: 61 38 30 33 66 34 66 39 33 66 66 32 34 33 39 33 a803f4f93ff24393
0cd0: 35 38 36 65 32 38 62 35 62 39 35 37 61 63 33 64 586e28b5b957ac3d
0ce0: 31 64 33 36 39 34 32 30 63 65 35 33 33 33 32 37 1d369420ce533327
0cf0: 31 32 66 39 39 37 62 64 33 33 36 64 30 39 61 62 12f997bd336d09ab
0d00: 30 32 61 22 2c 20 72 2e 67 65 74 44 69 67 65 73 02a", r.getDiges
0d10: 74 28 53 48 41 33 5f 35 31 32 29 2e 74 6f 53 74 t(SHA3_512).toSt
0d20: 72 69 6e 67 28 29 29 3b 0a 0a 09 09 72 2e 72 65 ring());....r.re
0d30: 73 65 74 28 29 3b 0a 09 09 72 2e 66 69 6e 69 73 set();...r.finis
0d40: 68 28 29 3b 0a 09 09 61 73 73 65 72 74 45 71 75 h();...assertEqu
0d50: 61 6c 73 28 22 64 34 31 64 38 63 64 39 38 66 30 als("d41d8cd98f0
0d60: 30 62 32 30 34 65 39 38 30 30 39 39 38 65 63 66 0b204e9800998ecf
0d70: 38 34 32 37 65 22 2c 20 72 2e 67 65 74 44 69 67 8427e", r.getDig
0d80: 65 73 74 28 4d 44 35 29 2e 74 6f 53 74 72 69 6e est(MD5).toStrin
0d90: 67 28 29 29 3b 20 2f 2f 20 4d 44 35 20 6f 66 20 g()); // MD5 of
0da0: 22 22 0a 09 7d 0a 0a 09 40 54 65 73 74 0a 09 70 ""..}...@Test..p
0db0: 75 62 6c 69 63 20 76 6f 69 64 20 74 65 73 74 4d ublic void testM
0dc0: 61 67 6e 65 74 28 29 20 7b 0a 09 09 52 48 61 73 agnet() {...RHas
0dd0: 68 20 72 20 3d 20 6e 65 77 20 52 48 61 73 68 28 h r = new RHash(
0de0: 4d 44 35 2c 20 54 54 48 29 3b 0a 09 09 72 2e 75 MD5, TTH);...r.u
0df0: 70 64 61 74 65 28 22 61 62 63 22 29 2e 66 69 6e pdate("abc").fin
0e00: 69 73 68 28 29 3b 0a 09 09 61 73 73 65 72 74 45 ish();...assertE
0e10: 71 75 61 6c 73 28 22 6d 61 67 6e 65 74 3a 3f 78 quals("magnet:?x
0e20: 6c 3d 33 26 64 6e 3d 66 69 6c 65 2e 74 78 74 26 l=3&dn=file.txt&
0e30: 78 74 3d 75 72 6e 3a 6d 64 35 3a 39 30 30 31 35 xt=urn:md5:90015
0e40: 30 39 38 33 63 64 32 34 66 62 30 64 36 39 36 33 0983cd24fb0d6963
0e50: 66 37 64 32 38 65 31 37 66 37 32 26 78 74 3d 75 f7d28e17f72&xt=u
0e60: 72 6e 3a 74 72 65 65 3a 74 69 67 65 72 3a 61 73 rn:tree:tiger:as
0e70: 64 34 75 6a 73 65 68 35 6d 34 37 70 64 79 62 34 d4ujseh5m47pdyb4
0e80: 36 6b 62 74 73 71 74 73 67 64 6b 6c 62 68 79 78 6kbtsqtsgdklbhyx
0e90: 6f 6d 75 69 61 22 2c 20 72 2e 67 65 74 4d 61 67 omuia", r.getMag
0ea0: 6e 65 74 28 22 66 69 6c 65 2e 74 78 74 22 29 29 net("file.txt"))
0eb0: 3b 0a 20 20 20 20 7d 0a 0a 09 40 54 65 73 74 0a ;. }...@Test.
0ec0: 09 70 75 62 6c 69 63 20 76 6f 69 64 20 74 65 73 .public void tes
0ed0: 74 55 70 64 61 74 65 46 69 6c 65 28 29 20 74 68 tUpdateFile() th
0ee0: 72 6f 77 73 20 49 4f 45 78 63 65 70 74 69 6f 6e rows IOException
0ef0: 20 7b 0a 09 09 46 69 6c 65 20 66 20 3d 20 6e 65 {...File f = ne
0f00: 77 20 46 69 6c 65 28 22 6a 61 76 61 5f 74 65 73 w File("java_tes
0f10: 74 5f 69 6e 70 75 74 5f 31 32 33 2e 74 78 74 22 t_input_123.txt"
0f20: 29 3b 0a 09 09 50 72 69 6e 74 53 74 72 65 61 6d );...PrintStream
0f30: 20 6f 75 74 20 3d 20 6e 65 77 20 50 72 69 6e 74 out = new Print
0f40: 53 74 72 65 61 6d 28 66 29 3b 0a 09 09 6f 75 74 Stream(f);...out
0f50: 2e 70 72 69 6e 74 6c 6e 28 22 5c 30 5c 31 5c 32 .println("\0\1\2
0f60: 22 29 3b 0a 09 09 6f 75 74 2e 66 6c 75 73 68 28 ");...out.flush(
0f70: 29 3b 0a 09 09 6f 75 74 2e 63 6c 6f 73 65 28 29 );...out.close()
0f80: 3b 0a 09 09 61 73 73 65 72 74 45 71 75 61 6c 73 ;...assertEquals
0f90: 28 22 65 33 38 36 39 65 63 34 37 37 36 36 31 66 ("e3869ec477661f
0fa0: 61 64 36 62 39 66 63 32 35 39 31 34 62 62 32 65 ad6b9fc25914bb2e
0fb0: 65 65 35 34 35 35 62 34 38 33 22 2c 20 52 48 61 ee5455b483", RHa
0fc0: 73 68 2e 63 6f 6d 70 75 74 65 48 61 73 68 28 53 sh.computeHash(S
0fd0: 48 41 31 2c 20 66 29 2e 74 6f 53 74 72 69 6e 67 HA1, f).toString
0fe0: 28 29 29 3b 0a 09 09 66 2e 64 65 6c 65 74 65 28 ());...f.delete(
0ff0: 29 3b 0a 20 20 20 20 7d 0a 0a 09 70 75 62 6c 69 );. }...publi
1000: 63 20 73 74 61 74 69 63 20 6a 75 6e 69 74 2e 66 c static junit.f
1010: 72 61 6d 65 77 6f 72 6b 2e 54 65 73 74 20 73 75 ramework.Test su
1020: 69 74 65 28 29 7b 0a 09 09 72 65 74 75 72 6e 20 ite(){...return
1030: 6e 65 77 20 4a 55 6e 69 74 34 54 65 73 74 41 64 new JUnit4TestAd
1040: 61 70 74 65 72 28 52 48 61 73 68 54 65 73 74 2e apter(RHashTest.
1050: 63 6c 61 73 73 29 3b 0a 09 7d 0a 7d 0a class);..}.}.