Versions in this module Expand all Collapse all v1 v1.0.0 Jul 29, 2016 Changes in this version + var ErrHashUnavailable = errors.New("The requested hash function is unavailable") + var ErrInvalidIssuer = errors.New("Issuer is invalid.") + var ErrInvalidKey = errors.New("Key is invalid or of invalid type") + var ErrInvalidSignature = errors.New("Signature is invalid") + var ErrKeyMustBePEMEncoded = errors.New("Invalid Key: Key must be PEM encoded PKCS1 or PKCS8 private key") + var ErrNotRSAPrivateKey = errors.New("Key is not a valid RSA private key") + var ErrNotRSAPublicKey = errors.New("Key is not a valid RSA public key") + var ErrTokenExpired = errors.New("Token is expired.") + func Decode(part string) ([]byte, error) + func Encode(part []byte) string + func ParseRSAPrivateKeyFromPEM(key []byte) (*rsa.PrivateKey, error) + func ParseRSAPublicKeyFromPEM(key []byte) (*rsa.PublicKey, error) + func ReadBytes(path string) ([]byte, error) + type Algorithm interface + Encrypt func(data string) (string, error) + Verify func(data, signature string) error + type HMACAlgorithm struct + func NewHMACAlgorithm(hash crypto.Hash, key []byte) (*HMACAlgorithm, error) + func (h *HMACAlgorithm) Encrypt(data string) (string, error) + func (h *HMACAlgorithm) Verify(data, signature string) error + type Header struct + Alg string + Typ string + func NewHeader(algorithm string) *Header + type JWT struct + func NewJWT(issuer string, ttl int64) *JWT + func (j *JWT) AddAlgorithm(name string, algorithm Algorithm) + func (j *JWT) Issuer() string + func (j *JWT) JTI() string + func (j *JWT) NewPayload(subject, audience string) *Payload + func (j *JWT) NewToken(algorithm, subject, audience string) (*Token, error) + func (j *JWT) NewTokenByRaw(token string) (*Token, error) + func (j *JWT) SetAutoCreateJTI(auto bool) + func (j *JWT) SetNotBefore(t time.Time) + type Payload struct + Aud string + Exp int64 + Extra map[string]interface{} + Iat int64 + Iss string + Jti string + Nbf int64 + Sub string + func NewPayload() *Payload + type RSAAlgorithm struct + func NewRSAAlgorithm(hash crypto.Hash, publicKey, privateKey interface{}) (*RSAAlgorithm, error) + func (ra *RSAAlgorithm) Encrypt(data string) (string, error) + func (ra *RSAAlgorithm) Verify(data, signature string) error + type RawToken struct + func NewRawToken(token string) (*RawToken, error) + func (rt *RawToken) Header() string + func (rt *RawToken) Payload() string + func (rt *RawToken) Signature() string + func (rt *RawToken) Token() string + type Token struct + Header *Header + Payload *Payload + Raw *RawToken + func NewToken(jwt *JWT, algorithm, subject, audience string) (*Token, error) + func NewTokenByRaw(jwt *JWT, token string) (*Token, error) + func (t *Token) Parse() error + func (t *Token) Validate() error + func (t *Token) ValidateExpiration(now time.Time) error + func (t *Token) ValidateIssuer() error + func (t *Token) ValidateNotBefore(now time.Time) error