Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Функция позволяет получить специфическую для устройств Рутокен информацию: класс токена, количество свободной и общей памяти, тип токена, номер протокола, количество оставшихся попыток ввода пин-кода Пользователя и Администратора и т.д. По сравнению с похожей по назначению стандартной функции C_GetTokenInfo функция расширения предоставляет более полную информацию о токене.

...

slotID[in]

идентификатор слота, к которому подключен токен

pUserPin или pOldLocalPin[in]указатель на текущий PIN-код Пользователя или на текущий локальный PIN-код
ulUserPinLen или pOldLocalPinLen[in]длина текущего PIN-кода Пользователя или длина текущего локального PIN-кода
pNewLocalPin[in]указатель на новый Локальный PIN-код

ulNewLocalPinLen

[in]длина нового Локального PIN-кода

ulLocalID

[in]идентификатор Локального PIN-кода в пределах от 0x03 до 0x1E

Возвращаемые значения

CKR_OK – функция выполнена успешно.

...

CKR_OK – функция выполнена успешно.,
CKR_ARGUMENTS_BAD,

CKR_OPERATION_ACTIVE,

CKR_FUNCTION_FAILED,

...

CKR_OK – функция выполнена успешно.
CKR_CERT_CHAIN_NOT_VERIFIED – функция выполнена успешно, но цепочка сертификации не проверялась,

CKR_ARGUMENTS_BAD,

CKR_CERT_CHAIN_NOT_VERIFIED,

...

 

AUI Button
button-stylePrimary
button-textподробнее про управление памятью
button-urlhttps://dev.rutoken.ru/pages/viewpage.action?pageId=13795364#id-%D0%92%D1%81%D1%82%D1%80%D0%B0%D0%B8%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D1%83%D1%81%D1%82%D1%80%D0%BE%D0%B9%D1%81%D1%82%D0%B2%D0%A0%D1%83%D1%82%D0%BE%D0%BA%D0%B5%D0%BD%D1%87%D0%B5%D1%80%D0%B5%D0%B7PKCS#11ВстраиваниеустройствРутокенчерезPKCS11-%D0%A3%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5%D0%BF%D0%B0%D0%BC%D1%8F%D1%82%D1%8C%D1%8E%D0%A0%D1%83%D1%82%D0%BE%D0%BA%D0%B5%D0%BD%D0%AD%D0%A6%D0%9FFlashУправлениепамятьюРутокенЭЦПFlash

C_EX_GetDriveSize()

Назначение

Возращает Возвращает размер флеш-памяти токена.

...

CKR_OK – функция выполнена успешно.

Примечания

Формат возвращаемой записи журнала и пример парсинга доступны по ссылке.

Пример

...

collapsetrue

...

Журнал позволяет хранить только одну запись с информацией о последней выполненной операции подписи. Неудачные попытки подписи в журнале не фиксируются. Описание формата записи журнала доступно по ссылке.

Для получения записи журнала необходимо вызвать функцию C_EX_GetJournal() с переданными в нее значением слота, к которому подключен Рутокен  ЭЦП, и данными буфера, в который будет возвращена запись журнала. Вызов функции C_EX_GetJournal() с указателем на NULL вместо буфера вернет длину записи журнала.

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

CK_BYTE_PTR           pJournal = NULL_PTR;          // Указатель на значение журнала
CK_ULONG              ulJournalSize = 0;            // Размер журнала
  
while(TRUE)
{
...
    /* Получить размер журнала */
    printf("Getting journal size");
    rv =

...

pFunctionListEx->C_EX_GetJournal(aSlots[0],

...

      //

...

Хэндл

...

слота

...

с

...

подключенным

...

токеном
                                          NULL_PTR,

...

       // Указатель на журнал
                                          &ulJournalSize);//

...

Размер

...

журнала
    if (rv

...

!=

...

CKR_OK)

...


    {
        printf("

...

->

...

Failed\n");

...


        break;
    }
    printf("

...

->

...

OK\n");

...


  
    pJournal = (CK_BYTE*)malloc(ulSlotCount

...

*

...

sizeof(CK_BYTE));

...


    if (pJournal

...

==

...

NULL)

...


    {
        printf("Memory

...

allocation

...

for

...

pJournal

...

failed!

...

\n

...

");
        break;
    }
    memset(pJournal,

...

 0,

...

(ulJournalSize

...

*

...

sizeof(CK_BYTE)));

...


  
    /*

...

Получить

...

журнал

...

*/

...


    printf("Getting

...

journal");

...


    rv = pFunctionListEx->C_EX_GetJournal(aSlots[0],

...

       //

...

Хэндл

...

слота

...

с

...

подключенным

...

токеном
                                          pJournal,       // Указатель на журнал
                                          &ulJournalSize);//

...

Размер

...

журнала
    if (rv

...

!=

...

CKR_OK)

...


    {
        printf("

...

->

...

Failed

...

%X\n",

...

(int)rv);

...


        break;
    }
    printf("

...

->

...

OK\n");

...


  
    ...

...


    break;

...


}


к содержанию ↑

Функции для работы с беспроводным каналом связи 

...

CKR_OK – функция выполнена успешно.

Пример

Code Block
collapsetrue
CK_BYTE_PTR		pInfo

.
.
rv = pfGetFunctionListEx -> C_EX_FreeBuffer(pInfo);				// очистка буфера, использующегося функцией C_EX_GetCertificateInfoText()
if (rv != CKR_OK)												// проверка результата
	printf("C_EX_FreeBuffer() -> failed \n");
else
	printf("C_EX_FreeBuffer() -> OK \n"); 

...