2011-07-11 63 views
6

Hei, Câu hỏi này không thực sự là về Ncryptoki nhưng tôi không biết bất cứ nơi nào khác để hỏi .. vì vậy nếu có ai có thể giúp hãy giúp tôi. Im tryng để tạo ra chìa khóa AES và heres mã những gì tôi có ngay bây giờ:PKCS # 11 Tạo khóa AES

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); 

Nhưng điều này mang lại cho tôi một lỗi:

C_GenerateKey rv=0x62 - key size range 

Ai có thể cho tôi một số ý tưởng đi đâu từ đây đến giải quyết vấn đề này ..

CHỈNH SỬA: Chỉ để biết thông tin - Tôi có SafeNet HSM và đang sử dụng trình bao bọc java PKCS # 11 có tên là jprov những gì đi kèm với SafeNet ProtectToolkit.

+0

@ this.josh, việc thay đổi CKA.VALUE_LEN không thay đổi bất cứ điều gì. Vẫn gặp lỗi tương tự. –

+0

'CKA.VALUE_LEN' có phải là bit hoặc byte không? – AviD

Trả lời

6

Tôi tìm thấy answere, new CK_ATTRIBUTE(CKA.VALUE_LEN, 32),, 32 trong đó có phải là giá trị CK_ULONG vì vậy khi tôi làm điều này:

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)) 
}; 

đâu LongRef là:

public class LongRef { 

    public long value; 

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

Hope this helps một ai đó.

+0

@AviD, xin lỗi vì điều đó. Hai máy tính khác nhau và đó là lý do tại sao tôi không thể sử dụng như vậy. Sẽ được tốt đẹp nếu u có thể hợp nhất chúng. (Để t678) Cảm ơn! –

Các vấn đề liên quan