pkg security, const AllPrincipals BlessingPattern
pkg security, const ChainSeparator ideal-string
pkg security, const NoExtension BlessingPattern
pkg security, const SHA1Hash Hash
pkg security, const SHA256Hash Hash
pkg security, const SHA384Hash Hash
pkg security, const SHA512Hash Hash
pkg security, const SignatureForBlessingCertificates ideal-string
pkg security, const SignatureForDischarge ideal-string
pkg security, const SignatureForMessageSigning ideal-string
pkg security, func AddToRoots(Principal, Blessings) error
pkg security, func AllowEveryone() Authorizer
pkg security, func BlessingNames(Principal, Blessings) []string
pkg security, func CreatePrincipal(Signer, BlessingStore, BlessingRoots) (Principal, error)
pkg security, func DefaultAuthorizer() Authorizer
pkg security, func DefaultBlessingPatterns(Principal) []BlessingPattern
pkg security, func EndpointAuthorizer() Authorizer
pkg security, func JoinPatternName(BlessingPattern, string) string
pkg security, func LocalBlessingNames(*context.T, Call) []string
pkg security, func MarshalBlessings(Blessings) WireBlessings
pkg security, func NamelessBlessing(PublicKey) (Blessings, error)
pkg security, func NewCall(*CallParams) Call
pkg security, func NewCaveat(CaveatDescriptor, interface{}) (Caveat, error)
pkg security, func NewECDSAPublicKey(*ecdsa.PublicKey) PublicKey
pkg security, func NewECDSASigner(*ecdsa.PublicKey, func([]byte) (*big.Int, *big.Int, error)) Signer
pkg security, func NewErrAuthorizationFailed(*context.T, []string, []RejectedBlessing, []string) error
pkg security, func NewErrCaveatNotRegistered(*context.T, uniqueid.Id) error
pkg security, func NewErrCaveatParamAny(*context.T, uniqueid.Id) error
pkg security, func NewErrCaveatParamCoding(*context.T, uniqueid.Id, *vdl.Type, error) error
pkg security, func NewErrCaveatParamTypeMismatch(*context.T, uniqueid.Id, *vdl.Type, *vdl.Type) error
pkg security, func NewErrCaveatValidation(*context.T, error) error
pkg security, func NewErrConstCaveatValidation(*context.T) error
pkg security, func NewErrEndpointAuthorizationFailed(*context.T, string, []string, []RejectedBlessing) error
pkg security, func NewErrExpiryCaveatValidation(*context.T, time.Time, time.Time) error
pkg security, func NewErrInvalidSigningBlessingCaveat(*context.T, uniqueid.Id) error
pkg security, func NewErrMethodCaveatValidation(*context.T, string, []string) error
pkg security, func NewErrPeerBlessingsCaveatValidation(*context.T, []string, []BlessingPattern) error
pkg security, func NewErrPublicKeyNotAllowed(*context.T, string, string) error
pkg security, func NewErrUnrecognizedRoot(*context.T, string, error) error
pkg security, func NewExpiryCaveat(time.Time) (Caveat, error)
pkg security, func NewInMemoryECDSASigner(*ecdsa.PrivateKey) Signer
pkg security, func NewMethodCaveat(string, ...string) (Caveat, error)
pkg security, func NewPublicKeyCaveat(PublicKey, string, ThirdPartyRequirements, Caveat, ...Caveat) (Caveat, error)
pkg security, func PublicKeyAuthorizer(PublicKey) Authorizer
pkg security, func RegisterCaveatValidator(CaveatDescriptor, interface{})
pkg security, func RemoteBlessingNames(*context.T, Call) ([]string, []RejectedBlessing)
pkg security, func RootBlessings(Blessings) []Blessings
pkg security, func SigningBlessingNames(*context.T, Principal, Blessings) ([]string, []RejectedBlessing)
pkg security, func SigningBlessings(Blessings) Blessings
pkg security, func SplitPatternName(string) (BlessingPattern, string)
pkg security, func UnconstrainedUse() Caveat
pkg security, func UnionOfBlessings(...Blessings) (Blessings, error)
pkg security, func UnmarshalPublicKey([]byte) (PublicKey, error)
pkg security, method (*CallParams) Copy(Call)
pkg security, method (*Caveat) ThirdPartyDetails() ThirdPartyCaveat
pkg security, method (*Caveat) Validate(*context.T, Call) error
pkg security, method (*Signature) Verify(PublicKey, []byte) bool
pkg security, method (BlessingPattern) IsValid() bool
pkg security, method (BlessingPattern) MakeNonExtendable() BlessingPattern
pkg security, method (BlessingPattern) MatchedBy(...string) bool
pkg security, method (BlessingPattern) PrefixPatterns() []BlessingPattern
pkg security, method (Blessings) CouldHaveNames([]string) bool
pkg security, method (Blessings) Equivalent(Blessings) bool
pkg security, method (Blessings) Expiry() time.Time
pkg security, method (Blessings) IsZero() bool
pkg security, method (Blessings) PublicKey() PublicKey
pkg security, method (Blessings) String() string
pkg security, method (Blessings) ThirdPartyCaveats() []Caveat
pkg security, method (Blessings) UniqueID() []byte
pkg security, method (Caveat) String() string
pkg security, method (Discharge) Equivalent(Discharge) bool
pkg security, method (Discharge) Expiry() time.Time
pkg security, method (Discharge) ID() string
pkg security, method (Discharge) ThirdPartyCaveats() []ThirdPartyCaveat
pkg security, method (RejectedBlessing) String() string
pkg security, method (WireDischargePublicKey) Index() int
pkg security, method (WireDischargePublicKey) Interface() interface{}
pkg security, method (WireDischargePublicKey) Name() string
pkg security, type Authorizer interface { Authorize }
pkg security, type Authorizer interface, Authorize(*context.T, Call) error
pkg security, type BlessingPattern string
pkg security, type BlessingRoots interface { Add, DebugString, Dump, Recognized }
pkg security, type BlessingRoots interface, Add([]byte, BlessingPattern) error
pkg security, type BlessingRoots interface, DebugString() string
pkg security, type BlessingRoots interface, Dump() map[BlessingPattern][]PublicKey
pkg security, type BlessingRoots interface, Recognized([]byte, string) error
pkg security, type BlessingStore interface { CacheDischarge, ClearDischarges, DebugString, Default, Discharge, ForPeer, PeerBlessings, PublicKey, Set, SetDefault }
pkg security, type BlessingStore interface, CacheDischarge(Discharge, Caveat, DischargeImpetus)
pkg security, type BlessingStore interface, ClearDischarges(...Discharge)
pkg security, type BlessingStore interface, DebugString() string
pkg security, type BlessingStore interface, Default() Blessings
pkg security, type BlessingStore interface, Discharge(Caveat, DischargeImpetus) (Discharge, time.Time)
pkg security, type BlessingStore interface, ForPeer(...string) Blessings
pkg security, type BlessingStore interface, PeerBlessings() map[BlessingPattern]Blessings
pkg security, type BlessingStore interface, PublicKey() PublicKey
pkg security, type BlessingStore interface, Set(Blessings, BlessingPattern) (Blessings, error)
pkg security, type BlessingStore interface, SetDefault(Blessings) error
pkg security, type Blessings struct
pkg security, type Call interface { LocalBlessings, LocalDischarges, LocalEndpoint, LocalPrincipal, Method, MethodTags, RemoteBlessings, RemoteDischarges, RemoteEndpoint, Suffix, Timestamp }
pkg security, type Call interface, LocalBlessings() Blessings
pkg security, type Call interface, LocalDischarges() map[string]Discharge
pkg security, type Call interface, LocalEndpoint() naming.Endpoint
pkg security, type Call interface, LocalPrincipal() Principal
pkg security, type Call interface, Method() string
pkg security, type Call interface, MethodTags() []*vdl.Value
pkg security, type Call interface, RemoteBlessings() Blessings
pkg security, type Call interface, RemoteDischarges() map[string]Discharge
pkg security, type Call interface, RemoteEndpoint() naming.Endpoint
pkg security, type Call interface, Suffix() string
pkg security, type Call interface, Timestamp() time.Time
pkg security, type CallParams struct
pkg security, type CallParams struct, LocalBlessings Blessings
pkg security, type CallParams struct, LocalDischarges map[string]Discharge
pkg security, type CallParams struct, LocalEndpoint naming.Endpoint
pkg security, type CallParams struct, LocalPrincipal Principal
pkg security, type CallParams struct, Method string
pkg security, type CallParams struct, MethodTags []*vdl.Value
pkg security, type CallParams struct, RemoteBlessings Blessings
pkg security, type CallParams struct, RemoteDischarges map[string]Discharge
pkg security, type CallParams struct, RemoteEndpoint naming.Endpoint
pkg security, type CallParams struct, Suffix string
pkg security, type CallParams struct, Timestamp time.Time
pkg security, type Caveat struct
pkg security, type Caveat struct, Id uniqueid.Id
pkg security, type Caveat struct, ParamVom []byte
pkg security, type CaveatDescriptor struct
pkg security, type CaveatDescriptor struct, Id uniqueid.Id
pkg security, type CaveatDescriptor struct, ParamType *vdl.Type
pkg security, type Certificate struct
pkg security, type Certificate struct, Caveats []Caveat
pkg security, type Certificate struct, Extension string
pkg security, type Certificate struct, PublicKey []byte
pkg security, type Certificate struct, Signature Signature
pkg security, type Discharge struct
pkg security, type DischargeImpetus struct
pkg security, type DischargeImpetus struct, Arguments []*vdl.Value
pkg security, type DischargeImpetus struct, Method string
pkg security, type DischargeImpetus struct, Server []BlessingPattern
pkg security, type Hash string
pkg security, type Principal interface { Bless, BlessSelf, BlessingStore, MintDischarge, PublicKey, Roots, Sign }
pkg security, type Principal interface, Bless(PublicKey, Blessings, string, Caveat, ...Caveat) (Blessings, error)
pkg security, type Principal interface, BlessSelf(string, ...Caveat) (Blessings, error)
pkg security, type Principal interface, BlessingStore() BlessingStore
pkg security, type Principal interface, MintDischarge(Caveat, Caveat, ...Caveat) (Discharge, error)
pkg security, type Principal interface, PublicKey() PublicKey
pkg security, type Principal interface, Roots() BlessingRoots
pkg security, type Principal interface, Sign([]byte) (Signature, error)
pkg security, type PublicKey interface, MarshalBinary() ([]byte, error)
pkg security, type PublicKey interface, String() string
pkg security, type PublicKey interface, unexported methods
pkg security, type RejectedBlessing struct
pkg security, type RejectedBlessing struct, Blessing string
pkg security, type RejectedBlessing struct, Err error
pkg security, type Signature struct
pkg security, type Signature struct, Hash Hash
pkg security, type Signature struct, Purpose []byte
pkg security, type Signature struct, R []byte
pkg security, type Signature struct, S []byte
pkg security, type Signer interface { PublicKey, Sign }
pkg security, type Signer interface, PublicKey() PublicKey
pkg security, type Signer interface, Sign([]byte, []byte) (Signature, error)
pkg security, type ThirdPartyCaveat interface { Dischargeable, ID, Location, Requirements }
pkg security, type ThirdPartyCaveat interface, Dischargeable(*context.T, Call) error
pkg security, type ThirdPartyCaveat interface, ID() string
pkg security, type ThirdPartyCaveat interface, Location() string
pkg security, type ThirdPartyCaveat interface, Requirements() ThirdPartyRequirements
pkg security, type ThirdPartyRequirements struct
pkg security, type ThirdPartyRequirements struct, ReportArguments bool
pkg security, type ThirdPartyRequirements struct, ReportMethod bool
pkg security, type ThirdPartyRequirements struct, ReportServer bool
pkg security, type WireBlessings struct
pkg security, type WireBlessings struct, CertificateChains [][]Certificate
pkg security, type WireDischarge interface, Index() int
pkg security, type WireDischarge interface, Interface() interface{}
pkg security, type WireDischarge interface, Name() string
pkg security, type WireDischarge interface, unexported methods
pkg security, type WireDischargePublicKey struct
pkg security, type WireDischargePublicKey struct, Value publicKeyDischarge
pkg security, var ConstCaveat CaveatDescriptor
pkg security, var ErrAuthorizationFailed verror.IDAction
pkg security, var ErrCaveatNotRegistered verror.IDAction
pkg security, var ErrCaveatParamAny verror.IDAction
pkg security, var ErrCaveatParamCoding verror.IDAction
pkg security, var ErrCaveatParamTypeMismatch verror.IDAction
pkg security, var ErrCaveatValidation verror.IDAction
pkg security, var ErrConstCaveatValidation verror.IDAction
pkg security, var ErrEndpointAuthorizationFailed verror.IDAction
pkg security, var ErrExpiryCaveatValidation verror.IDAction
pkg security, var ErrInvalidSigningBlessingCaveat verror.IDAction
pkg security, var ErrMethodCaveatValidation verror.IDAction
pkg security, var ErrPeerBlessingsCaveatValidation verror.IDAction
pkg security, var ErrPublicKeyNotAllowed verror.IDAction
pkg security, var ErrUnrecognizedRoot verror.IDAction
pkg security, var ExpiryCaveat CaveatDescriptor
pkg security, var MethodCaveat CaveatDescriptor
pkg security, var PeerBlessingsCaveat CaveatDescriptor
pkg security, var PublicKeyThirdPartyCaveat CaveatDescriptor
