use of org.jpos.util.Loggeable in project jPOS by jpos.
the class BaseSMAdapter method verifydCVV.
@Override
public boolean verifydCVV(String accountNo, T imkac, String dcvv, Date expDate, String serviceCode, byte[] atc, MKDMethod mkdm) throws SMException {
List<Loggeable> cmdParameters = new ArrayList<>();
cmdParameters.add(new SimpleMsg("parameter", "account number", accountNo));
cmdParameters.add(new SimpleMsg("parameter", "imk-ac", imkac == null ? "" : imkac));
cmdParameters.add(new SimpleMsg("parameter", "dCVV", dcvv));
cmdParameters.add(new SimpleMsg("parameter", "Exp date", expDate));
cmdParameters.add(new SimpleMsg("parameter", "Service code", serviceCode));
cmdParameters.add(new SimpleMsg("parameter", "atc", atc == null ? "" : ISOUtil.hexString(atc)));
cmdParameters.add(new SimpleMsg("parameter", "mkd method", mkdm));
LogEvent evt = new LogEvent(this, "s-m-operation");
evt.addMessage(new SimpleMsg("command", "Verify dCVV", cmdParameters));
try {
boolean r = verifydCVVImpl(accountNo, imkac, dcvv, expDate, serviceCode, atc, mkdm);
evt.addMessage(new SimpleMsg("result", "Verification status", r ? "valid" : "invalid"));
return r;
} catch (Exception e) {
evt.addMessage(e);
throw e instanceof SMException ? (SMException) e : new SMException(e);
} finally {
Logger.log(evt);
}
}
use of org.jpos.util.Loggeable in project jPOS by jpos.
the class BaseSMAdapter method calculateCVV.
@Override
public String calculateCVV(String accountNo, T cvkA, T cvkB, Date expDate, String serviceCode) throws SMException {
List<Loggeable> cmdParameters = new ArrayList<>();
cmdParameters.add(new SimpleMsg("parameter", "account number", accountNo));
cmdParameters.add(new SimpleMsg("parameter", "cvk-a", cvkA == null ? "" : cvkA));
cmdParameters.add(new SimpleMsg("parameter", "cvk-b", cvkB == null ? "" : cvkB));
cmdParameters.add(new SimpleMsg("parameter", "Exp date", expDate));
cmdParameters.add(new SimpleMsg("parameter", "Service code", serviceCode));
LogEvent evt = new LogEvent(this, "s-m-operation");
evt.addMessage(new SimpleMsg("command", "Calculate CVV/CVC", cmdParameters));
String result = null;
try {
result = calculateCVVImpl(accountNo, cvkA, cvkB, expDate, serviceCode);
evt.addMessage(new SimpleMsg("result", "Calculated CVV/CVC", result));
} catch (Exception e) {
evt.addMessage(e);
throw e instanceof SMException ? (SMException) e : new SMException(e);
} finally {
Logger.log(evt);
}
return result;
}
use of org.jpos.util.Loggeable in project jPOS by jpos.
the class BaseSMAdapter method encryptPIN.
@Override
public EncryptedPIN encryptPIN(String pin, String accountNumber, boolean extract) throws SMException {
accountNumber = extract ? EncryptedPIN.extractAccountNumberPart(accountNumber) : accountNumber;
List<Loggeable> cmdParameters = new ArrayList<>();
cmdParameters.add(new SimpleMsg("parameter", "clear pin", pin));
cmdParameters.add(new SimpleMsg("parameter", "account number", accountNumber));
LogEvent evt = new LogEvent(this, "s-m-operation");
evt.addMessage(new SimpleMsg("command", "Encrypt Clear PIN", cmdParameters));
EncryptedPIN result = null;
try {
result = encryptPINImpl(pin, accountNumber);
evt.addMessage(new SimpleMsg("result", "PIN under LMK", result));
} catch (Exception e) {
evt.addMessage(e);
throw e instanceof SMException ? (SMException) e : new SMException(e);
} finally {
Logger.log(evt);
}
return result;
}
use of org.jpos.util.Loggeable in project jPOS by jpos.
the class BaseSMAdapter method verifyCVD.
@Override
public boolean verifyCVD(String accountNo, T cvkA, T cvkB, String cvv, String expDate, String serviceCode) throws SMException {
List<Loggeable> cmdParameters = new ArrayList<>();
cmdParameters.add(new SimpleMsg("parameter", "account number", accountNo));
cmdParameters.add(new SimpleMsg("parameter", "cvk-a", cvkA == null ? "" : cvkA));
cmdParameters.add(new SimpleMsg("parameter", "cvk-b", cvkB == null ? "" : cvkB));
cmdParameters.add(new SimpleMsg("parameter", "CVV/CVC", cvv));
cmdParameters.add(new SimpleMsg("parameter", "Exp date", expDate));
cmdParameters.add(new SimpleMsg("parameter", "Service code", serviceCode));
LogEvent evt = new LogEvent(this, "s-m-operation");
evt.addMessage(new SimpleMsg("command", "Verify CVV/CVC", cmdParameters));
try {
boolean r = verifyCVVImpl(accountNo, cvkA, cvkB, cvv, expDate, serviceCode);
evt.addMessage(new SimpleMsg("result", "Verification status", r ? "valid" : "invalid"));
return r;
} catch (Exception e) {
evt.addMessage(e);
throw e instanceof SMException ? (SMException) e : new SMException(e);
} finally {
Logger.log(evt);
}
}
use of org.jpos.util.Loggeable in project jPOS by jpos.
the class BaseSMAdapter method decryptData.
/**
* Decrypt Data Block.
*
* @param cipherMode block cipher mode
* @param kd DEK or ZEK key used to decrypt data
* @param data data to be decrypted
* @param iv initial vector
* @return decrypted data
* @throws SMException
*/
@Override
public byte[] decryptData(CipherMode cipherMode, SecureDESKey kd, byte[] data, byte[] iv) throws SMException {
List<Loggeable> cmdParameters = new ArrayList<>();
cmdParameters.add(new SimpleMsg("parameter", "Block Cipher Mode", cipherMode));
if (kd != null)
cmdParameters.add(new SimpleMsg("parameter", "Data key", kd));
if (data != null)
cmdParameters.add(new SimpleMsg("parameter", "Data", ISOUtil.hexString(data)));
if (iv != null)
cmdParameters.add(new SimpleMsg("parameter", "Initialization Vector", ISOUtil.hexString(iv)));
LogEvent evt = new LogEvent(this, "s-m-operation");
evt.addMessage(new SimpleMsg("command", "Decrypt Data", cmdParameters));
byte[] decData = null;
try {
decData = decryptDataImpl(cipherMode, kd, data, iv);
List<Loggeable> r = new ArrayList<>();
r.add(new SimpleMsg("result", "Decrypted Data", decData));
if (iv != null)
r.add(new SimpleMsg("result", "Initialization Vector", iv));
evt.addMessage(new SimpleMsg("results", r));
} catch (Exception e) {
evt.addMessage(e);
throw e instanceof SMException ? (SMException) e : new SMException(e);
} finally {
Logger.log(evt);
}
return decData;
}
Aggregations