/*
+ * Copyright (C) 2004, 2006 Free Software Foundation
* Copyright (C) 2002 Fabio Fiorina
- * Copyright (C) 2004 Simon Josefsson
*
* This file is part of LIBASN1.
*
case TYPE_INTEGER:
len2=-1;
len=_asn1_get_length_der(p_s->value,p_s->value_len,&len2);
+ if (len < 0) return NULL;
_asn1_set_value(p_d,p_s->value,len+len2);
break;
default:
len2=-1;
len=_asn1_get_length_der(p->value,p->value_len,&len2);
fprintf(out," value:0x");
- for(k=0;k<len;k++) fprintf(out,"%02x",(p->value)[k+len2]);
+ if (len > 0)
+ for(k=0;k<len;k++) fprintf(out,"%02x",(p->value)[k+len2]);
}
break;
case TYPE_ENUMERATED:
len2=-1;
len=_asn1_get_length_der(p->value,p->value_len,&len2);
fprintf(out," value:0x");
- for(k=0;k<len;k++) fprintf(out,"%02x",(p->value)[k+len2]);
+ if (len > 0)
+ for(k=0;k<len;k++) fprintf(out,"%02x",(p->value)[k+len2]);
}
break;
case TYPE_TIME:
if(p->value){
len2=-1;
len=_asn1_get_length_der(p->value,p->value_len,&len2);
- fprintf(out," value(%i):",(len-1)*8-(p->value[len2]));
- for(k=1;k<len;k++) fprintf(out,"%02x",(p->value)[k+len2]);
+ if (len>0)
+ {
+ fprintf(out," value(%i):",(len-1)*8-(p->value[len2]));
+ for(k=1;k<len;k++) fprintf(out,"%02x",(p->value)[k+len2]);
+ }
}
break;
case TYPE_OCTET_STRING:
len2=-1;
len=_asn1_get_length_der(p->value,p->value_len,&len2);
fprintf(out," value:");
- for(k=0;k<len;k++) fprintf(out,"%02x",(p->value)[k+len2]);
+ if (len>0)
+ for(k=0;k<len;k++) fprintf(out,"%02x",(p->value)[k+len2]);
}
break;
case TYPE_GENERALSTRING:
len2=-1;
len=_asn1_get_length_der(p->value,p->value_len,&len2);
fprintf(out," value:");
- for(k=0;k<len;k++) fprintf(out,"%02x",(p->value)[k+len2]);
+ if (len>0)
+ for(k=0;k<len;k++) fprintf(out,"%02x",(p->value)[k+len2]);
}
break;
case TYPE_OBJECT_ID:
len3=-1;
len2=_asn1_get_length_der(p->value,p->value_len,&len3);
fprintf(out," value:");
- for(k=0;k<len2;k++) fprintf(out,"%02x",(p->value)[k+len3]);
+ if (len2>0)
+ for(k=0;k<len2;k++) fprintf(out,"%02x",(p->value)[k+len3]);
}
break;
case TYPE_SET: