Ignore:
Timestamp:
2011-07-18T13:13:10+02:00 (13 years ago)
Author:
bastik
Message:

make it work for windows

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  
    11Index: native-password-manager/src/org/netbeans/modules/keyring/fallback/FallbackProvider.java
    22===================================================================
    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
     3--- 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
    55@@ -42,49 +42,41 @@
    66 
     
    4040     private EncryptionProvider encryption;
    4141-
    42 +    private IPreferences pre;
    43 +   
     42+    private IPreferences prefs;
     43+
    4444+    // simple interface for a generic preferences store
    4545+    public interface IPreferences {
    46 +        String get(String key, String def);
    47 +        void put(String key, String val);
     46+        byte[] getByteArray(String key, byte[] def);
     47+        void putByteArray(String key, byte[] val);
    4848+        void remove(String key);
    4949+    }
    5050+
    51 +    public FallbackProvider(EncryptionProvider encryption, IPreferences pref) {
     51+    public FallbackProvider(EncryptionProvider encryption, IPreferences prefs) {
    5252+        this.encryption = encryption;
    53 +        this.pre = pref;
     53+        this.prefs = prefs;
    5454+    }
    55 +   
     55+
    5656     public boolean enabled() {
    5757-        for (EncryptionProvider p : Lookup.getDefault().lookupAll(EncryptionProvider.class)) {
     
    7171             }
    7272         }
    73 @@ -92,65 +84,21 @@
     73@@ -92,65 +84,20 @@
    7474         return false;
    7575     }
     
    8787-                return false;
    8888-            }
    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 {
    9690-            encryption.freshKeyring(false);
    9791-            while (true) {
     
    128122-                LOG.log(Level.INFO, null, x);
    129123-            }
    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 {
    131131-            LOG.fine("refused to delete stored passwords");
    132132+            LOG.fine("could not save sample key");
     
    142142     public char[] read(String key) {
    143143-        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);
    146145         if (ciphertext == null) {
    147146             return null;
    148147         }
    149 @@ -166,47 +114,24 @@
     148@@ -166,47 +113,18 @@
    150149         _save(key, password, description);
    151150     }
     
    153152-        Preferences prefs = prefs();
    154153         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));
    159155         } catch (Exception x) {
    160156             LOG.log(Level.FINE, "failed to encrypt password for " + key, x);
    161157             return false;
    162158         }
    163          if (description != null) {
    164              // Preferences interface gives no access to *.properties comments, so:
     159-        if (description != null) {
     160-            // Preferences interface gives no access to *.properties comments, so:
    165161-            prefs.put(key + DESCRIPTION, description);
    166 +            pre.put(key + DESCRIPTION, description);
    167          }
     162-        }
    168163         return true;
    169164     }
     
    171166     public void delete(String key) {
    172167-        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 
    177172-    public Void call() throws Exception { // encryption changing
    178173-        LOG.fine("encryption changing");
     
    196191-        LOG.fine("encryption changing finished");
    197192-        return null;
    198 +        pre.remove(key);
    199 +        pre.remove(key + DESCRIPTION);
    200      }
    201  
     193-    }
     194-
    202195 }
    203196Index: native-password-manager/src/org/netbeans/modules/keyring/gnome/GnomeProvider.java
    204197===================================================================
    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
     198--- 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
    207200@@ -43,16 +43,11 @@
    208201 package org.netbeans.modules.keyring.gnome;
     
    240233Index: native-password-manager/src/org/netbeans/modules/keyring/kde/KWalletProvider.java
    241234===================================================================
    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
     235--- 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
    244237@@ -45,20 +45,15 @@
    245238 import java.io.BufferedReader;
     
    280273Index: native-password-manager/src/org/netbeans/modules/keyring/mac/MacProvider.java
    281274===================================================================
    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
     275--- 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
    284277@@ -47,26 +47,19 @@
    285278 import java.util.logging.Level;
     
    331324Index: native-password-manager/src/org/netbeans/modules/keyring/win32/Win32Protect.java
    332325===================================================================
    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
     326--- 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
    335328@@ -54,28 +54,18 @@
    336329 import java.util.logging.Logger;
  • applications/editors/josm/plugins/native-password-manager/src/org/netbeans/modules/keyring/fallback/FallbackProvider.java

    r26335 r26361  
    6060
    6161    private EncryptionProvider encryption;
    62     private IPreferences pre;
    63    
     62    private IPreferences prefs;
     63
    6464    // simple interface for a generic preferences store
    6565    public interface IPreferences {
    66         String get(String key, String def);
    67         void put(String key, String val);
     66        byte[] getByteArray(String key, byte[] def);
     67        void putByteArray(String key, byte[] val);
    6868        void remove(String key);
    6969    }
    7070
    71     public FallbackProvider(EncryptionProvider encryption, IPreferences pref) {
     71    public FallbackProvider(EncryptionProvider encryption, IPreferences prefs) {
    7272        this.encryption = encryption;
    73         this.pre = pref;
     73        this.prefs = prefs;
    7474    }
    75    
     75
    7676    public boolean enabled() {
    7777        if (encryption.enabled()) {
     
    9898
    9999    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);
    102101        if (ciphertext == null) {
    103102            return null;
     
    116115    private boolean _save(String key, char[] password, String description) {
    117116        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));
    121118        } catch (Exception x) {
    122119            LOG.log(Level.FINE, "failed to encrypt password for " + key, x);
    123120            return false;
    124         }
    125         if (description != null) {
    126             // Preferences interface gives no access to *.properties comments, so:
    127             pre.put(key + DESCRIPTION, description);
    128121        }
    129122        return true;
     
    131124
    132125    public void delete(String key) {
    133         pre.remove(key);
    134         pre.remove(key + DESCRIPTION);
     126        prefs.remove(key);
     127        prefs.remove(key + DESCRIPTION);
    135128    }
    136129
  • applications/editors/josm/plugins/native-password-manager/src/org/openstreetmap/josm/plugins/npm/InitializationWizard.java

    r26355 r26361  
    399399        NPMType[] potentialManagers;
    400400       
    401         if (Main.platform instanceof PlatformHookUnixoid) {
    402             potentialManagers = new NPMType[] { NPMType.GNOME_KEYRING, NPMType.KWALLET };
     401        if (Main.platform instanceof PlatformHookWindows) {
     402            potentialManagers = new NPMType[] { NPMType.CRYPT32 };
    403403        } else if (Main.platform instanceof PlatformHookOsx) {
    404404            potentialManagers = new NPMType[] { NPMType.KEYCHAIN };
    405         } else if (Main.platform instanceof PlatformHookWindows) {
    406             potentialManagers = new NPMType[] { NPMType.CRYPT32 };
     405        } else if (Main.platform instanceof PlatformHookUnixoid) {
     406            potentialManagers = new NPMType[] { NPMType.GNOME_KEYRING, NPMType.KWALLET };
    407407        } else
    408408            throw new AssertionError();
  • applications/editors/josm/plugins/native-password-manager/src/org/openstreetmap/josm/plugins/npm/Win32Provider.java

    r26335 r26361  
    11// License: GPL. For details, see LICENSE file.
    22package org.openstreetmap.josm.plugins.npm;
     3
     4import org.apache.commons.codec.binary.Base64;
    35
    46import org.netbeans.modules.keyring.fallback.FallbackProvider;
     
    911   
    1012    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);
    1317        }
    1418
    15         @Override public void put(String key, String val) {
    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));
    1721        }
    1822
Note: See TracChangeset for help on using the changeset viewer.