You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by se...@apache.org on 2016/06/29 21:01:07 UTC

commons-crypto git commit: Add Javadoc for props to enum so appears in Javadoc and IDE

Repository: commons-crypto
Updated Branches:
  refs/heads/master 6cbf4e90e -> 0226546f1


Add Javadoc for props to enum so appears in Javadoc and IDE

Project: http://git-wip-us.apache.org/repos/asf/commons-crypto/repo
Commit: http://git-wip-us.apache.org/repos/asf/commons-crypto/commit/0226546f
Tree: http://git-wip-us.apache.org/repos/asf/commons-crypto/tree/0226546f
Diff: http://git-wip-us.apache.org/repos/asf/commons-crypto/diff/0226546f

Branch: refs/heads/master
Commit: 0226546f1b1278f30657dfb5276331d935efc2c8
Parents: 6cbf4e9
Author: Sebb <se...@apache.org>
Authored: Wed Jun 29 22:01:03 2016 +0100
Committer: Sebb <se...@apache.org>
Committed: Wed Jun 29 22:01:03 2016 +0100

----------------------------------------------------------------------
 .../crypto/cipher/CryptoCipherFactory.java      | 14 ++++++++++
 .../apache/commons/crypto/cipher/JceCipher.java |  2 ++
 .../commons/crypto/cipher/OpensslCipher.java    |  2 ++
 .../crypto/random/CryptoRandomFactory.java      | 28 ++++++++++++++++++--
 .../commons/crypto/random/JavaCryptoRandom.java |  2 ++
 .../crypto/random/OpensslCryptoRandom.java      |  2 ++
 .../commons/crypto/random/OsCryptoRandom.java   |  2 ++
 7 files changed, 50 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/commons-crypto/blob/0226546f/src/main/java/org/apache/commons/crypto/cipher/CryptoCipherFactory.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/crypto/cipher/CryptoCipherFactory.java b/src/main/java/org/apache/commons/crypto/cipher/CryptoCipherFactory.java
index 7c5c558..d9047cd 100644
--- a/src/main/java/org/apache/commons/crypto/cipher/CryptoCipherFactory.java
+++ b/src/main/java/org/apache/commons/crypto/cipher/CryptoCipherFactory.java
@@ -36,11 +36,25 @@ public class CryptoCipherFactory {
      * <p>
      * <code>
      * props.setProperty(CIPHER_CLASSES_KEY, CipherProvider.OPENSSL.getClassName());
+     * props.setProperty(...); // if required by the implementation
+     * cipher = CryptoCipherFactory.getInstance(transformation, props);
      * </code>
      */
     public enum CipherProvider {
 
+        /**
+         * The OpenSSL cipher implementation (using JNI)
+         * <p>
+         * This implementation does not use any properties
+         */
         OPENSSL(OpensslCipher.class),
+        
+        /**
+         * The JCE cipher implementation from the JVM
+         * <p>
+         * uses {@link ConfigurationKeys#CIPHER_JCE_PROVIDER_KEY}) as the provider name.
+         * This is optional
+         */
         JCE(JceCipher.class);
 
         private final Class<? extends CryptoCipher> klass;

http://git-wip-us.apache.org/repos/asf/commons-crypto/blob/0226546f/src/main/java/org/apache/commons/crypto/cipher/JceCipher.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/crypto/cipher/JceCipher.java b/src/main/java/org/apache/commons/crypto/cipher/JceCipher.java
index 4205b48..d09a65a 100644
--- a/src/main/java/org/apache/commons/crypto/cipher/JceCipher.java
+++ b/src/main/java/org/apache/commons/crypto/cipher/JceCipher.java
@@ -46,6 +46,8 @@ class JceCipher implements CryptoCipher {
      * @param transformation  transformation for JCE cipher (algorithm/mode/padding)
      * @throws GeneralSecurityException if JCE cipher initialize failed
      */
+    // N.B. this class is not public/protected so does not appear in the main Javadoc
+    // Please ensure that property use is documented in the enum CryptoRandomFactory.RandomProvider
     public JceCipher(Properties props, String transformation)
             throws GeneralSecurityException {
         String provider = getJCEProvider(props);

http://git-wip-us.apache.org/repos/asf/commons-crypto/blob/0226546f/src/main/java/org/apache/commons/crypto/cipher/OpensslCipher.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/crypto/cipher/OpensslCipher.java b/src/main/java/org/apache/commons/crypto/cipher/OpensslCipher.java
index b4366ab..06e3798 100644
--- a/src/main/java/org/apache/commons/crypto/cipher/OpensslCipher.java
+++ b/src/main/java/org/apache/commons/crypto/cipher/OpensslCipher.java
@@ -50,6 +50,8 @@ class OpensslCipher implements CryptoCipher {
      * @param transformation  transformation for OpenSSL cipher (algorithm/mode/padding)
      * @throws GeneralSecurityException if OpenSSL cipher initialize failed
      */
+    // N.B. this class is not public/protected so does not appear in the main Javadoc
+    // Please ensure that property use is documented in the enum CryptoRandomFactory.RandomProvider
     public OpensslCipher(Properties props, String transformation) // NOPMD
             throws GeneralSecurityException {
         this.transformation = transformation;

http://git-wip-us.apache.org/repos/asf/commons-crypto/blob/0226546f/src/main/java/org/apache/commons/crypto/random/CryptoRandomFactory.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/crypto/random/CryptoRandomFactory.java b/src/main/java/org/apache/commons/crypto/random/CryptoRandomFactory.java
index 81c18aa..659b9c1 100644
--- a/src/main/java/org/apache/commons/crypto/random/CryptoRandomFactory.java
+++ b/src/main/java/org/apache/commons/crypto/random/CryptoRandomFactory.java
@@ -35,14 +35,38 @@ public class CryptoRandomFactory {
      * Usage:
      * <p>
      * <code>
-     * props.setProperty(RANDOM_CLASSES_KEY, RandomProvider.OPENSSL
-     *         .getClassName());
+     * props.setProperty(RANDOM_CLASSES_KEY, RandomProvider.OPENSSL.getClassName());
+     * props.setProperty(...); // if required by the implementation
+     * random = CryptoRandomFactory.getCryptoRandom(transformation, props);
      * </code>
      */
     public enum RandomProvider {
 
+        /**
+         * The OpenSSL Random implementation (using JNI)
+         * <p>
+         * No properties are used for configuration, but they
+         * are passed to the JCE backup implementation (q.v.)
+         */
         OPENSSL(OpensslCryptoRandom.class),
+
+        /**
+         * The SecureRandom implementation from the JVM
+         * <p>
+         * Uses the property with key 
+         * {@link ConfigurationKeys#SECURE_RANDOM_JAVA_ALGORITHM_KEY SECURE_RANDOM_JAVA_ALGORITHM_KEY}
+         * with the default of 
+         * {@link ConfigurationKeys#SECURE_RANDOM_JAVA_ALGORITHM_DEFAULT SECURE_RANDOM_JAVA_ALGORITHM_DEFAULT}
+         */
         JCE(JavaCryptoRandom.class),
+
+        /**
+         * The OS random device implementation
+         * <p>
+         * Uses {@link ConfigurationKeys#SECURE_RANDOM_DEVICE_FILE_PATH_KEY} to determine the
+         * path to the random device, default is
+         * {@link ConfigurationKeys#SECURE_RANDOM_DEVICE_FILE_PATH_DEFAULT}
+         */
         OS(OsCryptoRandom.class);
 
         private final Class<? extends CryptoRandom> klass;

http://git-wip-us.apache.org/repos/asf/commons-crypto/blob/0226546f/src/main/java/org/apache/commons/crypto/random/JavaCryptoRandom.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/crypto/random/JavaCryptoRandom.java b/src/main/java/org/apache/commons/crypto/random/JavaCryptoRandom.java
index 0d95fc9..39e0d18 100644
--- a/src/main/java/org/apache/commons/crypto/random/JavaCryptoRandom.java
+++ b/src/main/java/org/apache/commons/crypto/random/JavaCryptoRandom.java
@@ -40,6 +40,8 @@ class JavaCryptoRandom implements CryptoRandom {
      * @throws NoSuchAlgorithmException if no Provider supports a
      *         SecureRandomSpi implementation for the specified algorithm.
      */
+    // N.B. this class is not public/protected so does not appear in the main Javadoc
+    // Please ensure that property use is documented in the enum CryptoRandomFactory.RandomProvider
     public JavaCryptoRandom(Properties properties)
             throws NoSuchAlgorithmException {
         instance = SecureRandom

http://git-wip-us.apache.org/repos/asf/commons-crypto/blob/0226546f/src/main/java/org/apache/commons/crypto/random/OpensslCryptoRandom.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/crypto/random/OpensslCryptoRandom.java b/src/main/java/org/apache/commons/crypto/random/OpensslCryptoRandom.java
index 7401f03..23ab482 100644
--- a/src/main/java/org/apache/commons/crypto/random/OpensslCryptoRandom.java
+++ b/src/main/java/org/apache/commons/crypto/random/OpensslCryptoRandom.java
@@ -78,6 +78,8 @@ class OpensslCryptoRandom extends Random implements CryptoRandom {
      * @throws NoSuchAlgorithmException if no Provider supports a
      *         SecureRandomSpi implementation for the specified algorithm.
      */
+    // N.B. this class is not public/protected so does not appear in the main Javadoc
+    // Please ensure that property use is documented in the enum CryptoRandomFactory.RandomProvider
     public OpensslCryptoRandom(Properties props)
             throws NoSuchAlgorithmException {
         //fallback needs to be initialized here in any case cause even if

http://git-wip-us.apache.org/repos/asf/commons-crypto/blob/0226546f/src/main/java/org/apache/commons/crypto/random/OsCryptoRandom.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/crypto/random/OsCryptoRandom.java b/src/main/java/org/apache/commons/crypto/random/OsCryptoRandom.java
index 6b2fb0c..8ea2add 100644
--- a/src/main/java/org/apache/commons/crypto/random/OsCryptoRandom.java
+++ b/src/main/java/org/apache/commons/crypto/random/OsCryptoRandom.java
@@ -66,6 +66,8 @@ class OsCryptoRandom extends Random implements CryptoRandom {
      * path to the random device, default is
      * {@link ConfigurationKeys#SECURE_RANDOM_DEVICE_FILE_PATH_DEFAULT}
      */
+    // N.B. this class is not public/protected so does not appear in the main Javadoc
+    // Please ensure that property use is documented in the enum CryptoRandomFactory.RandomProvider
     public OsCryptoRandom(Properties props) {
         File randomDevFile = new File(getRandomDevPath(props));