private static boolean validateFingerprint(FingerprintAttribute fingerprint, byte[] message, int offset, int length) {
		byte[] incomingCrcBytes = fingerprint.getChecksum();
		// now check whether the CRC really is what it's supposed to be.
		// re calculate the check sum
		byte[] realCrcBytes = FingerprintAttribute.calculateXorCRC32(message, offset, length);

		// CRC validation.
		if (!Arrays.equals(incomingCrcBytes, realCrcBytes)) {
			if (logger.isDebugEnabled()) {
				logger.debug("An incoming message arrived with a wrong FINGERPRINT attribute value. "
						+ "CRC Was:" + Arrays.toString(incomingCrcBytes)
						+ ". Should have been:" + Arrays.toString(realCrcBytes)
						+ ". Will ignore.");
			}
			return false;
		}
		return true;
	}
private static boolean validateFingerprint ( FingerprintAttribute fingerprint , byte [ ] message , int offset , int length ) { byte [ ] incomingCrcBytes = fingerprint . getChecksum ( ) ; byte [ ] realCrcBytes = FingerprintAttribute . calculateXorCRC32 ( message , offset , length ) ; if ( ! Arrays . equals ( incomingCrcBytes , realCrcBytes ) ) { if ( logger . isDebugEnabled ( ) ) { logger . debug ( "An incoming message arrived with a wrong FINGERPRINT attribute value. " + "CRC Was:" + Arrays . toString ( incomingCrcBytes ) + ". Should have been:" + Arrays . toString ( realCrcBytes ) + ". Will ignore." ) ; } return false ; } return true ; }
Recalculates the FINGERPRINT CRC32 checksum of the <tt>message</tt> array
so that we could compare it with the value brought by the
{@link FingerprintAttribute}.

@param fingerprint
the attribute that we need to validate.
@param message
the message whose CRC32 checksum we'd need to recalculate.
@param offset
the index in <tt>message</tt> where data starts.
@param length
the number of bytes in <tt>message</tt> that the CRC32 would
need to be calculated over.

@return <tt>true</tt> if <tt>FINGERPRINT</tt> contains a valid CRC32
value and <tt>false</tt> otherwise.