Author: coheigea
Date: Fri Apr 10 11:31:25 2009
New Revision: 763911

URL: http://svn.apache.org/viewvc?rev=763911&view=rev
Log:
[WSS-40] - Added some signature tests.

Added:
    webservices/wss4j/trunk/keys/ca.db.certs/12.pem
    webservices/wss4j/trunk/keys/wss40.cer
    webservices/wss4j/trunk/keys/wss40.jks   (with props)
    webservices/wss4j/trunk/keys/wss40.pem
    webservices/wss4j/trunk/keys/wss40CA.jks   (with props)
    webservices/wss4j/trunk/keys/wss40CA.pem
    webservices/wss4j/trunk/keys/wss40CAKey.pem
    webservices/wss4j/trunk/test/wss40.properties
    webservices/wss4j/trunk/test/wss40CA.properties
    webservices/wss4j/trunk/test/wssec/TestWSSecurityWSS40.java
Modified:
    webservices/wss4j/trunk/keys/ca.config
    webservices/wss4j/trunk/keys/ca.db.index
    webservices/wss4j/trunk/keys/ca.db.serial
    webservices/wss4j/trunk/test/wssec/PackageTests.java

Modified: webservices/wss4j/trunk/keys/ca.config
URL: 
http://svn.apache.org/viewvc/webservices/wss4j/trunk/keys/ca.config?rev=763911&r1=763910&r2=763911&view=diff
==============================================================================
Binary files - no diff available.

Added: webservices/wss4j/trunk/keys/ca.db.certs/12.pem
URL: 
http://svn.apache.org/viewvc/webservices/wss4j/trunk/keys/ca.db.certs/12.pem?rev=763911&view=auto
==============================================================================
--- webservices/wss4j/trunk/keys/ca.db.certs/12.pem (added)
+++ webservices/wss4j/trunk/keys/ca.db.certs/12.pem Fri Apr 10 11:31:25 2009
@@ -0,0 +1,65 @@
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number: 18 (0x12)
+        Signature Algorithm: md5WithRSAEncryption
+        Issuer: C=DE, ST=Bayern, L=Munich, O=Home, OU=Apache WSS4J, CN=Werner
+        Validity
+            Not Before: Apr 10 09:41:09 2009 GMT
+            Not After : Apr  8 09:41:09 2019 GMT
+        Subject: C=IE, ST=Leinster, L=Dublin, O=Apache, OU=WSS4J, CN=Colm
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+            RSA Public Key: (1024 bit)
+                Modulus (1024 bit):
+                    00:91:05:87:f8:1d:f6:63:46:fd:52:34:47:25:ff:
+                    67:57:bf:d8:1f:42:96:ea:10:f5:f9:d3:22:d1:be:
+                    6f:72:88:37:96:d9:bf:0d:d1:c1:0d:6b:f4:ba:1a:
+                    5d:a4:9c:cb:04:bc:e5:b0:0e:94:89:1d:5e:d9:50:
+                    86:72:6e:71:cb:e3:6d:72:d6:63:d0:cf:8e:61:1e:
+                    24:58:89:61:95:ac:22:89:0d:80:33:03:58:72:94:
+                    e4:c4:70:ea:ee:a0:67:48:57:a6:47:8e:86:27:25:
+                    d8:20:f1:c9:a2:31:4a:c1:fe:d4:57:39:12:c4:1f:
+                    e5:92:5d:78:f5:dd:38:f3:b5
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: 
+                CA:FALSE
+            Netscape Comment: 
+                OpenSSL Generated Certificate
+            X509v3 Subject Key Identifier: 
+                11:7F:5F:33:D6:CE:38:B0:9D:87:C9:77:EF:6F:6C:85:08:11:B1:20
+            X509v3 Authority Key Identifier: 
+                
keyid:2B:83:7C:A1:7D:26:0F:D0:2C:F6:1B:CF:D0:D5:5E:A1:9B:AF:91:5A
+                DirName:/C=DE/ST=Bayern/L=Munich/O=Home/OU=Apache 
WSS4J/CN=Werner
+                serial:DF:03:2C:56:D6:F5:09:DB
+
+    Signature Algorithm: md5WithRSAEncryption
+        91:d1:57:49:84:7d:c0:4d:96:ac:d2:aa:d5:71:73:11:05:41:
+        d0:59:d3:65:f0:ad:bc:76:50:4b:6f:ca:56:b2:05:05:d4:7b:
+        aa:30:9b:3f:80:45:52:f8:54:fb:96:58:f5:ad:c8:70:a4:c5:
+        d4:fe:f4:2b:a7:9c:a4:56:af:e1:ae:fa:b2:98:73:45:a2:e9:
+        72:51:77:f0:81:81:fa:cf:01:99:40:8f:09:4d:5f:de:68:c2:
+        d7:44:d4:21:da:04:5a:b7:55:1c:ed:ca:7e:33:bd:6d:da:e1:
+        14:ec:8d:a8:4a:13:26:38:cc:fc:45:b5:55:68:cb:04:a6:00:
+        9a:3a
+-----BEGIN CERTIFICATE-----
+MIIDNDCCAp2gAwIBAgIBEjANBgkqhkiG9w0BAQQFADBmMQswCQYDVQQGEwJERTEP
+MA0GA1UECBMGQmF5ZXJuMQ8wDQYDVQQHEwZNdW5pY2gxDTALBgNVBAoTBEhvbWUx
+FTATBgNVBAsTDEFwYWNoZSBXU1M0SjEPMA0GA1UEAxMGV2VybmVyMB4XDTA5MDQx
+MDA5NDEwOVoXDTE5MDQwODA5NDEwOVowYTELMAkGA1UEBhMCSUUxETAPBgNVBAgT
+CExlaW5zdGVyMQ8wDQYDVQQHEwZEdWJsaW4xDzANBgNVBAoTBkFwYWNoZTEOMAwG
+A1UECxMFV1NTNEoxDTALBgNVBAMTBENvbG0wgZ8wDQYJKoZIhvcNAQEBBQADgY0A
+MIGJAoGBAJEFh/gd9mNG/VI0RyX/Z1e/2B9CluoQ9fnTItG+b3KIN5bZvw3RwQ1r
+9LoaXaScywS85bAOlIkdXtlQhnJuccvjbXLWY9DPjmEeJFiJYZWsIokNgDMDWHKU
+5MRw6u6gZ0hXpkeOhicl2CDxyaIxSsH+1Fc5EsQf5ZJdePXdOPO1AgMBAAGjgfYw
+gfMwCQYDVR0TBAIwADAsBglghkgBhvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0ZWQg
+Q2VydGlmaWNhdGUwHQYDVR0OBBYEFBF/XzPWzjiwnYfJd+9vbIUIEbEgMIGYBgNV
+HSMEgZAwgY2AFCuDfKF9Jg/QLPYbz9DVXqGbr5FaoWqkaDBmMQswCQYDVQQGEwJE
+RTEPMA0GA1UECBMGQmF5ZXJuMQ8wDQYDVQQHEwZNdW5pY2gxDTALBgNVBAoTBEhv
+bWUxFTATBgNVBAsTDEFwYWNoZSBXU1M0SjEPMA0GA1UEAxMGV2VybmVyggkA3wMs
+Vtb1CdswDQYJKoZIhvcNAQEEBQADgYEAkdFXSYR9wE2WrNKq1XFzEQVB0FnTZfCt
+vHZQS2/KVrIFBdR7qjCbP4BFUvhU+5ZY9a3IcKTF1P70K6ecpFav4a76sphzRaLp
+clF38IGB+s8BmUCPCU1f3mjC10TUIdoEWrdVHO3KfjO9bdrhFOyNqEoTJjjM/EW1
+VWjLBKYAmjo=
+-----END CERTIFICATE-----

Modified: webservices/wss4j/trunk/keys/ca.db.index
URL: 
http://svn.apache.org/viewvc/webservices/wss4j/trunk/keys/ca.db.index?rev=763911&r1=763910&r2=763911&view=diff
==============================================================================
Binary files - no diff available.

Modified: webservices/wss4j/trunk/keys/ca.db.serial
URL: 
http://svn.apache.org/viewvc/webservices/wss4j/trunk/keys/ca.db.serial?rev=763911&r1=763910&r2=763911&view=diff
==============================================================================
Binary files - no diff available.

Added: webservices/wss4j/trunk/keys/wss40.cer
URL: 
http://svn.apache.org/viewvc/webservices/wss4j/trunk/keys/wss40.cer?rev=763911&view=auto
==============================================================================
--- webservices/wss4j/trunk/keys/wss40.cer (added)
+++ webservices/wss4j/trunk/keys/wss40.cer Fri Apr 10 11:31:25 2009
@@ -0,0 +1,10 @@
+-----BEGIN NEW CERTIFICATE REQUEST-----
+MIIBoTCCAQoCAQAwYTELMAkGA1UEBhMCSUUxETAPBgNVBAgTCExlaW5zdGVyMQ8wDQYDVQQHEwZE
+dWJsaW4xDzANBgNVBAoTBkFwYWNoZTEOMAwGA1UECxMFV1NTNEoxDTALBgNVBAMTBENvbG0wgZ8w
+DQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAJEFh/gd9mNG/VI0RyX/Z1e/2B9CluoQ9fnTItG+b3KI
+N5bZvw3RwQ1r9LoaXaScywS85bAOlIkdXtlQhnJuccvjbXLWY9DPjmEeJFiJYZWsIokNgDMDWHKU
+5MRw6u6gZ0hXpkeOhicl2CDxyaIxSsH+1Fc5EsQf5ZJdePXdOPO1AgMBAAGgADANBgkqhkiG9w0B
+AQQFAAOBgQAZSvE+V+XSwmO7CREAcNLljiBvLLAmyhPxzsKmoEHSenvWXjLVCOyVwspmED2aqyMe
+X+1J6TTQYjd1AKUZFm9L7reKrHDC9ipCPvyU+KfYl3/cy7IV4bgA1cIquFkZyeGEnjhrgIMW/htf
+zeqRtFtCaHiHv+tlT4kEdTQEp1yIcg==
+-----END NEW CERTIFICATE REQUEST-----

Added: webservices/wss4j/trunk/keys/wss40.jks
URL: 
http://svn.apache.org/viewvc/webservices/wss4j/trunk/keys/wss40.jks?rev=763911&view=auto
==============================================================================
Binary file - no diff available.

Propchange: webservices/wss4j/trunk/keys/wss40.jks
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: webservices/wss4j/trunk/keys/wss40.pem
URL: 
http://svn.apache.org/viewvc/webservices/wss4j/trunk/keys/wss40.pem?rev=763911&view=auto
==============================================================================
--- webservices/wss4j/trunk/keys/wss40.pem (added)
+++ webservices/wss4j/trunk/keys/wss40.pem Fri Apr 10 11:31:25 2009
@@ -0,0 +1,65 @@
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number: 18 (0x12)
+        Signature Algorithm: md5WithRSAEncryption
+        Issuer: C=DE, ST=Bayern, L=Munich, O=Home, OU=Apache WSS4J, CN=Werner
+        Validity
+            Not Before: Apr 10 09:41:09 2009 GMT
+            Not After : Apr  8 09:41:09 2019 GMT
+        Subject: C=IE, ST=Leinster, L=Dublin, O=Apache, OU=WSS4J, CN=Colm
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+            RSA Public Key: (1024 bit)
+                Modulus (1024 bit):
+                    00:91:05:87:f8:1d:f6:63:46:fd:52:34:47:25:ff:
+                    67:57:bf:d8:1f:42:96:ea:10:f5:f9:d3:22:d1:be:
+                    6f:72:88:37:96:d9:bf:0d:d1:c1:0d:6b:f4:ba:1a:
+                    5d:a4:9c:cb:04:bc:e5:b0:0e:94:89:1d:5e:d9:50:
+                    86:72:6e:71:cb:e3:6d:72:d6:63:d0:cf:8e:61:1e:
+                    24:58:89:61:95:ac:22:89:0d:80:33:03:58:72:94:
+                    e4:c4:70:ea:ee:a0:67:48:57:a6:47:8e:86:27:25:
+                    d8:20:f1:c9:a2:31:4a:c1:fe:d4:57:39:12:c4:1f:
+                    e5:92:5d:78:f5:dd:38:f3:b5
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: 
+                CA:FALSE
+            Netscape Comment: 
+                OpenSSL Generated Certificate
+            X509v3 Subject Key Identifier: 
+                11:7F:5F:33:D6:CE:38:B0:9D:87:C9:77:EF:6F:6C:85:08:11:B1:20
+            X509v3 Authority Key Identifier: 
+                
keyid:2B:83:7C:A1:7D:26:0F:D0:2C:F6:1B:CF:D0:D5:5E:A1:9B:AF:91:5A
+                DirName:/C=DE/ST=Bayern/L=Munich/O=Home/OU=Apache 
WSS4J/CN=Werner
+                serial:DF:03:2C:56:D6:F5:09:DB
+
+    Signature Algorithm: md5WithRSAEncryption
+        91:d1:57:49:84:7d:c0:4d:96:ac:d2:aa:d5:71:73:11:05:41:
+        d0:59:d3:65:f0:ad:bc:76:50:4b:6f:ca:56:b2:05:05:d4:7b:
+        aa:30:9b:3f:80:45:52:f8:54:fb:96:58:f5:ad:c8:70:a4:c5:
+        d4:fe:f4:2b:a7:9c:a4:56:af:e1:ae:fa:b2:98:73:45:a2:e9:
+        72:51:77:f0:81:81:fa:cf:01:99:40:8f:09:4d:5f:de:68:c2:
+        d7:44:d4:21:da:04:5a:b7:55:1c:ed:ca:7e:33:bd:6d:da:e1:
+        14:ec:8d:a8:4a:13:26:38:cc:fc:45:b5:55:68:cb:04:a6:00:
+        9a:3a
+-----BEGIN CERTIFICATE-----
+MIIDNDCCAp2gAwIBAgIBEjANBgkqhkiG9w0BAQQFADBmMQswCQYDVQQGEwJERTEP
+MA0GA1UECBMGQmF5ZXJuMQ8wDQYDVQQHEwZNdW5pY2gxDTALBgNVBAoTBEhvbWUx
+FTATBgNVBAsTDEFwYWNoZSBXU1M0SjEPMA0GA1UEAxMGV2VybmVyMB4XDTA5MDQx
+MDA5NDEwOVoXDTE5MDQwODA5NDEwOVowYTELMAkGA1UEBhMCSUUxETAPBgNVBAgT
+CExlaW5zdGVyMQ8wDQYDVQQHEwZEdWJsaW4xDzANBgNVBAoTBkFwYWNoZTEOMAwG
+A1UECxMFV1NTNEoxDTALBgNVBAMTBENvbG0wgZ8wDQYJKoZIhvcNAQEBBQADgY0A
+MIGJAoGBAJEFh/gd9mNG/VI0RyX/Z1e/2B9CluoQ9fnTItG+b3KIN5bZvw3RwQ1r
+9LoaXaScywS85bAOlIkdXtlQhnJuccvjbXLWY9DPjmEeJFiJYZWsIokNgDMDWHKU
+5MRw6u6gZ0hXpkeOhicl2CDxyaIxSsH+1Fc5EsQf5ZJdePXdOPO1AgMBAAGjgfYw
+gfMwCQYDVR0TBAIwADAsBglghkgBhvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0ZWQg
+Q2VydGlmaWNhdGUwHQYDVR0OBBYEFBF/XzPWzjiwnYfJd+9vbIUIEbEgMIGYBgNV
+HSMEgZAwgY2AFCuDfKF9Jg/QLPYbz9DVXqGbr5FaoWqkaDBmMQswCQYDVQQGEwJE
+RTEPMA0GA1UECBMGQmF5ZXJuMQ8wDQYDVQQHEwZNdW5pY2gxDTALBgNVBAoTBEhv
+bWUxFTATBgNVBAsTDEFwYWNoZSBXU1M0SjEPMA0GA1UEAxMGV2VybmVyggkA3wMs
+Vtb1CdswDQYJKoZIhvcNAQEEBQADgYEAkdFXSYR9wE2WrNKq1XFzEQVB0FnTZfCt
+vHZQS2/KVrIFBdR7qjCbP4BFUvhU+5ZY9a3IcKTF1P70K6ecpFav4a76sphzRaLp
+clF38IGB+s8BmUCPCU1f3mjC10TUIdoEWrdVHO3KfjO9bdrhFOyNqEoTJjjM/EW1
+VWjLBKYAmjo=
+-----END CERTIFICATE-----

Added: webservices/wss4j/trunk/keys/wss40CA.jks
URL: 
http://svn.apache.org/viewvc/webservices/wss4j/trunk/keys/wss40CA.jks?rev=763911&view=auto
==============================================================================
Binary file - no diff available.

Propchange: webservices/wss4j/trunk/keys/wss40CA.jks
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: webservices/wss4j/trunk/keys/wss40CA.pem
URL: 
http://svn.apache.org/viewvc/webservices/wss4j/trunk/keys/wss40CA.pem?rev=763911&view=auto
==============================================================================
--- webservices/wss4j/trunk/keys/wss40CA.pem (added)
+++ webservices/wss4j/trunk/keys/wss40CA.pem Fri Apr 10 11:31:25 2009
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDFjCCAn+gAwIBAgIJAN8DLFbW9QnbMA0GCSqGSIb3DQEBBQUAMGYxCzAJBgNV
+BAYTAkRFMQ8wDQYDVQQIEwZCYXllcm4xDzANBgNVBAcTBk11bmljaDENMAsGA1UE
+ChMESG9tZTEVMBMGA1UECxMMQXBhY2hlIFdTUzRKMQ8wDQYDVQQDEwZXZXJuZXIw
+HhcNMDkwNDEwMDkzODUyWhcNMDkwNTEwMDkzODUyWjBmMQswCQYDVQQGEwJERTEP
+MA0GA1UECBMGQmF5ZXJuMQ8wDQYDVQQHEwZNdW5pY2gxDTALBgNVBAoTBEhvbWUx
+FTATBgNVBAsTDEFwYWNoZSBXU1M0SjEPMA0GA1UEAxMGV2VybmVyMIGfMA0GCSqG
+SIb3DQEBAQUAA4GNADCBiQKBgQCmgtgDI2hycWmG0OCXo/fGYS2myNb8Ye+TvjkF
+XyrMogWNSTVBQQi8OHOuZQeHYCP83edVO3dbZ/VCJ+4KqfXptLoFAvoiT+1Rv8Ul
+MMASnfGn2ZLlrShCQaaPzhI+Uy2C6RoQY7yjJUv7bdC8WSNca6N9H1JWliruaysI
+F7+lQQIDAQABo4HLMIHIMB0GA1UdDgQWBBQrg3yhfSYP0Cz2G8/Q1V6hm6+RWjCB
+mAYDVR0jBIGQMIGNgBQrg3yhfSYP0Cz2G8/Q1V6hm6+RWqFqpGgwZjELMAkGA1UE
+BhMCREUxDzANBgNVBAgTBkJheWVybjEPMA0GA1UEBxMGTXVuaWNoMQ0wCwYDVQQK
+EwRIb21lMRUwEwYDVQQLEwxBcGFjaGUgV1NTNEoxDzANBgNVBAMTBldlcm5lcoIJ
+AN8DLFbW9QnbMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAk2DCM7yQ
+AFEiAtcM8B8slyE99FLtaQlagT9KMpL3uVg3O/DF57HDjBXIO+rP75aGbGGaOq1G
+qxenhazkEFnsA20oqUYX5j9gk66glvBJn0LThmIifWHfe9e781uSx2qdhl6NHj3D
+er26SAtz2BLjeiptxz/LmGLKoMC40S1+4Wo=
+-----END CERTIFICATE-----

Added: webservices/wss4j/trunk/keys/wss40CAKey.pem
URL: 
http://svn.apache.org/viewvc/webservices/wss4j/trunk/keys/wss40CAKey.pem?rev=763911&view=auto
==============================================================================
--- webservices/wss4j/trunk/keys/wss40CAKey.pem (added)
+++ webservices/wss4j/trunk/keys/wss40CAKey.pem Fri Apr 10 11:31:25 2009
@@ -0,0 +1,18 @@
+-----BEGIN RSA PRIVATE KEY-----
+Proc-Type: 4,ENCRYPTED
+DEK-Info: DES-EDE3-CBC,D5836A91B65E76D5
+
+2DeecNm4txyxfdUe//EE24gvZ6gjsXyt2nCK6QqRKQWl2U36J9gczWdD9R2u7GcM
+1fcz1k/PovM0xVSFPNn1Vlwmeqmn2ECNI5UXzaiSAizMySADhxpWzg76OqFvx52K
+65La0DoIUuT7mqvGoVL9KuHxQZ6FbKqKVMFa/UDDOqq4upCec7Jf4B4UUKgJPEu7
+4uscLCehcUKAmyJ8qDd7jWDGCXYLdR+ZZg8qWgysdFThks0vX++WESa0lS0n8eg6
+xKAgd6BzemmZmkCcnxCmjLbW8eAj9um/dbe3C2gnfKE/NlHWDzEa7ru1Jz5o92wg
+OqNfdKvlgCNVsds1B+aHVLdypvVKy3N93pNRX19e3chWj3lEwFG2tA7ctvxPz4Rc
+vzbc3y4k5oHo4AqPZnq++GGsBc1OVOdgFk5RUtsHjFIaJBwjvkvrGhWm4BuFbue7
+Nap9KjqD9Wu+9cqR/wew+F1pTrPcxDv0u6QGJhq4waCJmyQEGfJInQaVsZSCzm/0
+tNeqOvp0oyemy2jHcsfgSpCJ1P+kf3trD7hssSupsHF0kuqzgDsPy4USuH1oxA8O
+TeesRJpP1h5yhWM8ohnqkET2wZ54zGyPXsgdboX2DBKMEzcoz0mE6SQXbRJB+SPM
+LNWs9qL8vwSykIRcbDpa/dq8oIfzyggcfn5NA0TtCHG20siMaulxIQMrWnEAkHXB
+lfImh3HmqHQ3OaMA70bcOpUpqkS+jw4M0oHVuxdTuEv6H+YP0KGg8bs6foPrZmjU
+EAw5sWw5aU2lYfchZEVXpktae4nua5iRM4z6AGtk6Et3UegZ0kApsw==
+-----END RSA PRIVATE KEY-----

Added: webservices/wss4j/trunk/test/wss40.properties
URL: 
http://svn.apache.org/viewvc/webservices/wss4j/trunk/test/wss40.properties?rev=763911&view=auto
==============================================================================
--- webservices/wss4j/trunk/test/wss40.properties (added)
+++ webservices/wss4j/trunk/test/wss40.properties Fri Apr 10 11:31:25 2009
@@ -0,0 +1,5 @@
+org.apache.ws.security.crypto.provider=org.apache.ws.security.components.crypto.Merlin
+org.apache.ws.security.crypto.merlin.keystore.type=jks
+org.apache.ws.security.crypto.merlin.keystore.password=security
+org.apache.ws.security.crypto.merlin.keystore.alias=wss40
+org.apache.ws.security.crypto.merlin.file=keys/wss40.jks

Added: webservices/wss4j/trunk/test/wss40CA.properties
URL: 
http://svn.apache.org/viewvc/webservices/wss4j/trunk/test/wss40CA.properties?rev=763911&view=auto
==============================================================================
--- webservices/wss4j/trunk/test/wss40CA.properties (added)
+++ webservices/wss4j/trunk/test/wss40CA.properties Fri Apr 10 11:31:25 2009
@@ -0,0 +1,4 @@
+org.apache.ws.security.crypto.provider=org.apache.ws.security.components.crypto.Merlin
+org.apache.ws.security.crypto.merlin.keystore.type=jks
+org.apache.ws.security.crypto.merlin.keystore.password=security
+org.apache.ws.security.crypto.merlin.file=keys/wss40CA.jks

Modified: webservices/wss4j/trunk/test/wssec/PackageTests.java
URL: 
http://svn.apache.org/viewvc/webservices/wss4j/trunk/test/wssec/PackageTests.java?rev=763911&r1=763910&r2=763911&view=diff
==============================================================================
--- webservices/wss4j/trunk/test/wssec/PackageTests.java (original)
+++ webservices/wss4j/trunk/test/wssec/PackageTests.java Fri Apr 10 11:31:25 
2009
@@ -82,6 +82,7 @@
         suite.addTestSuite(TestWSSecurityUTSignature.class);
         suite.addTestSuite(TestWSSecurityWSS60.class);
         suite.addTestSuite(TestWSSecurityWSS86.class);
+        suite.addTestSuite(TestWSSecurityWSS40.class);
         suite.addTestSuite(TestWSSecurityKerberosTokenProfile.class);
         suite.addTestSuite(TestWSSecurityTimestamp.class);
         suite.addTestSuite(SignatureKeyValueTest.class);

Added: webservices/wss4j/trunk/test/wssec/TestWSSecurityWSS40.java
URL: 
http://svn.apache.org/viewvc/webservices/wss4j/trunk/test/wssec/TestWSSecurityWSS40.java?rev=763911&view=auto
==============================================================================
--- webservices/wss4j/trunk/test/wssec/TestWSSecurityWSS40.java (added)
+++ webservices/wss4j/trunk/test/wssec/TestWSSecurityWSS40.java Fri Apr 10 
11:31:25 2009
@@ -0,0 +1,226 @@
+/*
+ * Copyright  2003-2004 The Apache Software Foundation.
+ *
+ *  Licensed 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 wssec;
+
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+import org.apache.axis.Message;
+import org.apache.axis.MessageContext;
+import org.apache.axis.client.AxisClient;
+import org.apache.axis.configuration.NullProvider;
+import org.apache.axis.message.SOAPEnvelope;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.ws.security.WSPasswordCallback;
+import org.apache.ws.security.WSSecurityEngine;
+import org.apache.ws.security.WSConstants;
+import org.apache.ws.security.WSSecurityException;
+import org.apache.ws.security.components.crypto.Crypto;
+import org.apache.ws.security.components.crypto.CryptoFactory;
+import org.apache.ws.security.message.WSSecSignature;
+import org.apache.ws.security.message.WSSecHeader;
+import org.w3c.dom.Document;
+
+import javax.security.auth.callback.Callback;
+import javax.security.auth.callback.CallbackHandler;
+import javax.security.auth.callback.UnsupportedCallbackException;
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+
+/**
+ * This is a test for WSS-40. Essentially it just tests that a message is 
signed using a
+ * keyEntry from one keystore, and verified at the other end with a keystore 
with just the
+ * CA cert in it.
+ * 
+ * http://issues.apache.org/jira/browse/WSS-40
+ * 
+ * Generate the CA keys/certs + export the CA cert to a keystore
+ * 
+ * openssl req -x509 -newkey rsa:1024 -keyout wss40CAKey.pem -out wss40CA.pem 
+ * -config ca.config
+ * openssl x509 -outform DER -in wss40CA.pem -out wss40CA.crt
+ * keytool -import -file wss40CA.crt -alias wss40CA -keystore wss40CA.jks
+ * 
+ * Generate the client keypair, make a csr, sign it with the CA key and 
re-import it
+ * 
+ * keytool -genkey -validity 3650 -alias wss40 -keyalg RSA -keystore wss40.jks 
+ * -dname "CN=Colm,OU=WSS4J,O=Apache,L=Dublin,ST=Leinster,C=IE"
+ * keytool -certreq -alias wss40 -keystore wss40.jks -file wss40.cer
+ * openssl ca -config ca.config -policy policy_anything -days 3650 -out 
wss40.pem 
+ * -infiles wss40.cer
+ * openssl x509 -outform DER -in wss40.pem -out wss40.crt
+ * keytool -import -file wss40.crt -alias wss40CA -keystore wss40.jks
+ * 
+ */
+public class TestWSSecurityWSS40 extends TestCase implements CallbackHandler {
+    private static final Log LOG = 
LogFactory.getLog(TestWSSecurityWSS40.class);
+    private static final String SOAPMSG = 
+        "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" 
+        + "<SOAP-ENV:Envelope "
+        +   "xmlns:SOAP-ENV=\"http://schemas.xmlsoap.org/soap/envelope/\"; "
+        +   "xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"; "
+        +   "xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\";>" 
+        +   "<SOAP-ENV:Body>" 
+        +       "<add 
xmlns=\"http://ws.apache.org/counter/counter_port_type\";>" 
+        +           "<value xmlns=\"\">15</value>" 
+        +       "</add>" 
+        +   "</SOAP-ENV:Body>" 
+        + "</SOAP-ENV:Envelope>";
+    private WSSecurityEngine secEngine = new WSSecurityEngine();
+    private Crypto crypto = CryptoFactory.getInstance("wss40.properties");
+    private MessageContext msgContext;
+    private Message message;
+
+    /**
+     * TestWSSecurity constructor
+     * 
+     * @param name name of the test
+     */
+    public TestWSSecurityWSS40(String name) {
+        super(name);
+    }
+
+    /**
+     * JUnit suite
+     * 
+     * @return a junit test suite
+     */
+    public static Test suite() {
+        return new TestSuite(TestWSSecurityWSS40.class);
+    }
+
+    /**
+     * Setup method
+     * 
+     * @throws Exception Thrown when there is a problem in setup
+     */
+    protected void setUp() throws Exception {
+        AxisClient tmpEngine = new AxisClient(new NullProvider());
+        msgContext = new MessageContext(tmpEngine);
+        message = getSOAPMessage();
+    }
+
+    /**
+     * Constructs a soap envelope
+     * 
+     * @return soap envelope
+     * @throws Exception if there is any problem constructing the soap envelope
+     */
+    protected Message getSOAPMessage() throws Exception {
+        InputStream in = new ByteArrayInputStream(SOAPMSG.getBytes());
+        Message msg = new Message(in);
+        msg.setMessageContext(msgContext);
+        return msg;
+    }
+
+    
+    /**
+     * Test signing a SOAP message using a BST.
+     */
+    public void testSignatureDirectReference() throws Exception {
+        SOAPEnvelope unsignedEnvelope = message.getSOAPEnvelope();
+        WSSecSignature sign = new WSSecSignature();
+        sign.setUserInfo("wss40", "security");
+        sign.setKeyIdentifierType(WSConstants.BST_DIRECT_REFERENCE);
+
+        Document doc = unsignedEnvelope.getAsDocument();
+
+        WSSecHeader secHeader = new WSSecHeader();
+        secHeader.insertSecurityHeader(doc);
+        Document signedDoc = sign.build(doc, crypto, secHeader);
+        
+        if (LOG.isDebugEnabled()) {
+            String outputString = 
+                
org.apache.ws.security.util.XMLUtils.PrettyDocumentToString(signedDoc);
+            LOG.debug(outputString);
+        }
+        verify(signedDoc);
+    }
+    
+    
+    /**
+     * Test signing a SOAP message using Issuer Serial. Note that this should 
fail, as the
+     * trust-store does not contain the cert corresponding to wss40, only the 
CA cert
+     * wss40CA.
+     */
+    public void testSignatureIssuerSerial() throws Exception {
+        SOAPEnvelope unsignedEnvelope = message.getSOAPEnvelope();
+        WSSecSignature sign = new WSSecSignature();
+        sign.setUserInfo("wss40", "security");
+        sign.setKeyIdentifierType(WSConstants.ISSUER_SERIAL);
+
+        Document doc = unsignedEnvelope.getAsDocument();
+
+        WSSecHeader secHeader = new WSSecHeader();
+        secHeader.insertSecurityHeader(doc);
+        Document signedDoc = sign.build(doc, crypto, secHeader);
+        
+        if (LOG.isDebugEnabled()) {
+            String outputString = 
+                
org.apache.ws.security.util.XMLUtils.PrettyDocumentToString(signedDoc);
+            LOG.debug(outputString);
+        }
+        
+        try {
+            verify(signedDoc);
+            throw new Exception("Failure expected on issuer serial");
+        } catch (WSSecurityException ex) {
+            assertTrue(ex.getErrorCode() == WSSecurityException.FAILED_CHECK);
+            // expected
+        }
+    }
+    
+    /**
+     * Verifies the soap envelope
+     * <p/>
+     * 
+     * @param doc 
+     * @throws Exception Thrown when there is a problem in verification
+     */
+    private void verify(Document doc) throws WSSecurityException {
+        secEngine.processSecurityHeader(
+            doc, null, this, CryptoFactory.getInstance("wss40CA.properties")
+        );
+        if (LOG.isDebugEnabled()) {
+            LOG.debug("Verfied and decrypted message:");
+            String outputString = 
+                
org.apache.ws.security.util.XMLUtils.PrettyDocumentToString(doc);
+            LOG.debug(outputString);
+        }
+    }
+
+    public void handle(Callback[] callbacks)
+        throws IOException, UnsupportedCallbackException {
+        for (int i = 0; i < callbacks.length; i++) {
+            if (callbacks[i] instanceof WSPasswordCallback) {
+                WSPasswordCallback pc = (WSPasswordCallback) callbacks[i];
+                /*
+                 * here call a function/method to lookup the password for
+                 * the given identifier (e.g. a user name or keystore alias)
+                 * e.g.: 
pc.setPassword(passStore.getPassword(pc.getIdentfifier))
+                 * for Testing we supply a fixed name here.
+                 */
+                pc.setPassword("security");
+            } else {
+                throw new UnsupportedCallbackException(callbacks[i], 
"Unrecognized Callback");
+            }
+        }
+    }
+}



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to