[openssl-users] M_ASN1_D2I_* replacement in OpenSSL 1.1.0

Aleksandr Konstantinov aleksandr.v.konstantinov at gmail.com
Mon Sep 19 09:46:48 UTC 2016


Hello,


Thanks. Your answer helped a lot and I'm progressing now. Could You please
also give me a hint what M_ASN1_BIT_STRING_dup/ASN1_BIT_STRING_dup could be
replaced with?


Best regards,


A.K.


On Fri, Sep 9, 2016 at 2:44 PM, Dr. Stephen Henson <steve at openssl.org>
wrote:

> On Fri, Sep 09, 2016, Aleksandr Konstantinov wrote:
>
> > Hello,
> >
> > Thanks for your answer. Here is one of d2i functions simplified:
> >
> > MYEXT * d2i_MYEXT(MYEXT ** myext, unsigned char ** pp, long length) {
> >   M_ASN1_D2I_vars(myext, MYEXT *, MYEXT_new);
> >   M_ASN1_D2I_Init();
> >   M_ASN1_D2I_start_sequence();
> >   M_ASN1_D2I_get_EXP_opt(ret->intmember, d2i_ASN1_INTEGER, 1);
> >   M_ASN1_D2I_get_opt(ret->intmember, d2i_ASN1_INTEGER, V_ASN1_INTEGER);
> >   M_ASN1_D2I_Finish(myext, MYEXT_free, ASN1_F_D2I_MYEXT);
> > }
> >
> >
>
> Presumably the two fields aren't the same? I'll call one intmember2 for
> this example.
>
> The above would translate to something like:
>
> ASN1_SEQUENCE(MYEXT) = {
>         ASN1_EXP_OPT(MYEXT, intmember, ASN1_INTEGER, 1),
>         ASN1_OPT(MYEXT, intmember2, ASN1_INTEGER)
> } ASN1_SEQUENCE_END(MYEXT)
>
> IMPLEMENT_ASN1_FUNCTIONS(MYEXT)
>
> Then you include:
>
> DECLARE_ASN1_FUNCTIONS(MYEXT)
>
> in a header file.
>
> That generates four functions MYEXT_new(), MYEXT_free(), d2i_MYEXT() and
> i2d_MYEXT().
>
> Steve.
> --
> Dr Stephen N. Henson. OpenSSL project core developer.
> Commercial tech support now available see: http://www.openssl.org
> --
> openssl-users mailing list
> To unsubscribe: https://mta.openssl.org/mailman/listinfo/openssl-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mta.openssl.org/pipermail/openssl-users/attachments/20160919/084a7ea5/attachment.html>


More information about the openssl-users mailing list