LogoLogo
Switch to EnglishНа сайт Oz ForensicsOz APIСвязаться с нами
  • Общая информация
    • Описание системы Oz Forensics
      • Архитектура Oz
      • Проверки Liveness, Face Matching, Black List
      • Oz API и Oz API Lite
      • Пассивный и активный Liveness
      • Гибридный Liveness
      • Ключевые понятия Oz API
      • Модели использования: SaaS, локальная установка и анализ на устройстве
      • Варианты лицензирования
    • Краткие руководства по интеграции
      • Проверка Liveness на сервере
        • Как интегрировать серверную проверку Liveness в ваше Web-приложение
        • Как интегрировать серверную проверку Liveness в ваше мобильное приложение
        • Как провести проверку медиафайла на Liveness без использования фронтенда Oz
      • Проверка Liveness на устройстве
        • Как интегрировать проверку Liveness на устройстве в ваше мобильное приложение
      • Сравнение лиц
        • Как сравнить лицо из снятого для проверки Liveness видео с лицом из вашей базы данных
        • Как добавить съемку документа и возможность сопоставления лиц в ваше веб- или мобильное приложение
  • Руководства
    • Руководство разработчика
      • API
        • Oz API
          • Как работать с системой: базовые сценарии
            • Аутентификация
            • Загрузка медиафайлов
            • Liveness
            • Биометрия
            • Поиск лучшего кадра
            • Проверка по черному списку
              • Работа с черным списком (коллекцией) в Oz API
            • Результаты анализов
            • Использование вебхуков для получения результатов
          • Объекты системы
          • Роли пользователей
          • Типы анализов и что они проверяют
          • Правила назначения анализов
          • Статусы API
          • Теги медиафайлов
          • Метаданные
          • Ошибки вызова сервиса
          • Коллекции Postman Oz API
          • Журнал изменений
        • Oz API Lite
          • Методы API Lite
          • Коллекция Postman Oz API Lite
          • Журнал изменений
      • SDK
        • Oz Mobile SDK (iOS, Android, Flutter)
          • Выполнение анализов на устройстве
          • Android
            • Получение лицензии
              • Мастер-лицензия для Android
            • Добавление SDK в проект
            • Подключение к API
            • Съемка видео
            • Выполнение проверок
            • Настройка Android SDK
              • Прежний дизайн
            • Локализация для Android: добавление или обновление языкового пакета
            • Методы и поля Android SDK
            • Журнал изменений
          • iOS
            • Получение лицензии
              • Мастер-лицензия для iOS
            • Добавление SDK в приложение
            • Подключение к API
            • Съемка видео
            • Выполнение проверок
            • Настройка iOS SDK
              • Прежний дизайн
            • Локализация для iOS: добавление или обновление языкового пакета
            • Методы и поля iOS SDK
            • Журнал изменений
          • Flutter
            • Установка и использование плагина для Flutter
            • Журнал изменений
        • Oz Liveness Web SDK
          • Web Plugin
            • Добавление плагина на web-страницу
            • Запуск плагина
              • Описание коллбэка on_complete
              • Описание коллбэка on_result
              • Съемка видео и описание коллбэка on_capture_complete
              • Описание коллбэка on_error
            • Скрытие и закрытие плагина
            • Локализация: добавление собственного языкового пакета
            • Настройка интерфейса
              • Настройка интерфейса до версии 1.0.1
            • Рекомендации по безопасности
            • Совместимость с браузерами
            • Лицензирование без использования сервера
          • Журнал изменений
    • Руководство администратора
      • Сервер лицензий
      • Конфигурация Web Adapter
        • Установка и лицензирование
        • Настройки файла конфигурации
        • Настройка Web Adapter через переменные окружения
        • Настройка сервера через переменные окружения
      • Конфигурация API
    • Руководство пользователя
      • Oz Web UI
        • Заявка на анализ
        • Пользователи и компании
        • Черный список
        • Статистика
        • Настройки
        • Журнал изменений
  • Дополнительная информация
    • Обновление ПО в соответствии с новыми требованиями регулятора в Казахстане
    • Требования к качеству медиафайлов
    • Какие проверки выполняют Oz SDK при съемке
    • Размеры медиафайлов, снятых Oz SDK
    • Совместимость
    • FAQ
    • Советы и рекомендации
      • Sudo без пароля
      • Соответствие жестов в компонентах Oz Liveness
      • Android: ошибка валидации сертификата
    • Прежняя версия документации
      • Mobile SDK
        • Android
          • Работа с серверным Oz API
          • Выполнение проверок
        • iOS
          • Выполнение проверок
      • Руководство пользователя
        • Демо-версия приложения Oz Forensics
        • Web UI
      • Мониторинг
      • Установка модулей Oz
        • Стационарный установщик
        • Oz System Lite
Powered by GitBook
On this page
  • Генерация ключей
  • Создание приватного ключа
  • Создание публичного ключа
  • Интеграция SDK

Was this helpful?

Export as PDF
  1. Руководства
  2. Руководство разработчика
  3. SDK
  4. Oz Mobile SDK (iOS, Android, Flutter)
  5. iOS
  6. Получение лицензии

Мастер-лицензия для iOS

PreviousПолучение лицензииNextДобавление SDK в приложение

Last updated 1 year ago

Was this helpful?

Мастер-лицензия – это оффлайн-лицензия, с которой можно использовать мобильные SDK без ограничений по bundle_id, в отличие от обычных лицензий. Для получения мастер-лицензии нужно создать пару ключей, как описано ниже. Отправьте нам публичный ключ по электронной почте, и вскоре после этого мы отправим вам мастер-лицензию. Вашему приложению нужно будет подписать свой bundle_id приватным ключом. Мобильные SDK проверяют подпись с помощью публичного ключа из мастер-лицензии. Действие таких лицензий ограничено по времени.

Генерация ключей

В этом разделе описано, как создавать приватный и публичный ключи.

Создание приватного ключа

Чтобы создать приватный ключ, последовательно запустите следующие команды:

openssl genpkey -algorithm RSA -outform DER -out privateKey.der -pkeyopt rsa_keygen_bits:2048
# for MacOS
base64 -i privateKey.der -o privateKey.txt
# for Linux 
base64 -w 0 privateKey.der > privateKey.txt

Вы получите два файла:

  • privateKey.der – приватный ключ .der;

  • privateKey.txt – privateKey.der в кодировке base64. Содержимое этого файла используется в качестве подписи bundle_id хостового приложения.

Спецификация команд OpenSSL:

Создание публичного ключа

Чтобы создать публичный ключ, последовательно запустите следующие команды:

openssl rsa -pubout -in privateKey.pem -out publicKey.pub
base64 -w 0 publicKey.pub > publicKey.txt

Вы получите публичный ключ publicKey.pub. Отправьте его нам по электронной почте. В ответ мы пришлем вам лицензию.

Интеграция SDK

Инициализация SDK:

OZSDK(licenseSources: [LicenseSource], masterLicenseSignature: String? = nil, completion: @escaping ((LicenseData?, LicenseError?) -> Void))

Установка лицензии:

setLicense(licenseSource: LicenseSource, masterLicenseSignature: String? = nil)

Перед инициализацией SDK создайте закодированную base64 подпись для bundle_id хостового приложения с помощью приватного ключа.

Пример создания подписи:

private func getSignature() -> String? {
    let privateKeyBase64String = "содержимое файла privateKey.txt"
 
    guard let data = Data(base64Encoded: privateKeyBase64String, options: [.ignoreUnknownCharacters]) else {
      return nil
    }
     
    let sizeInBits = data.count * 8
    let keyDict: [CFString: Any] = [
      kSecAttrKeyType: kSecAttrKeyTypeRSA,
      kSecAttrKeyClass: kSecAttrKeyClassPrivate,
      kSecAttrKeySizeInBits: NSNumber(value: sizeInBits)
    ]
     
    var error: Unmanaged<CFError>?
    guard let secKey = SecKeyCreateWithData(data as CFData, keyDict as CFDictionary, &error) else {
      return nil
    }
     
    guard let bundleID = Bundle.main.bundleIdentifier else {
      return nil
    }
    guard let signature = SecKeyCreateSignature(secKey,
                          .rsaSignatureMessagePKCS1v15SHA512,  // Это критично!!!!
                          Data(bundleID.utf8) as CFData,
                          &error) else {
      return nil
    }
    return (signature as Data).base64EncodedString()
  }
Пример подписи для com.ozforensics.liveness.demo

NcdfzExUuQcdSxdY3MUVp4rUGnJTfeTGh/EN0hqiDUSadxf9jhaYe3EHmBPb+DafWrpvP6h6ZON3fHZcqqlykpWtVlPNr7ZpchPJXgHSdIOetKjPxYWh8xrt0NUSzm9Mymv1vz7UUdLiPFXDbanAedkg4YOX8uVJjfP8gb+suLdeTE3CHm+fdK5IVMP1SMu0XsBiiWBtVZp15l6tz7fDv+frr5kCr8I/LAHo6pCHBtzsXUiYw6ylrU/PHI1QYuyKK96iTxBt3gU+/MrfHl2DHLief3Fs10m3doJmTPizwWi/8h6fvq+6ZZlV/q4S2uPE3gpQZrZe2u3FuSE8gEgVoA==

Передайте подпись как параметр masterLicenseSignature во время инициализации SDK или установки лицензии.

Если подпись невалидна, инициализация продолжится по стандартной схеме: проверка включенных в лицензию bundle_id.

https://www.openssl.org/docs/man1.1.1/man1/openssl-pkcs8.html
2KB
privateKey.txt
1KB
private_key.der
451B
publicKey.pub