Re: SDK для Рутокен ЭЦП

1. Для записи в OID даты начала и окончания действия ключа, вам необходимо значение закодировать в ASN1. За подробностями Вы можете обратиться в стандарт ASN1.
2. Да, такая возможность должна быть. Но за деталями по этому вопросу Вам лучше обратиться в КриптоПро

Re: SDK для Рутокен ЭЦП

Философский вопрос: возможно ли сгенерировать на Рутокен ЭЦП 2.2 ключевую пару ГОСТ 34.10-256, а затем экспортировать закрытый ключ? В открытом или зашифрованном виде – не так важно.
Провел эксперимент. Сгенерировал ключевую пару приватный ключ которой имеет атрибуты: CKA_EXTRACTABLE==TRUE, CKA_SENSITIVE==FALSE. Ключи были созданы успешно. Однако, атрибуты были изменены: CKA_EXTRACTABLE==FALSE, CKA_SENSITIVE==FALSE. Хорошо, если CKA_SENSITIVE==FALSE значение атрибута CKA_VALUE можно прочитать. Однако, метод C_GetAttributeValue возвращает CKR_ATTRIBUTE_TYPE_INVALID. Подскажите, пожалуйста, что не так?

Re: SDK для Рутокен ЭЦП

Видимо служба поддержки впала в зимнюю спячку :)

Re: SDK для Рутокен ЭЦП

Здравствуйте, amid65.

Приносим извинения. Мы не получили оповещения о вашем первом сообщении, зато о втором - получили.

По вашему вопросу - эти ключи являются неизвлекаемыми. Извлечь или экспортировать их никак не получится.

(2019-01-17 14:00:31 отредактировано Герман К)

Re: SDK для Рутокен ЭЦП

Подскажите как используя pkicore  добавить расширение в запрос сертификата
    1.3.6.1.4.1.311.20.2: Флаги = 0, Длина = a
    Имя шаблона сертификата (Тип сертификата)
        User

Re: SDK для Рутокен ЭЦП

Добрый день, Герман К.

Ответили Вам на этот вопрос по почте.

Re: SDK для Рутокен ЭЦП

Есть в pkicore функция расчета "Идентификатора ключа субъекта"?   
2.5.29.14: Флаги = 0, Длина = 16
    Идентификатор ключа субъекта
        30 a5 ee 64 f5 a5 93 96 8b 2f c8 e9 34 8d 18 1c fc cf ea 9c

Re: SDK для Рутокен ЭЦП

Добрый день, Герман К.

Ответили Вам на этот вопрос по почте.

(2020-02-12 12:46:55 отредактировано ATchernov)

Re: SDK для Рутокен ЭЦП

Добрый день, собрались использовать на iOS CryptoPro 5.0 с Рутокеном BT, цепляли все согласно инструкции из Readers.txt внутри фреймворка:

4.  Для сборки приложения с поддержкой bluetooth-токена Рутокен ЭЦП Bluetooth
    от компании Актив добавьте в линковку фреймворки
    RtPKCS11ECP.framework, RtPcsc.framework, RDRRtSupCp.framework
    из Рутокен SDK (http://www.rutoken.ru/developers/sdk/), а также системные фреймворки
    Security.framework и ExternalAccessory.framework.
    Это делается аналогично п.3 инструкции по сборке примера.

    Укажите путь к фреймворкам из SDK Рутокен в XCode (Targets\Build Settings\Framework Search Path).

    Добавьте в параметры цели сборки в "Other linker flags" флаг "-all_load".
    Добавьте в линковку согласно п.3 инструкции библиотеку libstdc++.6.0.9.tbd
    (актуально до тех пор, пока Rutoken SDK собирается с libstdc++, а не libc++).
    
    Добавьте в параметры цели сборки флаг «-force_load» (Targets\Build Settings\Other Linker Flags):
    -force_load /путь/к фреймворкам/рутокен_sdk/rtpkcs11ecp.framework/rtpkcs11ecp
    -force_load /путь/к фреймворкам/рутокен_sdk/RDRRtSupCp.framework/RDRRtSupCp
    -force_load /путь/к фреймворкам/рутокен_sdk/RtPcsc.framework/RtPcsc

    Добавьте в Info.plist вашего приложения:
 
        <key>UISupportedExternalAccessoryProtocols</key>
        <array>
          <string>com.aktivco.rutokenecp</string>
        </array>

Основной проект на swift. Просто подцепили фреймворки - проект собирается. Делаем импорт хидеров в ObjC-часть проекта:

#import <RDRRtSupCp/rtSupCP.h>
@implementation ReaderHelper
//...
@end

Компилятор ругается внутри rtSupCP.h на не найденный заголовочник:

#include "sup_sys.h" 

Попробовали собрать пример без CryptoPro с гитхаба - массово ругается на подключение хидеров openssl, оно и понятно - в актуальной iOS SDK их вроде уже нет:

/.../rutoken-demobank-ios-master/Token.m:4:9: 'openssl/x509.h' file not found
/.../rutoken-demobank-ios-master/example/demobank/PinEnterViewController.m:4:9: 'openssl/cms.h' file not found

Подскажите как дальше быть?
Какие у нас есть варианты подружить между собой КриптоПро и Рутокен на актуальных версиях iOS?

Re: SDK для Рутокен ЭЦП

ATchernov, здравствуйте!

Давайте разбираться.

Демобанку для iOS (https://github.com/AktivCo/rutoken-demobank-ios) не нужен КриптоПро. Они используется интерфейс PKCS#11 и внутренние криптоядро токена. Чтобы при сборке компилятор не ругался на  openssl - нужно добавить следующие фремйворки:

Required frameworks:

mobile/ios/pcsc/lib/RtPcsc.framework (Rutoken SDK)
mobile/ios/pkcs11/lib/rtpkcs11ecp.framework (Rutoken SDK)
openssl/rtengine/bin/ios-arm64/rtengine.framework (Rutoken SDK)

Required libraries:
openssl/openssl-shared-1.1/ios-arm64/* (Rutoken SDK)

Если все же хотите работать с контейнерами КриптоПро, в проект нужно еще добавить и настроить CPROCSP.framework. "sup_sys.h" в берется из их SDK.

CPROCSP.framework доступен для загрузки по адресу https://www.cryptopro.ru/products/csp/downloads. Настройка CPROCSP.framework производится в соответствии с CPROCSP.framework/ReadMe.txt.

Пример работы с ним в SDK: <sdk>\mobile\ios\CryptoPro\samples\SecureMessaging

Re: SDK для Рутокен ЭЦП

Спасибо за оперативность, разбираемся

Выкачали, проверили последние версии CryptoPro (вплоть до 4.0 без поддержки iOS 13), нигде в составе нет "sup_sys.h", вероятно он в совсем старых версиях был

Собрали благополучно пример SecureMessaging, (получилось потому что там нигде напрямую не инклудится "rtSupCP.h" и как следствие "sup_sys.h" ему не нужен)

Запускаем, цепляем к устройству токен по BT, ищем ридеры в приложении, в рантайме получаем ошибку на загрузку динамической библиотеки "sup_lib", мол не найдена:

testiphoneappl[11511:2319240] sup_lib 13:44:44.302421 support_n_dlopen:45 p:11511 t:0x0x1a4da9078 support_n_dlopen(dummy.so, 6) = 0x0 fail No such file or directory(2)

Соответственно список ридеров пустой

Re: SDK для Рутокен ЭЦП

ATchernov, убедитесь пожалуйста, что токен включается перед запуском приложения.

А в CPROCSP.framework/Resources/config.ini выставлен:

[Parameters] # Параметры провайдера
dynamic_readers = 1

Re: SDK для Рутокен ЭЦП

Спасибо большое, все получилось, просто устройство было на темной теме и текст шрифта в демке был белым в пикере и логах.