- Added alternative for SHA1 signature structure to check for (without NULL)

diff --git a/include/polarssl/rsa.h b/include/polarssl/rsa.h
index 629aa0f..513b037 100644
--- a/include/polarssl/rsa.h
+++ b/include/polarssl/rsa.h
@@ -114,6 +114,13 @@
         ASN1_STR_NULL "\x00"                    \
       ASN1_STR_OCTET_STRING "\x14"
 
+#define ASN1_HASH_SHA1_ALT                      \
+    ASN1_STR_CONSTRUCTED_SEQUENCE "\x1F"        \
+      ASN1_STR_CONSTRUCTED_SEQUENCE "\x07"      \
+        ASN1_STR_OID "\x05"                     \
+      OID_HASH_ALG_SHA1                         \
+      ASN1_STR_OCTET_STRING "\x14"
+
 #define ASN1_HASH_SHA2X                         \
     ASN1_STR_CONSTRUCTED_SEQUENCE "\x11"        \
       ASN1_STR_CONSTRUCTED_SEQUENCE "\x0d"      \
diff --git a/library/rsa.c b/library/rsa.c
index ed1f45b..72806e1 100644
--- a/library/rsa.c
+++ b/library/rsa.c
@@ -860,6 +860,14 @@
 
             len = siglen - ( p - buf );
 
+            if( len == 33 && hash_id == SIG_RSA_SHA1 )
+            {
+                if( memcmp( p, ASN1_HASH_SHA1_ALT, 13 ) == 0 &&
+                        memcmp( p + 13, hash, 20 ) == 0 )
+                    return( 0 );
+                else
+                    return( POLARSSL_ERR_RSA_VERIFY_FAILED );
+            }
             if( len == 34 )
             {
                 c = p[13];