diff options
author | (no author) <(no author)@d688527b-c9ab-4aba-bd8d-4036d912da1d> | 2007-08-06 14:26:08 +0000 |
---|---|---|
committer | (no author) <(no author)@d688527b-c9ab-4aba-bd8d-4036d912da1d> | 2007-08-06 14:26:08 +0000 |
commit | f25a072fd1c3b131d5f2f15689942ca7c55a62c0 (patch) | |
tree | bb9a27f99ebbb16c8513ec4bbd72f8f4912b3367 /spss.test/src/testgenerator/CreatePKCSSignature.java | |
parent | 3c1368b8d7182973c15f10e9ade3c1a0bb4fbaa7 (diff) | |
download | moa-id-spss-f25a072fd1c3b131d5f2f15689942ca7c55a62c0.tar.gz moa-id-spss-f25a072fd1c3b131d5f2f15689942ca7c55a62c0.tar.bz2 moa-id-spss-f25a072fd1c3b131d5f2f15689942ca7c55a62c0.zip |
This commit was manufactured by cvs2svn to create tagtags/Build-ID-1_4_0
'Build-ID-1_4_0'.
git-svn-id: https://joinup.ec.europa.eu/svn/moa-idspss/tags/Build-ID-1_4_0@907 d688527b-c9ab-4aba-bd8d-4036d912da1d
Diffstat (limited to 'spss.test/src/testgenerator/CreatePKCSSignature.java')
-rw-r--r-- | spss.test/src/testgenerator/CreatePKCSSignature.java | 874 |
1 files changed, 0 insertions, 874 deletions
diff --git a/spss.test/src/testgenerator/CreatePKCSSignature.java b/spss.test/src/testgenerator/CreatePKCSSignature.java deleted file mode 100644 index 896daf6d1..000000000 --- a/spss.test/src/testgenerator/CreatePKCSSignature.java +++ /dev/null @@ -1,874 +0,0 @@ -package testgenerator; - -import iaik.ixsil.algorithms.CanonicalizationAlgorithm; -import iaik.ixsil.algorithms.CanonicalizationAlgorithmImplCanonicalXML; -import iaik.ixsil.algorithms.CanonicalizationAlgorithmImplCanonicalXMLWithComments; -import iaik.ixsil.algorithms.CanonicalizationAlgorithmImplExclusiveCanonicalXML; -import iaik.ixsil.algorithms.CanonicalizationAlgorithmImplExclusiveCanonicalXMLWithComments; -import iaik.ixsil.algorithms.DigestAlgorithmImplSHA1; -import iaik.ixsil.algorithms.SignatureAlgorithmImplECDSA; -import iaik.ixsil.algorithms.SignatureAlgorithmImplRSA; -import iaik.ixsil.algorithms.Transform; -import iaik.ixsil.core.Position; -import iaik.ixsil.core.Signer; -import iaik.ixsil.core.SignerManifest; -import iaik.ixsil.core.SignerReference; -import iaik.ixsil.core.SignerSignature; -import iaik.ixsil.core.SignerSignedInfo; -import iaik.ixsil.core.URIResolverParameters; -import iaik.ixsil.init.IXSILConstants; -import iaik.ixsil.keyinfo.KeyManagerImpl; -import iaik.ixsil.keyinfo.retrieval.KeyProviderImplRetrievalMethod; -import iaik.ixsil.keyinfo.retrieval.RetrievalMethod; -import iaik.ixsil.keyinfo.x509.KeyProviderImplX509Data; -import iaik.ixsil.keyinfo.x509.X509Data; -import iaik.ixsil.util.URI; -import iaik.pkcs.pkcs12.PKCS12; -import iaik.security.ecc.interfaces.ECDSAPrivateKey; -import iaik.utils.Base64OutputStream; -import java.io.ByteArrayOutputStream; -import java.security.cert.X509Certificate; -import java.security.interfaces.RSAPrivateKey; - -import javax.xml.parsers.DocumentBuilderFactory; - -import org.apache.xml.serialize.DOMWriterImpl; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.NamedNodeMap; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; -import org.w3c.dom.Text; - - -/** - * @author Stevie (Admin) - * - * To change this generated comment edit the template variable "typecomment": - * Window>Preferences>Java>Templates. - * To enable and disable the creation of type comments go to - * Window>Preferences>Java>Code Generation. - */ -public class CreatePKCSSignature extends TestCases{ - - private static final int canAlgCanXML = 1; - private static final int canAlgCanXMLwithCom = 2; - private static final int canAlgExcXML = 3; - private static final int canAlgExcXMLwithCom = 4; - - private Document doc; - public Signer signer; - private SignerSignature signature; - private SignerSignedInfo signedInfo; - private PKCS12 pkcs12; - private String x509CertString; - public CreatePKCSSignature() throws Exception { - iaik.security.provider.IAIK.addAsProvider(); - iaik.security.ecc.provider.ECCProvider.addAsProvider(); - } - - // Schritt 1 - - public void init() throws Exception{ - pkcs12 = decryptPKCS12( - configuration_.getProperty("PKCS12file"), - configuration_.getProperty("PKCS12password")); - - // Create signature generator - URI baseURI = new URI(IXSILConstants.DUMMY_ABSURI_); - signer = new Signer(baseURI); - - // Configure signed information - - // Get interface for signed information - signature = signer.getSignature(); - signedInfo = signer.getSignature().getSignerSignedInfo(); - - // Set signature algorithm - SignatureAlgorithmImplRSA signatureAlg = - new SignatureAlgorithmImplRSA(); - RSAPrivateKey privateKey = getPrivateKey(pkcs12); - signatureAlg.setSignerKey(privateKey); - signedInfo.setSignatureAlgorithm(signatureAlg); - - } - public void init(String iD) throws Exception{ - pkcs12 = decryptPKCS12( - configuration_.getProperty("PKCS12file"), - configuration_.getProperty("PKCS12password")); - - // Create signature generator - URI baseURI = new URI(IXSILConstants.DUMMY_ABSURI_); - signer = new Signer(baseURI); - - // Configure signed information - - // Get interface for signed information - signature = signer.getSignature(); - signedInfo = signer.getSignature().getSignerSignedInfo(); - - // Set signature algorithm - SignatureAlgorithmImplRSA signatureAlg = - new SignatureAlgorithmImplRSA(); - RSAPrivateKey privateKey = getPrivateKey(pkcs12); - signatureAlg.setSignerKey(privateKey); - signedInfo.setSignatureAlgorithm(signatureAlg); - signature.setId(iD); - } - - public void init(Document doc, Position position) throws Exception{ - pkcs12 = decryptPKCS12( - configuration_.getProperty("PKCS12file"), - configuration_.getProperty("PKCS12password")); - - // Create signature generator - URI baseURI = new URI(IXSILConstants.DUMMY_ABSURI_); - signer = new Signer(doc, baseURI, position); - - // Configure signed information - - // Get interface for signed information - signature = signer.getSignature(); - signedInfo = signer.getSignature().getSignerSignedInfo(); - - // Set signature algorithm - SignatureAlgorithmImplRSA signatureAlg = - new SignatureAlgorithmImplRSA(); - RSAPrivateKey privateKey = getPrivateKey(pkcs12); - signatureAlg.setSignerKey(privateKey); - signedInfo.setSignatureAlgorithm(signatureAlg); - - } - - public void init(Document doc, Position position,String iD) throws Exception{ - pkcs12 = decryptPKCS12( - configuration_.getProperty("PKCS12file"), - configuration_.getProperty("PKCS12password")); - - // Create signature generator - URI baseURI = new URI(IXSILConstants.DUMMY_ABSURI_); - signer = new Signer(doc, baseURI, position); - - // Configure signed information - - // Get interface for signed information - signature = signer.getSignature(); - signedInfo = signer.getSignature().getSignerSignedInfo(); - - // Set signature algorithm - SignatureAlgorithmImplRSA signatureAlg = - new SignatureAlgorithmImplRSA(); - RSAPrivateKey privateKey = getPrivateKey(pkcs12); - signatureAlg.setSignerKey(privateKey); - signedInfo.setSignatureAlgorithm(signatureAlg); - signature.setId(iD); - - } - - - public void initECDSA() throws Exception{ - pkcs12 = decryptPKCS12( - configuration_.getProperty("ECDSPKCS12file"), - configuration_.getProperty("ECDSPKCS12password")); - - // Create signature generator - URI baseURI = new URI(IXSILConstants.DUMMY_ABSURI_); - signer = new Signer(baseURI); - - // Configure signed information - - // Get interface for signed information - signature = signer.getSignature(); - signedInfo = signer.getSignature().getSignerSignedInfo(); - - // Set signature algorithm - SignatureAlgorithmImplECDSA signatureAlg = new SignatureAlgorithmImplECDSA(); - - ECDSAPrivateKey privateKey = (ECDSAPrivateKey)pkcs12.getKeyBag().getPrivateKey(); - - signatureAlg.setSignerKey(privateKey); - signedInfo.setSignatureAlgorithm(signatureAlg); - - SignerSignature signature = signer.getSignature(); - SignerSignedInfo signedInfo = signature.getSignerSignedInfo(); - - } - - // Schritt 2 - - public void setCanoncialization(int CanonicalizationMethodNumber) throws Exception - { - // Set canonicalization algorithm - CanonicalizationAlgorithm calg = null; - - switch (CanonicalizationMethodNumber) - { - case canAlgCanXML : - calg = new CanonicalizationAlgorithmImplCanonicalXML(); break; - case canAlgCanXMLwithCom : - calg = new CanonicalizationAlgorithmImplCanonicalXMLWithComments(); break; - case canAlgExcXML : - calg = new CanonicalizationAlgorithmImplExclusiveCanonicalXML(); break; - case canAlgExcXMLwithCom : - calg = new CanonicalizationAlgorithmImplExclusiveCanonicalXMLWithComments(); break; - } - - signedInfo.setCanonicalizationAlgorithm(calg); - - } - /** - * Method createReference. - * @param booelan env: if set, the data-string will be enveloped, else an uri pointing to data will be created - * @param data - * @throws Exception - */ - // Schritt 3.1 - - public void createEnvelopedDataObject(String iD, String data) throws Exception - { - iaik.ixsil.core.Object object = null; - object = signature.createObject(data); - object.setId(iD); - signature.addObject(object); - } - - public void createEnvelopedDataObject(String iD, Element doc) throws Exception - { - iaik.ixsil.core.Object object = null; - object = signature.createObject(doc); - object.setId(iD); - signature.addObject(object); - } - - public void createReference(URI uri, URI type) throws Exception - { - SignerReference reference = signedInfo.createReference(); - - reference.setURI(uri); - reference.setType(type); - DigestAlgorithmImplSHA1 digestAlg = - new DigestAlgorithmImplSHA1(); - - reference.setDigestAlgorithm(digestAlg); - signedInfo.addReference(reference); - - } - - public void createReference(boolean env, String data, String iD) throws Exception - { - SignerReference reference = signedInfo.createReference(); - - if (env) { - iaik.ixsil.core.Object object = null; - object = signature.createObject(data); - object.setId("envelopedData"); - signature.addObject(object); - - DigestAlgorithmImplSHA1 digestAlg = - new DigestAlgorithmImplSHA1(); - reference.setDigestAlgorithm(digestAlg); - - reference.setURI( - new URI("#xpointer(id('envelopedData')/node())")); - } else { - // Create and configure reference - URI refURI = null; - String baseDir = configuration_.getProperty("baseDir"); - refURI = new URI(data); - - reference.setURI(refURI); - if (iD!=null) - reference.setId(iD); - DigestAlgorithmImplSHA1 digestAlg = - new DigestAlgorithmImplSHA1(); - reference.setDigestAlgorithm(digestAlg); - } - - signedInfo.addReference(reference); - - } - public void createReference(boolean env, String data) throws Exception - { - createReference(env,data,null); - } - - public void createETSIObjects(String data) throws Exception - { - SignerReference reference = signedInfo.createReference(); - - URI refURI = null; - refURI = new URI(data); - - reference.setURI(new URI("#xmlns(etsi=http://uri.etsi.org/01903/v1.1.1%23)%20xpointer(id('etsi-signed-1-1')/child::etsi:QualifyingProperties/child::etsi:SignedProperties)")); - reference.setType(new URI("http://uri.etsi.org/01903/v1.1.1#SignedProperties")); - DigestAlgorithmImplSHA1 digestAlg = new DigestAlgorithmImplSHA1(); - reference.setDigestAlgorithm(digestAlg); - - signedInfo.addReference(reference); - - iaik.ixsil.core.Object object = null; - object = signature.createObject(getElement("TEST")); - object.setId("etsi-signed-1-1"); - signature.addObject(object); - } - - public Element getElement(String data) throws Exception - { - String etsinamespace = "http://uri.etsi.org/01903/v1.1.1#"; - - getX509Content(); - - DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); - //dbf.setNamespaceAware(true); - //dbf.setValidating(true); - - Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument(); - - - Element qualprop = doc.createElementNS(etsinamespace,"etsi:QualifyingProperties"); - qualprop.setAttributeNS(null,"Target","#signature-1-1"); - qualprop.setAttributeNS(IXSILConstants.NAMESPACE_URI_NAMESPACES_,"xmlns:etsi",etsinamespace); - //qualprop.setPrefix("etsi");*/ - //qualprop.setAttributeNodeNS(doc.createAttributeNS(etsinamespace,"etsi")); - Element signprop = doc.createElementNS(etsinamespace,"etsi:SignedProperties"); - Element signsigprop = doc.createElementNS(etsinamespace,"etsi:SignedSignatureProperties"); - Element signdataobjectprop = doc.createElementNS(etsinamespace,"etsi:SignedDataObjectProperties"); - Element signdate = doc.createElementNS(etsinamespace,"etsi:SigningTime"); - Text datevalue = doc.createTextNode("2003-05-10T00:01:01"); - Element signcert = doc.createElementNS(etsinamespace,"etsi:SigningCertificate"); - Element cert = doc.createElementNS(etsinamespace,"etsi:Cert"); - Element signpolyident = doc.createElementNS(etsinamespace,"etsi:SignaturePolicyIdentifier"); - Element signpolyimp = doc.createElementNS(etsinamespace,"etsi:SignaturePolicyImplied"); - Element certdig = doc.createElementNS(etsinamespace,"etsi:CertDigest"); - Element digmeth = doc.createElementNS(etsinamespace,"etsi:DigestMethod"); - digmeth.setAttribute("Algorithm","http://www.w3.org/2000/09/xmldsig#sha1"); - Element digvalue = doc.createElementNS(etsinamespace,"etsi:DigestValue"); - - ByteArrayOutputStream fos = new ByteArrayOutputStream(); - Base64OutputStream base64os = new Base64OutputStream(fos); - base64os.write(this.X509hash.getBytes()); - base64os.flush(); - - Text dig_value = doc.createTextNode(fos.toString()); - Element is = doc.createElementNS(etsinamespace,"etsi:IssuerSerial"); - Element i = doc.createElement("dsig:X509IssuerName"); - Text i_value = doc.createTextNode(this.X509name); - Element s = doc.createElement("dsig:X509SerialNumber"); - Text s_value = doc.createTextNode(this.X509number.toString()); - Element dataobjformat = doc.createElementNS(etsinamespace,"etsi:DataObjectFormat"); - dataobjformat.setAttribute("ObjectReference","#reference-1-1"); - Element mimetype = doc.createElementNS(etsinamespace,"etsi:MimeType"); - //mimetype.setNodeValue("text/plain"); - Text mimevalue = doc.createTextNode("text/html"); - - qualprop.appendChild(signprop); - signprop.appendChild(signsigprop); - signsigprop.appendChild(signdate); - signdate.appendChild(datevalue); - signsigprop.appendChild(signcert); - signcert.appendChild(cert); - cert.appendChild(certdig); - certdig.appendChild(digmeth); - certdig.appendChild(digvalue); - digvalue.appendChild(dig_value); - cert.appendChild(is); - is.appendChild(i); - i.appendChild(i_value); - is.appendChild(s); - s.appendChild(s_value); - signsigprop.appendChild(signpolyident); - signpolyident.appendChild(signpolyimp); - signprop.appendChild(signdataobjectprop); - signdataobjectprop.appendChild(dataobjformat); - dataobjformat.appendChild(mimetype); - mimetype.appendChild(mimevalue); - - - - return qualprop; - } - - - - public void createReferenceEnvElement(Element data) throws Exception - { - SignerReference reference = signedInfo.createReference(); - - iaik.ixsil.core.Object object = null; - object = signature.createObject(data); - object.setId("envelopedData"); - signature.addObject(object); - - DigestAlgorithmImplSHA1 digestAlg = - new DigestAlgorithmImplSHA1(); - reference.setDigestAlgorithm(digestAlg); - - reference.setURI( - new URI("#xpointer(Data/node())")); - - - signedInfo.addReference(reference); - - } - public void createReferenceWithTransforms(URI uriToData, Transform[] transforms) throws Exception - { - createReferenceWithTransforms(uriToData, transforms,null); - } - - public void createReferenceWithTransforms(URI uriToData, Transform[] transforms, String iD) throws Exception - { - SignerReference reference = signedInfo.createReference(); - - // Create and configure reference - URI refURI = null; - //String baseDir = configuration_.getProperty("baseDir"); - refURI = uriToData; - - reference.setURI(refURI); - if (iD!=null) - reference.setId(iD); - - DigestAlgorithmImplSHA1 digestAlg = - new DigestAlgorithmImplSHA1(); - reference.setDigestAlgorithm(digestAlg); - - for (int trNr=0; trNr < transforms.length; trNr++) - { - reference.insertTransformAt(transforms[trNr],trNr); - //transforms[trNr].transform(); - } - - signedInfo.addReference(reference); - - - } - public Element createReferenceWithManifest( - URI uriToData1, String iD1) throws Exception - { - return createReferencesWithManifest(uriToData1,iD1,null); - } - - public Element createReferenceWithManifest( - URI uriToData1, String iD1, String type) throws Exception - { - /* - public void createReferenceWithManifest( - URI uriToData1, String iD1, - URI uriToData2, String iD2 - ) throws Exception - */ - SignerReference reference = signedInfo.createReference(); - SignerManifest manifest = signer.createManifest(); - SignerReference manifestRef = manifest.createReference(); - - DigestAlgorithmImplSHA1 digestAlg = new DigestAlgorithmImplSHA1(); - manifestRef.setDigestAlgorithm(digestAlg); - - manifestRef.setURI(uriToData1); - manifest.addReference(manifestRef); - - manifest.setId(iD1); - iaik.ixsil.core.Object manifestObject = - signature.createObject(manifest); - signature.addObject(manifestObject); - manifest.computeDigestValues(); - - reference = signedInfo.createReference(); - reference.setURI(new URI("#xpointer(id('"+iD1+"'))")); - if (type==null) - reference.setType( - new URI(IXSILConstants.REFERENCETYPE_ATTR_VALUE_MANIFEST_)); - else - reference.setType(new URI(type)); - - reference.setDigestAlgorithm(new DigestAlgorithmImplSHA1()); - - // Add reference to signature - signedInfo.addReference(reference); - return manifest.toElement(); - } - - public Element createReferencesWithManifest( - URI uriToData1, String iD1, - URI uriToData2 - ) throws Exception - { - /* - public void createReferenceWithManifest( - URI uriToData1, String iD1, - URI uriToData2, String iD2 - ) throws Exception - */ - SignerReference reference = signedInfo.createReference(); - - SignerManifest manifest = signer.createManifest(); - - - DigestAlgorithmImplSHA1 digestAlg = new DigestAlgorithmImplSHA1(); - - SignerReference manifestRef = manifest.createReference(); - manifestRef.setDigestAlgorithm(digestAlg); - manifestRef.setURI(uriToData1); - manifest.addReference(manifestRef); - - if (uriToData2!=null) - { - SignerReference manifestRef2 = manifest.createReference(); - manifestRef2.setDigestAlgorithm(digestAlg); - manifestRef2.setURI(uriToData2); - manifest.addReference(manifestRef2); - } - manifest.setId(iD1); - iaik.ixsil.core.Object manifestObject = - signature.createObject(manifest); - signature.addObject(manifestObject); - manifest.computeDigestValues(); - - reference = signedInfo.createReference(); - reference.setURI(new URI("#xpointer(id('"+iD1+"'))")); - reference.setType( - new URI(IXSILConstants.REFERENCETYPE_ATTR_VALUE_MANIFEST_)); - reference.setDigestAlgorithm(new DigestAlgorithmImplSHA1()); - - // Add reference to signature - signedInfo.addReference(reference); - /* - if (iD2!=null) - { - SignerReference reference2 = signedInfo.createReference(); - SignerManifest manifest2 = signer.createManifest(); - SignerReference manifestRef2 = manifest.createReference(); - - - manifestRef2.setDigestAlgorithm(digestAlg); - - manifestRef2.setURI(uriToData2); - - manifest2.addReference(manifestRef2); - manifest2.setId(iD2); - iaik.ixsil.core.Object manifestObject2 = - signature.createObject(manifest2); - signature.addObject(manifestObject2); - manifest2.computeDigestValues(); - - reference2 = signedInfo.createReference(); - reference2.setURI(new URI("#xpointer(id('"+iD1+"'))")); - reference2.setType( - new URI(IXSILConstants.REFERENCETYPE_ATTR_VALUE_MANIFEST_)); - reference2.setDigestAlgorithm(new DigestAlgorithmImplSHA1()); - - // Add reference to signature - signedInfo.addReference(reference2); - - } - */ - return manifest.toElement(); - } - -public Element createReferencesWithManifest( - URI uriToData1, String iD1, - URI uriToData2, String type - ) throws Exception - { - SignerReference reference = signedInfo.createReference(); - - SignerManifest manifest = signer.createManifest(); - - - DigestAlgorithmImplSHA1 digestAlg = new DigestAlgorithmImplSHA1(); - - SignerReference manifestRef = manifest.createReference(); - manifestRef.setDigestAlgorithm(digestAlg); - manifestRef.setURI(uriToData1); - manifest.addReference(manifestRef); - - SignerReference manifestRef2 = manifest.createReference(); - manifestRef2.setDigestAlgorithm(digestAlg); - manifestRef2.setURI(uriToData2); - manifest.addReference(manifestRef2); - - manifest.setId(iD1); - iaik.ixsil.core.Object manifestObject = - signature.createObject(manifest); - signature.addObject(manifestObject); - manifest.computeDigestValues(); - - reference = signedInfo.createReference(); - reference.setURI(new URI("#xpointer(id('"+iD1+"'))")); - reference.setType(new URI(type)); - reference.setDigestAlgorithm(new DigestAlgorithmImplSHA1()); - - // Add reference to signature - signedInfo.addReference(reference); - return manifest.toElement(); - } - - - public void setKeyInformation() throws Exception - { - // Create key information - KeyManagerImpl keyManager = new KeyManagerImpl(signer.toDocument()); - - - X509Certificate[] certs = getCertificates(pkcs12); - X509Data x509Data = new X509Data(); - - for (int i = 0; i < certs.length; i++) { - x509Data.insertHintAt(certs[i], i); - } - - KeyProviderImplX509Data x509DataKeyProvider = - new KeyProviderImplX509Data(signer.toDocument()); - - x509DataKeyProvider.insertX509DataAt(x509Data, 0); - - // X509Data key information (certificate chain) - keyManager.addKeyProvider(x509DataKeyProvider); - - Element e = (Element)keyManager.getKeyInfo(); - NodeList nl = e.getChildNodes(); - x509CertString = ((new DOMWriterImpl(true)).writeToString(nl.item(0).getChildNodes().item(1))); - if(x509CertString==null) - x509CertString = ((new DOMWriterImpl(true)).writeToString(nl.item(0).getChildNodes().item(0))); - - signer.getSignature().setKeyManager(keyManager); - - - - } - public void setKeyInformation(String retrievalMethod) throws Exception - { // Create key information - KeyManagerImpl keyManager = new KeyManagerImpl(signer.toDocument()); - - KeyProviderImplRetrievalMethod x509RetrievalMethod = - new KeyProviderImplRetrievalMethod(signer.toDocument()); - - URI fileURI = null; - - if (retrievalMethod == "XML") - fileURI = - new URI( - "file:" - + configuration_.getProperty("baseDir") - + configuration_.getProperty("RetrievalURIXML")); - else - fileURI = - new URI( - "file:" - + configuration_.getProperty("baseDir") - + configuration_.getProperty("RetrievalURIRaw")); - - RetrievalMethod retMet = - new RetrievalMethod( - signer.toDocument(), - new URIResolverParameters(fileURI)); - - retMet.setURI(fileURI); - - if (retrievalMethod == "XML") - retMet.setType( - new URI(configuration_.getProperty("RetrievalTypeXML"))); - else - retMet.setType( - new URI(configuration_.getProperty("RetrievalTypeRaw"))); - - x509RetrievalMethod.insertRetrievalMethodAt(retMet, 0); - keyManager.addKeyProvider(x509RetrievalMethod); - Element e = (Element)keyManager.getKeyInfo(); - NodeList nl = e.getChildNodes(); - x509CertString = ((new DOMWriterImpl(true)).writeToString(nl.item(0).getChildNodes().item(0))); - - - signer.getSignature().setKeyManager(keyManager); - } - - public void setKeyInformation(int pos) throws Exception - { - // Create key information - KeyManagerImpl keyManager = new KeyManagerImpl(signer.toDocument()); - - - X509Certificate[] certs = getCertificates(pkcs12); - X509Data x509Data = new X509Data(); - - x509Data.insertHintAt(certs[pos], 0); - - - KeyProviderImplX509Data x509DataKeyProvider = - new KeyProviderImplX509Data(signer.toDocument()); - - x509DataKeyProvider.insertX509DataAt(x509Data, 0); - - // X509Data key information (certificate chain) - keyManager.addKeyProvider(x509DataKeyProvider); - - signer.getSignature().setKeyManager(keyManager); - - Element e = (Element)keyManager.getKeyInfo(); - NodeList nl = e.getChildNodes(); - x509CertString = ((new DOMWriterImpl(true)).writeToString(nl.item(0).getChildNodes().item(0))); - - //((Element)signer.getSignature().getSignatureDOMElement().getChildNodes().item(0)).setAttributeNS(IXSILConstants.NAMESPACE_URI_NAMESPACES_,"xmlns:data","http://uri.data.org"); - - //display(signer.getSignature().getSignatureDOMElement()); - } - - private void display(Node base) - { - display(base,1); - } - - private void display(Node base,int level) - { - String spacer = ""; - for(int counter=0;counter<level;counter++) - { - spacer+=" "; - } - - int att_size=0; - if(base.getAttributes()!=null) - { - att_size=base.getAttributes().getLength(); - } - if(base.getNodeName().equals("#text")) - System.out.println(spacer+base.getNodeName()+base.getChildNodes().getLength()+":"+att_size+" ("+base.getNodeValue()+")"); - else - System.out.println(spacer+base.getNodeName()+base.getChildNodes().getLength()+":"+att_size); - - NamedNodeMap nnm = base.getAttributes(); - if(nnm!=null) - { - int size = nnm.getLength(); - for(int counter=0;counter<size;counter++) - { - display(nnm.item(counter),level+3); - } - } - - NodeList children = base.getChildNodes(); - int size = children.getLength(); - for(int counter=0;counter<size;counter++) - { - display(children.item(counter),level+1); - } - } - - public void setKeyInformation(boolean xpointer, URI fileURI, URI typeURI, Transform[] transforms) throws Exception - { // Create key information - KeyManagerImpl keyManager = new KeyManagerImpl(signer.toDocument()); - - KeyProviderImplRetrievalMethod x509RetrievalMethod = - new KeyProviderImplRetrievalMethod(signer.toDocument()); - - RetrievalMethod retMet = null; - - if (xpointer) - { - retMet = new RetrievalMethod(signer.toDocument(),null); - } - else - { - retMet = new RetrievalMethod(signer.toDocument(),new URIResolverParameters(fileURI)); - } - - - - retMet.setURI(fileURI); - - - retMet.setType(typeURI); - - if (transforms!=null) - {for (int trNr=0; trNr < transforms.length; trNr++) - retMet.insertTransformAt(transforms[trNr],trNr); - } - - - x509RetrievalMethod.insertRetrievalMethodAt(retMet, 0); - keyManager.addKeyProvider(x509RetrievalMethod); - - Element e = (Element)keyManager.getKeyInfo(); - NodeList nl = e.getChildNodes(); - x509CertString = ((new DOMWriterImpl(true)).writeToString(nl.item(0).getChildNodes().item(0))); - - - signer.getSignature().setKeyManager(keyManager); - - - } - -/* public Document createPKCS12Sig( - String TestNumber, - int CanonicalizationMethodNumber, - String data, - boolean env, - boolean mani, - String data2, - boolean env2, - String retrievalMethod) - throws Exception { - - - - if (data2 != null) { - reference = signedInfo.createReference(); - if (env2) { - iaik.ixsil.core.Object object = null; - object = signature.createObject(data2); - object.setId("envelopedData2"); - signature.addObject(object); - - DigestAlgorithmImplSHA1 digestAlg = - new DigestAlgorithmImplSHA1(); - reference.setDigestAlgorithm(digestAlg); - - reference.setURI( - new URI("#xpointer(id('envelopedData2')/node())")); - } else { - // Create and configure reference - URI refURI = null; - String baseDir = configuration_.getProperty("baseDir"); - refURI = new URI(data2); - - reference.setURI(refURI); - DigestAlgorithmImplSHA1 digestAlg = - new DigestAlgorithmImplSHA1(); - reference.setDigestAlgorithm(digestAlg); - } - signedInfo.addReference(reference); - } - - // Add reference to signature - - - - // Compute signature value - signer.getSignature().sign(); - - return signer.toDocument(); - } -*/ - public Document returnSig() throws Exception { - //signature.getObjects(); - - signer.getSignature().sign(); - - //((Element)signer.getSignature().getSignatureDOMElement().getChildNodes().item(0)).removeAttribute("xmlns:data"); - //display(((Element)signer.getSignature().getSignatureDOMElement().getChildNodes().item(0))); - //.removeAttributeNS(IXSILConstants.NAMESPACE_URI_NAMESPACES_,"xmlns:data"); - - return signer.toDocument(); - - } - public String getX509CertString() throws Exception{ - TestCases tc = new TestCases(); - - if(x509CertString==null) return null; - String result = TestCases.replaceString(x509CertString,"<?xml version=\"1.0\"?>",""); - if(x509CertString.indexOf("xmlns:dsig=\"http://www.w3.org/2000/09/xmldsig#\"")!=-1) - result = TestCases.replaceString(result,"xmlns:dsig=\"http://www.w3.org/2000/09/xmldsig#\"",""); - - return result; - } -} |