if (!max) goto err;
ret=(*p&V_ASN1_CONSTRUCTED);
xclass=(*p&V_ASN1_PRIVATE);
- i= *p&V_ASN1_PRIMATIVE_TAG;
- if (i == V_ASN1_PRIMATIVE_TAG)
+ i= *p&V_ASN1_PRIMITIVE_TAG;
+ if (i == V_ASN1_PRIMITIVE_TAG)
{ /* high-tag */
p++;
if (--max == 0) goto err;
}
/* class 0 is constructed
- * constructed == 2 for indefinitle length constructed */
+ * constructed == 2 for indefinite length constructed */
void ASN1_put_object(unsigned char **pp, int constructed, int length, int tag,
int xclass)
{
i=(constructed)?V_ASN1_CONSTRUCTED:0;
i|=(xclass&V_ASN1_PRIVATE);
if (tag < 31)
- *(p++)=i|(tag&V_ASN1_PRIMATIVE_TAG);
+ *(p++)=i|(tag&V_ASN1_PRIMITIVE_TAG);
else
{
- *(p++)=i|V_ASN1_PRIMATIVE_TAG;
+ *(p++)=i|V_ASN1_PRIMITIVE_TAG;
while (tag > 0x7f)
{
*(p++)=(tag&0x7f)|0x80;
ASN1_STRING_free(ret);
return(NULL);
}
+ ret->flags = str->flags;
return(ret);
}
if (data != NULL)
{
memcpy(str->data,data,len);
- /* an alowance for strings :-) */
+ /* an allowance for strings :-) */
str->data[len]='\0';
}
return(1);
void ASN1_STRING_free(ASN1_STRING *a)
{
if (a == NULL) return;
- if (a->data != NULL) Free((char *)a->data);
- Free((char *)a);
+ if (a->data != NULL) Free(a->data);
+ Free(a);
}
int ASN1_STRING_cmp(ASN1_STRING *a, ASN1_STRING *b)
ERR_add_error_data(4,"address=",buf1," offset=",buf2);
}
+int ASN1_STRING_length(ASN1_STRING *x)
+{ return M_ASN1_STRING_length(x); }
+
+void ASN1_STRING_length_set(ASN1_STRING *x, int len)
+{ M_ASN1_STRING_length_set(x, len); return; }
+
+int ASN1_STRING_type(ASN1_STRING *x)
+{ return M_ASN1_STRING_type(x); }
+
+unsigned char * ASN1_STRING_data(ASN1_STRING *x)
+{ return M_ASN1_STRING_data(x); }