keygen

package
v0.0.0-...-7484c5c Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 21, 2024 License: MIT Imports: 12 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ErrNil     = errs.Kind("nil")
	ErrInvalid = errs.Kind("invalid")

	ErrPrivateKey = errs.Entity("private key")
	ErrPEM        = errs.Entity("PEM key bytes")
	ErrSignature  = errs.Entity("signature")
	ErrClaim      = errs.Entity("claim")
)

Variables

View Source
var (
	ErrInvalidPEM       = errs.WithDomain(errDomain, ErrInvalid, ErrPEM)
	ErrInvalidSignature = errs.WithDomain(errDomain, ErrInvalid, ErrSignature)
	ErrNilPrivateKey    = errs.WithDomain(errDomain, ErrNil, ErrPrivateKey)
	ErrInvalidClaim     = errs.WithDomain(errDomain, ErrInvalid, ErrClaim)
)

Functions

func DecodePrivate

func DecodePrivate(pemPrivate []byte) (privateKey *ecdsa.PrivateKey, err error)

func DecodePublic

func DecodePublic(pemEncodedPub []byte) (*ecdsa.PublicKey, error)

func EncodePrivate

func EncodePrivate(privateKey *ecdsa.PrivateKey) (key []byte, err error)

func EncodePublic

func EncodePublic(publicKey *ecdsa.PublicKey) (key []byte, err error)

func New

func New() (*ecdsa.PrivateKey, error)

func NewToken

func NewToken(privateKey *ecdsa.PrivateKey, issuer string, expiry time.Time, opts ...cfg.Option[JWT]) ([]byte, error)

func WithAudience

func WithAudience(audience []string) cfg.Option[JWT]

func WithClaim

func WithClaim(claim Claim) cfg.Option[JWT]

func WithID

func WithID(id string) cfg.Option[JWT]

func WithNotBefore

func WithNotBefore(notBefore time.Time) cfg.Option[JWT]

func WithSubject

func WithSubject(subject string) cfg.Option[JWT]

Types

type Claim

type Claim struct {
	Service string `json:"service"`
	Authz   string `json:"authz_service"`
}

type ECDSASigner

type ECDSASigner struct {
	Priv *ecdsa.PrivateKey
}

func (ECDSASigner) Sign

func (e ECDSASigner) Sign(data []byte) (sig, hash []byte, err error)

type ECDSAVerifier

type ECDSAVerifier struct {
	Pub *ecdsa.PublicKey
}

func (ECDSAVerifier) Verify

func (d ECDSAVerifier) Verify(hash, signature []byte) error

type JWT

type JWT struct {
	Issuer  string
	Subject string

	Claim     Claim
	Audience  []string
	ID        string
	Expiry    time.Time
	NotBefore time.Time
	// contains filtered or unexported fields
}

func ParseToken

func ParseToken(token []byte, publicKey *ecdsa.PublicKey) (JWT, error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL