Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package org.bouncycastle.crypto.test;
  
SHA1 HMac Test, test vectors from RFC 2202
 
 public class NonMemoableDigestTest
     implements Test
 {
     final static String[] keys = {
         "0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b",
         "4a656665",
         "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
         "0102030405060708090a0b0c0d0e0f10111213141516171819",
         "0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c",
         "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
         "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
     };
 
     final static String[] digests = {
         "b617318655057264e28bc0b6fb378c8ef146be00",
         "effcdf6ae5eb2fa2d27416d5f184df9c259a7c79",
         "125d7342b9ac11cd91a39af48aa17b4f63f175d3",
         "4c9007f4026250c6bc8414f9bf50c86c2d7235da",
         "4c1a03424b55e07fe7f27be1d58bb9324a9a5a04",
         "aa4ae5e15272d00e95705637ce8a3b55ed402112",
         "e8e99d0f45237d786d6bbaa7965c7808bbff1a91",
         "4c1a03424b55e07fe7f27be1d58bb9324a9a5a04",
         "aa4ae5e15272d00e95705637ce8a3b55ed402112",
         "e8e99d0f45237d786d6bbaa7965c7808bbff1a91"
     };
 
     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",
         "Test Using Larger Than Block-Size Key and Larger Than One Block-Size Data"
     };
         
     public String getName()
     {
         return "NonMemoableDigest";
     }
 
     public TestResult perform()
     {
         HMac hmac = new HMac(new NonMemoableDigest(new SHA1Digest()));
         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");
             }
         }
 
         //
         // 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)
    {
        NonMemoableDigestTest test = new NonMemoableDigestTest();
        TestResult      result = test.perform();
        ..println(result);
    }
New to GrepCode? Check out our FAQ X