[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:24:24 EDT 2014


Author: putmanb
Date: Fri Sep 19 18:24:23 2014
New Revision: 4023

URL: http://svn.shibboleth.net/view/java-opensaml?rev=4023&view=rev
Log:
Checkpoint work on RSAOAEPParameters resolution. Tests pending.

Modified:
    trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/security/impl/SAMLMetadataEncryptionParametersResolver.java
    trunk/opensaml-xmlsec-api/src/main/java/org/opensaml/xmlsec/encryption/support/RSAOAEPParameters.java
    trunk/opensaml-xmlsec-api/src/test/java/org/opensaml/xmlsec/encryption/support/RSAOAEPParametersTest.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=4023&r1=4022&r2=4023&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:24:23 2014
@@ -18,15 +18,19 @@
 package org.opensaml.saml.security.impl;
 
 import java.security.Key;
+import java.util.List;
 
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 
 import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
+import net.shibboleth.utilities.java.support.collection.Pair;
 import net.shibboleth.utilities.java.support.logic.Constraint;
+import net.shibboleth.utilities.java.support.primitive.StringSupport;
 import net.shibboleth.utilities.java.support.resolver.CriteriaSet;
 import net.shibboleth.utilities.java.support.resolver.ResolverException;
 
+import org.opensaml.core.xml.XMLObject;
 import org.opensaml.saml.saml2.metadata.EncryptionMethod;
 import org.opensaml.security.credential.Credential;
 import org.opensaml.security.credential.CredentialSupport;
@@ -34,7 +38,12 @@
 import org.opensaml.security.criteria.UsageCriterion;
 import org.opensaml.security.crypto.KeySupport;
 import org.opensaml.xmlsec.EncryptionParameters;
+import org.opensaml.xmlsec.algorithm.AlgorithmSupport;
+import org.opensaml.xmlsec.encryption.MGF;
+import org.opensaml.xmlsec.encryption.OAEPparams;
+import org.opensaml.xmlsec.encryption.support.RSAOAEPParameters;
 import org.opensaml.xmlsec.impl.BasicEncryptionParametersResolver;
+import org.opensaml.xmlsec.signature.DigestMethod;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -64,6 +73,10 @@
     /** Metadata credential resolver. */
     private MetadataCredentialResolver credentialResolver;
     
+    /** Flag indicating whether the resolver should attempt to complete a partially-resolved RSAOAEPParameters instance
+     * by delegating to the superclass local config resolution process. */
+    private boolean completePartialRSAOAEPParametersFromConfig;
+    
     /**
      * Constructor.
      *
@@ -73,6 +86,24 @@
         credentialResolver = Constraint.isNotNull(resolver, "MetadataCredentialResoler may not be null");
     }
     
+    /**
+     * Determine whether to complete partially resolved RSA OAEP parameters by delegating to local configuration.
+     * 
+     * @return true if should complete partial parameters instances, false otherwise
+     */
+    public boolean isCompletePartialRSAOAEPParametersFromConfig() {
+        return completePartialRSAOAEPParametersFromConfig;
+    }
+
+    /**
+     * Set whether to complete partially resolved RSA OAEP parameters by delegating to local configuration.
+     * 
+     * @param flag true if should complete partial parameters instances, false otherwise
+     */
+    public void setCompletePartialRSAOAEPParametersFromConfig(boolean flag) {
+        completePartialRSAOAEPParametersFromConfig = flag;
+    }
+
     /**
      * Get the metadata credential resolver instance to use to resolve encryption credentials.
      * 
@@ -107,12 +138,13 @@
                 SAMLMDCredentialContext metadataCredContext = 
                         keyTransportCredential.getCredentialContextSet().get(SAMLMDCredentialContext.class);
                 
-                String dataEncryptionAlgorithm = resolveDataEncryptionAlgorithm(criteria, whitelistBlacklistPredicate, 
-                        metadataCredContext);
-                
-                String keyTransportAlgorithm = resolveKeyTransportAlgorithm(keyTransportCredential,
-                        criteria, whitelistBlacklistPredicate, dataEncryptionAlgorithm, metadataCredContext);
-                if (keyTransportAlgorithm == null) {
+                Pair<String,EncryptionMethod> dataEncryptionAlgorithmAndMethod = resolveDataEncryptionAlgorithm(
+                        criteria, whitelistBlacklistPredicate, metadataCredContext);
+                

[... 414 lines stripped ...]


More information about the commits mailing list