Changeset 26361 in osm
- Timestamp:
- 2011-07-18T13:13:10+02:00 (14 years ago)
- Location:
- applications/editors/josm/plugins/native-password-manager
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
applications/editors/josm/plugins/native-password-manager/netbeans-keyring-patches.diff
r26336 r26361 1 1 Index: native-password-manager/src/org/netbeans/modules/keyring/fallback/FallbackProvider.java 2 2 =================================================================== 3 --- native-password-manager.orig/src/org/netbeans/modules/keyring/fallback/FallbackProvider.java 2011-07-1 5 21:52:52.064972526+02004 +++ native-password-manager/src/org/netbeans/modules/keyring/fallback/FallbackProvider.java 2011-07-1 5 21:17:50.000000000+02003 --- native-password-manager.orig/src/org/netbeans/modules/keyring/fallback/FallbackProvider.java 2011-07-18 13:04:37.141522563 +0200 4 +++ native-password-manager/src/org/netbeans/modules/keyring/fallback/FallbackProvider.java 2011-07-18 13:09:34.194995561 +0200 5 5 @@ -42,49 +42,41 @@ 6 6 … … 40 40 private EncryptionProvider encryption; 41 41 - 42 + private IPreferences pre; 43 + 42 + private IPreferences prefs; 43 + 44 44 + // simple interface for a generic preferences store 45 45 + public interface IPreferences { 46 + String get(String key,Stringdef);47 + void put(String key, Stringval);46 + byte[] getByteArray(String key, byte[] def); 47 + void putByteArray(String key, byte[] val); 48 48 + void remove(String key); 49 49 + } 50 50 + 51 + public FallbackProvider(EncryptionProvider encryption, IPreferences pref) { 51 + public FallbackProvider(EncryptionProvider encryption, IPreferences prefs) { 52 52 + this.encryption = encryption; 53 + this.pre = pref;53 + this.prefs = prefs; 54 54 + } 55 + 55 + 56 56 public boolean enabled() { 57 57 - for (EncryptionProvider p : Lookup.getDefault().lookupAll(EncryptionProvider.class)) { … … 71 71 } 72 72 } 73 @@ -92,65 +84,2 1@@73 @@ -92,65 +84,20 @@ 74 74 return false; 75 75 } … … 87 87 - return false; 88 88 - } 89 + private boolean testSampleKey() { 90 + encryption.freshKeyring(true); 91 + if (_save(SAMPLE_KEY, (SAMPLE_KEY + UUID.randomUUID()).toCharArray(), 92 + "Sample value ensuring that decryption is working.")) { 93 + LOG.fine("saved sample key"); 94 + return true; 95 } else { 89 - } else { 96 90 - encryption.freshKeyring(false); 97 91 - while (true) { … … 128 122 - LOG.log(Level.INFO, null, x); 129 123 - } 130 - } else { 124 + private boolean testSampleKey() { 125 + encryption.freshKeyring(true); 126 + if (_save(SAMPLE_KEY, (SAMPLE_KEY + UUID.randomUUID()).toCharArray(), 127 + "Sample value ensuring that decryption is working.")) { 128 + LOG.fine("saved sample key"); 129 + return true; 130 } else { 131 131 - LOG.fine("refused to delete stored passwords"); 132 132 + LOG.fine("could not save sample key"); … … 142 142 public char[] read(String key) { 143 143 - byte[] ciphertext = prefs().getByteArray(key, null); 144 + String ciphertext_string = pre.get(key, null); 145 + byte[] ciphertext = ciphertext_string == null ? null : Utils.chars2Bytes(ciphertext_string.toCharArray()); 144 + byte[] ciphertext = prefs.getByteArray(key, null); 146 145 if (ciphertext == null) { 147 146 return null; 148 147 } 149 @@ -166,47 +11 4,24@@148 @@ -166,47 +113,18 @@ 150 149 _save(key, password, description); 151 150 } … … 153 152 - Preferences prefs = prefs(); 154 153 try { 155 - prefs.putByteArray(key, encryption.encrypt(password)); 156 + byte[] encryptedPasswordByteArray = encryption.encrypt(password); 157 + String encryptedPassword = encryptedPasswordByteArray == null ? null : String.valueOf(Utils.bytes2Chars(encryptedPasswordByteArray)); 158 + pre.put(key, encryptedPassword); 154 prefs.putByteArray(key, encryption.encrypt(password)); 159 155 } catch (Exception x) { 160 156 LOG.log(Level.FINE, "failed to encrypt password for " + key, x); 161 157 return false; 162 158 } 163 164 159 - if (description != null) { 160 - // Preferences interface gives no access to *.properties comments, so: 165 161 - prefs.put(key + DESCRIPTION, description); 166 + pre.put(key + DESCRIPTION, description); 167 } 162 - } 168 163 return true; 169 164 } … … 171 166 public void delete(String key) { 172 167 - Preferences prefs = prefs(); 173 -prefs.remove(key);174 -prefs.remove(key + DESCRIPTION);175 -}176 - 168 prefs.remove(key); 169 prefs.remove(key + DESCRIPTION); 170 } 171 177 172 - public Void call() throws Exception { // encryption changing 178 173 - LOG.fine("encryption changing"); … … 196 191 - LOG.fine("encryption changing finished"); 197 192 - return null; 198 + pre.remove(key); 199 + pre.remove(key + DESCRIPTION); 200 } 201 193 - } 194 - 202 195 } 203 196 Index: native-password-manager/src/org/netbeans/modules/keyring/gnome/GnomeProvider.java 204 197 =================================================================== 205 --- native-password-manager.orig/src/org/netbeans/modules/keyring/gnome/GnomeProvider.java 2011-07-1 5 21:53:22.269122311+0200206 +++ native-password-manager/src/org/netbeans/modules/keyring/gnome/GnomeProvider.java 2011-07-1 5 21:17:50.000000000 +0200198 --- native-password-manager.orig/src/org/netbeans/modules/keyring/gnome/GnomeProvider.java 2011-07-18 13:04:37.141522563 +0200 199 +++ native-password-manager/src/org/netbeans/modules/keyring/gnome/GnomeProvider.java 2011-07-18 13:05:00.841640080 +0200 207 200 @@ -43,16 +43,11 @@ 208 201 package org.netbeans.modules.keyring.gnome; … … 240 233 Index: native-password-manager/src/org/netbeans/modules/keyring/kde/KWalletProvider.java 241 234 =================================================================== 242 --- native-password-manager.orig/src/org/netbeans/modules/keyring/kde/KWalletProvider.java 2011-07-1 5 21:53:37.837199499+0200243 +++ native-password-manager/src/org/netbeans/modules/keyring/kde/KWalletProvider.java 2011-07-1 5 21:17:50.000000000+0200235 --- native-password-manager.orig/src/org/netbeans/modules/keyring/kde/KWalletProvider.java 2011-07-18 13:04:37.149522597 +0200 236 +++ native-password-manager/src/org/netbeans/modules/keyring/kde/KWalletProvider.java 2011-07-18 13:05:00.849640122 +0200 244 237 @@ -45,20 +45,15 @@ 245 238 import java.io.BufferedReader; … … 280 273 Index: native-password-manager/src/org/netbeans/modules/keyring/mac/MacProvider.java 281 274 =================================================================== 282 --- native-password-manager.orig/src/org/netbeans/modules/keyring/mac/MacProvider.java 2011-07-1 5 21:53:47.897249389 +0200283 +++ native-password-manager/src/org/netbeans/modules/keyring/mac/MacProvider.java 2011-07-1 5 21:17:50.000000000+0200275 --- native-password-manager.orig/src/org/netbeans/modules/keyring/mac/MacProvider.java 2011-07-18 13:04:37.157522639 +0200 276 +++ native-password-manager/src/org/netbeans/modules/keyring/mac/MacProvider.java 2011-07-18 13:05:00.849640122 +0200 284 277 @@ -47,26 +47,19 @@ 285 278 import java.util.logging.Level; … … 331 324 Index: native-password-manager/src/org/netbeans/modules/keyring/win32/Win32Protect.java 332 325 =================================================================== 333 --- native-password-manager.orig/src/org/netbeans/modules/keyring/win32/Win32Protect.java 2011-07-1 5 21:53:58.733303122 +0200334 +++ native-password-manager/src/org/netbeans/modules/keyring/win32/Win32Protect.java 2011-07-1 5 21:17:50.000000000+0200326 --- native-password-manager.orig/src/org/netbeans/modules/keyring/win32/Win32Protect.java 2011-07-18 13:04:37.165522672 +0200 327 +++ native-password-manager/src/org/netbeans/modules/keyring/win32/Win32Protect.java 2011-07-18 13:05:00.849640122 +0200 335 328 @@ -54,28 +54,18 @@ 336 329 import java.util.logging.Logger; -
applications/editors/josm/plugins/native-password-manager/src/org/netbeans/modules/keyring/fallback/FallbackProvider.java
r26335 r26361 60 60 61 61 private EncryptionProvider encryption; 62 private IPreferences pre; 63 62 private IPreferences prefs; 63 64 64 // simple interface for a generic preferences store 65 65 public interface IPreferences { 66 String get(String key,Stringdef);67 void put(String key, Stringval);66 byte[] getByteArray(String key, byte[] def); 67 void putByteArray(String key, byte[] val); 68 68 void remove(String key); 69 69 } 70 70 71 public FallbackProvider(EncryptionProvider encryption, IPreferences pref) { 71 public FallbackProvider(EncryptionProvider encryption, IPreferences prefs) { 72 72 this.encryption = encryption; 73 this.pre = pref;73 this.prefs = prefs; 74 74 } 75 75 76 76 public boolean enabled() { 77 77 if (encryption.enabled()) { … … 98 98 99 99 public char[] read(String key) { 100 String ciphertext_string = pre.get(key, null); 101 byte[] ciphertext = ciphertext_string == null ? null : Utils.chars2Bytes(ciphertext_string.toCharArray()); 100 byte[] ciphertext = prefs.getByteArray(key, null); 102 101 if (ciphertext == null) { 103 102 return null; … … 116 115 private boolean _save(String key, char[] password, String description) { 117 116 try { 118 byte[] encryptedPasswordByteArray = encryption.encrypt(password); 119 String encryptedPassword = encryptedPasswordByteArray == null ? null : String.valueOf(Utils.bytes2Chars(encryptedPasswordByteArray)); 120 pre.put(key, encryptedPassword); 117 prefs.putByteArray(key, encryption.encrypt(password)); 121 118 } catch (Exception x) { 122 119 LOG.log(Level.FINE, "failed to encrypt password for " + key, x); 123 120 return false; 124 }125 if (description != null) {126 // Preferences interface gives no access to *.properties comments, so:127 pre.put(key + DESCRIPTION, description);128 121 } 129 122 return true; … … 131 124 132 125 public void delete(String key) { 133 pre.remove(key); 134 pre.remove(key + DESCRIPTION); 126 prefs.remove(key); 127 prefs.remove(key + DESCRIPTION); 135 128 } 136 129 -
applications/editors/josm/plugins/native-password-manager/src/org/openstreetmap/josm/plugins/npm/InitializationWizard.java
r26355 r26361 399 399 NPMType[] potentialManagers; 400 400 401 if (Main.platform instanceof PlatformHook Unixoid) {402 potentialManagers = new NPMType[] { NPMType. GNOME_KEYRING, NPMType.KWALLET};401 if (Main.platform instanceof PlatformHookWindows) { 402 potentialManagers = new NPMType[] { NPMType.CRYPT32 }; 403 403 } else if (Main.platform instanceof PlatformHookOsx) { 404 404 potentialManagers = new NPMType[] { NPMType.KEYCHAIN }; 405 } else if (Main.platform instanceof PlatformHook Windows) {406 potentialManagers = new NPMType[] { NPMType. CRYPT32};405 } else if (Main.platform instanceof PlatformHookUnixoid) { 406 potentialManagers = new NPMType[] { NPMType.GNOME_KEYRING, NPMType.KWALLET }; 407 407 } else 408 408 throw new AssertionError(); -
applications/editors/josm/plugins/native-password-manager/src/org/openstreetmap/josm/plugins/npm/Win32Provider.java
r26335 r26361 1 1 // License: GPL. For details, see LICENSE file. 2 2 package org.openstreetmap.josm.plugins.npm; 3 4 import org.apache.commons.codec.binary.Base64; 3 5 4 6 import org.netbeans.modules.keyring.fallback.FallbackProvider; … … 9 11 10 12 private static class JOSMPreferences implements IPreferences { 11 @Override public String get(String key, String def) { 12 return Main.pref.get(key, def); 13 14 @Override public byte[] getByteArray(String key, byte[] def) { 15 String p = Main.pref.get(key, null); 16 return p == null ? def : Base64.decodeBase64(p); 13 17 } 14 18 15 @Override public void put(String key, Stringval) {16 Main.pref.put(key, val); 19 @Override public void putByteArray(String key, byte[] val) { 20 Main.pref.put(key, val == null ? null : Base64.encodeBase64String(val)); 17 21 } 18 22
Note:
See TracChangeset
for help on using the changeset viewer.