API Java
HSM Dinamo
Carregando...
Procurando...
Nenhuma entrada encontrado
EFT

Descrição detalhada

Operações para Transferência Eletrônica de Fundos.

Consulte a documentação técnica do HSM.

Funções

String generateDUKPT (byte[] baKSI, byte[] baDID_CTR, int dwParam) throws TacException
 Gera uma chave DUKPT dentro do HSM utilizando uma KSI (Key Serial Identification), um DID (Device ID) e um CTR (Transaction Counter) de uma mesma KSN (Key Serial Number).
 
String generateDUKPTName (byte[] baKSI, byte[] baDID_CTR) throws TacException
 Gera o nome da DUKPT a partir de uma KSI e CTR informados.
 
String generateBDKName (byte[] baKSI) throws TacException
 Gera o nome da BDK a partir de uma KSI (Key Serial Identification).
 
byte[] translatePINBlock (String srcPEK, String dstPEK, int transBlockType, String PAN, byte[] inPINBlock) throws TacException
 Faz a tradução de um PIN Block, decriptando o bloco com uma chave e encriptando com outra.
 
byte[] exportTR31 (String kbpk, String key, int usage, byte mode, byte export) throws TacException
 Exporta uma chave no formato TR-31 de acordo com o padrão ASC X9 TR 31-2018.
 
void importTR31 (String kbpk, String key, int keyAttributes, byte[] keyBlock) throws TacException
 Importa uma chave no formato TR-31 de acordo com o padrão ASC X9 TR 31-2018.
 
EftKeyParts exportKeyParts (String keyId, int flags) throws TacException
 Exporta uma chave ZPK (Zone PIN Key) ou ZMK (Zone Master Key).
 
void importKeyParts (String keyId, int keyAlg, EftKeyParts parts, int flags) throws TacException
 
String generateCVV (String keyId, String pan, String expirationDate, String serviceCode, int params) throws TacException
 Gera um CVV (Card Verification Value), CVV2 ou iCVV utilizando uma chave dentro do HSM.
 
boolean verifyCVV (String keyId, String pan, String expirationDate, String serviceCode, String cvv, int params) throws TacException
 Verifica um CVV (Card Verification Value), , CVV2 ou iCVV utilizando uma chave dentro do HSM.
 
boolean verifyPINBlock (String ptk, String pgk, String pan, String offset, byte[] pinBlock, int param) throws TacException
 Verifica a validade de um PIN em um PIN Block.
 

Funções

◆ generateDUKPT()

String generateDUKPT ( byte[] baKSI,
byte[] baDID_CTR,
int dwParam ) throws TacException

Gera uma chave DUKPT dentro do HSM utilizando uma KSI (Key Serial Identification), um DID (Device ID) e um CTR (Transaction Counter) de uma mesma KSN (Key Serial Number).

Parâmetros
baKSIBuffer de tamanho TacNDJavaLib.MIN_KSI_LEN contendo o KSI (primeiros 05 bytes do KSN).
baDID_CTRBuffer de tamanho TacNDJavaLib.MIN_CTR_LEN contendo o DID e CTR (últimos 05 bytes do KSN).
dwParamFlags de operação de acordo com a tabela abaixo.
Valor Significado
TacNDJavaLib.NEW_DUKPT_MODE_DUK Gera uma chave DUK (Derived Unique Key) padrão de acordo com o manual ISO X9.24-1-2004.
TacNDJavaLib.NEW_DUKPT_MODE_PEK Gera uma chave PEK (PIN Encryption Key) de acordo com o manual ISO X9.24-1-2004 A-1,A-6 aplicando o XOR da máscara 0000 0000 0000 FF00 nas partes da chave.
TacNDJavaLib.NEW_DUKPT_MODE_MEK Gera uma chave MEK (MAC Encryption Key) de acordo com o manual ISO X9.24-1-2004 A-1,A-6 aplicando o XOR da máscara 0000 0000 0000 00FF nas partes da chave.
TacNDJavaLib.NEW_DUKPT_MODE_DE Diversifica a chave gerada no formato Data Encryption. Aplica um XOR da máscara 0000 0000 00FF 0000 0000 0000 00FF 0000 sobre a chave DUKPT gerada, encripta a chave esquerda da DUKPT utilizando a DUKPT gerada e repete a encriptação com a chave direita. Após esta operação junta as partes esquerda e direita encriptadas para formar a Data Encryption Key. Como descrito em IDTECH USER MANUAL SecureMag Encrypted MagStripe Reader (80096504-001 RevL 06/19/14).
Deve ser utilizada combinada (via operação OR) com uma das flags: TacNDJavaLib.NEW_DUKPT_MODE_DUK, TacNDJavaLib.NEW_DUKPT_MODE_PEK ou TacNDJavaLib.NEW_DUKPT_MODE_MEK
TacNDJavaLib.NEW_DUKPT_MODE_EXP Gera uma chave DUKPT exportável. Esta é uma flag de atributo e deve ser utilizada combinada com outras flags. Utilizar apenas se especificamente necessário.
TacNDJavaLib.NEW_DUKPT_MODE_TMP Gera uma chave DUKPT temporária. Esta é uma flag de atributo e deve ser utilizada combinada com outras flags.
Retorna
Retorna o nome da chave DUKPT gerada.
Exceções
TacException

◆ generateDUKPTName()

String generateDUKPTName ( byte[] baKSI,
byte[] baDID_CTR ) throws TacException

Gera o nome da DUKPT a partir de uma KSI e CTR informados.

Parâmetros
baKSIBuffer de tamanho TacNDJavaLib.MIN_KSI_LEN contendo o KSI (primeiros 05 bytes do KSN).
baDID_CTRBuffer de tamanho TacNDJavaLib.MIN_CTR_LEN contendo o DID e CTR (últimos 05 bytes do KSN).
Retorna
Retorna o nome da chave DUKPT.
Exceções
TacException

◆ generateBDKName()

String generateBDKName ( byte[] baKSI) throws TacException

Gera o nome da BDK a partir de uma KSI (Key Serial Identification).

Parâmetros
baKSIBuffer de tamanho TacNDJavaLib.MIN_KSI_LEN contendo o KSI (primeiros 05 bytes do KSN).
Retorna
Retorna o nome da chave BDK.
Exceções
TacException

◆ translatePINBlock()

byte[] translatePINBlock ( String srcPEK,
String dstPEK,
int transBlockType,
String PAN,
byte[] inPINBlock ) throws TacException

Faz a tradução de um PIN Block, decriptando o bloco com uma chave e encriptando com outra.

O formato de bloco de entrada é identificado automaticamente, e o formato de bloco de saída pode ser definido pelo chamador, desde que a troca do formato não seja de um PAN Unbound para um PAN Bound. Os formatos PAN Bound são aqueles que utilizam informação de PAN em sua composição. É possível, portanto, realizar tanto tradução de chaves quanto tradução de formato. O chamador pode fazer uma validação forçada do formato indicando para o formato de saída, o mesmo que está usando no PIN Block de entrada.

Parâmetros
srcPEKIdentificador da chave de decriptação dentro do HSM.
dstPEKIdentificador da chave de encriptação dentro do HSM.
transBlockTypeIdentificador do formato do bloco de saída. De acordo com a tabela abaixo.
Valor Significado
TacNDJavaLib.TP_TRANSLATE_TYPE_AUTO Faz uma conversão de forma opaca, traduzindo do bloco com a chave de origem para o bloco com a chave de destino, sem análise do formato ou conteúdo do bloco.
PAN Bound: não se aplica.
TacNDJavaLib.TP_TRANSLATE_TYPE_ISO_0 Utiliza o tipo de bloco ISO PIN Block Format 0 (equivalente ao ANSI PIN Block Format 0 e ao VISA PIN Block Format 1).
PAN Bound: sim.
TacNDJavaLib.TP_TRANSLATE_TYPE_ISO_1 Utiliza o tipo de bloco ISO PIN Block Format 1.
PAN Bound: não.
TacNDJavaLib.TP_TRANSLATE_TYPE_ISO_3 Utiliza o tipo de bloco ISO PIN Block Format 3.
PAN Bound: sim.
TacNDJavaLib.TP_TRANSLATE_TYPE_IBM_3624 Utilizada o tipo de bloco IBM 3624.
Não implementado.
PANPAN (Primary Account Number).
inPINBlockPIN Block de entrada. O buffer deve ter o tamanho de um PIN Block, TacNDJavaLib.DES_BLOCK (8 bytes)
Retorna
PIN block de saída.
Exceções
TacException
Anotações
No caso de uma conversão não opaca, ou seja de uma tradução de formato, se o formato do PIN Block de entrada não puder ser reconhecido, será retornado erro D_ERR_OPERATION_FAILED.
O método ISO PIN Block Format 2 não é implementado no HSM, pois este formato é destinado para ser usado na proteção do PIN quando é submetido da leitora do chip do cartão.

◆ exportTR31()

byte[] exportTR31 ( String kbpk,
String key,
int usage,
byte mode,
byte export ) throws TacException

Exporta uma chave no formato TR-31 de acordo com o padrão ASC X9 TR 31-2018.

Parâmetros
kbpkNome da chave KBPK (Key Block Protection Key) utilizada para derivar as chaves de encriptação e autenticação.
keyNome da chave que será exportada do HSM.
usageIdentificador de uso de chave, como descrito no ASC X9 TR 31-2018 Seção A.5.1 tabela 6. As seguintes opções são aceitas.
Valor Significado
TacNDJavaLib.EFT_ME_TR31_EXP_USAGE_AUTO Define o identificador automaticamente. Os seguintes valores são utilizados: TacNDJavaLib.EFT_ME_TR31_EXP_USAGE_D0 para chave simétrica e TacNDJavaLib.EFT_ME_TR31_EXP_USAGE_D1 para chave assimétrica.
TacNDJavaLib.EFT_ME_TR31_EXP_USAGE_B0 BDK Base Derivation Key
TacNDJavaLib.EFT_ME_TR31_EXP_USAGE_B1 Initial DUKPT Key
TacNDJavaLib.EFT_ME_TR31_EXP_USAGE_B2 Base Key Variant Key
TacNDJavaLib.EFT_ME_TR31_EXP_USAGE_C0 CVK Card Verification Key
TacNDJavaLib.EFT_ME_TR31_EXP_USAGE_D0 Symmetric Key for Data Encryption
TacNDJavaLib.EFT_ME_TR31_EXP_USAGE_D1 Asymmetric Key for Data Encryption
TacNDJavaLib.EFT_ME_TR31_EXP_USAGE_D2 Data Encryption Key for Decimalization Table
TacNDJavaLib.EFT_ME_TR31_EXP_USAGE_E0 EMV/chip Issuer Master Key: Application cryptograms
TacNDJavaLib.EFT_ME_TR31_EXP_USAGE_E1 EMV/chip Issuer Master Key: Secure Messaging for Confidentiality
TacNDJavaLib.EFT_ME_TR31_EXP_USAGE_E2 EMV/chip Issuer Master Key: Secure Messaging for Integrity
TacNDJavaLib.EFT_ME_TR31_EXP_USAGE_E3 EMV/chip Issuer Master Key: Data Authentication Code
TacNDJavaLib.EFT_ME_TR31_EXP_USAGE_E4 EMV/chip Issuer Master Key: Dynamic Numbers
TacNDJavaLib.EFT_ME_TR31_EXP_USAGE_E5 EMV/chip Issuer Master Key: Card Personalization
TacNDJavaLib.EFT_ME_TR31_EXP_USAGE_E6 EMV/chip Issuer Master Key: Other
TacNDJavaLib.EFT_ME_TR31_EXP_USAGE_I0 Initialization Vector (IV)
TacNDJavaLib.EFT_ME_TR31_EXP_USAGE_K0 Key Encryption or wrapping
TacNDJavaLib.EFT_ME_TR31_EXP_USAGE_K1 TR-31 Key Block Protection Key
TacNDJavaLib.EFT_ME_TR31_EXP_USAGE_K2 TR-34 Asymmetric key
TacNDJavaLib.EFT_ME_TR31_EXP_USAGE_K3 Asymmetric key for key agreement/key wrapping
TacNDJavaLib.EFT_ME_TR31_EXP_USAGE_M0 ISO 16609 MAC algorithm 1 (using TDEA)
TacNDJavaLib.EFT_ME_TR31_EXP_USAGE_M1 ISO 9797-1 MAC Algorithm 1
TacNDJavaLib.EFT_ME_TR31_EXP_USAGE_M2 ISO 9797-1 MAC Algorithm 2
TacNDJavaLib.EFT_ME_TR31_EXP_USAGE_M3 ISO 9797-1 MAC Algorithm 3
TacNDJavaLib.EFT_ME_TR31_EXP_USAGE_M4 ISO 9797-1 MAC Algorithm 4
TacNDJavaLib.EFT_ME_TR31_EXP_USAGE_M5 ISO 9797-1:1999 MAC Algorithm 5
TacNDJavaLib.EFT_ME_TR31_EXP_USAGE_M6 ISO 9797-1:2011 MAC Algorithm 5/CMAC
TacNDJavaLib.EFT_ME_TR31_EXP_USAGE_M7 HMAC
TacNDJavaLib.EFT_ME_TR31_EXP_USAGE_M8 ISO 9797-1:2011 MAC Algorithm 6
TacNDJavaLib.EFT_ME_TR31_EXP_USAGE_P0 PIN Encryption
TacNDJavaLib.EFT_ME_TR31_EXP_USAGE_S0 Asymmetric key pair for digital signature
TacNDJavaLib.EFT_ME_TR31_EXP_USAGE_S1 Asymmetric key pair, CA key
TacNDJavaLib.EFT_ME_TR31_EXP_USAGE_S2 Asymmetric key pair, nonX9.24 key
TacNDJavaLib.EFT_ME_TR31_EXP_USAGE_V0 PIN verification, KPV, other algorithm
TacNDJavaLib.EFT_ME_TR31_EXP_USAGE_V1 PIN verification, IBM 3624
TacNDJavaLib.EFT_ME_TR31_EXP_USAGE_V2 PIN Verification, VISA PVV
TacNDJavaLib.EFT_ME_TR31_EXP_USAGE_V3 PIN Verification, X9.132 algorithm 1
TacNDJavaLib.EFT_ME_TR31_EXP_USAGE_V4 PIN Verification, X9.132 algorithm 2
modeIdentificador do modo de uso da chave, como descrito no ASC X9 TR 31-2018 Seção A.5.3 tabela 8. As seguintes opções são aceitas.
Valor Significado
TacNDJavaLib.EFT_ME_TR31_EXP_MODE_AUTO Define o identificador de modo de uso automaticamente. O seguinte valor é utilizado TacNDJavaLib.EFT_ME_TR31_EXP_MODE_N.
TacNDJavaLib.EFT_ME_TR31_EXP_MODE_B Ambos Encriptação & Decriptação / Wrap & Unwrap
TacNDJavaLib.EFT_ME_TR31_EXP_MODE_C Ambos Geração & Verificação
TacNDJavaLib.EFT_ME_TR31_EXP_MODE_D Decriptação / Unwrap Apenas
TacNDJavaLib.EFT_ME_TR31_EXP_MODE_E Encriptação / Wrap Apenas
TacNDJavaLib.EFT_ME_TR31_EXP_MODE_G Geração Apenas
TacNDJavaLib.EFT_ME_TR31_EXP_MODE_N Sem restrições especiais (exceto as restrições definidas pelo identificador de uso da chave)
TacNDJavaLib.EFT_ME_TR31_EXP_MODE_S Assinatura Apenas
TacNDJavaLib.EFT_ME_TR31_EXP_MODE_T Ambos Assinatura & Decriptação
TacNDJavaLib.EFT_ME_TR31_EXP_MODE_V Verificação Apenas
TacNDJavaLib.EFT_ME_TR31_EXP_MODE_X Chave usada para derivar outra(s) chave(s)
TacNDJavaLib.EFT_ME_TR31_EXP_MODE_Y Chave usada para criar variantes de chaves
exportIdentificador de exportabilidade da chave, como descrito no ASC X9 TR 31-2018 Seção A.5.5 tabela 10. As seguintes opções são aceitas.
Valor Significado
TacNDJavaLib.EFT_ME_TR31_EXP_AUTO Define o identificador de exportabilidade automaticamente. O seguinte valor é utilizado TacNDJavaLib.EFT_ME_TR31_EXP_X9_24.
TacNDJavaLib.EFT_ME_TR31_EXP_X9_24 Exportável sob uma KEK (Key Encryption Key) em um formato de encontro com o definido nos requisitos do X9.24 Partes 1 ou 2.
TacNDJavaLib.EFT_ME_TR31_EXP_NON_EXPORTABLE Não exportável pelo recebedor do Key Block, ou local de armazenamento. Não impede a exportação de chaves derivadas de uma chave não exportável.
TacNDJavaLib.EFT_ME_TR31_EXP_KEK_EXPORTABLE Sensível, Exportável sob uma KEK (Key Encryption Key) em um formato não necessariamente de acordo com os requisitos do X9.24 Partes 1 ou 2.
Retorna
key block
Exceções
TacException
Anotações
Essa API exporta uma chave usando os métodos de geração de key_block abaixo.
Algoritmo da KBPK Método de exportação
3DES 5.3.2.1 Key Derivation Binding Method - TDEA
AES 5.3.2.3 Key Block Binding Method – AES

◆ importTR31()

void importTR31 ( String kbpk,
String key,
int keyAttributes,
byte[] keyBlock ) throws TacException

Importa uma chave no formato TR-31 de acordo com o padrão ASC X9 TR 31-2018.

Parâmetros
kbpkNome da chave KBPK (Key Block Protection Key) utilizada para derivar as chaves de encriptação e autenticação.
keyNome da chave que será importada no HSM.
keyAttributesParâmetros adicionais da chave. Veja as opções no método createKey().
keyBlockkey block
Exceções
TacException
Anotações
Essa API importa chaves protegidas pelos métodos de geração do key_block.
Algoritmo da KBPK Método
3DES 5.3.2.1 Key Derivation Binding Method - TDEA
AES 5.3.2.3 Key Block Binding Method – AES

◆ exportKeyParts()

EftKeyParts exportKeyParts ( String keyId,
int flags ) throws TacException

Exporta uma chave ZPK (Zone PIN Key) ou ZMK (Zone Master Key).

A exportação é feita por partes, com os seus respectivos valores de verificação como descrito no VISA Payment Technology Standards Manual, october 2007.

Parâmetros
keyIdNome da chave que será exportada.
flagsAs seguintes opções são aceitas.
Valor Significado
0 Gera o KCV (Key Check Value) da chave como definido na ANSI X.9.24 com tamanho de 3 bytes.
TacNDJavaLib.DN_EXP_ZPK_FLAG_FULL_CKS Gera o KCV (Key Check Value) da chave como definido na ANSI X.9.24 com tamanho de 8 bytes.
Retorna
Retorna os valores de exportação da chave ZPK ou ZMK, contendo o KCV (Key Check Value) e os valores de verificação (check values) necessários para a reconstrução da chave.
Veja também
EftKeyParts
Anotações
Pode ser utilizada para exportação de chaves que sigam o padrão de exportação por partes descrito no documento VISA Payment Technology Standards Manual, october 2007 Chapter 7 e Appendix C. Pode ser utilizado para chaves ZPK (Zone PIN Key), ZMK (Zone Master Key)/ZCMK (Zone Control Master Key), por exemplo.
Exceções
TacException

◆ importKeyParts()

void importKeyParts ( String keyId,
int keyAlg,
EftKeyParts parts,
int flags ) throws TacException

◆ generateCVV()

String generateCVV ( String keyId,
String pan,
String expirationDate,
String serviceCode,
int params ) throws TacException

Gera um CVV (Card Verification Value), CVV2 ou iCVV utilizando uma chave dentro do HSM.

Esta API também pode ser usada para a geração dos códigos de verificação de cartão que suportam o protocolo 3-D Secure. No caso da Visa o serviço que implementa o protocolo é o Verified by Visa, e o HSM suporta o padrão CAVV (Cardholder Authentication Verification Value, que é o CVV2 com método ATN). No caso da Mastercard o protocolo 3-D Secure é implementado no serviço SecureCode, o HSM suporta os padrões CVC2 (Card Verification Code 2) e HMAC SHA1.

Parâmetros
keyIdNome da chave. Esta chave é a CVK (Card Verification Key), uma chave 3DES de 112 bits, e deve ser a mesma que será usada para a verificação do CVV. Esta chave pode ser gerada internamente no HSM ou importada manualmente.
Normalmente esta chave também é usada na Visa, enviada cifrada pela ZCMK (Zone Contro Master Key).
Conforme determinado no manual da Visa, a chave 3DES 112 usada como CVK deve ser diferente da chave usada para geração e verificação de PIN e não deve ser usada para outras aplicações do emissor, com exceção do CVV2 e iCVV.
panPAN (Primary Account Number). Tamanho de de 12 a 19 caracteres.
Para o cálculo de CVV, CVV2 e iCVV, conforme o padrão da Visa, no documento Payment Technology Standards Manual, de 2007, é independente do tamanho do PAN. Para o cálculo de CVC2, conforme o documento da Mastercard SPA Algorithm for the MasterCard Implementation of 3-D Secure – v1.04, o tamanho do PAN deve ser exatamente de 16 dígitos; quando for menor precisa se completado à esquerda com zeros, e quando for maior devem ser usados apenas os 16 dígitos mais à direita.
expirationDateData de expiração. Tamanho de 4 dígitos.
Na geração de CVV e iCVV o formato deve ser YYMM.
Na geração de CVV2 o formato deve ser MMYY.
No cáculo de CVC2 este campo deve ser uma string terminada em zero com os 4 dígitos menos significativos do Transaction Sequence Number, contido no AVV (Accountholder Authentication Value) convertido no BCD decimal equivalente. Qualquer valor menor que 4 dígitos deve ser completado à esquerda com zeros até inteirar os 4 dígitos. Para mais detalhes consulte o documento da Mastercard SPA Algorithm for the MasterCard Implementation of 3-D Secure – v1.04.
No cáculo de CAVV (CVV2 com o Método ATN), este campo deve ser uma string terminada em zero com os 4 dígitos menos significativos do ATN (Authentication Tracking Number). Para mais detalhes consulte o documento da Visa 3-D Secure Functional Requirements Access Control Server v. 1.0.2.
serviceCodeService Code. Tamanho de 3 dígitos.
Para a geração de iCVV (Alternate Card Verification Value), o Service Code deve ser 999.
Para a geração de CVV 2, o Service Code deve ser 000.
Para a geração de CVV tradicional, o Service Code normalmente é 101.
paramsReservado para uso futuro (deve ser 0).
Retorna
Tamanho de 3 dígitos.
O valor gerado pode também ser um CVV2 ou iCVV, conforme os valores informados de Service Code.
Exceções
TacException
Anotações
A API também é compatível com o padrão da bandeira American Express.

◆ verifyCVV()

boolean verifyCVV ( String keyId,
String pan,
String expirationDate,
String serviceCode,
String cvv,
int params ) throws TacException

Verifica um CVV (Card Verification Value), , CVV2 ou iCVV utilizando uma chave dentro do HSM.

A API também pode ser usada para a verificação dos códigos de verificação de cartão que suportam o protocolo 3-D Secure. Veja mais detalhes na API generateCVV().

Parâmetros
keyIdNome da chave. Esta chave é a CVK (Card Verification Key), uma chave 3DES de 112 bits, e deve ser a mesma que foi usada na geração do CVV.
panPAN (Primary Account Number). Tamanho de de 12 a 19 caracteres.
Veja mais detalhes sobre este campo na API generateCVV().
expirationDateData de expiração. Tamanho de 4 dígitos.
Na verificação de CVV e iCVV o formato deve ser YYMM.
Na verificação de CVV 2 o formato deve ser MMYY.
Para informações sobre o suporte aos algoritmos do protocolo 3-D Secure veja mais detalhes sobre este campo na API generateCVV().
serviceCodeService Code. Tamanho de 3 dígitos.
Para a verificação de iCVV (Alternate Card Verification Value), o Service Code deve ser 999.
Para a verificação de CVV 2, o Service Code deve ser 000.
cvvCVV a ser validado. Tamanho de 3 dígitos.
O valor informado pode também ser um CVV2 ou iCVV, conforme os valores informados de Service Code.
paramsReservado para uso futuro (deve ser 0).
Retorna
Retorna true se o CVV for válido, ou false se não for válido.
Exceções
TacException

◆ verifyPINBlock()

boolean verifyPINBlock ( String ptk,
String pgk,
String pan,
String offset,
byte[] pinBlock,
int param ) throws TacException

Verifica a validade de um PIN em um PIN Block.

Parâmetros
ptkIdentificador da chave de decriptação do “PIN Block” dentro do HSM. É a PIN Transport Key.
pgkIdentificador da chave a ser utilizada na verificação do PIN dentro do HSM. É a PIN Generation Key.
panPAN (Primary Account Number). Tamanho de 12 a 19 caracteres.
offsetOffset do PIN. Deve ter tamanho entre TacNDJavaLib.MIN_EFT_PIN_LEN e TacNDJavaLib.MAX_EFT_PIN_LEN.
pinBlockPIN Block a ser validado. O formato de PIN Block esperado é ISO PIN Block Format 0 (equivalente ao ANSI PIN Block Format 0 e ao VISA PIN Block Format 1). O buffer deve ter o tamanho de um PIN Block, TacNDJavaLib.DES_BLOCK (8 bytes).
paramReservado para uso futuro (deve ser 0).
Retorna
Retorna true se o PIN for válido, ou false se não for válido.
Exceções
TacException