From 86ba9a4e1f100b1adaf2c94e54963af08c4bb20e Mon Sep 17 00:00:00 2001 From: Assar Westerlund Date: Thu, 6 Apr 2000 17:19:53 +0000 Subject: [PATCH] (decode_unsigned): add git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@8126 ec53bebd-3082-4978-b11e-865c3cabbd6b --- lib/asn1/der_get.c | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/lib/asn1/der_get.c b/lib/asn1/der_get.c index f331a6750..e6e667b0e 100644 --- a/lib/asn1/der_get.c +++ b/lib/asn1/der_get.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 1998, 1999 Kungliga Tekniska Högskolan + * Copyright (c) 1997 - 2000 Kungliga Tekniska Högskolan * (Royal Institute of Technology, Stockholm, Sweden). * All rights reserved. * @@ -224,6 +224,33 @@ decode_integer (const unsigned char *p, size_t len, return 0; } +int +decode_unsigned (const unsigned char *p, size_t len, + unsigned *num, size_t *size) +{ + size_t ret = 0; + size_t l, reallen; + int e; + + e = der_match_tag (p, len, UNIV, PRIM, UT_Integer, &l); + if (e) return e; + p += l; + len -= l; + ret += l; + e = der_get_length (p, len, &reallen, &l); + if (e) return e; + p += l; + len -= l; + ret += l; + e = der_get_unsigned (p, reallen, num, &l); + if (e) return e; + p += l; + len -= l; + ret += l; + if(size) *size = ret; + return 0; +} + int decode_general_string (const unsigned char *p, size_t len, general_string *str, size_t *size)