[java-opensaml COMMIT] in /trunk: opensaml-security-api/src/main/java/org/opensaml/security/x509/X509Support.java ope...
noreply at shibboleth.net
noreply at shibboleth.net
Thu Jan 31 21:19:23 EST 2013
Author: scantor
Date: Thu Jan 31 21:19:22 2013
New Revision: 3200
URL: http://svn.shibboleth.net/view/java-opensaml?rev=3200&view=rev
Log:
Port java-xmltooling r777
Added:
trunk/opensaml-xmlsec-impl/src/main/java/org/opensaml/xmlsec/keyinfo/impl/provider/DEREncodedKeyValueProvider.java (with props)
Modified:
trunk/opensaml-security-api/src/main/java/org/opensaml/security/x509/X509Support.java
trunk/opensaml-xmlsec-impl/src/main/java/org/opensaml/xmlsec/config/DefaultSecurityConfigurationBootstrap.java
trunk/opensaml-xmlsec-impl/src/main/java/org/opensaml/xmlsec/keyinfo/impl/provider/InlineX509DataProvider.java
Modified: trunk/opensaml-security-api/src/main/java/org/opensaml/security/x509/X509Support.java
URL: http://svn.shibboleth.net/view/java-opensaml/trunk/opensaml-security-api/src/main/java/org/opensaml/security/x509/X509Support.java?rev=3200&r1=3199&r2=3200&view=diff
==============================================================================
--- trunk/opensaml-security-api/src/main/java/org/opensaml/security/x509/X509Support.java (original)
+++ trunk/opensaml-security-api/src/main/java/org/opensaml/security/x509/X509Support.java Thu Jan 31 21:19:22 2013
@@ -23,8 +23,11 @@
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.security.GeneralSecurityException;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
import java.security.PrivateKey;
import java.security.cert.CRLException;
+import java.security.cert.CertificateEncodingException;
import java.security.cert.CertificateException;
import java.security.cert.CertificateFactory;
import java.security.cert.CertificateParsingException;
@@ -290,6 +293,28 @@
} catch (IOException e) {
getLogger().error("Unable to extract subject key identifier from certificate: ASN.1 parsing failed: " + e);
return null;
+ }
+ }
+
+ /**
+ * Get the XML Signature-compliant digest of an X.509 certificate.
+ *
+ * @param certificate an X.509 certificate
+ * @param jcaAlgorithm JCA algorithm identifier
+ * @return the raw digest of the certificate
+ * @throws SecurityException is algorithm is unsupported or encoding is not possible
+ */
+ @Nonnull public static byte[] getX509Digest(@Nonnull final X509Certificate certificate,
+ @Nonnull final String jcaAlgorithm) throws SecurityException {
+ try {
+ MessageDigest hasher = MessageDigest.getInstance(jcaAlgorithm);
+ return hasher.digest(certificate.getEncoded());
+ } catch (CertificateEncodingException e) {
+ getLogger().error("Unable to encode certificate for digest operation", e);
+ throw new SecurityException("Unable to encode certificate for digest operation", e);
+ } catch (NoSuchAlgorithmException e) {
+ getLogger().error("Algorithm {} is unsupported", jcaAlgorithm);
+ throw new SecurityException("Algorithm " + jcaAlgorithm + " is unsupported", e);
}
}
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=3200&r1=3199&r2=3200&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 Thu Jan 31 21:19:22 2013
@@ -29,6 +29,7 @@
import org.opensaml.xmlsec.keyinfo.impl.BasicProviderKeyInfoCredentialResolver;
import org.opensaml.xmlsec.keyinfo.impl.KeyInfoProvider;
import org.opensaml.xmlsec.keyinfo.impl.X509KeyInfoGeneratorFactory;
+import org.opensaml.xmlsec.keyinfo.impl.provider.DEREncodedKeyValueProvider;
import org.opensaml.xmlsec.keyinfo.impl.provider.DSAKeyValueProvider;
import org.opensaml.xmlsec.keyinfo.impl.provider.InlineX509DataProvider;
import org.opensaml.xmlsec.keyinfo.impl.provider.RSAKeyValueProvider;
@@ -126,6 +127,7 @@
ArrayList<KeyInfoProvider> providers = new ArrayList<KeyInfoProvider>();
providers.add( new RSAKeyValueProvider() );
providers.add( new DSAKeyValueProvider() );
+ providers.add( new DEREncodedKeyValueProvider() );
providers.add( new InlineX509DataProvider() );
KeyInfoCredentialResolver resolver = new BasicProviderKeyInfoCredentialResolver(providers);
Modified: trunk/opensaml-xmlsec-impl/src/main/java/org/opensaml/xmlsec/keyinfo/impl/provider/InlineX509DataProvider.java
URL: http://svn.shibboleth.net/view/java-opensaml/trunk/opensaml-xmlsec-impl/src/main/java/org/opensaml/xmlsec/keyinfo/impl/provider/InlineX509DataProvider.java?rev=3200&r1=3199&r2=3200&view=diff
==============================================================================
[... 99 lines stripped ...]
More information about the commits
mailing list