The COBJMGT macro covers the following object management functions
generating a new object
copying or deleting an object
outputting the size of an object in bytes
outputting the value of one or more attributes of an object
modifying the value of one or more attributes of an object
initializing a search for token and session objects that correspond to a template
continuing a search for token and session objects that correspond to a template, where additional object handles are output
terminating a search for token and session objects
The functions C_FindObjectsInit and C_FindObjectsFinal are always performed synchronously.
All other functions are performed asynchronously if asynchronous function execution has been specified for the task with C_Initialize.
A detailed description of the functions of the COBJMGT macro can be found in PKCS#11 V2.20: Cryptographic Token Interface Standard in section 11.7 “Object management functions”.
Macro | Operands |
COBJMGT | MF=C / D / L / M / E ,VERSION=001 / 002 ,ACTION=*CREATEOBJECT / *COPYOBJECT / *DESTROYOBJECT / *GETOBJECTSIZE / *GETATTRIBUTEVALUE / *SETATTRIBUTEVALUE / *FINDOBJECTSINIT / *FINDOBJECTS / *FINDOBJECTSFINAL / <var: enum-of _action_set: 1> / default: _action_set.undefined ,SESSION=<var: int:4> / <integer 0 .. 2147483647> / 0 ,OBJECT=<var: int:4> / <integer 0 .. 2147483647> / 0 ,TEMPLAT=<var: pointer> / NULL ,COUNT=<var: int:4> / <integer 0 .. 2147483647> / 0 ,OBJLIST=<var: pointer> / NULL ,OBJSIZE=<var: int:4> / <integer 0 .. 2147483647> / 0 ,MAXOBJ=<var: int:4> / <integer 0 .. 2147483647> / 0 ,OBJCNT=<var: int:4> / <integer 0 .. 2147483647> / 0 ,BOID=<var: int:4> / 0 ,RPOSTAD=<var: pointer> / NULL ,RPOSTL=<integer 1..2> / <var: int:4> / 0 |
VERSION
specifies which version of the parameter area is to be generated. It is always advisable to use the latest version.
=001
This generates the format that was supported by CRYPT V1.0. This format only supports the parameters already known in CRYPT V1.0.
VERSION=001 is the default.
=002
This generates the format which is supported as of CRYPT V1.1.
ACTION
Type of action.
The corresponding PKCS#11 function is specified for each action code.
=*CREATEOBJECT
corresponds to the PKCS#11 function C_CreateObject;
creates a new object.
=*COPYOBJECT
corresponds to the PKCS#11 function C_CopyObject;
copies an object.
=*DESTROYOBJECT
corresponds to the PKCS#11 function C_DestroyObject;
deletes an object.
=*GETOBJECTSIZE
corresponds to the PKCS#11 function C_GetObjectSize;
outputs the size of an object in bytes.
This function is not supported.
=*GETATTRIBUTEVALUE
corresponds to the PKCS#11 function C_GetAttributeValue;
outputs the value of one or more attributes of an object.
=*SETATTRIBUTEVALUE
corresponds to the PKCS#11 function C_SetAttributeValue;
modifies the value of one or more attributes of an object.
=*FINDOBJECTSINIT
corresponds to the PKCS#11 function C_FindObjectsInit;
initializes a search for token and session objects that correspond to a template.
=*FINDOBJECTS
corresponds to the PKCS#11 function C_FindObjects;
continues a search for token and session objects that correspond to a template, where additional object handles are output.
=*FINDOBJECTSFINAL
corresponds to the PKCS#11 function C_FindObjectsFinal;
terminates a search for token and session objects.
SESSION
Session identifier
OBJECT
Object handle
*CREATEOBJECT: OBJECT receives the new object handle
*COPYOBJECT, *DESTROYOBJECT, *GETOBJECTSIZE, *GETATTRIBUTEVALUE,*SETATTRIBUTEVALUE: The object handle
*FINDOBJECTSINIT, *FINDOBJECTS, *FINDOBJECTSFINAL: Object handle is not used
TEMPLAT
Object template
*CREATEOBJECT, *COPYOBJECT: The template of the object
*GETATTRIBUTEVALUE: TEMPLAT points to a template which specifies which attribute values must be output and which receives attribute values.
*SETATTRIBUTEVALUE: TEMPLAT points to a template which specifies which attribute values must be modified and specifies the new values.
*FINDOBJECTSINIT: TEMPLAT points to a search template which specifies the attribute values that are to be matched.
*DESTROYOBJECT, *GETOBJECTSIZE, *FINDOBJECTS, *FINDOBJECTSFINAL: TEMPLAT is not used.
COUNT
Number of attributes in the template
*DESTROYOBJECT, *GETOBJECTSIZE, *FINDOBJECTS, *FINDOBJECTSFINAL: COUNT is not used.
OBJLIST
points to the memory location which receives the list (array) of additional object handles;
is only used by *FINDOBJECTS.
OBJSIZE
outputs the size of an object in bytes;
is only used by *GETOBJECTSIZE.
MAXOBJ
Maximum number of object handles that are returned.
is only used by *FINDOBJECTS.
OBJCNT
receives the current number of object handles that are returned;
is only used by *FINDOBJECTS.
BOID
Event identification
in the case of synchronous execution: BOID is not used.
in the case of asynchronous execution:
event identification to which the end of the function processing is signalled.
RPOSTAD
Postcode address
in the case of synchronous execution: RPOSTAD is not used.
in the case of asynchronous execution: specifies a field containing postcode information which is to be transferred to the corresponding program that outputs the SOLSIG macro call (see also “Executive Macros” user guide [3]).
Length of postcode: 4 or 8 bytes
RPOSTL
Length of postcode
in the case of synchronous execution: RPOSTL is not used.
in the case of asynchronous execution: specifies the length of the postcode information in words (1 or 2).