spki
Class Role5Tuple

java.lang.Object
  |
  +--spki.Tuple
        |
        +--spki.Role5Tuple

public class Role5Tuple
extends Tuple

spki Role5Tuple class.

Version:
$Id: Role5Tuple.java,v 1.6 2002/08/07 07:20:52 tep Exp $
Author:
Tep Narula <tep@win.trlabs.ca>

Field Summary
private static String __ME
          This class's full name.
private  Empowerment empowerment
          The empowerment field.
private  RelativeName role
          The role field.
 
Fields inherited from class spki.Tuple
__ME, issuer, subject, validity
 
Constructor Summary
Role5Tuple()
          Don't use me.
Role5Tuple(Issuer issuer, SubjectRole subject, Empowerment empowerment, RelativeName role, Validity validity)
          Create a Role5Tuple object from given fields.
Role5Tuple(RoleCert cert)
          Create a Role5Tuple object from given role-cert.
Role5Tuple(TransferCert cert)
          Create a Role5Tuple object from given transfer-cert.
 
Method Summary
 Empowerment getEmpowerment()
          Get the empowerment field.
 LocalName getRole()
          Get the role field.
 Role5Tuple reduce(Role5Tuple that)
          An implementation of the Non-threshold Role 5-tuples Reduction Rules.
 String toString()
           
 Role5Tuple tReduce(Role5Tuple that)
          An implementation of the Open-threshold Role 5-tuples Reduction Rules.
 
Methods inherited from class spki.Tuple
contains, EIntersect, EUnion, getIssuer, getSubject, getValidity, MAX, MIN, NUnion, rSubjObjsExpand, SUnion, tEliminate, VIntersect
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, wait, wait, wait
 

Field Detail

__ME

private static final String __ME
This class's full name.

empowerment

private Empowerment empowerment
The empowerment field.

role

private RelativeName role
The role field.
Constructor Detail

Role5Tuple

public Role5Tuple()
Don't use me.

Role5Tuple

public Role5Tuple(Issuer issuer,
                  SubjectRole subject,
                  Empowerment empowerment,
                  RelativeName role,
                  Validity validity)
           throws SPKIException
Create a Role5Tuple object from given fields.
Parameters:
issuer - The issuer field.
subject - The subject field.
empowerment - The empowerment field.
role - The role field.
validity - The validity field.
Throws:
SPKIException - if something went wrong.

Role5Tuple

public Role5Tuple(RoleCert cert)
           throws SPKIException
Create a Role5Tuple object from given role-cert.
Parameters:
cert - The role-cert.
Throws:
SPKIException - if something went wrong.

Role5Tuple

public Role5Tuple(TransferCert cert)
           throws SPKIException
Create a Role5Tuple object from given transfer-cert.
Parameters:
cert - The transfer-cert.
Throws:
SPKIException - if something went wrong.
Method Detail

toString

public String toString()
Overrides:
toString in class Tuple

getEmpowerment

public Empowerment getEmpowerment()
Get the empowerment field.
Returns:
an Empowerment object.

getRole

public LocalName getRole()
                  throws SPKIException
Get the role field. It builds a LocalName object from the issuer's principal and the role field to represent the issuer-defined role.
Returns:
a LocalName object.
Throws:
SPKIException - if something went wrong.

reduce

public Role5Tuple reduce(Role5Tuple that)
                  throws ReductionException
An implementation of the Non-threshold Role 5-tuples Reduction Rules.
<I1, [(k1 SID1)] S1, E1, R1, V1> + <I2, S2, E2, R2, V2> yield
<I1, [(k1 SID1)] S2, EIntersect(E1, E2), R1, VIntersect(V1, V2)>
where (k1 SID1) may or may not be present, and provided:
  • S2 is not a threshold subject,
  • if the second tuple is a delegation: S1 is a local name, I2 == Ks1, and R2 == S1;
  • or if the second tuple is a transfer: I2 == S1,
  • EIntersect(E1, E2) succeeds, and
  • VIntersect(V1, V2) succeeds.
    NOTE: this method can deals with the right-handed subject containing either a single principal or a list of principals reduced from lower-level threshold delegation(s). For Open-threshold Reduction, please use the tReduce() method.
    Parameters:
    that - the right-handed 5-tuple to reduce this tuple with.
    Returns:
    the reduced 5-tuple.
    Throws:
    ReductionException - if the reduction fails.
    See Also:
    tReduce(Role5Tuple), Tuple.EIntersect(Empowerment,Empowerment), Tuple.VIntersect(Validity,Validity)

  • tReduce

    public Role5Tuple tReduce(Role5Tuple that)
                       throws ReductionException
    An implementation of the Open-threshold Role 5-tuples Reduction Rules.
    <I1, (k1 SID1) S1, E1, R1, V1> + <I2, (k2 SID2) S2, E2, R2, V2> yield
    <I1, (k1 SID1) SUnion(S1, S2), EUnion(E1, E2), R1, VIntersect(V1, V2)>
    provided:
  • I2 == S1,
  • SUnion(S1, S2) succeeds,
  • EUnion(E1, E2) succeeds,
  • R2 == R1, and
  • VIntersect(V1, V2) succeeds.
    Parameters:
    that - the right-handed 5-tuple to reduce this tuple with.
    Returns:
    the reduced 5-tuple.
    Throws:
    ReductionException - if the reduction fails.
    See Also:
    Tuple.SUnion(Subject,Subject), Tuple.EUnion(Empowerment,Empowerment), Tuple.VIntersect(Validity,Validity)