Spec-Zone.ru › Go

Пакет hmac

  • import "crypto/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)
}

Указатель

  • func Equal(mac1, mac2 []byte) bool
  • func New(h func() hash.Hash, key []byte) hash.Hash

Файлы пакета

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/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API