diff options
Diffstat (limited to 'libjava/classpath/gnu/java/security/Properties.java')
-rw-r--r-- | libjava/classpath/gnu/java/security/Properties.java | 160 |
1 files changed, 67 insertions, 93 deletions
diff --git a/libjava/classpath/gnu/java/security/Properties.java b/libjava/classpath/gnu/java/security/Properties.java index 860b7d928ff..a515a54280a 100644 --- a/libjava/classpath/gnu/java/security/Properties.java +++ b/libjava/classpath/gnu/java/security/Properties.java @@ -38,38 +38,23 @@ exception statement from your version. */ package gnu.java.security; +import gnu.java.security.Configuration; + import java.io.FileInputStream; import java.io.IOException; -import java.io.PrintWriter; import java.security.AccessController; import java.security.PrivilegedAction; import java.util.HashMap; import java.util.PropertyPermission; +import java.util.logging.Logger; /** - * <p>A global object containing build-specific properties that affect the - * behaviour of the generated binaries from this library.</p> + * A global object containing build-specific properties that affect the + * behaviour of the generated binaries from this library. */ public final class Properties { - - // Debugging methods and variables - // ------------------------------------------------------------------------- - - private static final String NAME = "Properties"; - - private static final boolean DEBUG = false; - - // private static final int debuglevel = 9; - private static final PrintWriter err = new PrintWriter(System.out, true); - - private static void debug(final String s) - { - err.println(">>> " + NAME + ": " + s); - } - - // Constants and variables - // ------------------------------------------------------------------------- + private static final Logger log = Logger.getLogger(Properties.class.getName()); public static final String VERSION = "gnu.crypto.version"; @@ -95,9 +80,6 @@ public final class Properties private boolean doRSABlinding = true; - // Constructor(s) - // ------------------------------------------------------------------------- - /** Trivial constructor to enforce Singleton pattern. */ private Properties() { @@ -105,18 +87,15 @@ public final class Properties init(); } - // Class methods - // ------------------------------------------------------------------------- - /** - * <p>Returns the string representation of the library global configuration - * property with the designated <code>key</code>.</p> - * + * Returns the string representation of the library global configuration + * property with the designated <code>key</code>. + * * @param key the case-insensitive, non-null and non-empty name of a - * configuration property. + * configuration property. * @return the string representation of the designated property, or - * <code>null</code> if such property is not yet set, or <code>key</code> is - * empty. + * <code>null</code> if such property is not yet set, or + * <code>key</code> is empty. */ public static final synchronized String getProperty(String key) { @@ -132,13 +111,13 @@ public final class Properties } /** - * <p>Sets the value of a designated library global configuration property, - * to a string representation of what should be a legal value.</p> - * + * Sets the value of a designated library global configuration property, to a + * string representation of what should be a legal value. + * * @param key the case-insensitive, non-null and non-empty name of a - * configuration property. - * @param value the non-null, non-empty string representation of a legal - * value of the configuration property named by <code>key</code>. + * configuration property. + * @param value the non-null, non-empty string representation of a legal value + * of the configuration property named by <code>key</code>. */ public static final synchronized void setProperty(String key, String value) { @@ -169,13 +148,14 @@ public final class Properties } /** - * <p>A convenience method that returns, as a boolean, the library global + * A convenience method that returns, as a boolean, the library global * configuration property indicating if the default Pseudo Random Number - * Generator produces, or not, the same bit stream when instantiated.</p> - * - * @return <code>true</code> if the default PRNG produces the same bit stream - * with every VM instance. Returns <code>false</code> if the default PRNG is - * seeded with the time of day of its first invocation. + * Generator produces, or not, the same bit stream when instantiated. + * + * @return <code>true</code> if the default PRNG produces the same bit + * stream with every VM instance. Returns <code>false</code> if the + * default PRNG is seeded with the time of day of its first + * invocation. */ public static final synchronized boolean isReproducible() { @@ -186,15 +166,15 @@ public final class Properties } /** - * <p>A convenience method that returns, as a boolean, the library global - * configuration property indicating if the implementations of symmetric - * key block ciphers check, or not, for possible/potential weak and semi-weak - * keys that may be produced in the course of generating round encryption - * and/or decryption keys.</p> - * - * @return <code>true</code> if the cipher implementations check for weak and - * semi-weak keys. Returns <code>false</code> if the cipher implementations - * do not check for weak or semi-weak keys. + * A convenience method that returns, as a boolean, the library global + * configuration property indicating if the implementations of symmetric key + * block ciphers check, or not, for possible/potential weak and semi-weak keys + * that may be produced in the course of generating round encryption and/or + * decryption keys. + * + * @return <code>true</code> if the cipher implementations check for weak + * and semi-weak keys. Returns <code>false</code> if the cipher + * implementations do not check for weak or semi-weak keys. */ public static final synchronized boolean checkForWeakKeys() { @@ -205,13 +185,14 @@ public final class Properties } /** - * <p>A convenience method that returns, as a boolean, the library global + * A convenience method that returns, as a boolean, the library global * configuration property indicating if RSA decryption (RSADP primitive), - * does, or not, blinding against timing attacks.</p> - * + * does, or not, blinding against timing attacks. + * * @return <code>true</code> if the RSA decryption primitive includes a - * blinding operation. Returns <code>false</code> if the RSA decryption - * primitive does not include the additional blinding operation. + * blinding operation. Returns <code>false</code> if the RSA + * decryption primitive does not include the additional blinding + * operation. */ public static final synchronized boolean doRSABlinding() { @@ -222,11 +203,11 @@ public final class Properties } /** - * <p>A convenience method to set the global property for reproducibility of - * the default PRNG bit stream output.</p> - * + * A convenience method to set the global property for reproducibility of the + * default PRNG bit stream output. + * * @param value if <code>true</code> then the default PRNG bit stream output - * is the same with every invocation of the VM. + * is the same with every invocation of the VM. */ public static final synchronized void setReproducible(final boolean value) { @@ -238,12 +219,12 @@ public final class Properties } /** - * <p>A convenience method to set the global property for checking for weak - * and semi-weak cipher keys.</p> - * + * A convenience method to set the global property for checking for weak and + * semi-weak cipher keys. + * * @param value if <code>true</code> then the cipher implementations will - * invoke additional checks for weak and semi-weak key values that may get - * generated. + * invoke additional checks for weak and semi-weak key values that + * may get generated. */ public static final synchronized void setCheckForWeakKeys(final boolean value) { @@ -255,11 +236,11 @@ public final class Properties } /** - * <p>A convenience method to set the global property fo adding a blinding - * operation when executing the RSA decryption primitive.</p> - * + * A convenience method to set the global property fo adding a blinding + * operation when executing the RSA decryption primitive. + * * @param value if <code>true</code> then the code for performing the RSA - * decryption primitive will include a blinding operation. + * decryption primitive will include a blinding operation. */ public static final synchronized void setDoRSABlinding(final boolean value) { @@ -277,15 +258,12 @@ public final class Properties return singleton; } - // Instance methods - // ------------------------------------------------------------------------- private void init() { // default values props.put(REPRODUCIBLE_PRNG, (reproducible ? "true" : "false")); props.put(CHECK_WEAK_KEYS, (checkForWeakKeys ? "true" : "false")); props.put(DO_RSA_BLINDING, (doRSABlinding ? "true" : "false")); - // 1. allow site-wide override by reading a properties file String propFile = null; try @@ -300,9 +278,8 @@ public final class Properties } catch (SecurityException se) { - if (DEBUG) - debug("Reading property " + PROPERTIES_FILE - + " not allowed. Ignored."); + if (Configuration.DEBUG) + log.fine("Reading property " + PROPERTIES_FILE + " not allowed. Ignored."); } if (propFile != null) { @@ -316,27 +293,24 @@ public final class Properties } catch (IOException ioe) { - if (DEBUG) - debug("IO error reading " + propFile + ": " + ioe.getMessage()); + if (Configuration.DEBUG) + log.fine("IO error reading " + propFile + ": " + ioe.getMessage()); } catch (SecurityException se) { - if (DEBUG) - debug("Security error reading " + propFile + ": " - + se.getMessage()); + if (Configuration.DEBUG) + log.fine("Security error reading " + propFile + ": " + + se.getMessage()); } } - // 2. allow vm-specific override by allowing -D options in launcher handleBooleanProperty(REPRODUCIBLE_PRNG); handleBooleanProperty(CHECK_WEAK_KEYS); handleBooleanProperty(DO_RSA_BLINDING); - // re-sync the 'known' properties reproducible = Boolean.valueOf((String) props.get(REPRODUCIBLE_PRNG)).booleanValue(); checkForWeakKeys = Boolean.valueOf((String) props.get(CHECK_WEAK_KEYS)).booleanValue(); doRSABlinding = Boolean.valueOf((String) props.get(DO_RSA_BLINDING)).booleanValue(); - // This does not change. props.put(VERSION, Registry.VERSION_STRING); } @@ -350,24 +324,24 @@ public final class Properties } catch (SecurityException x) { - if (DEBUG) - debug("SecurityManager forbids reading system properties. Ignored"); + if (Configuration.DEBUG) + log.fine("SecurityManager forbids reading system properties. Ignored"); } if (s != null) { s = s.trim().toLowerCase(); - // we have to test for explicit "true" or "false". anything else may + // we have to test for explicit "true" or "false". anything else may // hide valid value set previously if (s.equals(TRUE) || s.equals(FALSE)) { - if (DEBUG) - debug("Setting " + name + " to '" + s + "'"); + if (Configuration.DEBUG) + log.fine("Setting " + name + " to '" + s + "'"); props.put(name, s); } else { - if (DEBUG) - debug("Invalid value for -D" + name + ": " + s + ". Ignored"); + if (Configuration.DEBUG) + log.fine("Invalid value for -D" + name + ": " + s + ". Ignored"); } } } |