我正在用Swift 4编写一组在Linux上运行的服务。我需要做的事情之一是接收使用加密消息语法(CMS)格式进行数字签名的有效负载,提取用于签名的证书,然后验证签名。我知道Linux上的Swift不包含用于这类事情的安全或CommonCrypto框架,所以我在OpenSSL中进行了链接,尝试并提供帮助。我离我的C/C++编程时代还有大约2年的时间,所以我很乐意承认我在代码的这一部分上太过分了。
我有两个简单的类作为OpenSSL、BIO和PKCS7数据结构的包装器。它们看起来是这样的:
import Foundation
import OpenSSL
public final class
所以我想做的是:
我连接到SSL服务器。
它寄给我两张证书,其中一张是自签名的。
在这个阶段,没有问题,我:
X509Certificate[] myTwoCerts;
// with 2 certificates in there, and I'm sure it's there because, I print them in my console.
现在,我想要创建包含2个证书的.p12文件。
到目前为止,我已经尝试过这样的方法:
KeyStore pkcs12Store = KeyStore.getInstance("PKCS12&
因此,我编写了一个使用和.p12-cert的刮板。
目前,我在使用它的地方提出了很多请求,如文档中所述
from requests_pkcs12 import get
r = get('https://example.com/test', pkcs12_filename='clientcert.p12', pkcs12_password='correcthorsebatterystaple')
这些文档还显示您可以在会话中使用它。
from requests import Session
from requests_pkcs12 impor
我试图使用Java将PKCS12证书解析为一个x509和一个私钥:
final KeyStore keystore = KeyStore.getInstance("PKCS12", "SunJSSE");
keystore.load(pkcs12Certificate, password.toCharArray());
final Enumeration<String> aliases = keystore.aliases();
final String alias = aliases.nextElement();
final PrivateKey
PKCS7验证函数有签名
int PKCS7_verify(PKCS7 *p7, STACK_OF(X509) *certs, X509_STORE *store, BIO *indata, BIO *out, int flags);
where certs is a set of certificates in which to search for the signer's certificate.
为什么OpenSSL对这“一组证书”使用STACK_OF(),也就是为什么堆栈一样的排序?X509_STORE难道不是适合这种情况的类型吗?
我试图添加一个数字签名到一个pdf使用java,签名是通过epass2003令牌读取。所以,我在这里完成了这项工作(将数字签名添加到pdf中),并且工作正常,但是当我在另一个系统中打开这个pdf文档时,它显示了“至少有一个签名有问题”,但是在我的系统验证签名中请正确地帮助我。下面附上了我的代码,请找到它。
public class Test {
public static void main(String args[]) throws IOException, GeneralSecurityException, DocumentException, CertificateVerifi
我获得了名为PKCS#7的p7格式化文件和一个名为mroot.der.cer的x509证书文件,该文件与p7链的根证书匹配。
我想使用以下命令使用openssl验证我的p7证书链:
First - convert my mroot trusted cert file to pem format.
openssl x509 -in mroot.der.cer -inform der -outform PEM -out mroot.pem.cer
Second - verify the root chain using mroot.pem.cer
openssl smime -verify
我正试图通过iPhone配置实用程序来安装MDM配置配置文件。我就是这么做的-
在asp.net中构建一个简单的mdm服务器,并在SSL上托管。(这个服务器现在除了列出输入请求之外,什么也不做。)
从p12服务器的SSL证书生成asp.net证书
在MDM配置中指定服务器的url
在MDM标识中设置p12证书。
安装配置文件
在安装过程中,我会得到错误的The server certificate for "https://myservername/mdmserver/api/" is invalid。
我已经尝试了很多我在网上找到的东西,但是可以成