<div dir="ltr">Hello,<div><br></div><div>Thanks for your answer. Here is one of d2i functions simplified:</div><div><br></div><div><div>MYEXT * d2i_MYEXT(MYEXT ** myext, unsigned char ** pp, long length) {</div><div>  M_ASN1_D2I_vars(myext, MYEXT *, MYEXT_new);</div><div>  M_ASN1_D2I_Init();</div><div>  M_ASN1_D2I_start_sequence();</div><div>  M_ASN1_D2I_get_EXP_opt(ret->intmember, d2i_ASN1_INTEGER, 1);</div><div>  M_ASN1_D2I_get_opt(ret->intmember, d2i_ASN1_INTEGER, V_ASN1_INTEGER);</div><div>  M_ASN1_D2I_Finish(myext, MYEXT_free, ASN1_F_D2I_MYEXT);</div><div>}</div></div><div><br></div><div><br></div><div>Regards,</div><div><br></div><div><br></div><div>A.K.</div><div><br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Sep 8, 2016 at 10:23 PM, Dr. Stephen Henson <span dir="ltr"><<a href="mailto:steve@openssl.org" target="_blank">steve@openssl.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Thu, Sep 08, 2016, Aleksandr Konstantinov wrote:<br>
<br>
> Hello all,<br>
><br>
> I'm in process of porting our project to OpenSSL 1.1.0. We have part of<br>
> code which heavily uses M_ASN1_D2I_* and M_ASN1_I2D_* for defining d2i_*<br>
> and i2d_* methods for new extension. For example code uses M_ASN1_D2I_vars,<br>
> M_ASN1_D2I_Init and M_ASN1_D2I_start_sequence to start reading sequence of<br>
> items and then proceeds with M_ASN1_D2I_get_* for content of the<br>
> sequence. Could please anybody advise what would be proper replacement for<br>
> those macros in OpenSSL 1.1.0? Is there any new API for such things? Or<br>
> shall one do raw byte banging?<br>
><br>
<br>
Those old macros were updated way back in OpenSSL 0.9.7 and finally retired in<br>
OpenSSL 1.1.0.<br>
<br>
You need to write an appropriate ASN.1 module to encode and decode your<br>
structure. There are many examples of this such as in crypto/cms/cms_asn1.c<br>
and some much simpler ones in crypto/x509v3 which are perhaps better suited to<br>
you needs.<br>
<br>
They use macros which start with ASN1_SEQUENCE*<br>
<br>
Is it possible to look at your old code? Then I could give some more specific<br>
pointers.<br>
<br>
Steve.<br>
--<br>
Dr Stephen N. Henson. OpenSSL project core developer.<br>
Commercial tech support now available see: <a href="http://www.openssl.org" rel="noreferrer" target="_blank">http://www.openssl.org</a><br>
<span class="HOEnZb"><font color="#888888">--<br>
openssl-users mailing list<br>
To unsubscribe: <a href="https://mta.openssl.org/mailman/listinfo/openssl-users" rel="noreferrer" target="_blank">https://mta.openssl.org/<wbr>mailman/listinfo/openssl-users</a><br>
</font></span></blockquote></div><br></div>