Пакет hmac
Обзор
Пакет hmac реализует код аутентификации сообщений с ключом (HMAC), как определено в публикации Федеральных стандартов обработки информации США 198. HMAC — это криптографический хэш, который использует ключ для подписи сообщения. Получатель проверяет хэш, пересчитав его с использованием того же ключа.
Получатели должны быть внимательны, используя Equal для сравнения MAC, чтобы избежать временных побочных каналов:
// 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 и ключ. New функции, такие как sha256.New из crypto/sha256, могут быть использованы в качестве h. h должен возвращать новый Hash каждый раз, когда он вызывается. Обратите внимание, что в отличие от других реализаций хешей в стандартной библиотеке, возвращаемый Hash не реализует encoding.BinaryMarshaler или encoding.BinaryUnmarshaler.
© Google, Inc.
Licensed under the Creative Commons Attribution License 3.0.
http://golang.org/pkg/crypto/hmac/