blob: a7dfbd385238b04341545d92d7187e7f3bd626db [file] [log] [blame]
package security
import "veyron.io/veyron/veyron2/security"
// Discharger is the interface for obtaining discharges for ThirdPartyCaveats.
type Discharger interface {
// Discharge is called by a principal that holds a blessing with a third
// party caveat and seeks to get a discharge that proves the fulfillment of
// this caveat.
//
// Caveat and Discharge are of type ThirdPartyCaveat and Discharge
// respectively. (not enforced here because vdl does not know these types)
// TODO(ataly,ashankar): Figure out a VDL representation for ThirdPartyCaveat
// and Discharge and use those here?
Discharge(Caveat any, Impetus security.DischargeImpetus) (Discharge any, err error)
}