private char[][] readFile (File keyFile) throws Exception {

		char[][] newKey = new char[4][4 * 11];

		Scanner fileScanner;

		try {
			fileScanner = new Scanner(keyFile);
		} catch (Exception e) {
			// the file is checked before this point, so this should never execute.
			System.out.println("FileInputStream threw an error inside readFile().");
			return null;
		}

		String hexLine = fileScanner.nextLine();

		if (hexLine.length() < 32) {
			System.out.println("Error: Key is too small.");
			return null;
		}
		int begin = 0;
		int end = 2;

		
		for (int row = 0; row < 4; row++) {
			for (int col = 0; col < 4; col++) {
				// int val = 0;
				String hexVal = hexLine.substring(begin, end);
				hexVal = "0x" + hexVal;
				char val; 
				try {
					val = (char) Integer.decode(hexVal).intValue();
				} catch (Exception e) {
					System.out.println("Error: Key has non hex characters.");
					return null;
				}

				newKey[row][col] = val;
				begin += 2;
				end += 2;
			}
		}

		return newKey;
	}