package com.android.dvci.crypto; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.zip.CRC32; import com.android.dvci.auto.Cfg; import com.android.dvci.util.ByteArray; import com.android.dvci.util.Check; public class Digest { /** * Calcola il SHA1 del messaggio, usando la crypto api. * * @param message * the message * @param offset * the offset * @param length * the length * @return the byte[] */ public static byte[] SHA1(final byte[] message, final int offset, final int length) { MessageDigest digest; try { digest = MessageDigest.getInstance("SHA-1"); //$NON-NLS-1$ digest.update(message, offset, length); final byte[] sha1 = digest.digest(); return sha1; } catch (final NoSuchAlgorithmException e) { if (Cfg.EXCEPTION) { Check.log(e); } } return null; } /** * Calcola il MD5 del messaggio, usando la crypto api. * * @param message * the message * @param offset * the offset * @param length * the length * @return the byte[] */ public static byte[] MD5(final byte[] message, final int offset, final int length) { MessageDigest digest; try { // TODO: messages digest = MessageDigest.getInstance("MD5"); //$NON-NLS-1$ digest.update(message, offset, length); final byte[] md5 = digest.digest(); return md5; } catch (final NoSuchAlgorithmException e) { if (Cfg.EXCEPTION) { Check.log(e); } } return null; } /** * SHA-1. * * @param message * the message * @return the byte[] */ public static byte[] SHA1(final byte[] message) { return SHA1(message, 0, message.length); } public static String SHA1(final String message) { return ByteArray.byteArrayToHex(SHA1(message.getBytes())); } /** * MD5. * * @param message * the message * @return the byte[] */ public static byte[] MD5(final byte[] message) { return MD5(message, 0, message.length); } public static String MD5(final String message) { return ByteArray.byteArrayToHex(MD5(message.getBytes())); } /** * Standard crc * * @param packet * @return */ public static long CRC32(byte[] packet) { final CRC32 crc = new CRC32(); crc.reset(); crc.update(packet); return crc.getValue(); } }