[java-opensaml COMMIT] /trunk/opensaml-xmlsec-impl/src/main/java/org/opensaml/xmlsec/config/DefaultSecurityConfigurat...

noreply at shibboleth.net noreply at shibboleth.net
Fri May 16 15:13:14 EDT 2014


Author: putmanb
Date: Fri May 16 15:13:14 2014
New Revision: 3881

URL: http://svn.shibboleth.net/view/java-opensaml?rev=3881&view=rev
Log:
Set up OpenSAML default security configuration algorithms.
Change bootstrap methods to return the Basic- impl, rather than interface, so that callers can then munge the config without casting.

Modified:
    trunk/opensaml-xmlsec-impl/src/main/java/org/opensaml/xmlsec/config/DefaultSecurityConfigurationBootstrap.java

Modified: trunk/opensaml-xmlsec-impl/src/main/java/org/opensaml/xmlsec/config/DefaultSecurityConfigurationBootstrap.java
URL: http://svn.shibboleth.net/view/java-opensaml/trunk/opensaml-xmlsec-impl/src/main/java/org/opensaml/xmlsec/config/DefaultSecurityConfigurationBootstrap.java?rev=3881&r1=3880&r2=3881&view=diff
==============================================================================
--- trunk/opensaml-xmlsec-impl/src/main/java/org/opensaml/xmlsec/config/DefaultSecurityConfigurationBootstrap.java (original)
+++ trunk/opensaml-xmlsec-impl/src/main/java/org/opensaml/xmlsec/config/DefaultSecurityConfigurationBootstrap.java Fri May 16 15:13:14 2014
@@ -22,10 +22,6 @@
 
 import javax.annotation.Nonnull;
 
-import org.opensaml.xmlsec.DecryptionConfiguration;
-import org.opensaml.xmlsec.EncryptionConfiguration;
-import org.opensaml.xmlsec.SignatureSigningConfiguration;
-import org.opensaml.xmlsec.SignatureValidationConfiguration;
 import org.opensaml.xmlsec.encryption.support.ChainingEncryptedKeyResolver;
 import org.opensaml.xmlsec.encryption.support.EncryptedKeyResolver;
 import org.opensaml.xmlsec.encryption.support.EncryptionConstants;
@@ -49,10 +45,14 @@
 import org.opensaml.xmlsec.keyinfo.impl.provider.RSAKeyValueProvider;
 import org.opensaml.xmlsec.signature.support.SignatureConstants;
 
+import com.google.common.collect.Lists;
+import com.google.common.collect.Sets;
+
 
 /**
- * A utility class which programatically builds an instance of {@link BasicSecurityConfiguration}
- * which has reasonable default values for the various configuration parameters.
+ * A utility class which programmatically builds basic instances of various components 
+ * related to security configuration which have reasonable default values for their 
+ * various configuration parameters.
  */
 public class DefaultSecurityConfigurationBootstrap {
     
@@ -84,12 +84,30 @@
      * 
      * @return a new basic configuration with reasonable default values
      */
-    @Nonnull public static EncryptionConfiguration buildDefaultEncryptionConfiguration() {
+    @Nonnull public static BasicEncryptionConfiguration buildDefaultEncryptionConfiguration() {
         BasicEncryptionConfiguration config = new BasicEncryptionConfiguration();
         
-        //TODO blacklist anything by default?
-        //TODO various data and key transport algo URI prefs, when API is stabilized
-        //TODO auto-generated data enc URI prefs
+        config.setDataEncryptionAlgorithms(Lists.newArrayList(
+                // The order of these is significant.
+                EncryptionConstants.ALGO_ID_BLOCKCIPHER_AES128,
+                EncryptionConstants.ALGO_ID_BLOCKCIPHER_AES192,
+                EncryptionConstants.ALGO_ID_BLOCKCIPHER_AES256,
+                EncryptionConstants.ALGO_ID_BLOCKCIPHER_TRIPLEDES
+                ));
+        
+        config.setKeyTransportEncryptionAlgorithms(Lists.newArrayList(
+                // The order of the RSA algos is significant.
+                EncryptionConstants.ALGO_ID_KEYTRANSPORT_RSAOAEP,
+                EncryptionConstants.ALGO_ID_KEYTRANSPORT_RSA15,
+                
+                // The order of these is not significant.
+                // These aren't really "preferences" per se. They just need to be registered 
+                // so that they can be used if a credential with a key of that type and size is seen.
+                EncryptionConstants.ALGO_ID_KEYWRAP_AES128,
+                EncryptionConstants.ALGO_ID_KEYWRAP_AES192,
+                EncryptionConstants.ALGO_ID_KEYWRAP_AES256,
+                EncryptionConstants.ALGO_ID_KEYWRAP_TRIPLEDES
+                ));
         
         config.setDataKeyInfoGeneratorManager(buildDataEncryptionKeyInfoGeneratorManager());
         config.setKeyTransportKeyInfoGeneratorManager(buildKeyTransportEncryptionKeyInfoGeneratorManager());
@@ -102,10 +120,8 @@
      * 
      * @return a new basic configuration with reasonable default values
      */
-    @Nonnull public static DecryptionConfiguration buildDefaultDecryptionConfiguration() {
+    @Nonnull public static BasicDecryptionConfiguration buildDefaultDecryptionConfiguration() {
         BasicDecryptionConfiguration config = new BasicDecryptionConfiguration();
-        
-        //TODO blacklist anything by default?
         
         config.setDataKeyInfoCredentialResolver(buildEncryptionDataKeyInfoCredentialResolver());
         config.setKEKKeyInfoCredentialResolver(buildEncryptionKEKKeyInfoCredentialResolver());
@@ -119,15 +135,52 @@
      * 
      * @return a new basic configuration with reasonable default values
      */

[... 83 lines stripped ...]


More information about the commits mailing list