This is an automated email from the ASF dual-hosted git repository.
ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-crypto.git
The following commit(s) were added to refs/heads/master by this push:
new 8e6015e Use try-with-resources
8e6015e is described below
commit 8e6015e3f085f098c9b62b746e6e5b651401288a
Author: Gary Gregory <[email protected]>
AuthorDate: Mon Dec 12 07:03:02 2022 -0500
Use try-with-resources
Format
Javadoc
---
.../apache/commons/crypto/random/CryptoRandom.java | 3 +-
.../crypto/random/CryptoRandomFactoryTest.java | 108 ++++++++++-----------
.../apache/commons/crypto/random/DummyRandom.java | 6 +-
.../commons/crypto/random/FailingRandom.java | 4 +-
.../crypto/random/JavaCryptoRandomTest.java | 66 ++++++-------
.../crypto/random/OpenSslCryptoRandomTest.java | 43 ++++----
.../commons/crypto/random/OsCryptoRandomTest.java | 54 +++++------
7 files changed, 135 insertions(+), 149 deletions(-)
diff --git a/src/main/java/org/apache/commons/crypto/random/CryptoRandom.java
b/src/main/java/org/apache/commons/crypto/random/CryptoRandom.java
index e0d956f..a45a89d 100644
--- a/src/main/java/org/apache/commons/crypto/random/CryptoRandom.java
+++ b/src/main/java/org/apache/commons/crypto/random/CryptoRandom.java
@@ -22,7 +22,8 @@ import java.io.Closeable;
/**
* The interface for CryptoRandom.
* <p>
- * Note that implementations must provide a constructor that takes a
Properties instance
+ * Note that implementations must provide a constructor that takes a
Properties instance.
+ * </p>
*/
public interface CryptoRandom extends Closeable {
diff --git
a/src/test/java/org/apache/commons/crypto/random/CryptoRandomFactoryTest.java
b/src/test/java/org/apache/commons/crypto/random/CryptoRandomFactoryTest.java
index c27341c..dbaa567 100644
---
a/src/test/java/org/apache/commons/crypto/random/CryptoRandomFactoryTest.java
+++
b/src/test/java/org/apache/commons/crypto/random/CryptoRandomFactoryTest.java
@@ -1,20 +1,20 @@
- /*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
+/*
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements. See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership. The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License. You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
package org.apache.commons.crypto.random;
import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -22,92 +22,82 @@ import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.junit.jupiter.api.Assumptions.assumeTrue;
+import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.security.GeneralSecurityException;
import java.util.Properties;
import org.junit.jupiter.api.Test;
-
public class CryptoRandomFactoryTest {
@Test
public void testNull() {
- assertThrows(NullPointerException.class,
- () -> CryptoRandomFactory.getCryptoRandom(null));
+ assertThrows(NullPointerException.class, () ->
CryptoRandomFactory.getCryptoRandom(null));
}
@Test
public void testEmpty() throws Exception {
final Properties props = new Properties();
props.setProperty(CryptoRandomFactory.CLASSES_KEY, "");
- CryptoRandomFactory.getCryptoRandom(props);
+ CryptoRandomFactory.getCryptoRandom(props).close();
}
-
@Test
- public void testDefaultRandom() throws GeneralSecurityException {
+ public void testDefaultRandom() throws GeneralSecurityException,
IOException {
final Properties props = new Properties();
- final CryptoRandom random = CryptoRandomFactory.getCryptoRandom(props);
- final String name = random.getClass().getName();
- if (OpenSslCryptoRandom.isNativeCodeEnabled()) {
- assertEquals(OpenSslCryptoRandom.class.getName(), name);
- } else {
- assertEquals(JavaCryptoRandom.class.getName(), name);
+ try (final CryptoRandom random =
CryptoRandomFactory.getCryptoRandom(props)) {
+ final String name = random.getClass().getName();
+ if (OpenSslCryptoRandom.isNativeCodeEnabled()) {
+ assertEquals(OpenSslCryptoRandom.class.getName(), name);
+ } else {
+ assertEquals(JavaCryptoRandom.class.getName(), name);
+ }
}
}
@Test
- public void testGetOSRandom() throws GeneralSecurityException {
+ public void testGetOSRandom() throws GeneralSecurityException, IOException
{
// Windows does not have a /dev/random device
assumeTrue(!System.getProperty("os.name").contains("Windows"));
final Properties props = new Properties();
- props.setProperty(
- CryptoRandomFactory.CLASSES_KEY,
- CryptoRandomFactory.RandomProvider.OS.getClassName());
- final CryptoRandom random = CryptoRandomFactory.getCryptoRandom(props);
-
- assertEquals(OsCryptoRandom.class.getName(), random.getClass()
- .getName());
+ props.setProperty(CryptoRandomFactory.CLASSES_KEY,
CryptoRandomFactory.RandomProvider.OS.getClassName());
+ try (final CryptoRandom random =
CryptoRandomFactory.getCryptoRandom(props)) {
+ assertEquals(OsCryptoRandom.class.getName(),
random.getClass().getName());
+ }
}
@Test
- public void testFullClassName() throws GeneralSecurityException {
+ public void testFullClassName() throws GeneralSecurityException,
IOException {
final Properties props = new Properties();
- props.setProperty(
- CryptoRandomFactory.CLASSES_KEY,
- JavaCryptoRandom.class.getName());
- final CryptoRandom random = CryptoRandomFactory.getCryptoRandom(props);
-
- assertEquals(JavaCryptoRandom.class.getName(), random.getClass()
- .getName());
+ props.setProperty(CryptoRandomFactory.CLASSES_KEY,
JavaCryptoRandom.class.getName());
+ try (final CryptoRandom random =
CryptoRandomFactory.getCryptoRandom(props)) {
+ assertEquals(JavaCryptoRandom.class.getName(),
random.getClass().getName());
+ }
}
@Test
public void testInvalidRandom() {
final Properties properties = new Properties();
- properties.setProperty(
- CryptoRandomFactory.CLASSES_KEY,
- "InvalidCipherName");
+ properties.setProperty(CryptoRandomFactory.CLASSES_KEY,
"InvalidCipherName");
- assertThrows(GeneralSecurityException.class,
- () -> CryptoRandomFactory.getCryptoRandom(properties));
+ assertThrows(GeneralSecurityException.class, () ->
CryptoRandomFactory.getCryptoRandom(properties));
}
@Test
- public void testInvalidRandomClass() throws GeneralSecurityException {
+ public void testInvalidRandomClass() throws GeneralSecurityException,
IOException {
final Properties properties = new Properties();
- properties.setProperty(
- "org.apache.commons.crypto.cipher",
- "OpenSsl");
- final CryptoRandom rand =
CryptoRandomFactory.getCryptoRandom(properties);
- assertEquals(OpenSslCryptoRandom.class.getName(),
rand.getClass().getName());
+ properties.setProperty("org.apache.commons.crypto.cipher", "OpenSsl");
+ try (final CryptoRandom random =
CryptoRandomFactory.getCryptoRandom(properties)) {
+ assertEquals(OpenSslCryptoRandom.class.getName(),
random.getClass().getName());
+ }
}
@Test
- public void testDefaultRandomClass() throws GeneralSecurityException {
- final CryptoRandom rand = CryptoRandomFactory.getCryptoRandom();
- assertEquals(OpenSslCryptoRandom.class.getName(),
rand.getClass().getName());
+ public void testDefaultRandomClass() throws GeneralSecurityException,
IOException {
+ try (final CryptoRandom random =
CryptoRandomFactory.getCryptoRandom()) {
+ assertEquals(OpenSslCryptoRandom.class.getName(),
random.getClass().getName());
+ }
}
@Test
diff --git a/src/test/java/org/apache/commons/crypto/random/DummyRandom.java
b/src/test/java/org/apache/commons/crypto/random/DummyRandom.java
index 4d1b4ac..a240841 100644
--- a/src/test/java/org/apache/commons/crypto/random/DummyRandom.java
+++ b/src/test/java/org/apache/commons/crypto/random/DummyRandom.java
@@ -20,17 +20,19 @@ package org.apache.commons.crypto.random;
class DummyRandom implements CryptoRandom {
- // Should fail with NoSuchMethodException
+ /** Should fail with NoSuchMethodException. */
DummyRandom() {
-
+ // empty
}
@Override
public void close() {
+ // empty
}
@Override
public void nextBytes(final byte[] bytes) {
+ // empty
}
}
diff --git a/src/test/java/org/apache/commons/crypto/random/FailingRandom.java
b/src/test/java/org/apache/commons/crypto/random/FailingRandom.java
index 6600bc7..3f73709 100644
--- a/src/test/java/org/apache/commons/crypto/random/FailingRandom.java
+++ b/src/test/java/org/apache/commons/crypto/random/FailingRandom.java
@@ -21,17 +21,19 @@ import java.util.Properties;
class FailingRandom implements CryptoRandom {
- // Should fail with NoSuchMethodException
+ /** Should fail with NoSuchMethodException. */
FailingRandom(final Properties props) {
NoSuchMethod();
}
@Override
public void close() {
+ // empty
}
@Override
public void nextBytes(final byte[] bytes) {
+ // empty
}
public static native void NoSuchMethod();
diff --git
a/src/test/java/org/apache/commons/crypto/random/JavaCryptoRandomTest.java
b/src/test/java/org/apache/commons/crypto/random/JavaCryptoRandomTest.java
index 881fbe3..e4eb5bd 100644
--- a/src/test/java/org/apache/commons/crypto/random/JavaCryptoRandomTest.java
+++ b/src/test/java/org/apache/commons/crypto/random/JavaCryptoRandomTest.java
@@ -1,20 +1,20 @@
- /*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
+/*
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements. See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership. The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License. You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
package org.apache.commons.crypto.random;
import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -31,29 +31,25 @@ public class JavaCryptoRandomTest extends
AbstractRandomTest {
@Override
public CryptoRandom getCryptoRandom() throws GeneralSecurityException {
final Properties props = new Properties();
- props.setProperty(
- CryptoRandomFactory.CLASSES_KEY,
- JavaCryptoRandom.class.getName());
+ props.setProperty(CryptoRandomFactory.CLASSES_KEY,
JavaCryptoRandom.class.getName());
final CryptoRandom random = CryptoRandomFactory.getCryptoRandom(props);
- assertTrue(
- random instanceof JavaCryptoRandom,
- "The CryptoRandom should be: " +
JavaCryptoRandom.class.getName());
+ assertTrue(random instanceof JavaCryptoRandom, "The CryptoRandom
should be: " + JavaCryptoRandom.class.getName());
return random;
}
@Test
public void testNextIntIsntActuallyRandomNextInt() throws Exception {
- final CryptoRandom cr = getCryptoRandom();
- final Random r = (Random) cr;
- final long seed = 1654421930011L; // System.getCurrentMillis() on
2022-June-05, 11:39
- final Random otherRandom = new Random(seed);
- final Random otherRandom2 = new Random();
- otherRandom2.setSeed(seed);
- r.setSeed(seed);
- final long l1 = r.nextLong();
- final long l2 = otherRandom.nextLong();
- final long l3 = otherRandom2.nextLong();
- assertEquals(l2, l3);
- assertNotEquals(l1, l2);
+ final CryptoRandom cr = getCryptoRandom();
+ final Random r = (Random) cr;
+ final long seed = 1654421930011L; // System.getCurrentMillis() on
2022-June-05, 11:39
+ final Random otherRandom = new Random(seed);
+ final Random otherRandom2 = new Random();
+ otherRandom2.setSeed(seed);
+ r.setSeed(seed);
+ final long l1 = r.nextLong();
+ final long l2 = otherRandom.nextLong();
+ final long l3 = otherRandom2.nextLong();
+ assertEquals(l2, l3);
+ assertNotEquals(l1, l2);
}
}
diff --git
a/src/test/java/org/apache/commons/crypto/random/OpenSslCryptoRandomTest.java
b/src/test/java/org/apache/commons/crypto/random/OpenSslCryptoRandomTest.java
index a99ffdf..a9f86e2 100644
---
a/src/test/java/org/apache/commons/crypto/random/OpenSslCryptoRandomTest.java
+++
b/src/test/java/org/apache/commons/crypto/random/OpenSslCryptoRandomTest.java
@@ -1,23 +1,22 @@
- /*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
+/*
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements. See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership. The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License. You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
package org.apache.commons.crypto.random;
-
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.junit.jupiter.api.Assumptions.assumeTrue;
@@ -32,13 +31,9 @@ public class OpenSslCryptoRandomTest extends
AbstractRandomTest {
public CryptoRandom getCryptoRandom() throws GeneralSecurityException {
assumeTrue(Crypto.isNativeCodeLoaded());
final Properties props = new Properties();
- props.setProperty(
- CryptoRandomFactory.CLASSES_KEY,
- OpenSslCryptoRandom.class.getName());
+ props.setProperty(CryptoRandomFactory.CLASSES_KEY,
OpenSslCryptoRandom.class.getName());
final CryptoRandom random = CryptoRandomFactory.getCryptoRandom(props);
- assertTrue(
- random instanceof OpenSslCryptoRandom,
- "The CryptoRandom should be: " +
OpenSslCryptoRandom.class.getName());
+ assertTrue(random instanceof OpenSslCryptoRandom, "The CryptoRandom
should be: " + OpenSslCryptoRandom.class.getName());
return random;
}
diff --git
a/src/test/java/org/apache/commons/crypto/random/OsCryptoRandomTest.java
b/src/test/java/org/apache/commons/crypto/random/OsCryptoRandomTest.java
index b3b4044..4cb742f 100644
--- a/src/test/java/org/apache/commons/crypto/random/OsCryptoRandomTest.java
+++ b/src/test/java/org/apache/commons/crypto/random/OsCryptoRandomTest.java
@@ -32,33 +32,33 @@ import org.junit.jupiter.api.Test;
public class OsCryptoRandomTest extends AbstractRandomTest {
- @Override
- public CryptoRandom getCryptoRandom() throws GeneralSecurityException {
- // Windows does not have a /dev/random device
- assumeTrue(!System.getProperty("os.name").contains("Windows"));
- final Properties props = new Properties();
- props.setProperty(CryptoRandomFactory.CLASSES_KEY,
OsCryptoRandom.class.getName());
- final CryptoRandom random =
CryptoRandomFactory.getCryptoRandom(props);
- assertTrue(random instanceof OsCryptoRandom, "The CryptoRandom
should be: " + OsCryptoRandom.class.getName());
- return random;
- }
+ @Override
+ public CryptoRandom getCryptoRandom() throws GeneralSecurityException {
+ // Windows does not have a /dev/random device
+ assumeTrue(!System.getProperty("os.name").contains("Windows"));
+ final Properties props = new Properties();
+ props.setProperty(CryptoRandomFactory.CLASSES_KEY,
OsCryptoRandom.class.getName());
+ final CryptoRandom random = CryptoRandomFactory.getCryptoRandom(props);
+ assertTrue(random instanceof OsCryptoRandom, "The CryptoRandom should
be: " + OsCryptoRandom.class.getName());
+ return random;
+ }
- @Test
- public void testInvalidRandom() {
- final Properties props = new Properties();
- props.setProperty(CryptoRandomFactory.CLASSES_KEY,
OsCryptoRandom.class.getName());
- // Invalid device
- props.setProperty(CryptoRandomFactory.DEVICE_FILE_PATH_KEY, "");
- final Exception e =
assertThrows(GeneralSecurityException.class, () ->
CryptoRandomFactory.getCryptoRandom(props));
- Throwable cause;
- cause = e.getCause();
- assertEquals(IllegalArgumentException.class, cause.getClass());
- cause = cause.getCause();
- assertEquals(InvocationTargetException.class, cause.getClass());
- cause = cause.getCause();
- assertEquals(IllegalArgumentException.class, cause.getClass());
- cause = cause.getCause();
- assertEquals(FileNotFoundException.class, cause.getClass());
+ @Test
+ public void testInvalidRandom() {
+ final Properties props = new Properties();
+ props.setProperty(CryptoRandomFactory.CLASSES_KEY,
OsCryptoRandom.class.getName());
+ // Invalid device
+ props.setProperty(CryptoRandomFactory.DEVICE_FILE_PATH_KEY, "");
+ final Exception e = assertThrows(GeneralSecurityException.class, () ->
CryptoRandomFactory.getCryptoRandom(props));
+ Throwable cause;
+ cause = e.getCause();
+ assertEquals(IllegalArgumentException.class, cause.getClass());
+ cause = cause.getCause();
+ assertEquals(InvocationTargetException.class, cause.getClass());
+ cause = cause.getCause();
+ assertEquals(IllegalArgumentException.class, cause.getClass());
+ cause = cause.getCause();
+ assertEquals(FileNotFoundException.class, cause.getClass());
- }
+ }
}