Description

These functions implement the RSA PKCS#11 v2.20 specification by using plug-ins to
provide the slots.

The SUNW_C_GetMechSession() function initializes the PKCS#11 cryptographic framework and performs all necessary
calls to Standard PKCS#11 functions (see libpkcs11(3LIB)) to create a session capable
of providing operations on the requested mechanism. It is not neccessary to
call C_Initalize() or C_GetSlotList() before the first call to SUNW_C_GetMechSession().

If the SUNW_C_GetMechSession() function is called multiple times, it will return a
new session each time without re-initalizing the framework. If it is unable
to return a new session, CKR_SESSION_COUNT is returned.

The C_CloseSession() function should be called to release the session when it
is no longer required.

The SUNW_C_KeyToObject() function creates a key object for the specified mechanism from
the rawkey data. The object should be destroyed with C_DestroyObject() when it
is no longer required.

Return Values

The SUNW_C_GetMechSession() function returns the following values:

CKR_OK

The function completed successfully.

CKR_SESSION_COUNT

No sessions are available.

CKR_ARGUMENTS_BAD

A null pointer was passed for the return session handle.

CKR_MECHANISM_INVALID

The requested mechanism is invalid or no available plug-in provider supports it.

CKR_FUNCTION_FAILED

The function failed.

CKR_GENERAL_ERROR

A general error occurred.

The SUNW_C_KeyToObject() function returns the following values:

CKR_OK

The function completed successfully.

CKR_ARGUMENTS_BAD

A null pointer was passed for the session handle or the key material.

CKR_MECHANISM_INVALID

The requested mechanism is invalid or no available plug-in provider supports it.

CKR_FUNCTION_FAILED

The function failed.

CKR_GENERAL_ERROR

A general error occurred.

The return values of each of the implemented functions are defined and
listed in the RSA PKCS#11 v2.20 specification. See http://www.rsasecurity.com.

Usage

These functions are not part of the RSA PKCS#11 v2.20 specification. They
are not likely to exist on non-Solaris systems. They are provided as
a convenience to application programmers. Use of these functions will make the
application non-portable to other systems.