...

パッケージ hmac

import "crypto/hmac"
概要
目次

概要 ▾

hmac パッケージは,米国連邦情報処理規格 (U.S. Federal Information Processing Standards Publication) 198 で定義された鍵付きハッシュメッセージ認証コード (HMAC: Keyed-Hash Message Authentication Code) を実装します。 HMAC は,メッセージに署名するためにキーを使用する暗号化ハッシュです。 受信者は,同じキーを使用してハッシュを再計算することによってハッシュを検証します。

受信側は,タイミングサイドチャンネルを避けるために, MAC を比較するために Equal を使用するように注意する必要があります。

// ValidMAC は, messageMAC が message に対して有効な HMAC タグかどうかを報告します。
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 1.1

func Equal(mac1, mac2 []byte) bool

Equal は,タイミング情報を漏らさずに 2 つの MAC が等しいかどうか比較します。

func New

func New(h func() hash.Hash, key []byte) hash.Hash

New は与えられた hash.Hash type と key を使って新しい HMAC ハッシュを返します。 標準ライブラリの他のハッシュ実装とは異なり,返される Hash は encoding.BinaryMarshaler または encoding.BinaryUnmarshaler を実装していません。