Package aQute.lib.settings
Class Settings
- java.lang.Object
-
- aQute.lib.settings.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
-
Field Summary
Fields Modifier and Type Field Description (package private) static JSONCodec
codec
(package private) Settings.Data
data
private boolean
dirty
private boolean
loaded
private char[]
password
private java.security.PrivateKey
privateKey
private java.security.PublicKey
publicKey
private java.io.File
where
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private void
check()
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.private void
initKeys()
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 arrayint
size()
java.lang.String
toString()
java.util.Collection<java.lang.String>
values()
boolean
verify(byte[] con)
Verify a signed byte array
-
-
-
Field Detail
-
codec
static JSONCodec codec
-
where
private final java.io.File where
-
publicKey
private java.security.PublicKey publicKey
-
privateKey
private java.security.PrivateKey privateKey
-
loaded
private boolean loaded
-
dirty
private boolean dirty
-
data
Settings.Data data
-
password
private char[] password
-
-
Method Detail
-
load
public boolean load()
-
load
public boolean load(char[] password)
-
check
private void check()
-
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
-
initKeys
private void initKeys() throws java.lang.Exception
- 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 interfacejava.util.Map<java.lang.String,java.lang.String>
-
containsKey
public boolean containsKey(java.lang.Object key)
- Specified by:
containsKey
in interfacejava.util.Map<java.lang.String,java.lang.String>
-
containsValue
public boolean containsValue(java.lang.Object value)
- Specified by:
containsValue
in interfacejava.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 interfacejava.util.Map<java.lang.String,java.lang.String>
-
get
public java.lang.String get(java.lang.Object key)
- Specified by:
get
in interfacejava.util.Map<java.lang.String,java.lang.String>
-
isEmpty
public boolean isEmpty()
- Specified by:
isEmpty
in interfacejava.util.Map<java.lang.String,java.lang.String>
-
keySet
public java.util.Set<java.lang.String> keySet()
- Specified by:
keySet
in interfacejava.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 interfacejava.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 interfacejava.util.Map<java.lang.String,java.lang.String>
-
remove
public java.lang.String remove(java.lang.Object key)
- Specified by:
remove
in interfacejava.util.Map<java.lang.String,java.lang.String>
-
size
public int size()
- Specified by:
size
in interfacejava.util.Map<java.lang.String,java.lang.String>
-
values
public java.util.Collection<java.lang.String> values()
- Specified by:
values
in interfacejava.util.Map<java.lang.String,java.lang.String>
-
isDirty
public boolean isDirty()
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-