[java-opensaml COMMIT] in /trunk: opensaml-saml-impl/src/main/java/org/opensaml/saml/security/impl/SAMLMetadataEncryp...

noreply at shibboleth.net noreply at shibboleth.net
Fri Sep 19 18:40:20 EDT 2014


Author: putmanb
Date: Fri Sep 19 18:40:19 2014
New Revision: 4024

URL: http://svn.shibboleth.net/view/java-opensaml?rev=4024&view=rev
Log:
Apply algorithm runtime support checking to resolution of RSAOAEPParameters digest method algorithm.
Note: checking of MGF algorithm deliberately not implemented (yet).  There are issues with this,
it may or may not be possible.

Modified:
    trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/security/impl/SAMLMetadataEncryptionParametersResolver.java
    trunk/opensaml-xmlsec-impl/src/main/java/org/opensaml/xmlsec/impl/BasicEncryptionParametersResolver.java

Modified: trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/security/impl/SAMLMetadataEncryptionParametersResolver.java
URL: http://svn.shibboleth.net/view/java-opensaml/trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/security/impl/SAMLMetadataEncryptionParametersResolver.java?rev=4024&r1=4023&r2=4024&view=diff
==============================================================================
--- trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/security/impl/SAMLMetadataEncryptionParametersResolver.java (original)
+++ trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/security/impl/SAMLMetadataEncryptionParametersResolver.java Fri Sep 19 18:40:19 2014
@@ -243,11 +243,14 @@
             @Nonnull final EncryptionMethod encryptionMethod, 
             @Nonnull final Predicate<String> whitelistBlacklistPredicate) {
         
+        Predicate<String> algoSupportPredicate = getAlgorithmRuntimeSupportedPredicate();
+        
         List<XMLObject> digestMethods = encryptionMethod.getUnknownXMLObjects(DigestMethod.DEFAULT_ELEMENT_NAME);
         if (digestMethods.size() > 0) {
             DigestMethod digestMethod = (DigestMethod) digestMethods.get(0);
             String digestAlgorithm = StringSupport.trimOrNull(digestMethod.getAlgorithm());
-            if (digestAlgorithm != null && whitelistBlacklistPredicate.apply(digestAlgorithm)) {
+            if (digestAlgorithm != null && whitelistBlacklistPredicate.apply(digestAlgorithm)
+                    && algoSupportPredicate.apply(digestAlgorithm)) {
                 params.setDigestMethod(digestAlgorithm);
             }
         }

Modified: trunk/opensaml-xmlsec-impl/src/main/java/org/opensaml/xmlsec/impl/BasicEncryptionParametersResolver.java
URL: http://svn.shibboleth.net/view/java-opensaml/trunk/opensaml-xmlsec-impl/src/main/java/org/opensaml/xmlsec/impl/BasicEncryptionParametersResolver.java?rev=4024&r1=4023&r2=4024&view=diff
==============================================================================
--- trunk/opensaml-xmlsec-impl/src/main/java/org/opensaml/xmlsec/impl/BasicEncryptionParametersResolver.java (original)
+++ trunk/opensaml-xmlsec-impl/src/main/java/org/opensaml/xmlsec/impl/BasicEncryptionParametersResolver.java Fri Sep 19 18:40:19 2014
@@ -347,9 +347,12 @@
      * @param whitelistBlacklistPredicate the whitelist/blacklist predicate with which to evaluate the 
      *          candidate data encryption and key transport algorithm URIs
      */
+    // Checkstyle: CyclomaticComplexity -- more readable not split up
     protected void populateRSAOAEPParams(@Nonnull final RSAOAEPParameters rsaParams, 
             @Nonnull final CriteriaSet criteria,
             @Nonnull final Predicate<String> whitelistBlacklistPredicate) {
+        
+        Predicate<String> algoSupportPredicate = getAlgorithmRuntimeSupportedPredicate();
         
         for (EncryptionConfiguration config : criteria.get(EncryptionConfigurationCriterion.class)
                 .getConfigurations()) {
@@ -358,7 +361,8 @@
             if (rsaConfig != null) {
                 if (rsaParams.getDigestMethod() == null) {
                     if (rsaConfig.getDigestMethod() != null 
-                            && whitelistBlacklistPredicate.apply(rsaConfig.getDigestMethod())) {
+                            && whitelistBlacklistPredicate.apply(rsaConfig.getDigestMethod())
+                            && algoSupportPredicate.apply(rsaConfig.getDigestMethod())) {
                         rsaParams.setDigestMethod(rsaConfig.getDigestMethod());
                     }
                 }
@@ -377,6 +381,7 @@
             
         }
     }
+    // Checkstyle:CyclomaticComplexity ON
 
     /**
      * Determine the key transport encryption algorithm URI to use with the specified key transport credential



More information about the commits mailing list