Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package org.bouncycastle.crypto.test;
  
SHA512 HMac Test
 
 public class SHA512HMacTest
     implements Test
 {
     final static String[] keys = {
         "0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b",
         "4a656665",
         "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
         "0102030405060708090a0b0c0d0e0f10111213141516171819",
         "0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c",
         "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
         "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
     };
 
     final static String[] digests = {
         "87aa7cdea5ef619d4ff0b4241a1d6cb02379f4e2ce4ec2787ad0b30545e17cdedaa833b7d6b8a702038b274eaea3f4e4be9d914eeb61f1702e696c203a126854",
         "164b7a7bfcf819e2e395fbe73b56e0a387bd64222e831fd610270cd7ea2505549758bf75c05a994a6d034f65f8f0e6fdcaeab1a34d4a6b4b636e070a38bce737",
         "fa73b0089d56a284efb0f0756c890be9b1b5dbdd8ee81a3655f83e33b2279d39bf3e848279a722c806b485a47e67c807b946a337bee8942674278859e13292fb",
         "b0ba465637458c6990e5a8c5f61d4af7e576d97ff94b872de76f8050361ee3dba91ca5c11aa25eb4d679275cc5788063a5f19741120c4f2de2adebeb10a298dd",
         "415fad6271580a531d4179bc891d87a650188707922a4fbb36663a1eb16da008711c5b50ddd0fc235084eb9d3364a1454fb2ef67cd1d29fe6773068ea266e96b",
         "80b24263c7c1a3ebb71493c1dd7be8b49b46d1f41b4aeec1121b013783f8f3526b56d037e05f2598bd0fd2215d6a1e5295e64f73f63f0aec8b915a985d786598",
         "e37b6a775dc87dbaa4dfa9f96e5e3ffddebd71f8867289865df5a32d20cdc944b6022cac3c4982b10d5eeb55c3e4de15134676fb6de0446065c97440fa8c6a58"
     };
 
     final static String[] messages = {
         "Hi There",
         "what do ya want for nothing?",
         "0xdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
         "0xcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd",
         "Test With Truncation",
         "Test Using Larger Than Block-Size Key - Hash Key First",
         "This is a test using a larger than block-size key and a larger than block-size data. The key needs to be hashed before being used by the HMAC algorithm."
     };
 
     public String getName()
     {
         return "SHA512HMac";
     }
 
     public TestResult perform()
     {
         HMac hmac = new HMac(new SHA512Digest());
         byte[] resBuf = new byte[hmac.getMacSize()];
 
         for (int i = 0; i < .i++)
         {
             byte[] m = [i].getBytes();
             if ([i].startsWith("0x"))
             {
                 m = Hex.decode([i].substring(2));
             }
             hmac.init(new KeyParameter(Hex.decode([i])));
             hmac.update(m, 0, m.length);
             hmac.doFinal(resBuf, 0);
 
             if (!Arrays.areEqual(resBuf, Hex.decode([i])))
             {
                 return new SimpleTestResult(falsegetName() + ": Vector " + i + " failed got -" + new String(Hex.encode(resBuf)));
             }
         }
 
         //
         // test reset
         //
         int vector = 0; // vector used for test
         byte[] m = [vector].getBytes();
         if ([vector].startsWith("0x"))
         {
             m = Hex.decode([vector].substring(2));
         }
         hmac.init(new KeyParameter(Hex.decode([vector])));
         hmac.update(m, 0, m.length);
         hmac.doFinal(resBuf, 0);
         hmac.reset();
         hmac.update(m, 0, m.length);
         hmac.doFinal(resBuf, 0);
 
         if (!Arrays.areEqual(resBuf, Hex.decode([vector])))
         {
             return new SimpleTestResult(falsegetName() +
                     "Reset with vector " + vector + " failed");
         }
 
         return new SimpleTestResult(truegetName() + ": Okay");
     }
 
    public static void main(
        String[]    args)
    {
        SHA512HMacTest    test = new SHA512HMacTest();
        TestResult      result = test.perform();
        ..println(result);
    }
New to GrepCode? Check out our FAQ X