Я пытаюсь использовать глобальный хэш hmac для генерации подписи. Код работает хорошо, но сгенерированная подпись не удовлетворяет требованиям стороннего интегратора. Если для каждого процесса «генерации подписи» будет создан хэш hmac, он будет работать нормально.
Работает нормально - подпись принимается третьей стороной:
func tokenSignatureFunc(key string) tokenSignType {
signToken := func(token string) []byte {
h := hmac.New(sha256.New, []byte(key))
h.Write([]byte(token))
signature := h.Sum(nil)
base64Signature := make([]byte, base64.StdEncoding.EncodedLen(len(signature)))
base64.StdEncoding.Encode(base64Signature, signature)
return base64Signature
}
return signToken
}
Не работает - подпись не принимается третьей стороной:
func tokenSignatureFunc(key string) tokenSignType {
h := hmac.New(sha256.New, []byte(key))
signToken := func(token string) []byte {
h.Write([]byte(token))
signature := h.Sum(nil)
base64Signature := make([]byte, base64.StdEncoding.EncodedLen(len(signature)))
base64.StdEncoding.Encode(base64Signature, signature)
return base64Signature
}
return signToken
}