code: void validate(ServerResponse serverResponse) throws GeneralSecurityException {
      byte[] response = validateChallenge(authNonce, serverResponse.response);
  
      byte[] expected = rawResponse(challenge);
      Preconditions.checkArgument(Arrays.equals(expected, response));
  
      byte[] nonce = decrypt(serverResponse.nonce);
      byte[] inputIv = decrypt(serverResponse.inputIv);
      byte[] outputIv = decrypt(serverResponse.outputIv);
  
      SecretKeySpec sessionKey = generateKey(conf.keyFactoryAlgorithm(), conf.keyFactoryIterations(),
        nonce, conf.encryptionKeyLength());
      this.sessionCipher = new TransportCipher(cryptoConf, conf.cipherTransformation(), sessionKey,
        inputIv, outputIv);
    }
docs: Validates the server response and initializes the cipher to use for the session.
  
  @param serverResponse The response from the server.