必要な要求のscrenshotを追加しました。SecKeyの文字列表現を取得する
私はMacOsアプリをSwift 4で作成しようとしています。このアプリは、RSA暗号化を必要とするAPIと通信します。
Googleはこれを行う方法を説明できる結果を出していませんでした。この件に関するAppleの文書はかなり広範囲(https://developer.apple.com/library/content/documentation/Security/Conceptual/CertKeyTrustProgGuide/KeyRead.html#//apple_ref/doc/uid/TP40001358-CH222-SW2)ですが、私の必要なものではありません。
関数SecKeyCopyExternalRepresentationは、 がStringに変換できないDataオブジェクトを返します。ドキュメントはPCKS#1の応答だと言いますが、私はそれを解決することはできません。
私は以下を含む多くのことを試しましたが、動作させることができません。 Request
は、スウィフトにこのさえ可能です:
func externalRepresentation(_ key: SecKey) -> String? {
var error: Unmanaged<CFError>?
guard let data = SecKeyCopyExternalRepresentation(key, &error) as Data? else {
return nil
}
return data.base64EncodedString()
}
要求は、次にする必要がありますか?
ありがとうございます!質問を更新し、リクエストのスクリーンショットを追加しました。ご覧のとおり、PCKS#1文字列でなければなりません。これはbase64でエンコードされたBLOBではありませんか? – Dastin
@Dastinこれは実際にbase64でエンコードされたBLOBです。 *人間が読める*接頭辞と接尾辞( '\ n'文字を含む)を追加する必要があります。' .lineLength64Characters'オプションを 'base64EncodedString(options:)'に渡す必要があります。 – vadian