Changeset 26336 in osm for applications/editors/josm/plugins/native-password-manager
- Timestamp:
- 2011-07-15T22:00:51+02:00 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
applications/editors/josm/plugins/native-password-manager/netbeans-keyring-patches.diff
r26335 r26336 1 diff -r src-netbeans-524f40b94a30-origin/org/netbeans/modules/keyring/fallback/FallbackProvider.java src/org/netbeans/modules/keyring/fallback/FallbackProvider.java 2 45,47d44 3 < import java.util.Arrays; 4 < import java.util.HashMap; 5 < import java.util.Map; 6 49d45 7 < import java.util.concurrent.Callable; 8 52,54d47 9 < import java.util.prefs.BackingStoreException; 10 < import java.util.prefs.Preferences; 11 < import org.netbeans.api.keyring.Keyring; 12 58,63d50 13 < import org.openide.DialogDisplayer; 14 < import org.openide.NotifyDescriptor; 15 < import org.openide.util.Lookup; 16 < import org.openide.util.NbBundle; 17 < import org.openide.util.NbPreferences; 18 < import org.openide.util.lookup.ServiceProvider; 19 68,69c55 20 < @ServiceProvider(service=KeyringProvider.class, position=1000) 21 < public class FallbackProvider implements KeyringProvider, Callable<Void> { 22 --- 23 > public class FallbackProvider implements KeyringProvider { 24 76c62,75 25 < 26 --- 27 > private IPreferences pre; 28 > 29 > // simple interface for a generic preferences store 30 > public interface IPreferences { 31 > String get(String key, String def); 32 > void put(String key, String val); 33 > void remove(String key); 34 > } 35 > 36 > public FallbackProvider(EncryptionProvider encryption, IPreferences pref) { 37 > this.encryption = encryption; 38 > this.pre = pref; 39 > } 40 > 41 78,87c77,79 42 < for (EncryptionProvider p : Lookup.getDefault().lookupAll(EncryptionProvider.class)) { 43 < if (p.enabled()) { 44 < encryption = p; 45 < Preferences prefs = prefs(); 46 < Utils.goMinusR(prefs); 47 < p.encryptionChangingCallback(this); 48 < if (!testSampleKey(prefs)) { 49 < continue; 50 < } 51 < LOG.log(Level.FINE, "Using provider: {0}", p); 52 --- 53 > if (encryption.enabled()) { 54 > if (testSampleKey()) { 55 > LOG.log(Level.FINE, "Using provider: {0}", encryption); 56 95,106c87,92 57 < private boolean testSampleKey(Preferences prefs) { 58 < byte[] ciphertext = prefs.getByteArray(SAMPLE_KEY, null); 59 < if (ciphertext == null) { 60 < encryption.freshKeyring(true); 61 < if (_save(SAMPLE_KEY, (SAMPLE_KEY + UUID.randomUUID()).toCharArray(), 62 < NbBundle.getMessage(FallbackProvider.class, "FallbackProvider.sample_key.description"))) { 63 < LOG.fine("saved sample key"); 64 < return true; 65 < } else { 66 < LOG.fine("could not save sample key"); 67 < return false; 68 < } 69 --- 70 > private boolean testSampleKey() { 71 > encryption.freshKeyring(true); 72 > if (_save(SAMPLE_KEY, (SAMPLE_KEY + UUID.randomUUID()).toCharArray(), 73 > "Sample value ensuring that decryption is working.")) { 74 > LOG.fine("saved sample key"); 75 > return true; 76 108,143c94,95 77 < encryption.freshKeyring(false); 78 < while (true) { 79 < try { 80 < if (new String(encryption.decrypt(ciphertext)).startsWith(SAMPLE_KEY)) { 81 < LOG.fine("succeeded in decrypting sample key"); 82 < return true; 83 < } else { 84 < LOG.fine("wrong result decrypting sample key"); 85 < } 86 < } catch (Exception x) { 87 < LOG.log(Level.FINE, "failed to decrypt sample key", x); 88 < } 89 < if (!encryption.decryptionFailed()) { 90 < LOG.fine("sample key decryption failed"); 91 < return promptToDelete(prefs); 92 < } 93 < LOG.fine("will retry decryption of sample key"); 94 < } 95 < } 96 < } 97 < 98 < private boolean promptToDelete(Preferences prefs) { 99 < Object result = DialogDisplayer.getDefault().notify(new NotifyDescriptor.Confirmation( 100 < NbBundle.getMessage(FallbackProvider.class, "FallbackProvider.msg_clear_keys"), 101 < NbBundle.getMessage(FallbackProvider.class, "FallbackProvider.title_clear_keys"), 102 < NotifyDescriptor.OK_CANCEL_OPTION)); 103 < if (result == NotifyDescriptor.OK_OPTION) { 104 < try { 105 < LOG.log(Level.FINE, "agreed to delete stored passwords: {0}", Arrays.asList(prefs.keys())); 106 < prefs.clear(); 107 < return testSampleKey(prefs); 108 < } catch (BackingStoreException x) { 109 < LOG.log(Level.INFO, null, x); 110 < } 111 < } else { 112 < LOG.fine("refused to delete stored passwords"); 113 --- 114 > LOG.fine("could not save sample key"); 115 > return false; 116 145,149d96 117 < return false; 118 < } 119 < 120 < private Preferences prefs() { 121 < return NbPreferences.forModule(Keyring.class).node(encryption.id()); 122 153c100,101 123 < byte[] ciphertext = prefs().getByteArray(key, null); 124 --- 125 > String ciphertext_string = pre.get(key, null); 126 > byte[] ciphertext = ciphertext_string == null ? null : Utils.chars2Bytes(ciphertext_string.toCharArray()); 127 169d116 128 < Preferences prefs = prefs(); 129 171c118,120 130 < prefs.putByteArray(key, encryption.encrypt(password)); 131 --- 132 > byte[] encryptedPasswordByteArray = encryption.encrypt(password); 133 > String encryptedPassword = encryptedPasswordByteArray == null ? null : String.valueOf(Utils.bytes2Chars(encryptedPasswordByteArray)); 134 > pre.put(key, encryptedPassword); 135 178c127 136 < prefs.put(key + DESCRIPTION, description); 137 --- 138 > pre.put(key + DESCRIPTION, description); 139 184,209c133,134 140 < Preferences prefs = prefs(); 141 < prefs.remove(key); 142 < prefs.remove(key + DESCRIPTION); 143 < } 144 < 145 < public Void call() throws Exception { // encryption changing 146 < LOG.fine("encryption changing"); 147 < Map<String,char[]> saved = new HashMap<String,char[]>(); 148 < Preferences prefs = prefs(); 149 < for (String k : prefs.keys()) { 150 < if (k.endsWith(DESCRIPTION)) { 151 < continue; 152 < } 153 < byte[] ciphertext = prefs.getByteArray(k, null); 154 < if (ciphertext == null) { 155 < continue; 156 < } 157 < saved.put(k, encryption.decrypt(ciphertext)); 158 < } 159 < LOG.log(Level.FINE, "reencrypting keys: {0}", saved.keySet()); 160 < encryption.encryptionChanged(); 161 < for (Map.Entry<String,char[]> entry : saved.entrySet()) { 162 < prefs.putByteArray(entry.getKey(), encryption.encrypt(entry.getValue())); 163 < } 164 < LOG.fine("encryption changing finished"); 165 < return null; 166 --- 167 > pre.remove(key); 168 > pre.remove(key + DESCRIPTION); 169 diff -r src-netbeans-524f40b94a30-origin/org/netbeans/modules/keyring/gnome/GnomeProvider.java src/org/netbeans/modules/keyring/gnome/GnomeProvider.java 170 46,47d45 171 < import java.text.MessageFormat; 172 < import java.util.MissingResourceException; 173 52,53d49 174 < import org.openide.util.NbBundle; 175 < import org.openide.util.lookup.ServiceProvider; 176 55d50 177 < @ServiceProvider(service=KeyringProvider.class, position=100) 178 77,84c72 179 < String appName; 180 < try { 181 < appName = MessageFormat.format( 182 < NbBundle.getBundle("org.netbeans.core.windows.view.ui.Bundle").getString("CTL_MainWindow_Title_No_Project"), 183 < /*System.getProperty("netbeans.buildnumber")*/"…"); 184 < } catch (MissingResourceException x) { 185 < appName = "NetBeans"; // NOI18N 186 < } 187 --- 188 > String appName = "JOSM"; 189 diff -r src-netbeans-524f40b94a30-origin/org/netbeans/modules/keyring/kde/KWalletProvider.java src/org/netbeans/modules/keyring/kde/KWalletProvider.java 190 48d47 191 < import java.text.MessageFormat; 192 50d48 193 < import java.util.MissingResourceException; 194 54,55d51 195 < import org.openide.util.NbBundle; 196 < import org.openide.util.lookup.ServiceProvider; 197 61d56 198 < @ServiceProvider(service=KeyringProvider.class, position=99) 199 224,230c219 200 < String appName; 201 < try { 202 < appName = MessageFormat.format(NbBundle.getBundle("org.netbeans.core.windows.view.ui.Bundle").getString("CTL_MainWindow_Title_No_Project"),version ? System.getProperty("netbeans.buildnumber"):""); 203 < } catch (MissingResourceException x) { 204 < appName = "NetBeans"+(version? " "+System.getProperty("netbeans.buildnumber"):""); 205 < } 206 < return appName.toCharArray(); 207 --- 208 > return "JOSM".toCharArray(); 209 diff -r src-netbeans-524f40b94a30-origin/org/netbeans/modules/keyring/mac/MacProvider.java src/org/netbeans/modules/keyring/mac/MacProvider.java 210 50,51d49 211 < import org.openide.util.Utilities; 212 < import org.openide.util.lookup.ServiceProvider; 213 53d50 214 < @ServiceProvider(service=KeyringProvider.class, position=200) 215 59,63c56 216 < if (Boolean.getBoolean("netbeans.keyring.no.native")) { 217 < LOG.fine("native keyring integration disabled"); 218 < return false; 219 < } 220 < return Utilities.isMac(); 221 --- 222 > return true; // test elsewhere if we are on a mac 223 69c62 224 < byte[] accountName = "NetBeans".getBytes("UTF-8"); 225 --- 226 > byte[] accountName = "JOSM".getBytes("UTF-8"); 227 89c82 228 < byte[] accountName = "NetBeans".getBytes("UTF-8"); 229 --- 230 > byte[] accountName = "JOSM".getBytes("UTF-8"); 231 103c96 232 < byte[] accountName = "NetBeans".getBytes("UTF-8"); 233 --- 234 > byte[] accountName = "JOSM".getBytes("UTF-8"); 235 diff -r src-netbeans-524f40b94a30-origin/org/netbeans/modules/keyring/win32/Win32Protect.java src/org/netbeans/modules/keyring/win32/Win32Protect.java 236 57,58d56 237 < import org.openide.util.Utilities; 238 < import org.openide.util.lookup.ServiceProvider; 239 65d62 240 < @ServiceProvider(service=EncryptionProvider.class, position=100) 241 71,78c68 242 < if (!Utilities.isWindows()) { 243 < LOG.fine("not running on Windows"); 244 < return false; 245 < } 246 < if (Boolean.getBoolean("netbeans.keyring.no.native")) { 247 < LOG.fine("native keyring integration disabled"); 248 < return false; 249 < } 250 --- 251 > // asssume, we have windows os 1 Index: native-password-manager/src/org/netbeans/modules/keyring/fallback/FallbackProvider.java 2 =================================================================== 3 --- native-password-manager.orig/src/org/netbeans/modules/keyring/fallback/FallbackProvider.java 2011-07-15 21:52:52.064972526 +0200 4 +++ native-password-manager/src/org/netbeans/modules/keyring/fallback/FallbackProvider.java 2011-07-15 21:17:50.000000000 +0200 5 @@ -42,49 +42,41 @@ 6 7 package org.netbeans.modules.keyring.fallback; 8 9 -import java.util.Arrays; 10 -import java.util.HashMap; 11 -import java.util.Map; 12 import java.util.UUID; 13 -import java.util.concurrent.Callable; 14 import java.util.logging.Level; 15 import java.util.logging.Logger; 16 -import java.util.prefs.BackingStoreException; 17 -import java.util.prefs.Preferences; 18 -import org.netbeans.api.keyring.Keyring; 19 import org.netbeans.modules.keyring.impl.Utils; 20 import org.netbeans.modules.keyring.spi.EncryptionProvider; 21 import org.netbeans.spi.keyring.KeyringProvider; 22 -import org.openide.DialogDisplayer; 23 -import org.openide.NotifyDescriptor; 24 -import org.openide.util.Lookup; 25 -import org.openide.util.NbBundle; 26 -import org.openide.util.NbPreferences; 27 -import org.openide.util.lookup.ServiceProvider; 28 29 /** 30 * Platform-independent keyring provider using a master password and the user directory. 31 */ 32 -@ServiceProvider(service=KeyringProvider.class, position=1000) 33 -public class FallbackProvider implements KeyringProvider, Callable<Void> { 34 +public class FallbackProvider implements KeyringProvider { 35 36 private static final Logger LOG = Logger.getLogger(FallbackProvider.class.getName()); 37 private static final String DESCRIPTION = ".description"; 38 private static final String SAMPLE_KEY = "__sample__"; 39 40 private EncryptionProvider encryption; 41 - 42 + private IPreferences pre; 43 + 44 + // simple interface for a generic preferences store 45 + public interface IPreferences { 46 + String get(String key, String def); 47 + void put(String key, String val); 48 + void remove(String key); 49 + } 50 + 51 + public FallbackProvider(EncryptionProvider encryption, IPreferences pref) { 52 + this.encryption = encryption; 53 + this.pre = pref; 54 + } 55 + 56 public boolean enabled() { 57 - for (EncryptionProvider p : Lookup.getDefault().lookupAll(EncryptionProvider.class)) { 58 - if (p.enabled()) { 59 - encryption = p; 60 - Preferences prefs = prefs(); 61 - Utils.goMinusR(prefs); 62 - p.encryptionChangingCallback(this); 63 - if (!testSampleKey(prefs)) { 64 - continue; 65 - } 66 - LOG.log(Level.FINE, "Using provider: {0}", p); 67 + if (encryption.enabled()) { 68 + if (testSampleKey()) { 69 + LOG.log(Level.FINE, "Using provider: {0}", encryption); 70 return true; 71 } 72 } 73 @@ -92,65 +84,21 @@ 74 return false; 75 } 76 77 - private boolean testSampleKey(Preferences prefs) { 78 - byte[] ciphertext = prefs.getByteArray(SAMPLE_KEY, null); 79 - if (ciphertext == null) { 80 - encryption.freshKeyring(true); 81 - if (_save(SAMPLE_KEY, (SAMPLE_KEY + UUID.randomUUID()).toCharArray(), 82 - NbBundle.getMessage(FallbackProvider.class, "FallbackProvider.sample_key.description"))) { 83 - LOG.fine("saved sample key"); 84 - return true; 85 - } else { 86 - LOG.fine("could not save sample key"); 87 - return false; 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 { 96 - encryption.freshKeyring(false); 97 - while (true) { 98 - try { 99 - if (new String(encryption.decrypt(ciphertext)).startsWith(SAMPLE_KEY)) { 100 - LOG.fine("succeeded in decrypting sample key"); 101 - return true; 102 - } else { 103 - LOG.fine("wrong result decrypting sample key"); 104 - } 105 - } catch (Exception x) { 106 - LOG.log(Level.FINE, "failed to decrypt sample key", x); 107 - } 108 - if (!encryption.decryptionFailed()) { 109 - LOG.fine("sample key decryption failed"); 110 - return promptToDelete(prefs); 111 - } 112 - LOG.fine("will retry decryption of sample key"); 113 - } 114 - } 115 - } 116 - 117 - private boolean promptToDelete(Preferences prefs) { 118 - Object result = DialogDisplayer.getDefault().notify(new NotifyDescriptor.Confirmation( 119 - NbBundle.getMessage(FallbackProvider.class, "FallbackProvider.msg_clear_keys"), 120 - NbBundle.getMessage(FallbackProvider.class, "FallbackProvider.title_clear_keys"), 121 - NotifyDescriptor.OK_CANCEL_OPTION)); 122 - if (result == NotifyDescriptor.OK_OPTION) { 123 - try { 124 - LOG.log(Level.FINE, "agreed to delete stored passwords: {0}", Arrays.asList(prefs.keys())); 125 - prefs.clear(); 126 - return testSampleKey(prefs); 127 - } catch (BackingStoreException x) { 128 - LOG.log(Level.INFO, null, x); 129 - } 130 - } else { 131 - LOG.fine("refused to delete stored passwords"); 132 + LOG.fine("could not save sample key"); 133 + return false; 134 } 135 - return false; 136 - } 137 - 138 - private Preferences prefs() { 139 - return NbPreferences.forModule(Keyring.class).node(encryption.id()); 140 } 141 142 public char[] read(String key) { 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()); 146 if (ciphertext == null) { 147 return null; 148 } 149 @@ -166,47 +114,24 @@ 150 _save(key, password, description); 151 } 152 private boolean _save(String key, char[] password, String description) { 153 - Preferences prefs = prefs(); 154 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); 159 } catch (Exception x) { 160 LOG.log(Level.FINE, "failed to encrypt password for " + key, x); 161 return false; 162 } 163 if (description != null) { 164 // Preferences interface gives no access to *.properties comments, so: 165 - prefs.put(key + DESCRIPTION, description); 166 + pre.put(key + DESCRIPTION, description); 167 } 168 return true; 169 } 170 171 public void delete(String key) { 172 - Preferences prefs = prefs(); 173 - prefs.remove(key); 174 - prefs.remove(key + DESCRIPTION); 175 - } 176 - 177 - public Void call() throws Exception { // encryption changing 178 - LOG.fine("encryption changing"); 179 - Map<String,char[]> saved = new HashMap<String,char[]>(); 180 - Preferences prefs = prefs(); 181 - for (String k : prefs.keys()) { 182 - if (k.endsWith(DESCRIPTION)) { 183 - continue; 184 - } 185 - byte[] ciphertext = prefs.getByteArray(k, null); 186 - if (ciphertext == null) { 187 - continue; 188 - } 189 - saved.put(k, encryption.decrypt(ciphertext)); 190 - } 191 - LOG.log(Level.FINE, "reencrypting keys: {0}", saved.keySet()); 192 - encryption.encryptionChanged(); 193 - for (Map.Entry<String,char[]> entry : saved.entrySet()) { 194 - prefs.putByteArray(entry.getKey(), encryption.encrypt(entry.getValue())); 195 - } 196 - LOG.fine("encryption changing finished"); 197 - return null; 198 + pre.remove(key); 199 + pre.remove(key + DESCRIPTION); 200 } 201 202 } 203 Index: native-password-manager/src/org/netbeans/modules/keyring/gnome/GnomeProvider.java 204 =================================================================== 205 --- native-password-manager.orig/src/org/netbeans/modules/keyring/gnome/GnomeProvider.java 2011-07-15 21:53:22.269122311 +0200 206 +++ native-password-manager/src/org/netbeans/modules/keyring/gnome/GnomeProvider.java 2011-07-15 21:17:50.000000000 +0200 207 @@ -43,16 +43,11 @@ 208 package org.netbeans.modules.keyring.gnome; 209 210 import com.sun.jna.Pointer; 211 -import java.text.MessageFormat; 212 -import java.util.MissingResourceException; 213 import java.util.logging.Level; 214 import java.util.logging.Logger; 215 import static org.netbeans.modules.keyring.gnome.GnomeKeyringLibrary.*; 216 import org.netbeans.spi.keyring.KeyringProvider; 217 -import org.openide.util.NbBundle; 218 -import org.openide.util.lookup.ServiceProvider; 219 220 -@ServiceProvider(service=KeyringProvider.class, position=100) 221 public class GnomeProvider implements KeyringProvider { 222 223 private static final Logger LOG = Logger.getLogger(GnomeProvider.class.getName()); 224 @@ -74,14 +69,7 @@ 225 LOG.fine("no GNOME_KEYRING_* environment variable set"); 226 return false; 227 } 228 - String appName; 229 - try { 230 - appName = MessageFormat.format( 231 - NbBundle.getBundle("org.netbeans.core.windows.view.ui.Bundle").getString("CTL_MainWindow_Title_No_Project"), 232 - /*System.getProperty("netbeans.buildnumber")*/"…"); 233 - } catch (MissingResourceException x) { 234 - appName = "NetBeans"; // NOI18N 235 - } 236 + String appName = "JOSM"; 237 try { 238 // Need to do this somewhere, or we get warnings on console. 239 // Also used by confirmation dialogs to give the app access to the login keyring. 240 Index: native-password-manager/src/org/netbeans/modules/keyring/kde/KWalletProvider.java 241 =================================================================== 242 --- native-password-manager.orig/src/org/netbeans/modules/keyring/kde/KWalletProvider.java 2011-07-15 21:53:37.837199499 +0200 243 +++ native-password-manager/src/org/netbeans/modules/keyring/kde/KWalletProvider.java 2011-07-15 21:17:50.000000000 +0200 244 @@ -45,20 +45,15 @@ 245 import java.io.BufferedReader; 246 import java.io.IOException; 247 import java.io.InputStreamReader; 248 -import java.text.MessageFormat; 249 import java.util.Arrays; 250 -import java.util.MissingResourceException; 251 import java.util.logging.Level; 252 import java.util.logging.Logger; 253 import org.netbeans.spi.keyring.KeyringProvider; 254 -import org.openide.util.NbBundle; 255 -import org.openide.util.lookup.ServiceProvider; 256 257 /** 258 * 259 * @author psychollek, ynov 260 */ 261 -@ServiceProvider(service=KeyringProvider.class, position=99) 262 public class KWalletProvider implements KeyringProvider{ 263 264 private static final Logger logger = Logger.getLogger(KWalletProvider.class.getName()); 265 @@ -221,13 +216,7 @@ 266 } 267 268 private char[] getApplicationName(boolean version){ 269 - String appName; 270 - try { 271 - appName = MessageFormat.format(NbBundle.getBundle("org.netbeans.core.windows.view.ui.Bundle").getString("CTL_MainWindow_Title_No_Project"),version ? System.getProperty("netbeans.buildnumber"):""); 272 - } catch (MissingResourceException x) { 273 - appName = "NetBeans"+(version? " "+System.getProperty("netbeans.buildnumber"):""); 274 - } 275 - return appName.toCharArray(); 276 + return "JOSM".toCharArray(); 277 } 278 279 private void warning(String descr) { 280 Index: native-password-manager/src/org/netbeans/modules/keyring/mac/MacProvider.java 281 =================================================================== 282 --- native-password-manager.orig/src/org/netbeans/modules/keyring/mac/MacProvider.java 2011-07-15 21:53:47.897249389 +0200 283 +++ native-password-manager/src/org/netbeans/modules/keyring/mac/MacProvider.java 2011-07-15 21:17:50.000000000 +0200 284 @@ -47,26 +47,19 @@ 285 import java.util.logging.Level; 286 import java.util.logging.Logger; 287 import org.netbeans.spi.keyring.KeyringProvider; 288 -import org.openide.util.Utilities; 289 -import org.openide.util.lookup.ServiceProvider; 290 291 -@ServiceProvider(service=KeyringProvider.class, position=200) 292 public class MacProvider implements KeyringProvider { 293 294 private static final Logger LOG = Logger.getLogger(MacProvider.class.getName()); 295 296 public boolean enabled() { 297 - if (Boolean.getBoolean("netbeans.keyring.no.native")) { 298 - LOG.fine("native keyring integration disabled"); 299 - return false; 300 - } 301 - return Utilities.isMac(); 302 + return true; // test elsewhere if we are on a mac 303 } 304 305 public char[] read(String key) { 306 try { 307 byte[] serviceName = key.getBytes("UTF-8"); 308 - byte[] accountName = "NetBeans".getBytes("UTF-8"); 309 + byte[] accountName = "JOSM".getBytes("UTF-8"); 310 int[] dataLength = new int[1]; 311 Pointer[] data = new Pointer[1]; 312 error("find", SecurityLibrary.LIBRARY.SecKeychainFindGenericPassword(null, serviceName.length, serviceName, 313 @@ -86,7 +79,7 @@ 314 delete(key); // XXX supposed to use SecKeychainItemModifyContent instead, but this seems like too much work 315 try { 316 byte[] serviceName = key.getBytes("UTF-8"); 317 - byte[] accountName = "NetBeans".getBytes("UTF-8"); 318 + byte[] accountName = "JOSM".getBytes("UTF-8"); 319 // Keychain Access seems to expect UTF-8, so do not use Utils.chars2Bytes: 320 byte[] data = new String(password).getBytes("UTF-8"); 321 error("save", SecurityLibrary.LIBRARY.SecKeychainAddGenericPassword(null, serviceName.length, serviceName, 322 @@ -100,7 +93,7 @@ 323 public void delete(String key) { 324 try { 325 byte[] serviceName = key.getBytes("UTF-8"); 326 - byte[] accountName = "NetBeans".getBytes("UTF-8"); 327 + byte[] accountName = "JOSM".getBytes("UTF-8"); 328 Pointer[] itemRef = new Pointer[1]; 329 error("find (for delete)", SecurityLibrary.LIBRARY.SecKeychainFindGenericPassword(null, serviceName.length, serviceName, 330 accountName.length, accountName, null, null, itemRef)); 331 Index: native-password-manager/src/org/netbeans/modules/keyring/win32/Win32Protect.java 332 =================================================================== 333 --- native-password-manager.orig/src/org/netbeans/modules/keyring/win32/Win32Protect.java 2011-07-15 21:53:58.733303122 +0200 334 +++ native-password-manager/src/org/netbeans/modules/keyring/win32/Win32Protect.java 2011-07-15 21:17:50.000000000 +0200 335 @@ -54,28 +54,18 @@ 336 import java.util.logging.Logger; 337 import org.netbeans.modules.keyring.impl.Utils; 338 import org.netbeans.modules.keyring.spi.EncryptionProvider; 339 -import org.openide.util.Utilities; 340 -import org.openide.util.lookup.ServiceProvider; 341 342 /** 343 * Data protection utility for Microsoft Windows. 344 * XXX org.tmatesoft.svn.core.internal.util.jna.SVNWinCrypt is a possibly more robust implementation 345 * (though it seems to set CRYPTPROTECT_UI_FORBIDDEN which we do not necessarily want). 346 */ 347 -@ServiceProvider(service=EncryptionProvider.class, position=100) 348 public class Win32Protect implements EncryptionProvider { 349 350 private static final Logger LOG = Logger.getLogger(Win32Protect.class.getName()); 351 352 public @Override boolean enabled() { 353 - if (!Utilities.isWindows()) { 354 - LOG.fine("not running on Windows"); 355 - return false; 356 - } 357 - if (Boolean.getBoolean("netbeans.keyring.no.native")) { 358 - LOG.fine("native keyring integration disabled"); 359 - return false; 360 - } 361 + // asssume, we have windows os 362 try { 363 if (CryptLib.INSTANCE == null) { 364 LOG.fine("loadLibrary -> null");
Note:
See TracChangeset
for help on using the changeset viewer.