2011-07-11 11 views
6

हेई, प्रश्न वास्तव में एनक्रिप्टोकी के बारे में नहीं है लेकिन मुझे कहीं और पूछने के लिए नहीं पता था .. इसलिए अगर कोई मेरी मदद कर सकता है तो कृपया मेरी मदद करें।पीकेसीएस # 11 एईएस कुंजी उत्पन्न करें

CK_MECHANISM keyGenMech = new CK_MECHANISM(CKM.AES_KEY_GEN); 

CK_ATTRIBUTE[] template = 
{ 
    new CK_ATTRIBUTE(CKA.CLASS, CKO.SECRET_KEY), 
    new CK_ATTRIBUTE(CKA.TOKEN, CK_BBOOL.TRUE), 
    new CK_ATTRIBUTE(CKA.SENSITIVE, CK_BBOOL.TRUE), 
    new CK_ATTRIBUTE(CKA.VALUE_LEN, 32), 
    new CK_ATTRIBUTE(CKA.KEY_TYPE, CKK.AES), 
    new CK_ATTRIBUTE(CKA.LABEL, "testAES".getBytes()), 
    new CK_ATTRIBUTE(CKA.PRIVATE, new CK_BBOOL(bPrivate)) 
}; 
CryptokiEx.C_GenerateKey(session, keyGenMech, template, template.length, wrappingKey); 

लेकिन यह मुझे एक त्रुटि देता है: इम एईएस कुंजी और यहाँ कोड क्या मैं अभी उत्पन्न करने के लिए tryng

C_GenerateKey rv=0x62 - key size range 

किसी को भी मुझे कुछ विचार जहां यहां से लिए जाने के लिए दे सकते हैं इसे हल करें ..

संपादित करें: बस जानकारी के लिए - मेरे पास सुरक्षितनेट एचएसएम है और मैं जावा पीकेसीएस # 11 रैपर का उपयोग कर रहा हूं जिसे jprov सुरक्षितनेट सुरक्षा टुलकिट के साथ आता है।

LongRef l = new LongRef((long)32); 

CK_ATTRIBUTE[] template = 
{ 
    new CK_ATTRIBUTE(CKA.CLASS,  CKO.SECRET_KEY), 
    new CK_ATTRIBUTE(CKA.TOKEN,  CK_BBOOL.TRUE), 
    new CK_ATTRIBUTE(CKA.SENSITIVE, CK_BBOOL.TRUE), 
    new CK_ATTRIBUTE(CKA.VALUE_LEN, l.value), 
    //new CK_ATTRIBUTE(CKA.VALUE,  key), 
    new CK_ATTRIBUTE(CKA.KEY_TYPE, CKK.AES), 
    new CK_ATTRIBUTE(CKA.LABEL,  "testAES".getBytes()), 
    new CK_ATTRIBUTE(CKA.PRIVATE, new CK_BBOOL(bPrivate)) 
}; 

कहाँ LongRef है:

public class LongRef { 

    public long value; 

    public LongRef(long l) { 
     //compiled code 
     throw new RuntimeException("Compiled Code"); 
    } 
} 

आशा इस कोई मदद करता है

+0

@ this.josh, CKA.VALUE_LEN को बदलने से कुछ भी नहीं बदला। अभी भी एक ही त्रुटि हो रही है। –

+0

क्या 'सीकेए.VALUE_LEN' बिट्स या बाइट्स में होना चाहिए? – AviD

उत्तर

6

मैं answere, new CK_ATTRIBUTE(CKA.VALUE_LEN, 32),, वहाँ CK_ULONG मूल्य हो गया है में 32 तो मैं इस जब कर पाया।

+0

@AviD, इसके लिए खेद है। दो अलग-अलग कंप्यूटर और यही कारण है कि मैं इसका उपयोग क्यों नहीं कर सका। अच्छा होगा अगर आप उन्हें मर्ज कर सकें। (टी 678 में) धन्यवाद! –

संबंधित मुद्दे