var (
// AttrOID is the ASN.1 object identifier for an attribute extension in an
// X509 certificate
AttrOID = asn1.ObjectIdentifier{1, 2, 3, 4, 5, 6, 7, 8, 1}
// AttrOIDString is the string version of AttrOID
AttrOIDString = "1.2.3.4.5.6.7.8.1"
)
Attribute is a name/value pair
type Attribute interface {
// GetName returns the name of the attribute
GetName() string
// GetValue returns the value of the attribute
GetValue() string
}
AttributeRequest is a request for an attribute
type AttributeRequest interface {
// GetName returns the name of an attribute
GetName() string
// IsRequired returns true if the attribute is required
IsRequired() bool
}
Attributes contains attribute names and values
type Attributes struct {
Attrs map[string]string `json:"attrs"`
}
func (a *Attributes) Contains(name string) bool
Contains returns true if the named attribute is found
func (a *Attributes) Names() []string
Names returns the names of the attributes
func (a *Attributes) True(name string) error
True returns nil if the value of attribute 'name' is true; otherwise, an appropriate error is returned.
func (a *Attributes) Value(name string) (string, bool, error)
Value returns an attribute's value
Mgr is the attribute manager and is the main object for this package
type Mgr struct{}
func New() *Mgr
New constructs an attribute manager
func (mgr *Mgr) AddAttributesToCert(attrs *Attributes, cert *x509.Certificate) error
AddAttributesToCert adds public attribute info to an X509 certificate.
func (mgr *Mgr) GetAttributesFromCert(cert *x509.Certificate) (*Attributes, error)
GetAttributesFromCert gets the attributes from a certificate.
func (mgr *Mgr) ProcessAttributeRequests(requests []AttributeRequest, attributes []Attribute) (*Attributes, error)
ProcessAttributeRequests takes an array of attribute requests and an identity's attributes and returns an Attributes object containing the requested attributes.
func (mgr *Mgr) ProcessAttributeRequestsForCert(requests []AttributeRequest, attributes []Attribute, cert *x509.Certificate) error
ProcessAttributeRequestsForCert add attributes to an X509 certificate, given attribute requests and attributes.