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

Типы Подробнее...

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

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

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

struct  rtflash_String
 Строка Подробнее...
 
struct  rtflash_MvaRecord
 Запись MVA - байтовая последовательность. Подробнее...
 
struct  rtflash_Secret
 Представляет собой объект для аутентификации. Секрет - абстрактное понятие в рамках интерфейса библиотеки. Подробнее...
 
struct  rtflash_PrConds
 Условия защиты операции. Операцию можно защитить на глобальное условие защиты и/или аутентификацию по секрету. Одновременно заданные глобальное условие и защита на секрет интерпретируются по условию "И". Подробнее...
 
struct  rtflash_Section
 Представляет раздел flash-памяти токена и информацию о разделе. Подробнее...
 
struct  rtflash_MvaParams
 Представляет входные параметры для создания MVA. Подробнее...
 
struct  rtflash_PcInfo
 Представляет сведения о ПК пользователя для записи в журнал СБ. Подробнее...
 

Макросы

#define RTFLASH_MIN_JOURNAL_SECTION_SIZE   500
 Минимальный размер журнального раздела (СБ/ФО) flash-памяти токена в мегабайтах Подробнее...
 
#define RTFLASH_LOCAL_PIN_MAX_SIZE   32
 Максимальный размер локального PIN-кода Подробнее...
 
#define RTFLASH_LOCAL_PIN_MIN_SIZE   6
 Минимальный размер локального PIN-кода Подробнее...
 
#define RTFLASH_PIN_MAX_SIZE   249
 Максимальный размер PIN-кода Подробнее...
 
#define RTFLASH_MAX_LOGIN_ATTEMPT_COUNT   10
 Максимальное количество неудачных попыток аутентификации Подробнее...
 
#define RTFLASH_MIN_LOGIN_ATTEMPT_COUNT   1
 Минимальное количество неудачных попыток аутентификации Подробнее...
 
#define RTFLASH_SECT_SEC_ATTR_COUNT   6
 Количество атрибутов безопасности раздела Подробнее...
 
#define RTFLASH_MVA_MAX_RECORD_SIZE   249
 Максимальный размер записи в МVА Подробнее...
 
#define RTFLASH_MVA_MAX_RECORD_COUNT   254
 Максимальное количество записей в МVА Подробнее...
 
#define RTFLASH_MVA_MAX_SIZE   33020
 Максимально возможный комбинированный размер МVА при его создании (количество записей * макс. размер записи) Подробнее...
 
#define RTFLASH_SECRET_NONE    { 0, RTFLASH_SECRET_T_NONE }
 Секрет не задан Подробнее...
 
#define RTFLASH_SECRET_MIN_ID   3
 Минимальный идентификатор секрета Подробнее...
 
#define RTFLASH_SECRET_MAX_ID   31
 Максимальный идентификатор секрета Подробнее...
 
#define RTFLASH_SECRET_MAX_COUNT   29
 Максимальное количество секретов Подробнее...
 
#define RTFLASH_Token_NULL   RTFLASH_NULL_PTR
 Невалидный объект rtflash_Token. Подробнее...
 
#define rtflash_PrConds_FORBIDDEN    RTFLASH_PR_COND_GLOBAL_FORBIDDEN, RTFLASH_SECRET_NONE
 Операция запрещена. Подробнее...
 
#define rtflash_PrConds_NONE    RTFLASH_PR_COND_GLOBAL_NONE, RTFLASH_SECRET_NONE
 Операция не имеет условий защиты (доступна всем). Подробнее...
 
#define RTFLASH_PrConds_ADMIN_ONLY    RTFLASH_PR_COND_GLOBAL_ADMIN, RTFLASH_SECRET_NONE
 Операция защищена на глобальный PIN-код Администратора. Подробнее...
 
#define RTFLASH_PrConds_USER_ONLY    RTFLASH_PR_COND_GLOBAL_USER, RTFLASH_SECRET_NONE
 Операция защищена на глобальный PIN-код Пользователя. Подробнее...
 
#define rtflash_PrConds_SECRET(secretId, secretType)    RTFLASH_PR_COND_GLOBAL_NONE, { secretId, secretType }
 Операция защищена на аутентификацию по секрету (rtflash_Secret). Подробнее...
 
#define rtflash_SectionSecAttrs_JOURNAL_DEFAULT
 

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

typedef uint64_t rtflash_TokenSerial
 Серийный номер устройства Подробнее...
 
typedef uint8_t rtflash_RecordId
 Идентификатор записи MVA. Подробнее...
 
typedef uint8_t rtflash_SectionId
 Идентификатор раздела Подробнее...
 
typedef uint32_t rtflash_MemSizeMB
 Память в МБ Подробнее...
 
typedef uint64_t rtflash_UnixTime
 Время в формате unix-time (неотрицательное целое число секунд с 1970.01.01.00:00:00) Подробнее...
 
typedef struct rtflash_String rtflash_String
 Строка Подробнее...
 
typedef rtflash_String rtflash_PinCode
 
typedef struct rtflash_MvaRecord rtflash_MvaRecord
 Запись MVA - байтовая последовательность. Подробнее...
 
typedef uint16_t rtflash_SecretId
 
typedef enum rtflash_SecretType rtflash_SecretType
 Тип секрета (rtflash_Secret). Подробнее...
 
typedef enum rtflash_SecureType rtflash_SecureType
 Тип защиты от при создании локального PIN-кода. Подробнее...
 
typedef struct rtflash_Secret rtflash_Secret
 Представляет собой объект для аутентификации. Секрет - абстрактное понятие в рамках интерфейса библиотеки. Подробнее...
 
typedef rtflash_SecretId rtflash_MvaId
 Идентификатор MVA. Подробнее...
 
typedef rtflash_SecretId rtflash_LocalPinId
 Идентификатор локального PIN-кода Подробнее...
 
typedef struct rtflash_TokenImpl_ * rtflash_Token
 
typedef enum rtflash_SectionType rtflash_SectionType
 
typedef enum rtflash_SectionAccessState rtflash_SectionAccessState
 Режим доступа к разделу. Подробнее...
 
typedef enum rtflash_PrCondGlobal rtflash_PrCondGlobal
 Глобальное условие защиты операции. Подробнее...
 
typedef struct rtflash_PrConds rtflash_PrConds
 Условия защиты операции. Операцию можно защитить на глобальное условие защиты и/или аутентификацию по секрету. Одновременно заданные глобальное условие и защита на секрет интерпретируются по условию "И". Подробнее...
 
typedef enum rtflash_SectionSecOp rtflash_SectionSecOp
 Операции смены режима доступа к разделу (защищенные операции). Подробнее...
 
typedef rtflash_PrConds rtflash_SectionSecAttrs[6]
 
typedef struct rtflash_Section rtflash_Section
 Представляет раздел flash-памяти токена и информацию о разделе. Подробнее...
 
typedef struct rtflash_MvaParams rtflash_MvaParams
 Представляет входные параметры для создания MVA. Подробнее...
 
typedef struct rtflash_PcInfo rtflash_PcInfo
 Представляет сведения о ПК пользователя для записи в журнал СБ. Подробнее...
 
typedef uint16_t rtflash_Attempts
 

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

enum  rtflash_SecretType {
  RTFLASH_SECRET_T_NONE = 0 ,
  RTFLASH_SECRET_T_MVA = 1 ,
  RTFLASH_SECRET_T_LOCAL_PIN = 2 ,
  RTFLASH_SECRET_T_UNKNOWN = 3
}
 Тип секрета (rtflash_Secret). Подробнее...
 
enum  rtflash_SecureType {
  RTFLASH_SECURE_T_NONE = 0 ,
  RTFLASH_SECURE_T_ADMIN = 1 ,
  RTFLASH_SECURE_T_USER = 2 ,
  RTFLASH_SECURE_T_LOCAL_PIN = 3
}
 Тип защиты от при создании локального PIN-кода. Подробнее...
 
enum  rtflash_SectionType {
  RTFLASH_SECTION_USER = 0 ,
  RTFLASH_SECTION_JOURNAL_EVENTS = 1 ,
  RTFLASH_SECTION_JOURNAL_ACCESS = 2 ,
  RTFLASH_SECTION_ENCRYPTED = 3
}
 
enum  rtflash_SectionAccessState {
  RTFLASH_SECTION_ACCESS_HI = 0 ,
  RTFLASH_SECTION_ACCESS_RO = 1 ,
  RTFLASH_SECTION_ACCESS_RW = 3 ,
  RTFLASH_SECTION_ACCESS_CD = 5
}
 Режим доступа к разделу. Подробнее...
 
enum  rtflash_PrCondGlobal {
  RTFLASH_PR_COND_GLOBAL_FORBIDDEN = 0xFF ,
  RTFLASH_PR_COND_GLOBAL_NONE = 0x00 ,
  RTFLASH_PR_COND_GLOBAL_ADMIN = 0x01 ,
  RTFLASH_PR_COND_GLOBAL_USER = 0x02 ,
  RTFLASH_PR_COND_GLOBAL_ADMIN_OR_USER = 0x03
}
 Глобальное условие защиты операции. Подробнее...
 
enum  rtflash_SectionSecOp {
  RTFLASH_SECT_OP_HI_PERM = 0 ,
  RTFLASH_SECT_OP_RO_TEMP = 1 ,
  RTFLASH_SECT_OP_RO_PERM = 2 ,
  RTFLASH_SECT_OP_RW_TEMP = 3 ,
  RTFLASH_SECT_OP_RW_PERM = 4 ,
  RTFLASH_SECT_OP_CD_PERM = 5
}
 Операции смены режима доступа к разделу (защищенные операции). Подробнее...
 

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

Типы

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

Макросы

◆ RTFLASH_MIN_JOURNAL_SECTION_SIZE

#define RTFLASH_MIN_JOURNAL_SECTION_SIZE   500

Минимальный размер журнального раздела (СБ/ФО) flash-памяти токена в мегабайтах

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

◆ RTFLASH_LOCAL_PIN_MAX_SIZE

#define RTFLASH_LOCAL_PIN_MAX_SIZE   32

Максимальный размер локального PIN-кода

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

◆ RTFLASH_LOCAL_PIN_MIN_SIZE

#define RTFLASH_LOCAL_PIN_MIN_SIZE   6

Минимальный размер локального PIN-кода

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

◆ RTFLASH_PIN_MAX_SIZE

#define RTFLASH_PIN_MAX_SIZE   249

Максимальный размер PIN-кода

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

◆ RTFLASH_MAX_LOGIN_ATTEMPT_COUNT

#define RTFLASH_MAX_LOGIN_ATTEMPT_COUNT   10

Максимальное количество неудачных попыток аутентификации

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

◆ RTFLASH_MIN_LOGIN_ATTEMPT_COUNT

#define RTFLASH_MIN_LOGIN_ATTEMPT_COUNT   1

Минимальное количество неудачных попыток аутентификации

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

◆ RTFLASH_SECT_SEC_ATTR_COUNT

#define RTFLASH_SECT_SEC_ATTR_COUNT   6

Количество атрибутов безопасности раздела

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

◆ RTFLASH_MVA_MAX_RECORD_SIZE

#define RTFLASH_MVA_MAX_RECORD_SIZE   249

Максимальный размер записи в МVА

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

◆ RTFLASH_MVA_MAX_RECORD_COUNT

#define RTFLASH_MVA_MAX_RECORD_COUNT   254

Максимальное количество записей в МVА

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

◆ RTFLASH_MVA_MAX_SIZE

#define RTFLASH_MVA_MAX_SIZE   33020

Максимально возможный комбинированный размер МVА при его создании (количество записей * макс. размер записи)

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

◆ RTFLASH_SECRET_NONE

#define RTFLASH_SECRET_NONE    { 0, RTFLASH_SECRET_T_NONE }

Секрет не задан

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

◆ RTFLASH_SECRET_MIN_ID

#define RTFLASH_SECRET_MIN_ID   3

Минимальный идентификатор секрета

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

◆ RTFLASH_SECRET_MAX_ID

#define RTFLASH_SECRET_MAX_ID   31

Максимальный идентификатор секрета

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

◆ RTFLASH_SECRET_MAX_COUNT

#define RTFLASH_SECRET_MAX_COUNT   29

Максимальное количество секретов

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

◆ RTFLASH_Token_NULL

#define RTFLASH_Token_NULL   RTFLASH_NULL_PTR

Невалидный объект rtflash_Token.

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

◆ rtflash_PrConds_FORBIDDEN

#define rtflash_PrConds_FORBIDDEN    RTFLASH_PR_COND_GLOBAL_FORBIDDEN, RTFLASH_SECRET_NONE

Операция запрещена.

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

◆ rtflash_PrConds_NONE

#define rtflash_PrConds_NONE    RTFLASH_PR_COND_GLOBAL_NONE, RTFLASH_SECRET_NONE

Операция не имеет условий защиты (доступна всем).

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

◆ RTFLASH_PrConds_ADMIN_ONLY

#define RTFLASH_PrConds_ADMIN_ONLY    RTFLASH_PR_COND_GLOBAL_ADMIN, RTFLASH_SECRET_NONE

Операция защищена на глобальный PIN-код Администратора.

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

◆ RTFLASH_PrConds_USER_ONLY

#define RTFLASH_PrConds_USER_ONLY    RTFLASH_PR_COND_GLOBAL_USER, RTFLASH_SECRET_NONE

Операция защищена на глобальный PIN-код Пользователя.

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

◆ rtflash_PrConds_SECRET

#define rtflash_PrConds_SECRET (   secretId,
  secretType 
)     RTFLASH_PR_COND_GLOBAL_NONE, { secretId, secretType }

Операция защищена на аутентификацию по секрету (rtflash_Secret).

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

◆ rtflash_SectionSecAttrs_JOURNAL_DEFAULT

#define rtflash_SectionSecAttrs_JOURNAL_DEFAULT
Макроопределение:
/* HI_PERM */ { rtflash_PrConds_FORBIDDEN }, \
/* RO_TEMP */ { rtflash_PrConds_NONE }, \
/* RO_PERM */ { rtflash_PrConds_FORBIDDEN }, \
/* RW_TEMP */ { rtflash_PrConds_FORBIDDEN }, \
/* RW_PERM */ { rtflash_PrConds_FORBIDDEN }, \
/* CD_PERM */ { rtflash_PrConds_FORBIDDEN }
#define rtflash_PrConds_NONE
Операция не имеет условий защиты (доступна всем).
#define rtflash_PrConds_FORBIDDEN
Операция запрещена.

Константа для установки атрибутов безопасности журнального раздела (все операции, кроме перевода в режим RO_TEMP, запрещены).

Заметки
Для журнала RTFLASH_SECT_OP_RO_TEMP запрещено защищать на RTFLASH_PR_COND_GLOBAL_FORBIDDEN (нельзя запретить перевод в RO_TEMP).

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

Типы

◆ rtflash_TokenSerial

typedef uint64_t rtflash_TokenSerial

Серийный номер устройства

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

◆ rtflash_RecordId

typedef uint8_t rtflash_RecordId

Идентификатор записи MVA.

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

◆ rtflash_SectionId

typedef uint8_t rtflash_SectionId

Идентификатор раздела

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

◆ rtflash_MemSizeMB

typedef uint32_t rtflash_MemSizeMB

Память в МБ

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

◆ rtflash_UnixTime

typedef uint64_t rtflash_UnixTime

Время в формате unix-time (неотрицательное целое число секунд с 1970.01.01.00:00:00)

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

◆ rtflash_String

Строка

◆ rtflash_PinCode

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

◆ rtflash_MvaRecord

Запись MVA - байтовая последовательность.

◆ rtflash_SecretId

typedef uint16_t rtflash_SecretId

Идентификатор секрета (rtflash_Secret).

Внимание
Значение должно быть в диапазоне [RTFLASH_SECRET_MIN_ID, RTFLASH_SECRET_MAX_ID].

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

◆ rtflash_SecretType

Тип секрета (rtflash_Secret).

◆ rtflash_SecureType

Тип защиты от при создании локального PIN-кода.

◆ rtflash_Secret

Представляет собой объект для аутентификации. Секрет - абстрактное понятие в рамках интерфейса библиотеки.

◆ rtflash_MvaId

Идентификатор MVA.

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

◆ rtflash_LocalPinId

Идентификатор локального PIN-кода

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

◆ rtflash_Token

typedef struct rtflash_TokenImpl_* rtflash_Token

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

◆ rtflash_SectionType

◆ rtflash_SectionAccessState

Режим доступа к разделу.

◆ rtflash_PrCondGlobal

Глобальное условие защиты операции.

◆ rtflash_PrConds

Условия защиты операции. Операцию можно защитить на глобальное условие защиты и/или аутентификацию по секрету. Одновременно заданные глобальное условие и защита на секрет интерпретируются по условию "И".

Заметки
Пример 1. { RTFLASH_PR_COND_GLOBAL_NONE, {} } => операция не защищена (доступна всем).
Пример 2. { RTFLASH_PR_COND_GLOBAL_FORBIDDEN, {} } => операция запрещена (не доступна никому).
Пример 3. { RTFLASH_PR_COND_GLOBAL_FORBIDDEN, { (secret.id > 0) } } => ошибка.
Пример 4. { RTFLASH_PR_COND_GLOBAL_ADMIN_OR_USER } => аутентификация по PIN-коду Администратора ИЛИ Пользователя.
Пример 5. { RTFLASH_PR_COND_GLOBAL_ADMIN_OR_USER, { 11, RTFLASH_SECRET_T_MVA } } => аутентификация по PIN-коду Администратора ИЛИ Пользователя И аутентификация по указанному секрету (слепку ПК из MVA под идентификатором 11).
Пример 6. { RTFLASH_PR_COND_GLOBAL_NONE, { 11, RTFLASH_SECRET_T_MVA } } => аутентификация по указанному секрету (слепку ПК из MVA под идентификатором 11).

◆ rtflash_SectionSecOp

Операции смены режима доступа к разделу (защищенные операции).

◆ rtflash_SectionSecAttrs

typedef rtflash_PrConds rtflash_SectionSecAttrs[6]

Атрибуты безопасности раздела - список операций смены режима доступа к разделу с условиями защиты перевода в конкретный режим. Для доступа к условиям защиты конкретной операции рекомендуется использовать соответствующее значение rtflash_SectionSecOp.

Заметки
Атрибут безопасности объекта файловой системы (ФС) Рутокен - совокупность защищенной операции и условий доступа к выполнению операции.

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

◆ rtflash_Section

Представляет раздел flash-памяти токена и информацию о разделе.

◆ rtflash_MvaParams

Представляет входные параметры для создания MVA.

Заметки
Комбинированный размер (maxRecordCount * maxRecordSize) не должен превышать RTFLASH_MVA_MAX_SIZE.

◆ rtflash_PcInfo

Представляет сведения о ПК пользователя для записи в журнал СБ.

◆ rtflash_Attempts

typedef uint16_t rtflash_Attempts

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

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

◆ rtflash_SecretType

Тип секрета (rtflash_Secret).

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

Тип секрета не задан

RTFLASH_SECRET_T_MVA 

MVA.

RTFLASH_SECRET_T_LOCAL_PIN 

Локальный PIN-код

RTFLASH_SECRET_T_UNKNOWN 

Тип секрета не известен

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

◆ rtflash_SecureType

Тип защиты от при создании локального PIN-кода.

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

Не заданно

RTFLASH_SECURE_T_ADMIN 

PIN-код Администратора

RTFLASH_SECURE_T_USER 

PIN-код Пользователя

RTFLASH_SECURE_T_LOCAL_PIN 

Локальный PIN-код

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

◆ rtflash_SectionType

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

Пользовательский раздел.

RTFLASH_SECTION_JOURNAL_EVENTS 

Журнал СБ.

RTFLASH_SECTION_JOURNAL_ACCESS 

Журнал ФО.

RTFLASH_SECTION_ENCRYPTED 

Зашифрованный раздел.

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

◆ rtflash_SectionAccessState

Режим доступа к разделу.

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

Раздел скрыт.

RTFLASH_SECTION_ACCESS_RO 

Только чтение.

RTFLASH_SECTION_ACCESS_RW 

Полный доступ (чтение и запись).

RTFLASH_SECTION_ACCESS_CD 

CD-ROM.

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

◆ rtflash_PrCondGlobal

Глобальное условие защиты операции.

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

Операция не выполнима никогда.

RTFLASH_PR_COND_GLOBAL_NONE 

Глобальное условие защиты отсутствует.

RTFLASH_PR_COND_GLOBAL_ADMIN 

Аутентификация по PIN-коду Администратора

RTFLASH_PR_COND_GLOBAL_USER 

Аутентификация по PIN-коду Пользователя

RTFLASH_PR_COND_GLOBAL_ADMIN_OR_USER 

Аутентификация по PIN-коду Администратора ИЛИ Пользователя

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

◆ rtflash_SectionSecOp

Операции смены режима доступа к разделу (защищенные операции).

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

Скрыт, постоянно.

RTFLASH_SECT_OP_RO_TEMP 

Только чтение, временно.

RTFLASH_SECT_OP_RO_PERM 

Только чтение, постоянно.

RTFLASH_SECT_OP_RW_TEMP 

Чтение и запись, временно.

RTFLASH_SECT_OP_RW_PERM 

Чтение и запись, постоянно.

RTFLASH_SECT_OP_CD_PERM 

Режим CD-ROM, постоянно.

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