func FingerprintValue(b []byte) uint32 {
	return crc32.ChecksumIEEE(b) ^ fingerprintXORValue  
}
FingerprintValue returns CRC-32 of b XOR-ed by 0x5354554e.

The value of the attribute is computed as the CRC-32 of the STUN message
up to (but excluding) the FINGERPRINT attribute itself, XOR'ed with
the 32-bit value 0x5354554e (the XOR helps in cases where an
application packet is also using CRC-32 in it).
package stun
import (
	"errors"
	"hash/crc32"
)
type FingerprintAttr struct{}
var ErrFingerprintMismatch = errors.New("fingerprint check failed")
var Fingerprint FingerprintAttr
const (
	fingerprintXORValue uint32 = 0x5354554e  
	fingerprintSize            = 4           
)