Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 将Ruby代码从apple文档(iPhone配置)转换为Java_Ios_Ruby_Jakarta Ee_Encryption_Mdm - Fatal编程技术网

Ios 将Ruby代码从apple文档(iPhone配置)转换为Java

Ios 将Ruby代码从apple文档(iPhone配置)转换为Java,ios,ruby,jakarta-ee,encryption,mdm,Ios,Ruby,Jakarta Ee,Encryption,Mdm,我正在为iOS MDM开发web应用程序。 在这种情况下,mobileconfig中的有效负载在发送到设备之前要进行加密。 Apple文档以下面的代码为例,它是Ruby的,运行良好。 但是,我无法在Java中实现同样的功能 OpenSSL::PKCS7.encrypt(p7sign.certificates, payload, OpenSSL::Cipher::Cipher::new("des-ede3-cbc"), OpenSSL::PKCS7::BINARY) 我使用的Java代码如下:

我正在为iOS MDM开发web应用程序。 在这种情况下,mobileconfig中的有效负载在发送到设备之前要进行加密。 Apple文档以下面的代码为例,它是Ruby的,运行良好。 但是,我无法在Java中实现同样的功能

OpenSSL::PKCS7.encrypt(p7sign.certificates,
payload, OpenSSL::Cipher::Cipher::new("des-ede3-cbc"),
OpenSSL::PKCS7::BINARY)
我使用的Java代码如下:

     PublicKey publicKey = x509cert.getPublicKey();
    //publinKey is key extracted from iOS device response stream

    Cipher cipher = Cipher.getInstance("DESede/CBC/PKCS5Padding");
    cipher.init(Cipher.ENCRYPT_MODE, publicKey);
    clearText = payloadContents.getBytes();
    //payloadContents are contents to be encrypyted
    cipherText = cipher.doFinal(clearText);
执行此操作后出错

java.security.InvalidKeyException:没有安装的提供程序支持此密钥:sun.security.rsa.rsaplicKeyImpl 位于javax.crypto.Cipher.a(DashoA13*) 位于javax.crypto.Cipher.init(DashoA13*)
在javax.crypto.Cipher.init(DashoA13*)

PKCS7.encrypt
中生成一个信封数据,如中所指定。这不仅仅是对内容进行加密,它是涉及加密的ASN.1数据结构规范

要在Java中生成或解密类似的内容,我建议使用BouncyCastle,可以找到相关类的Javadocs——请特别注意和朋友


您在Ruby调用中传递的证书用于创建RecipientInfo结构,使用该类可以实现类似的功能。

Hi Nilesh,您能否更新您的问题以指出您遇到的问题?Chris感谢您的快速回复。。。我已经更新了问题。