private void checkRequestHash() throws Exception { RequestHash requestHashFromResponse = response.getSoap().getHeader().getRequestHash(); if (requestHashFromResponse != null) { byte[] requestHash = calculateDigest( getAlgorithmId(requestHashFromResponse.getAlgorithmId()), requestSoap.getBytes()); if (log.isTraceEnabled()) { log.trace( "Calculated request message hash: {}\n" + "Request message (base64): {}", encodeBase64(requestHash), encodeBase64(requestSoap.getBytes())); } if (!Arrays.areEqual(requestHash, decodeBase64(requestHashFromResponse.getHash()))) { throw new CodedException( X_INCONSISTENT_RESPONSE, "Request message hash does not match request message"); } } else { throw new CodedException( X_INCONSISTENT_RESPONSE, "Response from server proxy is missing request message " + "hash"); } }