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 DefaultBlessingNames(Principal) []string
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, func VDLReadWireDischarge(vdl.Decoder, *WireDischarge) error
pkg security, func WireBlessingsFromNative(*WireBlessings, Blessings) error
pkg security, func WireBlessingsToNative(WireBlessings, *Blessings) error
pkg security, func WireDischargeFromNative(*WireDischarge, Discharge) error
pkg security, func WireDischargeToNative(WireDischarge, *Discharge) error
pkg security, method (*BlessingPattern) VDLRead(vdl.Decoder) error
pkg security, method (*CallParams) Copy(Call)
pkg security, method (*Caveat) ThirdPartyDetails() ThirdPartyCaveat
pkg security, method (*Caveat) VDLRead(vdl.Decoder) error
pkg security, method (*Caveat) Validate(*context.T, Call) error
pkg security, method (*CaveatDescriptor) VDLRead(vdl.Decoder) error
pkg security, method (*Certificate) VDLRead(vdl.Decoder) error
pkg security, method (*DischargeImpetus) VDLRead(vdl.Decoder) error
pkg security, method (*Hash) VDLRead(vdl.Decoder) error
pkg security, method (*PublicKeyDischarge) String() string
pkg security, method (*PublicKeyDischarge) VDLRead(vdl.Decoder) error
pkg security, method (*RejectedBlessing) VDLRead(vdl.Decoder) error
pkg security, method (*Signature) VDLRead(vdl.Decoder) error
pkg security, method (*Signature) Verify(PublicKey, []byte) bool
pkg security, method (*ThirdPartyRequirements) VDLRead(vdl.Decoder) error
pkg security, method (*WireBlessings) VDLRead(vdl.Decoder) error
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 (BlessingPattern) VDLIsZero() bool
pkg security, method (BlessingPattern) VDLWrite(vdl.Encoder) error
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 (Caveat) VDLIsZero() bool
pkg security, method (Caveat) VDLWrite(vdl.Encoder) error
pkg security, method (CaveatDescriptor) VDLIsZero() bool
pkg security, method (CaveatDescriptor) VDLWrite(vdl.Encoder) error
pkg security, method (Certificate) VDLIsZero() bool
pkg security, method (Certificate) VDLWrite(vdl.Encoder) error
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 (Discharge) VDLIsZero() bool
pkg security, method (DischargeImpetus) VDLIsZero() bool
pkg security, method (DischargeImpetus) VDLWrite(vdl.Encoder) error
pkg security, method (Hash) VDLIsZero() bool
pkg security, method (Hash) VDLWrite(vdl.Encoder) error
pkg security, method (PublicKeyDischarge) VDLIsZero() bool
pkg security, method (PublicKeyDischarge) VDLWrite(vdl.Encoder) error
pkg security, method (RejectedBlessing) String() string
pkg security, method (RejectedBlessing) VDLIsZero() bool
pkg security, method (RejectedBlessing) VDLWrite(vdl.Encoder) error
pkg security, method (Signature) VDLIsZero() bool
pkg security, method (Signature) VDLWrite(vdl.Encoder) error
pkg security, method (ThirdPartyRequirements) VDLIsZero() bool
pkg security, method (ThirdPartyRequirements) VDLWrite(vdl.Encoder) error
pkg security, method (WireBlessings) VDLIsZero() bool
pkg security, method (WireBlessings) VDLWrite(vdl.Encoder) error
pkg security, method (WireDischargePublicKey) Index() int
pkg security, method (WireDischargePublicKey) Interface() interface{}
pkg security, method (WireDischargePublicKey) Name() string
pkg security, method (WireDischargePublicKey) VDLIsZero() bool
pkg security, method (WireDischargePublicKey) VDLWrite(vdl.Encoder) error
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, <-chan struct{})
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 []*vom.RawBytes
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 PublicKeyDischarge struct
pkg security, type PublicKeyDischarge struct, Caveats []Caveat
pkg security, type PublicKeyDischarge struct, Signature Signature
pkg security, type PublicKeyDischarge struct, ThirdPartyCaveatId string
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, VDLIsZero() bool
pkg security, type WireDischarge interface, VDLWrite(vdl.Encoder) error
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 unknown-type
pkg security, var ErrCaveatNotRegistered unknown-type
pkg security, var ErrCaveatParamAny unknown-type
pkg security, var ErrCaveatParamCoding unknown-type
pkg security, var ErrCaveatParamTypeMismatch unknown-type
pkg security, var ErrCaveatValidation unknown-type
pkg security, var ErrConstCaveatValidation unknown-type
pkg security, var ErrEndpointAuthorizationFailed unknown-type
pkg security, var ErrExpiryCaveatValidation unknown-type
pkg security, var ErrInvalidSigningBlessingCaveat unknown-type
pkg security, var ErrMethodCaveatValidation unknown-type
pkg security, var ErrPeerBlessingsCaveatValidation unknown-type
pkg security, var ErrPublicKeyNotAllowed unknown-type
pkg security, var ErrUnrecognizedRoot unknown-type
pkg security, var ExpiryCaveat CaveatDescriptor
pkg security, var MethodCaveat CaveatDescriptor
pkg security, var PeerBlessingsCaveat CaveatDescriptor
pkg security, var PublicKeyThirdPartyCaveat CaveatDescriptor
