Author: coheigea
Date: Tue Jan 21 16:08:35 2014
New Revision: 1560053

URL: http://svn.apache.org/r1560053
Log:
SecureRandom refactor

Modified:
    
webservices/wss4j/trunk/ws-security-common/src/main/java/org/apache/wss4j/common/util/UsernameTokenUtil.java
    
webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecEncrypt.java
    
webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/util/WSSecurityUtil.java
    
webservices/wss4j/trunk/ws-security-policy-stax/src/test/java/org/apache/wss4j/policy/stax/test/AsymmetricBindingIntegrationTest.java
    
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/ext/WSSSecurityProperties.java
    
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/output/DerivedKeyTokenOutputProcessor.java
    
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/output/EncryptOutputProcessor.java
    
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/output/UsernameTokenOutputProcessor.java
    
webservices/wss4j/trunk/ws-security-stax/src/test/java/org/apache/wss4j/stax/test/DerivedKeyTokenTest.java
    
webservices/wss4j/trunk/ws-security-stax/src/test/java/org/apache/wss4j/stax/test/SecurityContextTokenTest.java

Modified: 
webservices/wss4j/trunk/ws-security-common/src/main/java/org/apache/wss4j/common/util/UsernameTokenUtil.java
URL: 
http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-common/src/main/java/org/apache/wss4j/common/util/UsernameTokenUtil.java?rev=1560053&r1=1560052&r2=1560053&view=diff
==============================================================================
--- 
webservices/wss4j/trunk/ws-security-common/src/main/java/org/apache/wss4j/common/util/UsernameTokenUtil.java
 (original)
+++ 
webservices/wss4j/trunk/ws-security-common/src/main/java/org/apache/wss4j/common/util/UsernameTokenUtil.java
 Tue Jan 21 16:08:35 2014
@@ -138,9 +138,7 @@ public final class UsernameTokenUtil {
      */
     private static byte[] generateNonce(int length) throws WSSecurityException 
{
         try {
-            byte[] temp = new byte[length];
-            XMLSecurityConstants.secureRandom.nextBytes(temp);
-            return temp;
+            return XMLSecurityConstants.generateBytes(length);
         } catch (Exception ex) {
             throw new 
WSSecurityException(WSSecurityException.ErrorCode.FAILURE,
                     "empty", ex,

Modified: 
webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecEncrypt.java
URL: 
http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecEncrypt.java?rev=1560053&r1=1560052&r2=1560053&view=diff
==============================================================================
--- 
webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecEncrypt.java
 (original)
+++ 
webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecEncrypt.java
 Tue Jan 21 16:08:35 2014
@@ -52,7 +52,6 @@ import javax.crypto.spec.SecretKeySpec;
 import javax.security.auth.callback.Callback;
 import javax.security.auth.callback.CallbackHandler;
 
-import java.security.SecureRandom;
 import java.security.cert.X509Certificate;
 import java.util.*;
 
@@ -67,7 +66,7 @@ public class WSSecEncrypt extends WSSecE
     /**
      * SecurityTokenReference to be inserted into EncryptedData/keyInfo 
element.
      */
-    private SecurityTokenReference securityTokenReference ;
+    private SecurityTokenReference securityTokenReference;
 
     /**
      * Indicates whether to encrypt the symmetric key into an EncryptedKey 
@@ -498,9 +497,7 @@ public class WSSecEncrypt extends WSSecE
                         if (XMLCipher.AES_128_GCM.equals(encryptionAlgorithm)
                                 || 
XMLCipher.AES_192_GCM.equals(encryptionAlgorithm)
                                 || 
XMLCipher.AES_256_GCM.equals(encryptionAlgorithm)) {
-                            SecureRandom random = 
SecureRandom.getInstance("SHA1PRNG");
-                            byte[] temp = new byte[12];
-                            random.nextBytes(temp);
+                            byte[] temp = WSSecurityUtil.generateNonce(12);
                             IvParameterSpec paramSpec = new 
IvParameterSpec(temp);
                             cipher.init(Cipher.ENCRYPT_MODE, secretKey, 
paramSpec);
                         } else {

Modified: 
webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/util/WSSecurityUtil.java
URL: 
http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/util/WSSecurityUtil.java?rev=1560053&r1=1560052&r2=1560053&view=diff
==============================================================================
--- 
webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/util/WSSecurityUtil.java
 (original)
+++ 
webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/util/WSSecurityUtil.java
 Tue Jan 21 16:08:35 2014
@@ -1006,9 +1006,7 @@ public final class WSSecurityUtil {
      */
     public static byte[] generateNonce(int length) throws WSSecurityException {
         try {
-            byte[] temp = new byte[length];
-            XMLSecurityConstants.secureRandom.nextBytes(temp);
-            return temp;
+            return XMLSecurityConstants.generateBytes(length);
         } catch (Exception ex) {
             throw new 
WSSecurityException(WSSecurityException.ErrorCode.FAILURE,
                     "empty", ex,

Modified: 
webservices/wss4j/trunk/ws-security-policy-stax/src/test/java/org/apache/wss4j/policy/stax/test/AsymmetricBindingIntegrationTest.java
URL: 
http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-policy-stax/src/test/java/org/apache/wss4j/policy/stax/test/AsymmetricBindingIntegrationTest.java?rev=1560053&r1=1560052&r2=1560053&view=diff
==============================================================================
--- 
webservices/wss4j/trunk/ws-security-policy-stax/src/test/java/org/apache/wss4j/policy/stax/test/AsymmetricBindingIntegrationTest.java
 (original)
+++ 
webservices/wss4j/trunk/ws-security-policy-stax/src/test/java/org/apache/wss4j/policy/stax/test/AsymmetricBindingIntegrationTest.java
 Tue Jan 21 16:08:35 2014
@@ -2379,8 +2379,7 @@ public class AsymmetricBindingIntegratio
         
samlCallbackHandler.setStatement(SAMLCallbackHandlerImpl.Statement.AUTHN);
         
samlCallbackHandler.setConfirmationMethod(SAML2Constants.CONF_HOLDER_KEY);
         samlCallbackHandler.setIssuer("www.example.com");
-        byte[] secret = new byte[128 / 8];
-        WSSConstants.secureRandom.nextBytes(secret);
+        byte[] secret = WSSConstants.generateBytes(128 / 8);
         CallbackHandlerImpl callbackHandler = new CallbackHandlerImpl();
         callbackHandler.setSecret(secret);
         KeyStore keyStore = KeyStore.getInstance("jks");
@@ -2510,8 +2509,7 @@ public class AsymmetricBindingIntegratio
         
samlCallbackHandler.setStatement(SAMLCallbackHandlerImpl.Statement.AUTHN);
         
samlCallbackHandler.setConfirmationMethod(SAML2Constants.CONF_HOLDER_KEY);
         samlCallbackHandler.setIssuer("www.example.com");
-        byte[] secret = new byte[128 / 8];
-        WSSConstants.secureRandom.nextBytes(secret);
+        byte[] secret = WSSConstants.generateBytes(128 / 8);
         CallbackHandlerImpl callbackHandler = new CallbackHandlerImpl();
         callbackHandler.setSecret(secret);
         KeyStore keyStore = KeyStore.getInstance("jks");

Modified: 
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/ext/WSSSecurityProperties.java
URL: 
http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/ext/WSSSecurityProperties.java?rev=1560053&r1=1560052&r2=1560053&view=diff
==============================================================================
--- 
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/ext/WSSSecurityProperties.java
 (original)
+++ 
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/ext/WSSSecurityProperties.java
 Tue Jan 21 16:08:35 2014
@@ -46,6 +46,7 @@ import org.apache.wss4j.common.crypto.Pa
 import org.apache.wss4j.common.ext.WSSecurityException;
 import org.apache.wss4j.stax.securityToken.WSSecurityTokenConstants;
 import org.apache.wss4j.stax.validate.Validator;
+import org.apache.xml.security.exceptions.XMLSecurityException;
 import org.apache.xml.security.stax.ext.XMLSecurityProperties;
 import org.apache.xml.security.utils.Base64;
 
@@ -756,10 +757,14 @@ public class WSSSecurityProperties exten
     
     private synchronized ReplayCache createCache(String key) throws 
WSSecurityException {
         ReplayCacheFactory replayCacheFactory = 
ReplayCacheFactory.newInstance();
-        byte[] nonceValue = new byte[10];
-        WSSConstants.secureRandom.nextBytes(nonceValue);
-        String cacheKey = key + Base64.encode(nonceValue);
-        return replayCacheFactory.newReplayCache(cacheKey, null);
+        byte[] nonceValue;
+        try {
+            nonceValue = WSSConstants.generateBytes(10);
+            String cacheKey = key + Base64.encode(nonceValue);
+            return replayCacheFactory.newReplayCache(cacheKey, null);
+        } catch (XMLSecurityException e) {
+            throw new 
WSSecurityException(WSSecurityException.ErrorCode.FAILURE, e);
+        }
     }
     
     /**

Modified: 
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/output/DerivedKeyTokenOutputProcessor.java
URL: 
http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/output/DerivedKeyTokenOutputProcessor.java?rev=1560053&r1=1560052&r2=1560053&view=diff
==============================================================================
--- 
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/output/DerivedKeyTokenOutputProcessor.java
 (original)
+++ 
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/output/DerivedKeyTokenOutputProcessor.java
 Tue Jan 21 16:08:35 2014
@@ -100,8 +100,7 @@ public class DerivedKeyTokenOutputProces
                 throw new 
WSSecurityException(WSSecurityException.ErrorCode.FAILURE, "empty", e, "UTF-8 
encoding is not supported");
             }
 
-            byte[] nonce = new byte[16];
-            WSSConstants.secureRandom.nextBytes(nonce);
+            byte[] nonce = WSSConstants.generateBytes(16);
 
             byte[] seed = new byte[label.length + nonce.length];
             System.arraycopy(label, 0, seed, 0, label.length);

Modified: 
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/output/EncryptOutputProcessor.java
URL: 
http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/output/EncryptOutputProcessor.java?rev=1560053&r1=1560052&r2=1560053&view=diff
==============================================================================
--- 
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/output/EncryptOutputProcessor.java
 (original)
+++ 
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/output/EncryptOutputProcessor.java
 Tue Jan 21 16:08:35 2014
@@ -247,8 +247,7 @@ public class EncryptOutputProcessor exte
 
                 // The Spec mandates a 96-bit IV for GCM algorithms
                 if ("AES/GCM/NoPadding".equals(cipher.getAlgorithm())) {
-                    byte[] temp = new byte[12];
-                    XMLSecurityConstants.secureRandom.nextBytes(temp);
+                    byte[] temp = XMLSecurityConstants.generateBytes(12);
                     IvParameterSpec ivParameterSpec = new 
IvParameterSpec(temp);
                     cipher.init(Cipher.ENCRYPT_MODE, 
encryptionPartDef.getSymmetricKey(), ivParameterSpec);
                 } else {

Modified: 
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/output/UsernameTokenOutputProcessor.java
URL: 
http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/output/UsernameTokenOutputProcessor.java?rev=1560053&r1=1560052&r2=1560053&view=diff
==============================================================================
--- 
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/output/UsernameTokenOutputProcessor.java
 (original)
+++ 
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/output/UsernameTokenOutputProcessor.java
 Tue Jan 21 16:08:35 2014
@@ -90,8 +90,7 @@ public class UsernameTokenOutputProcesso
             byte[] nonceValue = null;
             if (usernameTokenPasswordType == 
WSSConstants.UsernameTokenPasswordType.PASSWORD_DIGEST
                 || ((WSSSecurityProperties) 
getSecurityProperties()).isAddUsernameTokenNonce()) {
-                nonceValue = new byte[16];
-                WSSConstants.secureRandom.nextBytes(nonceValue);
+                nonceValue = WSSConstants.generateBytes(16);
             }
             
             XMLGregorianCalendar created = null;

Modified: 
webservices/wss4j/trunk/ws-security-stax/src/test/java/org/apache/wss4j/stax/test/DerivedKeyTokenTest.java
URL: 
http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-stax/src/test/java/org/apache/wss4j/stax/test/DerivedKeyTokenTest.java?rev=1560053&r1=1560052&r2=1560053&view=diff
==============================================================================
--- 
webservices/wss4j/trunk/ws-security-stax/src/test/java/org/apache/wss4j/stax/test/DerivedKeyTokenTest.java
 (original)
+++ 
webservices/wss4j/trunk/ws-security-stax/src/test/java/org/apache/wss4j/stax/test/DerivedKeyTokenTest.java
 Tue Jan 21 16:08:35 2014
@@ -95,8 +95,7 @@ public class DerivedKeyTokenTest extends
             List<WSSConstants.Action> actions = new 
ArrayList<WSSConstants.Action>();
             actions.add(WSSConstants.ENCRYPT_WITH_DERIVED_KEY);
             securityProperties.setActions(actions);
-            byte[] secret = new byte[192 / 8];
-            WSSConstants.secureRandom.nextBytes(secret);
+            byte[] secret = WSSConstants.generateBytes(192 / 8);
             CallbackHandlerImpl callbackHandler = new 
CallbackHandlerImpl(secret);
             securityProperties.setCallbackHandler(callbackHandler);
             
securityProperties.loadEncryptionKeystore(this.getClass().getClassLoader().getResource("transmitter.jks"),
 "default".toCharArray());
@@ -220,8 +219,7 @@ public class DerivedKeyTokenTest extends
             List<WSSConstants.Action> actions = new 
ArrayList<WSSConstants.Action>();
             actions.add(WSSConstants.ENCRYPT_WITH_DERIVED_KEY);
             securityProperties.setActions(actions);
-            byte[] secret = new byte[128 / 8];
-            WSSConstants.secureRandom.nextBytes(secret);
+            byte[] secret = WSSConstants.generateBytes(128 / 8);
             CallbackHandlerImpl callbackHandler = new 
CallbackHandlerImpl(secret);
             securityProperties.setCallbackHandler(callbackHandler);
             
securityProperties.loadEncryptionKeystore(this.getClass().getClassLoader().getResource("transmitter.jks"),
 "default".toCharArray());

Modified: 
webservices/wss4j/trunk/ws-security-stax/src/test/java/org/apache/wss4j/stax/test/SecurityContextTokenTest.java
URL: 
http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-stax/src/test/java/org/apache/wss4j/stax/test/SecurityContextTokenTest.java?rev=1560053&r1=1560052&r2=1560053&view=diff
==============================================================================
--- 
webservices/wss4j/trunk/ws-security-stax/src/test/java/org/apache/wss4j/stax/test/SecurityContextTokenTest.java
 (original)
+++ 
webservices/wss4j/trunk/ws-security-stax/src/test/java/org/apache/wss4j/stax/test/SecurityContextTokenTest.java
 Tue Jan 21 16:08:35 2014
@@ -88,8 +88,7 @@ public class SecurityContextTokenTest ex
 
     @Test
     public void testSCTDKTEncryptOutbound() throws Exception {
-        byte[] secret = new byte[128 / 8];
-        WSSConstants.secureRandom.nextBytes(secret);
+        byte[] secret = WSSConstants.generateBytes(128 / 8);
 
         ByteArrayOutputStream baos = new ByteArrayOutputStream();
         {
@@ -219,8 +218,7 @@ public class SecurityContextTokenTest ex
 
     @Test
     public void testSCTKDKTSignOutbound() throws Exception {
-        byte[] secret = new byte[128 / 8];
-        WSSConstants.secureRandom.nextBytes(secret);
+        byte[] secret = WSSConstants.generateBytes(128 / 8);
 
         ByteArrayOutputStream baos = new ByteArrayOutputStream();
         {


Reply via email to