Challenge flow 3ds Secure 2 cRes decode

35 views Asked by At

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");
0

There are 0 answers