- Integrated SHA2 in RSA fix (patch 657:658) into 0.11 branch

diff --git a/library/rsa.c b/library/rsa.c
index ed70342..525908a 100644
--- a/library/rsa.c
+++ b/library/rsa.c
@@ -333,7 +333,7 @@
 {
     int ret, ilen;
     unsigned char *p;
-    unsigned char buf[512];
+    unsigned char buf[1024];
 
     ilen = ctx->len;
 
@@ -414,6 +414,23 @@
                     nb_pad = olen - 3 - 35;
                     break;
 
+                case SIG_RSA_SHA224:
+                    nb_pad = olen - 3 - 47;
+                    break;
+
+                case SIG_RSA_SHA256:
+                    nb_pad = olen - 3 - 51;
+                    break;
+
+                case SIG_RSA_SHA384:
+                    nb_pad = olen - 3 - 67;
+                    break;
+
+                case SIG_RSA_SHA512:
+                    nb_pad = olen - 3 - 83;
+                    break;
+
+
                 default:
                     return( POLARSSL_ERR_RSA_BAD_INPUT_DATA );
             }
@@ -500,7 +517,7 @@
 {
     int ret, len, siglen;
     unsigned char *p, c;
-    unsigned char buf[512];
+    unsigned char buf[1024];
 
     siglen = ctx->len;
 
@@ -572,15 +589,15 @@
         ( len == 19 + 64 && p[14] == 3 && hash_id == SIG_RSA_SHA512 ) )
     {
     	c = p[1] - 17;
-	p[1] = 17;
-	p[14] = 0;
+        p[1] = 17;
+        p[14] = 0;
 
         if( p[18] == c &&
-	    memcmp( p, ASN1_HASH_SHA2X, 18 ) == 0 &&
-	    memcmp( p + 19, hash, c ) == 0 )
-	    return( 0 );
-	else
-	    return( POLARSSL_ERR_RSA_VERIFY_FAILED );
+                memcmp( p, ASN1_HASH_SHA2X, 18 ) == 0 &&
+                memcmp( p + 19, hash, c ) == 0 )
+            return( 0 );
+        else
+            return( POLARSSL_ERR_RSA_VERIFY_FAILED );
     }
 
     if( len == hashlen && hash_id == RSA_RAW )