add hx509_cert_get_{issuer,subject}_unique_id
This commit is contained in:
		| @@ -1510,6 +1510,65 @@ hx509_cert_get_SPKI_AlgorithmIdentifier(hx509_context context, | ||||
|     return ret; | ||||
| } | ||||
|  | ||||
| static int | ||||
| get_x_unique_id(hx509_context context, const char *name,  | ||||
| 		const heim_bit_string *cert, heim_bit_string *subject) | ||||
| { | ||||
|     int ret; | ||||
|  | ||||
|     if (cert == NULL) { | ||||
| 	ret = HX509_EXTENSION_NOT_FOUND; | ||||
| 	hx509_set_error_string(context, 0, ret, "%s unique id doesn't exists", name); | ||||
| 	return ret; | ||||
|     } | ||||
|     ret = der_copy_bit_string(cert, subject); | ||||
|     if (ret) { | ||||
| 	hx509_set_error_string(context, 0, ret, "malloc out of memory", name); | ||||
| 	return ret; | ||||
|     } | ||||
|     return 0; | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * Get a copy of the Issuer Unique ID | ||||
|  * | ||||
|  * @param context a hx509_context | ||||
|  * @param p a hx509 certificate | ||||
|  * @param issuer the issuer id returned, free with der_free_bit_string() | ||||
|  * | ||||
|  * @return An hx509 error code, see hx509_get_error_string(). The | ||||
|  * error code HX509_EXTENSION_NOT_FOUND is returned if the certificate | ||||
|  * doesn't have a issuerUniqueID | ||||
|  * | ||||
|  * @ingroup hx509_cert | ||||
|  */ | ||||
|  | ||||
| int | ||||
| hx509_cert_get_issuer_unique_id(hx509_context context, hx509_cert p, heim_bit_string *issuer) | ||||
| { | ||||
|     return get_x_unique_id(context, "issuer", p->data->tbsCertificate.issuerUniqueID, issuer); | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * Get a copy of the Subect Unique ID | ||||
|  * | ||||
|  * @param context a hx509_context | ||||
|  * @param p a hx509 certificate | ||||
|  * @param subject the subject id returned, free with der_free_bit_string() | ||||
|  * | ||||
|  * @return An hx509 error code, see hx509_get_error_string(). The | ||||
|  * error code HX509_EXTENSION_NOT_FOUND is returned if the certificate | ||||
|  * doesn't have a subjectUniqueID | ||||
|  * | ||||
|  * @ingroup hx509_cert | ||||
|  */ | ||||
|  | ||||
| int | ||||
| hx509_cert_get_subject_unique_id(hx509_context context, hx509_cert p, heim_bit_string *subject) | ||||
| { | ||||
|     return get_x_unique_id(context, "subject", p->data->tbsCertificate.subjectUniqueID, subject); | ||||
| } | ||||
|  | ||||
|  | ||||
| hx509_private_key | ||||
| _hx509_cert_private_key(hx509_cert p) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Love Hornquist Astrand
					Love Hornquist Astrand