【发布时间】:2018-03-28 20:10:05
【问题描述】:
我想使用Net::SSLeay 中新增的X509_verify_cert 功能,但无法将低级部分放在一起。这在标记的地方出现了段错误。知道我做错了什么吗?
use strict;
use warnings;
use Net::SSLeay;
# create a new BIO
my $cert_file = '/path/to/AppleIncRootCertificate.pem';
my $bio = Net::SSLeay::BIO_new_file($cert_file, 'r');
# make an x509 struct
my $x509 = Net::SSLeay::PEM_read_bio_X509($bio) || die "read_bio failed";
# returns: value corresponding to openssl's X509 structure (0 on failure)
my $store = Net::SSLeay::X509_STORE_CTX_new();
# segfaults here \/ \/ \/
my $add_rv = Net::SSLeay::X509_STORE_add_cert($store, $x509);
# $store - value corresponding to openssl's X509_STORE structure
# $x509 - value corresponding to openssl's X509 structure
# next step?
# my $verify_rv = Net::SSLeay::X509_verify_cert(...?);
如果我能正常工作,我想从内存中加载 BIO 而不是进入文件系统,然后使用 X509_verify_cert 函数
文件在这里: http://search.cpan.org/~mikem/Net-SSLeay-1.85/lib/Net/SSLeay.pod#Low_level_API:_X509_STORE_*_related_functions
【问题讨论】:
标签: perl openssl cryptography rsa x509