- Timestamp:
- 11/29/19 15:33:47 (4 years ago)
- Location:
- trunk/src/org/expeditee
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/expeditee/encryption/io/EncryptedExpReader.java
r1431 r1461 46 46 private static final String labelProfile = "Profile"; 47 47 private static final String labelNone = "None"; 48 private SecretKey personalKey;48 private SecretKey key; 49 49 private boolean accessDenied = false; 50 50 private boolean _readingSurrogates; … … 57 57 if (firstLine == null) return false; 58 58 return firstLine.startsWith(ENCRYPTED_EXP_FLAG); 59 } 60 61 public static boolean isAccessibleExpediteeFile(final String path) throws IOException { 62 BufferedReader in = new BufferedReader(new FileReader(path)); 63 String firstLine = in.readLine(); 64 in.close(); 65 if (firstLine == null) return false; 66 67 if (firstLine.startsWith(ENCRYPTED_EXP_FLAG)) { 68 String labelName = firstLine.replace(ENCRYPTED_EXP_FLAG, ""); 69 LabelInfo label = Label.getLabel(labelName); 70 if (labelName.equals(labelProfile) || labelName.equals(labelNone) || label.type == Label.LabelResult.SuccessResolveLabelToKey) { 71 return true; 72 } else { 73 return false; 74 } 75 } else { 76 // Not encrypted. 77 return true; 78 } 59 79 } 60 80 … … 340 360 Text text = KeyList.PersonalKey.get(); 341 361 byte[] keyBytes = Base64.getDecoder().decode(text.getData().get(0)); 342 personalKey = new SecretKeySpec(keyBytes, SymmetricAlgorithm);362 key = new SecretKeySpec(keyBytes, SymmetricAlgorithm); 343 363 return readLine(); 344 364 } else if (label.equals(labelNone)) { … … 346 366 return readLine(); 347 367 } else { 348 personalKey = resolveLabel(label);349 if ( personalKey == null) {368 key = resolveLabel(label); 369 if (key == null) { 350 370 return null; 351 371 } else { … … 357 377 // decrypt line and return result 358 378 byte[] toDecrypt = Base64.getDecoder().decode(line); 359 byte[] decrypted = DecryptSymmetric(toDecrypt, personalKey);379 byte[] decrypted = DecryptSymmetric(toDecrypt, key); 360 380 if (decrypted == null) { 361 381 accessDenied = true; -
trunk/src/org/expeditee/gui/FrameIO.java
r1442 r1461 598 598 if (fullPath.endsWith(ExpReader.EXTENTION)) { 599 599 if (EncryptedExpReader.isEncryptedExpediteeFile(fullPath)) { 600 reader = new EncryptedExpReader(frameName); 600 if (EncryptedExpReader.isAccessibleExpediteeFile(fullPath)) { 601 reader = new EncryptedExpReader(frameName); 602 } else { 603 String message = "Cannot load frame " + frameName + ". It is encrypted and you do not have the associated key."; 604 System.err.println(message); 605 MessageBay.errorMessage(message); 606 return null; 607 } 601 608 } else { 602 609 reader = new ExpReader(frameName); … … 1754 1761 ResumeCache(); 1755 1762 1763 // 0 frame 1756 1764 base.reset(); 1757 1765 base.resetDateCreated(); 1758 1766 base.setFrameset(frameset); 1759 1767 base.setFrameNumber(0); 1768 base.setOwner(UserSettings.UserName.get()); 1760 1769 base.setTitle(base.getFramesetName() + "0"); 1761 1770 base.setPath(path); 1762 1771 base.change(); 1763 base.setOwner(UserSettings.UserName.get());1764 1772 SaveFrame(base, false); 1765 1773 1774 // 1 frame 1766 1775 base.reset(); 1767 1776 base.resetDateCreated(); 1768 1777 base.setFrameNumber(1); 1778 base.setOwner(UserSettings.UserName.get()); 1769 1779 base.setTitle(frameset); 1770 1780 base.change(); 1771 base.setOwner(UserSettings.UserName.get());1772 1781 SaveFrame(base, true); 1773 1782
Note:
See TracChangeset
for help on using the changeset viewer.