@Test public void testDecryptPINImplThrowsSMException() throws Throwable { BaseSMAdapter baseSMAdapter = new BaseSMAdapter(); try { baseSMAdapter.decryptPINImpl(new EncryptedPIN()); fail("Expected SMException to be thrown"); } catch (SMException ex) { assertEquals("Operation not supported in: org.jpos.security.BaseSMAdapter", ex.getMessage(), "ex.getMessage()"); assertNull(ex.nested, "ex.nested"); assertNull(ex.getNested(), "ex.getNested()"); } }
protected String decryptPINImpl (EncryptedPIN pinUnderLmk) throws SMException { throw new SMException("Operation not supported in: " + this.getClass().getName()); }
BaseSMAdapter implements SMAdapter<T>, Configurable, LogSource { protected String decryptPINImpl (EncryptedPIN pinUnderLmk) throws SMException { throw new SMException("Operation not supported in: " + this.getClass().getName()); } }
BaseSMAdapter implements SMAdapter<T>, Configurable, LogSource { protected String decryptPINImpl (EncryptedPIN pinUnderLmk) throws SMException { throw new SMException("Operation not supported in: " + this.getClass().getName()); } BaseSMAdapter();  BaseSMAdapter(Configuration cfg, Logger logger, String realm); }
BaseSMAdapter implements SMAdapter<T>, Configurable, LogSource { protected String decryptPINImpl (EncryptedPIN pinUnderLmk) throws SMException { throw new SMException("Operation not supported in: " + this.getClass().getName()); } BaseSMAdapter();  BaseSMAdapter(Configuration cfg, Logger logger, String realm); @Override void setConfiguration(Configuration cfg); @Override void setLogger(Logger logger, String realm); @Override Logger getLogger(); @Override String getRealm(); void setName(String name); String getName(); static SMAdapter getSMAdapter(String name); @Override SecureDESKey generateKey(short keyLength, String keyType); @Override SecureKey generateKey(SecureKeySpec keySpec); @Override byte[] generateKeyCheckValue(T kd); @Override SecureDESKey translateKeyScheme(SecureDESKey key, KeyScheme destKeyScheme); @Override SecureDESKey importKey(short keyLength, String keyType, byte[] encryptedKey,
            SecureDESKey kek, boolean checkParity); @Override SecureKey importKey(SecureKey kek, SecureKey key, SecureKeySpec keySpec
            , boolean checkParity); @Override byte[] exportKey(SecureDESKey key, SecureDESKey kek); @Override SecureKey exportKey(SecureKey kek, SecureKey key, SecureKeySpec keySpec); @Override EncryptedPIN encryptPIN(String pin, String accountNumber, boolean extract); @Override EncryptedPIN encryptPIN(String pin, String accountNumber); @Override String decryptPIN(EncryptedPIN pinUnderLmk); @Override EncryptedPIN importPIN(EncryptedPIN pinUnderKd1, T kd1); @Override EncryptedPIN translatePIN(EncryptedPIN pinUnderKd1, T kd1,
            T kd2, byte destinationPINBlockFormat); @Override EncryptedPIN importPIN(EncryptedPIN pinUnderDuk, KeySerialNumber ksn,
            T bdk); @Override EncryptedPIN importPIN(EncryptedPIN pinUnderDuk, KeySerialNumber ksn,
            T bdk, boolean tdes); @Override EncryptedPIN translatePIN(EncryptedPIN pinUnderDuk, KeySerialNumber ksn,
            T bdk, T kd2, byte destinationPINBlockFormat); @Override EncryptedPIN translatePIN(EncryptedPIN pinUnderDuk, KeySerialNumber ksn,
            T bdk, T kd2, byte destinationPINBlockFormat, boolean tdes); @Override EncryptedPIN exportPIN(EncryptedPIN pinUnderLmk, T kd2, byte destinationPINBlockFormat); @Override EncryptedPIN generatePIN(String accountNumber, int pinLen); @Override EncryptedPIN generatePIN(String accountNumber, int pinLen, List<String> excludes); @Override void printPIN(String accountNo, EncryptedPIN pinUnderKd1, T kd1
                         ,String template, Map<String, String> fields); @Override String calculatePVV(EncryptedPIN pinUnderLMK, T pvkA,
                               T pvkB, int pvkIdx); @Override String calculatePVV(EncryptedPIN pinUnderLMK, T pvkA,
                               T pvkB, int pvkIdx, List<String> excludes); @Override String calculatePVV(EncryptedPIN pinUnderKd1, T kd1,
                               T pvkA, T pvkB, int pvkIdx); @Override String calculatePVV(EncryptedPIN pinUnderKd1, T kd1,
                               T pvkA, T pvkB, int pvkIdx,
                               List<String> excludes); @Override boolean verifyPVV(EncryptedPIN pinUnderKd1, T kd1, T pvkA,
                          T pvkB, int pvki, String pvv); @Override String calculateIBMPINOffset(EncryptedPIN pinUnderLmk, T pvk,
                           String decTab, String pinValData, int minPinLen); @Override String calculateIBMPINOffset(EncryptedPIN pinUnderLmk, T pvk,
                           String decTab, String pinValData, int minPinLen,
                           List<String> excludes); @Override String calculateIBMPINOffset(EncryptedPIN pinUnderKd1, T kd1,
                           T pvk, String decTab, String pinValData, int minPinLen); @Override String calculateIBMPINOffset(EncryptedPIN pinUnderKd1, T kd1,
                           T pvk, String decTab, String pinValData, int minPinLen,
                           List<String> excludes); @Override boolean verifyIBMPINOffset(EncryptedPIN pinUnderKd1, T kd1, T pvk,
                                      String offset, String decTab, String pinValData,
                                      int minPinLen); @Override EncryptedPIN deriveIBMPIN(String accountNo, T pvk,
                                     String decTab, String pinValData,
                                     int minPinLen, String offset); @Override String calculateCVV(String accountNo, T cvkA, T cvkB,
                               Date expDate, String serviceCode); @Override String calculateCVD(String accountNo, T cvkA, T cvkB,
                               String expDate, String serviceCode); @Override String calculateCAVV(String accountNo, T cvk, String upn,
                                String authrc, String sfarc); @Override boolean verifyCVV(String accountNo , T cvkA, T cvkB,
                            String cvv, Date expDate, String serviceCode); @Override boolean verifyCVD(String accountNo, T cvkA, T cvkB,
                            String cvv, String expDate, String serviceCode); @Override boolean verifyCAVV(String accountNo, T cvk, String cavv,
                              String upn, String authrc, String sfarc); @Override boolean verifydCVV(String accountNo, T imkac, String dcvv,
                     Date expDate, String serviceCode, byte[] atc, MKDMethod mkdm); @Override boolean verifydCVV(String accountNo, T imkac, String dcvv,
                     String expDate, String serviceCode, byte[] atc, MKDMethod mkdm); @Override boolean verifyCVC3(T imkcvc3, String accountNo, String acctSeqNo,
                     byte[] atc, byte[] upn, byte[] data, MKDMethod mkdm, String cvc3); @Override boolean verifyARQC(MKDMethod mkdm, SKDMethod skdm, T imkac
            ,String accoutNo, String acctSeqNo, byte[] arqc, byte[] atc
            ,byte[] upn, byte[] txnData); @Override byte[] generateARPC(MKDMethod mkdm, SKDMethod skdm, T imkac
            ,String accoutNo, String acctSeqNo, byte[] arqc, byte[] atc, byte[] upn
            ,ARPCMethod arpcMethod, byte[] arc, byte[] propAuthData); @Override byte[] verifyARQCGenerateARPC(MKDMethod mkdm, SKDMethod skdm, T imkac
            ,String accoutNo, String acctSeqNo, byte[] arqc, byte[] atc, byte[] upn
            ,byte[] txnData, ARPCMethod arpcMethod, byte[] arc, byte[] propAuthData); @Override byte[] generateSM_MAC(MKDMethod mkdm, SKDMethod skdm
            ,T imksmi, String accountNo, String acctSeqNo
            ,byte[] atc, byte[] arqc, byte[] data); @Override Pair<EncryptedPIN,byte[]> translatePINGenerateSM_MAC(MKDMethod mkdm
           ,SKDMethod skdm, PaddingMethod padm, T imksmi
           ,String accountNo, String acctSeqNo, byte[] atc, byte[] arqc
           ,byte[] data, EncryptedPIN currentPIN, EncryptedPIN newPIN
           ,T kd1, T imksmc, T imkac
           ,byte destinationPINBlockFormat); @Override byte[] encryptData(CipherMode cipherMode, SecureDESKey kd
            ,byte[] data, byte[] iv); @Override byte[] decryptData(CipherMode cipherMode, SecureDESKey kd
            ,byte[] data, byte[] iv); @Override byte[] generateCBC_MAC(byte[] data, T kd); @Override byte[] generateEDE_MAC(byte[] data, T kd); @Override SecureDESKey translateKeyFromOldLMK(SecureDESKey kd); @Override SecureKey translateKeyFromOldLMK(SecureKey key, SecureKeySpec keySpec); @Override Pair<PublicKey, SecurePrivateKey> generateKeyPair(AlgorithmParameterSpec spec); @Override Pair<PublicKey, SecureKey> generateKeyPair(SecureKeySpec keySpec); @Override byte[] calculateSignature(MessageDigest hash, SecureKey privateKey
            ,byte[] data); @Override byte[] encryptData(SecureKey encKey, byte[] data
            , AlgorithmParameterSpec algspec, byte[] iv); @Override byte[] decryptData(SecureKey privKey, byte[] data
            , AlgorithmParameterSpec algspec, byte[] iv); @Override void eraseOldLMK(); @Override byte[] dataEncrypt(T bdk, byte[] clearText); @Override byte[] dataDecrypt(T bdk, byte[] clearText); @Override SecureDESKey formKEYfromClearComponents(short keyLength, String keyType, String... clearComponents); }
BaseSMAdapter implements SMAdapter<T>, Configurable, LogSource { protected String decryptPINImpl (EncryptedPIN pinUnderLmk) throws SMException { throw new SMException("Operation not supported in: " + this.getClass().getName()); } BaseSMAdapter();  BaseSMAdapter(Configuration cfg, Logger logger, String realm); @Override void setConfiguration(Configuration cfg); @Override void setLogger(Logger logger, String realm); @Override Logger getLogger(); @Override String getRealm(); void setName(String name); String getName(); static SMAdapter getSMAdapter(String name); @Override SecureDESKey generateKey(short keyLength, String keyType); @Override SecureKey generateKey(SecureKeySpec keySpec); @Override byte[] generateKeyCheckValue(T kd); @Override SecureDESKey translateKeyScheme(SecureDESKey key, KeyScheme destKeyScheme); @Override SecureDESKey importKey(short keyLength, String keyType, byte[] encryptedKey,
            SecureDESKey kek, boolean checkParity); @Override SecureKey importKey(SecureKey kek, SecureKey key, SecureKeySpec keySpec
            , boolean checkParity); @Override byte[] exportKey(SecureDESKey key, SecureDESKey kek); @Override SecureKey exportKey(SecureKey kek, SecureKey key, SecureKeySpec keySpec); @Override EncryptedPIN encryptPIN(String pin, String accountNumber, boolean extract); @Override EncryptedPIN encryptPIN(String pin, String accountNumber); @Override String decryptPIN(EncryptedPIN pinUnderLmk); @Override EncryptedPIN importPIN(EncryptedPIN pinUnderKd1, T kd1); @Override EncryptedPIN translatePIN(EncryptedPIN pinUnderKd1, T kd1,
            T kd2, byte destinationPINBlockFormat); @Override EncryptedPIN importPIN(EncryptedPIN pinUnderDuk, KeySerialNumber ksn,
            T bdk); @Override EncryptedPIN importPIN(EncryptedPIN pinUnderDuk, KeySerialNumber ksn,
            T bdk, boolean tdes); @Override EncryptedPIN translatePIN(EncryptedPIN pinUnderDuk, KeySerialNumber ksn,
            T bdk, T kd2, byte destinationPINBlockFormat); @Override EncryptedPIN translatePIN(EncryptedPIN pinUnderDuk, KeySerialNumber ksn,
            T bdk, T kd2, byte destinationPINBlockFormat, boolean tdes); @Override EncryptedPIN exportPIN(EncryptedPIN pinUnderLmk, T kd2, byte destinationPINBlockFormat); @Override EncryptedPIN generatePIN(String accountNumber, int pinLen); @Override EncryptedPIN generatePIN(String accountNumber, int pinLen, List<String> excludes); @Override void printPIN(String accountNo, EncryptedPIN pinUnderKd1, T kd1
                         ,String template, Map<String, String> fields); @Override String calculatePVV(EncryptedPIN pinUnderLMK, T pvkA,
                               T pvkB, int pvkIdx); @Override String calculatePVV(EncryptedPIN pinUnderLMK, T pvkA,
                               T pvkB, int pvkIdx, List<String> excludes); @Override String calculatePVV(EncryptedPIN pinUnderKd1, T kd1,
                               T pvkA, T pvkB, int pvkIdx); @Override String calculatePVV(EncryptedPIN pinUnderKd1, T kd1,
                               T pvkA, T pvkB, int pvkIdx,
                               List<String> excludes); @Override boolean verifyPVV(EncryptedPIN pinUnderKd1, T kd1, T pvkA,
                          T pvkB, int pvki, String pvv); @Override String calculateIBMPINOffset(EncryptedPIN pinUnderLmk, T pvk,
                           String decTab, String pinValData, int minPinLen); @Override String calculateIBMPINOffset(EncryptedPIN pinUnderLmk, T pvk,
                           String decTab, String pinValData, int minPinLen,
                           List<String> excludes); @Override String calculateIBMPINOffset(EncryptedPIN pinUnderKd1, T kd1,
                           T pvk, String decTab, String pinValData, int minPinLen); @Override String calculateIBMPINOffset(EncryptedPIN pinUnderKd1, T kd1,
                           T pvk, String decTab, String pinValData, int minPinLen,
                           List<String> excludes); @Override boolean verifyIBMPINOffset(EncryptedPIN pinUnderKd1, T kd1, T pvk,
                                      String offset, String decTab, String pinValData,
                                      int minPinLen); @Override EncryptedPIN deriveIBMPIN(String accountNo, T pvk,
                                     String decTab, String pinValData,
                                     int minPinLen, String offset); @Override String calculateCVV(String accountNo, T cvkA, T cvkB,
                               Date expDate, String serviceCode); @Override String calculateCVD(String accountNo, T cvkA, T cvkB,
                               String expDate, String serviceCode); @Override String calculateCAVV(String accountNo, T cvk, String upn,
                                String authrc, String sfarc); @Override boolean verifyCVV(String accountNo , T cvkA, T cvkB,
                            String cvv, Date expDate, String serviceCode); @Override boolean verifyCVD(String accountNo, T cvkA, T cvkB,
                            String cvv, String expDate, String serviceCode); @Override boolean verifyCAVV(String accountNo, T cvk, String cavv,
                              String upn, String authrc, String sfarc); @Override boolean verifydCVV(String accountNo, T imkac, String dcvv,
                     Date expDate, String serviceCode, byte[] atc, MKDMethod mkdm); @Override boolean verifydCVV(String accountNo, T imkac, String dcvv,
                     String expDate, String serviceCode, byte[] atc, MKDMethod mkdm); @Override boolean verifyCVC3(T imkcvc3, String accountNo, String acctSeqNo,
                     byte[] atc, byte[] upn, byte[] data, MKDMethod mkdm, String cvc3); @Override boolean verifyARQC(MKDMethod mkdm, SKDMethod skdm, T imkac
            ,String accoutNo, String acctSeqNo, byte[] arqc, byte[] atc
            ,byte[] upn, byte[] txnData); @Override byte[] generateARPC(MKDMethod mkdm, SKDMethod skdm, T imkac
            ,String accoutNo, String acctSeqNo, byte[] arqc, byte[] atc, byte[] upn
            ,ARPCMethod arpcMethod, byte[] arc, byte[] propAuthData); @Override byte[] verifyARQCGenerateARPC(MKDMethod mkdm, SKDMethod skdm, T imkac
            ,String accoutNo, String acctSeqNo, byte[] arqc, byte[] atc, byte[] upn
            ,byte[] txnData, ARPCMethod arpcMethod, byte[] arc, byte[] propAuthData); @Override byte[] generateSM_MAC(MKDMethod mkdm, SKDMethod skdm
            ,T imksmi, String accountNo, String acctSeqNo
            ,byte[] atc, byte[] arqc, byte[] data); @Override Pair<EncryptedPIN,byte[]> translatePINGenerateSM_MAC(MKDMethod mkdm
           ,SKDMethod skdm, PaddingMethod padm, T imksmi
           ,String accountNo, String acctSeqNo, byte[] atc, byte[] arqc
           ,byte[] data, EncryptedPIN currentPIN, EncryptedPIN newPIN
           ,T kd1, T imksmc, T imkac
           ,byte destinationPINBlockFormat); @Override byte[] encryptData(CipherMode cipherMode, SecureDESKey kd
            ,byte[] data, byte[] iv); @Override byte[] decryptData(CipherMode cipherMode, SecureDESKey kd
            ,byte[] data, byte[] iv); @Override byte[] generateCBC_MAC(byte[] data, T kd); @Override byte[] generateEDE_MAC(byte[] data, T kd); @Override SecureDESKey translateKeyFromOldLMK(SecureDESKey kd); @Override SecureKey translateKeyFromOldLMK(SecureKey key, SecureKeySpec keySpec); @Override Pair<PublicKey, SecurePrivateKey> generateKeyPair(AlgorithmParameterSpec spec); @Override Pair<PublicKey, SecureKey> generateKeyPair(SecureKeySpec keySpec); @Override byte[] calculateSignature(MessageDigest hash, SecureKey privateKey
            ,byte[] data); @Override byte[] encryptData(SecureKey encKey, byte[] data
            , AlgorithmParameterSpec algspec, byte[] iv); @Override byte[] decryptData(SecureKey privKey, byte[] data
            , AlgorithmParameterSpec algspec, byte[] iv); @Override void eraseOldLMK(); @Override byte[] dataEncrypt(T bdk, byte[] clearText); @Override byte[] dataDecrypt(T bdk, byte[] clearText); @Override SecureDESKey formKEYfromClearComponents(short keyLength, String keyType, String... clearComponents);  }