Пакет hmac
Обзор
Пакет hmac реализует код аутентификации сообщений на основе ключевого хеша (HMAC), определённый в публикации 198 Федеральных стандартов обработки информации США. HMAC — это криптографический хеш, использующий ключ для подписи сообщения. Получатель проверяет хеш, вычисляя его повторно с помощью того же ключа.
Чтобы избежать побочных каналов, связанных со временем выполнения, при сравнении MAC следует использовать функцию Equal:
// ValidMAC reports whether messageMAC is a valid HMAC tag for message.
func ValidMAC(message, messageMAC, key []byte) bool {
mac := hmac.New(sha256.New, key)
mac.Write(message)
expectedMAC := mac.Sum(nil)
return hmac.Equal(messageMAC, expectedMAC)
}
Указатель
Файлы пакета
hmac.go
func Equal 1.1
func Equal(mac1, mac2 []byte) bool
Equal сравнивает два MAC на равенство, не раскрывая информацию о времени выполнения.
func New
func New(h func() hash.Hash, key []byte) hash.Hash
New возвращает новый хеш HMAC, использующий указанный тип hash.Hash и ключ. В качестве h можно использовать функции, такие как crypto/sha256.New. При каждом вызове h должна возвращать новый Hash. Обратите внимание: в отличие от других реализаций хешей в стандартной библиотеке, возвращённый Hash не реализует интерфейсы encoding.BinaryMarshaler и encoding.BinaryUnmarshaler.
© Google, Inc.
Licensed under the Creative Commons Attribution License 3.0.
http://golang.org/pkg/crypto/hmac/