public final class RedsysKey
extends java.lang.Object
RedsysKey
class represents a Redsys cryptographic key to be uploaded
to the security processorModifier and Type | Field and Description |
---|---|
static int |
KCV_SIZE |
Constructor and Description |
---|
RedsysKey(byte[] key,
byte[] kcv)
Constructor
|
Modifier and Type | Method and Description |
---|---|
static byte[] |
buildKCV(byte[] key)
Build KCV value for a given key
|
static byte[] |
decrypt(byte[] key,
byte[] payload)
Encrypts a payload with a given key
|
static byte[] |
encrypt(byte[] old_key,
byte[] new_key)
Encrypt a new redsys key by the old one
This is a helper function is used for a Redsys key processing test.
|
byte[] |
getBytes()
Gets the byte array of the Redsys key block
|
void |
setId(int id)
Sets the Key ID
|
void |
setVersion(short version)
Sets the version of the key
|
static int |
sizeOf() |
public RedsysKey(byte[] key, byte[] kcv) throws RedsysKeyProcessingException
key
- byte array of a Redsys keykcv
- byte array of the key KCV valueRedsysKeyProcessingException
- general errorpublic static byte[] encrypt(byte[] old_key, byte[] new_key) throws javax.crypto.NoSuchPaddingException, java.security.NoSuchAlgorithmException, java.security.InvalidKeyException, javax.crypto.BadPaddingException, javax.crypto.IllegalBlockSizeException, java.security.InvalidAlgorithmParameterException
old_key
- - key which is used for a new key encryptionnew_key
- - new key for the encryptionjavax.crypto.NoSuchPaddingException
- padding exception errorjava.security.NoSuchAlgorithmException
- invalid algo errorjava.security.InvalidKeyException
- invalid key errorjavax.crypto.BadPaddingException
- invalid padding errorjavax.crypto.IllegalBlockSizeException
- invalid encryption block size errorjava.security.InvalidAlgorithmParameterException
- invalid algo params errorpublic static byte[] decrypt(byte[] key, byte[] payload) throws javax.crypto.NoSuchPaddingException, java.security.NoSuchAlgorithmException, java.security.InvalidKeyException, javax.crypto.BadPaddingException, javax.crypto.IllegalBlockSizeException, java.security.InvalidAlgorithmParameterException
key
- - key which is used for a new key encryptionpayload
- - payload for encryptionjavax.crypto.NoSuchPaddingException
- padding exception errorjava.security.NoSuchAlgorithmException
- invalid algo errorjava.security.InvalidKeyException
- invalid key errorjavax.crypto.BadPaddingException
- invalid padding errorjavax.crypto.IllegalBlockSizeException
- invalid encryption block size errorjava.security.InvalidAlgorithmParameterException
- invalid algo params errorpublic static byte[] buildKCV(byte[] key) throws javax.crypto.NoSuchPaddingException, java.security.NoSuchAlgorithmException, java.security.InvalidKeyException, javax.crypto.BadPaddingException, javax.crypto.IllegalBlockSizeException, java.security.InvalidAlgorithmParameterException
key
- - key meterial to build KCV fromjavax.crypto.NoSuchPaddingException
- padding exception errorjava.security.NoSuchAlgorithmException
- invalid algo errorjava.security.InvalidKeyException
- invalid key errorjavax.crypto.BadPaddingException
- invalid padding errorjavax.crypto.IllegalBlockSizeException
- invalid encryption block size errorjava.security.InvalidAlgorithmParameterException
- invalid algo params errorpublic void setId(int id)
id
- key IDpublic void setVersion(short version)
version
- key versionpublic static int sizeOf()
struct { uint32_t key_id uint16_t version uint8_t kcv[3] uint8_t pad[3] uint8_t key[16] }
public byte[] getBytes()
Copyright © 2019 Yello. All rights reserved.