I'm unable to find a way to decode information coming from cRes response in challenge flow. Here is the sample response.
INFOR.2024-03-21 17:25:19.2:transaction.id: 624D7E2176F240F4920CEF25E0C1A9A9
INFOR.2024-03-21 17:25:19.2:delegate: THREEDS
INFOR.2024-03-21 17:25:19.2:result: SUCCESS
INFOR.2024-03-21 17:25:19.2:encryptedData.tag: FGfGKf1UCOwCQpcXBDuXPA==
INFOR.2024-03-21 17:25:19.2:encryptedData.nonce: ex4Pv1/jOnmAAAfH
INFOR.2024-03-21 17:25:19.2:response.gatewayRecommendation: PROCEED
INFOR.2024-03-21 17:25:19.2:order.id: NRO-10012255-V0000000000014614
INFOR.2024-03-21 17:25:19.2:encryptedData.ciphertext: nh+CvvVACANyE1rzA2B4iRlE4a5yHNpNIiusd0xMClk5Ug89l3PYueX2GVLXb1la16V0tIItqE4Q4+hvu3koNkZpmDC9qjV0JTL5DXCsS6nliQMhcF+DKS1giZlFhsKRBAsLsCCXLHnp+66HjTzgjhqxQxcJ7GkggLVW7v8adl1X+2kVNOQ6U90EHsDMZFTCSw+z0eh2dScwd/WStO32yH/76JPFYQEdHz1Y9YlxmBh3Q4O5awRRmYiUZKFQE5f0u8Y0PjuVkJkdjB5XmYjGN3PGo9hvb6b6XdPQM5ey+kcH2Ug+XaNaJGVGEuanUfz0yTpOrEISTIn65zEGNa6lggLwb8b7d6Wl8IE5vLsjBy8e31W46Yy/bnxpeinwrrwInOGlk0ra5qcPpQoNmHkIsbDnHuoCxG1nQPDecavuhNEfufKDpj86boaJxrxVkMldFTROnQOc96zpyawn5ZFDj6Akl93YvXeBgYol+IXmxYnPfP2JCbwkHXbqmTApwWacwg6md1s3PxGoBo2o0ZxIrrjWqeQJHV6sMtlbg2ZfjpfxuSHVWi1LfvvDmNGnShtFzjx8h5oM7QYXLGRFN3Wr/m+N6eWue6ZewmJtdNN0Mb9Iju2Qf0zRuEmANfpZnJmtdC53hXAdf4b5Ez/ZjEL6MkHT
I tried to first decompressed and decode using base64. Not working.
String base64EncodedString = "nh-CvvVACANyE1rzA2B4iRlE4a5yHNpNIiusd0xMClk5Ug89l3PYueX2GVLXb1la16V0tIItqE4Q4-hvu3koNkZpmDC9qjV0JTL5DXCsS6nliQMhcF-DKS1giZlFhsKRBAsLsCCXLHnp-66HjTzgjhqxQxcJ7GkggLVW7v8adl1X-2kVNOQ6U90EHsDMZFTCSw-z0eh2dScwd_WStO32yH_76JPFYQEdHz1Y9YlxmBh3Q4O5awRRmYiUZKFQE5f0u8Y0PjuVkJkdjB5XmYjGN3PGo9hvb6b6XdPQM5ey-kcH2Ug-XaNaJGVGEuanUfz0yTpOrEISTIn65zEGNa6lggLwb8b7d6Wl8IE5vLsjBy8e31W46Yy_bnxpeinwrrwInOGlk0ra5qcPpQoNmHkIsbDnHuoCxG1nQPDecavuhNEfufKDpj86boaJxrxVkMldFTROnQOc96zpyawn5ZFDj6Akl93YvXeBgYol-IXmxYnPfP2JCbwkHXbqmTApwWacwg6md1s3PxGoBo2o0ZxIrrjWqeQJHV6sMtlbg2ZfjpfxuSHVWi1LfvvDmNGnShtFzjx8h5oM7QYXLGRFN3Wr_m-N6eWue6ZewmJtdNN0Mb9Iju2Qf0zRuEmANfpZnJmtdC53hXAdf4b5Ez_ZjEL6MkHT";
// Decode Base64 URL
byte[] decodedBytes = Base64.getUrlDecoder().decode(base64EncodedString);
// Check if data is compressed
if (true) {
// Decompress data
Inflater inflater = new Inflater();
inflater.setInput(decodedBytes);
byte[] buffer = new byte[1024];
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
while (!inflater.finished()) {
int count = inflater.inflate(buffer);
outputStream.write(buffer, 0, count);
}
inflater.end();
decodedBytes = outputStream.toByteArray();
}
// Convert decoded bytes to string
String decryptedData = new String(decodedBytes, "UTF-8");