code: func (m *SigningMethodHMAC) Sign(signingString string, key interface{}) (string, error) {
  	if keyBytes, ok := key.([]byte); ok {
  		if !m.Hash.Available() {
  			return "", ErrHashUnavailable
  		}
  
  		hasher := hmac.New(m.Hash.New, keyBytes)
  		hasher.Write([]byte(signingString))
  
  		return EncodeSegment(hasher.Sum(nil)), nil
  	}
  
  	return "", ErrInvalidKeyType
  }
docs: // Implements the Sign method from SigningMethod for this signing method.
  // Key must be []byte