@Override
		public <T> T getStateValue(CryptoProvider cryptoProvider,
				Supplier<T> stateFactory) {
			Object val = sessionStateValues.get(cryptoProvider);
			if (val == null) {
				T newVal = stateFactory.get();
				sessionStateValues.put(cryptoProvider, newVal);
				return newVal;
			}
			return (T) val;
		}
Creates a new {@link CryptoSession}.
<p>
TODO: to truly be effective when multiple files
are being opened (ie. batch import), nested sessions
need to be implemented.

@return new {@link CryptoSession} instance
Ghidra/Features/Base/src/main/java/ghidra/formats/gfilesystem/crypto/CryptoProviders.java