Package com.netscape.cms.servlet.tks
Class SecureChannelProtocol
- java.lang.Object
-
- com.netscape.cms.servlet.tks.SecureChannelProtocol
-
public class SecureChannelProtocol extends java.lang.Object
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.StringauthTypestatic intCARD_CRYPTOGRAMstatic java.lang.StringdekTypestatic java.lang.StringencTypeprotected static char[]hexstatic intHOST_CRYPTOGRAMstatic java.lang.StringkekTypestatic java.lang.StringmacTypestatic intPROTOCOL_ONEstatic intPROTOCOL_THREEstatic intPROTOCOL_TWOstatic java.lang.StringrmacType
-
Constructor Summary
Constructors Constructor Description SecureChannelProtocol()SecureChannelProtocol(int theProtocol)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description byte[]computeAES_CBCEncryption(org.mozilla.jss.crypto.SymmetricKey symKey, java.lang.String selectedToken, byte[] input, byte[] iv)byte[]computeCryptogram_SCP01(java.lang.String selectedToken, java.lang.String keyNickName, byte[] card_challenge, byte[] host_challenge, byte[] keyInfo, byte nistSP800_108KdfOnKeyVersion, boolean nistSP800_108KdfUseCuidAsKdd, byte[] xCUID, byte[] xKDD, int cryptogramType, byte[] authKeyArray, java.lang.String useSoftToken_s, java.lang.String keySet, java.lang.String transportKeyName)byte[]computeCryptogram_SCP03(org.mozilla.jss.crypto.SymmetricKey symKey, java.lang.String selectedToken, byte[] context, byte cryptoType)byte[]computeDes3EcbEncryption(org.mozilla.jss.crypto.SymmetricKey desKey, java.lang.String selectedToken, byte[] input)org.mozilla.jss.crypto.SymmetricKeycomputeKEKKey_SCP01(java.lang.String selectedToken, java.lang.String keyNickName, byte[] keyInfo, byte nistSP800_108KdfOnKeyVersion, boolean nistSP800_108KdfUseCuidAsKdd, byte[] xCUID, byte[] xKDD, byte[] devKeyArray, java.lang.String useSoftToken_s, java.lang.String keySet, java.lang.String transportKeyName)byte[]computeKeyCheck(org.mozilla.jss.crypto.SymmetricKey desKey, java.lang.String selectedToken)byte[]computeKeyCheck_SCP03(org.mozilla.jss.crypto.SymmetricKey symKey, java.lang.String selectedToken)byte[]computeMAC_SCP01(org.mozilla.jss.crypto.SymmetricKey symKey, byte[] input, byte[] icv, java.lang.String selectedToken)org.mozilla.jss.crypto.SymmetricKeycomputeSessionKey_SCP01(java.lang.String keyType, java.lang.String selectedToken, java.lang.String keyNickName, byte[] card_challenge, byte[] host_challenge, byte[] keyInfo, byte nistSP800_108KdfOnKeyVersion, boolean nistSP800_108KdfUseCuidAsKdd, byte[] xCUID, byte[] xKDD, byte[] devKeyArray, java.lang.String useSoftToken_s, java.lang.String keySet, java.lang.String transportKeyName)org.mozilla.jss.crypto.SymmetricKeycomputeSessionKey_SCP02(java.lang.String selectedToken, java.lang.String keyNickName, byte[] keyInfo, byte nistSP800_108KdfOnKeyVersion, boolean nistSP800_108KdfUseCuidAsKdd, byte[] xCUID, byte[] xKDD, byte[] macKeyArray, byte[] sequenceCounter, byte[] derivationConstant, java.lang.String useSoftToken_s, java.lang.String keySet, java.lang.String transportKeyName)org.mozilla.jss.crypto.SymmetricKeycomputeSessionKey_SCP03(java.lang.String selectedToken, java.lang.String keyNickName, byte[] keyInfo, java.lang.String keyType, byte[] devKeyArray, java.lang.String keySet, byte[] xCUID, byte[] xKDD, byte[] host_challenge, byte[] card_challenge, java.lang.String transportKeyName, GPParams params)static voiddebugByteArray(byte[] array, java.lang.String message)static voiddisplayByteArray(byte[] ba, boolean has_check_sum)byte[]diversifyKey(java.lang.String tokenName, java.lang.String newTokenName, java.lang.String oldMasterKeyName, java.lang.String newMasterKeyName, byte[] oldKeyInfo, byte[] newKeyInfo, byte nistSP800_108KdfOnKeyVersion, boolean nistSP800_108KdfUseCuidAsKdd, byte[] CUIDValue, byte[] KDD, byte[] kekKeyArray, byte[] encKeyArray, byte[] macKeyArray, java.lang.String useSoftToken, java.lang.String keySet, byte protocol, GPParams params)byte[]ecbEncrypt(org.mozilla.jss.crypto.SymmetricKey devKey, org.mozilla.jss.crypto.SymmetricKey symKey, java.lang.String selectedToken)byte[]encryptData(java.lang.String selectedToken, java.lang.String keyNickName, byte[] data, byte[] keyInfo, byte nistSP800_108KdfOnKeyVersion, boolean nistSP800_108KdfUseCuidAsKdd, byte[] xCUID, byte[] xKDD, byte[] kekKeyArray, java.lang.String useSoftToken_s, java.lang.String keySet)byte[]encryptData_SCP03(java.lang.String selectedToken, java.lang.String keyNickName, byte[] data, byte[] keyInfo, byte nistSP800_108KdfOnKeyVersion, boolean nistSP800_108KdfUseCuidAsKdd, byte[] xCUID, byte[] xKDD, byte[] kekKeyArray, java.lang.String useSoftToken_s, java.lang.String keySet, GPParams params)org.mozilla.jss.crypto.SymmetricKeyextractDes2FromDes3(org.mozilla.jss.crypto.SymmetricKey baseKey, java.lang.String selectedToken)org.mozilla.jss.crypto.SymmetricKeygenerateSymKey(java.lang.String selectedToken)org.mozilla.jss.CryptoManagergetCryptoManger()static java.lang.StringgetHexString(byte[] bytes)intgetProtocol()org.mozilla.jss.crypto.SymmetricKeygetSharedSecretKey(org.mozilla.jss.crypto.CryptoToken token)static java.lang.StringgetSharedSecretKeyName(java.lang.String name)static org.mozilla.jss.crypto.SymmetricKeygetSymKeyByName(org.mozilla.jss.crypto.CryptoToken token, java.lang.String name)static byte[]longToBytes(long x)static byte[]makeDes3FromDes2(byte[] des2)org.mozilla.jss.crypto.SymmetricKeymakeDes3KeyDerivedFromDes2(org.mozilla.jss.crypto.SymmetricKey des3Key, java.lang.String selectedToken)org.mozilla.jss.crypto.SymmetricKeyreturnDeveloperSymKey(org.mozilla.jss.crypto.CryptoToken token, java.lang.String keyType, java.lang.String keySet, byte[] inputKeyArray, java.lang.String keyAlg)org.mozilla.jss.crypto.CryptoTokenreturnTokenByName(java.lang.String name, org.mozilla.jss.CryptoManager manager)static voidsetDefaultPrefix(java.lang.String masterkeyPrefix)static java.lang.StringsetSharedSecretKeyName(java.lang.String name)org.mozilla.jss.crypto.SymmetricKeyunwrapAESSymKeyOnToken(org.mozilla.jss.crypto.CryptoToken token, byte[] inputKeyArray, boolean isPerm)org.mozilla.jss.crypto.SymmetricKeyunwrapAESSymKeyOnToken(org.mozilla.jss.crypto.CryptoToken token, org.mozilla.jss.crypto.SymmetricKey keyToUnwrap, boolean isPerm)org.mozilla.jss.crypto.SymmetricKeyunwrapSymKeyOnToken(org.mozilla.jss.crypto.CryptoToken token, byte[] inputKeyArray, boolean isPerm)org.mozilla.jss.crypto.SymmetricKeyunwrapSymKeyOnToken(org.mozilla.jss.crypto.CryptoToken token, org.mozilla.jss.crypto.SymmetricKey unwrappingKey, byte[] inputKeyArray, boolean isPerm, org.mozilla.jss.crypto.SymmetricKey.Type finalKeyType)org.mozilla.jss.crypto.SymmetricKeyunwrapWrappedSymKeyOnToken(org.mozilla.jss.crypto.CryptoToken token, org.mozilla.jss.crypto.SymmetricKey unwrappingKey, byte[] inputKeyArray, boolean isPerm, org.mozilla.jss.crypto.SymmetricKey.Type keyType)byte[]wrapSessionKey(java.lang.String tokenName, org.mozilla.jss.crypto.SymmetricKey sessionKey, org.mozilla.jss.crypto.SymmetricKey wrappingKey)
-
-
-
Field Detail
-
encType
public static final java.lang.String encType
- See Also:
- Constant Field Values
-
macType
public static final java.lang.String macType
- See Also:
- Constant Field Values
-
kekType
public static final java.lang.String kekType
- See Also:
- Constant Field Values
-
authType
public static final java.lang.String authType
- See Also:
- Constant Field Values
-
dekType
public static final java.lang.String dekType
- See Also:
- Constant Field Values
-
rmacType
public static final java.lang.String rmacType
- See Also:
- Constant Field Values
-
PROTOCOL_ONE
public static final int PROTOCOL_ONE
- See Also:
- Constant Field Values
-
PROTOCOL_TWO
public static final int PROTOCOL_TWO
- See Also:
- Constant Field Values
-
PROTOCOL_THREE
public static final int PROTOCOL_THREE
- See Also:
- Constant Field Values
-
HOST_CRYPTOGRAM
public static final int HOST_CRYPTOGRAM
- See Also:
- Constant Field Values
-
CARD_CRYPTOGRAM
public static final int CARD_CRYPTOGRAM
- See Also:
- Constant Field Values
-
hex
protected static final char[] hex
-
-
Method Detail
-
computeCryptogram_SCP01
public byte[] computeCryptogram_SCP01(java.lang.String selectedToken, java.lang.String keyNickName, byte[] card_challenge, byte[] host_challenge, byte[] keyInfo, byte nistSP800_108KdfOnKeyVersion, boolean nistSP800_108KdfUseCuidAsKdd, byte[] xCUID, byte[] xKDD, int cryptogramType, byte[] authKeyArray, java.lang.String useSoftToken_s, java.lang.String keySet, java.lang.String transportKeyName) throws EBaseException- Throws:
EBaseException
-
computeSessionKey_SCP02
public org.mozilla.jss.crypto.SymmetricKey computeSessionKey_SCP02(java.lang.String selectedToken, java.lang.String keyNickName, byte[] keyInfo, byte nistSP800_108KdfOnKeyVersion, boolean nistSP800_108KdfUseCuidAsKdd, byte[] xCUID, byte[] xKDD, byte[] macKeyArray, byte[] sequenceCounter, byte[] derivationConstant, java.lang.String useSoftToken_s, java.lang.String keySet, java.lang.String transportKeyName) throws EBaseException- Throws:
EBaseException
-
getProtocol
public int getProtocol()
-
computeSessionKey_SCP03
public org.mozilla.jss.crypto.SymmetricKey computeSessionKey_SCP03(java.lang.String selectedToken, java.lang.String keyNickName, byte[] keyInfo, java.lang.String keyType, byte[] devKeyArray, java.lang.String keySet, byte[] xCUID, byte[] xKDD, byte[] host_challenge, byte[] card_challenge, java.lang.String transportKeyName, GPParams params) throws EBaseException- Throws:
EBaseException
-
computeKEKKey_SCP01
public org.mozilla.jss.crypto.SymmetricKey computeKEKKey_SCP01(java.lang.String selectedToken, java.lang.String keyNickName, byte[] keyInfo, byte nistSP800_108KdfOnKeyVersion, boolean nistSP800_108KdfUseCuidAsKdd, byte[] xCUID, byte[] xKDD, byte[] devKeyArray, java.lang.String useSoftToken_s, java.lang.String keySet, java.lang.String transportKeyName) throws EBaseException- Throws:
EBaseException
-
computeSessionKey_SCP01
public org.mozilla.jss.crypto.SymmetricKey computeSessionKey_SCP01(java.lang.String keyType, java.lang.String selectedToken, java.lang.String keyNickName, byte[] card_challenge, byte[] host_challenge, byte[] keyInfo, byte nistSP800_108KdfOnKeyVersion, boolean nistSP800_108KdfUseCuidAsKdd, byte[] xCUID, byte[] xKDD, byte[] devKeyArray, java.lang.String useSoftToken_s, java.lang.String keySet, java.lang.String transportKeyName) throws EBaseException- Throws:
EBaseException
-
getSharedSecretKey
public org.mozilla.jss.crypto.SymmetricKey getSharedSecretKey(org.mozilla.jss.crypto.CryptoToken token) throws EBaseException- Throws:
EBaseException
-
getSharedSecretKeyName
public static java.lang.String getSharedSecretKeyName(java.lang.String name) throws EBaseException- Throws:
EBaseException
-
setSharedSecretKeyName
public static java.lang.String setSharedSecretKeyName(java.lang.String name) throws EBaseException- Throws:
EBaseException
-
returnDeveloperSymKey
public org.mozilla.jss.crypto.SymmetricKey returnDeveloperSymKey(org.mozilla.jss.crypto.CryptoToken token, java.lang.String keyType, java.lang.String keySet, byte[] inputKeyArray, java.lang.String keyAlg) throws EBaseException- Throws:
EBaseException
-
unwrapAESSymKeyOnToken
public org.mozilla.jss.crypto.SymmetricKey unwrapAESSymKeyOnToken(org.mozilla.jss.crypto.CryptoToken token, byte[] inputKeyArray, boolean isPerm) throws EBaseException- Throws:
EBaseException
-
unwrapAESSymKeyOnToken
public org.mozilla.jss.crypto.SymmetricKey unwrapAESSymKeyOnToken(org.mozilla.jss.crypto.CryptoToken token, org.mozilla.jss.crypto.SymmetricKey keyToUnwrap, boolean isPerm) throws EBaseException- Throws:
EBaseException
-
unwrapSymKeyOnToken
public org.mozilla.jss.crypto.SymmetricKey unwrapSymKeyOnToken(org.mozilla.jss.crypto.CryptoToken token, org.mozilla.jss.crypto.SymmetricKey unwrappingKey, byte[] inputKeyArray, boolean isPerm, org.mozilla.jss.crypto.SymmetricKey.Type finalKeyType) throws EBaseException- Throws:
EBaseException
-
unwrapWrappedSymKeyOnToken
public org.mozilla.jss.crypto.SymmetricKey unwrapWrappedSymKeyOnToken(org.mozilla.jss.crypto.CryptoToken token, org.mozilla.jss.crypto.SymmetricKey unwrappingKey, byte[] inputKeyArray, boolean isPerm, org.mozilla.jss.crypto.SymmetricKey.Type keyType) throws EBaseException- Throws:
EBaseException
-
unwrapSymKeyOnToken
public org.mozilla.jss.crypto.SymmetricKey unwrapSymKeyOnToken(org.mozilla.jss.crypto.CryptoToken token, byte[] inputKeyArray, boolean isPerm) throws EBaseException- Throws:
EBaseException
-
getSymKeyByName
public static org.mozilla.jss.crypto.SymmetricKey getSymKeyByName(org.mozilla.jss.crypto.CryptoToken token, java.lang.String name) throws EBaseException- Throws:
EBaseException
-
returnTokenByName
public org.mozilla.jss.crypto.CryptoToken returnTokenByName(java.lang.String name, org.mozilla.jss.CryptoManager manager) throws org.mozilla.jss.NoSuchTokenException, org.mozilla.jss.NotInitializedException- Throws:
org.mozilla.jss.NoSuchTokenExceptionorg.mozilla.jss.NotInitializedException
-
makeDes3FromDes2
public static byte[] makeDes3FromDes2(byte[] des2)
-
debugByteArray
public static void debugByteArray(byte[] array, java.lang.String message)
-
displayByteArray
public static void displayByteArray(byte[] ba, boolean has_check_sum)
-
getHexString
public static java.lang.String getHexString(byte[] bytes)
-
getCryptoManger
public org.mozilla.jss.CryptoManager getCryptoManger() throws EBaseException- Throws:
EBaseException
-
longToBytes
public static byte[] longToBytes(long x)
-
generateSymKey
public org.mozilla.jss.crypto.SymmetricKey generateSymKey(java.lang.String selectedToken) throws EBaseException- Throws:
EBaseException
-
ecbEncrypt
public byte[] ecbEncrypt(org.mozilla.jss.crypto.SymmetricKey devKey, org.mozilla.jss.crypto.SymmetricKey symKey, java.lang.String selectedToken) throws EBaseException- Throws:
EBaseException
-
makeDes3KeyDerivedFromDes2
public org.mozilla.jss.crypto.SymmetricKey makeDes3KeyDerivedFromDes2(org.mozilla.jss.crypto.SymmetricKey des3Key, java.lang.String selectedToken) throws EBaseException- Throws:
EBaseException
-
extractDes2FromDes3
public org.mozilla.jss.crypto.SymmetricKey extractDes2FromDes3(org.mozilla.jss.crypto.SymmetricKey baseKey, java.lang.String selectedToken) throws EBaseException- Throws:
EBaseException
-
wrapSessionKey
public byte[] wrapSessionKey(java.lang.String tokenName, org.mozilla.jss.crypto.SymmetricKey sessionKey, org.mozilla.jss.crypto.SymmetricKey wrappingKey) throws EBaseException- Throws:
EBaseException
-
computeAES_CBCEncryption
public byte[] computeAES_CBCEncryption(org.mozilla.jss.crypto.SymmetricKey symKey, java.lang.String selectedToken, byte[] input, byte[] iv) throws EBaseException- Throws:
EBaseException
-
computeDes3EcbEncryption
public byte[] computeDes3EcbEncryption(org.mozilla.jss.crypto.SymmetricKey desKey, java.lang.String selectedToken, byte[] input) throws EBaseException- Throws:
EBaseException
-
computeKeyCheck_SCP03
public byte[] computeKeyCheck_SCP03(org.mozilla.jss.crypto.SymmetricKey symKey, java.lang.String selectedToken) throws EBaseException- Throws:
EBaseException
-
computeCryptogram_SCP03
public byte[] computeCryptogram_SCP03(org.mozilla.jss.crypto.SymmetricKey symKey, java.lang.String selectedToken, byte[] context, byte cryptoType) throws EBaseException- Throws:
EBaseException
-
computeKeyCheck
public byte[] computeKeyCheck(org.mozilla.jss.crypto.SymmetricKey desKey, java.lang.String selectedToken) throws EBaseException- Throws:
EBaseException
-
computeMAC_SCP01
public byte[] computeMAC_SCP01(org.mozilla.jss.crypto.SymmetricKey symKey, byte[] input, byte[] icv, java.lang.String selectedToken) throws EBaseException- Throws:
EBaseException
-
diversifyKey
public byte[] diversifyKey(java.lang.String tokenName, java.lang.String newTokenName, java.lang.String oldMasterKeyName, java.lang.String newMasterKeyName, byte[] oldKeyInfo, byte[] newKeyInfo, byte nistSP800_108KdfOnKeyVersion, boolean nistSP800_108KdfUseCuidAsKdd, byte[] CUIDValue, byte[] KDD, byte[] kekKeyArray, byte[] encKeyArray, byte[] macKeyArray, java.lang.String useSoftToken, java.lang.String keySet, byte protocol, GPParams params) throws EBaseException- Throws:
EBaseException
-
setDefaultPrefix
public static void setDefaultPrefix(java.lang.String masterkeyPrefix)
-
encryptData_SCP03
public byte[] encryptData_SCP03(java.lang.String selectedToken, java.lang.String keyNickName, byte[] data, byte[] keyInfo, byte nistSP800_108KdfOnKeyVersion, boolean nistSP800_108KdfUseCuidAsKdd, byte[] xCUID, byte[] xKDD, byte[] kekKeyArray, java.lang.String useSoftToken_s, java.lang.String keySet, GPParams params) throws EBaseException- Throws:
EBaseException
-
encryptData
public byte[] encryptData(java.lang.String selectedToken, java.lang.String keyNickName, byte[] data, byte[] keyInfo, byte nistSP800_108KdfOnKeyVersion, boolean nistSP800_108KdfUseCuidAsKdd, byte[] xCUID, byte[] xKDD, byte[] kekKeyArray, java.lang.String useSoftToken_s, java.lang.String keySet) throws EBaseException- Throws:
EBaseException
-
-