security: Define a VDL type for third-party caveat discharges. (1/2).
This is part of a 2 step process to resolve:
https://github.com/veyron/release-issues/issues/634
This commit defines a VDL type for Discharges, with an
API type simliar to Blessings - the wire type is called
WireDischarge, the Go API is called "Discharge" and
methods are provided to translate between the two.
The VDL type is defined as a union to allow future support
for other types of third-party caveats (such as ones based
on a shared secret key instead of a public key).
The two steps in resolving the aformentioned github issue are:
(1) Define a VDL type for Discharges and have all binaries
be able to handle such a discharge presented to them.
(Rebuild and restart all binaries in the world, including
the browspr plugin)
(2) Remove handling of code using vdl.Any
(all conveniently grep-able with "grep TODO(ashankar):DISCHARGEVDL")
Change-Id: I8cfa21756939b3d775fed94ce16edcb8b512ce56
5 files changed