Ответ 1
Пабло,
Подписание документов в формате PDF является сложной задачей (моя компания делает это в мире Windows в Паскале).
В общем, могу вам сказать, что вы, вероятно, не найдете полезный исходный код, который вы можете просто включить в свой проект. Чтобы увидеть, как это делается, источник iText является хорошей отправной точкой, потому что все там.
В objective-c вы находитесь на правильном пути. Использование сертификатов X.509 с такими функциями, как SecKeyRawSign, является правильным способом (поскольку фактические данные прописных букв являются старыми, вам необходимо создать например, SHA256. Вы можете видеть здесь, как это делается: В чем разница между различными типами дополнений в iOS?). "DataToSign" - это не что иное, как хеш содержимого PDF (например, SHA256), который вы хотите подписать.
Чтобы узнать, какую часть источника PDF вы должны подписать точно, вы должны проверить документацию Adobe Adobe PDF 1.6 или выполнить некоторые поисковые запросы в группах, говорящих об этом. Не имеет значения, на каком языке вы собираетесь подписывать PDF.
В конце вы добавите подпись и некоторую информацию о подписи в предопределенную часть документа PDF (обратите внимание, чтобы не нарушить действительный хеш, выполнив это;)), и его можно было увидеть и проверить с помощью любого другое программное обеспечение для подписи/проверки PDF.
Мне жаль, что я не могу предоставить вам соответствующий код, но вы найдете достаточно образцов вокруг сертификатов X.509 - например. создавая соединение SSL/SSH. И если вы ищете SecKeyRawSign, вы даже найдете несколько образцов для подписи (по крайней мере, с другими шаблонами). Это все, что вам нужно, если вы найдете синтаксис PDF для того, чтобы взять часть контента для подписания и вставить подпись в окончательный PDF.
Надеюсь, это помогло вам.
Джимми