Documentation
¶
Index ¶
- Variables
- func Sign(algorithm func() hash.Hash, key, payload string) string
- func SignWithEncoding(algorithm func() hash.Hash, encoding Encoding, key, payload string) string
- func Verify(a, b string) bool
- func VerifyWithEncoding(encoding Encoding, b, a string) bool
- func WithAlgorithm(alg func() hash.Hash) func(*SignerProvider)
- func WithEncoding(encoding Encoding) func(*SignerProvider)
- func WithExpirationField(name string) func(*SignerProvider)
- func WithSignatureField(name string) func(*SignerProvider)
- type Encoding
- type SignerProvider
- func (p *SignerProvider) Sign(u url.URL) url.URL
- func (p *SignerProvider) SignURL(rawURL string) (string, error)
- func (p *SignerProvider) SignURLWithExpiry(rawURL string, expireAt time.Time) (string, error)
- func (p *SignerProvider) SignURLWithTTL(rawURL string, ttl time.Duration) (string, error)
- func (p *SignerProvider) SignWithExpiry(u url.URL, expireAt time.Time) url.URL
- func (p *SignerProvider) SignWithTTL(u url.URL, ttl time.Duration) url.URL
- func (p *SignerProvider) Verify(u url.URL) error
- func (p *SignerProvider) VerifyURL(rawURL string) error
Constants ¶
This section is empty.
Variables ¶
var ( ErrInvalidSignature = errors.New("invalid signature") ErrExpired = errors.New("url has expired") ErrParseFailure = errors.New("failed to parse URL") )
var Base64Encoding = &base64Encoding{}
var HexEncoding = &hexEncoding{}
Functions ¶
func Sign ¶
Sign will create a new signature based on a key and a string payload It is required to choose a hash algorithm
func SignWithEncoding ¶ added in v1.1.0
func VerifyWithEncoding ¶ added in v1.1.0
func WithAlgorithm ¶ added in v1.1.0
func WithAlgorithm(alg func() hash.Hash) func(*SignerProvider)
WithAlgorithm allows overriding of the internal hashing algorithm
func WithEncoding ¶ added in v1.1.0
func WithEncoding(encoding Encoding) func(*SignerProvider)
WithEncoding allows overriding of the internal encoding mechanism
func WithExpirationField ¶ added in v1.1.0
func WithExpirationField(name string) func(*SignerProvider)
WithExpirationField allows overriding of the internal field name for expiration
func WithSignatureField ¶ added in v1.1.0
func WithSignatureField(name string) func(*SignerProvider)
WithSignatureField allows overriding of the internal field name for signature
Types ¶
type SignerProvider ¶
type SignerProvider struct {
// contains filtered or unexported fields
}
SignerProvider is used to sign and verify urls.
func New ¶
func New(secretKey string, opts ...func(*SignerProvider)) *SignerProvider
New will create a new SignerProvider.
urlsigner.New("secret-key")
func (*SignerProvider) Sign ¶
func (p *SignerProvider) Sign(u url.URL) url.URL
Sign will sign a URL object returning it updated to include the signature
func (*SignerProvider) SignURL ¶
func (p *SignerProvider) SignURL(rawURL string) (string, error)
SignURL acts like Sign method but accepts the url as string instead of url.URL
func (*SignerProvider) SignURLWithExpiry ¶ added in v1.0.0
SignURLWithExpiry acts like SignWithExpiry method but accepts the url as string instead of url.URL
func (*SignerProvider) SignURLWithTTL ¶ added in v1.0.0
func (*SignerProvider) SignWithExpiry ¶ added in v1.0.0
SignWithExpiry will sign a URL object for a limited period of time returning it updated with two new query strings: signature, expiration
func (*SignerProvider) SignWithTTL ¶ added in v1.0.0
SignWithTTL will sign a URL object for a limited period of time returning it updated with two new query strings: signature, expiration
func (*SignerProvider) Verify ¶
func (p *SignerProvider) Verify(u url.URL) error
Verify will check a URL object against its signature This signature should be provided by the url itself in a query string
func (*SignerProvider) VerifyURL ¶
func (p *SignerProvider) VerifyURL(rawURL string) error
VerifyURL acts like Verify method but accepts the url as string instead of url.URL