public class GenericLib extends java.lang.Object implements CkiLibrary
The default mapping used in CkiSlotManager.initializeCryptoki for the Generic driver is:
        Diffie Hellman         YES
        DSA                    YES
        RSA                    YES
        Message Digest         YES
        Symmetric Cipher       YES
        RandomBitsSource       YES
        Cloning Mechanisms     YES
        Managed State          YES
        Signature Mechanisms   YES
        
When creating a new CkiParams object for GenericLib, the new object will be initialized with these values.
Note: this generic library should only used for testing purposes.
| Constructor and Description | 
|---|
GenericLib(java.lang.String libraryName)  | 
| Modifier and Type | Method and Description | 
|---|---|
boolean | 
closeAllSessions(long slotID)  | 
boolean | 
closeSession(long session, boolean hasLoginRequired)  | 
long | 
createObject(long[] attrType, java.lang.Object[] values, long session)  | 
byte[] | 
decrypt(long mecha, long[] attrType, java.lang.Object[] values, byte[] data, long handleKey, long session)  | 
byte[] | 
decryptFinal(long session)  | 
void | 
decryptInit(long mecha, long[] attrType, java.lang.Object[] values, long handleKey, long session)  | 
byte[] | 
decryptUpdate(byte[] data, long session)  | 
long | 
deriveKey(long mecha, long[] attrTypeMecha, java.lang.Object[] valuesMecha, long[] attrTypeKey, java.lang.Object[] valuesKey, long handleKey, long session)  | 
byte[] | 
digest(long mecha, long[] attrType, java.lang.Object[] values, byte[] data, long session)  | 
java.lang.Object[] | 
digestAndDecryptSSL3(boolean useManagedState, byte[] operationState, byte[] secret, byte[] seqNumb, byte type, byte[] pad1, byte[] pad2, byte[] content, long macSize, long cipherMechanism, long[] attrType, java.lang.Object[] values, long digestMechanism, long blocksize, long keyHandle, long session)  | 
java.lang.Object[] | 
digestAndEncryptSSL3(boolean useManagedState, byte[] operationState, byte[] secret, byte[] seqNumb, byte type, byte[] length, byte[] pad1, byte[] pad2, byte[] content, long macSize, long cipherMechanism, long[] attrType, java.lang.Object[] values, long digestMechanism, long blocksize, long keyHandle, long session)  | 
byte[] | 
digestFinal(long session)  | 
void | 
digestInit(long mecha, long[] attrType, java.lang.Object[] values, long session)  | 
void | 
digestKey(long key, long session)  | 
void | 
digestUpdate(byte[] data, long session)  | 
byte[] | 
encrypt(long mecha, long[] attrType, java.lang.Object[] values, byte[] data, long handleKey, long session)  | 
byte[] | 
encryptFinal(long session)  | 
void | 
encryptInit(long mecha, long[] attrType, java.lang.Object[] values, long handleKey, long session)  | 
byte[] | 
encryptUpdate(byte[] data, long session)  | 
void | 
finalizeOp()  | 
long | 
findObject(long[] attrType, java.lang.Object[] values, long session)  | 
long | 
generateMasterSecret(byte[] clientRandom, byte[] serverRandom, long[] attrType, java.lang.Object[] values, long preMasterSecret, long session)  | 
long | 
generateMS(byte[] clientRandom, byte[] serverRandom, long[] attrType, java.lang.Object[] values, long preMasterSecret, long session)  | 
byte[] | 
generateRandom(long randomLen, long session)  | 
java.lang.Object[] | 
generateSecrets(byte[] clientRandom, byte[] serverRandom, long macSize, long keySize, long ivSize, boolean isExportable, long[] attrType, java.lang.Object[] values, long masterSecret, long session)  | 
byte[] | 
generateSSL3MAC(byte[] secret, byte[] seqNumb, byte type, byte[] length, byte[] pad1, byte[] pad2, byte[] content, long macSize, long mechanism, long session)  | 
byte[] | 
generateSSL3MACHandshake(byte[] secret, byte[] pad1, byte[] pad2, byte[] label, byte[] content, long macSize, long mechanism, long session)  | 
byte[] | 
generateSSL3MS(byte[] clientRandom, byte[] serverRandom, byte[] pms, long session)  | 
java.lang.Object[] | 
generateSSL3Secrets(byte[] clientRandom, byte[] serverRandom, long macSize, long keySize, long expKeySize, long ivSize, boolean isExportable, byte[] ms, long keyType, boolean cipherInSoftware, long session)  | 
long | 
genKey(long mecha, long[] attrTypeMecha, java.lang.Object[] valuesMecha, long[] attrTypeKey, java.lang.Object[] valuesKey, long session)  | 
long[] | 
genKeyPair(long mecha, long[] attrTypeMecha, java.lang.Object[] valuesMecha, long[] attrTypePub, java.lang.Object[] valuesPub, long[] attrTypePriv, java.lang.Object[] valuesPriv, long session)  | 
java.lang.Object[] | 
getAttributes(long handleObject, long[] attrType, long session)  | 
CkiParams | 
getCkiParams()  | 
java.lang.Object[] | 
getInfo()  | 
java.lang.Object[] | 
getMechanism(long slotID)  | 
byte[] | 
getOperationState(long session)  | 
long | 
getSession(long slotID, boolean readOnly)  | 
java.lang.Object[] | 
getSlotInfo(long slotID)  | 
long[] | 
getSlotList()  | 
java.lang.Object[] | 
getTokenInfo(long slotID)  | 
void | 
initializeOp()  | 
void | 
initPin(long session, java.lang.String pin)  | 
void | 
initToken(long slotID, java.lang.String pinSO, java.lang.String tokenLabel)  | 
boolean | 
isClosed(long session)  | 
long[] | 
listObjects(long[] attrType, java.lang.Object[] values, long session)  | 
void | 
load(java.lang.String libraryName)  | 
void | 
login(long session, java.lang.String pin)  | 
void | 
loginSO(long session, java.lang.String pinSO)  | 
long | 
loginSOToken(long slotID, java.lang.String pinSO)  | 
long | 
loginToken(long slotID, java.lang.String pin, boolean readOnly, boolean alreadyLoggedIn)  | 
boolean | 
logoutToken(long session, boolean hasLoginRequired)  | 
void | 
removeObject(long object, long session)  | 
boolean | 
seed(byte[] dataSeed, long session)  | 
void | 
setAttributes(long handleObject, long[] attrType, java.lang.Object[] values, long session)  | 
void | 
setOperationState(byte[] value, long encKey, long sigKey, long session)  | 
void | 
setPin(long session, java.lang.String oldPin, java.lang.String pin)  | 
byte[] | 
sign(long mecha, long[] attrType, java.lang.Object[] values, byte[] data, long handleKey, long session)  | 
long | 
unwrap(long mecha, long[] attrType, java.lang.Object[] values, long handleUnwrappingKey, byte[] wrappedKey, long[] attrTypeKey, java.lang.Object[] valuesKey, long session)  | 
boolean | 
verify(long mecha, long[] attrType, java.lang.Object[] values, byte[] data, byte[] signature, long handleKey, long session)  | 
byte[] | 
wrap(long mecha, long[] attrType, java.lang.Object[] values, long handleWrappingKey, long handleKey, long session)  | 
public CkiParams getCkiParams()
getCkiParams in interface CkiLibrarypublic void load(java.lang.String libraryName)
public void initializeOp()
initializeOp in interface CkiLibrarypublic void finalizeOp()
finalizeOp in interface CkiLibrarypublic long[] getSlotList()
getSlotList in interface CkiLibrarypublic java.lang.Object[] getMechanism(long slotID)
getMechanism in interface CkiLibrarypublic java.lang.Object[] getInfo()
getInfo in interface CkiLibrarypublic java.lang.Object[] getSlotInfo(long slotID)
getSlotInfo in interface CkiLibrarypublic java.lang.Object[] getTokenInfo(long slotID)
getTokenInfo in interface CkiLibrary
public long getSession(long slotID,
                       boolean readOnly)
getSession in interface CkiLibrary
public boolean closeSession(long session,
                            boolean hasLoginRequired)
closeSession in interface CkiLibrarypublic boolean closeAllSessions(long slotID)
closeAllSessions in interface CkiLibrary
public long loginToken(long slotID,
                       java.lang.String pin,
                       boolean readOnly,
                       boolean alreadyLoggedIn)
loginToken in interface CkiLibrary
public void login(long session,
                  java.lang.String pin)
login in interface CkiLibrary
public boolean logoutToken(long session,
                           boolean hasLoginRequired)
logoutToken in interface CkiLibrary
public void loginSO(long session,
                    java.lang.String pinSO)
loginSO in interface CkiLibrary
public long loginSOToken(long slotID,
                         java.lang.String pinSO)
loginSOToken in interface CkiLibrarypublic boolean isClosed(long session)
isClosed in interface CkiLibrary
public void initToken(long slotID,
                      java.lang.String pinSO,
                      java.lang.String tokenLabel)
initToken in interface CkiLibrary
public void initPin(long session,
                    java.lang.String pin)
initPin in interface CkiLibrary
public void setPin(long session,
                   java.lang.String oldPin,
                   java.lang.String pin)
setPin in interface CkiLibrarypublic byte[] getOperationState(long session)
getOperationState in interface CkiLibrary
public void setOperationState(byte[] value,
                              long encKey,
                              long sigKey,
                              long session)
setOperationState in interface CkiLibrary
public long createObject(long[] attrType,
                         java.lang.Object[] values,
                         long session)
createObject in interface CkiLibrary
public void removeObject(long object,
                         long session)
removeObject in interface CkiLibrary
public long[] listObjects(long[] attrType,
                          java.lang.Object[] values,
                          long session)
listObjects in interface CkiLibrary
public java.lang.Object[] getAttributes(long handleObject,
                                        long[] attrType,
                                        long session)
getAttributes in interface CkiLibrary
public void setAttributes(long handleObject,
                          long[] attrType,
                          java.lang.Object[] values,
                          long session)
setAttributes in interface CkiLibrary
public long findObject(long[] attrType,
                       java.lang.Object[] values,
                       long session)
findObject in interface CkiLibrary
public long[] genKeyPair(long mecha,
                         long[] attrTypeMecha,
                         java.lang.Object[] valuesMecha,
                         long[] attrTypePub,
                         java.lang.Object[] valuesPub,
                         long[] attrTypePriv,
                         java.lang.Object[] valuesPriv,
                         long session)
genKeyPair in interface CkiLibrary
public long genKey(long mecha,
                   long[] attrTypeMecha,
                   java.lang.Object[] valuesMecha,
                   long[] attrTypeKey,
                   java.lang.Object[] valuesKey,
                   long session)
genKey in interface CkiLibrary
public long deriveKey(long mecha,
                      long[] attrTypeMecha,
                      java.lang.Object[] valuesMecha,
                      long[] attrTypeKey,
                      java.lang.Object[] valuesKey,
                      long handleKey,
                      long session)
deriveKey in interface CkiLibrary
public byte[] digest(long mecha,
                     long[] attrType,
                     java.lang.Object[] values,
                     byte[] data,
                     long session)
digest in interface CkiLibrary
public void digestInit(long mecha,
                       long[] attrType,
                       java.lang.Object[] values,
                       long session)
digestInit in interface CkiLibrary
public void digestUpdate(byte[] data,
                         long session)
digestUpdate in interface CkiLibrary
public void digestKey(long key,
                      long session)
digestKey in interface CkiLibrarypublic byte[] digestFinal(long session)
digestFinal in interface CkiLibrary
public byte[] sign(long mecha,
                   long[] attrType,
                   java.lang.Object[] values,
                   byte[] data,
                   long handleKey,
                   long session)
sign in interface CkiLibrary
public boolean verify(long mecha,
                      long[] attrType,
                      java.lang.Object[] values,
                      byte[] data,
                      byte[] signature,
                      long handleKey,
                      long session)
verify in interface CkiLibrary
public byte[] encrypt(long mecha,
                      long[] attrType,
                      java.lang.Object[] values,
                      byte[] data,
                      long handleKey,
                      long session)
encrypt in interface CkiLibrary
public void encryptInit(long mecha,
                        long[] attrType,
                        java.lang.Object[] values,
                        long handleKey,
                        long session)
encryptInit in interface CkiLibrary
public byte[] encryptUpdate(byte[] data,
                            long session)
encryptUpdate in interface CkiLibrarypublic byte[] encryptFinal(long session)
encryptFinal in interface CkiLibrary
public byte[] decrypt(long mecha,
                      long[] attrType,
                      java.lang.Object[] values,
                      byte[] data,
                      long handleKey,
                      long session)
decrypt in interface CkiLibrary
public void decryptInit(long mecha,
                        long[] attrType,
                        java.lang.Object[] values,
                        long handleKey,
                        long session)
decryptInit in interface CkiLibrary
public byte[] decryptUpdate(byte[] data,
                            long session)
decryptUpdate in interface CkiLibrarypublic byte[] decryptFinal(long session)
decryptFinal in interface CkiLibrary
public byte[] wrap(long mecha,
                   long[] attrType,
                   java.lang.Object[] values,
                   long handleWrappingKey,
                   long handleKey,
                   long session)
wrap in interface CkiLibrary
public long unwrap(long mecha,
                   long[] attrType,
                   java.lang.Object[] values,
                   long handleUnwrappingKey,
                   byte[] wrappedKey,
                   long[] attrTypeKey,
                   java.lang.Object[] valuesKey,
                   long session)
unwrap in interface CkiLibrary
public boolean seed(byte[] dataSeed,
                    long session)
seed in interface CkiLibrary
public byte[] generateRandom(long randomLen,
                             long session)
generateRandom in interface CkiLibrary
public long generateMasterSecret(byte[] clientRandom,
                                 byte[] serverRandom,
                                 long[] attrType,
                                 java.lang.Object[] values,
                                 long preMasterSecret,
                                 long session)
generateMasterSecret in interface CkiLibrary
public long generateMS(byte[] clientRandom,
                       byte[] serverRandom,
                       long[] attrType,
                       java.lang.Object[] values,
                       long preMasterSecret,
                       long session)
generateMS in interface CkiLibrary
public java.lang.Object[] generateSecrets(byte[] clientRandom,
                                          byte[] serverRandom,
                                          long macSize,
                                          long keySize,
                                          long ivSize,
                                          boolean isExportable,
                                          long[] attrType,
                                          java.lang.Object[] values,
                                          long masterSecret,
                                          long session)
generateSecrets in interface CkiLibrary
public byte[] generateSSL3MS(byte[] clientRandom,
                             byte[] serverRandom,
                             byte[] pms,
                             long session)
generateSSL3MS in interface CkiLibrary
public java.lang.Object[] generateSSL3Secrets(byte[] clientRandom,
                                              byte[] serverRandom,
                                              long macSize,
                                              long keySize,
                                              long expKeySize,
                                              long ivSize,
                                              boolean isExportable,
                                              byte[] ms,
                                              long keyType,
                                              boolean cipherInSoftware,
                                              long session)
generateSSL3Secrets in interface CkiLibrary
public byte[] generateSSL3MAC(byte[] secret,
                              byte[] seqNumb,
                              byte type,
                              byte[] length,
                              byte[] pad1,
                              byte[] pad2,
                              byte[] content,
                              long macSize,
                              long mechanism,
                              long session)
generateSSL3MAC in interface CkiLibrary
public byte[] generateSSL3MACHandshake(byte[] secret,
                                       byte[] pad1,
                                       byte[] pad2,
                                       byte[] label,
                                       byte[] content,
                                       long macSize,
                                       long mechanism,
                                       long session)
generateSSL3MACHandshake in interface CkiLibrary
public java.lang.Object[] digestAndEncryptSSL3(boolean useManagedState,
                                               byte[] operationState,
                                               byte[] secret,
                                               byte[] seqNumb,
                                               byte type,
                                               byte[] length,
                                               byte[] pad1,
                                               byte[] pad2,
                                               byte[] content,
                                               long macSize,
                                               long cipherMechanism,
                                               long[] attrType,
                                               java.lang.Object[] values,
                                               long digestMechanism,
                                               long blocksize,
                                               long keyHandle,
                                               long session)
digestAndEncryptSSL3 in interface CkiLibrary
public java.lang.Object[] digestAndDecryptSSL3(boolean useManagedState,
                                               byte[] operationState,
                                               byte[] secret,
                                               byte[] seqNumb,
                                               byte type,
                                               byte[] pad1,
                                               byte[] pad2,
                                               byte[] content,
                                               long macSize,
                                               long cipherMechanism,
                                               long[] attrType,
                                               java.lang.Object[] values,
                                               long digestMechanism,
                                               long blocksize,
                                               long keyHandle,
                                               long session)
digestAndDecryptSSL3 in interface CkiLibrary