Rutoken Flash 2.0.1
Управление flash-памятью устройств Рутокен ЭЦП 3.0 Flash
Структуры данных | Определения типов | Перечисления | Функции
Файл rtflash-status.h

Обработка кодов возврата Подробнее...

#include "rtflash-macros.h"
#include <stddef.h>
#include <stdint.h>

См. исходные тексты.

Структуры данных

union  rtflash_DetailValue
 Тип информации условия Подробнее...
 
struct  rtflash_ConditionDetail
 Представляет тип хранимой дополнительной информации Подробнее...
 
struct  rtflash_StatusCondition
 Представляет дополнительную информацию, которая может быть получена в случае возникновения ошибки при выполнении функции. Подробнее...
 

Определения типов

typedef enum rtflash_StatusCode rtflash_StatusCode
 
typedef enum rtflash_ConditionCode rtflash_ConditionCode
 Коды условий Подробнее...
 
typedef enum rtflash_DetailType rtflash_DetailType
 Идентификатор типа информации условия Подробнее...
 
typedef union rtflash_DetailValue rtflash_DetailValue
 Тип информации условия Подробнее...
 
typedef struct rtflash_ConditionDetail rtflash_ConditionDetail
 Представляет тип хранимой дополнительной информации Подробнее...
 
typedef struct rtflash_StatusCondition rtflash_StatusCondition
 Представляет дополнительную информацию, которая может быть получена в случае возникновения ошибки при выполнении функции. Подробнее...
 

Перечисления

enum  rtflash_StatusCode {
  RTFLASH_ST_OK = 0 ,
  RTFLASH_ST_INTERNAL_ERROR = 1 ,
  RTFLASH_ST_PCSC_ERROR = 2 ,
  RTFLASH_ST_NULL_PTR_ARG = 3 ,
  RTFLASH_ST_APDU_ERROR = 6000 ,
  RTFLASH_ST_FILE_NOT_FOUND = 6001 ,
  RTFLASH_ST_INVALID_RIGHTS = 6002 ,
  RTFLASH_ST_VERIFY_FAILED = 6003 ,
  RTFLASH_ST_INCORRECT_PARAMETERS = 6004 ,
  RTFLASH_ST_COMMAND_NOT_SUPPORTED = 6005 ,
  RTFLASH_ST_OBJECT_BLOCKED = 6006 ,
  RTFLASH_ST_WRONG_DATA_LENGTH = 6007 ,
  RTFLASH_ST_NO_SPACE_FOR_RECORD = 6008 ,
  RTFLASH_ST_WRONG_PIN_POLITICS = 6009 ,
  RTFLASH_ST_PIN_REUSE_ERROR = 6010 ,
  RTFLASH_ST_CONDITIONS_OF_USE_NOT_SATISFIED = 6011 ,
  RTFLASH_ST_DOUBLE_LOGIN = 6012 ,
  RTFLASH_ST_INVALID_DATA = 6013 ,
  RTFLASH_ST_NO_FREE_LOCAL_FILE_ID = 6014 ,
  RTFLASH_ST_NO_MEMORY = 6015 ,
  RTFLASH_ST_COMMAND_FAILED = 6016 ,
  RTFLASH_ST_DEVICE_BROKEN = 6017 ,
  RTFLASH_ST_UNSUPPORTED_MODE_OF_COMMAND = 6018 ,
  RTFLASH_ST_OBJECT_EXISTS = 6019 ,
  RTFLASH_ST_LOGIC_ERROR = 100000 ,
  RTFLASH_ST_INVALID_RECORD_COUNT = 100001 ,
  RTFLASH_ST_INVALID_RECORD_SIZE = 100002 ,
  RTFLASH_ST_INVALID_MVA_SIZE = 100003 ,
  RTFLASH_ST_INVALID_ATTEMPT_COUNT = 100004 ,
  RTFLASH_ST_CD_ROM_PERMANENT_ONLY = 100005 ,
  RTFLASH_ST_INVALID_SECTION_ID = 100006 ,
  RTFLASH_ST_JOURNAL_READ_ONLY_TEMP = 100007 ,
  RTFLASH_ST_JOURNAL_RO_ENCRYPTED_CONFLICT = 100008 ,
  RTFLASH_ST_INVALID_SECTION_COUNT = 100009 ,
  RTFLASH_ST_INVALID_SECTION_SIZE = 100010 ,
  RTFLASH_ST_INVALID_SECTIONS_TOTAL_SIZE = 100011 ,
  RTFLASH_ST_JOURNAL_EVENTS_ALREADY_EXISTS = 100012 ,
  RTFLASH_ST_JOURNAL_EVENTS_MISSING = 100013 ,
  RTFLASH_ST_INVALID_JOURNAL_EVENTS_SIZE = 100014 ,
  RTFLASH_ST_INVALID_JOURNAL_ACCESS_RIGHTS = 100015 ,
  RTFLASH_ST_UNSUPPORTED_SECTION_TYPE = 100016 ,
  RTFLASH_ST_INVALID_PROTECT_CONDITIONS = 100017 ,
  RTFLASH_ST_INVALID_SECRET_ID = 100018 ,
  RTFLASH_ST_RECORD_MISMATCH = 100019 ,
  RTFLASH_ST_INCORRECT_LOGIN = 100021 ,
  RTFLASH_ST_DEVICE_NOT_FOUND = 100022 ,
  RTFLASH_ST_RECORD_NOT_FOUND = 100023 ,
  RTFLASH_ST_UNEXPECTED_APDU_RESPONSE = 100024 ,
  RTFLASH_ST_INVALID_STRING_SIZE = 100025 ,
  RTFLASH_ST_JOURNAL_READ_ONLY_FORBIDDEN = 100026 ,
  RTFLASH_ST_OBJECT_ID_TYPE_MISMATCH = 100027 ,
  RTFLASH_ST_INVALID_PIN_SIZE = 100028
}
 Коды возврата функций библиотеки Подробнее...
 
enum  rtflash_ConditionCode {
  RTFLASH_COND_STD_EXCEPTION = 0 ,
  RTFLASH_COND_APDU_STATUS = 1 ,
  RTFLASH_COND_EXCEPTION_LOCATION = 2 ,
  RTFLASH_COND_PCSC_ERROR_CODE = 3 ,
  RTFLASH_COND_PCSC_ERROR_STRING = 4 ,
  RTFLASH_COND_REMAINING_LOGIN_ATTEMPTS = 5 ,
  RTFLASH_COND_TLV_PARSE_FAIL = 6 ,
  RTFLASH_COND_APDU_RESPONSE = 7 ,
  RTFLASH_COND_PROTECT_CONDS_BYTE = 8 ,
  RTFLASH_COND_CURRENT_MAX_SECTION_COUNT = 9 ,
  RTFLASH_COND_AVAILABLE_FLASH_SIZE = 10 ,
  RTFLASH_COND_SECTION_SIZE = 11 ,
  RTFLASH_COND_SECTION_TYPE = 12 ,
  RTFLASH_COND_SECRET_ID = 13 ,
  RTFLASH_COND_SECRET_ID_VALID_RANGE = 14 ,
  RTFLASH_COND_EXPECTED_SECRET_TYPE = 15
}
 Коды условий Подробнее...
 
enum  rtflash_DetailType {
  RTFLASH_DETAIL_int64 = 0 ,
  RTFLASH_DETAIL_char_ptr = 1
}
 Идентификатор типа информации условия Подробнее...
 

Функции

rtflash_StatusCode rtflash_last_status_conditions (rtflash_StatusCondition **outConditions, size_t *outCount)
 
void rtflash_last_status_conditions_destroy (rtflash_StatusCondition **conditions, size_t amount)
 
rtflash_StatusCode rtflash_status_description (rtflash_StatusCode status, const char **outDescr)
 
rtflash_StatusCode rtflash_condition_description (rtflash_ConditionCode cond, const char **outDescr)
 

Подробное описание

Обработка кодов возврата

См. определение в файле rtflash-status.h

Типы

◆ rtflash_StatusCode

◆ rtflash_ConditionCode

Коды условий

◆ rtflash_DetailType

Идентификатор типа информации условия

◆ rtflash_DetailValue

Тип информации условия

◆ rtflash_ConditionDetail

Представляет тип хранимой дополнительной информации

◆ rtflash_StatusCondition

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

Перечисления

◆ rtflash_StatusCode

Коды возврата функций библиотеки

Элементы перечислений
RTFLASH_ST_OK 

Команда выполнена успешно

RTFLASH_ST_INTERNAL_ERROR 

Внутренняя ошибка

RTFLASH_ST_PCSC_ERROR 

Ошибка библиотеки PCSC.

RTFLASH_ST_NULL_PTR_ARG 

Передан нулевой указатель

RTFLASH_ST_APDU_ERROR 

Не используется

RTFLASH_ST_FILE_NOT_FOUND 

Файл не найден

RTFLASH_ST_INVALID_RIGHTS 

Недопустимые права доступа

RTFLASH_ST_VERIFY_FAILED 

Ошибка проверки данных

RTFLASH_ST_INCORRECT_PARAMETERS 

Неправильные параметры

RTFLASH_ST_COMMAND_NOT_SUPPORTED 

Команда не поддерживается устройством

RTFLASH_ST_OBJECT_BLOCKED 

Указанный объект заблокирован

RTFLASH_ST_WRONG_DATA_LENGTH 

Некорректная длина данных

RTFLASH_ST_NO_SPACE_FOR_RECORD 

Недостаточно места для добавления записи в файл

RTFLASH_ST_WRONG_PIN_POLITICS 

Неправильная политика PIN‑кода

RTFLASH_ST_PIN_REUSE_ERROR 

PIN‑код уже использовался недавно, смена кода невозможна

RTFLASH_ST_CONDITIONS_OF_USE_NOT_SATISFIED 

Неподходящие условия выполнения команды

RTFLASH_ST_DOUBLE_LOGIN 

Для указанного пользователя аутентификация уже выполнена

RTFLASH_ST_INVALID_DATA 

Некорректные данные

RTFLASH_ST_NO_FREE_LOCAL_FILE_ID 

Нет свободных идентификаторов для локальных файлов аутентификации

RTFLASH_ST_NO_MEMORY 

На устройстве недостаточно памяти

RTFLASH_ST_COMMAND_FAILED 

Ошибка выполнения команды

RTFLASH_ST_DEVICE_BROKEN 

Обнаружено нарушение целостности ОС устройства

RTFLASH_ST_UNSUPPORTED_MODE_OF_COMMAND 

Режим команды не поддерживается устройством

RTFLASH_ST_OBJECT_EXISTS 

Не используется

RTFLASH_ST_LOGIC_ERROR 

Не используется

RTFLASH_ST_INVALID_RECORD_COUNT 

Некорректное количество записей

RTFLASH_ST_INVALID_RECORD_SIZE 

Некорректный размер записи

RTFLASH_ST_INVALID_MVA_SIZE 

Некорректный размер MVA (max количество записей * max размер записи)

RTFLASH_ST_INVALID_ATTEMPT_COUNT 

Некорректное количество попыток доступа

RTFLASH_ST_CD_ROM_PERMANENT_ONLY 

Для раздела CD‑ROM доступно только изменение постоянных прав доступа

RTFLASH_ST_INVALID_SECTION_ID 

Некорректный идентификатор раздела

RTFLASH_ST_JOURNAL_READ_ONLY_TEMP 

Журнал может быть временно переключён только в режим «только чтение»

RTFLASH_ST_JOURNAL_RO_ENCRYPTED_CONFLICT 

Журнал нельзя переключить в режим «только чтение», если зашифрованный раздел находится в режиме «только чтение» или «чтение‑запись»

RTFLASH_ST_INVALID_SECTION_COUNT 

Некорректное количество разделов

RTFLASH_ST_INVALID_SECTION_SIZE 

Некорректный размер раздела

RTFLASH_ST_INVALID_SECTIONS_TOTAL_SIZE 

Некорректный общий размер разделов

RTFLASH_ST_JOURNAL_EVENTS_ALREADY_EXISTS 

Раздел журнала событий безопасности уже существует

RTFLASH_ST_JOURNAL_EVENTS_MISSING 

Раздел событий журнала отсутствует

RTFLASH_ST_INVALID_JOURNAL_EVENTS_SIZE 

Некорректный размер раздела событий журнала

RTFLASH_ST_INVALID_JOURNAL_ACCESS_RIGHTS 

Некорректные права доступа к разделу журнала

RTFLASH_ST_UNSUPPORTED_SECTION_TYPE 

Указанный тип раздела не поддерживается устройством

RTFLASH_ST_INVALID_PROTECT_CONDITIONS 

Некорректная комбинация условий защиты

RTFLASH_ST_INVALID_SECRET_ID 

Некорректный идентификатор секрета

RTFLASH_ST_RECORD_MISMATCH 

Переданная запись не соответствует ни одной из записей в указанном MVA.

RTFLASH_ST_INCORRECT_LOGIN 

Неправильный логин

RTFLASH_ST_DEVICE_NOT_FOUND 

Устройство с указанным серийным номером не найдено

RTFLASH_ST_RECORD_NOT_FOUND 

Не удалось найти запись с указанным идентификатором

RTFLASH_ST_UNEXPECTED_APDU_RESPONSE 

Неверный APDU‑ответ от устройства

RTFLASH_ST_INVALID_STRING_SIZE 

Некорректный размер строки

RTFLASH_ST_JOURNAL_READ_ONLY_FORBIDDEN 

Журнальный раздел нельзя создать с запрещённым временным переключением в режим «только чтение»

RTFLASH_ST_OBJECT_ID_TYPE_MISMATCH 

Тип объекта, переданный по идентификатору, не соответствует ожидаемому

RTFLASH_ST_INVALID_PIN_SIZE 

Неверный размер PIN-кода

См. определение в файле rtflash-status.h строка 19

◆ rtflash_ConditionCode

Коды условий

Элементы перечислений
RTFLASH_COND_STD_EXCEPTION 

Исключение стандартной библиотеки

RTFLASH_COND_APDU_STATUS 

Статус APDU‑команды

RTFLASH_COND_EXCEPTION_LOCATION 

Местоположение исключения

RTFLASH_COND_PCSC_ERROR_CODE 

Код ошибки PCSC.

RTFLASH_COND_PCSC_ERROR_STRING 

Код ошибки PCSC в шестнадцатеричном виде

RTFLASH_COND_REMAINING_LOGIN_ATTEMPTS 

Оставшееся количество попыток входа

RTFLASH_COND_TLV_PARSE_FAIL 

Ошибка разбора структуры TLV.

RTFLASH_COND_APDU_RESPONSE 

APDU‑ответ от устройства

RTFLASH_COND_PROTECT_CONDS_BYTE 

Байт условий защиты

RTFLASH_COND_CURRENT_MAX_SECTION_COUNT 

Максимальное количество разделов, которое может быть создано в текущем состоянии раздела памяти

RTFLASH_COND_AVAILABLE_FLASH_SIZE 

Доступный объём flash‑памяти

RTFLASH_COND_SECTION_SIZE 

Размер раздела

RTFLASH_COND_SECTION_TYPE 

Тип раздела

RTFLASH_COND_SECRET_ID 

Идентификатор секрета

RTFLASH_COND_SECRET_ID_VALID_RANGE 

Допустимый диапазон значений идентификатора секрета

RTFLASH_COND_EXPECTED_SECRET_TYPE 

Ожидаемый тип секрета

См. определение в файле rtflash-status.h строка 81

◆ rtflash_DetailType

Идентификатор типа информации условия

Элементы перечислений
RTFLASH_DETAIL_int64 

Тип int64.

RTFLASH_DETAIL_char_ptr 

Тип Си строка

См. определение в файле rtflash-status.h строка 101

Функции

◆ rtflash_last_status_conditions()

rtflash_StatusCode rtflash_last_status_conditions ( rtflash_StatusCondition **  outConditions,
size_t *  outCount 
)

Возвращает список дополнительных условий последнего статуса выполнения функции библиотеки.

Заметки
Каждый исполняемый поток имеет свой список.
При успешном выполнении функции rtflash_last_status_conditions необходимо выполнить очистку выделенной памяти с помощью функции rtflash_last_status_conditions_destroy. При неуспешном выполнении очистка не требуется.
Внимание
выполнение функции не устанавливает последний статус.
Аргументы
outConditions- список условий.
outCount- размер списка.
Возвращает
Код возврата.

◆ rtflash_last_status_conditions_destroy()

void rtflash_last_status_conditions_destroy ( rtflash_StatusCondition **  conditions,
size_t  amount 
)

Освобождает память выделенную под список условий в функции rtflash_last_status_conditions

Аргументы
conditions- список условий.
amount- размер списка.

◆ rtflash_status_description()

rtflash_StatusCode rtflash_status_description ( rtflash_StatusCode  status,
const char **  outDescr 
)

Возвращает текстовое описание статус-кода.

Внимание
Не устанавливает последний статус выполнения функции библиотеки.
Аргументы
status- статус-код, возвращаемый вызовом любой функции библиотеки.
outDescr- текстовое описание статус-кода. Если код недействителен, принимает значение RTFLASH_NULL_PTR.
Возвращает
Код возврата.

◆ rtflash_condition_description()

rtflash_StatusCode rtflash_condition_description ( rtflash_ConditionCode  cond,
const char **  outDescr 
)

Возвращает текстовое описание кода условия.

Внимание
Не устанавливает последний статус выполнения функции библиотеки.
Аргументы
cond- код условия из функции rtflash_last_status_conditions.
outDescr- текстовое описание кода условия. Если код недействителен, принимает значение RTFLASH_NULL_PTR.
Возвращает
Код возврата.