Index: /trunk/src/org/expeditee/auth/account/Authenticate.java
===================================================================
--- /trunk/src/org/expeditee/auth/account/Authenticate.java	(revision 1400)
+++ /trunk/src/org/expeditee/auth/account/Authenticate.java	(revision 1401)
@@ -190,5 +190,5 @@
 			}
 
-			String message = "Was the list of possible enum results updated without nessasary changes to thh toString() function?";
+			String message = "Was the list of possible enum results updated without nessasary changes to the toString() function?";
 			throw new IllegalArgumentException(message);
 		}
Index: /trunk/src/org/expeditee/encryption/Label.java
===================================================================
--- /trunk/src/org/expeditee/encryption/Label.java	(revision 1401)
+++ /trunk/src/org/expeditee/encryption/Label.java	(revision 1401)
@@ -0,0 +1,78 @@
+package org.expeditee.encryption;
+
+import java.util.Base64;
+import java.util.Collection;
+
+import org.expeditee.auth.AuthenticatorBrowser;
+import org.expeditee.gui.Frame;
+import org.expeditee.gui.FrameIO;
+import org.expeditee.items.Text;
+import org.expeditee.settings.UserSettings;
+
+public class Label {
+	
+	public static LabelResult resolveKey(String label) {
+		String credentialsFrameName = UserSettings.ProfileName.get() + 
+				AuthenticatorBrowser.CREDENTIALS_FRAME;
+		Frame credentialsFrame = FrameIO.LoadFrame(credentialsFrameName);
+		Collection<Text> textItems = credentialsFrame.getTextItems();
+		textItems.removeIf(t -> !t.getText().equals("Secrets"));
+		textItems.removeIf(t -> !t.hasLink());
+		if (textItems.isEmpty()) {
+			return LabelResult.ErrorUnableToFindSecretsFrame;
+		}
+		Text linkToSecretsFrame = textItems.iterator().next();
+		if (!linkToSecretsFrame.hasLink()) {
+			return LabelResult.ErrorUnableToFindSecretsFrame;
+		}
+		Frame secretsFrame = FrameIO.LoadFrame(linkToSecretsFrame.getParent().getFramesetName() + linkToSecretsFrame.getLink());
+		Collection<Text> labels = secretsFrame.getTextItems();
+		labels.removeIf(lbl -> !lbl.getText().equals(label));
+		labels.removeIf(lbl -> lbl.getData() == null || lbl.getData().size() == 0);
+		if (labels.isEmpty()) {
+			return LabelResult.ErrorUnableToFindLabel;
+		}
+		Text labelItem = labels.iterator().next();
+		String data = labelItem.getData().get(0);
+		if (data.contains("{")) {
+			data = data.substring(data.indexOf('}') + 1).trim();
+			LabelResult res = LabelResult.SuccessResolveLabelToPartialKey;
+			res.key = Base64.getDecoder().decode(data);
+			return res;
+		} else {
+			try {
+				LabelResult res = LabelResult.SuccessResolveLabelToKey;
+				res.key = Base64.getDecoder().decode(data);
+				return res;
+			} catch (IllegalArgumentException e) {
+				return LabelResult.ErrorUnableToFindLabel;
+			}
+		}
+	}
+	
+	public enum LabelResult {
+		SuccessResolveLabelToKey, 
+		SuccessResolveLabelToPartialKey, 
+		ErrorUnableToFindSecretsFrame, 
+		ErrorUnableToFindLabel;
+		
+		public byte[] key;
+		
+		@Override
+		public String toString() {
+			switch (this) {
+			case SuccessResolveLabelToKey:
+				return "Resolved label to key: " + Base64.getEncoder().encodeToString(key);
+			case SuccessResolveLabelToPartialKey:
+				return "Resolved label to slice of a key: " + Base64.getEncoder().encodeToString(key);
+			case ErrorUnableToFindSecretsFrame:
+				return "Unable to find your Secrets Frame.";
+			case ErrorUnableToFindLabel:
+				return "Unable to resolve label to encrypt/decrypt frame.  Label: ";
+			}
+			
+			String message = "Was the list of possible enum results updated without nessasary changes to the toString() function?";
+			throw new IllegalArgumentException(message);
+		}
+	}
+}
Index: /trunk/src/org/expeditee/encryption/io/EncryptedExpReader.java
===================================================================
--- /trunk/src/org/expeditee/encryption/io/EncryptedExpReader.java	(revision 1400)
+++ /trunk/src/org/expeditee/encryption/io/EncryptedExpReader.java	(revision 1401)
@@ -22,4 +22,6 @@
 
 import org.expeditee.encryption.CryptographyConstants;
+import org.expeditee.encryption.Label;
+import org.expeditee.encryption.Label.LabelResult;
 import org.expeditee.gui.Frame;
 import org.expeditee.io.ExpReader;
@@ -89,9 +91,12 @@
 			// Decrypt the Text Items
 			if (i instanceof Text) {
-				byte[] keyBytes = EncryptedExpWriter.resolveKeyFromLabel(i.getEncryptionLabel(), "");
-				if (keyBytes == null) { continue; }
-				SecretKeySpec key = new SecretKeySpec(keyBytes, SymmetricAlgorithm);
-				byte[] decryptedBytes = DecryptSymmetric(Base64.getDecoder().decode(i.getText()), key);
-				i.setText(new String(decryptedBytes));
+				LabelResult res = Label.resolveKey(i.getEncryptionLabel());
+				if (res == LabelResult.SuccessResolveLabelToKey) {
+					byte[] keyBytes = res.key;
+					if (keyBytes == null) { continue; }
+					SecretKeySpec key = new SecretKeySpec(keyBytes, SymmetricAlgorithm);
+					byte[] decryptedBytes = DecryptSymmetric(Base64.getDecoder().decode(i.getText()), key);
+					i.setText(new String(decryptedBytes));
+				}
 			}
 		}
@@ -170,6 +175,10 @@
 		
 		private SecretKeySpec resolveLabel(String label) {
-			byte[] keyBytes = EncryptedExpWriter.resolveKeyFromLabel(label, "");
-			return new SecretKeySpec(keyBytes, SymmetricAlgorithm);
+			LabelResult res = Label.resolveKey(label);
+			if (res == LabelResult.SuccessResolveLabelToKey) {
+				byte[] keyBytes = res.key;
+				return new SecretKeySpec(keyBytes, SymmetricAlgorithm);
+			}
+			return null;
 		}
 	}
Index: /trunk/src/org/expeditee/encryption/io/EncryptedExpWriter.java
===================================================================
--- /trunk/src/org/expeditee/encryption/io/EncryptedExpWriter.java	(revision 1400)
+++ /trunk/src/org/expeditee/encryption/io/EncryptedExpWriter.java	(revision 1401)
@@ -16,13 +16,12 @@
 import javax.crypto.spec.SecretKeySpec;
 
-import org.expeditee.auth.AuthenticatorBrowser;
 import org.expeditee.encryption.CryptographyConstants;
+import org.expeditee.encryption.Label;
+import org.expeditee.encryption.Label.LabelResult;
 import org.expeditee.gui.Frame;
-import org.expeditee.gui.FrameIO;
 import org.expeditee.gui.MessageBay;
 import org.expeditee.io.ExpWriter;
 import org.expeditee.items.Item;
 import org.expeditee.items.Text;
-import org.expeditee.settings.UserSettings;
 import org.expeditee.settings.identity.secrets.KeyList;
 
@@ -43,7 +42,14 @@
 			label = "Profile";
 		} else {
-			byte[] keyBytes = resolveKeyFromLabel(encryptionLabel, _framename);
-			key = new SecretKeySpec(keyBytes, SymmetricAlgorithm);
-			label = encryptionLabel;
+			LabelResult res = Label.resolveKey(encryptionLabel);
+			if (res == LabelResult.SuccessResolveLabelToKey) {
+				byte[] keyBytes = res.key;
+				key = new SecretKeySpec(keyBytes, SymmetricAlgorithm);
+				label = encryptionLabel;
+			} else if (res == LabelResult.ErrorUnableToFindLabel) {
+				MessageBay.errorMessage(res.toString() + encryptionLabel);
+			} else {
+				MessageBay.errorMessage(res.toString());
+			}
 		}
 	}
@@ -88,48 +94,51 @@
 			// Encrypt the Text Items
 			if (i instanceof Text) {
-				byte[] keyBytes = resolveKeyFromLabel(i.getEncryptionLabel(), "(actually item) on " + i.getParent().getName());
-				if (keyBytes == null) { continue; } 
-				SecretKeySpec key = new SecretKeySpec(keyBytes, SymmetricAlgorithm);
-				byte[] encryptedBytes = EncryptSymmetric(i.getText().getBytes(), key);
-				i.setText(Base64.getEncoder().encodeToString(encryptedBytes));
+				LabelResult res = Label.resolveKey(i.getEncryptionLabel());
+				if (res == LabelResult.SuccessResolveLabelToKey) {
+					byte[] keyBytes = res.key;
+					if (keyBytes == null) { continue; } 
+					SecretKeySpec key = new SecretKeySpec(keyBytes, SymmetricAlgorithm);
+					byte[] encryptedBytes = EncryptSymmetric(i.getText().getBytes(), key);
+					i.setText(Base64.getEncoder().encodeToString(encryptedBytes));
+				}
 			}
 		}
 	}
 	
-	protected static byte[] resolveKeyFromLabel(String label, String framename) {
-		String credentialsFrameName = UserSettings.ProfileName.get() + AuthenticatorBrowser.CREDENTIALS_FRAME;
-		Frame credentialsFrame = FrameIO.LoadFrame(credentialsFrameName);
-		Collection<Text> textItems = credentialsFrame.getTextItems();
-		textItems.removeIf(t -> !t.getText().equals("Secrets"));
-		textItems.removeIf(t -> !t.hasLink());
-		if (textItems.isEmpty()) {
-			MessageBay.errorMessage("Unable to find label " + label + " to encrypt frame " + framename + ".");
-			return null;
-		} else {
-			Text linkToSecretsFrame = textItems.iterator().next();
-			Frame secretsFrame = FrameIO.LoadFrame(linkToSecretsFrame.getParent().getFramesetName() + linkToSecretsFrame.getLink());
-			Collection<Text> labels = secretsFrame.getTextItems();
-			labels.removeIf(lbl -> !lbl.getText().equals(label));
-			labels.removeIf(lbl -> lbl.getData() == null || lbl.getData().size() == 0);
-			if (labels.isEmpty()) {
-				MessageBay.errorMessage("Unable to find label " + label + " to encrypt frame " + framename + ".");
-				return null;
-			}
-			
-			Text labelItem = labels.iterator().next();
-			String data = labelItem.getData().get(0);
-			if (data.contains("{")) {
-				MessageBay.errorMessage("You only have a fraction of the required key to access " + framename + ".");
-				return null;
-			} else {
-				try {
-					return Base64.getDecoder().decode(data);
-				} catch (IllegalArgumentException e) {
-					MessageBay.errorMessage("Unable to create key out of data stored in label " + label + ".");
-					return null;
-				}
-			}
-		}
-	}
+//	protected static byte[] resolveKeyFromLabel(String label, String framename) {
+//		String credentialsFrameName = UserSettings.ProfileName.get() + AuthenticatorBrowser.CREDENTIALS_FRAME;
+//		Frame credentialsFrame = FrameIO.LoadFrame(credentialsFrameName);
+//		Collection<Text> textItems = credentialsFrame.getTextItems();
+//		textItems.removeIf(t -> !t.getText().equals("Secrets"));
+//		textItems.removeIf(t -> !t.hasLink());
+//		if (textItems.isEmpty()) {
+//			MessageBay.errorMessage("Unable to find label " + label + " to encrypt frame " + framename + ".");
+//			return null;
+//		} else {
+//			Text linkToSecretsFrame = textItems.iterator().next();
+//			Frame secretsFrame = FrameIO.LoadFrame(linkToSecretsFrame.getParent().getFramesetName() + linkToSecretsFrame.getLink());
+//			Collection<Text> labels = secretsFrame.getTextItems();
+//			labels.removeIf(lbl -> !lbl.getText().equals(label));
+//			labels.removeIf(lbl -> lbl.getData() == null || lbl.getData().size() == 0);
+//			if (labels.isEmpty()) {
+//				MessageBay.errorMessage("Unable to find label " + label + " to encrypt frame " + framename + ".");
+//				return null;
+//			}
+//			
+//			Text labelItem = labels.iterator().next();
+//			String data = labelItem.getData().get(0);
+//			if (data.contains("{")) {
+//				MessageBay.errorMessage("You only have a fraction of the required key to access " + framename + ".");
+//				return null;
+//			} else {
+//				try {
+//					return Base64.getDecoder().decode(data);
+//				} catch (IllegalArgumentException e) {
+//					MessageBay.errorMessage("Unable to create key out of data stored in label " + label + ".");
+//					return null;
+//				}
+//			}
+//		}
+//	}
 	
 	private static byte[] EncryptSymmetric(byte[] toEncrypt, SecretKey key) {
