...

Package pubkeypin

import "k8s.io/kubernetes/cmd/kubeadm/app/util/pubkeypin"
Overview
Index

Overview ▾

Package pubkeypin provides primitives for x509 public key pinning in the style of RFC7469.

func Hash

func Hash(certificate *x509.Certificate) string

Hash calculates the SHA-256 hash of the Subject Public Key Information (SPKI) object in an x509 certificate (in DER encoding). It returns the full hash as a hex encoded string (suitable for passing to Set.Allow).

type Set

Set is a set of pinned x509 public keys.

type Set struct {
    // contains filtered or unexported fields
}

func NewSet

func NewSet() *Set

NewSet returns a new, empty PubKeyPinSet

func (*Set) Allow

func (s *Set) Allow(pubKeyHashes ...string) error

Allow adds an allowed public key hash to the Set

func (*Set) CheckAny

func (s *Set) CheckAny(certificates []*x509.Certificate) error

CheckAny checks if at least one certificate matches one of the public keys in the set

func (*Set) Empty

func (s *Set) Empty() bool

Empty returns true if the Set contains no pinned public keys.