为 IOS 11 和 IOS 12 快速生成椭圆曲线 P-256 Keys

问题描述

我正在开发一个使用 Java 加密服务的应用程序,我们有生成相同密钥格式的 Android 应用程序,因为后面的代码是相同的。我正在使用 CryptoKit 库,但它只接受 IOS 13 和 IOS 14 的一些功能

 if #available(iOS 13.0,*) {
        let privateKey = P256.Signing.PrivateKey()
        let publicKey = privateKey.publicKey
        let publicKeyData = publicKey.x963Representation
        if #available(iOS 14.0,*) {
            print("publickeyCryptoKey: \(publicKey.pemRepresentation)")
            print("privatekeyCryptoKey: \(privateKey.pemRepresentation)")
        } else {
            // Fallback on earlier versions
        }
    } else {
        // Fallback on earlier versions
    }

java后端接受的密钥格式:

let private = "-----BEGIN PRIVATE KEY-----
MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgjnRfAQCrPS4g8MAT
7hX68EXW5ru9hB57iA6mETSqGWahRANCAARE3nshU6VAqSdNGU0zef0G60rr7M0H
BEyJoCoBOlSNjnCHuRYR34tNrU8veU2JYO8Mxl0aJsDb8Ydeq50pGx5p
-----END PRIVATE KEY-----"

let public = "-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAERN57IVOlQKknTRlNGXhdButK6+zN
BwRMiaAqATpUjY5wh7kWEd+LTa1PL3lNiWDvDMZdGibA2/GHXqudKRseaQ==
-----END PUBLIC KEY-----"

生成的密钥在 IOS 13 和 14 中,但我需要在 IOS 11 和 12 中生成该格式的密钥。我尝试过其他库,如 BlueECC,但它们都生成不同格式的密钥,并且后面不接受他们,谢谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)