docs: private void checkValidityOptions(ProxyInfoParams params,
      X509Certificate[] proxyChain) {
  
      if (params.containsOption(PrintOption.PROXY_STRENGTH_VALIDITY)
        && !params.containsOption(PrintOption.ALL_OPTIONS)) {
        if (!getKeySize(proxyChain[0]).equals(params.getKeyLength()))
          throw new VOMSError("Proxy key size is not valid");
      }
  
      if (params.containsOption(PrintOption.PROXY_EXISTS)) {
        try {
          try {
            proxyChain[0].checkValidity();
          } catch (CertificateNotYetValidException e) {
            throw new VOMSError("Proxy not found: " + e.getMessage(), e);
          }
        } catch (CertificateExpiredException e) {
          throw new VOMSError(
            "The current proxy is not valid: " + e.getMessage(), e);
        }
      }
  
      if (params.containsOption(PrintOption.PROXY_TIME_VALIDITY)) {
        int period = 0;
        try {
          period = TimeUtils
            .parseLifetimeInHoursAndMinutes(params.getValidTime());
        } catch (ParseException e) {
          throw new VOMSError("Wrong validity format, required 'hh:mm': "
            + e.getMessage(), e);
        }
  
        if (!checkTimeValidity(
          TimeUtils.getTimeLeft(proxyChain[0].getNotAfter()), period))
          throw new VOMSError("Proxy not valid for the specified period");
      }
  
      if (params.containsOption(PrintOption.PROXY_HOURS_VALIDITY)) {
        int period = 0;
        try {
          period = TimeUtils.parseLifetimeInHours(params.getValidHours());
        } catch (ParseException e) {
          throw new VOMSError("Wrong validity format, required 'hh': "
            + e.getMessage(), e);
        }
  
        if (!checkTimeValidity(
          TimeUtils.getTimeLeft(proxyChain[0].getNotAfter()), period))
          throw new VOMSError("Proxy not valid for the specified period");
      }
  
    }