code: public final int getOutputSize(int inputLen) {
  
          if (!initialized && !(this instanceof NullCipher)) {
              throw new IllegalStateException("Cipher not initialized");
          }
          if (inputLen < 0) {
              throw new IllegalArgumentException("Input size must be equal " +
                                                 "to or greater than zero");
          }
          updateProviderIfNeeded();
          return spi.engineGetOutputSize(inputLen);
      }
docs: Returns the length in bytes that an output buffer would need to be in
  order to hold the result of the next <code>update</code> or
  <code>doFinal</code> operation, given the input length
  <code>inputLen</code> (in bytes).
  
  <p>This call takes into account any unprocessed (buffered) data from a
  previous <code>update</code> call, padding, and AEAD tagging.
  
  <p>The actual output length of the next <code>update</code> or
  <code>doFinal</code> call may be smaller than the length returned by
  this method.
  
  @param inputLen the input length (in bytes)
  
  @return the required output buffer size (in bytes)
  
  @exception IllegalStateException if this cipher is in a wrong state
  (e.g., has not yet been initialized)