- Inceased maximum size of ASN1 length reads to 32-bits

diff --git a/library/x509parse.c b/library/x509parse.c
index 58399eb..e359ca7 100644
--- a/library/x509parse.c
+++ b/library/x509parse.c
@@ -89,6 +89,22 @@
             (*p) += 3;
             break;
 
+        case 3:
+            if( ( end - *p ) < 4 )
+                return( POLARSSL_ERR_ASN1_OUT_OF_DATA );
+
+            *len = ( (*p)[1] << 16 ) | ( (*p)[2] << 8 ) | (*p)[3];
+            (*p) += 4;
+            break;
+
+        case 4:
+            if( ( end - *p ) < 5 )
+                return( POLARSSL_ERR_ASN1_OUT_OF_DATA );
+
+            *len = ( (*p)[1] << 24 ) | ( (*p)[2] << 16 ) | ( (*p)[3] << 8 ) | (*p)[4];
+            (*p) += 5;
+            break;
+
         default:
             return( POLARSSL_ERR_ASN1_INVALID_LENGTH );
         }