- Added support for RFC4055 SHA2 and SHA4 signature algorithms for
   use with PKCS#1 v1.5 signing and verification.
 - Added extra certificates to test-ca and test code to further test
   functionality of SHA2 and SHA4 signing and verification.
 - Updated other program files accordingly

diff --git a/programs/ssl/test-ca/server2.crt b/programs/ssl/test-ca/server2.crt
index e805480..e696a87 100644
--- a/programs/ssl/test-ca/server2.crt
+++ b/programs/ssl/test-ca/server2.crt
@@ -5,73 +5,73 @@
         Signature Algorithm: sha1WithRSAEncryption
         Issuer: C=NL, O=PolarSSL, CN=PolarSSL Test CA
         Validity
-            Not Before: Jan 14 22:43:38 2009 GMT
-            Not After : Jan 14 22:43:38 2011 GMT
+            Not Before: Feb  9 21:12:35 2009 GMT
+            Not After : Feb  9 21:12:35 2011 GMT
         Subject: C=NL, O=PolarSSL, CN=PolarSSL Server 2
         Subject Public Key Info:
             Public Key Algorithm: rsaEncryption
             RSA Public Key: (2048 bit)
                 Modulus (2048 bit):
-                    00:a7:d3:64:9c:a0:6f:f1:55:e4:b7:a1:b9:4f:5a:
-                    4a:00:dd:8e:6c:fd:c5:e9:48:df:13:6a:e0:1d:39:
-                    c4:77:36:dd:2e:91:fc:d2:64:3a:c8:ff:81:f8:3c:
-                    77:29:3a:0b:be:6e:ba:22:50:b1:d7:56:34:67:4e:
-                    b0:67:17:22:e3:3a:9a:87:23:51:9a:dd:0e:a8:7d:
-                    4a:d0:16:a7:3e:c0:1e:50:13:99:c4:e7:73:6d:52:
-                    92:90:0e:a1:a9:9f:0b:58:87:8c:fe:56:ae:b8:5c:
-                    24:8c:df:f6:1f:92:dd:c0:ac:22:7e:77:47:e3:a7:
-                    73:f5:2b:37:0d:3b:d4:0a:26:6c:3e:ae:d3:1a:f3:
-                    2a:22:4a:cf:2e:c5:cd:b5:f9:99:c8:d4:80:1e:11:
-                    a3:90:ed:d9:8d:e9:8c:fc:a5:9f:09:9d:51:9d:a7:
-                    b2:a7:b0:a5:db:0d:c5:d0:ef:13:a2:a2:5d:08:aa:
-                    2c:ab:5d:f6:ab:20:ff:83:cb:57:07:8c:d0:34:6a:
-                    f8:6a:55:fa:e5:db:43:a1:9f:1f:c4:46:e4:e9:6f:
-                    51:14:35:e7:4b:e9:04:48:d7:fe:a7:4f:7e:a3:a4:
-                    6d:d2:6f:8b:ad:46:ed:31:a4:66:63:48:08:8d:9b:
-                    0d:9a:a3:f5:95:7c:0f:bc:3b:59:3f:70:3a:a6:13:
-                    62:83
+                    00:b0:19:1d:43:4a:e1:f1:67:80:7b:44:3f:25:b9:
+                    10:f0:f1:ac:af:59:fb:5c:e3:e7:32:49:f3:b7:a0:
+                    c1:90:27:83:04:2c:0b:1b:f8:3d:1e:d8:c2:40:67:
+                    7a:4a:c0:cd:ab:51:77:34:ee:ae:ac:09:6b:7a:cb:
+                    20:23:b3:44:b1:7e:78:a0:95:50:59:36:97:04:57:
+                    9a:76:65:e0:08:7a:09:5e:61:16:59:c2:35:eb:e0:
+                    a1:fd:92:f5:d5:76:c3:57:f3:64:19:25:ff:a9:e3:
+                    48:5a:c9:b7:ad:77:c5:81:24:2d:c7:99:d5:a5:15:
+                    12:67:69:00:2a:cd:4e:4f:46:40:51:78:36:b5:26:
+                    15:9c:73:9c:dc:bd:f9:fe:ac:62:dc:0a:c8:a0:9e:
+                    aa:06:e9:e5:94:c2:bd:2f:46:d4:54:08:d7:d6:98:
+                    69:1f:de:63:fc:09:70:f2:99:c8:63:27:f7:00:96:
+                    1e:ad:c3:ee:ce:80:e8:75:ce:50:6b:6c:49:c8:c4:
+                    92:04:a0:25:7c:19:6e:d6:e0:43:45:2a:d7:2a:44:
+                    4a:03:b9:72:17:a4:c7:01:b9:4e:88:8c:82:63:0f:
+                    bb:c2:89:98:86:8e:6d:d5:5e:bb:0b:bf:8c:d0:6f:
+                    97:15:39:fe:11:c9:cb:de:c5:5b:2c:47:65:07:20:
+                    b6:cf
                 Exponent: 65537 (0x10001)
         X509v3 extensions:
             X509v3 Basic Constraints: 
                 CA:FALSE
             X509v3 Subject Key Identifier: 
-                35:93:04:00:81:D2:5B:CC:11:9E:9A:22:35:EC:CB:D2:45:DA:FC:26
+                92:0C:8B:3F:E9:D3:EE:6F:08:23:62:0B:D1:68:FD:AC:A6:11:8F:5F
             X509v3 Authority Key Identifier: 
-                keyid:80:EE:21:48:46:6B:56:EA:9D:71:32:06:64:2F:4C:C1:B4:2D:A9:2E
+                keyid:CF:22:31:27:91:D8:C2:54:FF:1E:DA:D9:EE:8A:C5:89:32:AD:0C:21
 
     Signature Algorithm: sha1WithRSAEncryption
-        ab:f2:56:8b:7d:60:7c:ec:1d:36:f0:ff:30:ef:a2:b0:b1:e3:
-        ec:b0:41:8c:46:78:dc:4c:6d:7c:1f:ff:54:97:8e:d4:33:ef:
-        e5:28:b3:2d:46:f5:08:b5:4a:cd:02:4c:8a:7a:1a:86:13:72:
-        50:18:bb:6b:2d:13:7e:95:98:59:20:38:75:ba:ad:46:1c:74:
-        85:1d:16:7d:43:0f:50:ca:14:4e:3d:c9:ab:4a:4c:1d:5b:85:
-        19:90:ae:f1:ad:20:88:16:f1:6f:9b:20:0e:76:58:2a:f4:55:
-        89:5b:b2:1a:6a:10:ef:dd:d3:98:93:22:c4:1f:d9:30:76:14:
-        03:6b:eb:e8:d2:dd:25:7a:1b:0f:87:64:34:d6:24:90:d9:93:
-        39:eb:be:04:d5:ad:e9:29:96:7c:82:b8:fd:16:e7:8f:50:c5:
-        1c:21:c7:81:67:aa:28:93:1b:32:f7:e4:f8:5b:95:d5:c6:60:
-        e8:a1:1f:20:7e:a6:d7:73:6e:4e:f8:94:0f:0b:c9:88:66:c8:
-        31:91:89:0a:8e:fc:2b:70:ce:cf:de:6f:60:2b:e8:32:47:3d:
-        d1:44:d9:dc:13:58:8a:dd:a1:53:31:e3:de:e9:2f:dd:35:8f:
-        73:5c:2e:1f:59:af:4c:97:89:11:e8:d5:20:f8:22:3f:07:43:
-        ca:7d:2d:bd
+        0d:22:8f:f2:f6:17:f7:bb:d8:8e:9d:96:58:37:3d:81:ce:ef:
+        bc:ae:e1:8e:70:3a:13:9b:c4:1f:22:8e:6a:90:39:a8:ba:7b:
+        53:ff:94:2f:ed:96:4d:56:d7:d7:b6:28:b2:d4:38:90:be:87:
+        be:09:22:2b:32:6f:b8:fa:59:c3:fa:c3:8c:d7:85:55:bc:09:
+        b1:e6:d3:a7:b2:9f:79:45:5c:2a:d9:b3:34:0f:91:e1:ea:cd:
+        30:a0:94:72:c2:02:35:0e:00:6a:0d:3f:46:8c:ca:30:6e:11:
+        d4:a3:85:f2:5b:d7:e0:0b:07:65:77:b6:56:46:7e:0a:a2:5d:
+        1c:6a:43:b7:60:c5:99:86:ae:8a:ca:cd:ba:7a:2e:5b:79:fb:
+        8b:86:7c:ad:eb:66:33:08:4c:c7:f7:86:5e:70:4c:fa:9a:3e:
+        4a:53:72:cb:43:03:9c:f6:f7:c9:be:d0:33:81:00:aa:1a:5b:
+        5c:71:3a:3b:7a:20:d4:2f:89:97:79:92:29:14:0b:ec:65:ba:
+        fb:aa:5a:65:a7:e5:3a:3d:bc:45:61:3f:0d:54:36:27:2c:0e:
+        fb:a8:8a:a2:41:96:b1:07:b6:be:0b:8b:08:47:42:a7:5f:00:
+        c2:13:a4:01:10:c6:96:23:13:4e:66:49:16:10:23:1e:9d:1b:
+        c0:5e:55:6b
 -----BEGIN CERTIFICATE-----
 MIIDPzCCAiegAwIBAgIBAjANBgkqhkiG9w0BAQUFADA7MQswCQYDVQQGEwJOTDER
 MA8GA1UEChMIUG9sYXJTU0wxGTAXBgNVBAMTEFBvbGFyU1NMIFRlc3QgQ0EwHhcN
-MDkwMTE0MjI0MzM4WhcNMTEwMTE0MjI0MzM4WjA8MQswCQYDVQQGEwJOTDERMA8G
+MDkwMjA5MjExMjM1WhcNMTEwMjA5MjExMjM1WjA8MQswCQYDVQQGEwJOTDERMA8G
 A1UEChMIUG9sYXJTU0wxGjAYBgNVBAMTEVBvbGFyU1NMIFNlcnZlciAyMIIBIjAN
-BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAp9NknKBv8VXkt6G5T1pKAN2ObP3F
-6UjfE2rgHTnEdzbdLpH80mQ6yP+B+Dx3KToLvm66IlCx11Y0Z06wZxci4zqahyNR
-mt0OqH1K0BanPsAeUBOZxOdzbVKSkA6hqZ8LWIeM/lauuFwkjN/2H5LdwKwifndH
-46dz9Ss3DTvUCiZsPq7TGvMqIkrPLsXNtfmZyNSAHhGjkO3ZjemM/KWfCZ1Rnaey
-p7Cl2w3F0O8ToqJdCKosq132qyD/g8tXB4zQNGr4alX65dtDoZ8fxEbk6W9RFDXn
-S+kESNf+p09+o6Rt0m+LrUbtMaRmY0gIjZsNmqP1lXwPvDtZP3A6phNigwIDAQAB
-o00wSzAJBgNVHRMEAjAAMB0GA1UdDgQWBBQ1kwQAgdJbzBGemiI17MvSRdr8JjAf
-BgNVHSMEGDAWgBSA7iFIRmtW6p1xMgZkL0zBtC2pLjANBgkqhkiG9w0BAQUFAAOC
-AQEAq/JWi31gfOwdNvD/MO+isLHj7LBBjEZ43ExtfB//VJeO1DPv5SizLUb1CLVK
-zQJMinoahhNyUBi7ay0TfpWYWSA4dbqtRhx0hR0WfUMPUMoUTj3Jq0pMHVuFGZCu
-8a0giBbxb5sgDnZYKvRViVuyGmoQ793TmJMixB/ZMHYUA2vr6NLdJXobD4dkNNYk
-kNmTOeu+BNWt6SmWfIK4/Rbnj1DFHCHHgWeqKJMbMvfk+FuV1cZg6KEfIH6m13Nu
-TviUDwvJiGbIMZGJCo78K3DOz95vYCvoMkc90UTZ3BNYit2hUzHj3ukv3TWPc1wu
-H1mvTJeJEejVIPgiPwdDyn0tvQ==
+BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsBkdQ0rh8WeAe0Q/JbkQ8PGsr1n7
+XOPnMknzt6DBkCeDBCwLG/g9HtjCQGd6SsDNq1F3NO6urAlressgI7NEsX54oJVQ
+WTaXBFeadmXgCHoJXmEWWcI16+Ch/ZL11XbDV/NkGSX/qeNIWsm3rXfFgSQtx5nV
+pRUSZ2kAKs1OT0ZAUXg2tSYVnHOc3L35/qxi3ArIoJ6qBunllMK9L0bUVAjX1php
+H95j/Alw8pnIYyf3AJYercPuzoDodc5Qa2xJyMSSBKAlfBlu1uBDRSrXKkRKA7ly
+F6THAblOiIyCYw+7womYho5t1V67C7+M0G+XFTn+EcnL3sVbLEdlByC2zwIDAQAB
+o00wSzAJBgNVHRMEAjAAMB0GA1UdDgQWBBSSDIs/6dPubwgjYgvRaP2sphGPXzAf
+BgNVHSMEGDAWgBTPIjEnkdjCVP8e2tnuisWJMq0MITANBgkqhkiG9w0BAQUFAAOC
+AQEADSKP8vYX97vYjp2WWDc9gc7vvK7hjnA6E5vEHyKOapA5qLp7U/+UL+2WTVbX
+17YostQ4kL6HvgkiKzJvuPpZw/rDjNeFVbwJsebTp7KfeUVcKtmzNA+R4erNMKCU
+csICNQ4Aag0/RozKMG4R1KOF8lvX4AsHZXe2VkZ+CqJdHGpDt2DFmYauisrNunou
+W3n7i4Z8retmMwhMx/eGXnBM+po+SlNyy0MDnPb3yb7QM4EAqhpbXHE6O3og1C+J
+l3mSKRQL7GW6+6paZaflOj28RWE/DVQ2JywO+6iKokGWsQe2vguLCEdCp18AwhOk
+ARDGliMTTmZJFhAjHp0bwF5Vaw==
 -----END CERTIFICATE-----