return NULL;
}
+ asn1->orig_stack = stack;
asn1->stack1 = stack1;
asn1->stack2 = silc_stack_alloc(0, stack);
if (!asn1->stack2) {
SilcBool silc_asn1_init(SilcAsn1 asn1, SilcStack stack)
{
+ asn1->orig_stack = stack;
+
asn1->stack1 = silc_stack_alloc(0, stack);
if (!asn1->stack1)
return FALSE;
void silc_asn1_uninit(SilcAsn1 asn1)
{
+ SilcStack stack1 = asn1->stack1;
+
+ if (asn1->switched) {
+ stack1 = asn1->stack2;
+ asn1->stack2 = asn1->stack1;
+ }
+
silc_stack_free(asn1->stack2);
- silc_stack_free(asn1->stack1);
+ silc_stack_free(stack1);
}
#if defined(SILC_DEBUG)
}
fprintf(stdout, "Type %s [%d]\n",
- silc_asn1_tag_name(rtag), rtag);
+ silc_asn1_tag_name(rtag), (int)rtag);
if (renc == SILC_BER_ENC_PRIMITIVE)
len = len + rdata_len;