docs: public InputStream decrypt(InputStream source, String password) throws IOException {
  
          // Remove the initialisation vector from the start of the stream.
          // NB if the stream is empty, the read will return -1 and no harm will
          // be done.
          byte[] salt = new byte[Generate.SALT_BYTES];
  
          // THe key generation salt can be stored unencrypted at the start of the stream:
          source.read(salt);
  
          // Generate the key:
          SecretKey key = Keys.generateSecretKey(password, ByteArray.toBase64(salt));
  
          // Return the initialised stream:
          return decrypt(source, key);
      }