/*
* Copyright (C) 2012 Intel Corporation
* All rights reserved.
*/
package test.digest;
import com.intel.mtwilson.model.Sha1Digest;
import java.io.IOException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import com.fasterxml.jackson.databind.ObjectMapper;
//import org.codehaus.jackson.map.ObjectMapper;
import org.junit.Test;
import static org.junit.Assert.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
*
* @author jbuhacoff
*/
public class HashTest {
private final Logger log = LoggerFactory.getLogger(getClass());
@Test
public void testUpdateUpdateSameAsLongerMessage() throws NoSuchAlgorithmException {
Sha1Digest a = new Sha1Digest("0000000000000000000000000000000000000000");
Sha1Digest b = new Sha1Digest("0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f");
Sha1Digest c = new Sha1Digest("aabbccddeeff00112233445566778899aabbccdd");
MessageDigest hash = MessageDigest.getInstance(a.algorithm());
hash.update(a.toByteArray());
hash.update(b.toByteArray());
Sha1Digest r = new Sha1Digest(hash.digest());
log.debug("a.extend(b) = "+r.toString());
hash.reset();
byte[] cat = new byte[40];
System.arraycopy(a.toByteArray(), 0, cat, 0, 20);
System.arraycopy(b.toByteArray(), 0, cat, 20, 20);
hash.update(cat);
Sha1Digest r2 = new Sha1Digest(hash.digest());
log.debug("a||b = "+r2.toString());
}
@Test
public void testExtendZeros() {
Sha1Digest a = new Sha1Digest("0000000000000000000000000000000000000000");
Sha1Digest b = new Sha1Digest("0de3710ee2f658a382f2531213233024175a63dd");
Sha1Digest r = a.extend(b.toByteArray());
log.debug(r.toString()); // b should be: 8990812e31357a6266a86c079ff49d61b442335b
assertEquals("8990812e31357a6266a86c079ff49d61b442335b", r.toString());
}
@Test
public void testSerializeSha1Digest() throws IOException {
ObjectMapper mapper = new ObjectMapper();
log.debug(mapper.writeValueAsString(new Sha1Digest("0de3710ee2f658a382f2531213233024175a63dd")));
}
}