[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