Я пытаюсь экспортировать почтовое вложение (которое является .p12
файлом) в мое приложение iOS, используя расширение общего доступа.
Это функция для обработки вложений Share Extension:
@IBAction func processAttachment() {
guard let item = self.extensionContext?.inputItems[0] as? NSExtensionItem,
let provider = item.attachments?.first,
provider.hasItemConformingToTypeIdentifier("com.rsa.pkcs-12") else {
extensionContext!.completeRequest(returningItems: [], completionHandler: nil);
return
}
provider.loadDataRepresentation(forTypeIdentifier: "com.rsa.pkcs-12") { (p12Data, error) in
//Process Data here
}
У меня проблема в том, что я получаю ошибку декодирования (OSStatus) -26275
(иначе This certificate could not be decoded
) когда я пытаюсь импортировать его с помощью SecPKCS12Import
.
, я попробовал тот же подход, заменив данные в закрытии локальной загрузкой файла, используя:
let pkcsFileURL = Bundle.main.url(forResource: "certificate", withExtension: "p12")!
let pkcsData = try! Data(contentsOf: pkcsFileURL)
Декодирование Данные из локального файла пока успешны.
Затем я понимаю, что Данные, поступающие из вложения и локального файла, не совпадают. В то время как данные, поступающие из вложения, 9856 bytes
, локально - 5747 bytes
.
Я делюсь с iOS Приложение Outlook, установленное в приложении, которое показывает, что исходный файл имеет размер 6 КБ (намного ближе к данным, считанным из локального файла).
Возможно, данные из вложения Несмотря на то, что они не декодированы должным образом, любопытно, что неправильные данные имеют почти двойной размер по сравнению с оригиналом.
Я правильно читаю данные вложения?
ОБНОВЛЕНИЕ
Я думаю, что вся проблема вызвана тем, что вложение является двоичным.