private CartV1Decryptor createDecryptor(byte[] proposedArc4Key)
			throws IOException, CartInvalidCartException, CartInvalidARC4KeyException,
			CartConfigurationException, CancelledException {

		// Pad/truncate to the proper length if necessary
		if (proposedArc4Key.length != CartV1Constants.ARC4_KEY_LENGTH) {
			proposedArc4Key = Arrays.copyOf(proposedArc4Key, CartV1Constants.ARC4_KEY_LENGTH);
		}

		if (testKey(proposedArc4Key)) {
			decryptor = new CartV1Decryptor(proposedArc4Key);
			return decryptor;
		}

		// If a valid key hasn't been determined, raise the appropriate exception
		throw new CartInvalidARC4KeyException("Private CaRT ARC4 key could not be determined.");
	}
Create the CartV1Decryptor object using the specified key. Tested padded/truncated
to the correct length.

@param proposedArc4Key The ARC4 key being proposed for this CaRT
@return The CartV1Decryptor object
@throws IOException                 If there is a read failure of the data
@throws CartInvalidCartException    If there was a formating error with the
                                    CaRT file
@throws CartInvalidARC4KeyException If no key could be determined
@throws CartConfigurationException  If the configuration data for CaRT was
                                    found, but invalid.
@throws CancelledException          If the user cancels decryption
Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/cart/CartV1File.java