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));