add ENUMERATED and OBJECT IDENTIFIER

git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@10741 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
Assar Westerlund
2001-09-25 13:39:27 +00:00
parent 680399419e
commit 2bcae56ac3
18 changed files with 323 additions and 26 deletions

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 1997 - 2000 Kungliga Tekniska H<>gskolan
* Copyright (c) 1997 - 2001 Kungliga Tekniska H<>gskolan
* (Royal Institute of Technology, Stockholm, Sweden).
* All rights reserved.
*
@@ -67,6 +67,25 @@ len_int (int val)
return ret;
}
static size_t
len_oid (const oid *oid)
{
size_t ret = 1;
int n;
for (n = 2; n < oid->length; ++n) {
unsigned u = oid->components[n];
++ret;
u /= 128;
while (u > 0) {
++ret;
u /= 128;
}
}
return ret;
}
size_t
length_len (size_t len)
{
@@ -92,6 +111,14 @@ length_unsigned (const unsigned *data)
return 1 + length_len(len) + len;
}
size_t
length_enumerated (const unsigned *data)
{
size_t len = len_int (*data);
return 1 + length_len(len) + len;
}
size_t
length_general_string (const general_string *data)
{
@@ -106,6 +133,14 @@ length_octet_string (const octet_string *k)
return 1 + length_len(k->length) + k->length;
}
size_t
length_oid (const oid *k)
{
size_t len = len_oid (k);
return 1 + length_len(len) + len;
}
size_t
length_generalized_time (const time_t *t)
{