Чтение онлайн

на главную - закладки

Жанры

iOS. Приемы программирования

Нахавандипур Вандад

Шрифт:

{

«background.png»: "",

«icon.png»: "",

«logo.png»: "",

«pass.json»: "",

«thumbnail.png»: "",

}

А

теперь начинается самое интересное. Нужно рассчитывать SHA1-хеши всех этих файлов. Учтите, что теперь при каждом изменении файлов (например, вы нашли ошибку в файле pass.json и исправили ее) потребуется также пересчитывать SHA1-хеш и записывать новое значение этого хеша в файле manifest.json. Чтобы рассчитать значение SHA1-хеша для любого файла в операционной системе OS X, просто выполните следующие шаги.

1. Откройте окно терминала и перейдите в каталог, где находится целевой файл (для этого используется команда cd).

2. Выполните в окне терминала команду openssl. В качестве ее первого аргумента сообщите sha1, в качестве второго — имя файла.

Например, в каталоге с моим проектом есть подкаталог pass. В этот каталог я поместил мой файл pass.json, полупустой файл manifest.json, а также все изображения для талона (фоновое изображение, логотип и т. д.). Теперь в окне терминала я рассчитаю значения SHA1-хешей для всех этих файлов и запишу полученные значения в файл описания. Итак, в первой строке следующего листинга идет команда openssl, а все остальные строки — это значения хешей, полученные в качестве вывода:

openssl sha1 *.png *.json

SHA1([email protected])= e2aaf36f4037b2a4008240dc2d13652aad6a15bb

SHA1(background.png)= b21a92dedb89f8b731adabc299b054907de2347d

SHA1([email protected])= 6abab0f77fd89f1a213940fd5c36792b4cc6b264

SHA1(icon.png)= ed698ab24c5bd7f0e7496b2897ec054bbd4 26747

SHA1([email protected])= 90381c84cfea22136c951ddb3b368ade71f49eef

SHA1(logo.png)= c3bd8c5533b6c9f500bbadbdd957b9eac8a6bfe9

SHA1([email protected])= 1a56a5564dec5e8742ad65dc47aa9bd64c39222f

SHA1(thumbnail.png)= 58883d22196eb73f33ea556a4b7ea735f90a6213

SHA1([email protected])= 0903df90165ef1a8909a15b4f652132c273 68560

SHA1(manifest.json)= 894f795b991681de8b12101afb8c2984bf8d0f65

SHA1(pass.json)= c5acddbab742f488867c34882c55ca14efff0de9

Мы рассчитали SHA1-хеши всех файлов, в том числе хеш manifest.json. Однако SHA1-хеш файла manifest.json нам не понадобится, так как он содержит хеши всех остальных файлов, а своего собственного хеша не имеет. Поэтому мы просто игнорируем хеш файла manifest.json.

Итак, теперь требуется заполнить файл manifest.json значениями SHA1 всех остальных файлов — эти хеши мы только что рассчитали:

{

«background.png»: «b21a92dedb89f8b731adabc299b054907de2347d»,

«[email protected]»: «6abab0f77fd89f1a213940fd5c36792b4cc6b264»,

«[email protected]»: «e2aaf36f4037b2a4008240dc2d13652aad6a15bb»,

«icon.png»: «ed698ab24c5bd7f0e7496b2897ec054bbd4 26747»,

«[email protected]»: «90381c84cfea22136c951ddb3b368ade71f49eef»,

«logo.png»: «c3bd8c5533b6c9f500bbadbdd957b9eac8a6bfe9»,

«[email protected]»: «1a56a5564dec5e8742ad65dc47aa9bd64c39222f»,

«pass.json»: «c5acddbab742f488867c34882c55ca14efff0de9»,

«thumbnail.png»: «58883d22196eb73f33ea556a4b7ea735f90a6213»,

«[email protected]»: «0903df90165ef1a8909a15b4f652132c273 68560»

}

Пока

все понятно. Переходим к следующему этапу: нам нужно снабдить талон цифровой подписью.

См. также

Раздел 19.1.

19.5. Цифровое подписывание талонов

Постановка задачи

Вы подготовили каталог pass с файлом описания и файлом pass.json, а также все изображения. Теперь вы хотите снабдить цифровой подписью каталог с талоном и его содержимое. Это требуется для создания файла талона, готового к распространению.

Решение

Для подписывания талонов используйте OpenSSL.

Обсуждение

Каждый талон требуется подписывать с помощью сертификата, созданного в разделе 19.1. Для подписывания талонов мы вновь будем использовать команду openssl в окне терминала. Перед тем как читать дальше, убедитесь в том, что создали каталог pass и поместили в него файлы pass.json, manifest.json и все изображения. Этот каталог не обязательно должен называться pass. Тем не менее, чтобы было удобнее читать этот раздел и оставшиеся разделы этой главы, лучше не импровизировать и назвать этот каталог с файлами именно pass.

Некоторые читатели могли запутаться в том, куда относятся некоторые ключи и для чего нужны те или иные сертификаты. Надеюсь, в этом разделе ситуация прояснится. Когда вы запрашиваете новый сертификат на портале инициализации iOS, в связке ключей на вашем компьютере создается закрытый ключ, а также файл запроса на подпись сертификата (CSR). Сертификат будет сгенерирован Apple. Когда вы скачаете файл сертификата, он будет иметь расширение. cer. Это просто сертификат! Когда вы импортируете его в связку ключей, результирующий файл будет иметь расширение. p12. В этом файле будут содержаться и сертификат, и закрытый ключ к нему.

Прежде чем мы вплотную займемся процессом подписывания, нам потребуется экспортировать созданный сертификат из связки ключей. Не забывайте, что сертификат, полученный вами на портале инициализации iOS, — это не тот самый сертификат, который экспортируется из связки ключей. Поэтому при экспорте сертификата для идентификатора типа талона обязательно выполните следующие шаги.

1. Откройте на Mac программу для доступа к связке ключей (Keychain Access).

2. В левой верхней части окна в области Keychains (Связки ключей) убедитесь, что вы выбрали связку ключей для входа в систему (Login Keychain).

Поделиться:
Популярные книги

Печать Пожирателя

Соломенный Илья
1. Пожиратель
Фантастика:
попаданцы
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Печать Пожирателя

Привет из Загса. Милый, ты не потерял кольцо?

Лисавчук Елена
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Привет из Загса. Милый, ты не потерял кольцо?

Мастер 2

Чащин Валерий
2. Мастер
Фантастика:
фэнтези
городское фэнтези
попаданцы
технофэнтези
4.50
рейтинг книги
Мастер 2

Нечто чудесное

Макнот Джудит
2. Романтическая серия
Любовные романы:
исторические любовные романы
9.43
рейтинг книги
Нечто чудесное

Клан

Русич Антон
2. Долгий путь домой
Фантастика:
боевая фантастика
космическая фантастика
5.60
рейтинг книги
Клан

Имя нам Легион. Том 3

Дорничев Дмитрий
3. Меж двух миров
Фантастика:
боевая фантастика
рпг
аниме
5.00
рейтинг книги
Имя нам Легион. Том 3

Запасная дочь

Зика Натаэль
Фантастика:
фэнтези
6.40
рейтинг книги
Запасная дочь

Убивать чтобы жить 7

Бор Жорж
7. УЧЖ
Фантастика:
героическая фантастика
космическая фантастика
рпг
5.00
рейтинг книги
Убивать чтобы жить 7

У врага за пазухой

Коваленко Марья Сергеевна
5. Оголенные чувства
Любовные романы:
остросюжетные любовные романы
эро литература
5.00
рейтинг книги
У врага за пазухой

Кодекс Охотника. Книга XXI

Винокуров Юрий
21. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга XXI

Генерал Скала и ученица

Суббота Светлана
2. Генерал Скала и Лидия
Любовные романы:
любовно-фантастические романы
6.30
рейтинг книги
Генерал Скала и ученица

Оцифрованный. Том 1

Дорничев Дмитрий
1. Линкор Михаил
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Оцифрованный. Том 1

Его маленькая большая женщина

Резник Юлия
Любовные романы:
современные любовные романы
эро литература
8.78
рейтинг книги
Его маленькая большая женщина

Хуррит

Рави Ивар
Фантастика:
героическая фантастика
попаданцы
альтернативная история
5.00
рейтинг книги
Хуррит