blob: 95202d14e477319458167f1bd72a065aabf6428b [file] [log] [blame]
package security
import "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 ThirdPartyDischarge
// 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) {security.ReadLabel}
}