Commit 18f54773 authored by Dr. Stephen Henson's avatar Dr. Stephen Henson
Browse files

New function ASN1_STRING_copy() to copy to an already

alloacted ASN1_STRING structure.
parent be3b365a
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -765,6 +765,7 @@ DECLARE_ASN1_SET_OF(ASN1_OBJECT)

ASN1_STRING *	ASN1_STRING_new(void);
void		ASN1_STRING_free(ASN1_STRING *a);
int		ASN1_STRING_copy(ASN1_STRING *dst, const ASN1_STRING *str);
ASN1_STRING *	ASN1_STRING_dup(const ASN1_STRING *a);
ASN1_STRING *	ASN1_STRING_type_new(int type );
int 		ASN1_STRING_cmp(const ASN1_STRING *a, const ASN1_STRING *b);
+19 −8
Original line number Diff line number Diff line
@@ -340,20 +340,31 @@ int asn1_GetSequence(ASN1_const_CTX *c, long *length)
	return(1);
	}

int ASN1_STRING_copy(ASN1_STRING *dst, const ASN1_STRING *str)
	{
	if (str == NULL)
		return 0;
	dst->type = str->type;
	if (!ASN1_STRING_set(dst,str->data,str->length))
		return 0;
	dst->flags = str->flags;
	return 1;
	}

ASN1_STRING *ASN1_STRING_dup(const ASN1_STRING *str)
	{
	ASN1_STRING *ret;

	if (str == NULL) return(NULL);
	if ((ret=ASN1_STRING_type_new(str->type)) == NULL)
		return(NULL);
	if (!ASN1_STRING_set(ret,str->data,str->length))
	if (!str)
		 return NULL;
	ret=ASN1_STRING_new();
	if (!ret)
		return NULL;
	if (!ASN1_STRING_copy(ret,str))
		{
		ASN1_STRING_free(ret);
		return(NULL);
		return NULL;
		}
	ret->flags = str->flags;
	return(ret);
	return ret;
	}

int ASN1_STRING_set(ASN1_STRING *str, const void *_data, int len)