add boolan support
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@12944 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
@@ -132,6 +132,19 @@ der_put_length (unsigned char *p, size_t len, size_t val, size_t *size)
|
||||
}
|
||||
}
|
||||
|
||||
int
|
||||
der_put_boolean(unsigned char *p, size_t len, const int *data, size_t *size)
|
||||
{
|
||||
if(len < 1)
|
||||
return ASN1_OVERFLOW;
|
||||
if(*data != 0)
|
||||
*p = 0xff;
|
||||
else
|
||||
*p = 0;
|
||||
*size = 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
der_put_general_string (unsigned char *p, size_t len,
|
||||
const heim_general_string *str, size_t *size)
|
||||
@@ -225,6 +238,30 @@ der_put_length_and_tag (unsigned char *p, size_t len, size_t len_val,
|
||||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
encode_boolean (unsigned char *p, size_t len, const int *data,
|
||||
size_t *size)
|
||||
{
|
||||
size_t ret = 0;
|
||||
size_t l;
|
||||
int e;
|
||||
|
||||
e = der_put_boolean (p, len, data, &l);
|
||||
if(e)
|
||||
return e;
|
||||
p -= l;
|
||||
len -= l;
|
||||
ret += l;
|
||||
e = der_put_length_and_tag (p, len, l, UNIV, PRIM, UT_Boolean, &l);
|
||||
if (e)
|
||||
return e;
|
||||
p -= l;
|
||||
len -= l;
|
||||
ret += l;
|
||||
*size = ret;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
encode_integer (unsigned char *p, size_t len, const int *data, size_t *size)
|
||||
{
|
||||
|
Reference in New Issue
Block a user