当前位置: 首页 > 知识库问答 >
问题:

如何从apple world wide developer证书和。p12文件中提取公钥和私钥?

叶鸿
2023-03-14

因此,我试图为存折或他们现在所说的“钱包”编写功能。我编写了所有必要的代码来编写JSON,将文件写入临时目录,然后计算校验和并放回清单中。现在我被困在用passes.p12文件中的.p12签署Apple World Wide Developer证书以获得所需的.der文件的部分?

<cfset signer = new rsa_signer(fileRead(expandPath("test_code/public_key.txt")),fileRead(expandPath("test_code/private_key.pem")),"SHA512withRSA")>


<cffile action="READ" file="#xtemp_folder#\manifest.json" variable="xtext">
<cfset xsignature = signer.sign(xtext)>
<!---- write to file ----->
<cffile action="WRITE" file="#xtemp_folder#\signature.der" output="#xsignature#">

<!---- create zipped file for user downloading ----->
<cf_write_log log_key="#attributes.log_key#" data="<hr>create zip files from temp holding folder..">
<cfset xzip_filename = "h:\eshowtemp\#xtemp_folder_string#.pkpass">
<cfdirectory action="LIST" directory="#xtemp_folder#" name="files">
<cf_write_log log_key="#attributes.log_key#" data="files=#files.recordcount#">
<cfzip file="#xzip_filename#" source="#xtemp_folder#">

上面的代码是我的冷融合程序的一个片段,它理想地签名并打印出所需的。pkpass文件。我已经确认这个程序与其他提供的公共和私人密钥一起工作。在我阅读签名者的地方,我尝试将world wide developer证书导出到。pem文件中。然后我对。p12做了同样的操作,将其导出到一个pem文件中,并将这两个pem文件插入到rsa_signer中,但没有成功。所以我被困在这里要去哪里。

以下是我注意到的。在工作的公钥和私钥上,它们如下所示:

----开始私钥----

加密....

----开始证书----

///加密

----结束证书----

https://rietta.com/blog/2012/01/27/openSSL-generating-rsa-key-from-command/

共有1个答案

羊刚捷
2023-03-14

创建签名文件的步骤是(在获得manifest.json之后)
1。加载p12文件内容(通过类型id认证)->$CERT_INFO
2。使用
openssl_pkcs12_read($cert_store,$cert_info,$password)->$cert_info将保留所有解码的信息3。使用
$pkey=openssl_pkey_get_private($cert_info['pkey'],“”)从$cert_info获取私钥;
并将$pkey保存到pem临时文件
3.1使用$cert=openssl_x509_read($cert_info['cert'])保存证书信息;
4。使用Manifest.json、cert info($cert)、Apple World Wide Developer Certificate通过使用
openssl_pkcs7_sign(“./pass_file/manifest.json”、“./pass_file/temp_signature”、$cert,$pkey,array(),PKCS7_BINARY PKCS7_DETACHED,“./applewwdrca.pem”)
5创建pkcs7文件(temp_signature)。加载temp_signature文件内容并在filename=“smime.p7s”之后------(substr)之前提取数据,用base64_decode进行编码并保存到“signature”文件中

 类似资料:
  • 当创建ECDSA对象并尝试提取私钥和公钥对象时,它会返回一个。但是当尝试将其转换为字符串时,它给出的输出看起来不正确。 上面的< code>ECParameters提供对< code >曲线 、< code>D(私钥)和< code>Q(公钥)的访问。 知道这些字节数组中使用了什么样的格式吗?我们如何把它转换成一个字符串格式,例如:PKCS#8的私有和公共密钥?

  • 问题内容: 我正在寻找一个Java库或代码来即时生成证书,公共和私有密钥,而无需使用第三方程序(例如openssl)。 我认为是从Java代码中获取keytool + openssl的东西。 考虑使用ssl和客户端身份验证保护的基于Java servlet的Web应用程序。我希望Servlet容器仅在请求时使用Java代码生成客户端证书(例如pkcs12格式)。 问题答案: 您可以使用一对或密钥在

  • 问题内容: 这是我的代码: OpenSSL能够通过命令行解码X509证书,因此我知道它是有效的证书。但是Java似乎并不喜欢它。 无论有没有尾随的\ n,我都已经厌倦了。 有任何想法吗? 问题答案: - 更新 正如评论中提到的那样,OP解决方案唯一的问题是OP 使用的是密钥,而不是证书。 这是 无需Base64转换 的代码 , 因为它本身可以读取PEM文件(它会查找块本身以知道它正在读取PEM文件

  • 我试图签署一个Android应用程序,但显然原始的keystore文件是不可用的。我所得到的只有以下几点: 私钥md5 0123456789abcdef0123456789abcdef<--虚构值,但 证书md5 fedcba9876543210fedcba9876543210<-原始为32个十六进制数字 已签署的生产Android应用程序 是否有任何方法可以从这些资产中重新创建一个keystor

  • 使用Azure Key Vault Secret client library for Python,我获得了证书的秘密,它有一个提取的私钥。

  • 但是,这将错误地表示它无法加载证书。