[openssl-dev] [openssl/openssl] ABI compatibility 1.0.0-->1.0.1-->1.0.2

Richard Levitte levitte at openssl.org
Sun Feb 26 08:10:35 UTC 2017


In message <a2e37ebc-183e-023d-f059-7b89d6e3a352 at akamai.com> on Fri, 27 Jan 2017 10:54:35 -0600, Benjamin Kaduk via openssl-dev <openssl-dev at openssl.org> said:

openssl-dev> There was some discussion about 1.0.1 being EoL on a FreeBSD list [0],
openssl-dev> and whether it would make sense to move to 1.0.2 on their stable
openssl-dev> branch, which led to someone making the claim that 1.0.2 has removed 4
openssl-dev> symbols compared to 1.0.1, and thus is not strictly ABI compatible,
openssl-dev> linking to https://abi-laboratory.pro/tracker/timeline/openssl/ . If I
openssl-dev> start semi-randomly clicking around, I can find a page [1] that seems
openssl-dev> to claim the missing symbols are:
openssl-dev> ASN1_STRING_clear_free()
openssl-dev> ENGINE_load_rsax()
openssl-dev> SRP_user_pwd_free()
openssl-dev> SRP_VBASE_get1_by_user()

I haven't make a complete analysis over versions, just did a
comparison of the files that define what we regard as public symbols
(util/libeay.num and util/libssl.num) in the latest 1.0.1 and 1.0.2
releases.  Diffs attached.

As you can see, ENGINE_load_rsax *did* go away.  That happened here:

    commit 74184b6f21e095dacd6193a78785a47dd515f0dc
    Author: Dr. Stephen Henson <steve at openssl.org>
    Date:   Sun Dec 1 23:06:33 2013 +0000
    
        RSAX no longer compiled.

I'm afraid I can't remember the reasoning behind this commit...

The rest of those mentioned above haven't moved at all as far as I can
see.  You may notice that some of the symbols in libssl (ssleay.num)
did move between "modules" (which in this case can be defined as a
keyword you can say no to when configuring).  I'm unsure how that
affects your view on our stability, suffice to say that with default
configuration, it doesn't affect the ABI one bit.

FYI, here's how the diffs were produced:

    : ; (LANG=C; (cd ../1.0.1; pwd; git status); pwd; git status; diff -u ../1.0.1/util/libeay.num util/libeay.num > /tmp/libeay.num.diff)
    /home/levitte/gitwrk/openssl.net/official/1.0.1
    HEAD detached at OpenSSL_1_0_1u
    nothing to commit, working tree clean
    /home/levitte/gitwrk/openssl.net/official/1.0.2
    HEAD detached at OpenSSL_1_0_2k
    nothing to commit, working tree clean
    : ; (LANG=C; (cd ../1.0.1; pwd; git status); pwd; git status; diff -u ../1.0.1/util/ssleay.num util/ssleay.num > /tmp/ssleay.num.diff)
    /home/levitte/gitwrk/openssl.net/official/1.0.1
    HEAD detached at OpenSSL_1_0_1u
    nothing to commit, working tree clean
    /home/levitte/gitwrk/openssl.net/official/1.0.2
    HEAD detached at OpenSSL_1_0_2k
    nothing to commit, working tree clean

Cheers,
Richard

-- 
Richard Levitte         levitte at openssl.org
OpenSSL Project         http://www.openssl.org/~levitte/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: libeay.num.diff
Type: text/x-patch
Size: 7487 bytes
Desc: not available
URL: <http://mta.openssl.org/pipermail/openssl-dev/attachments/20170226/88e836df/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ssleay.num.diff
Type: text/x-patch
Size: 5497 bytes
Desc: not available
URL: <http://mta.openssl.org/pipermail/openssl-dev/attachments/20170226/88e836df/attachment-0001.bin>


More information about the openssl-dev mailing list