openssl-migration

Tips to upgrade/migrate OpenSSL lib versions.


Project maintained by KazKobara Hosted on GitHub Pages — Theme by mattgraham

"DEPRECATEDIN_" エラーや "undefined reference to" エラーが出る場合が出る場合

例えば、以下など。

note: declared here
   xx | DEPRECATEDIN_1_1_0(int RAND_pseudo_bytes(unsigned char *buf, int num))
undefined reference to `HMAC_CTX_init'
undefined reference to `HMAC_CTX_cleanup'
undefined reference to `EVP_MD_CTX_cleanup'

対処方法

以下の manpage などで上記エラーが出る関数の後継となる関数や、入出力の型を確認し修正を行う。

例えば、

#if OPENSSL_VERSION_NUMBER >= 0x10100000L
#define RAND_pseudo_bytes RAND_priv_bytes
#define CRYPTO_malloc_init OPENSSL_malloc_init
#endif

または、以下のように個別に場合分けする。

#if OPENSSL_VERSION_NUMBER < 0x10100000L
    CRYPTO_malloc_init();
#else
    OPENSSL_malloc_init();
#endif