#undef PKCS7_SIGNER_INFO for Win32 to avoid clashes.
Fix so CRLDistributionPoints relativeName option uses the correct type.
This commit is contained in:
parent
2fdf5d7c23
commit
fc6be0fa56
3 changed files with 10 additions and 7 deletions
|
@ -71,8 +71,9 @@ extern "C" {
|
|||
#endif
|
||||
|
||||
#ifdef WIN32
|
||||
/* Under Win32 this is defined in wincrypt.h */
|
||||
/* Under Win32 thes are defined in wincrypt.h */
|
||||
#undef PKCS7_ISSUER_AND_SERIAL
|
||||
#undef PKCS7_SIGNER_INFO
|
||||
#endif
|
||||
|
||||
/*
|
||||
|
|
|
@ -218,13 +218,13 @@ void DIST_POINT_free(DIST_POINT *a)
|
|||
|
||||
int i2d_DIST_POINT_NAME(DIST_POINT_NAME *a, unsigned char **pp)
|
||||
{
|
||||
int v = 0;
|
||||
M_ASN1_I2D_vars(a);
|
||||
|
||||
if(a->fullname) {
|
||||
M_ASN1_I2D_len_IMP_opt (a->fullname, i2d_GENERAL_NAMES);
|
||||
} else {
|
||||
M_ASN1_I2D_len_EXP_opt (a->relativename, i2d_X509_NAME, 1, v);
|
||||
M_ASN1_I2D_len_IMP_SET_opt_type(X509_NAME_ENTRY,
|
||||
a->relativename, i2d_X509_NAME_ENTRY, 1);
|
||||
}
|
||||
|
||||
/* Don't want a SEQUENCE so... */
|
||||
|
@ -234,7 +234,8 @@ int i2d_DIST_POINT_NAME(DIST_POINT_NAME *a, unsigned char **pp)
|
|||
if(a->fullname) {
|
||||
M_ASN1_I2D_put_IMP_opt (a->fullname, i2d_GENERAL_NAMES, 0);
|
||||
} else {
|
||||
M_ASN1_I2D_put_EXP_opt (a->relativename, i2d_X509_NAME, 1, v);
|
||||
M_ASN1_I2D_put_IMP_SET_opt_type(X509_NAME_ENTRY,
|
||||
a->relativename, i2d_X509_NAME_ENTRY, 1);
|
||||
}
|
||||
M_ASN1_I2D_finish();
|
||||
}
|
||||
|
@ -253,7 +254,7 @@ DIST_POINT_NAME *DIST_POINT_NAME_new(void)
|
|||
void DIST_POINT_NAME_free(DIST_POINT_NAME *a)
|
||||
{
|
||||
if (a == NULL) return;
|
||||
X509_NAME_free(a->relativename);
|
||||
sk_X509_NAME_ENTRY_pop_free(a->relativename, X509_NAME_ENTRY_free);
|
||||
sk_GENERAL_NAME_pop_free(a->fullname, GENERAL_NAME_free);
|
||||
Free ((char *)a);
|
||||
}
|
||||
|
@ -273,7 +274,8 @@ DIST_POINT_NAME *d2i_DIST_POINT_NAME(DIST_POINT_NAME **a, unsigned char **pp,
|
|||
M_ASN1_D2I_get_imp(ret->fullname, d2i_GENERAL_NAMES,
|
||||
V_ASN1_SEQUENCE);
|
||||
} else if (tag == (1|V_ASN1_CONTEXT_SPECIFIC)) {
|
||||
M_ASN1_D2I_get_EXP_opt (ret->relativename, d2i_X509_NAME, 1);
|
||||
M_ASN1_D2I_get_IMP_set_opt_type (X509_NAME_ENTRY,
|
||||
ret->relativename, d2i_X509_NAME_ENTRY, X509_NAME_ENTRY_free, 1);
|
||||
} else {
|
||||
c.error = ASN1_R_BAD_TAG;
|
||||
goto err;
|
||||
|
|
|
@ -192,7 +192,7 @@ DECLARE_ASN1_SET_OF(ACCESS_DESCRIPTION)
|
|||
typedef struct DIST_POINT_NAME_st {
|
||||
/* NB: this is a CHOICE type and only one of these should be set */
|
||||
STACK_OF(GENERAL_NAME) *fullname;
|
||||
X509_NAME *relativename;
|
||||
STACK_OF(X509_NAME_ENTRY) *relativename;
|
||||
} DIST_POINT_NAME;
|
||||
|
||||
typedef struct DIST_POINT_st {
|
||||
|
|
Loading…
Reference in a new issue