public class TlvUtils
extends java.lang.Object
Constructor and Description |
---|
TlvUtils() |
Modifier and Type | Method and Description |
---|---|
static byte[] |
asciiPanToBinaryPAN(byte[] asciiPAN) |
static EMVTagStore |
createTagStore(byte[] tlvData)
Creates an
EMVTagStore from a byte array of TLV data. |
static EMVTagStore |
createTagStore(byte[] tlvData,
boolean recursive)
Creates an
EMVTagStore from a byte array of TLV data |
static byte[] |
decodeTrack(byte[] track) |
static byte[] |
decodeTrackRaw(byte[] track) |
static byte[] |
encodeToTrack2EquivalentData(byte[] decodedAsciiTrack) |
static java.lang.String |
extractExpDateFromTrack(byte[] decodedTrack,
java.lang.String panStr,
int trackType) |
static byte[] |
extractPANFromTrack(byte[] decodedTrack,
int trackType) |
static java.math.BigDecimal |
getAmount(byte[] amount) |
static EMVBrand |
getBrand(EMVTagReader tagReader) |
static EMVCVMResults |
getCVMResults(EMVTagReader tagReader) |
static byte[] |
getTLVLength(int length)
Converting length into byte array according to BER specification.
|
static TransactionGatewayResult |
getTransactionGatewayResult(EMVTagReader tagReader) |
static boolean |
isCTLSMSRTransaction(byte[] posEntryMode) |
static boolean |
isCTLSTransaction(byte[] posEntryMode) |
static boolean |
isEMVTransaction(byte[] posEntryMode) |
static boolean |
isManualTransaction(byte[] posEntryMode) |
static boolean |
isMSRTransaction(byte[] posEntryMode) |
static boolean |
isSignatureRequired(EMVTagReader tagReader) |
static java.lang.String |
listTags(EMVTagReader tagReader)
Lists all tags from tag store concatenated String value
|
static byte[] |
removeSentinelFromDecodedTrack(byte[] decodedTrackRaw) |
static byte[] |
setAmount(java.math.BigDecimal amount) |
static byte[] |
setBinaryAmount(java.math.BigDecimal amount) |
static void |
setTags(EMVTagReader tagReader,
java.lang.String[][] tagsAndReplaceTags,
EMVTagStore tagStore,
boolean force_verification) |
static void |
setTags(EMVTagReader tagReader,
java.lang.String[] tags,
EMVTagStore tagStore,
boolean force_verification) |
public static final java.lang.String POS_ENTRY_MODE_UNKNOWN
public static final java.lang.String POS_ENTRY_MODE_MANUAL
public static final java.lang.String POS_ENTRY_MODE_MAGSTRIPE
public static final java.lang.String POS_ENTRY_MODE_BARCODE
public static final java.lang.String POS_ENTRY_MODE_OCR
public static final java.lang.String POS_ENTRY_MODE_ICC
public static final java.lang.String POS_ENTRY_MODE_CTLS
public static final java.lang.String POS_ENTRY_MODE_MAGSTRIPE_FALLBACK
public static final java.lang.String POS_ENTRY_MODE_MAGSTRIPE_TRACK2
public static final java.lang.String POS_ENTRY_MODE_CTLS_MAGSTRIPE
public static final java.lang.String POS_ENTRY_MODE_ICC2
public static final java.lang.String POS_ENTRY_MODE_SAME_ORIGINAL
public static final int TERM_CAP_MANUAL
public static final int TERM_CAP_MAGSTRIPE
public static final int TERM_CAP_ICC
public static final int TERM_CAP_PLAIN_PIN_ICC
public static final int TERM_CAP_ENC_PIN_ONLINE
public static final int TERM_CAP_SIGNATURE
public static final int TERM_CAP_ENC_PIN_OFFLINE
public static final int TERM_CAP_NO_CVM
public static final int TERM_CAP_SDA
public static final int TERM_CAP_DDA
public static final int TERM_CAP_CARD_CAPTURE
public static final int TERM_CAP_CDA
public static final byte CVM_CODE_MASK
public static final byte CVM_CODE_FAIL_CVM
public static final byte CVM_CODE_PLAIN_PIN
public static final byte CVM_CODE_ENC_PIN_ONLINE
public static final byte CVM_CODE_PLAIN_PIN_AND_SIG
public static final byte CVM_CODE_ENC_PIN_OFFLINE
public static final byte CVM_CODE_ENC_PIN_OFFLINE_SIG
public static final byte CVM_CODE_SIGNATURE
public static final byte CVM_CODE_NO_CVM
public static final byte CVM_CODE_UNKNOWN
public static final byte USER_ITF_MSG_ID_APPROVED
public static final byte USER_ITF_MSG_ID_APPROVED_SIGN
public static final byte USER_ITF_MSG_ID_DECLINED
public static final byte USER_ITF_MSG_ID_INSERT_SWIPE_ANOTHER
public static final byte USER_ITF_MSG_ID_CL_INSERT_CARD
public static final byte USER_ITF_MSG_ID_TRY_AGAIN
public static final byte USER_ITF_MSG_ID_SEE_PHONE
public static final byte USER_ITF_MSG_ID_INSERT_OR_SWIPE
public static final byte USER_ITF_MSG_ID_USE_MAG_STRIPE
public static final byte TRANS_OUTCOME_APPROVED
public static final byte TRANS_OUTCOME_DECLINED
public static final byte TRANS_OUTCOME_END_APP
public static final byte TRANS_OUTCOME_ONLINE_REQ
public static final byte TRANS_OUTCOME_ANOTHER_ITF
public static final byte TRANS_OUTCOME_TRY_AGAIN
public static final java.lang.String RID_VISA
public static final java.lang.String RID_MASTERCARD1
public static final java.lang.String RID_MASTERCARD2
public static final java.lang.String RID_AMEX
public static final java.lang.String RID_CB
public static final java.lang.String RID_JCB
public static final java.lang.String RID_GIRO
public static final java.lang.String RID_GIRO2
public static final java.lang.String RID_DISCOVER
public static final java.lang.String MASTERCARD_MAESTRO1
public static final java.lang.String MASTERCARD_MAESTRO2
public static final java.lang.String VISA_VISA_ELECTRON
public static final java.lang.String VISA_V_PAY
public static final int TTQ_MAGSTRIPE_SUPPORTED
public static final int TTQ_EMV_MODE_SUPPORTED
public static final int TTQ_EMV_CONTACT_SUPPORTED
public static final int TTQ_OFFLINE_ONLY
public static final int TTQ_ONLINE_PIN_SUPPORTED
public static final int TTQ_SIG_SUPPORTED
public static final int TTQ_ODA_SUPPORTED
public static final int TTQ_ONLINE_CRYPTOGRAM_REQ
public static final int TTQ_CVM_REQUIRED
public static final int TTQ_OFFLINE_PIN_SUPPORTED
public static final int TTQ_IUP_SUPPORTED
public static final int TTQ_CONSUMER_DEVICE_CVM_SUPPORTED
public static final int CTQ_ONLINE_PIN_REQUIRED
public static final int CTQ_SIGNATURE_REQUIRED
public static final int CTQ_ONLINE_ODA_FAIL
public static final int CTQ_SWITCH_DA_FAIL
public static final int CTQ_ONLINE_APP_EXPIRED
public static final int CTQ_SWITCH_CASH
public static final int CTQ_SWITCH_CASHBACK
public static final int CTQ_CONSUMER_DEVICE_CVM_PERFORMED
public static final int CTQ_ISSUER_UPDATE_PROCESSING
public static final int CID_TC
public static final int CID_ARQC
public static final int ARC_APPROVED_ONLINE
public static final int ARC_REFERRAL
public static final int ARC_DECLINED
public static final int ARC_DECLINED_TRY_ANOTHER_INTERFACE
public static final int ARC_APPROVED_OFFLINE
public static final int ARC_ONLINE_PIN_REQUEST_MCL
public static final int ARC_PARTIALLY_APPROVED
public static final int TRACK_TYPE1
public static final int TRACK_TYPE2
public static final int OUTCOME_PARAM_STATUS_APPROVED
public static final int OUTCOME_PARAM_STATUS_DECLINED
public static final int OUTCOME_PARAM_STATUS_ONLINE_REQ
public static final int OUTCOME_PARAM_STATUS_END_APP
public static final int OUTCOME_PARAM_STATUS_SEL_NEXT
public static final int OUTCOME_PARAM_STATUS_ANOTHER_ITF
public static final int OUTCOME_PARAM_STATUS_TRY_AGAIN
public static final int OUTCOME_PARAM_STATUS_NA
public static final int OUTCOME_PARAM_START_A
public static final int OUTCOME_PARAM_START_B
public static final int OUTCOME_PARAM_START_C
public static final int OUTCOME_PARAM_START_D
public static final int OUTCOME_PARAM_START_NA
public static final int OUTCOME_PARAM_DATA_UI_REQUEST
public static final int OUTCOME_PARAM_DATA_UI_REQUEST_RESTART
public static final int OUTCOME_PARAM_DATA_RECORD
public static final int OUTCOME_PARAM_DATA_DISCRETIONARY
public static final int OUTCOME_PARAM_DATA_RECEIPT
public static final int OUTCOME_PARAM_DATA_FCI_COMBINATION
public static final int ASRPD_CARD_TYPE_DEBIT
public static final int ASRPD_CARD_TYPE_CREDIT
public static final int ASRPD_CARD_TYPE_COMMERCIAL_PRODUCT
public static final int ASRPD_CARD_TYPE_PREPAID
public static final byte AIP_EMV_CONTACTLESS
public static final byte ERR_INDICATION_OK
public static final byte ERR_INDICATION_CARD_DATA_MISSING
public static final byte ERR_INDICATION_CAM_FAILED
public static final byte ERR_INDICATION_STATUS_BYTES
public static final byte ERR_INDICATION_PARSING_ERROR
public static final byte ERR_INDICATION_MAX_LIMIT_EXCEEDED
public static final byte ERR_INDICATION_CARD_DATA_ERROR
public static final byte ERR_INDICATION_MAGSTRIPE_NOT_SUPPORTED
public static final byte ERR_INDICATION_NO_PPSE
public static final byte ERR_INDICATION_PPSE_FAULT
public static final byte ERR_INDICATION_EMPTY_CANDIDATE_LIST
public static final byte ERR_INDICATION_IDS_READ_ERROR
public static final byte ERR_INDICATION_IDS_WRITE_ERROR
public static final byte ERR_INDICATION_IDS_DATA_ERROR
public static final byte ERR_INDICATION_IDS_NO_MATCHING_AC
public static final byte ERR_INDICATION_TERMINAL_DATA_ERROR
public static final byte PINBLOCK_ISO_FORMAT_0
public static final byte PINBLOCK_ISO_FORMAT_1
public static final byte PINBLOCK_ISO_FORMAT_2
public static final byte PINBLOCK_ISO_FORMAT_3
public static final byte PINBLOCK_ISO_FORMAT_4
public static final int PAYWAVE_RID_PIX_LENGTH
public static boolean isSignatureRequired(EMVTagReader tagReader)
public static EMVTagStore createTagStore(byte[] tlvData, boolean recursive) throws java.lang.Exception
EMVTagStore
from a byte array of TLV datatlvData
- byte array of TLV datarecursive
- indicates whether to scan the TLV items recursively or not, allowing to access
directly simple tags from compound tags inside the EMVTagStore
EMVTagStore
containing the tlv itemsjava.lang.Exception
- for any types of errorspublic static EMVTagStore createTagStore(byte[] tlvData) throws java.lang.Exception
EMVTagStore
from a byte array of TLV data.
This method will recursively scan the TLV items and extract simple tags from compound tags
so that they can be accessed directly from the EMVTagStore
.
Compound tags will also be accessible.tlvData
- byte array of TLV dataEMVTagStore
containing the tlv itemsjava.lang.Exception
- for any types of errorspublic static java.lang.String listTags(EMVTagReader tagReader)
tagReader
- tagStore from which to list all the tagspublic static byte[] getTLVLength(int length)
length
- length of TLV value in integer typepublic static boolean isMSRTransaction(byte[] posEntryMode) throws java.lang.Exception
java.lang.Exception
public static boolean isEMVTransaction(byte[] posEntryMode) throws java.lang.Exception
java.lang.Exception
public static boolean isCTLSTransaction(byte[] posEntryMode) throws java.lang.Exception
java.lang.Exception
public static boolean isManualTransaction(byte[] posEntryMode) throws java.lang.Exception
java.lang.Exception
public static boolean isCTLSMSRTransaction(byte[] posEntryMode) throws java.lang.Exception
java.lang.Exception
public static byte[] decodeTrackRaw(byte[] track) throws java.lang.IllegalArgumentException
java.lang.IllegalArgumentException
public static byte[] removeSentinelFromDecodedTrack(byte[] decodedTrackRaw) throws java.lang.IllegalArgumentException
java.lang.IllegalArgumentException
public static byte[] decodeTrack(byte[] track) throws java.lang.IllegalArgumentException
java.lang.IllegalArgumentException
public static byte[] encodeToTrack2EquivalentData(byte[] decodedAsciiTrack) throws java.lang.IllegalArgumentException
java.lang.IllegalArgumentException
public static byte[] extractPANFromTrack(byte[] decodedTrack, int trackType) throws java.lang.IllegalArgumentException
java.lang.IllegalArgumentException
public static byte[] asciiPanToBinaryPAN(byte[] asciiPAN) throws java.lang.IllegalArgumentException
java.lang.IllegalArgumentException
public static java.lang.String extractExpDateFromTrack(byte[] decodedTrack, java.lang.String panStr, int trackType)
public static void setTags(EMVTagReader tagReader, java.lang.String[] tags, EMVTagStore tagStore, boolean force_verification) throws java.lang.Exception
java.lang.Exception
public static void setTags(EMVTagReader tagReader, java.lang.String[][] tagsAndReplaceTags, EMVTagStore tagStore, boolean force_verification) throws java.lang.Exception
java.lang.Exception
public static EMVBrand getBrand(EMVTagReader tagReader) throws java.lang.Exception
java.lang.Exception
public static EMVCVMResults getCVMResults(EMVTagReader tagReader) throws java.lang.Exception
java.lang.Exception
public static TransactionGatewayResult getTransactionGatewayResult(EMVTagReader tagReader)
public static java.math.BigDecimal getAmount(byte[] amount)
public static byte[] setAmount(java.math.BigDecimal amount)
public static byte[] setBinaryAmount(java.math.BigDecimal amount)
Copyright © 2019 Yello. All rights reserved.