Желательно бы пример SDK для iOS используя файл ЭЦП физ. лиц
(1 чел.) (1) гость
  • Страница:
  • 1

ТЕМА: Желательно бы пример SDK для iOS используя файл ЭЦП физ. лиц

Желательно бы пример SDK для iOS используя файл ЭЦП физ. лиц 4 года, 11 мес. назад #1142

  • mixdesign
  • Новый участник
  • Постов: 3
  • Репутация: 0
Доброе утро,

Получили SDK для iOS (SDK_KNCA_2014-08-18).
Открыли проект в Xcode. Проект сразу не компилируется, пришлось повозиться с настройкой библиотеки OpenSSL. (В оригинальном проекте в настройках указан путь к папке include, которая должна содержать header файлы openSSL, путь в свою очередь ведет на внешний путь общей папки SDK_KNCA_2014-08-18 ). Тут возникает к Вам просьба, добавьте пожалуйста папку include в директорию проекта с содержанием файлов OpenSSL, чтобы другие разработчики в будущем не сталкивались с этой проблемой.

Пришлось скачать последнюю версию OpenSSL (версия на текущий момент OpenSSL 1.0.1h 5 Jun 2014), закинуть файлы в папку include, настроить путь к этой папке в проекте. take.ms/Fl2Va

Также нужно было создать вручную папку lib в директории проекта, и закинуть туда предоставленные вами библиотеки:
take.ms/UlroT

В настройках проекта указать: take.ms/5lyfb
В итоге проект запустился.

Закинул все тестовые сертификаты (те что лежат в папке SDK_KNCA_2014-08-18 ▸ examples ▸ ios ▸ ssltestproject ▸ Documents) в папку Documents симулятора ( Macintosh HD ▸ Users ▸ almasadilbek ▸ Library ▸ Application Support ▸ iPhone Simulator ▸ 7.1 ▸ Applications ▸ 49ABD025-F090-401A-9D05-1965BAA3915E ▸ Documents) monosnap.com/image/4y9vRbulNit3FWzQ8PuXdzlFki6JWQ, перезапустил проект, попробовал создать подпись перейдя в раздел Genegate sign. Подписать получилось, это обрадовало.

Если посмотреть в код, там видно что по умолчанию (hard coded) указан сертификат client_gost.p12, которым производится подпись. Теперь все же надо было проверить как проходит подпись используя мой ЭЦП файл который я получил в цоне. В цоне мы получили два файла, это RSA_ и AUTH_RSA_, конечно же мы должны использовать RSA_ для подписи. В коде я указал путь на мой сертификат, указал пароль и запустил проект. Перешел в раздел Generate sign, нажал на кнопку Generate Signature и тут ошибка, приложение вылетает, ошибка в коде указывает на строку: take.ms/GqQ5Q

Логи проекта говорят о том что мой сертификат был успешно открыт и запарсен:
2014-09-05 10:09:53.563 SSLTESTER[4799:70b] read ok
2014-09-05 10:09:53.568 SSLTESTER[4799:70b] parse ok
2014-09-05 10:09:53.569 SSLTESTER[4799:70b] PKCS12 has been loaded
2014-09-05 10:09:53.569 SSLTESTER[4799:70b] /serialNumber=IIN745896....


И тут я понимаю что код настроен так чтобы можно было делать подпись только гостовым сертификатом. Или я ошибаюсь?

Я попробовал поменять тип digest в коде:

const EVP_MD *md = EVP_get_digestbynid(NID_id_GostR3411_94);

на
const EVP_MD *md = EVP_get_digestbynid(NID_sha1); // также перепробовал варианты NID_sha1WithRSA, NID_sha1WithRSAEncryption итп


безуспешно! Получаю ту же ошибку...

Подскажите, как же все таки использовать не гостовый сертификат чтобы подписать данные?
Спасибо.
Изменено: 4 года, 11 мес. назад от mixdesign.

Re: Желательно бы пример SDK для iOS используя файл ЭЦП физ. лиц 4 года, 11 мес. назад #1144

  • mixdesign
  • Новый участник
  • Постов: 3
  • Репутация: 0
Решил проблему чтобы приложение не вылетало. Указал длину приватного ключа до 256 в строке:
unsigned char sig_buf [64];

на
unsigned char sig_buf [256];


Получаю signatureValue, но он не сходится со значением которое мы получаем от андройд (SDK) версии (который был проверен нами на 100% работоспособность). Видимо нужно найти правильный digest type для эцп физ. лиц.

Есть идеи?
Изменено: 4 года, 11 мес. назад от mixdesign.

Re: Желательно бы пример SDK для iOS используя файл ЭЦП физ. лиц 4 года, 11 мес. назад #1146

  • zipzipzip
  • Новый участник
  • Постов: 3
  • Репутация: 1
Добрый день,
По всей видимости header файлы не скопировались, они подвергались изменениям.
"Пришлось скачать последнюю версию OpenSSL (версия на текущий момент OpenSSL 1.0.1h 5 Jun 2014)" - по идее нельзя так делать. Там есть изменения отличные от официального, могут возникать ошибки или вообще не работать.
Думаю сегодня или завтра добавят в SDK.
Спасибо сказали: mixdesign

Re: Желательно бы пример SDK для iOS используя файл ЭЦП физ. лиц 4 года, 11 мес. назад #1147

  • zipzipzip
  • Новый участник
  • Постов: 3
  • Репутация: 1
Пример разрабатывался под ГОСТовый, а там длинна 64.
Под эцп физ. лиц. посмотрят и вам сразу же ответят.

Re: Желательно бы пример SDK для iOS используя файл ЭЦП физ. лиц 4 года, 11 мес. назад #1148

  • mixdesign
  • Новый участник
  • Постов: 3
  • Репутация: 0
Спасибо за ответ.

Возникает еще один вопрос, в андройд SDK мы добавляем Iola криптопровайдер перед тем как делать подпись. Как добавляется этот криптопровайдер в iOS SDK? Нужно ли?!

Ждем от Вас новостей, Спасибо!

Re: Желательно бы пример SDK для iOS используя файл ЭЦП физ. лиц 4 года, 11 мес. назад #1149

  • zipzipzip
  • Новый участник
  • Постов: 3
  • Репутация: 1
Под iOS вы добавляете libcrypto.a(и libssl.a если нужен) и header файлы которые идут в SDK в ваш проект.
  • Страница:
  • 1
FaLang translation system by Faboba