tweek to make pkinit work with the fact the asn1_compile can't

generate code for context tagless optionals


git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@13159 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
Love Hörnquist Åstrand
2003-11-26 00:46:02 +00:00
parent 8e42e1a3f4
commit 456f102612

View File

@@ -398,7 +398,7 @@ build_auth_pack(krb5_context context,
free(buf);
if (ret == 0 && dh) {
DomainParameters *dp;
DomainParameters dp;
ASN1_INTEGER *dh_pub_key;
krb5_data buf;
size_t size;
@@ -411,42 +411,42 @@ build_auth_pack(krb5_context context,
if (ret)
return ret;
ALLOC(dp, 1);
if (dp == NULL)
return ENOMEM;
memset(&dp, 0, sizeof(dp));
ret = BN_to_any(context, dh->p, &dp->p);
ret = BN_to_any(context, dh->p, &dp.p);
if (ret) {
free_DomainParameters(dp);
free_DomainParameters(&dp);
return ret;
}
ret = BN_to_any(context, dh->g, &dp->g);
ret = BN_to_any(context, dh->g, &dp.g);
if (ret) {
free_DomainParameters(dp);
free_DomainParameters(&dp);
return ret;
}
ret = BN_to_any(context, dh->q, &dp->q);
ret = BN_to_any(context, dh->q, &dp.q);
if (ret) {
free_DomainParameters(dp);
free_DomainParameters(&dp);
return ret;
}
dp->j = NULL;
dp->validationParms = NULL;
dp.j = NULL;
dp.validationParms = NULL;
#if 0
ALLOC(a->clientPublicValue->algorithm.parameters, 1);
if (a->clientPublicValue->algorithm.parameters == NULL) {
free_DomainParameters(dp);
free_DomainParameters(&dp);
return ENOMEM;
}
}
#endif
ASN1_MALLOC_ENCODE(DomainParameters,
a->clientPublicValue->algorithm.parameters.data,
a->clientPublicValue->algorithm.parameters.length,
&dp, &size, ret);
free_DomainParameters(&dp);
ASN1_MALLOC_ENCODE(DomainParameters,
a->clientPublicValue->algorithm.parameters->data,
a->clientPublicValue->algorithm.parameters->length,
dp, &size, ret);
free_DomainParameters(dp);
if (ret)
return ret;
if (size != a->clientPublicValue->algorithm.parameters->length)
if (size != a->clientPublicValue->algorithm.parameters.length)
krb5_abortx(context, "Internal ASN1 encoder error");
dh_pub_key = BN_to_ASN1_INTEGER(dh->pub_key, NULL);