blob: c1747cc504bd7888375a75f008e597807d309b2b [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): The type of Caveat should become security.Caveat and
// we have to figure out an alternative to any for the return Discharge.
Discharge(Caveat any, Impetus security.DischargeImpetus) (Discharge any | error)
}