私のアプリケーションでは、OpenSSL を非常に控えめに使用しています。基本的に、私は次の2つのことを行っているだけです。
- RSA 復号化: RSA_new、BN_bin2bn で RSA キーを初期化し、RSA_private_decrypt で RSA 復号化を行い、キーを解放します。
- AES 復号化: EVP__DecryptInit( ... EVP_aes_128_cbc )、EVP_DecryptUpdate および EVP_DecryptFinal を使用します。
それで全部です。この非常に控えめな使用法にもかかわらず、実行可能なサイズは 1MB を超えており、約 1,200 の異なるシンボルが OpenSSL ライブラリから提供されています。これらには、 ASN1_ 、 SHA1_、 EC_* 、 PKCS7 など、明らかに私のコード ツリーにない関数が含まれます。
iPhone Android および Windows 用の OpenSSL のスタティック ライブラリとリンクしています。モバイル プラットフォームでは、フットプリントが問題になります。私のリンカーは参照されていない関数を除外することになっているため、これらのシンボルは何らかの形で参照されているようです。
実行可能ファイルのサイズを小さくするために、OpenSSL の断片を小さくする方法はありますか?
あなた。