Показать/Скрыть содержание

    Обработка ошибок (iOS)

    В данном разделе рассмотрены основные коды ошибок SDK, сценарии их возникновения и обработки. Полный список классов ошибок приведен в разделе Типы ошибок.

    При обработке ошибок необходимо обратить внимание на следующие аспекты:

    • Закрытие UI
    • Ошибки использования ключей аутентификации
    • Ошибки регистрации нового устройства
    • Сетевые ошибки
    • Ошибки взаимодействия с сервисом

    Большинство методов SDK используют ключи аутентификации и делают обращения на сервер, что требует корректной обработки сетевых ошибок и ошибок использования ключей аутентификации.

    Закрытие UI

    Если пользователь закроет UI SDK, то SDK не завершит соответствующую операцию и вернет ошибку USER_CANCELED_FORM (DSSCancelType.userCancel / DSSCancelType.tokenUserCancel) (287).

    Список экранов SDK, при закрытии которых будет возвращена ошибка:

    • новый пароль на ключи аутентификации,
    • ввод пароля для доступа к ключам аутентификации,
    • подтверждение привязки нового устройства к учетной записи,
    • сканирование QR-кода,
    • подтверждение операций,
    • ввод ПИН-кода Рутокен,
    • ввод PUK-кода Рутокен,
    • подтверждение/отклонение привязки устройства к учетной записи при помощи имеющегося устройства,
    • экран с QR-кодом для привязки устройства к учетной записи при помощи имеющегося устройства.

    Ошибки использования ключей аутентификации

    Большинство вызовов API SDK связаны с обращением к сервисам КриптоПро Ключ. Каждое обращение к сервису требует аутентификации, задействующей ключи аутентификации. Доступ к ключам аутентификации требует взаимодействия с пользователем (ввод пароля или биометрии). Также необходимо учитывать, что ключи аутентификации имеют срок действия, состояние и связаны с учетной записью пользователя на сервисе.

    Ошибка Код Описание
    DSSServerError.unauthorized.userBlocked(DSSServerErrorType.unauthorized(DSSServerError.unauthorized.userBlocked)) 277 Ошибка аутентификации. Учетная запись пользователя заблокирована на сервере. Получен HTTP-ответ со статусом 401.
    DSSServerError.unauthorized.userNotFound (DSSServerErrorType.unauthorized(DSSServerError.unauthorized.userNotFound)) 278 Ошибка аутентификации. Учетная запись пользователя не найдена или удалена на сервере. Получен HTTP-ответ со статусом 401.
    DSSServerError.unauthorized.deviceBlocked (DSSServerErrorType.unauthorized(DSSServerError.unauthorized.deviceBlocked)) 280 Ошибка аутентификации. Мобильное устройство пользователя заблокировано на сервере. Получен HTTP-ответ со статусом 401.
    DSSSessionError.keyExpired (DSSSessionError.keyExpired) 5 Истек срок действия ключей аутентификации пользователя
    DSSError.kidNotFound (DSSError.kidNotFound) 12 Не удалось загрузить ключи аутентификации. Ключи с указанным KID не найдены.
    KEYS_BLOCKED_FOR_ERROR_ATTEMPTS (нет аналога!) 20 Ключи аутентификации временно заблокированы из-за превышения попыток ввода пароля
    INVALID_KEY_ID (DSSServerErrorType.badRequest(DSSServerError.badRequest.invalidKeyId)) 271 Передан невалидный идентификатор ключей аутентификации (KID). Получен HTTP-ответ со статусом 400.
    REQUESTED_DSSServerError.unauthorized.userNotFound (DSSServerErrorType.badRequest(DSSServerError.badRequest.requestedUserNotFound)) 272 УЗ пользователя не найдена. Получен HTTP-ответ со статусом 400.
    DSSServerError.badRequest.invalidKeyState (DSSServerErrorType.badRequest(DSSServerError.badRequest.invalidKeyState)) 273 Статус ключей аутентификации не соответствует запрошенной операции. Получен HTTP-ответ со статусом 400.
    DSSServerError.unauthorized.invalidHmac (DSSServerErrorType.unauthorized(DSSServerError.unauthorized.invalidHmac)) 279 Ошибка аутентификации. Передан неверный код аутентификации. Получен HTTP-ответ со статусом 401.
    DSSEncryptError.functionFailed (DSSEncryptError.functionFailed) 230 Не удалось вычислить код аутентификации.
    JNI_FUN_FAILED (любой случай из enum DSSEncryptError) 216 Ошибка выполнения криптографической операции. Нативный код ошибки и описание содержится в описании.
    DSSServerError.unauthorized.invalidAuthenticationScheme (DSSServerErrorType.unauthorized(DSSServerError.unauthorized.invalidAuthenticationScheme)) 276 Ошибка аутентификации. Пользователю отключена аутентификация при помощи мобильного приложения. Получен HTTP-ответ со статусом 401.
    NOT_SAFE_USAGE_CANCELLED_BY_USER (enum CSPInitCode, но больше подходит слуай CSPInitCode.init_lockScreen_not_installed) 220 SDK не инициализирован. Пользователь запретил использовать API SDK, так как устройство не является безопасным.

    Ошибка NOT_SAFE_USAGE_CANCELLED_BY_USER возникает если SDK не был инициализирован или пользователь запретил использовать API SDK, так как устройство не является безопасным. Необходимо повторно вызвать метод SDKFramework.init

    При возникновении ошибок DSSServerError.unauthorized.userBlocked, DSSServerError.unauthorized.deviceBlocked необходимо обратиться к администратору КриптоПро Ключ для уточнения причин блокировки устройства.

    При возникновении ошибок DSSSessionError.keyExpired, DSSServerError.unauthorized.userNotFound, DSSServerError.unauthorized.userNotFound необходима повторная регистрация учетной записи пользователя и/или устройства пользователя.

    Ошибка DSSServerError.unauthorized.invalidAuthenticationScheme вызвана тем, что на сервере в учетной записи пользователя отключена аутентификация при помощи мобильного приложения. Необходимо обратиться к администратору КриптоПро Ключ.

    Ошибка DSSError.kidNotFound вызвана с тем, что в API SDK передан идентификатор ключей аутентификации KID, которых нет на устройстве.

    Ошибка DSSServerError.badRequest.invalidKeyState говорит о том, что устройство не находится в нужном состоянии для выполнения операции. Вероятнее всего не была завершена регистрация устройства и оно не находится в статусе ACTIVE. Необходимо актуализировать статус устройства Policy.getUserDevices и исходя из состояния устройства завершить регистрацию.

    Ошибка DSSServerError.unauthorized.invalidHmac вызвана неверным кодом аутентификации, отправленым на сервис. Ошибка может быть вызвана расхождением времени на клиенте и сервисе. В зависимости от настроек сервис допускается расхождение времени от 4 до 30 минут.

    Ошибка DSSEncryptError.functionFailed вызвана низкоуровневыми ошибками при вычислении кода аутентификации. Для устранения ошибки можно попробовать перезапустить приложение. Если ошибка не устранится, то может потребоваться повторная регистрация устройства на сервере.

    Ошибка JNI_FUN_FAILED вызвана низкоуровневыми ошибками криптографичесих операций. Для устранения ошибки можно попробовать перезапустить приложение. Если ошибка не устранится, то может потребоваться повторная регистрация устройства на сервере.

    Ошибки регистрации нового устройства

    В сценарии регистрации по QR-коду возможны следующие ошибки:

    • WRONG_QR (DSSAuthError.invalidQrCode) - отсканирован неверный QR-код. Требуется отсканировать QR-код созданный для регистрации мобильного приложения. Ошибка возникает при вызове метода Auth.kInit. (Изменил Auth.scanQR на kInit)
    • KINIT_NOT_LOADED (DSSQRCodeError.qrNotLoaded) - для вызова метода Auth.kinit требуется отсканировать QR-код. Ошибка может возникнуть если межды вызовами Auth.scanQR и Auth.kinit приложение было закрыто.
    • KINIT_ALREADY_USED (DSSServerErrorType.badRequest(DSSServerError.badRequest.kinitAlreadyUsed)) - отсканированный QR-код уже был использован или удален на сервере. Для устранения ошибки требуется создать новый QR-код.
    • USING_THAT_PROTECTION_TYPE_PERMITTED_BY_POLICY (DSSAuthError.biometricKeyProtectionImpossible / throw DSSAuthError.noPolicyKeyProtectionError) в метод Auth.kinit передан способ защиты ключей аутентификации ниже настроенного на сервере.

    В сценарии регистрации с уникальным идентификаторов (онлайн-регистрации) возможны следующие ошибки:

    • SELF_REGISTRATION_DISABLED (DSSAuthError.selfRegistrationImpossible) - онлайн-регистрация запрещена на сервере. Ошибка может возникнуть при вызове метода Auth.init.
    • USING_THAT_PROTECTION_TYPE_PERMITTED_BY_POLICY (DSSAuthError.biometricKeyProtectionImpossible / throw DSSAuthError.noPolicyKeyProtectionError) в метод Auth.init передан способ защиты ключей аутентификации ниже настроенного на сервере.

    Ошибка DSSServerError.badRequest.invalidKeyState (DSSAuthError.incorrectKeyStatus / (DSSServerErrorType.unauthorized(DSSServerError.unauthorized.invalidKeyState))) может возникнуть при вызове методов Auth.confirm, Auth.verify. Ошибка говорит о том, что состояние устройства на сервере не соответствует вызываемому методу. Если устройство находится в статусе Created, то необходимо вызвать метод Auth.confirm для перевода устройства в статус Installed или NotVerified. Новый статус устройства зависит от сценария регистрации. Если устройство находится в статусе NotVerified, то необходимо вызвать метод Auth.verify для перевода устройства в статус Active.

    Ошибка DSSServerError.unauthorized.invalidAuthenticationScheme (DSSServerErrorType.unauthorized(DSSServerError.unauthorized.invalidAuthenticationScheme)) вызвана тем, что на сервере в учетной записи пользователя отключена аутентификация при помощи мобильного приложения. Необходимо обратиться к администратору КриптоПро Ключ.

    Ошибка KEY_ALREADY_CONFIRMED (DSSServerErrorType.badRequest(DSSServerError.badRequest.keyAlreadyConfirmed)) говорит о том, что ожидалось состояние устройство Created. Необходимо актуализировать состояние устройства при помощи метода Policy.getUserDevices и, исходя из состояния устройства, завершить регистрацию.

    Ошибка INVALID_PROFILE_HMAC (DSSServerErrorType.badRequest(DSSServerError.badRequest.invalidProfileHmac)) говорит о том, что при вызове метода Auth.verify на сервере был отправлен неправильный код подтверждения привязки устройства. Необходимо актуализировать данные учетной записи и устройства при помощи метода Policy.getUserDevices и повторить вызов метода Auth.verify.

    Ошибка INVALID_VERIFICATION_NONCE (DSSServerErrorType.badRequest(DSSServerError.badRequest.invalidVerificationNonce)) говорит о том, что перед вызовом метода Auth.verify требуется отсканировать QR-код для подтверждения привязки устройства к учетной записи.

    Ошибка Код Описание
    SELF_REGISTRATION_DISABLED (DSSAuthError.selfRegistrationImpossible) 1 Настройками сервера запрещена Online-регистрация пользователя. Ошибку возвращает вызов метод Auth.init()
    DSSError.kidNotFound (DSSError.kidNotFound) 12 Не найдены ключи аутентификации по указанному идентификатору KID.
    WRONG_QR (DSSAuthError.invalidQrCode) 19 Не верный QR-код. Не удалось прочитать данные из QR-кода.
    QR_NOT_IN_BASE64 (DSSAuthError.wrongQrString) 21 Не удалось прочитать QR-код.
    DSSServerError.badRequest.invalidKeyState (DSSAuthError.incorrectKeyStatus / (DSSServerErrorType.unauthorized(DSSServerError.unauthorized.invalidKeyState))) 273 Не верный статус ключей аутентификации.
    USING_THAT_PROTECTION_TYPE_PERMITTED_BY_POLICY (DSSAuthError.biometricKeyProtectionImpossible / throw DSSAuthError.noPolicyKeyProtectionError) 29 Выбранный способ защиты ключей аутентификации не соответствует требованиям заданным на сервере.
    KEY_ALREADY_CONFIRMED (DSSServerErrorType.badRequest(DSSServerError.badRequest.keyAlreadyConfirmed)) 269 Установка ключей аутентификации уже была выполнена. Получен HTTP-ответ со статусом 400. Ошибку может вернуть метод Auth.confirm().
    KINIT_ALREADY_USED (DSSServerErrorType.badRequest(DSSServerError.badRequest.kinitAlreadyUsed)) 270 QR-код для привязки УЗ уже был использован или удален. Получен HTTP-ответ со статусом 400.
    KINIT_NOT_LOADED (DSSQRCodeError.qrNotLoaded) 46 В сценарии регистрации устройства по QR-коду не был отсканирован QR-код. Ошибку возвращает вызов метод Auth.kinit()
    JNI_FUN_FAILED (любой случай из enum DSSEncryptError) 216 Ошибка выполнения криптографической операции. Нативный код ошибки и описание содержится в описании.
    INVALID_PROFILE_HMAC (DSSServerErrorType.badRequest(DSSServerError.badRequest.invalidProfileHmac)) 274 Ошибка подтверждения УЗ пользователя. Передан неверный код подтверждения УЗ. Получен HTTP-ответ со статусом 400.
    INVALID_VERIFICATION_NONCE (DSSServerErrorType.badRequest(DSSServerError.badRequest.invalidVerificationNonce)) 275 Ошибка подтверждения УЗ пользователя. Передан неверный идентификатор из QR-кода. Получен HTTP-ответ со статусом 400.
    DSSServerError.unauthorized.invalidAuthenticationScheme (DSSServerErrorType.unauthorized(DSSServerError.unauthorized.invalidAuthenticationScheme)) 276 Ошибка аутентификации. Пользователю отключена аутентификация при помощи мобильного приложения. Получен HTTP-ответ со статусом 401.

    Сетевые ошибки

    Серверные ошибки представляют из себя структуру DSSServerError, которая имеет следующие поля:

    public let kind: DSSServerErrorType
    public var description: String?
    
    Поле Тип Описание
    kind DSSServerErrorType перечисление возращаемых ошибок. Серверная ошибка маппируется в конкретный случай ошибки или в случай unknown, если такого не было в списке, и возвращается из SDK.
    description String описание конкретной ошибки, полученное от сервера.
    Примечание

    В случае, если описание ошибки description не было получено от сервера, будет взято описание ошибки из поля errorDescription ошибки SDK.

    Тип DSSServerErrorType

    Ошибка Описание
    otherError прочие ошибки, например, отсутствие соединения
    serverError ошибки со http кодом 500, 502, 503
    unauthorized ошибки со http кодом 401
    badRequest ошибки со http кодом 400

    Пример перехвата одного из типов серверной ошибки:

    do {
        //вызов метода
    } catch let error as DSSServerError {
        if case .unauthorized(.deviceBlocked) = error.kind {
            //обработка ошибки
        }
    }
    

    Перечисленные ниже ошибки возникают в тех случаях, когда на запрос к сервису был получен ответ с HTTP-статусом, отличным от 200.

    Ошибка Код Описание
    <!-- REQUEST_WAS_LARGER 413 Переданные на сервер данные превышают ограничения, установленные на сервере. Получен HTTP-ответ со статусом 413. -->
    INTERNAL_SERVER_ERROR (DSSServerErrorType.serverError(DSSServerError.serverError.internalServerError)) 500 Получен HTTP-ответ со статусом 500.
    BAD_GATEWAY (DSSServerErrorType.serverError(DSSServerError.serverError.badGateway)) 502 Получен HTTP-ответ со статусом 502.
    SERVICE_UNAVAILABLE (DSSServerErrorType.serverError(DSSServerError.serverError.serviceUnavailable)) 503 Получен HTTP-ответ со статусом 503.
    RESPONSE_CODE_NOT_OK (DSSServerErrorType.badRequest(DSSServerError.badRequest.unknown) / (DSSServerErrorType.unauthorized(DSSServerError.unauthorized.unknown))) 876 Получен HTTP-ответ со статусом 400, 401 и неизвестным прикладным кодом ошибки. Код ошибки и описание ошибки содержится в описании.
    DESERIALIZATION_ERROR (DSSLocalNetError.mapping) 3 Ошибка десериализации ответа сервера.
    UNEXPECTED_NETWORK_ERROR (DSSServerErrorType.otherError(DSSServerError.otherError.inner)) 2 Произошла ошибка при установлении соединения с сервером. Описание ошибки содержится в описании.
    NETWORK_ERROR (DSSServerErrorType.otherError(DSSServerError.otherError.inner)) 4 Не удалось установить соединение с сервером. Описание ошибки содержится в описании.

    При возникновении ошибок INTERNAL_SERVER_ERROR, BAD_GATEWAY, SERVICE_UNAVAILABLE можно повторить запрос позже или обратиться к Администратору КриптоПро Ключ.

    Ошибка RESPONSE_CODE_NOT_OK возникает при получении от сервера HTTP-ответа со статусом 400, 401 и неизвестным прикладным кодом ошибки. То есть SDK не смог отобразить код ошибки, полученный от сервера, на код ошибки SDK. В данном случае пользователю можно отобразить описание ошибки.

    Ошибка UNEXPECTED_NETWORK_ERROR, NETWORK_ERROR возникает при невозможности установления соединения с сервером. Подробности ошибки содержатся в описании ошибки. Ошибка может быть вызвана следующими причинами.

    • Ошибки TLS-соединения (не установлен корневой сертификат, не удалось проверить сертификат сервера на отзыв, и т.п.);
    • Time-out соединения;
    • Ошибки разрешения доменного имени;
    • другие ошибки.

    Ошибки взаимодействия с сервером

    Данные ошибки могут возникнуть, если клиент передал на сервер невалидный запрос или состояние данных на сервере не позволяет выполнить операцию.

    Ошибка Код Описание
    ACCESS_POLICY_VIOLATION (DSSServerErrorType.badRequest(DSSServerError.badRequest.accessPolicyViolation)) 232 Действие запрещено настройками сервера. Сервер вернул ответ с HTTP-статусом 400.
    CONFIRMATION_POLICY_VIOLATION (DSSServerErrorType.badRequest(DSSServerError.badRequest.confirmationPolicyViolation)) 233 Действие может быть выполнено только со подтверждение операции. Сервер вернут ответ с HTTP-статусом 400.
    INVALID_SUBJECT_NAME (DSSServerErrorType.badRequest(DSSServerError.badRequest.invalidSubjectName)) 234 Указанное в запросе на сертификат имя субъекта не соответствует требованиям. Получен HTTP-ответ со статусом 400.
    INVALID_TEMPLATE (DSSServerErrorType.badRequest(DSSServerError.badRequest.invalidTemplate)) 235 Указан неверный шаблон сертификата. Получен HTTP-ответ со статусом 400.
    INVALID_ENROLL (DSSServerErrorType.badRequest(DSSServerError.badRequest.invalidEnroll)) 236 Указан неверный идентификатор обработчика запросов на сертификат. Получен HTTP-ответ со статусом 400.
    INVALID_REQUEST (DSSServerErrorType.badRequest(DSSServerError.badRequest.invalidRequest)) 237 Неверный запрос на сертификат или связанные с запросом на сертификат данные. Получен HTTP-ответ со статусом 400.
    INVALID_PIN (DSSServerErrorType.badRequest(DSSServerError.badRequest.invalidPin)) 238 Неверный ПИН-код для доступа к ключу подписи, хранящемуся на сервере. Получен HTTP-ответ со статусом 400.
    INVALID_LICENSE (DSSServerErrorType.badRequest(DSSServerError.badRequest.invalidLicense)) 239 На сервере нет доступных лицензий для создания нового сертификата пользователя. Получен HTTP-ответ со статусом 400.
    INVALID_CERTIFICATE_ID (DSSServerErrorType.badRequest(DSSServerError.badRequest.invalidCertificateId)) 240 Передан неверный идентификатор сертификата. Получен HTTP-ответ со статусом 400.
    CERTIFICATE_NOT_FOUND_ID (DSSServerErrorType.badRequest(DSSServerError.badRequest.certificateNotFoundId)) 241 Сертификат не найден по идентификатору. Получен HTTP-ответ со статусом 400.
    REQUEST_NOT_FOUND_BY_ID (DSSServerErrorType.badRequest(DSSServerError.badRequest.requestNotFoundById)) 242 Запрос на сертификат не найден по идентификатору. Получен HTTP-ответ со статусом 400.
    UNSIGNED_REQUEST_INVALID_STATE (DSSServerErrorType.badRequest(DSSServerError.badRequest.unsignedRequestInvalidState)) 243 Запрос на сертификат для мобильного приложения уже был обработан. Получен HTTP-ответ со статусом 400.
    DUPLICATE_FRIENDLY_NAME (DSSServerErrorType.badRequest(DSSServerError.badRequest.duplicateFriendlyName)) 244 Отображаемое имя уже назначено другому сертификату. Получен HTTP-ответ со статусом 400.
    INVALID_CERT_REQUEST (DSSServerErrorType.badRequest(DSSServerError.badRequest.invalidCertRequest)) 245 Не найден запрос на сертификат. Получен HTTP-ответ со статусом 400.
    PENDING_REQUESTS_EXIST (DSSServerErrorType.badRequest(DSSServerError.badRequest.pendingRequestsExist)) 246 Ошибка создания запроса на сертификат. У пользователя уже есть необработанный запрос на сертификат. Получен HTTP-ответ со статусом 400.
    CERT_ALREADY_INSTALLED (DSSServerErrorType.badRequest(DSSServerError.badRequest.certAlreadyInstalled)) 247 Сертификат уже был установлен. Получен HTTP-ответ со статусом 400.
    DUPLICATE_CERT_FOUND (DSSServerErrorType.badRequest(DSSServerError.badRequest.duplicateCertFound)) 248 Сертификат уже был установлен для другой учетной записи. Получен HTTP-ответ со статусом 400.
    KEY_NOT_FOUND (DSSServerErrorType.badRequest(DSSServerError.badRequest.keyNotFound)) 249 Не найден ключ подписи, соответствующий сертификату. Получен HTTP-ответ со статусом 400.
    KEY_TYPE_MISMATCH (DSSServerErrorType.badRequest(DSSServerError.badRequest.keyTypeMismatch)) 250 Устанавливаемый сертификат не соответствует типу закрытого ключа в зависимости от его расположения. Получен HTTP-ответ со статусом 400.
    INVALID_CERTIFICATE_STATUS (DSSServerErrorType.badRequest(DSSServerError.badRequest.invalidCertificateStatus)) 251 Неверный статус сертификата для выполнения отзыва/приостановления/восстановления. Получен HTTP-ответ со статусом 400.
    CONTENT_REQUIRED (DSSServerErrorType.badRequest(DSSServerError.badRequest.contentRequired)) 252 Не передан документ для выполнения операции. Получен HTTP-ответ со статусом 400.
    INVALID_CONTENT (DSSServerErrorType.badRequest(DSSServerError.badRequest.invalidContent)) 253 Получены неверные данные при усовершенствовании подписи. Получен HTTP-ответ со статусом 400.
    INVALID_CERTIFICATE (DSSServerErrorType.badRequest(DSSServerError.badRequest.invalidCertificate)) 254 Сертификат не может быть использован для выполнения операции. Получен HTTP-ответ со статусом 400.
    INVALID_SIGNATURE_TYPE (DSSServerErrorType.badRequest(DSSServerError.badRequest.invalidSignatureType)) 255 Неверный тип подписи, переданный из мобильного приложения. Получен HTTP-ответ со статусом 400.
    INVALID_PROCESSING_TEMPLATE (DSSServerErrorType.badRequest(DSSServerError.badRequest.invalidProcessingTemplate)) 256 Неверный идентификатор шаблона подписи, переданный из мобильного приложения. Получен HTTP-ответ со статусом 400.
    INVALID_SIGNATURE_PARAMS (DSSServerErrorType.badRequest(DSSServerError.badRequest.invalidSignatureParams)) 257 Неверный набор параметров подписи, переданный из мобильного приложения. Получен HTTP-ответ со статусом 400.
    INVALID_PRESIGNED_HASH_DATA (DSSServerErrorType.badRequest(DSSServerError.badRequest.invalidPresignedHashData)) 258 Ошибка подписи с использованием ключей в мобильном приложении. Получен HTTP-ответ со статусом 400.
    INVALID_SIGNED_DOCS_IDS_DATA (DSSServerErrorType.badRequest(DSSServerError.badRequest.invalidSignedDocsIdsData)) 259 Ошибка подписи с использованием ключей в мобильном приложении. Получен HTTP-ответ со статусом 400.
    DOC_NOT_FOUND (DSSServerErrorType.badRequest(DSSServerError.badRequest.docNotFound)) 260 Не найден документ, указанный в операции. Получен HTTP-ответ со статусом 400.
    KEY_UNAVAILABLE (DSSServerErrorType.badRequest(DSSServerError.badRequest.keyUnavailable)) 261 Ошибка доступа к серверному ключу подписи. Получен HTTP-ответ со статусом 400.
    INVALID_TSP_ADDRESS (DSSServerErrorType.badRequest(DSSServerError.badRequest.invalidTspAddress)) 262 Указан неверный адрес TSP-службы. Получен HTTP-ответ со статусом 400.
    INVALID_CERT (DSSServerErrorType.badRequest(DSSServerError.badRequest.invalidCert)) 263 Истек срок действия сертификата. Получен HTTP-ответ со статусом 400.
    ARCHIVE_DISABLED (DSSServerErrorType.badRequest(DSSServerError.badRequest.archiveSisabled)) 264 Ошибка архивирования ключа подписи. Архивирование ключей подписи запрещено настройками сервера. Получен HTTP-ответ со статусом 400.
    INVALID_CERT_TYPE (DSSServerErrorType.badRequest(DSSServerError.badRequest.invalidCertType)) 265 Ошибка архивирования ключа подписи. Сертификат не поддерживает архивирование. Получен HTTP-ответ со статусом 400.
    ALREADY_ARCHIVED (DSSServerErrorType.badRequest(DSSServerError.badRequest.alreadyArchived)) 266 Ошибка создания архивной копии ключа подписи. Ключ подписи уже был архивирован. Получен HTTP-ответ со статусом 400.
    CERT_MISMATCH (DSSServerErrorType.badRequest(DSSServerError.badRequest.certMismatch)) 267 Ошибка установки сертификата. Сертификат не соответствует закрытому ключу. Получен HTTP-ответ со статусом 400.
    NOT_ARCHIVED (DSSServerErrorType.badRequest(DSSServerError.badRequest.notArchived)) 268 Ошибка восстановления ключа подписи из архивной копии. Ключ подписи не был архивирован. Получен HTTP-ответ со статусом 400.
    KINIT_ALREADY_USED (DSSServerErrorType.badRequest(DSSServerError.badRequest.kinitAlreadyUsed)) 270 QR-код для привязки УЗ уже был использован или удален. Получен HTTP-ответ со статусом 400.
    INVALID_KEY_ID (DSSServerErrorType.badRequest(DSSServerError.badRequest.invalidKeyId)) 271 Передан невалидный идентификатор ключей аутентификации (kid). Получен HTTP-ответ со статусом 400.
    REQUESTED_DSSServerError.unauthorized.userNotFound (DSSServerErrorType.badRequest(DSSServerError.badRequest.requestedUserNotFound)) 272 УЗ пользователя не найдена. Получен HTTP-ответ со статусом 400.

    Список типов ошибок

    Тип ошибки Описание
    DSSAuthError ошибки, которые возникают при создании/изменении или обращении к пользовательскому ключу аутентификации;
    DSSCryptoLibError ошибки, возникающие при выполнении криптографических операций;
    DSSCertError ошибки при работе с методами, которые подписывают, используют, удаляют сертификаты;
    DSSOperationError эти ошибки возникают, когда операция уже не актуальна или не может быть выполнена из-за изменения в системе;
    DSSSignError ошибки, возникшие во время обработки операции подписи/расшифрования;
    DSSError различные внутренние ошибки системы при обработке данных;
    DSSServerError ошибки, которые произошли в результате взаимодействия с сервером;
    DSSLocalNetError ошибки, связанные с формированием или обработкой сетевых запросов;
    DSSEncryptError ошибки во время взаимодействия с пользовательским ключом аутентификации;
    DSSQRCodeError невалидный QR-код. Например, если QR-код содержит некорректные данные.
    DSSCancelType эта ошибка связана с пользовательской отменой операции. Например, если пользователь прерывает выполнение операции до ее завершения.

    Все ошибки, за исключением DSSServerError, являются перечислениями, которые реализуют системный протокол Error. Каждый тип ошибки также реализует системный протокол LocalizedError, который содержит в себе поле errorDescription, из которого можно получить описание конкретной ошибки.

    В начало © ООО "КРИПТО-ПРО", 2000–2025