blob: d43ed7477b079f80110d29cc4c29ee0231149a74 [file] [log] [blame]
package security
import "v.io/core/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 | error)
}