Documentation ¶
Overview ¶
Bifrost is an mTLS authentication toolkit.
Index ¶
- Constants
- Variables
- func ParseCertificate(der []byte) (uuid.UUID, *x509.Certificate, error)
- func RequestCertificate(ctx context.Context, url string, ns uuid.UUID, key *ecdsa.PrivateKey) (*x509.Certificate, error)
- func UUID(ns uuid.UUID, pubkey *ecdsa.PublicKey) uuid.UUID
- func X509ToTLSCertificate(crt *x509.Certificate, key *ecdsa.PrivateKey) *tls.Certificate
Examples ¶
Constants ¶
View Source
const ( SignatureAlgorithm = x509.ECDSAWithSHA256 PublicKeyAlgorithm = x509.ECDSA )
Signature and Public Key Algorithms
Variables ¶
View Source
var ( ErrInvalidPublicKey = errors.New("invalid public key") ErrUnsupportedAlgorithm = errors.New("unsupported algorithm") ErrWrongNamespace = errors.New("wrong namespace") )
Errors.
View Source
var Namespace = uuid.MustParse("1512daa4-ddc1-41d1-8673-3fd19d2f338d")
Namespace is the default UUID Namespace for Bifrost identities.
Functions ¶
func ParseCertificate ¶
ParseCertificate returns the UUID and certificate from an ASN.1 DER encoded certificate.
func RequestCertificate ¶
func RequestCertificate( ctx context.Context, url string, ns uuid.UUID, key *ecdsa.PrivateKey, ) (*x509.Certificate, error)
RequestCertificate sends a certificate request to url and returns the signed certificate.
Example ¶
exampleNS := uuid.MustParse("228b9676-998e-489a-8468-92d46a94a32d") ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) defer cancel() // TODO: handle errors key, _ := ecdsa.GenerateKey(elliptic.P256(), rand.Reader) crt, _ := RequestCertificate(ctx, "https://bifrost-ca", exampleNS, key) fmt.Println(crt.Subject)
Output:
func UUID ¶
UUID returns a unique identifier derived from the namespace and the client's public key identity. The UUID is generated by SHA-1 hashing the namesapce UUID with the big endian bytes of the X and Y curve points from the public key.
func X509ToTLSCertificate ¶
func X509ToTLSCertificate(crt *x509.Certificate, key *ecdsa.PrivateKey) *tls.Certificate
X509ToTLSCertificate puts an x509.Certificate inside a tls.Certificate.
Types ¶
This section is empty.
Directories ¶
Path | Synopsis |
---|---|
cmd
|
|
internal
|
|
cafiles
cafiles can fetch CA certificate and private key PEM files from many storage backends.
|
cafiles can fetch CA certificate and private key PEM files from many storage backends. |
pkg
|
|
club
Package club provides middleware for use in HTTP API servers and gateways.
|
Package club provides middleware for use in HTTP API servers and gateways. |
tinyca
Package tinyca implements a Certificate Authority that issues certificates for client authentication.
|
Package tinyca implements a Certificate Authority that issues certificates for client authentication. |
Click to show internal directories.
Click to hide internal directories.