Changeset 1401
- Timestamp:
- 05/31/19 16:29:24 (5 years ago)
- Location:
- trunk/src/org/expeditee
- Files:
-
- 1 added
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/expeditee/auth/account/Authenticate.java
r1389 r1401 190 190 } 191 191 192 String message = "Was the list of possible enum results updated without nessasary changes to th htoString() function?";192 String message = "Was the list of possible enum results updated without nessasary changes to the toString() function?"; 193 193 throw new IllegalArgumentException(message); 194 194 } -
trunk/src/org/expeditee/encryption/io/EncryptedExpReader.java
r1400 r1401 22 22 23 23 import org.expeditee.encryption.CryptographyConstants; 24 import org.expeditee.encryption.Label; 25 import org.expeditee.encryption.Label.LabelResult; 24 26 import org.expeditee.gui.Frame; 25 27 import org.expeditee.io.ExpReader; … … 89 91 // Decrypt the Text Items 90 92 if (i instanceof Text) { 91 byte[] keyBytes = EncryptedExpWriter.resolveKeyFromLabel(i.getEncryptionLabel(), ""); 92 if (keyBytes == null) { continue; } 93 SecretKeySpec key = new SecretKeySpec(keyBytes, SymmetricAlgorithm); 94 byte[] decryptedBytes = DecryptSymmetric(Base64.getDecoder().decode(i.getText()), key); 95 i.setText(new String(decryptedBytes)); 93 LabelResult res = Label.resolveKey(i.getEncryptionLabel()); 94 if (res == LabelResult.SuccessResolveLabelToKey) { 95 byte[] keyBytes = res.key; 96 if (keyBytes == null) { continue; } 97 SecretKeySpec key = new SecretKeySpec(keyBytes, SymmetricAlgorithm); 98 byte[] decryptedBytes = DecryptSymmetric(Base64.getDecoder().decode(i.getText()), key); 99 i.setText(new String(decryptedBytes)); 100 } 96 101 } 97 102 } … … 170 175 171 176 private SecretKeySpec resolveLabel(String label) { 172 byte[] keyBytes = EncryptedExpWriter.resolveKeyFromLabel(label, ""); 173 return new SecretKeySpec(keyBytes, SymmetricAlgorithm); 177 LabelResult res = Label.resolveKey(label); 178 if (res == LabelResult.SuccessResolveLabelToKey) { 179 byte[] keyBytes = res.key; 180 return new SecretKeySpec(keyBytes, SymmetricAlgorithm); 181 } 182 return null; 174 183 } 175 184 } -
trunk/src/org/expeditee/encryption/io/EncryptedExpWriter.java
r1400 r1401 16 16 import javax.crypto.spec.SecretKeySpec; 17 17 18 import org.expeditee.auth.AuthenticatorBrowser;19 18 import org.expeditee.encryption.CryptographyConstants; 19 import org.expeditee.encryption.Label; 20 import org.expeditee.encryption.Label.LabelResult; 20 21 import org.expeditee.gui.Frame; 21 import org.expeditee.gui.FrameIO;22 22 import org.expeditee.gui.MessageBay; 23 23 import org.expeditee.io.ExpWriter; 24 24 import org.expeditee.items.Item; 25 25 import org.expeditee.items.Text; 26 import org.expeditee.settings.UserSettings;27 26 import org.expeditee.settings.identity.secrets.KeyList; 28 27 … … 43 42 label = "Profile"; 44 43 } else { 45 byte[] keyBytes = resolveKeyFromLabel(encryptionLabel, _framename); 46 key = new SecretKeySpec(keyBytes, SymmetricAlgorithm); 47 label = encryptionLabel; 44 LabelResult res = Label.resolveKey(encryptionLabel); 45 if (res == LabelResult.SuccessResolveLabelToKey) { 46 byte[] keyBytes = res.key; 47 key = new SecretKeySpec(keyBytes, SymmetricAlgorithm); 48 label = encryptionLabel; 49 } else if (res == LabelResult.ErrorUnableToFindLabel) { 50 MessageBay.errorMessage(res.toString() + encryptionLabel); 51 } else { 52 MessageBay.errorMessage(res.toString()); 53 } 48 54 } 49 55 } … … 88 94 // Encrypt the Text Items 89 95 if (i instanceof Text) { 90 byte[] keyBytes = resolveKeyFromLabel(i.getEncryptionLabel(), "(actually item) on " + i.getParent().getName()); 91 if (keyBytes == null) { continue; } 92 SecretKeySpec key = new SecretKeySpec(keyBytes, SymmetricAlgorithm); 93 byte[] encryptedBytes = EncryptSymmetric(i.getText().getBytes(), key); 94 i.setText(Base64.getEncoder().encodeToString(encryptedBytes)); 96 LabelResult res = Label.resolveKey(i.getEncryptionLabel()); 97 if (res == LabelResult.SuccessResolveLabelToKey) { 98 byte[] keyBytes = res.key; 99 if (keyBytes == null) { continue; } 100 SecretKeySpec key = new SecretKeySpec(keyBytes, SymmetricAlgorithm); 101 byte[] encryptedBytes = EncryptSymmetric(i.getText().getBytes(), key); 102 i.setText(Base64.getEncoder().encodeToString(encryptedBytes)); 103 } 95 104 } 96 105 } 97 106 } 98 107 99 protected static byte[] resolveKeyFromLabel(String label, String framename) {100 String credentialsFrameName = UserSettings.ProfileName.get() + AuthenticatorBrowser.CREDENTIALS_FRAME;101 Frame credentialsFrame = FrameIO.LoadFrame(credentialsFrameName);102 Collection<Text> textItems = credentialsFrame.getTextItems();103 textItems.removeIf(t -> !t.getText().equals("Secrets"));104 textItems.removeIf(t -> !t.hasLink());105 if (textItems.isEmpty()) {106 MessageBay.errorMessage("Unable to find label " + label + " to encrypt frame " + framename + ".");107 return null;108 } else {109 Text linkToSecretsFrame = textItems.iterator().next();110 Frame secretsFrame = FrameIO.LoadFrame(linkToSecretsFrame.getParent().getFramesetName() + linkToSecretsFrame.getLink());111 Collection<Text> labels = secretsFrame.getTextItems();112 labels.removeIf(lbl -> !lbl.getText().equals(label));113 labels.removeIf(lbl -> lbl.getData() == null || lbl.getData().size() == 0);114 if (labels.isEmpty()) {115 MessageBay.errorMessage("Unable to find label " + label + " to encrypt frame " + framename + ".");116 return null;117 }118 119 Text labelItem = labels.iterator().next();120 String data = labelItem.getData().get(0);121 if (data.contains("{")) {122 MessageBay.errorMessage("You only have a fraction of the required key to access " + framename + ".");123 return null;124 } else {125 try {126 return Base64.getDecoder().decode(data);127 } catch (IllegalArgumentException e) {128 MessageBay.errorMessage("Unable to create key out of data stored in label " + label + ".");129 return null;130 }131 }132 }133 }108 // protected static byte[] resolveKeyFromLabel(String label, String framename) { 109 // String credentialsFrameName = UserSettings.ProfileName.get() + AuthenticatorBrowser.CREDENTIALS_FRAME; 110 // Frame credentialsFrame = FrameIO.LoadFrame(credentialsFrameName); 111 // Collection<Text> textItems = credentialsFrame.getTextItems(); 112 // textItems.removeIf(t -> !t.getText().equals("Secrets")); 113 // textItems.removeIf(t -> !t.hasLink()); 114 // if (textItems.isEmpty()) { 115 // MessageBay.errorMessage("Unable to find label " + label + " to encrypt frame " + framename + "."); 116 // return null; 117 // } else { 118 // Text linkToSecretsFrame = textItems.iterator().next(); 119 // Frame secretsFrame = FrameIO.LoadFrame(linkToSecretsFrame.getParent().getFramesetName() + linkToSecretsFrame.getLink()); 120 // Collection<Text> labels = secretsFrame.getTextItems(); 121 // labels.removeIf(lbl -> !lbl.getText().equals(label)); 122 // labels.removeIf(lbl -> lbl.getData() == null || lbl.getData().size() == 0); 123 // if (labels.isEmpty()) { 124 // MessageBay.errorMessage("Unable to find label " + label + " to encrypt frame " + framename + "."); 125 // return null; 126 // } 127 // 128 // Text labelItem = labels.iterator().next(); 129 // String data = labelItem.getData().get(0); 130 // if (data.contains("{")) { 131 // MessageBay.errorMessage("You only have a fraction of the required key to access " + framename + "."); 132 // return null; 133 // } else { 134 // try { 135 // return Base64.getDecoder().decode(data); 136 // } catch (IllegalArgumentException e) { 137 // MessageBay.errorMessage("Unable to create key out of data stored in label " + label + "."); 138 // return null; 139 // } 140 // } 141 // } 142 // } 134 143 135 144 private static byte[] EncryptSymmetric(byte[] toEncrypt, SecretKey key) {
Note:
See TracChangeset
for help on using the changeset viewer.