Статус: Новичок
Группы: Участники
Зарегистрирован: 31.05.2013(UTC) Сообщений: 2
|
Интересует возможно ли каким-то образом использовать CryptoPro при разработке приложения на Monotouch. Возможно есть какие-то типовые решения?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 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)
| Причина: Не указана |
Татьяна ООО Крипто-Про |
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 31.05.2013(UTC) Сообщений: 2
|
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 03.09.2013(UTC) Сообщений: 1 
|
добрый день. работаем над интеграцией Вашего фреймворка в mono проект. Автор: Татьяна  -переименовать фреймворк в libCPROCSP.a, включить его в список либ, с которыми линковаться,
совсем непонятен первый пункт этой инструкции для подключения фреймворка к Mono!!! это как? можно подробней?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.02.2008(UTC) Сообщений: 1,491 Откуда: Крипто-Про
Поблагодарили: 40 раз в 37 постах
|
имеется в виду что нужно переименовать объектный файл CPROCSP, который является реализацией фреймворка |
Татьяна ООО Крипто-Про |
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.02.2008(UTC) Сообщений: 1,491 Откуда: Крипто-Про
Поблагодарили: 40 раз в 37 постах
|
В состав фреймворка была включена инструкция по сборке в MonoDevelop, она войдёт во все следующие релизы. Выражаю благодарность пользователю turbin за написание инструкции. |
Татьяна ООО Крипто-Про |
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 15.10.2014(UTC) Сообщений: 6  Откуда: Ижевск
|
Всем доброго времени суток! Столкнулся с проблемой при подключении CryptoPro к Xamarin.iOS Шел точно по инструкции, файл лицензии сгенерировал, все файлы разместил вроде как корректно. Сам 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
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 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#?
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 15.10.2014(UTC) Сообщений: 6  Откуда: Ижевск
|
Все, проблему решил, правда не самым красивым образом. А именно, создал пустую библиотеку (libEmpty.a), в которой присутствует всего две строки: Код:extern bool USE_CACHE_DIR;
bool USE_CACHE_DIR = false;
После чего собрал ее и добавил в Xamarin проект. Может кому-нибудь это сэкономит несколько часов времени :)
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 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"
Это не критично, просто для полноты.
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close