net.ertp
Interface Issuer


public interface Issuer

Untamed:


Method Summary
 Purse makeEmptyPurse()
          Enabled: Makes an empty Purse for holding the kind of erights that this Issuer issues.
 SturdyRef sturdyVouchForAssay(Assay candidate)
          Enabled: Just like vouchForAssay(net.ertp.Assay), but returns a SturdyRef rather than a live reference.
 SturdyRef sturdyVouchForPurse(Purse candidate)
          Enabled:
 Assay vouchForAssay(Assay candidate)
          Enabled: If a vouch message returns successfully, then the value it returns can be trusted exactly as much as this Issuer is trusted.
 Purse vouchForPurse(Purse candidate)
          Enabled:
 

Method Detail

vouchForAssay

public Assay vouchForAssay(Assay candidate)
                    throws UnsealingException
Enabled: If a vouch message returns successfully, then the value it returns can be trusted exactly as much as this Issuer is trusted.

The vouch messages are normally used to ask an Issuer whether an Assay or a Purse is a representative of this Issuer.

Why do the vouce messages return the vouched-for-object, rather than returning a boolean indicating that the argument can be trusted? In order to allow object some freedom in how they encode/decode themselves between Vats, we cannot assume that a trustworthy decoded 'candidate', as seen by a vouch method, indicates that the object the sender inquired about is actually trustworthy. A successful vouching cannot assure the sender that an argument is trustworthy, but does safely assure the sender that the result is trustworthy.

An Issuer must vouch for all the Purses and Assays it issues.

Parameters:
candidate - Does this Issuer stand by this candidate?
Returns:
If so, it returns the candidate.
Throws:
UnsealingException - If not, it typically throws UnsealingException, but any thrown problem indicates a failure to vouch.

vouchForPurse

public Purse vouchForPurse(Purse candidate)
                    throws UnsealingException
Enabled:

Parameters:
candidate -
Returns:
Throws:
UnsealingException
See Also:
vouchForAssay(net.ertp.Assay)

sturdyVouchForAssay

public SturdyRef sturdyVouchForAssay(Assay candidate)
                              throws UnsealingException
Enabled: Just like vouchForAssay(net.ertp.Assay), but returns a SturdyRef rather than a live reference.

The expiration date of the SturdyRef is up to the Issuer, but should be adequate to enable recovery of access to erights across major outages.

Parameters:
candidate - Does this Issuer stand by this candidate?
Returns:
If so, it returns a SturdyRef to the candidate.
Throws:
UnsealingException - If not, it throws UnsealingException.

sturdyVouchForPurse

public SturdyRef sturdyVouchForPurse(Purse candidate)
                              throws UnsealingException
Enabled:

Parameters:
candidate -
Returns:
Throws:
UnsealingException
See Also:
sturdyVouchForAssay(net.ertp.Assay)

makeEmptyPurse

public Purse makeEmptyPurse()
Enabled: Makes an empty Purse for holding the kind of erights that this Issuer issues.

Returns:
An initially empty Purse of this Issuer.


comments?