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.String
authType
static int
CARD_CRYPTOGRAM
static java.lang.String
dekType
static java.lang.String
encType
protected static char[]
hex
static int
HOST_CRYPTOGRAM
static java.lang.String
kekType
static java.lang.String
macType
static int
PROTOCOL_ONE
static int
PROTOCOL_THREE
static int
PROTOCOL_TWO
static java.lang.String
rmacType
-
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.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)
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.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)
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)
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)
static void
debugByteArray(byte[] array, java.lang.String message)
static void
displayByteArray(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.SymmetricKey
extractDes2FromDes3(org.mozilla.jss.crypto.SymmetricKey baseKey, java.lang.String selectedToken)
org.mozilla.jss.crypto.SymmetricKey
generateSymKey(java.lang.String selectedToken)
org.mozilla.jss.CryptoManager
getCryptoManger()
static java.lang.String
getHexString(byte[] bytes)
int
getProtocol()
org.mozilla.jss.crypto.SymmetricKey
getSharedSecretKey(org.mozilla.jss.crypto.CryptoToken token)
static java.lang.String
getSharedSecretKeyName(java.lang.String name)
static org.mozilla.jss.crypto.SymmetricKey
getSymKeyByName(org.mozilla.jss.crypto.CryptoToken token, java.lang.String name)
static byte[]
longToBytes(long x)
static byte[]
makeDes3FromDes2(byte[] des2)
org.mozilla.jss.crypto.SymmetricKey
makeDes3KeyDerivedFromDes2(org.mozilla.jss.crypto.SymmetricKey des3Key, java.lang.String selectedToken)
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)
org.mozilla.jss.crypto.CryptoToken
returnTokenByName(java.lang.String name, org.mozilla.jss.CryptoManager manager)
static void
setDefaultPrefix(java.lang.String masterkeyPrefix)
static java.lang.String
setSharedSecretKeyName(java.lang.String name)
org.mozilla.jss.crypto.SymmetricKey
unwrapAESSymKeyOnToken(org.mozilla.jss.crypto.CryptoToken token, byte[] inputKeyArray, boolean isPerm)
org.mozilla.jss.crypto.SymmetricKey
unwrapAESSymKeyOnToken(org.mozilla.jss.crypto.CryptoToken token, org.mozilla.jss.crypto.SymmetricKey keyToUnwrap, boolean isPerm)
org.mozilla.jss.crypto.SymmetricKey
unwrapSymKeyOnToken(org.mozilla.jss.crypto.CryptoToken token, byte[] inputKeyArray, boolean isPerm)
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)
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)
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.NoSuchTokenException
org.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
-
-