handlers: provide better log message on mismatched secret

Signed-off-by: Stephen J Day <stephen.day@docker.com>
pull/1945/head
Stephen J Day 2016-09-02 15:24:35 -07:00
parent 2f16e6e7b3
commit 668b0a5f40
No known key found for this signature in database
GPG Key ID: FB5F6B2905D7ECF3
1 changed files with 4 additions and 2 deletions

View File

@ -26,6 +26,8 @@ type blobUploadState struct {
type hmacKey string
var errInvalidSecret = fmt.Errorf("invalid secret")
// unpackUploadState unpacks and validates the blob upload state from the
// token, using the hmacKey secret.
func (secret hmacKey) unpackUploadState(token string) (blobUploadState, error) {
@ -38,7 +40,7 @@ func (secret hmacKey) unpackUploadState(token string) (blobUploadState, error) {
mac := hmac.New(sha256.New, []byte(secret))
if len(tokenBytes) < mac.Size() {
return state, fmt.Errorf("Invalid token")
return state, errInvalidSecret
}
macBytes := tokenBytes[:mac.Size()]
@ -46,7 +48,7 @@ func (secret hmacKey) unpackUploadState(token string) (blobUploadState, error) {
mac.Write(messageBytes)
if !hmac.Equal(mac.Sum(nil), macBytes) {
return state, fmt.Errorf("Invalid token")
return state, errInvalidSecret
}
if err := json.Unmarshal(messageBytes, &state); err != nil {