diff --git a/lib/asn1/der_put.c b/lib/asn1/der_put.c index ce0ae29b2..c3b9db092 100644 --- a/lib/asn1/der_put.c +++ b/lib/asn1/der_put.c @@ -5,7 +5,6 @@ #endif #include #include -#include #include #include "der.h" @@ -104,6 +103,28 @@ der_put_tag (unsigned char *p, int len, Der_class class, Der_type type, return 1; } +int +der_put_length_and_tag (unsigned char *p, int len, int len_val, + Der_class class, Der_type type, int tag) +{ + int ret = 0; + int l; + + l = der_put_length (p, len, len_val); + if (l < 0) + return l; + p -= l; + len -= l; + ret += l; + l = der_put_tag (p, len, class, type, tag); + if (l < 0) + return l; + p -= l; + len -= l; + ret += l; + return ret; +} + int encode_integer (unsigned char *p, int len, unsigned *data) {