make functions more consistent
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@6994 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
		| @@ -115,23 +115,15 @@ int | ||||
| der_get_general_string (unsigned char *p, size_t len,  | ||||
| 			general_string *str, size_t *size) | ||||
| { | ||||
|     size_t l, slen; | ||||
|     char *s; | ||||
|     int e; | ||||
|  | ||||
|     e = der_get_length (p, len, &slen, &l); | ||||
|     if (e) return e; | ||||
|     p += l; | ||||
|     len -= l; | ||||
|     if (len < slen) | ||||
| 	return ASN1_OVERRUN; | ||||
|     s = malloc (slen + 1); | ||||
|     s = malloc (len + 1); | ||||
|     if (s == NULL) | ||||
| 	return ENOMEM; | ||||
|     memcpy (s, p, slen); | ||||
|     s[slen] = '\0'; | ||||
|     memcpy (s, p, len); | ||||
|     s[len] = '\0'; | ||||
|     *str = s; | ||||
|     if(size) *size = slen + l; | ||||
|     if(size) *size = len; | ||||
|     return 0; | ||||
| } | ||||
|  | ||||
| @@ -139,21 +131,12 @@ int | ||||
| der_get_octet_string (unsigned char *p, size_t len,  | ||||
| 		      octet_string *data, size_t *size) | ||||
| { | ||||
|     size_t l, slen; | ||||
|     int e; | ||||
|      | ||||
|     e = der_get_length (p, len, &slen, &l); | ||||
|     if (e) return e; | ||||
|     p += l; | ||||
|     len -= l; | ||||
|     if (len < slen) | ||||
| 	return ASN1_OVERRUN; | ||||
|     data->length = slen; | ||||
|     data->data = malloc(slen); | ||||
|     data->length = len; | ||||
|     data->data = malloc(len); | ||||
|     if (data->data == NULL && data->length != 0) | ||||
| 	return ENOMEM; | ||||
|     memcpy (data->data, p, slen); | ||||
|     if(size) *size = slen + l; | ||||
|     memcpy (data->data, p, len); | ||||
|     if(size) *size = len; | ||||
|     return 0; | ||||
| } | ||||
|  | ||||
| @@ -247,13 +230,23 @@ decode_general_string (unsigned char *p, size_t len, | ||||
|     size_t ret = 0; | ||||
|     size_t l; | ||||
|     int e; | ||||
|     size_t slen; | ||||
|  | ||||
|     e = der_match_tag (p, len, UNIV, PRIM, UT_GeneralString, &l); | ||||
|     if (e) return e; | ||||
|     p += l; | ||||
|     len -= l; | ||||
|     ret += l; | ||||
|     e = der_get_general_string (p, len, str, &l); | ||||
|  | ||||
|     e = der_get_length (p, len, &slen, &l); | ||||
|     if (e) return e; | ||||
|     p += l; | ||||
|     len -= l; | ||||
|     ret += l; | ||||
|     if (len < slen) | ||||
| 	return ASN1_OVERRUN; | ||||
|  | ||||
|     e = der_get_general_string (p, slen, str, &l); | ||||
|     if (e) return e; | ||||
|     p += l; | ||||
|     len -= l; | ||||
| @@ -269,13 +262,23 @@ decode_octet_string (unsigned char *p, size_t len, | ||||
|     size_t ret = 0; | ||||
|     size_t l; | ||||
|     int e; | ||||
|     size_t slen; | ||||
|  | ||||
|     e = der_match_tag (p, len, UNIV, PRIM, UT_OctetString, &l); | ||||
|     if (e) return e; | ||||
|     p += l; | ||||
|     len -= l; | ||||
|     ret += l; | ||||
|     e = der_get_octet_string (p, len, k, &l); | ||||
|  | ||||
|     e = der_get_length (p, len, &slen, &l); | ||||
|     if (e) return e; | ||||
|     p += l; | ||||
|     len -= l; | ||||
|     ret += l; | ||||
|     if (len < slen) | ||||
| 	return ASN1_OVERRUN; | ||||
|  | ||||
|     e = der_get_octet_string (p, slen, k, &l); | ||||
|     if (e) return e; | ||||
|     p += l; | ||||
|     len -= l; | ||||
| @@ -306,13 +309,21 @@ decode_generalized_time (unsigned char *p, size_t len, time_t *t, size_t *size) | ||||
|     size_t ret = 0; | ||||
|     size_t l; | ||||
|     int e; | ||||
|     size_t slen; | ||||
|  | ||||
|     e = der_match_tag (p, len, UNIV, PRIM, UT_GeneralizedTime, &l); | ||||
|     if (e) return e; | ||||
|     p += l; | ||||
|     len -= l; | ||||
|     ret += l; | ||||
|     e = der_get_octet_string (p, len, &k, &l); | ||||
|  | ||||
|     e = der_get_length (p, len, &slen, &l); | ||||
|     if (e) return e; | ||||
|     p += l; | ||||
|     len -= l; | ||||
|     if (len < slen) | ||||
| 	return ASN1_OVERRUN; | ||||
|     e = der_get_octet_string (p, slen, &k, &l); | ||||
|     if (e) return e; | ||||
|     p += l; | ||||
|     len -= l; | ||||
|   | ||||
| @@ -143,18 +143,13 @@ der_put_general_string (unsigned char *p, size_t len, | ||||
| 			general_string *str, size_t *size) | ||||
| { | ||||
|     size_t slen = strlen(*str); | ||||
|     size_t l; | ||||
|     int e; | ||||
|  | ||||
|     if (len < slen) | ||||
| 	return ASN1_OVERFLOW; | ||||
|     p -= slen; | ||||
|     len -= slen; | ||||
|     memcpy (p+1, *str, slen); | ||||
|     e = der_put_length (p, len, slen, &l); | ||||
|     if(e) | ||||
| 	return e; | ||||
|     *size = slen + l; | ||||
|     *size = slen; | ||||
|     return 0; | ||||
| } | ||||
|  | ||||
| @@ -162,18 +157,12 @@ int | ||||
| der_put_octet_string (unsigned char *p, size_t len,  | ||||
| 		      octet_string *data, size_t *size) | ||||
| { | ||||
|     size_t l; | ||||
|     int e; | ||||
|  | ||||
|     if (len < data->length) | ||||
| 	return ASN1_OVERFLOW; | ||||
|     p -= data->length; | ||||
|     len -= data->length; | ||||
|     memcpy (p+1, data->data, data->length); | ||||
|     e = der_put_length (p, len, data->length, &l); | ||||
|     if(e) | ||||
| 	return e; | ||||
|     *size = l + data->length; | ||||
|     *size = data->length; | ||||
|     return 0; | ||||
| } | ||||
|  | ||||
| @@ -256,6 +245,12 @@ encode_general_string (unsigned char *p, size_t len, | ||||
|     p -= l; | ||||
|     len -= l; | ||||
|     ret += l; | ||||
|     e = der_put_length (p, len, l, &l); | ||||
|     if (e) | ||||
| 	return e; | ||||
|     p -= l; | ||||
|     len -= l; | ||||
|     ret += l; | ||||
|     e = der_put_tag (p, len, UNIV, PRIM, UT_GeneralString, &l); | ||||
|     if (e) | ||||
| 	return e; | ||||
| @@ -280,6 +275,12 @@ encode_octet_string (unsigned char *p, size_t len, | ||||
|     p -= l; | ||||
|     len -= l; | ||||
|     ret += l; | ||||
|     e = der_put_length (p, len, l, &l); | ||||
|     if (e) | ||||
| 	return e; | ||||
|     p -= l; | ||||
|     len -= l; | ||||
|     ret += l; | ||||
|     e = der_put_tag (p, len, UNIV, PRIM, UT_OctetString, &l); | ||||
|     if (e) | ||||
| 	return e; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Assar Westerlund
					Assar Westerlund