편집 필요한 요청을 추가했습니다.SecKey의 문자열 표현 얻기
저는 스위프트 4에서 MacOs 앱을 만들려고합니다.이 앱은 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()
}
요청은 다음 할 필요가?
감사합니다. 질문을 업데이트하고 요청의 스크린 샷을 추가했습니다. 보시다시피, base64로 인코딩 된 BLOB가 아닌 PCKS # 1 문자열이어야합니다. – Dastin
@Dastin 실제로 base64로 인코딩 된 blob입니다. 사람이 읽을 수있는 * 접두사와 접미사 ('\ n' 문자 포함)를 추가해야하고'.lineLength64Characters' 옵션을'base64EncodedString (options :)'에 전달해야합니다. – vadian