1
10
11import java.io.FileInputStream;
12import java.io.FileOutputStream;
13import org.w3c.dom.Document;
14import java.security.PrivateKey;
15import java.security.cert.X509Certificate;
16
17import com.verisign.xmlsig.Signer;
18import com.verisign.xmlsig.VerifyingKey;
19import com.verisign.xmlsig.VerifyingKeyFactory;
20import com.verisign.messaging.WSSecurity;
21import com.verisign.messaging.MessageValidity;
22import com.verisign.xpath.XPath;
23import org.xmltrustcenter.verifier.TrustVerifier;
24import org.xmltrustcenter.verifier.X509TrustVerifier;
25
26public class WSSDecrypt {
27 public static void main(String[] args) throws Exception {
28 if (args.length < 1){
29 System.out.println("Usage:: java WSSDecrypt <inp-file> [<out-file>]");
30 return;
31 }
32 String datafile = args[0];
33 String outfile = "decrypted.xml";
34 if (args.length > 1)
35 outfile = args[1];
36
37 String keystore = "my.keystore";
38 String storepass = "changeit";
39 String kstype = "JCEKS";
40 String alias2 = "rsakey";
41
42 System.out.println("Decrypting SOAP data in file \"" + datafile + "\" using private key");
43 System.out.println("in keystore \"" + keystore + "\" at alias " + alias2 + " ...");
44
45 FileInputStream fis = new FileInputStream(keystore);
46 java.security.KeyStore ks = java.security.KeyStore.getInstance(kstype);
47 ks.load(fis, storepass.toCharArray());
48 PrivateKey prvk2 = (PrivateKey)ks.getKey(alias2, storepass.toCharArray());
49
50 Document doc = XmlUtility.readXML(datafile);
51
52 WSSecurity wss = new WSSecurity();
53 wss.decrypt(doc, prvk2, null);
54 WSSecurityExtn.removeWSSInfo(doc);
55
56 XmlUtility.writeXML(doc, new FileOutputStream(outfile));
57 }
58}