2015-11-06 3 views
-1

я пытаюсь проверить статус подписи кода для упак файлакак проверить, если PKG файл подписанный код

то, что я сделал ниже шаги:

(1) генерируют CFURLRef путь для пакета CFURLRef path = ConvertCFURLFromPath (пакет);

(2) генерируют SecStaticCode из выше пути OSStatus статус = SecStaticCodeCreateWithPath (путь, kSecCSDefaultFlags, & staticCode);

(3) Проверить, что StaticCode подписан или нет status = SecStaticCodeCheckValidity (staticCode, kSecCSDoNotValidateExecutable, NULL);

Тем не менее, я всегда получил статус «-67062» в приведенной выше проверке, в то время как путь и статический код выглядят корректно для меня.

С другой стороны, если я использую pktutil для проверки файла пакета, я вижу, что подписанная подпись отображается правильно.

Так что мне интересно, если выше API SecStaticCodeCheckValidity может использоваться для проверки файла pkg? или он работает только для приложения?

Что не хватает на моих шагах?

спасибо!

ответ

0

Я подозреваю, что самые простые файлы .pkg (внутренние архивы .xar) НЕ являются исполняемыми. Они не являются файлами Mach-o, кодовыми пакетами или чем-либо, загружаемым для выполнения. Это просто «документы», открытые приложением Installer. Следовательно, этот API не подходит.

Я думаю, что я где-то читал в документации SecStaticCodeCreate(), что вы МОЖЕТЕ создать такой объект для неисполняемых файлов, но я не думаю, что вы могли бы проверить их таким образом.

Смежные вопросы