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