Hi,

I have studied on CKM_AES_KEY_GEN in pkcs11_softtoken.so recently. 
But there occurs a problem which prompt no reference of C_GenerateKey.
Codes are attached as follows.
Is there any one who can help me? could you please send me an example how to 
use CKM_AES_KEY_GEN properly?

Thanks a lot!

----------------------------------------------------------------------
#include <stdio.h>
#include <fcntl.h>
#include <errno.h>
#include <sys/types.h>
#include <security/cryptoki.h>
#include <security/pkcs11.h>

int makeKey(CK_SESSION_HANDLE a_hSession)
{

        int rc = -1;

        // Generate a 128-bit AES key
        CK_RV rv;
        CK_BBOOL bTrue = TRUE;
        CK_BBOOL bFalse = FALSE;
        CK_OBJECT_CLASS tKeyClass = CKO_SECRET_KEY;
        CK_KEY_TYPE tKeyType = CKK_AES;
        CK_ULONG ulKeyLen = 16;
        CK_MECHANISM tMechanism =
        { CKM_AES_KEY_GEN, NULL, 0 };
        CK_ATTRIBUTE tAttr[] =
        {
        { CKA_CLASS, &tKeyClass, sizeof(tKeyClass ) },
        { CKA_TOKEN, &bTrue, sizeof(bTrue ) },
        { CKA_PRIVATE, &bTrue, sizeof(bTrue ) },
        { CKA_MODIFIABLE, &bFalse, sizeof(bFalse ) },
        { CKA_KEY_TYPE, &tKeyType, sizeof(tKeyType ) },
        { CKA_ENCRYPT, &bTrue, sizeof(bTrue ) },
        { CKA_VALUE_LEN, &ulKeyLen, sizeof(ulKeyLen ) }, 
        };

        CK_ULONG ulAttrCount = sizeof( tAttr ) / sizeof( CK_ATTRIBUTE );
        CK_OBJECT_HANDLE hObject;

        // Generate the key on the token
        rv = C_GenerateKey( a_hSession, &tMechanism, tAttr, ulAttrCount, 
&hObject );
        if ( rv != CKR_OK )
                goto out;

        rc = 0;
out:
        return rc;
}

-------------------------------------------------------------------
 
 
This message posted from opensolaris.org
_______________________________________________
opensolaris-code mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/opensolaris-code

Reply via email to