| /** |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| */ |
| package javax.xml.crypto.test.dsig; |
| |
| import java.io.File; |
| import java.nio.charset.StandardCharsets; |
| import java.security.KeyFactory; |
| import java.security.NoSuchAlgorithmException; |
| import java.security.Security; |
| import javax.xml.crypto.KeySelector; |
| |
| import javax.xml.crypto.test.KeySelectors; |
| |
| import static org.junit.Assert.assertTrue; |
| |
| |
| /** |
| * This is a testcase to validate all the W3C xmldsig XMLDSig11 testcases. |
| * |
| */ |
| public class InteropXMLDSig11Test { |
| |
| private SignatureValidator validator; |
| private File dir; |
| private KeySelector kvks, sks; |
| private boolean ecSupport = true; |
| |
| static { |
| Security.insertProviderAt |
| (new org.apache.jcp.xml.dsig.internal.dom.XMLDSigRI(), 1); |
| } |
| |
| public InteropXMLDSig11Test() throws Exception { |
| // check if EC is supported |
| try { |
| KeyFactory.getInstance("EC"); |
| } catch (NoSuchAlgorithmException nsae) { |
| ecSupport = false; |
| } |
| if ("IBM Corporation".equals(System.getProperty("java.vendor"))) { |
| ecSupport = false; |
| } |
| String fs = File.separator; |
| String base = System.getProperty("basedir") == null |
| ? "./": System.getProperty("basedir"); |
| dir = new File(base + fs + "src/test/resources" + fs |
| + "org" + fs + "w3c" + fs + "www" + fs |
| + "interop" + fs + "xmldsig11"); |
| validator = new SignatureValidator(dir); |
| kvks = new KeySelectors.KeyValueKeySelector(); |
| sks = new KeySelectors.SecretKeySelector("testkey".getBytes(StandardCharsets.US_ASCII)); |
| } |
| |
| @org.junit.Test |
| public void test_enveloping_p256_sha1() throws Exception { |
| if (ecSupport) { |
| test_xmldsig11("signature-enveloping-p256_sha1", "oracle"); |
| } |
| } |
| |
| @org.junit.Test |
| public void test_enveloping_p256_sha256() throws Exception { |
| if (ecSupport) { |
| test_xmldsig11("signature-enveloping-p256_sha256", "oracle"); |
| } |
| } |
| |
| @org.junit.Test |
| public void test_enveloping_p256_sha384() throws Exception { |
| if (ecSupport) { |
| test_xmldsig11("signature-enveloping-p256_sha384", "oracle"); |
| } |
| } |
| |
| @org.junit.Test |
| public void test_enveloping_p256_sha512() throws Exception { |
| if (ecSupport) { |
| test_xmldsig11("signature-enveloping-p256_sha512", "oracle"); |
| } |
| } |
| |
| @org.junit.Test |
| public void test_enveloping_p384_sha1() throws Exception { |
| if (ecSupport) { |
| test_xmldsig11("signature-enveloping-p384_sha1", "oracle"); |
| } |
| } |
| |
| @org.junit.Test |
| public void test_enveloping_p384_sha256() throws Exception { |
| if (ecSupport) { |
| test_xmldsig11("signature-enveloping-p384_sha256", "oracle"); |
| } |
| } |
| |
| @org.junit.Test |
| public void test_enveloping_p384_sha384() throws Exception { |
| if (ecSupport) { |
| test_xmldsig11("signature-enveloping-p384_sha384", "oracle"); |
| } |
| } |
| |
| @org.junit.Test |
| public void test_enveloping_p384_sha512() throws Exception { |
| if (ecSupport) { |
| test_xmldsig11("signature-enveloping-p384_sha512", "oracle"); |
| } |
| } |
| |
| @org.junit.Test |
| public void test_enveloping_p521_sha1() throws Exception { |
| if (ecSupport) { |
| test_xmldsig11("signature-enveloping-p521_sha1", "oracle"); |
| } |
| } |
| |
| @org.junit.Test |
| public void test_enveloping_p521_sha256() throws Exception { |
| if (ecSupport) { |
| test_xmldsig11("signature-enveloping-p521_sha256", "oracle"); |
| } |
| } |
| |
| @org.junit.Test |
| public void test_enveloping_p521_sha384() throws Exception { |
| if (ecSupport) { |
| test_xmldsig11("signature-enveloping-p521_sha384", "oracle"); |
| } |
| } |
| |
| @org.junit.Test |
| public void test_enveloping_p521_sha512() throws Exception { |
| if (ecSupport) { |
| test_xmldsig11("signature-enveloping-p521_sha512", "oracle"); |
| } |
| } |
| |
| @org.junit.Test |
| public void test_enveloping_rsa_sha256() throws Exception { |
| test_xmldsig11("signature-enveloping-rsa-sha256", "oracle"); |
| } |
| |
| @org.junit.Test |
| public void test_enveloping_rsa_sha384() throws Exception { |
| test_xmldsig11("signature-enveloping-rsa_sha384", "oracle"); |
| } |
| |
| @org.junit.Test |
| public void test_enveloping_rsa_sha512() throws Exception { |
| test_xmldsig11("signature-enveloping-rsa_sha512", "oracle"); |
| } |
| |
| @org.junit.Test |
| public void test_enveloping_sha256_rsa_sha256() throws Exception { |
| test_xmldsig11("signature-enveloping-sha256-rsa-sha256", "oracle"); |
| } |
| |
| @org.junit.Test |
| public void test_enveloping_sha384_rsa_sha256() throws Exception { |
| test_xmldsig11("signature-enveloping-sha384-rsa_sha256", "oracle"); |
| } |
| |
| @org.junit.Test |
| public void test_enveloping_sha512_rsa_sha256() throws Exception { |
| test_xmldsig11("signature-enveloping-sha512-rsa_sha256", "oracle"); |
| } |
| |
| @org.junit.Test |
| public void test_enveloping_hmac_sha256() throws Exception { |
| test_xmldsig11("signature-enveloping-hmac-sha256", sks, "oracle"); |
| } |
| |
| @org.junit.Test |
| public void test_enveloping_hmac_sha384() throws Exception { |
| test_xmldsig11("signature-enveloping-hmac-sha384", sks, "oracle"); |
| } |
| |
| @org.junit.Test |
| public void test_enveloping_hmac_sha512() throws Exception { |
| test_xmldsig11("signature-enveloping-hmac-sha512", sks, "oracle"); |
| } |
| |
| private void test_xmldsig11(String test, String vendor) throws Exception { |
| String file = vendor + File.separator + test + ".xml"; |
| // System.out.println("Validating " + file); |
| boolean coreValidity = validator.validate(file, kvks); |
| assertTrue(file + " failed core validation", coreValidity); |
| } |
| |
| private void test_xmldsig11(String test, KeySelector ks, String vendor) |
| throws Exception { |
| String file = vendor + File.separator + test + ".xml"; |
| // System.out.println("Validating " + file); |
| boolean coreValidity = validator.validate(file, ks); |
| assertTrue(file + " failed core validation", coreValidity); |
| } |
| } |