仅用于iOS的Diffie-Hellman构buildOpenSSL

我使用这个 github仓库为iOS构build了OpenSSL。 不幸的是,build立的库是44 MB的大小。 这远远不够。

我只需要使用OpenSSL来实现Diffie-Hellman密钥交换。 如果我只从中提取Diffie-Hellman部分,我认为图书馆的规模将大大减less。 谁能告诉我,如果这是可能的,我怎么能做到这一点?

谁能告诉我,如果这是可能的,我怎么能做到这一点?

那么,我从来没有见过以这种方式configurationOpenSSL,所以我不知道有多接近你可以得到的目标。 但是你正在寻找的是configuration的各种no-xxx选项。 我也不知道他们的全面清单。

要添加额外的皱纹,您只需要libcrypto (提供encryption,如Diffie-Hellman),而不是libssl (提供更高级别的SSL / TLSfunction)。


另一种方法是不必担心档案或磁带库的磁盘大小,当磁带库链接到某个程序时,将重点放在不需要的部分。 为此,请执行以下操作:

 CFLAGS += -ffunction-sections -fdata-sections LDFLAGS += -Wl,-dead_strip 

这将允许链接器删除最终二进制文件中没有使用的任何代码或数据。 既然你只使用Diffie-Hellman(和相关函数,比如Big Integers),那么这是唯一应该存在的东西。

(在Linux上,您将使用LDFLAGS += -Wl,--gc-sections )。


OpenSSL并不总是尊重你的CFLAGSLDFLAGS 。 如果是这种情况,那么在构buildiOS版OpenSSL时,可能需要为Configure添加一个特殊规则。 要做到这一点,请参阅“ 编译和安装”中有关RPATH的讨论 在OpenSSL wiki上使用RPATH 。