Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход. Новые регистрации запрещены.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline eploginov  
#1 Оставлено : 31 мая 2013 г. 13:26:45(UTC)
eploginov

Статус: Новичок

Группы: Участники
Зарегистрирован: 31.05.2013(UTC)
Сообщений: 2

Интересует возможно ли каким-то образом использовать CryptoPro при разработке приложения на Monotouch. Возможно есть какие-то типовые решения?
Offline Татьяна  
#2 Оставлено : 31 мая 2013 г. 13:50:09(UTC)
Татьяна

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 06.02.2008(UTC)
Сообщений: 1,491
Откуда: Крипто-Про

Поблагодарили: 40 раз в 37 постах
Здравствуйте.
Ответ: можно.
Есть две компании, которые успешно используют наш фреймворк в Mono develop.
Чтобы этого добиться, надо применить инструкцию по сборке в XCode к вашей версии mono develop:

  • переименовать фреймворк (объектный файл CPROCSP, содержащий в себе реализацию фреймворка) в libCPROCSP.a, включить его в список библиотек для линковки(добавить -lCPROCSP и -L<путь к директории с фреймворком> в флаги линкера),
  • добавить в линковку модуль поддержки считывателя, который вам нужен (о считывателях и их модулях поддержи см. инструкцию Readers.txt, входящую в состав фреймворка), или librdrpcsc_emplty, если считыватель не нужен (-L<путь к библиотеки> -l<имя библиотеки> в флаги линкера)
  • добавить в линковку системные библиотеки libz, libiconv, libstdc++ (-lz -liconv -lstdc++ в флаги линкера)
  • перенести ресурсы
  • добавить флаг -all_load в флаги линкера
  • вписать build_step с запуском скрипта ConfigureApplication между линковкой и подписью приложения
  • обратить внимание на указания в readme о том, как надо поменять наши сприпты для сборки в свехиж версиях mono develop и т.д.
  • отредактировать содержимое файла ConfigureApplication, заменив его на

    #!/bin/bash
    PARAM="\"<путь, по котором находится собранный бинарник>\" program_control_sum"
    PROGRAM_CHECKSUM=`dirname $0`/program_checksum.sh
    eval $PROGRAM_CHECKSUM $PARAM

    где
    <путь, по котором находится собранный бинарник> надо заменить на путь, по которому у вас при сборке находится собранный бинарник (бинарник собирается, а потом деплоится на ios – нужно то место, где он лежит перед деплоем).


Консультации по использованию CSP в mono develop выходят за рамки тех.поддержки CSP для iOS. Соответственно, объем поддержки по этим вопросам каждый раз определяется индивидуально в зависимости от обстоятельств.

Отредактировано пользователем 4 сентября 2013 г. 15:50:47(UTC)  | Причина: Не указана

Татьяна
ООО Крипто-Про
Offline eploginov  
#3 Оставлено : 31 мая 2013 г. 15:04:39(UTC)
eploginov

Статус: Новичок

Группы: Участники
Зарегистрирован: 31.05.2013(UTC)
Сообщений: 2

Спасибо
Offline turbin  
#4 Оставлено : 3 сентября 2013 г. 9:26:21(UTC)
turbin

Статус: Новичок

Группы: Участники
Зарегистрирован: 03.09.2013(UTC)
Сообщений: 1
Российская Федерация

добрый день.

работаем над интеграцией Вашего фреймворка в mono проект.

Автор: Татьяна Перейти к цитате

-переименовать фреймворк в libCPROCSP.a, включить его в список либ, с которыми линковаться,


совсем непонятен первый пункт этой инструкции для подключения фреймворка к Mono!!! это как? можно подробней?
Offline Татьяна  
#5 Оставлено : 3 сентября 2013 г. 11:45:41(UTC)
Татьяна

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 06.02.2008(UTC)
Сообщений: 1,491
Откуда: Крипто-Про

Поблагодарили: 40 раз в 37 постах
имеется в виду что нужно переименовать объектный файл CPROCSP, который является реализацией фреймворка
Татьяна
ООО Крипто-Про
Offline Татьяна  
#6 Оставлено : 5 сентября 2013 г. 13:22:34(UTC)
Татьяна

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 06.02.2008(UTC)
Сообщений: 1,491
Откуда: Крипто-Про

Поблагодарили: 40 раз в 37 постах
В состав фреймворка была включена инструкция по сборке в MonoDevelop, она войдёт во все следующие релизы.
Выражаю благодарность пользователю turbin за написание инструкции.
Татьяна
ООО Крипто-Про
Offline lexd5  
#7 Оставлено : 27 июня 2016 г. 10:01:52(UTC)
lexd5

Статус: Новичок

Группы: Участники
Зарегистрирован: 15.10.2014(UTC)
Сообщений: 6
Российская Федерация
Откуда: Ижевск

Всем доброго времени суток!
Столкнулся с проблемой при подключении CryptoPro к Xamarin.iOS Brick wall
Шел точно по инструкции, файл лицензии сгенерировал, все файлы разместил вроде как корректно.
Сам CPROCSP подключается, так как Xamarin Studio при сборке видит его интерфейсы.
Проблема возникает при подключении считывателей.

librdrpcsc_empty.o - Его не видит вообще, при линковке просто пишет что нативная библиотека не найдена.
libiRockey301_ccid.a - Ошибки при сборке (даже при сборке примера в XCode), ругается на недоступность константы _USE_CACHE_DIR.
librdrjacarta_woiR301.a - Самое интересное, ошибок вроде как и нет, но он не подхватывается, в итоге сам билд падает :(

В итоге при сборке проекта получаем следующее:

Код:
MTOUCH: error MT5209: Native linking error: Apple LLVM version 7.3.0 (clang-703.0.31)
MTOUCH: error MT5209: Native linking error: Target: aarch64-apple-darwin15.5.0
MTOUCH: error MT5209: Native linking error: Thread model: posix
MTOUCH: error MT5209: Native linking error: InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
MTOUCH: error MT5209: Native linking error: "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld" -demangle -dynamic -arch arm64 -force_load /Users/krasilnikov_as/ios/TestProject/obj/iPhone/Debug/mtouch-cache/calabash -force_load /Library/Frameworks/Xamarin.iOS.framework/Versions/9.8.1.4/SDKs/MonoTouch.iphoneos.sdk/usr/lib/libapp.a -force_load ../CPROCSP.framework/readers/Aladdin/librdrjacarta_woiR301.a -iphoneos_version_min 8.1.0 -syslibroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.3.sdk -u _kBITAuthenticatorErrorDomain -u _kBITCrashErrorDomain -u _kBITFeedbackErrorDomain -u _kBITHockeyErrorDomain -u _kBITUpdateErrorDomain -u _CreateZStream -u _CloseZStream -u _Flush -u _ReadZStream -u _WriteZStream -u _xamarin_start_wwan -u _UIApplicationMain -u _xamarin_release_managed_ref -u _xamarin_create_managed_ref -u _xamarin_get_block_descriptor -u _xamarin_IntPtr_objc_msgSend_IntPtr -u _xamarin_IntPtr_objc_msgSendSuper_IntPtr -u _xamarin_GetFolderPath -u _xamarin_timezone_get_data -u _xamarin_log -u _APP_Init -u _App_SetInkColor -u _App_SetHighlineColor -u _mono_pmip -u _mono_profiler_startup_log -o /Users/krasilnikov_as/ios/TestProject/obj/iPhone/Debug/mtouch-cache/64/Output/TestProject -L../CPROCSP.framework/readers/Aladdin -framework CPROCSP -framework CoreGraphics -framework UIKit -framework Foundation -framework ExternalAccessory -framework SystemConfiguration -framework QuickLook -framework CoreImage -framework QuartzCore -framework Security -framework CoreText -framework AssetsLibrary -framework MobileCoreServices -framework Photos -weak_framework CFNetwork -weak_framework IOKit -weak_framework CoreFoundation -rpath @executable_path/Frameworks /Users/krasilnikov_as/ios/TestProject/obj/iPhone/Debug/mtouch-cache/libPDF_iOS.a /Users/krasilnikov_as/ios/TestProject/obj/iPhone/Debug/mtouch-cache/libHockeySDK.a /Library/Frameworks/Xamarin.iOS.framework/Versions/9.8.1.4/SDKs/MonoTouch.iphoneos.sdk/usr/lib/libmonosgen-2.0.a /Library/Frameworks/Xamarin.iOS.framework/Versions/9.8.1.4/SDKs/MonoTouch.iphoneos.sdk/usr/lib/libxamarin-debug.a /Users/krasilnikov_as/ios/TestProject/obj/iPhone/Debug/mtouch-cache/TestProject.exe.arm64.o /Users/krasilnikov_as/ios/TestProject/obj/iPhone/Debug/mtouch-cache/Xamarin.iOS.dll.arm64.o /Users/krasilnikov_as/ios/TestProject/obj/iPhone/Debug/mtouch-cache/mscorlib.dll.arm64.o /Users/krasilnikov_as/ios/TestProject/obj/iPhone/Debug/mtouch-cache/System.dll.arm64.o /Users/krasilnikov_as/ios/TestProject/obj/iPhone/Debug/mtouch-cache/System.Xml.dll.arm64.o /Users/krasilnikov_as/ios/TestProject/obj/iPhone/Debug/mtouch-cache/System.Core.dll.arm64.o /Users/krasilnikov_as/ios/TestProject/obj/iPhone/Debug/mtouch-cache/Cross.Core.dll.arm64.o /Users/krasilnikov_as/ios/TestProject/obj/iPhone/Debug/mtouch-cache/PCLStorage.Abstractions.dll.arm64.o /Users/krasilnikov_as/ios/TestProject/obj/iPhone/Debug/mtouch-cache/SQLite.Net.dll.arm64.o /Users/krasilnikov_as/ios/TestProject/obj/iPhone/Debug/mtouch-cache/System.Net.Http.dll.arm64.o /Users/krasilnikov_as/ios/TestProject/obj/iPhone/Debug/mtouch-cache/GalaSoft.MvvmLight.Extras.dll.arm64.o /Users/krasilnikov_as/ios/TestProject/obj/iPhone/Debug/mtouch-cache/Microsoft.Practices.ServiceLocation.dll.arm64.o /Users/krasilnikov_as/ios/TestProject/obj/iPhone/Debug/mtouch-cache/ModernHttpClient.dll.arm64.o /Users/krasilnikov_as/ios/TestProject/obj/iPhone/Debug/mtouch-cache/System.Xml.Linq.dll.arm64.o /Users/krasilnikov_as/ios/TestProject/obj/iPhone/Debug/mtouch-cache/System.Runtime.Serialization.dll.arm64.o /Users/krasilnikov_as/ios/TestProject/obj/iPhone/Debug/mtouch-cache/PDFLibrary.dll.arm64.o /Users/krasilnikov_as/ios/TestProject/obj/iPhone/Debug/mtouch-cache/SQLite.Net.Platform.XamarinIOS.Unified.dll.arm64.o /Users/krasilnikov_as/ios/TestProject/obj/iPhone/Debug/mtouch-cache/HockeySDK.dll.arm64.o /Users/krasilnikov_as/ios/TestProject/obj/iPhone/Debug/mtouch-cache/Calabash.dll.arm64.o /Users/krasilnikov_as/ios/TestProject/obj/iPhone/Debug/mtouch-cache/PCLStorage.dll.arm64.o /Users/krasilnikov_as/ios/TestProject/obj/iPhone/Debug/mtouch-cache/registrar.arm64.o /Users/krasilnikov_as/ios/TestProject/obj/iPhone/Debug/mtouch-cache/main.arm64.o /Library/Frameworks/Xamarin.iOS.framework/Versions/9.8.1.4/SDKs/MonoTouch.iphoneos.sdk/usr/lib/libmono-profiler-log.a -lc++ -pie -lz -liconv -lc++ -lz -liconv -lc++ -lrdrjacarta_woiR301 -lz -liconv -lc++ -lc++ -lSystem /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/7.3.0/lib/darwin/libclang_rt.ios.a -F..
MTOUCH: error MT5210: Native linking failed, undefined symbol: _SCardBeginTransaction. Please verify that all the necessary frameworks have been referenced and native libraries are properly linked in.
MTOUCH: error MT5210: Native linking failed, undefined symbol: _SCardConnect. Please verify that all the necessary frameworks have been referenced and native libraries are properly linked in.
MTOUCH: error MT5210: Native linking failed, undefined symbol: _SCardDisconnect. Please verify that all the necessary frameworks have been referenced and native libraries are properly linked in.
MTOUCH: error MT5210: Native linking failed, undefined symbol: _SCardEndTransaction. Please verify that all the necessary frameworks have been referenced and native libraries are properly linked in.
MTOUCH: error MT5210: Native linking failed, undefined symbol: _SCardEstablishContext. Please verify that all the necessary frameworks have been referenced and native libraries are properly linked in.
MTOUCH: error MT5210: Native linking failed, undefined symbol: _SCardGetStatusChange. Please verify that all the necessary frameworks have been referenced and native libraries are properly linked in.
MTOUCH: error MT5210: Native linking failed, undefined symbol: _SCardListReaders. Please verify that all the necessary frameworks have been referenced and native libraries are properly linked in.
MTOUCH: error MT5210: Native linking failed, undefined symbol: _SCardReconnect. Please verify that all the necessary frameworks have been referenced and native libraries are properly linked in.
MTOUCH: error MT5210: Native linking failed, undefined symbol: _SCardReleaseContext. Please verify that all the necessary frameworks have been referenced and native libraries are properly linked in.
MTOUCH: error MT5210: Native linking failed, undefined symbol: _SCardStatus. Please verify that all the necessary frameworks have been referenced and native libraries are properly linked in.
MTOUCH: error MT5210: Native linking failed, undefined symbol: _SCardTransmit. Please verify that all the necessary frameworks have been referenced and native libraries are properly linked in.
MTOUCH: error MT5210: Native linking failed, undefined symbol: _USE_CACHE_DIR. Please verify that all the necessary frameworks have been referenced and native libraries are properly linked in.
MTOUCH: error MT5210: Native linking failed, undefined symbol: _g_rgSCardT0Pci. Please verify that all the necessary frameworks have been referenced and native libraries are properly linked in.
MTOUCH: error MT5210: Native linking failed, undefined symbol: _g_rgSCardT1Pci. Please verify that all the necessary frameworks have been referenced and native libraries are properly linked in.
MTOUCH:  warning MT5215: References to 'sqlite3' might require additional -framework=XXX or -lXXX instructions to the native linker
MTOUCH:  warning MT5215: References to 'kernel32' might require additional -framework=XXX or -lXXX instructions to the native linker
MTOUCH: error MT5201: Native linking failed. Please review the build log and the user flags provided to gcc: -lc++ -lz -liconv -lstdc++ -L../CPROCSP.framework/readers/Aladdin -lrdrjacarta_woiR301 -force_load ../CPROCSP.framework/readers/Aladdin/librdrjacarta_woiR301.a -lz -liconv -lstdc++ -v
MTOUCH: error MT5202: Native linking failed. Please review the build log.


Может кто-то сталкивался? Как это можно вылечить? Может я что-то не так делаю?
Если нужно могу приложить любые логи, которые необходимы.

P.S.:
Подключено в проект как Native References.
Пробовал подключать как две различных ссылки (libCPROCSP.a и librdrjacarta_woiR301.a), так и через параметры -L и -l для CPROCSP.
Сборку пробую как x64, так и armv7.
В ресурсы приложения все ресурсы фреймворка положил.

Окружение:
OS: OS X EL Capitan 10.11.5
Studio: Xamarin Studio 6.0.1.9
Xamarin.iOS: 9.8.1.4
Mono: 4.4.1
Offline lexd5  
#8 Оставлено : 27 июня 2016 г. 14:57:25(UTC)
lexd5

Статус: Новичок

Группы: Участники
Зарегистрирован: 15.10.2014(UTC)
Сообщений: 6
Российская Федерация
Откуда: Ижевск

Победил большую часть ошибок, добавив в проект одновременно библиотеки: librdrpcsc_empty.o и librdrjacarta_woiR301.a
В итоге теперь одна ошибка:
Код:
MTOUCH: Error MT5210: Native linking failed, undefined symbol: _USE_CACHE_DIR. Please verify that all the necessary frameworks have been referenced and native libraries are properly linked in. (MT5210)


Что с ней можно сделать?

На ObjC я бы решил проблему так:
Код:
extern bool USE_CACHE_DIR;
bool USE_CACHE_DIR = false;


Но как быть в случае C#?
Offline lexd5  
#9 Оставлено : 27 июня 2016 г. 15:39:17(UTC)
lexd5

Статус: Новичок

Группы: Участники
Зарегистрирован: 15.10.2014(UTC)
Сообщений: 6
Российская Федерация
Откуда: Ижевск

Все, проблему решил, правда не самым красивым образом.
А именно, создал пустую библиотеку (libEmpty.a), в которой присутствует всего две строки:
Код:
extern bool USE_CACHE_DIR;
bool USE_CACHE_DIR = false;

После чего собрал ее и добавил в Xamarin проект.
Может кому-нибудь это сэкономит несколько часов времени :)
Offline lexd5  
#10 Оставлено : 7 сентября 2016 г. 10:04:33(UTC)
lexd5

Статус: Новичок

Группы: Участники
Зарегистрирован: 15.10.2014(UTC)
Сообщений: 6
Российская Федерация
Откуда: Ижевск

Всем доброго времени суток!
Столкнулся с очередной проблемой при работе с MonoTouch, связанной с выполнением скрипта ConfigureApplication.

Изначально выполнение program_checksum.sh не приносило никакого результата, так как оно падало с ошибкой на строках
Код:
dd if="$5" ibs=$main_off skip=1 of=${TMP_FILE}.1
dd if=${TMP_FILE}.1 ibs=$size count=1 of=$TMP_FILE


Добавил дополнительное логирование, в результате чего получил следующие значения:
Код:
Подписываемая архитектура: armv7.
var_offset = 0x01a96bd0
main_addr = 0181AA18
main_addr = 25274904
text_vmaddr = 16384, text_offset = 16384, text_size = 25243832, var_offset = 27864016, program name = <program path>
size = 25243832 - 25274904 + 16384 = -14688
main_addr = 25274904, main_off = 25274903, size = -14688
3+1 records in
168494+1 records out
86269353 bytes transferred in 0.610975 secs (141199475 bytes/sec)
dd: ibs must be between 1 and 9223372036854775807
Удаление файлов: /tmp/hack_exe.tHIBsP и /tmp/hack_exe.tHIBsP.1
EmbedChecksum -14688 27880400 F335A912E3798C20CC22D974C4A63AA228A563B0A239A349F99D5202D8C91EBB <program path>


Проверил эти значения вручную:
Код:
otool -l -arch arm64 <Путь к бинарнику>

В итоге получил следующие данные (лишнее убрал)
Код:
segname __TEXT
   vmaddr 0x0000000100000000
   vmsize 0x0000000001acc000
   fileoff 0

segname __DATA
   vmaddr 0x0000000101acc000
   vmsize 0x00000000001fc000
   fileoff 28098560

sectname __text
   segname __TEXT
   addr 0x0000000100004000
   size 0x00000000018416f8
   offset 16384


То есть расчет то идет верно, но при этом size получается отрицательным :(

Что с этим делать не совсем понятно и почему при расчете используется значение взятое из __text.__TEXT.size, а не из __TEXT.vmsize, а в адресе наоборот?
Если это изменить, то проблема с size пропадает, но, естественно, получается невалидная чек сумма.

Ну и собственно вопрос как быть и что делать?
Кто-нибудь подписывал уже свои сборки из Xamarin, как решали эту проблему?

P.S.
Поправьте плз в инструкции MonoDevelopBuild.txt:
Код:
<путь к собранному приложению> -- путь к собранному приложению. Например, если проект называется testcrypt и находится по пути path, путь скорее всего будет таким:
"/<path>/testcrypt/bin/iPhoneSimulator/Debug/testcrypt.app" 

на
Код:
<путь к собранному приложению> -- путь к собранному приложению. Например, если проект называется testcrypt и находится по пути path, путь скорее всего будет таким:
"/<path>/testcrypt/bin/iPhoneSimulator/Debug/testcrypt.app/testcrypt" 

Это не критично, просто для полноты.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.