From 1212f664ea70cededf2e4177b5415b2aee6c0368 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Love=20H=C3=B6rnquist=20=C3=85strand?= Date: Wed, 6 Oct 2004 22:37:46 +0000 Subject: [PATCH] free openssl engine deal with RecipientIdentifier -> CMSIdentifier and heim_any -> name change git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@14293 ec53bebd-3082-4978-b11e-865c3cabbd6b --- kdc/pkinit.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/kdc/pkinit.c b/kdc/pkinit.c index 4b6c0f5e8..0d1256095 100644 --- a/kdc/pkinit.c +++ b/kdc/pkinit.c @@ -58,6 +58,7 @@ struct krb5_pk_identity { STACK_OF(X509) *cert; STACK_OF(X509) *trusted_certs; STACK_OF(X509_CRL) *crls; + ENGINE *engine; }; /* XXX copied from lib/krb5/pkinit.c */ @@ -688,7 +689,7 @@ pk_mk_pa_reply_enckey(krb5_context context, ri = &ed.recipientInfos.val[0]; ri->version = 0; - ri->rid.element = choice_RecipientIdentifier_issuerAndSerialNumber; + ri->rid.element = choice_CMSIdentifier_issuerAndSerialNumber; issuer_name = X509_get_issuer_name(client_params->certificate->cert); OPENSSL_ASN1_MALLOC_ENCODE(X509_NAME, buf.data, buf.length, @@ -697,8 +698,14 @@ pk_mk_pa_reply_enckey(krb5_context context, krb5_clear_error_string(context); goto out; } - ri->rid.u.issuerAndSerialNumber.issuer.data = buf.data; - ri->rid.u.issuerAndSerialNumber.issuer.length = buf.length; + ret = decode_Name(buf.data, buf.length, + &ri->rid.u.issuerAndSerialNumber.issuer, + NULL); + free(buf.data); + if (ret) { + krb5_set_error_string(context, "pkinit: failed to parse Name"); + goto out; + } serial = &ri->rid.u.issuerAndSerialNumber.serialNumber; {