Перейти к содержимому

Структуры для приложения PKI

USB-токены и смарт-карты JaCartaAPI и SDKUSB-токены и смарт-карты JaCarta

JC_PKI_PERSONALIZATION_INFO_PTR

typedef JC_PKI_PERSONALIZATION_INFO CK_PTR JC_PKI_PERSONALIZATION_INFO_PTR;

Настройки апплета PKI при инициализации

typedef struct JC_PKI_PERSONALIZATION_INFO {
CK_BYTE IsPersonalized;
/* общая информация */
CK_ULONG MaxDFSize;
CK_BYTE UserMaxAttempts;
CK_BYTE UserMaxUnblock;
CK_BYTE AdminMaxAttempts;
CK_BYTE AdminIsChalResp;
JC_PKI_AUTHTYPE UserPinType;
CK_BYTE CardType;
/* настройки сложности ПИН-кода Пользователя */
CK_BYTE UserMinChars;
CK_BYTE UserMaxChars;
CK_BYTE UserMinAlphaChars;
CK_BYTE UserMinLowerChars;
CK_BYTE UserMinUpperChars;
CK_BYTE UserMinDigits;
CK_BYTE UserMinNonAlphaChars;
CK_BYTE UserPinHistorySize;
/* настройки сложности ПИН-кода Администратора */
CK_BYTE AdminMinChars;
CK_BYTE AdminMaxChars;
CK_BYTE AdminMinAlphaChars;
CK_BYTE AdminMinLowerChars;
CK_BYTE AdminMinUpperChars;
CK_BYTE AdminMinDigits;
CK_BYTE AdminMinNonAlphaChars;
CK_ULONG UserPINValidForSeconds;
CK_ULONG UserPINExpiresAfterDays;
CK_BYTE AllowCardWipe;
CK_BYTE BioImageQuality;
JC_PKI_BIO_PURPOSE BioPurpose;
CK_BYTE BioMaxFingers;
CK_BYTE X931Use;
CK_BYTE BioMaxUnblock;
CK_BYTE UserMustChangeAfterUnlock;
CK_BYTE UserMaxRepeatingPin;
CK_BYTE UserMaxSequencePin;
CK_BYTE AdminMaxRepeatingPin;
CK_BYTE AdminMaxSequencePin;
CK_BYTE DSSupport;
CK_BYTE MaxRSA1024Keys;
CK_BYTE MaxRSA2048Keys;
CK_BYTE DSPinMaxChars;
CK_BYTE DSPinMinChars;
CK_BYTE DSPinMinDigits;
CK_BYTE DSPinMinAlphaChars;
CK_BYTE DSPinMinNonAlphaChars;
CK_BYTE DSPinMinLowerChars;
CK_BYTE DSPinMinUpperChars;
CK_BYTE DSPinMinAlphabeticChars;
CK_BYTE DSPinMaxRepeatingPin;
CK_BYTE DSPinMaxSequencePin;
CK_BYTE DSPinMaxUnblock;
CK_BYTE DSPinMaxAttempts;
CK_BYTE DSPUKMaxChars;
CK_BYTE DSPUKMinChars;
CK_BYTE DSPUKMinDigits;
CK_BYTE DSPUKMinAlphaChars;
CK_BYTE DSPUKMinNonAlphaChars;
CK_BYTE DSPUKMinLowerChars;
CK_BYTE DSPUKMinUpperChars;
CK_BYTE DSPUKMinAlphabeticChars;
CK_BYTE DSPUKMaxRepeatingPin;
CK_BYTE DSPUKMaxSequencePin;
CK_BYTE DSPUKMaxUnblock;
CK_BYTE DSPUKMaxAttempts;
CK_BYTE DSSynchronizationOption;
CK_BYTE DSVerificationPolicy;
CK_BYTE DSActivationPINValue[16];
CK_BYTE DSActivationPINLen;
CK_BYTE DSDeactivationPINValue[16];
CK_BYTE DSDeactivationPINLen;
CK_BYTE UserPinAlways;
CK_BYTE BioType;
CK_BYTE UserMustChangeAfterFirstUse;
CK_BYTE StartDate[8];
CK_BYTE DefaultFinger;
JC_PKI_SECURE_MESSAGING_MODE SecureMessagingMode;
CK_BYTE NewAdminPinLength;
CK_BYTE NewAdminPin[24];
} JC_PKI_PERSONALIZATION_INFO;
  • CK_BYTE IsPersonalized — Признак того, что апплет персонализирован.
  • CK_ULONG MaxDFSize — Максимальный размер DF (Dedicated File).
  • CK_BYTE UserMaxAttempts — Максимальное число попыток ввода ПИН-кода Пользователя.
  • CK_BYTE UserMaxUnblock — Максимальное число попыток разблокировки ПИН-кода Пользователя.
  • CK_BYTE AdminMaxAttempts — Максимальное число попыток ввода ПИН-кода Администратора.
  • CK_BYTE AdminIsChalResp — Признак того, что для аутентификации Администратором требуется механизм “Запрос-Ответ”.
  • JC_PKI_AUTHTYPE UserPinType — Тип аутентификации Пользователя.
  • CK_BYTE CardType — Тип карты — не используется.
  • CK_BYTE UserMinChars — Минимальная длина ПИН-кода Пользователя.
  • CK_BYTE UserMaxChars — Максимальная длина ПИН-кода Пользователя.
  • CK_BYTE UserMinAlphaChars — Минимальное количество буквенных символов ПИН-кода Пользователя.
  • CK_BYTE UserMinLowerChars — Минимальное количество символов нижнего регистра ПИН-кода Пользователя.
  • CK_BYTE UserMinUpperChars — Минимальное количество символов верхнего регистра ПИН-кода Пользователя.
  • CK_BYTE UserMinDigits — Минимальное количество цифровых символов ПИН-кода Пользователя.
  • CK_BYTE UserMinNonAlphaChars — Минимальное количество небуквенных символов ПИН-кода Пользователя.
  • CK_BYTE UserPinHistorySize — Размер истории ПИН-кода Пользователя.
  • CK_BYTE AdminMinChars — Минимальная длина ПИН-кода Администратора.
  • CK_BYTE AdminMaxChars — Максимальная длина ПИН-кода Администратора.
  • CK_BYTE AdminMinAlphaChars — Минимальное количество буквенных символов ПИН-кода Администратора.
  • CK_BYTE AdminMinLowerChars — Минимальное количество символов нижнего регистра ПИН-кода Администратора.
  • CK_BYTE AdminMinUpperChars — Минимальное количество символов верхнего регистра ПИН-кода Администратора.
  • CK_BYTE AdminMinDigits — Минимальное количество цифровых символов ПИН-кода Администратора.
  • CK_BYTE AdminMinNonAlphaChars — Минимальное количество небуквенных символов ПИН-кода Администратора.
  • CK_ULONG UserPINValidForSeconds — Количество секунд, в течение которых ПИН-код Пользователя действителен после проверки.
  • CK_ULONG UserPINExpiresAfterDays — Количество дней, через которое истекает срок действия ПИН-кода Пользователя.
  • CK_BYTE AllowCardWipe — Признак того, что разрешается полная очистка карты.
  • CK_BYTE BioImageQuality — Качество отпечатка пальца (от 1 до 100).
  • JC_PKI_BIO_PURPOSE BioPurpose — Назначение биометрии.
  • CK_BYTE BioMaxFingers — Максимальное количество отпечатков пальцев.
  • CK_BYTE BioMaxUnblock — Максимальное число попыток разблокировки биометрии.
  • CK_BYTE UserMustChangeAfterUnlock — Признак, указывающий на необходимость сменить ПИН-код Пользователя после разблокировки.
  • CK_BYTE UserMaxRepeatingPin — Максимальное количество повторяющихся символов в ПИН-коде Пользователя.
  • CK_BYTE UserMaxSequencePin — Максимальное количество идущих подряд символов в ПИН-коде Пользователя.
  • CK_BYTE AdminMaxRepeatingPin — Максимальное количество повторяющихся символов в ПИН-коде Администратора.
  • CK_BYTE AdminMaxSequencePin — Максимальное количество идущих подряд символов в ПИН-коде Администратора.
  • CK_BYTE DSSupport — Признак поддержки цифровой подписи (DS).
  • CK_BYTE MaxRSA1024Keys — Максимальное количество ключей RSA-1024.
  • CK_BYTE MaxRSA2048Keys — Максимальное количество ключей RSA-2048.
  • CK_BYTE DSPinMaxChars — Максимальная длина ПИН-кода DS.
  • CK_BYTE DSPinMinChars — Минимальная длина ПИН-кода DS.
  • CK_BYTE DSPinMinDigits — Минимальное количество цифровых символов ПИН-кода DS.
  • CK_BYTE DSPinMinAlphaChars — Минимальное количество буквенных символов ПИН-кода DS.
  • CK_BYTE DSPinMinNonAlphaChars — Минимальное количество небуквенных символов ПИН-кода DS.
  • CK_BYTE DSPinMinLowerChars — Минимальное количество символов нижнего регистра ПИН-кода DS.
  • CK_BYTE DSPinMinUpperChars — Минимальное количество символов верхнего регистра ПИН-кода DS.
  • CK_BYTE DSPinMinAlphabeticChars — Минимальное количество алфавитных символов ПИН-кода DS.
  • CK_BYTE DSPinMaxRepeatingPin — Максимальное количество повторяющихся символов в ПИН-коде DS.
  • CK_BYTE DSPinMaxSequencePin — Максимальное количество идущих подряд символов в ПИН-коде DS.
  • CK_BYTE DSPinMaxUnblock — Максимальное число попыток разблокировки ПИН-кода DS.
  • CK_BYTE DSPinMaxAttempts — Максимальное число попыток ввода ПИН-кода DS.
  • CK_BYTE DSPUKMaxChars — Максимальная длина ПИН-кода DS PUK.
  • CK_BYTE DSPUKMinChars — Минимальная длина ПИН-кода DS PUK.
  • CK_BYTE DSPUKMinDigits — Минимальное количество цифровых символов ПИН-кода DS PUK.
  • CK_BYTE DSPUKMinAlphaChars — Минимальное количество буквенных символов ПИН-кода DS PUK.
  • CK_BYTE DSPUKMinNonAlphaChars — Минимальное количество небуквенных символов ПИН-кода DS PUK.
  • CK_BYTE DSPUKMinLowerChars — Минимальное количество символов нижнего регистра ПИН-кода DS PUK.
  • CK_BYTE DSPUKMinUpperChars — Минимальное количество символов верхнего регистра ПИН-кода DS PUK.
  • CK_BYTE DSPUKMinAlphabeticChars — Минимальное количество алфавитных символов ПИН-кода DS PUK.
  • CK_BYTE DSPUKMaxRepeatingPin — Максимальное количество повторяющихся символов в ПИН-коде DS PUK.
  • CK_BYTE DSPUKMaxSequencePin — Максимальное количество идущих подряд символов в ПИН-коде DS PUK.
  • CK_BYTE DSPUKMaxUnblock — Максимальное число попыток разблокировки ПИН-кода DS PUK.
  • CK_BYTE DSPUKMaxAttempts — Максимальное число попыток ввода ПИН-кода DS PUK.
  • CK_BYTE DSSynchronizationOption — Опция синхронизации DS.
  • CK_BYTE DSVerificationPolicy — Политика проверки DS.
  • CK_BYTE DSActivationPINValue[16] — Значение активационного ПИН-кода DS.
  • CK_BYTE DSActivationPINLen — Длина активационного ПИН-кода DS.
  • CK_BYTE DSDeactivationPINValue[16] — Значение деактивационного ПИН-кода DS.
  • CK_BYTE DSDeactivationPINLen — Длина деактивационного ПИН-кода DS.
  • CK_BYTE UserPinAlways — GUI для ввода User PIN открывается при каждой операции с закрытым ключом (не используется).
  • CK_BYTE BioType — Применяемый биометрический алгоритм.
  • CK_BYTE UserMustChangeAfterFirstUse — Признак, указывающий на необходимость сменить ПИН-код Пользователя после первой аутентификации.
  • CK_BYTE StartDate[8] — Срок начала действия ПИН-кода.
  • CK_BYTE DefaultFinger — Палец по умолчанию.
  • JC_PKI_SECURE_MESSAGING_MODE SecureMessagingMode — Режим безопасного обмена сообщениями.
  • CK_BYTE NewAdminPinLength — Длина нового ПИН-кода Администратора (может принимать значение 0).
  • CK_BYTE NewAdminPin[24] — Буфер нового ПИН-кода Администратора.

Используется в:

Указатель на структуру JC_PKI_PIN_INFO.

typedef JC_PKI_PIN_INFO CK_PTR JC_PKI_PIN_INFO_PTR;

JC_PKI_PIN_INFO

typedef struct JC_PKI_PIN_INFO {
CK_BYTE UserPinRemains;
CK_BYTE UserBioPinRemains;
CK_BYTE AdminPinRemains;
} JC_PKI_PIN_INFO;
  • CK_BYTE UserPinRemains — количество попыток ввода PIN-кода пользователя.
  • CK_BYTE UserBioPinRemains — количество попыток аутентификации пользователя через BIO.
  • CK_BYTE AdminPinRemains — количество попыток ввода PIN-кода администратора. Используется в:
  • JC_PKI_GetPINInfo().

Указатель на структуру JC_PKI_PIN_COUNTERS.

typedef JC_PKI_PIN_COUNTERS CK_PTR JC_PKI_PIN_COUNTERS_PTR;

JC_PKI_PIN_COUNTERS Информация о PIN-коде Laser.

typedef struct JC_PKI_PIN_COUNTERS {
CK_ULONG ulRetryRemains;
CK_ULONG ulMaxRetryCounter;
CK_ULONG ulUnlockRemains;
CK_ULONG ulMaxUnlockCounter;
} JC_PKI_PIN_COUNTERS;
  • CK_ULONG ulRetryRemains — оставшееся количество попыток неправильного ввода.
  • CK_ULONG ulMaxRetryCounter — максимально допустимое количество попыток неправильного ввода.
  • CK_ULONG ulUnlockRemains — оставшееся количество разблокировок.
  • CK_ULONG ulMaxUnlockCounter — максимальное количество разблокировок. Используется в:
  • JC_PKI_ReadPinCounters()

Указатель на структуру JC_PKI_BIO_SUPPORT_INFO

typedef JC_PKI_BIO_SUPPORT_INFO CK_PTR JC_PKI_BIO_SUPPORT_INFO_PTR;

JC_PKI_BIO_SUPPORT_INFO

typedef struct JC_PKI_BIO_SUPPORT_INFO { CK_BBOOL Enabled; JC_PKI_AUTHTYPE AuthType; } JC_PKI_BIO_SUPPORT_INFO;
  • CK_BBOOL Enabled — поддерживается ли биометрия (CK_TRUE — поддерживается, CK_FALSE — нет).
  • JC_PKI_AUTHTYPE AuthType — тип аутентификации для апплета Laser. Возможные значения:
    • JC_PKI_AUTHTYPE_UNDEFINED (0x00) – тип аутентификации неизвестен;
    • JC_PKI_AUTHTYPE_PIN (0x01) – по PIN-коду;
    • JC_PKI_AUTHTYPE_BIO (0x03) – по отпечатку пальца;
    • JC_PKI_AUTHTYPE_PIN_OR_BIO (0x04) – по PIN-коду или отпечатку пальца;
    • JC_PKI_AUTHTYPE_PIN_AND_BIO (0x05) – по PIN-коду и отпечатку пальца.

Используется функцией JC_PKI_BIO_GetSupported().

JC_PKI_PIN_POLICY_PTR

typedef JC_PKI_PIN_POLICY CK_PTR JC_PKI_PIN_POLICY_PTR;

Настройки политики PIN-кода

typedef struct JC_PKI_PIN_POLICY
{
CK_BYTE MinChars;
CK_BYTE MaxChars;
CK_BYTE MinAlphaChars;
CK_BYTE MinLowerChars;
CK_BYTE MinUpperChars;
CK_BYTE MinDigits;
CK_BYTE MinNonAlphaChars;
CK_BYTE PinHistorySize;
CK_ULONG PINValidForSeconds;
CK_ULONG PINExpiresAfterDays;
CK_BYTE MaxRepeatingChars;
CK_BYTE MaxSequencePin;
} JC_PKI_PIN_POLICY;
  • CK_BYTE MinChars — минимальное количество символов PIN-кода.
  • CK_BYTE MaxChars — максимальное количество символов PIN-кода.
  • CK_BYTE MinAlphaChars — минимальное количество буквенных символов.
  • CK_BYTE MinLowerChars — минимальное количество символов нижнего регистра.
  • CK_BYTE MinUpperChars — минимальное количество символов верхнего регистра.
  • CK_BYTE MinDigits — минимальное количество цифровых символов.
  • CK_BYTE MinNonAlphaChars — минимальное количество специальных символов.
  • CK_BYTE PinHistorySize — размер истории PIN-кода.
  • CK_ULONG PINValidForSeconds — время в секундах после проверки PIN-кода, в течение которого действует сессия.
  • CK_ULONG PINExpiresAfterDays — время в днях после установки, когда действителен PIN-код.
  • CK_BYTE MaxRepeatingChars — максимальное количество повторяющихся символов в PIN-коде.
  • CK_BYTE MaxSequencePin — не используется. Используется в:
  • JC_PKI_GetPinPolicy
  • JC_PKI_SetPinPolicy

Указатель JC_PKI_BIO_SUPPORT_INFO_EX_PTR

typedef JC_PKI_BIO_SUPPORT_INFO_EX CK_PTR JC_PKI_BIO_SUPPORT_INFO_EX_PTR;

Расширенная информация о поддержке биометрии

typedef struct JC_PKI_BIO_SUPPORT_INFO_EX
{
JC_PKI_BIO_SUPPORT_INFO pkiBioSupportInfo;
JC_PKI_BIO_BIOMETRY_TYPE pkiBioType;
CK_BBOOL pkiBioScanner;
CK_BBOOL pkiSecureBio;
} JC_PKI_BIO_SUPPORT_INFO_EX;
  • JC_PKI_BIO_SUPPORT_INFO pkiBioSupportInfo — стандартная информация о поддержке биометрии.
  • JC_PKI_BIO_BIOMETRY_TYPE pkiBioType — тип поддерживаемой биометрии.
  • CK_BBOOL pkiBioScanner — подключен ли сканер отпечатков.
  • CK_BBOOL pkiSecureBio — используется ли Aladdin Secure BIO. Используется в:
  • JC_PKI_BIO_GetSupportedEx