Added asn1_write_raw_buffer()
diff --git a/library/asn1write.c b/library/asn1write.c
index fc85bf9..f08e105 100644
--- a/library/asn1write.c
+++ b/library/asn1write.c
@@ -272,7 +272,7 @@
     int ret;
     size_t len = 0;
 
-    if( *p - start < (int) size + 1 )
+    if( *p - start < (int) size )
         return( POLARSSL_ERR_ASN1_BUF_TOO_SMALL );
 
     len = size;
@@ -285,4 +285,19 @@
     return( len );
 }
 
+int asn1_write_raw_buffer( unsigned char **p, unsigned char *start,
+                           const unsigned char *buf, size_t size )
+{
+    size_t len = 0;
+
+    if( *p - start < (int) size )
+        return( POLARSSL_ERR_ASN1_BUF_TOO_SMALL );
+
+    len = size;
+    (*p) -= len;
+    memcpy( *p, buf, len );
+
+    return( len );
+}
+
 #endif