История версий КриптоПро Ключ SDK Android
Версия 1.1.975 от 31.10.2024
- Добавлена возможность сохранить на сервере тип ключевого носителя (устройство, Рутокен)
Примечание
По умолчанию данная возможность отключена в SDK. Сведения о типе ключевого носителя передаются на сервер при вызове следующих методов:
Для включения передачи сведений о ключевом носителе необходимо вызвать метод CryptoProDSS.setKeyCarrierTypeNotification (true).
Версия серверного ПО КриптоПро Ключ должна быть 2.0.4762 (от 16.09.2024) и новее.
- Улучшен сценарий автоподписи
- Исправлена обработка ошибки при отсутствии разрешений на доступ к NFC
- Добавлен метод getRawParameters в класс AuditRecord, позволяющий получить дополнительные сведения об истории операций
- Добавлена возможность указать расширения при создании запроса на сертификат
Примечание
В класс Cert добавлены методы:
Данные методы позволяют передать расширения запроса на сертификат при создании запроса из мобильного приложения.
- Оптимизировано чтение сертификатов на Рутокен ЭЦП 3.0 (NFC)
- Обновлены иконки на экране взаимодействия с Рутокен ЭЦП 3.0 (NFC)
Примечание
В ресурсы SDK добавлены Animated Drawable:
ic_device_anim_nfc_dark.xml
ic_device_anim_nfc_light.xml
ic_device_anim_usb_dark.xml
ic_device_anim_usb_light.xml
ic_device_anim_wait_dark.xml
ic_device_anim_wait_light.xml
Экран взаимодействия с NFC отображает разные иконки в зависимости от типа подключенного носителя.
- Обновлена зависимость ru.rutoken.rtpcscbridge:rtpcscbridge до версии 1.1.1
- Добавлена поддержка сценария регистрации учетной записи пользователя по сертификату на Рутокен ЭЦП 3.0 (NFC)
- Изменен callback метода Cert.installCertificateExternal. Метод возвращает сведения об установленном сертификате.
Версия 1.1.881 от 23.07.2024
- Исправлена работа метода checkIfInstalled в различных сценариях.
- Исправлена работа метода signRequest в различных сценариях.
Примечание
Исправлена проверка существования ранее созданного ключа подписи.
Если метод вернул ошибку KEY_ALREADY_EXIST
, это означает, что на данном устройстве
уже был создан ключ подписи для запроса на сертификат, переданного в параметрах метода
signRequest.
Для повторного создания ключа подписи и подписи запроса на сертификат необходимо удалить
ранее созданный ключ подписи. Для удаления ключа подписи необходимо
выполнить следующие действия:
- в результате метода SigningKey.listKeys найти ключ подписи под идентификатору запроса на сертификат (RID),
- удалить найденный ключ при помощи метода SigningKey.deleteKeyEx.
- Из манифеста SDK удалено разрешение
READ_PHONE_STATE
. - Исправлена работа SDK в тихом (silent) режиме (без отображения UI).
- Добавлены настройки отображения документов.
Примечание
КриптоПро DSS версии 2.0.4646 и новее дополнительно позволяет настроить:
Если операция состоит из одного документа, то по умолчанию метод sign.SignMt отобразит экран с плашкой, содержащий краткие сведения о документе и/или операции. Для просмотра документа необходимо нажать кнопку "Показать документ". Настройками сервера и/или параметрами REST API можно указать методу sign.signMt отображать документ первым экраном. На экране просмотра документа будут доступны кнопки "Подтвердить" и "Отказаться". С экрана просмотра документа можно перейти к экрану с краткими сведениями о документе и/или операции. Описание настройки
Параметрами метода sign.SignMt можно разрешить частичное подтверждение операций. В данном режиме пользователь на экране со списком документов, входящих в операцию, может выбрать часть документов, которые он подтверждает. Данным поведением можно управлять настройками сервера и параметрами REST API. Описание настройки
- Улучшена поддержка темной темы.
- Исправлены ошибки обработки больших документов (более 100Mb).
Примечание
Загрузка/выгрузка больших документов могли приводить к ошибкам Out-Of-Memory.
- Добавлен код ошибки
ERROR_NO_INTERNET
- "Нет сети". - В структуру ParamsDss добавлено поле
activationCodeLength
- длина кода активации для QR-кода. Обновлен экран отображения документов.
Исправлен сценарий "Пользователь забыл пароль".
Примечание
На экран ввода пароля на ключ аутентификации может быть добавлена кнопка "Забыли пароль".
Для отображения кнопки необходимо вызвать метод CryptoProDSS.setForgotPasswordButtonVisibility.
При нажатии на кнопку "Забыли пароль" SDK возвращает ошибку USER_FORGOT_PASSWORD
.
Восстановить пароль на ключи аутентификации невозможно. Приложение может предложить пользователю удалить и зарегистировать учетную запись повторно. Повторная регистрация учетной записи может быть представлена как обновление учетной записи.
- Исправлено восстановление доступа к ключам подписи, хранимым на мобильном устройстве, после пересоздания учетной записи пользователя
- Улучшено логирование.
- Обновлен метод инициализации SDK.
Примечание
Следующие методы инициализации SDK являются устаревшими и не должны использоваться:
init(@NonNull Context activity, @Nullable HashMap<String, String[]> trustedApps, @NonNull final SdkInitCallback sdkInitCallback)
,init(@NonNull Context context, @NonNull final SdkCryptoProDssInitCallback sdkInitCallback)
.
Версия 1.1.838 от 29.02.2024
- Обновлен метод инициализации SDK
Методы CryptoProDSS.init и CryptoProDSS.initDSS помечены как Deprecated
.
Добавлен новый метод инициализации SDK CryptoProDSS.init. При успешной инициализации SDK метод возвращает CSPInitCode.initOk. В случае ошибок инициализации SDK метод вернет один из следующих кодов ошибок:
- initCertNotInstalled - при ошибках установки корневых сертификатов TLS
- initCspNotInitialized - при ошибках инициализации крипто провайдера
- initLockScreenNotInstalled - на устройстве пользователя не установлен экран блокировки
- initDeviceRooted - пользователь работает с правами root
При обнаружении проблем с безопасностью использования SDK отобразит UI со список обнаруженных угроз. Пользователь может согласиться или отказаться от дальнейшего использования SDK, нажав соответствующую кнопку.
Проверить успешность инициализации SDK можно при помощи метода CryptoProDSS.isInitialized.
- Изменен список зависимостей SDK
Добавлена зависимость:
implementation 'com.github.scottyab:rootbeer:0.1.0'
Пакет используется при проверки безопасности использования SDK.
- Унифицированы коды ошибок SDK
Описание кодов ошибок приведено в разделе Обработка ошибок
- Обновлен callback
SdkMtOperationWithSuspendCallback
в методеsignMt
В Callback добавлен метод onPartialOperationSuccessful
. Метод будет вызван
в случае возникновения ошибок обработки одного или нескольких документов в пакете.
Наиболее распространенный сценарий, в котором будет вызван метод расшифрования пакета документов на ключе, хранящемся на устройстве пользователя или смарт-карте. Например, прикладная система передает пакет документов, в котором один из документов зашифрован на недоступном пользователю сертификате. В этом случае SDK сможет успешно расшифровать и отправить на сервер часть документов.
- Улучшена поддержка NFC-токенов Рутокен