Class Settings

  • All Implemented Interfaces:
    java.util.Map<java.lang.String,​java.lang.String>

    public class Settings
    extends java.lang.Object
    implements java.util.Map<java.lang.String,​java.lang.String>
    Maintains persistent settings for bnd (or other apps). The default is ~/.bnd/settings.json). The settings are normal string properties but it specially maintains a public/private key pair and it provides a method to sign a byte array with this pair.

    Why not keystore and preferences? Well, keystore is hard to use (you can only store a private key when you have a certificate, but you cannot create a certificate without using com.sun classes) and preferences are not editable.

    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  Settings.Data  
      • Nested classes/interfaces inherited from interface java.util.Map

        java.util.Map.Entry<K extends java.lang.Object,​V extends java.lang.Object>
    • Constructor Summary

      Constructors 
      Constructor Description
      Settings()  
      Settings​(java.lang.String where)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void clear()  
      boolean containsKey​(java.lang.Object key)  
      boolean containsValue​(java.lang.Object value)  
      java.util.Set<java.util.Map.Entry<java.lang.String,​java.lang.String>> entrySet()  
      void generate()  
      void generate​(char[] password)  
      java.lang.String get​(java.lang.Object key)  
      java.lang.String getEmail()  
      java.lang.String getName()  
      byte[] getPrivateKey()
      Return an encoded private RSA key.
      byte[] getPublicKey()
      Return an encoded public RSA key.
      boolean isDirty()  
      boolean isEmpty()  
      java.util.Set<java.lang.String> keySet()  
      boolean load()  
      boolean load​(char[] password)  
      java.lang.String put​(java.lang.String key, java.lang.String value)  
      void putAll​(java.util.Map<? extends java.lang.String,​? extends java.lang.String> v)  
      java.lang.String remove​(java.lang.Object key)  
      void save()  
      void save​(char[] password)  
      void setEmail​(java.lang.String email)  
      void setKeyPair​(byte[] id, byte[] secret)  
      void setName​(java.lang.String v)  
      byte[] sign​(byte[] con)
      Sign a byte array
      int size()  
      java.lang.String toString()  
      java.util.Collection<java.lang.String> values()  
      boolean verify​(byte[] con)
      Verify a signed byte array
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface java.util.Map

        compute, computeIfAbsent, computeIfPresent, equals, forEach, getOrDefault, hashCode, merge, putIfAbsent, remove, replace, replace, replaceAll
    • Constructor Detail

      • Settings

        public Settings()
      • Settings

        public Settings​(java.lang.String where)
    • Method Detail

      • load

        public boolean load()
      • load

        public boolean load​(char[] password)
      • save

        public void save()
      • save

        public void save​(char[] password)
      • generate

        public void generate()
                      throws java.lang.Exception
        Throws:
        java.lang.Exception
      • generate

        public void generate​(char[] password)
                      throws java.lang.Exception
        Throws:
        java.lang.Exception
      • getEmail

        public java.lang.String getEmail()
      • setEmail

        public void setEmail​(java.lang.String email)
      • setKeyPair

        public void setKeyPair​(byte[] id,
                               byte[] secret)
                        throws java.lang.Exception
        Throws:
        java.lang.Exception
      • setName

        public void setName​(java.lang.String v)
      • getName

        public java.lang.String getName()
      • getPublicKey

        public byte[] getPublicKey()
                            throws java.lang.Exception
        Return an encoded public RSA key. this key can be decoded with an X509EncodedKeySpec
        Returns:
        an encoded public key.
        Throws:
        java.lang.Exception
      • getPrivateKey

        public byte[] getPrivateKey()
                             throws java.lang.Exception
        Return an encoded private RSA key. this key can be decoded with an PKCS8EncodedKeySpec
        Returns:
        an encoded private key.
        Throws:
        java.lang.Exception
      • sign

        public byte[] sign​(byte[] con)
                    throws java.lang.Exception
        Sign a byte array
        Throws:
        java.lang.Exception
      • verify

        public boolean verify​(byte[] con)
                       throws java.lang.Exception
        Verify a signed byte array
        Throws:
        java.lang.Exception
      • clear

        public void clear()
        Specified by:
        clear in interface java.util.Map<java.lang.String,​java.lang.String>
      • containsKey

        public boolean containsKey​(java.lang.Object key)
        Specified by:
        containsKey in interface java.util.Map<java.lang.String,​java.lang.String>
      • containsValue

        public boolean containsValue​(java.lang.Object value)
        Specified by:
        containsValue in interface java.util.Map<java.lang.String,​java.lang.String>
      • entrySet

        public java.util.Set<java.util.Map.Entry<java.lang.String,​java.lang.String>> entrySet()
        Specified by:
        entrySet in interface java.util.Map<java.lang.String,​java.lang.String>
      • get

        public java.lang.String get​(java.lang.Object key)
        Specified by:
        get in interface java.util.Map<java.lang.String,​java.lang.String>
      • isEmpty

        public boolean isEmpty()
        Specified by:
        isEmpty in interface java.util.Map<java.lang.String,​java.lang.String>
      • keySet

        public java.util.Set<java.lang.String> keySet()
        Specified by:
        keySet in interface java.util.Map<java.lang.String,​java.lang.String>
      • put

        public java.lang.String put​(java.lang.String key,
                                    java.lang.String value)
        Specified by:
        put in interface java.util.Map<java.lang.String,​java.lang.String>
      • putAll

        public void putAll​(java.util.Map<? extends java.lang.String,​? extends java.lang.String> v)
        Specified by:
        putAll in interface java.util.Map<java.lang.String,​java.lang.String>
      • remove

        public java.lang.String remove​(java.lang.Object key)
        Specified by:
        remove in interface java.util.Map<java.lang.String,​java.lang.String>
      • size

        public int size()
        Specified by:
        size in interface java.util.Map<java.lang.String,​java.lang.String>
      • values

        public java.util.Collection<java.lang.String> values()
        Specified by:
        values in interface java.util.Map<java.lang.String,​java.lang.String>
      • isDirty

        public boolean isDirty()
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object