在我的程序中,我需要使用CMS_ContentInfo
结构,该结构在openssl/cms.h
中声明,但在/crypto/cms/cms_lcl.c
中实现,并且此文件不存在于openssl包含目录中。
首先我使用了libssl-dev软件包(我的发行版是ubuntu),但是当我发现openssl
目录下已经没有目录了,我试着从源代码构建openssl。同样的,它仍然没有安装我需要的文件。默认安装不包括/crypto/cms/cms_lcl.c
,/crypto/cms/cms_lcl.h
和其他,我不知道如何安装它而不是复制和粘贴。
1条答案
按热度按时间4dbbbstv1#
我怀疑您并不需要
cms_lcl.c
本身--正如Andrew Henle所评论的,编译程序所需要的可能是头文件(例如openssl/cms.h
)和 * 库 *(例如libcrypto.a
)。您需要
cms_lcl.c
(等等)的唯一原因是您想将这些文件编译到库中。假设您只需要编译代码,则需要在代码中包含头文件,例如
#include <openssl/cms.h>
,并链接到适当的库,例如g++ ... -lcrypto
。下面是我使用
CMS_ContentInfo
编译最小C
程序的方法:下面是一个最小的代码示例,改编自Using OpenSSL API how can I access a signer's certificate info from a signed file?,它可能不起作用(因为我的简化),但足以说明它可以编译:
下面是我如何编译和链接的:
希望能有所帮助。