iaik.tc.tss.impl.java.tsp
Class TcAttributes

java.lang.Object
  extended by iaik.tc.tss.impl.java.tsp.TcAttributes
All Implemented Interfaces:
TcIAttributes
Direct Known Subclasses:
TcWorkingObject

public abstract class TcAttributes
extends java.lang.Object
implements TcIAttributes

This class implements the attribute handling for TSS working objects. The TSS specification defines two basic attribute types: UINT32 attributes and data (byte array) attributes. For both attribute types, generic getter and setter methods are defined (TcIAttributes.setAttribData(long, long, TcBlobData), TcIAttributes.getAttribData(long, long), TcIAttributes.setAttribUint32(long, long, long) and TcIAttributes.getAttribUint32(long, long)). The first parameter always is the flag and the second one the subFlag. Together they define the attribute to get/set. To allow a more convenient form of implementation, for every flag an own getter and setter method is implemented in the working objects. To be compatible with the generic getter and setter methods defined by the TSS specification, this class provides these generic methods that map incoming calls to the actual getter and setter methods of the working object. To do that, each working object has to register its attribute getter and setter methods together with the corresponding flag value. This is done by implementing the abstract initAttribGetters and initAttribSetters methods.


Constructor Summary
TcAttributes()
          The abstract initialization methods (to be implemented by the inheriting working object) are called to allow the working object to establish the "flag to getter/setter method" mappings.
 
Method Summary
 TcBlobData getAttribData(long attribFlag, long subFlag)
          This method gets a non UINT32 attribute of the object (i.e.
 long getAttribUint32(long attribFlag, long subFlag)
          This method gets an UINT32 attribute of the object.
 void setAttribData(long attribFlag, long subFlag, TcBlobData attrib)
          This method sets a non UINT32 attribute (i.e.
 void setAttribUint32(long attribFlag, long subFlag, long attrib)
          This method sets an UINT32 attribute of the object.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TcAttributes

public TcAttributes()
The abstract initialization methods (to be implemented by the inheriting working object) are called to allow the working object to establish the "flag to getter/setter method" mappings.

Method Detail

getAttribData

public TcBlobData getAttribData(long attribFlag,
                                long subFlag)
                         throws TcTssException
Description copied from interface: TcIAttributes
This method gets a non UINT32 attribute of the object (i.e. a binary data blob). The structure and size of the returned data depends on the attribute.

Specified by:
getAttribData in interface TcIAttributes
Parameters:
attribFlag - Flag indicating the attribute to get. Attribute Flags are prefixed with TSS_TSPATTRIB_ and are defined in TcTssConstants. Valid attributes depend on the actual type of the object this method is called for.

Valid attribFlags for Context objects are: Valid attribFlags for Policy objects are: Valid attribFlags for EncData objects are: Valid attribFlags for Key objects are:
subFlag - Sub flag indicating the attribute to get.

Valid subFlags for EncData objects are: Valid subFlags for Key objects are: Note: If an attribFlag does not take a subFlag, the subFlag might be set to 0.
Returns:
Buffer containing to the actual data of the specified attribute.
Throws:
TcTssException

getAttribUint32

public long getAttribUint32(long attribFlag,
                            long subFlag)
                     throws TcTssException
Description copied from interface: TcIAttributes
This method gets an UINT32 attribute of the object.

Specified by:
getAttribUint32 in interface TcIAttributes
Parameters:
attribFlag - Flag indicating the attribute to query. Attribute Flags are prefixed with TSS_TSPATTRIB_ and are defined in TcTssConstants. Valid attributes depend on the actual type of the object this method is called for.

Valid attribFlags for Context objects are:
Valid attribFlags for Policy objects are: Valid attribFlags for Key objects are:
subFlag - Sub flag indicating the attribute to query. Sub-Flags are prefixed with TSS_TSPATTRIB_ and are defined in TcTssConstants.

Valid subFlags for Policy objects are: Valid subFlags for Key objects are: Note: If an attribFlag does not take a subFlag, the subFlag might be set to 0.
Returns:
The value of the specified attribute Note: The returned UINT32 is represented by a Java long data type to avoid problems when converting from unsigned C types to singed Java types.
Throws:
TcTssException

setAttribData

public void setAttribData(long attribFlag,
                          long subFlag,
                          TcBlobData attrib)
                   throws TcTssException
Description copied from interface: TcIAttributes
This method sets a non UINT32 attribute (i.e. a binary data blob) of the object. The structure and size of the data data depends on the attribute.

Specified by:
setAttribData in interface TcIAttributes
Parameters:
attribFlag - Flag indicating the attribute to set. Attribute Flags are prefixed with TSS_TSPATTRIB_ and are defined in TcTssConstants. Valid attributes depend on the actual type of the object this method is called for.

Valid attribFlags for Policy objects are: Valid attribFlags for EncData objects are: Valid attribFlags for Hash objects are: Valid attribFlags for Key objects are:
subFlag - Sub flag indicating the attribute to set.

Valid subFlags for EncData objects are: Valid subFlags for Key objects are: Note: If an attribFlag does not take a subFlag, the subFlag might be set to 0.
attrib - the actual data which is to be set for the specified attribute
Throws:
TcTssException

setAttribUint32

public void setAttribUint32(long attribFlag,
                            long subFlag,
                            long attrib)
                     throws TcTssException
Description copied from interface: TcIAttributes
This method sets an UINT32 attribute of the object. If the data being set is smaller than an UINT32, casting must be used to get the data to the right size.

Specified by:
setAttribUint32 in interface TcIAttributes
Parameters:
attribFlag - Flag indicating the attribute to set. Attribute Flags are prefixed with TSS_TSPATTRIB_ and are defined in TcTpmConstants. Valid attributes depend on the actual type of the object this method is called for.

Valid attribFlags for Context objects are: Valid attribFlags for Policy objects are: Valid attribFlags for Key objects are:
subFlag - Sub flag indicating the attribute to set. Sub-Flags are prefixed with TSS_TSPATTRIB_ and are defined in TcTssConstants.

Valid subFlags for Policy objects are: Valid subFlags for Key objects are: Note: If an attribFlag does not take a subFlag, the subFlag might be set to 0.
attrib - Value which is to be set for the specified attribute. Only non-negative arguments are allowed. Note: The UINT32 is represented by a Java long data type to avoid problems when converting from singed Java types to unsigned C types.
Throws:
TcTssException