wolfSSL組み込みSSL/TLSライブラリには、OpenSSL互換レイヤーというOpenSSLとの互換性を持たせるための機能があります。
このOpenSSL互換レイヤーによって、OpenSSL用に作られたアプリケーションをwolfSSLとリンクしてビルドすることができます。今回のOpenSSL互換レイヤーの拡張は、様々なOpenSSLアプリケーションプロジェクトに対応するために行われたもので、新たに15APIを追加いたしました。
追加したAPIは以下の通りです。
OpenSSL_add_all_algorithms_noconf()
RAND_poll()
d2i_X509_fp()
X509_check_ca()
X509_CRL_free()
X509_STORE_add_crl()
d2i_X509_CRL_fp()
PEM_read_X509_CRL()
ASN1_GENERALIZEDTIME_free()
ASN1_STRING_print_ex()
ASN1_TIME_to_generalizedtime()
d2i_PKCS12_fp()
i2d_RSAPublicKey()
d2i_RSAPublicKey()
i2c_ASN1_INTEGER()
また、以下の4つのヘルパー関数も新たに追加しました。
int wolfSSL_ASN1_TIME_get_length(WOLFSSL_ASN1_TIME *t)
WOLFSSL_ASN1_TIME構造のlengthメンバーを取得。
unsigned char* wolfSSL_ASN1_TIME_get_data(WOLFSSL_ASN1_TIME *t)
WOLFSSL_ASN1_TIME構造体のdataメンバーを取得し、ASN1_TIMEのポインタを返す。
int wolfSSL_X509_CA_num(WOLFSSL_X509_STORE* store)
WOLFSSL_X509_STORE内のWOLFSSL_CERT_MANAGERのsignerメンバーの数を返す。
long wolfSSL_X509_get_version(const WOLFSSL_X509 *x509)
X509のバージョンを返す。
OpenSSLからwolfSSLへ移行する理由としてメモリ使用量、移植性、アルゴリズムサポート、CAVPとFIPS 140-2の検証、専門エンジニアによる商用サポートなどがございます。
詳しくは、wolfSSL vs. OpenSSLのページをご覧ください。
アプリケーションでのwolfSSL使用についてやOpenSSLのwolfSSLへの置き換えについてのご質問はsupport@wolfssl.comまで日本語でお問い合わせ下さい。
原文: https://www.wolfssl.com/openssl-compatibility-layer-expands-15-new-functions/