Hello,
I'm currently performing an upgrade from 1.0.2 to 3.0 and I'm having some difficulties.
Our code is very old and some assumptions could have changed during time.
Anyway the problem I have right now is about d2i_ASN1_SET and i2d_ASN1_SET functions that in OpenSSL 3 are not available anymore.
In particular I have the function
i2d_ASN1_SET_OF_X509_CRL( stack, &position, reinterpret_cast< int(*)(X509_CRL*,unsigned char**) >( i2d_X509_CRL ), 1, V_ASN1_CONTEXT_SPECIFIC, IS_SET ) );
In version 3 of my code I did the following:
ASN1_ITEM_TEMPLATE(X509_CRLStack) =
ASN1_EX_TEMPLATE_TYPE(ASN1_TFLG_SET_ORDER, 0, X509_CRLStack, X509_CRL)
ASN1_ITEM_TEMPLATE_END(X509_CRLStack);
IMPLEMENT_ASN1_FUNCTIONS(X509_CRLStack);
I replaced i2d_ASN1_SET_OF_X509_CRL with i2d_X509_CRLStack( stack, &position )
The problem arises when I save the result and try to read with version 1.0.2 of my code. I have to be sure to garante legacy compatibility
In d2i_X509_CRLStack I get error bad class
Can you please help me to understand what I'm doing wrong?
Regards
Ivano
Our code is very old and some assumptions could have changed during time.
Anyway the problem I have right now is about d2i_ASN1_SET and i2d_ASN1_SET functions that in OpenSSL 3 are not available anymore.
In particular I have the function
i2d_ASN1_SET_OF_X509_CRL( stack, &position, reinterpret_cast< int(*)(X509_CRL*,unsigned char**) >( i2d_X509_CRL ), 1, V_ASN1_CONTEXT_SPECIFIC, IS_SET ) );
In version 3 of my code I did the following:
ASN1_ITEM_TEMPLATE(X509_CRLStack) =
ASN1_EX_TEMPLATE_TYPE(ASN1_TFLG_SET_ORDER, 0, X509_CRLStack, X509_CRL)
ASN1_ITEM_TEMPLATE_END(X509_CRLStack);
IMPLEMENT_ASN1_FUNCTIONS(X509_CRLStack);
I replaced i2d_ASN1_SET_OF_X509_CRL with i2d_X509_CRLStack( stack, &position )
The problem arises when I save the result and try to read with version 1.0.2 of my code. I have to be sure to garante legacy compatibility
In d2i_X509_CRLStack I get error bad class
Can you please help me to understand what I'm doing wrong?
Regards
Ivano