Ошибка инициализации апплета

Ошибка инициализации апплета

ID статьи: 419

Последнее обновление: 24 Jun, 2022

ID статьи: 419

Последнее обновление: 24 Jun, 2022

Ревизия: 1

Просмотры: 165

Комментарии: 0

Версия ПО:  JMS  3.7.0.1777

Токены:  JaCarta PKI

Проблема: 

При выпуске ключевого носителя появляется сообщение: Ошибка инициализации апплета: CKR_ARGUMENTS_BAD 

Причина:

В настройках профиля инициализации JaCarta PKI,  в параметре: «Запоминать последние Х PIN-кодов» указано значение больше 10 (внутренние ограничения ключевого носителя).

Решение:

  • Значение параметра Запоминать последние Х PIN-кодов не должно превышать 10

ID статьи: 419

Последнее обновление: 24 Jun, 2022

Ревизия: 1

Просмотры: 165

Комментарии: 0

The first time I tried OpenWebStart on a Mac with this applet, it loaded nicely but it no longer works.

I am guessing I have changed something in the configuration but so far I cannot figure out what that might be.

Any suggestions on what I might try?

net.sourceforge.jnlp.LaunchException: Fatal: Initialization Error: Could not initialize applet. For more information click «more information button».
at net.sourceforge.jnlp.Launcher.createApplet(Launcher.java:650)
at net.sourceforge.jnlp.Launcher.launchApplet(Launcher.java:532)
at net.sourceforge.jnlp.Launcher.access$400(Launcher.java:70)
at net.sourceforge.jnlp.Launcher$TgThread.run(Launcher.java:760)
Caused by: java.lang.NullPointerException
at net.sourceforge.jnlp.runtime.JNLPClassLoader.getAccessControlContextForClassLoading(JNLPClassLoader.java:2080)
at net.sourceforge.jnlp.runtime.JNLPClassLoader.findClass(JNLPClassLoader.java:1584)
at net.sourceforge.jnlp.runtime.JNLPClassLoader$CodeBaseClassLoader.findClass(JNLPClassLoader.java:2352)
at net.sourceforge.jnlp.runtime.JNLPClassLoader.initializeResources(JNLPClassLoader.java:754)
at net.sourceforge.jnlp.runtime.JNLPClassLoader.(JNLPClassLoader.java:346)
at net.sourceforge.jnlp.runtime.JNLPClassLoader.createInstance(JNLPClassLoader.java:419)
at net.sourceforge.jnlp.runtime.JNLPClassLoader.getInstance(JNLPClassLoader.java:491)
at net.sourceforge.jnlp.runtime.JNLPClassLoader.getInstance(JNLPClassLoader.java:464)
at net.sourceforge.jnlp.Launcher.createApplet(Launcher.java:608)

Не удалось инициализировать ошибку апплета

Я установил Java версии 1.7 на моем компьютере с Ubuntu. У меня установлен последний веб-плагин для чая со льдом на Firefox . Я установил Java3D 1.5.2 API. Я установил пути для java и java-3d . Тем не менее, когда я нажимаю http://ccnsb06-iiith.vlabs.ac.in/exp2/ve_exp2.html котором запущен апплет, основанный на java 3d api, выдается ошибка.

https://drive.google.com/file/d/0B41p1ExqjUEOM3hjdUNwNjBldXc/view?usp=sharing

PS: у меня та же проблема с моей машиной CentOs 6

0

java

Источник


Sai sambasiva

25 май ’15 в 09:36
2015-05-25 09:36

2015-05-25 09:36

1
ответ

Решение

Извините, у всех проблема с командой разработчиков, нет проблем с инициализацией программного обеспечения

0

Источник


Sai sambasiva

09 июн ’15 в 11:52
2015-06-09 11:52

2015-06-09 11:52

Другие вопросы по тегам
java

Содержание

  1. Pkcs11 ckr device error
  2. Стандартные коды ошибок
  3. Pkcs11 ckr device error
  4. Стандартные коды ошибок
  5. Функции управления слотами и устройствами¶
  6. C_GetSlotList ¶
  7. C_GetSlotInfo ¶
  8. C_GetTokenInfo ¶
  9. C_WaitForSlotEvent ¶
  10. C_GetMechanismList ¶
  11. C_GetMechanismInfo ¶
  12. C_InitToken ¶
  13. C_InitPIN ¶
  14. C_SetPIN ¶

Pkcs11 ckr device error

Все функции из реализации стандарта PKCS#11 возвращают различные коды ошибок. Все возвращаемые коды ошибок делятся на две большие группы:

  • стандартные коды ошибок, которые описаны в стандарте. Для каждого кода ошибки есть разъяснение, в каких ситуациях он может быть возвращен.
  • специальные коды ошибок, которые определяются каждым разработчиком реализации стандарта PKCS#11. Ситуации, в которых могут быть возвращены специальные коды ошибок разработчик реализации стандарта определяет самостоятельно.

Все функции из реализации стандарта PKCS#11 возвращают специальные коды ошибок (определяются производителем).

Все функции из реализации расширения стандарта PKCS#11 возвращают специальные коды ошибок (определяются производителем).

Стандартные коды ошибок

В силу особенностей реализации библиотек rtPKCS11 и rtPKCS11ECP некоторые стандартные функции могут вернуть стандартный код ошибки PKCS#11, не входящий в список допустимых для данной функции. Подобная ситуация является исключением. Стандартные коды ошибок, возвращаемые каждой функцией в исключительных ситуациях, перечислены в описании для каждой функции отдельно.

В таблице ниже приведен список кодов ошибок стандарта PKCS#11 и их описаний, поддерживаемых устройствами Рутокен. Подробную информацию по каждому коду ошибки можно найти в стандарте (английский язык).

Коды ошибок стандарта PKCS #11, поддерживаемые устройствами Рутокен

Источник

Pkcs11 ckr device error

Все функции из реализации стандарта PKCS#11 возвращают различные коды ошибок. Все возвращаемые коды ошибок делятся на две большие группы:

  • стандартные коды ошибок, которые описаны в стандарте. Для каждого кода ошибки есть разъяснение, в каких ситуациях он может быть возвращен.
  • специальные коды ошибок, которые определяются каждым разработчиком реализации стандарта PKCS#11. Ситуации, в которых могут быть возвращены специальные коды ошибок разработчик реализации стандарта определяет самостоятельно.

Все функции из реализации стандарта PKCS#11 возвращают специальные коды ошибок (определяются производителем).

Все функции из реализации расширения стандарта PKCS#11 возвращают специальные коды ошибок (определяются производителем).

Стандартные коды ошибок

В силу особенностей реализации библиотек rtPKCS11 и rtPKCS11ECP некоторые стандартные функции могут вернуть стандартный код ошибки PKCS#11, не входящий в список допустимых для данной функции. Подобная ситуация является исключением. Стандартные коды ошибок, возвращаемые каждой функцией в исключительных ситуациях, перечислены в описании для каждой функции отдельно.

В таблице ниже приведен список кодов ошибок стандарта PKCS#11 и их описаний, поддерживаемых устройствами Рутокен. Подробную информацию по каждому коду ошибки можно найти в стандарте (английский язык).

Коды ошибок стандарта PKCS #11, поддерживаемые устройствами Рутокен

Источник

Функции управления слотами и устройствами¶

C_GetSlotList ¶

CK_RV C_GetSlotList ( CK_BBOOLtokenPresent, CK_SLOT_ID_PTRpSlotList, CK_ULONG_PTRpulCount ) ¶

Параметры:
  • tokenPresent (in) – определяет, что возвращаемый список содержит только слоты с подключенными токенами/ридерами со смарт-картами ( CK_TRUE ) или все слоты, в т.ч. подключенные ридеры без смарт-карт ( CK_FALSE ).
  • pSlotList (out) – массив слотов.
  • pulCount (in/out) – указатель на переменную типа CK_ULONG для записи количества слотов.

Функция используется для получения списка слотов в системе. При этом возвращает список только слотов с поддерживаемыми апплетами.

Работа с данной функцией осуществляется в два шага:

  1. Если pSlotList == NULL_PTR – функция возвращает количество слотов в pulCount .
  2. Если pSlotList != NULL_PTR – pulCount должен содержать размер (в элементах CK_SLOT_ID ) буфера, указывающего на pSlotList . Если размер буфера достаточен, список слотов возвращается через pSlotList .

Поскольку в библиотеке всегда ровно 32 слота, подключение или отключение аппаратных устройств не влияет на список слотов, который функция C_GetSlotList записывает в массив CK_SLOT_ID , когда первый аргумент этой функции – tokenPresent – принимает значение CK_FALSE . Обратите внимание, что на каждый апплет выделятся отдельный слот, поэтому одному токену может соответствовать несколько слотов.

Запускается в режимах

Результат:
  • CKR_ARGUMENTS_BAD – недопустимые аргументы.
  • CKR_BUFFER_TOO_SMALL – вывод функции слишком велик для предоставленного буфера.
  • CKR_CRYPTOKI_NOT_INITIALIZED – функция не может быть выполнена, т.к. библиотека еще не была инициализирована (см. C_Initialize() ).
  • CKR_FUNCTION_FAILED – выполнение функции было прервано или она не может быть выполнена.
  • CKR_GENERAL_ERROR – общий сбой при работе с библиотекой.
  • CKR_HOST_MEMORY – компьютер, на котором запущена библиотека, не имеет достаточно памяти для выполнения функции.
  • CKR_OK – функция выполнена успешно.

Полный список ошибок см. в приложении .

C_GetSlotInfo ¶

CK_RV C_GetSlotInfo ( CK_SLOT_IDslotID, CK_SLOT_INFO_PTRpInfo ) ¶

Параметры:
  • slotID (in) – идентификатор слота.
  • pInfo (out) – указатель на массив байт для записи информации о слоте.

Получает информацию о заданном слоте.

Согласно стандарту PKCS #11 функция C_GetSlotInfo записывает сведения о подключённом устройстве в структуру типа CK_SLOT_INFO .

Запускается в режимах

Результат:
  • CKR_ARGUMENTS_BAD – недопустимые аргументы.
  • CKR_CRYPTOKI_NOT_INITIALIZED – функция не может быть выполнена, т.к. библиотека еще не была инициализирована (см. C_Initialize() ).
  • CKR_DEVICE_ERROR – возникла проблема с токеном и/или слотом.
  • CKR_FUNCTION_FAILED – выполнение функции было прервано или она не может быть выполнена.
  • CKR_GENERAL_ERROR – общий сбой при работе с библиотекой.
  • CKR_HOST_MEMORY – компьютер, на котором запущена библиотека, не имеет достаточно памяти для выполнения функции.
  • CKR_OK – функция выполнена успешно.

Полный список ошибок см. в приложении .

C_GetTokenInfo ¶

CK_RV C_GetTokenInfo ( CK_SLOT_IDslotID, CK_TOKEN_INFO_PTRpInfo ) ¶

Параметры:
  • slotID (in) – идентификатор токена.
  • pInfo (out) – указатель на информацию об апплете.

Возвращает указатель на структуру CK_TOKEN_INFO с информацией об апплете, соответствующем заданному слоту. В случае использования Антифрод-терминала возвращает значение флага CKF_PROTECTED_AUTHENTICATION_PATH .

Запускается в режимах

Результат:
  • CKR_CRYPTOKI_NOT_INITIALIZED – функция не может быть выполнена, т.к. библиотека еще не была инициализирована (см. C_Initialize() ).
  • CKR_DEVICE_ERROR – возникла проблема с токеном и/или слотом.
  • CKR_DEVICE_REMOVED – токен был изъят из слота.
  • CKR_FUNCTION_FAILED – выполнение функции было прервано или она не может быть выполнена.
  • CKR_GENERAL_ERROR – общий сбой при работе с библиотекой.
  • CKR_HOST_MEMORY – компьютер, на котором запущена библиотека, не имеет достаточно памяти для выполнения функции.
  • CKR_OK – функция выполнена успешно.
  • CKR_SLOT_ID_INVALID – недопустимый идентификатор слота.
  • CKR_TOKEN_NOT_PRESENT – в слоте отсутствует токен.
  • CKR_TOKEN_NOT_RECOGNIZED – токен не поддерживается.
  • CKR_ARGUMENTS_BAD – недопустимые аргументы.

Полный список ошибок см. в приложении .

C_WaitForSlotEvent ¶

CK_RV C_WaitForSlotEvent ( CK_FLAGSflags, CK_SLOT_ID_PTRpSlot, CK_VOID_PTRpReserved ) ¶

Параметры:
  • flags (in) – флаги. На данный момент поддерживается только флаг CKF_DONT_BLOCK , который определяет, блокируется ли вызов C_WaitForSlotEvent .
  • pSlot (in) – указывает на объект, в который можно записать идентификатор слота.
  • pReserved (in) – зарезервирован для будущих версий. Для этой версии должен быть равен NULL_PTR .

Отслеживает отключение и подключение устройств.

Запускается в режимах

Результат:
  • CKR_ARGUMENTS_BAD – недопустимые аргументы.
  • CKR_CRYPTOKI_NOT_INITIALIZED – функция не может быть выполнена, т.к. библиотека еще не была инициализирована (см. C_Initialize() ).
  • CKR_FUNCTION_FAILED – выполнение функции было прервано или она не может быть выполнена.
  • CKR_GENERAL_ERROR – общий сбой при работе с библиотекой.
  • CKR_HOST_MEMORY – компьютер, на котором запущена библиотека, не имеет достаточно памяти для выполнения функции.
  • CKR_NO_EVENT – возвращается, если C_WaitForSlotEvent вызвана в неблокирующемся режиме и новых событий слота нет.
  • CKR_OK – функция выполнена успешно.

Полный список ошибок см. в приложении .

C_GetMechanismList ¶

CK_RV C_GetMechanismList ( CK_SLOT_IDslotID, CK_MECHANISM_TYPE_PTRpMechanismList, CK_ULONG_PTRpulCount ) ¶

Параметры:
  • slotID (in) – идентификатор слота.
  • pMechanismList (out) – список механизмов.
  • pulCount (in/out) – указатель на переменную типа CK_ULONG для записи количества слотов.

Получает список механизмов, поддерживаемых токеном.

Работа с данной функцией осуществляется в два шага:

  1. Если pMechanismList == NULL_PTR – функция возвращает количество механизмов в pulCount .
  2. Если pMechanismList != NULL_PTR – pulCount должен содержать размер (в элементах CK_MECHANISM_TYPE ) буфера, указывающего на pMechanismList . Если размер буфера достаточен, список слотов возвращается через pMechanismList .

Функция C_GetMechanismList записывает в массив список доступных механизмов. Списки механизмов для поддерживаемых апплетов смотри в приложении.

Запускается в режимах

Результат:
  • CKR_ARGUMENTS_BAD – недопустимые аргументы.
  • CKR_BUFFER_TOO_SMALL – вывод функции слишком велик для предоставленного буфера.
  • CKR_CRYPTOKI_NOT_INITIALIZED – функция не может быть выполнена, т.к. библиотека еще не была инициализирована (см. C_Initialize() ).
  • CKR_DEVICE_ERROR – возникла проблема с токеном и/или слотом.
  • CKR_DEVICE_REMOVED – токен был изъят из слота.
  • CKR_DEVICE_MEMORY – памяти токена недостаточно для данной операции.
  • CKR_FUNCTION_FAILED – выполнение функции было прервано или она не может быть выполнена.
  • CKR_GENERAL_ERROR – общий сбой при работе с библиотекой.
  • CKR_HOST_MEMORY – компьютер, на котором запущена библиотека, не имеет достаточно памяти для выполнения функции.
  • CKR_OK – функция выполнена успешно.
  • CKR_SLOT_ID_INVALID – недопустимый идентификатор слота.
  • CKR_TOKEN_NOT_PRESENT – в слоте отсутствует токен.
  • CKR_TOKEN_NOT_RECOGNIZED – токен не поддерживается.

Полный список ошибок см. в приложении .

C_GetMechanismInfo ¶

CK_RV C_GetMechanismInfo ( CK_SLOT_IDslotID, CK_MECHANISM_TYPEtype, CK_MECHANISM_INFO_PTRpInfo ) ¶

Параметры:
  • slotID (in) – идентификатор слота.
  • type (in) – тип механизма.
  • pInfo (out) – указатель на объект для записи информации о механизме.

Получает информацию о заданном механизме.

Запускается в режимах

Результат:
  • CKR_ARGUMENTS_BAD – недопустимые аргументы.
  • CKR_CRYPTOKI_NOT_INITIALIZED – функция не может быть выполнена, т.к. библиотека еще не была инициализирована (см. C_Initialize() ).
  • CKR_DEVICE_ERROR – возникла проблема с токеном и/или слотом.
  • CKR_DEVICE_REMOVED – токен был изъят из слота.
  • CKR_DEVICE_MEMORY – памяти токена недостаточно для данной операции.
  • CKR_FUNCTION_FAILED – выполнение функции было прервано или она не может быть выполнена.
  • CKR_GENERAL_ERROR – общий сбой при работе с библиотекой.
  • CKR_HOST_MEMORY – компьютер, на котором запущена библиотека, не имеет достаточно памяти для выполнения функции.
  • CKR_OK – функция выполнена успешно.
  • CKR_SLOT_ID_INVALID – недопустимый идентификатор слота.
  • CKR_TOKEN_NOT_PRESENT – в слоте отсутствует токен.
  • CKR_TOKEN_NOT_RECOGNIZED – токен не поддерживается.

Полный список ошибок см. в приложении .

C_InitToken ¶

CK_RV C_InitToken ( CK_SLOT_IDslotID, CK_UTF8CHAR_PTRpPin, CK_ULONGulPinLen, CK_UTF8CHAR_PTRpLabel ) ¶

Параметры:
  • slotID (in) – идентификатор слота.
  • pPin (in) – указатель на PIN-код администратора.
  • ulPinLen (in) – длина PIN-кода в байтах.
  • pLabel (in) – указатель на метку токена. При указании нулевой метки токена (NULL_PTR) текущее значение метки сохраняется.

Инициализирует поддерживаемые апплеты и устанавливает метки токена.

Криптотокен

Процесс инициализации предполагает удаление всех объектов, за исключением информации о ДСЧ . При этом:

  • значение PIN-кода администратора остаётся прежним;
  • значение PIN-кода пользователя удаляется.

Криптотокен 2 ЭП

Laser

Для устройств модели JXXX v2.0 операция может выполняться в режимах администратора и гостя. Для всех остальных – только в режиме администратора. Процесс инициализации включает удаление всех объектов и последующую персонализацию апплета согласно установленным настройкам. При этом значения PIN-кодов администратора и пользователя устанавливаются на заданные. Если настройки не были установлены, то используются настройки по умолчанию:

  • PIN-код администратора – 00000000 ,
  • PIN-код пользователя – 11111111 .

Можно произвести полную очистку содержимого смарт-карты/токена, если в качестве значения PIN-кода администратора передать NULL_PTR, а его длину указать как ноль.

Datastore

Операция доступна, если для апплета инициализирован PUK-код пользователя (PIN-код администратора). Процесс инициализации предполагает удаление всех объектов. При этом:

  • значение PIN-кода администратора остаётся прежним,
  • значение PIN-кода пользователя удаляется.

Запускается в режимах

Результат:
  • CKR_ARGUMENTS_BAD – недопустимые аргументы.
  • CKR_CRYPTOKI_NOT_INITIALIZED – функция не может быть выполнена, т.к. библиотека еще не была инициализирована (см. C_Initialize() ).
  • CKR_DEVICE_ERROR – возникла проблема с токеном и/или слотом.
  • CKR_DEVICE_REMOVED – токен был изъят из слота.
  • CKR_FUNCTION_CANCELED – функция была отменена в момент исполнения.
  • CKR_DEVICE_MEMORY – памяти токена недостаточно для данной операции.
  • CKR_FUNCTION_FAILED – выполнение функции было прервано или она не может быть выполнена.
  • CKR_GENERAL_ERROR – общий сбой при работе с библиотекой.
  • CKR_HOST_MEMORY – компьютер, на котором запущена библиотека, не имеет достаточно памяти для выполнения функции.
  • CKR_OK – функция выполнена успешно.
  • CKR_PIN_LOCKED – указанный PIN-код заблокирован и не может быть использован.
  • CKR_SESSION_EXISTS – сеанс с данным токеном уже существует, следовательно, токен не может быть инициализирован.
  • CKR_SLOT_ID_INVALID – недопустимый идентификатор слота.
  • CKR_PIN_INCORRECT – неверный PIN-код.
  • CKR_TOKEN_NOT_PRESENT – в слоте отсутствует токен.
  • CKR_TOKEN_NOT_RECOGNIZED – токен не поддерживается.
  • CKR_TOKEN_WRITE_PROTECTED – данный токен защищен от записи.

Полный список ошибок см. в приложении .

C_InitPIN ¶

CK_RV C_InitPIN ( CK_SESSION_HANDLEhSession, CK_UTF8CHAR_PTRpPin, CK_ULONGulPinLen ) ¶

Параметры:
  • hSession (in) – дескриптор сеанса.
  • pPin (in) – новый PIN-код пользователя.
  • ulPinLen (in) – длина нового PIN-кода пользователя в байтах.

Инициализирует значение PIN-кода пользователя.

PIN-код может содержать символы в кодировке UTF-8 из следующего набора:

  • Буквы: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z А Б В Г Д Е Ё Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я а б в г д е ё ж з и й к л м н о п р с т у ф х ц ч ш щ ъ ы ь э ю я
  • Цифры: 0 1 2 3 4 5 6 7 8 9
  • Спец. символы: ! “ # % & ‘ ( ) * + , — . / : ; ? [ ] ^ _

Криптотокен

По умолчанию PIN-кода пользователя не установлен. Операция доступна, если для апплета не инициализирован PIN-код пользователя. При использовании Антифрод-терминала функция запрашивает PIN-код пользователя с подтверждением на клавиатуре терминала (в этом случае функция вызывается с любым значением параметра pPin ).

Длина PIN-кода – от 6 до 32 символов.

Криптотокен 2 ЭП

Laser

По умолчанию для PIN-кода пользователя установлено значение 11111111 . Операция доступна всегда, при её выполнении изменяется текущий PIN-код пользователя.

Длина PIN-кода – от 4 до 16 символов.

Datastore

По умолчанию для PIN-кода пользователя установлено значение 1234567890 . Операция доступна, если для апплета инициализирован PUK-код пользователя (PIN-код администратора) и не инициализирован PIN-код пользователя.

Длина PIN-кода – от 6 до 32 символов.

Запускается в режимах

Результат:
  • CKR_ARGUMENTS_BAD – недопустимые аргументы.
  • CKR_CRYPTOKI_NOT_INITIALIZED – функция не может быть выполнена, т.к. библиотека еще не была инициализирована (см. C_Initialize() ).
  • CKR_DEVICE_ERROR – возникла проблема с токеном и/или слотом.
  • CKR_DEVICE_REMOVED – токен был изъят из слота.
  • CKR_FUNCTION_CANCELED – функция была отменена в момент исполнения.
  • CKR_DEVICE_MEMORY – памяти токена недостаточно для данной операции.
  • CKR_FUNCTION_FAILED – выполнение функции было прервано или она не может быть выполнена.
  • CKR_GENERAL_ERROR – общий сбой при работе с библиотекой.
  • CKR_HOST_MEMORY – компьютер, на котором запущена библиотека, не имеет достаточно памяти для выполнения функции.
  • CKR_OK – функция выполнена успешно.
  • CKR_PIN_INVALID – недопустимый PIN-код.
  • CKR_PIN_LEN_RANGE – недопустимый размер PIN-кода.
  • CKR_SESSION_CLOSED – сеанс был закрыт в момент выполнения функции.
  • CKR_PIN_LOCKED – указанный PIN-код заблокирован и не может быть использован.
  • CKR_SLOT_ID_INVALID – недопустимый идентификатор слота.
  • CKR_TOKEN_NOT_PRESENT – в слоте отсутствует токен.
  • CKR_SESSION_READ_ONLY – сеанс открыт только на чтение.
  • CKR_SESSION_HANDLE_INVALID – недопустимый дескриптор сеанса.
  • CKR_USER_NOT_LOGGED_IN – действие не может быть выполнено, т.к. пользователь не залогинен.
  • CKR_TOKEN_NOT_RECOGNIZED – токен не поддерживается.
  • CKR_TOKEN_WRITE_PROTECTED – данный токен защищен от записи.

Полный список ошибок см. в приложении .

C_SetPIN ¶

CK_RV C_SetPIN ( CK_SESSION_HANDLEhSession, CK_UTF8CHAR_PTRpOldPin, CK_ULONGulOldLen, CK_UTF8CHAR_PTRpNewPin, CK_ULONGulNewLen ) ¶

Параметры:
  • hSession (in) – дескриптор сеанса.
  • pOldPin (in) – старый PIN-код.
  • ulOldLen (in) – длина старого PIN-кода в байтах.
  • pNewPin (in) – новый PIN-код.
  • ulNewLen (in) – длина нового PIN-кода в байтах.

Меняет PIN-код пользователя/администратора/подписи. PIN-код пользователя должен быть предварительно инициализирован (см. C_InitPIN() ).

PIN-код может содержать символы в кодировке UTF-8 из следующего набора:

  • Буквы: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z А Б В Г Д Е Ё Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я а б в г д е ё ж з и й к л м н о п р с т у ф х ц ч ш щ ъ ы ь э ю я
  • Цифры: 0 1 2 3 4 5 6 7 8 9
  • Спец. символы: ! “ # % & ‘ ( ) * + , — . / : ; ? [ ] ^ _

Криптотокен

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

Длина PIN-кодов пользователя/администратора – от 6 до 32 символов.

При работе апплета Криптотокен с использованием Антифрод-терминала для смены PIN-кода (как пользователя, так и администратора) требуется ввести на терминале текущее значение PIN-кода и новое значение. При этом для подтверждения нового значения PIN-кода запрашивается его повторный ввод.

Криптотокен 2 ЭП

Функция меняет PIN-коды пользователя и подписи.

Длина PIN-кодов пользователя/подписи – от 6 до 32 символов.

Смена ключа администратора безопасности возможна с помощью ПО «АРМ администратора безопасности JaCarta-2 ГОСТ» или «АРМ разработчика JaCarta-2 ГОСТ».

Laser

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

Длина PIN-кодов пользователя/администратора – от 4 до 16 символов.

Datastore

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

Длина PIN-кодов пользователя/администратора – от 6 до 32 символов.

Источник

CKR_ARGUMENTS_BAD

Недопустимый аргумент

CKR_ATTRIBUTE_READ_ONLY

Невозможно установить или изменить значение атрибута приложением

CKR_ATTRIBUTE_SENSITIVE

Атрибут недоступен для чтения

CKR_ATTRIBUTE_TYPE_INVALID

Некорректный тип атрибута

CKR_ATTRIBUTE_VALUE_INVALID

Некорректное значение атрибута

CKR_BUFFER_TOO_SMALL

Размер заданного буфера является недостаточным для вывода результатов выполнения функции

CKR_CANT_LOCK

Библиотека не поддерживает блокировку для защиты потоков; возвращается только при  вызове функции C_Initialize

CKR_CRYPTOKI_ALREADY_INITIALIZED

Библиотека уже инициализирована (предыдущий вызов функции C_Initialize не был сопровожден  соответствующим вызовом функции  С_Finalize); возвращается только при  вызове функции C_Initialize

CKR_CRYPTOKI_NOT_INITIALIZED

Выполнение функции невозможно, так как библиотека не инициализирована; возвращается только при вызове любой функции, за исключением  C_Initialize и С_Finalize

CKR_DATA_INVALID

Некорректные входные данные для выполнения криптографической операции

CKR_DATA_LEN_RANGE

Входные данные имеют некорректный размер для выполнения криптографической операции

CKR_DEVICE_ERROR

Ошибка при обращении к токену или слоту

CKR_DEVICE_MEMORY

Недостаточно памяти токена для выполнения запрошенной функции

CKR_DEVICE_REMOVED

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

CKR_DOMAIN_PARAMS_INVALID

Функции переданы некорректные или не поддерживаемые параметры домена

CKR_ENCRYPTED_DATA_INVALID

Для операции расшифрования переданы некорректно зашифрованные данные

CKR_ENCRYPTED_DATA_LEN_RANGE

Для операции расшифрования переданы зашифрованные данные некорректного размера

CKR_FUNCTION_CANCELED

Выполнение функции было прервано

CKR_FUNCTION_FAILED

При выполнении функции возник сбой

CKR_FUNCTION_NOT_SUPPORTED

Запрашиваемая функция не поддерживается библиотекой

CKR_FUNCTION_REJECTED

Запрос на подпись был отклонен пользователем

CKR_GENERAL_ERROR

Критическая ошибка, связанная с аппаратным обеспечением

CKR_HOST_MEMORY

Недостаточно памяти для выполнения функции на рабочей станции, где установлена библиотека

CKR_KEY_FUNCTION_NOT_PERMITTED

Атрибуты ключа не позволяют выполнить операцию

CKR_KEY_HANDLE_INVALID

Функции передан некорректный идентификатор (хэндл) ключа

CKR_KEY_NOT_WRAPPABLE

Невозможно зашифровать ключ

CKR_KEY_SIZE_RANGE

Недопустимый размер ключа

CKR_KEY_TYPE_INCONSISTENT

Тип ключа не соответствует данному механизму

CKR_KEY_UNEXTRACTABLE

Невозможно зашифровать ключ, так как атрибут CKA_UNEXTRACTABLE установлен в значение CK_TRUE

CKR_MECHANISM_INVALID

Указан неправильный механизм для выполнения криптографической операции

CKR_MECHANISM_PARAM_INVALID

Указаны неправильные параметры механизма для выполнения криптографической операции

CKR_NEED_TO_CREATE_THREADS

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

CKR_OBJECT_HANDLE_INVALID

Функции передан некорректный идентификатор (хэндл) объекта

CKR_OPERATION_ACTIVE

Выполнение операции невозможно, поскольку такая операция уже выполняется

CKR_OPERATION_NOT_INITIALIZED

Невозможно выполнить операцию в этой сессии

CKR_PIN_EXPIRED

Срок действия PIN-кода истек

CKR_PIN_INCORRECT

Функции передан PIN-код, который не соответствует тому, который сохранен на токене

CKR_PIN_INVALID

Значение PIN-кода содержит недопустимые символы

CKR_PIN_LEN_RANGE

Недопустимая длина PIN-кода

CKR_PIN_LOCKED

Авторизация по данному PIN-коду невозможна (превышен допустимый предел последовательного ввода неправильных значений PIN-кода)

CKR_RANDOM_NO_RNG

Данный токен не поддерживает генерацию случайных чисел

CKR_SESSION_CLOSED

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

CKR_SESSION_COUNT

Достигнуто предельное количество открытых сессий для данного токена

CKR_SESSION_EXISTS

Сессия с токеном уже открыта и поэтому токен не может быть инициализирован

CKR_SESSION_HANDLE_INVALID

Функции передан некорректный идентификатор (хэндл) сеанса

CKR_SESSION_PARALLEL_NOT_SUPPORTED

Данный токен не поддерживает параллельные сессии

CKR_SESSION_READ_ONLY

Невозможно выполнить действие, поскольку это сессия R/O

CKR_SESSION_READ_WRITE_SO_EXISTS

Уже открыта сессия R/W, поэтому открыть сессию R/O невозможно

CKR_SIGNATURE_INVALID

Неверное значение ЭЦП

CKR_SIGNATURE_LEN_RANGE

Значение ЭЦП неверно по длине

CKR_SLOT_ID_INVALID

Слота с данным ID не существует

CKR_TEMPLATE_INCOMPLETE

Для создания объекта недостаточно атрибутов

CKR_TEMPLATE_INCONSISTENT

Заданные атрибуты противоречат друг другу

CKR_TOKEN_NOT_PRESENT

Токен отсутствует в слоте во время вызова функции

CKR_UNWRAPPING_KEY_HANDLE_INVALID

Функции передан некорректный идентификатор (хэндл) ключа дешифрования

CKR_UNWRAPPING_KEY_SIZE_RANGE

Недопустимый размер ключа дешифрования

CKR_UNWRAPPING_KEY_TYPE_INCONSISTENT

Тип ключа дешифрования не соответствует данному механизму

CKR_USER_ALREADY_LOGGED_IN

Данный пользователь уже авторизован

CKR_USER_ANOTHER_ALREADY_LOGGED_IN

Другой пользователь уже авторизован

CKR_USER_NOT_LOGGED_IN

Соответствующий пользователь не авторизован

CKR_USER_PIN_NOT_INITIALIZED

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

CKR_USER_TOO_MANY_TYPES

Невозможно выполнить авторизацию Администратора и Пользователя одновременно

CKR_USER_TYPE_INVALID

Задан некорректный тип пользователя

CKR_WRAPPED_KEY_INVALID

Задан некорректный зашифрованный ключ

CKR_WRAPPED_KEY_LEN_RANGE

Задана некорректная длина зашифрованного ключа

CKR_WRAPPING_KEY_HANDLE_INVALID

Функции передан некорректный идентификатор (хэндл) ключа шифрования

CKR_WRAPPING_KEY_SIZE_RANGE

Недопустимый размер ключа шифрования

CKR_WRAPPING_KEY_TYPE_INCONSISTENT

Тип ключа шифрования не соответствует данному механизму

+ pkcs11.reg 724a9fa361b624ae044213b7b9c53320 20.02 KB

Program PCLinuxOS Issue 81 July 2006
Создано Future Publishing
Вер CentOS 4.3
Тип 64-разрядная (x64)
KB 20496
Контрольная сумма MD5 724a9fa361b624ae044213b7b9c53320
Контрольная сумма SHA1 b19313a21ead128be03782981468fcb9e07e027c
CRC32: 9086719d

+ pkcs11.reg 724a9fa361b624ae044213b7b9c53320 20.02 KB

Program PCLinuxOS Issue 81 July 2006
Создано Future Publishing
Вер Mandriva Linux
Тип 64-разрядная (x64)
KB 20496
Контрольная сумма MD5 724a9fa361b624ae044213b7b9c53320
Контрольная сумма SHA1 b19313a21ead128be03782981468fcb9e07e027c
CRC32: 9086719d

+ pkcs11.reg 724a9fa361b624ae044213b7b9c53320 20.02 KB

Program PCLinuxOS Issue 81 July 2006
Создано Future Publishing
Вер Red Hat Linux
Тип 64-разрядная (x64)
KB 20496
Контрольная сумма MD5 724a9fa361b624ae044213b7b9c53320
Контрольная сумма SHA1 b19313a21ead128be03782981468fcb9e07e027c
CRC32: 9086719d

+ pkcs11.reg b3f3de4f81d2e63bebbd741617f56051 19.76 KB

Program Computer Buyer Essential Utilities November 2004
Создано Dennis Publishing Limited
Вер Windows 10
Тип 64-разрядная (x64)
KB 20238
Контрольная сумма MD5 b3f3de4f81d2e63bebbd741617f56051
Контрольная сумма SHA1 2f6a10bf444ccf1ac3d4dcfffa68b3dfae6f9fc3
CRC32: 75e7fddf
Расположение каталога файлов C:WindowsSystem32

+ pkcs11.reg 724a9fa361b624ae044213b7b9c53320 20.02 KB

Program Linux Format Iss 78 Apr 2006
Создано Linux Format
Вер Linux
Тип 64-разрядная (x64)
KB 20496
Контрольная сумма MD5 724a9fa361b624ae044213b7b9c53320
Контрольная сумма SHA1 b19313a21ead128be03782981468fcb9e07e027c
CRC32: 9086719d

+ pkcs11.reg 724a9fa361b624ae044213b7b9c53320 20.02 KB

Program Slackware 13 Text Mode Installation 2008
Создано DVDxDVD Inc
Вер Linux
Тип 64-разрядная (x64)
KB 20496
Контрольная сумма MD5 724a9fa361b624ae044213b7b9c53320
Контрольная сумма SHA1 b19313a21ead128be03782981468fcb9e07e027c
CRC32: 9086719d

+ pkcs11.reg 724a9fa361b624ae044213b7b9c53320 20.02 KB

Program LXFDVD105 May 2008
Создано Future Publishing
Вер Linux
Тип 64-разрядная (x64)
KB 20496
Контрольная сумма MD5 724a9fa361b624ae044213b7b9c53320
Контрольная сумма SHA1 b19313a21ead128be03782981468fcb9e07e027c
CRC32: 9086719d

+ pkcs11.reg b3f3de4f81d2e63bebbd741617f56051 19.76 KB

Program Solaris 9 Operating Environment 2003
Создано Sun Microsystems
Вер SPARC Platform Edition
Тип 64-разрядная (x64)
KB 20238
Контрольная сумма MD5 b3f3de4f81d2e63bebbd741617f56051
Контрольная сумма SHA1 2f6a10bf444ccf1ac3d4dcfffa68b3dfae6f9fc3
CRC32: 75e7fddf

+ pkcs11.reg b3f3de4f81d2e63bebbd741617f56051 19.76 KB

Program Solaris 9 Operating Environment 2003
Создано Sun Microsystems
Вер Sparc
Тип 64-разрядная (x64)
KB 20238
Контрольная сумма MD5 b3f3de4f81d2e63bebbd741617f56051
Контрольная сумма SHA1 2f6a10bf444ccf1ac3d4dcfffa68b3dfae6f9fc3
CRC32: 75e7fddf

+ pkcs11.reg b3f3de4f81d2e63bebbd741617f56051 19.76 KB

Program Suse Linux 9.2 March 2005
Создано Linux Format
Вер SuSE Linux
Тип 64-разрядная (x64)
KB 20238
Контрольная сумма MD5 b3f3de4f81d2e63bebbd741617f56051
Контрольная сумма SHA1 2f6a10bf444ccf1ac3d4dcfffa68b3dfae6f9fc3
CRC32: 75e7fddf

+ pkcs11.reg 724a9fa361b624ae044213b7b9c53320 20.02 KB

Program LXFDVD130 April 2010
Создано Future Publishing
Вер Linux
Тип 64-разрядная (x64)
KB 20496
Контрольная сумма MD5 724a9fa361b624ae044213b7b9c53320
Контрольная сумма SHA1 b19313a21ead128be03782981468fcb9e07e027c
CRC32: 9086719d

+ pkcs11.reg b3f3de4f81d2e63bebbd741617f56051 19.76 KB

Program SuSE LINUX 8.2 Personal 8.2
Создано SuSE Inc.
Вер SuSE Linux 8.2
Тип 64-разрядная (x64)
KB 20238
Контрольная сумма MD5 b3f3de4f81d2e63bebbd741617f56051
Контрольная сумма SHA1 2f6a10bf444ccf1ac3d4dcfffa68b3dfae6f9fc3
CRC32: 75e7fddf

+ pkcs11.reg 724a9fa361b624ae044213b7b9c53320 20.02 KB

Program LXFDVD118 May 2009
Создано Future Publishing
Вер Linux
Тип 64-разрядная (x64)
KB 20496
Контрольная сумма MD5 724a9fa361b624ae044213b7b9c53320
Контрольная сумма SHA1 b19313a21ead128be03782981468fcb9e07e027c
CRC32: 9086719d

+ pkcs11.reg b3f3de4f81d2e63bebbd741617f56051 19.76 KB

Program Sun Java Desktop System 2003
Создано Sun Microsystems
Вер Solaris
Тип 64-разрядная (x64)
KB 20238
Контрольная сумма MD5 b3f3de4f81d2e63bebbd741617f56051
Контрольная сумма SHA1 2f6a10bf444ccf1ac3d4dcfffa68b3dfae6f9fc3
CRC32: 75e7fddf

+ pkcs11.reg b3f3de4f81d2e63bebbd741617f56051 19.76 KB

Program Red Hat Linux 9 9
Создано Red Hat Software Inc.
Вер Red Hat Linux
Тип 64-разрядная (x64)
KB 20238
Контрольная сумма MD5 b3f3de4f81d2e63bebbd741617f56051
Контрольная сумма SHA1 2f6a10bf444ccf1ac3d4dcfffa68b3dfae6f9fc3
CRC32: 75e7fddf

+ pkcs11.reg b3f3de4f81d2e63bebbd741617f56051 19.76 KB

Program Red Hat Linux 9 2003
Создано Red Hat Software Inc.
Вер Red Hat Linux 9
Тип 64-разрядная (x64)
KB 20238
Контрольная сумма MD5 b3f3de4f81d2e63bebbd741617f56051
Контрольная сумма SHA1 2f6a10bf444ccf1ac3d4dcfffa68b3dfae6f9fc3
CRC32: 75e7fddf

+ pkcs11.reg 724a9fa361b624ae044213b7b9c53320 20.02 KB

Program LXFDVD94 (Ubuntu 7.04 Mandriva 2007 Spring Free Debian 4.0 SimplyMepis 6.5) #94 July 2007
Создано Future Publishing
Вер Linux
Тип 64-разрядная (x64)
KB 20496
Контрольная сумма MD5 724a9fa361b624ae044213b7b9c53320
Контрольная сумма SHA1 b19313a21ead128be03782981468fcb9e07e027c
CRC32: 9086719d

+ pkcs11.reg db870515897e2bcce778cfe413a89825 18.57 KB

Program SUSE Linux Enterprise Server 12 dl.Aug.30, 2017
Создано SuSE Inc.
Вер SUSE Linux Enterprise Server
Тип 64-разрядная (x64)
KB 19014
Контрольная сумма MD5 db870515897e2bcce778cfe413a89825
Контрольная сумма SHA1 5b139e009b19b8eee9f137285d341b0284f82fa5
CRC32: 0c99f041

+ pkcs11.reg db870515897e2bcce778cfe413a89825 18.57 KB

Program SUSE Linux Enterprise Server 12 dl.Aug.30, 2017
Создано SuSE Inc.
Вер Linux x64
Тип 64-разрядная (x64)
KB 19014
Контрольная сумма MD5 db870515897e2bcce778cfe413a89825
Контрольная сумма SHA1 5b139e009b19b8eee9f137285d341b0284f82fa5
CRC32: 0c99f041

+ pkcs11.reg db870515897e2bcce778cfe413a89825 18.57 KB

Program SUSE Linux Enterprise Server 12 dl.Aug.30, 2017
Создано SuSE Inc.
Вер SuSE Linux
Тип 64-разрядная (x64)
KB 19014
Контрольная сумма MD5 db870515897e2bcce778cfe413a89825
Контрольная сумма SHA1 5b139e009b19b8eee9f137285d341b0284f82fa5
CRC32: 0c99f041

+ pkcs11.reg db870515897e2bcce778cfe413a89825 18.57 KB

Program SUSE Linux Enterprise Server 12 dl.Aug.30, 2017
Создано SuSE Inc.
Вер Linux
Тип 64-разрядная (x64)
KB 19014
Контрольная сумма MD5 db870515897e2bcce778cfe413a89825
Контрольная сумма SHA1 5b139e009b19b8eee9f137285d341b0284f82fa5
CRC32: 0c99f041

+ pkcs11.reg b3f3de4f81d2e63bebbd741617f56051 19.76 KB

Program Mandriva Linux 2005 Limited Edition June 2005
Создано Linux Format
Вер Linux
Тип 64-разрядная (x64)
KB 20238
Контрольная сумма MD5 b3f3de4f81d2e63bebbd741617f56051
Контрольная сумма SHA1 2f6a10bf444ccf1ac3d4dcfffa68b3dfae6f9fc3
CRC32: 75e7fddf

+ pkcs11.reg 724a9fa361b624ae044213b7b9c53320 20.02 KB

Program LXFDVD153 2011
Создано Future Publishing
Вер Linux
Тип 64-разрядная (x64)
KB 20496
Контрольная сумма MD5 724a9fa361b624ae044213b7b9c53320
Контрольная сумма SHA1 b19313a21ead128be03782981468fcb9e07e027c
CRC32: 9086719d

+ pkcs11.reg 724a9fa361b624ae044213b7b9c53320 20.02 KB

Program LXFDVD145 June 2011
Создано Future Publishing
Вер Linux
Тип 64-разрядная (x64)
KB 20496
Контрольная сумма MD5 724a9fa361b624ae044213b7b9c53320
Контрольная сумма SHA1 b19313a21ead128be03782981468fcb9e07e027c
CRC32: 9086719d

+ pkcs11.reg b3f3de4f81d2e63bebbd741617f56051 19.76 KB

Program Suse Linux 9.0 Personal 2003
Создано SuSE Inc.
Вер SuSE LINUX 9.0
Тип 64-разрядная (x64)
KB 20238
Контрольная сумма MD5 b3f3de4f81d2e63bebbd741617f56051
Контрольная сумма SHA1 2f6a10bf444ccf1ac3d4dcfffa68b3dfae6f9fc3
CRC32: 75e7fddf

+ pkcs11.reg b3f3de4f81d2e63bebbd741617f56051 19.76 KB

Program Red Hat Enterprise Linux 4
Создано Red Hat Software Inc.
Вер Red Hat Enterprise Linux 4
Тип 64-разрядная (x64)
KB 20238
Контрольная сумма MD5 b3f3de4f81d2e63bebbd741617f56051
Контрольная сумма SHA1 2f6a10bf444ccf1ac3d4dcfffa68b3dfae6f9fc3
CRC32: 75e7fddf

+ pkcs11.reg b3f3de4f81d2e63bebbd741617f56051 19.76 KB

Program Red Hat Enterprise Linux 4
Создано Red Hat Software Inc.
Вер Red Hat Linux
Тип 64-разрядная (x64)
KB 20238
Контрольная сумма MD5 b3f3de4f81d2e63bebbd741617f56051
Контрольная сумма SHA1 2f6a10bf444ccf1ac3d4dcfffa68b3dfae6f9fc3
CRC32: 75e7fddf

+ pkcs11.reg b3f3de4f81d2e63bebbd741617f56051 19.76 KB

Program Red Hat Enterprise Linux 4
Создано Red Hat Software Inc.
Вер Linux
Тип 64-разрядная (x64)
KB 20238
Контрольная сумма MD5 b3f3de4f81d2e63bebbd741617f56051
Контрольная сумма SHA1 2f6a10bf444ccf1ac3d4dcfffa68b3dfae6f9fc3
CRC32: 75e7fddf

+ pkcs11.reg db870515897e2bcce778cfe413a89825 18.57 KB

Program SUSE Manager Server — 2 of 2 3.0
Создано SuSE Inc.
Вер Linux x86
Тип 64-разрядная (x64)
KB 19014
Контрольная сумма MD5 db870515897e2bcce778cfe413a89825
Контрольная сумма SHA1 5b139e009b19b8eee9f137285d341b0284f82fa5
CRC32: 0c99f041

+ pkcs11.reg db870515897e2bcce778cfe413a89825 18.57 KB

Program SUSE Manager Server — 2 of 2 3.0
Создано SuSE Inc.
Вер Linux x64
Тип 64-разрядная (x64)
KB 19014
Контрольная сумма MD5 db870515897e2bcce778cfe413a89825
Контрольная сумма SHA1 5b139e009b19b8eee9f137285d341b0284f82fa5
CRC32: 0c99f041

+ pkcs11.reg db870515897e2bcce778cfe413a89825 18.57 KB

Program SUSE Manager Server — 2 of 2 3.0
Создано SuSE Inc.
Вер SuSE Linux
Тип 64-разрядная (x64)
KB 19014
Контрольная сумма MD5 db870515897e2bcce778cfe413a89825
Контрольная сумма SHA1 5b139e009b19b8eee9f137285d341b0284f82fa5
CRC32: 0c99f041

+ pkcs11.reg db870515897e2bcce778cfe413a89825 18.57 KB

Program SUSE Manager Server — 2 of 2 3.0
Создано SuSE Inc.
Вер Linux
Тип 64-разрядная (x64)
KB 19014
Контрольная сумма MD5 db870515897e2bcce778cfe413a89825
Контрольная сумма SHA1 5b139e009b19b8eee9f137285d341b0284f82fa5
CRC32: 0c99f041

+ pkcs11.reg 724a9fa361b624ae044213b7b9c53320 20.02 KB

Program SUSE Linux Enterprise Server 10 DVD 1 2006
Создано Novell Inc.
Вер SuSE Linux 10.0
Тип 64-разрядная (x64)
KB 20496
Контрольная сумма MD5 724a9fa361b624ae044213b7b9c53320
Контрольная сумма SHA1 b19313a21ead128be03782981468fcb9e07e027c
CRC32: 9086719d

Все функции из реализации стандарта PKCS#11 возвращают различные коды ошибок. Все возвращаемые коды ошибок делятся на две большие группы:

Все функции из реализации стандарта PKCS#11 возвращают специальные коды ошибок (определяются производителем).

Все функции из реализации расширения стандарта PKCS#11 возвращают специальные коды ошибок (определяются производителем).

Стандартные коды ошибок

В силу особенностей реализации библиотек rtPKCS11 и rtPKCS11ECP некоторые стандартные функции могут вернуть стандартный код ошибки PKCS#11, не входящий в список допустимых для данной функции. Подобная ситуация является исключением. Стандартные коды ошибок, возвращаемые каждой функцией в исключительных ситуациях, перечислены в описании для каждой функции отдельно.

В таблице 2.29 приведен список кодов ошибок стандарта PKCS#11 и их описаний, поддерживаемых устройствами Рутокен. Подробную информацию по каждому коду ошибки можно найти в стандарте (английский язык) или приложении (русский язык).

Таблица
2.29
. Коды ошибок стандарта

Код ошибки

Описание

CKR_ARGUMENTS_BAD

Недопустимый аргумент

CKR_ATTRIBUTE_READ_ONLY

Невозможно установить или изменить значение атрибута приложением

CKR_ATTRIBUTE_SENSITIVE

Атрибут недоступен для чтения

CKR_ATTRIBUTE_TYPE_INVALID

Некорректный тип атрибута

CKR_ATTRIBUTE_VALUE_INVALID

Некорректное значение атрибута

CKR_BUFFER_TOO_SMALL

Размер заданного буфера является недостаточным для вывода результатов выполнения функции

Библиотека не поддерживает блокировку для защиты потоков; возвращается только при вызове функции C_Initialize

CKR_CRYPTOKI_ALREADY_INITIALIZED

Библиотека уже инициализирована (предыдущий вызов функции C_Initialize
не был сопровожден соответствующим вызовом функции С_Finalize
); возвращается только при вызове функции C_Initialize

CKR_CRYPTOKI_NOT_INITIALIZED

Выполнение функции невозможно, так как библиотека не инициализирована; возвращается только при вызове любой функции, за исключением C_Initialize
иС_Finalize

CKR_DATA_INVALID

Некорректные входные данные для выполнения криптографической операции

CKR_DATA_LEN_RANGE

Входные данные имеют некорректный размер для выполнения криптографической операции

CKR_DEVICE_ERROR

Ошибка при обращении к токену или слоту

CKR_DEVICE_MEMORY

Недостаточно памяти токена для выполнения запрошенной функции

CKR_DEVICE_REMOVED

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

CKR_DOMAIN_PARAMS_INVALID

Функции переданы некорректные или не поддерживаемые параметры домена

CKR_ENCRYPTED_DATA_INVALID

Для операции расшифрования переданы некорректно зашифрованные данные

CKR_ENCRYPTED_DATA_LEN_RANGE

Для операции расшифрования переданы зашифрованные данные некорректного размера

CKR_FUNCTION_CANCELED

Выполнение функции было прервано

CKR_FUNCTION_FAILED

При выполнении функции возник сбой

CKR_FUNCTION_NOT_SUPPORTED

Запрашиваемая функция не поддерживается библиотекой

CKR_FUNCTION_REJECTED

Запрос на подпись был отклонен пользователем

CKR_GENERAL_ERROR

Критическая ошибка, связанная с аппаратным обеспечением

Недостаточно памяти для выполнения функции на рабочей станции, где установлена библиотека

CKR_KEY_FUNCTION_NOT_PERMITTED

Атрибуты ключа не позволяют выполнить операцию

CKR_KEY_HANDLE_INVALID

Функции передан некорректный идентификатор (хэндл) ключа

CKR_KEY_NOT_WRAPPABLE

Невозможно зашифровать ключ

CKR_KEY_SIZE_RANGE

Недопустимый размер ключа

CKR_KEY_TYPE_INCONSISTENT

Тип ключа не соответствует данному механизму

CKR_KEY_UNEXTRACTABLE

Невозможно зашифровать ключ, так как атрибут CKA_UNEXTRACTABLE установлен в значение CK_TRUE

CKR_MECHANISM_INVALID

Указан неправильный механизм для выполнения криптографической операции

CKR_MECHANISM_PARAM_INVALID

Указаны неправильные параметры механизма для выполнения криптографической операции

CKR_NEED_TO_CREATE_THREADS

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

CKR_OBJECT_HANDLE_INVALID

Функции передан некорректный идентификатор (хэндл) объекта

CKR_OPERATION_ACTIVE

Выполнение операции невозможно, поскольку такая операция уже выполняется

CKR_OPERATION_NOT_INITIALIZED

Невозможно выполнить операцию в этой сессии

Срок действия PIN-кода истек

CKR_PIN_INCORRECT

Функции передан PIN-код, который не соответствует тому, который сохранен на токене

Значение PIN-кода содержит недопустимые символы

CKR_PIN_LEN_RANGE

Недопустимая длина PIN-кода

CKR_RANDOM_NO_RNG

Данный токен не поддерживает генерацию случайных чисел

CKR_SESSION_CLOSED

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

CKR_SESSION_COUNT

Достигнуто предельное количество открытых сессий для данного токена

CKR_SESSION_EXISTS

Сессия с токеном уже открыта и поэтому токен не может быть инициализирован

CKR_SESSION_HANDLE_INVALID

Функции передан некорректный идентификатор (хэндл) сеанса

CKR_SESSION_PARALLEL_NOT_SUPPORTED

Данный токен не поддерживает параллельные сессии

CKR_SESSION_READ_ONLY

Невозможно выполнить действие, поскольку это сессия R/O

CKR_SESSION_READ_WRITE_SO_EXISTS

Уже открыта сессия R/W, поэтому открыть сессию R/O невозможно

CKR_SIGNATURE_INVALID

Неверное значение ЭЦП

CKR_SIGNATURE_LEN_RANGE

Значение ЭЦП неверно по длине

CKR_SLOT_ID_INVALID

Слота с данным ID не существует

CKR_TEMPLATE_INCOMPLETE

Для создания объекта недостаточно атрибутов

CKR_TEMPLATE_INCONSISTENT

Заданные атрибуты противоречат друг другу

CKR_TOKEN_NOT_PRESENT

Токен отсутствует в слоте во время вызова функции

CKR_UNWRAPPING_KEY_HANDLE_INVALID

Функции передан некорректный идентификатор (хэндл) ключа дешифрования

CKR_UNWRAPPING_KEY_SIZE_RANGE

Недопустимый размер ключа дешифрования

CKR_UNWRAPPING_KEY_TYPE_INCONSISTENT

Тип ключа дешифрования не соответствует данному механизму

CKR_USER_ALREADY_LOGGED_IN

CKR_USER_ANOTHER_ALREADY_LOGGED_IN

CKR_USER_NOT_LOGGED_IN

CKR_USER_PIN_NOT_INITIALIZED

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

CKR_USER_TOO_MANY_TYPES

CKR_USER_TYPE_INVALID

Задан некорректный тип пользователя

CKR_WRAPPED_KEY_INVALID

Задан некорректный зашифрованный ключ

CKR_WRAPPED_KEY_LEN_RANGE

Задана некорректная длина зашифрованного ключа

CKR_WRAPPING_KEY_HANDLE_INVALID

Функции передан некорректный идентификатор (хэндл) ключа шифрования

CKR_WRAPPING_KEY_SIZE_RANGE

Недопустимый размер ключа шифрования

CKR_WRAPPING_KEY_TYPE_INCONSISTENT

Тип ключа шифрования не соответствует данному механизму

Специальные коды ошибок

В таблице 2.30 приведен список всех расширенных кодов ошибок стандарта PKCS #11 вместе с их описанием. Расширенные коды ошибок могут возвращать как стандартные функции, так и функции расширения.

Таблица 2.30
. Коды ошибок стандарта
PKCS #11, поддерживаемые устройствами Рутокен

Код ошибки

Описание

CKR_CORRUPTED_MAPFILE

Данная ошибка возвращается при повреждении MAP-файла (при считывании MAP-файла было обнаружено, что тег заголовка MAP-файла (2 байта) является недопустимым)

CKR_RTPKCS11_DATA_CORRUPTED

Данная ошибка возвращается, если было обнаружено нарушение целостности данных на токене (при считывании файла, содержащего объект PKCS#11, было обнаружено, что тег заголовка объекта (2 байта) является недопустимым)

CKR_WRONG_VERSION_FIELD

Данная ошибка возвращается, если файл, содержащий объект PKCS#11, имеет некорректную версию (при считывании любого файла (MAP-файла или файла, содержащего объект PKCS#11) было обнаружено, что версия заголовка (4 байта) является недопустимой)

CKR_WRONG_
PKCS1_
ENCODING

Данная ошибка возвращается, если расшифрованное сообщение имеет некорректную форму

CKR_RTPKCS11_RSF_DATA_CORRUPTED

Данная ошибка возвращается, если попытка использовать RSF-файл завершилась неудачей

Добрый день!. Последние два дня у меня была интересная задача по поиску решения на вот такую ситуацию, есть физический или виртуальный сервер, на нем установлена наверняка многим известная КриптоПРО. На сервер подключен , который используется для подписи документов для ВТБ24 ДБО
. Локально на Windows 10 все работает, а вот на серверной платформе Windows Server 2016 и 2012 R2, Криптопро не видит ключ JaCarta
. Давайте разбираться в чем проблема и как ее поправить.

Описание окружения

Есть виртуальная машина на Vmware ESXi 6.5, в качестве операционной системы установлена Windows Server 2012 R2 . На сервере стоит КриптоПРО 4.0.9944, последней версии на текущий момент. С сетевого USB хаба, по технологии USB over ip , подключен ключ JaCarta. Ключ в системе видится
, а вот в КриптоПРО нет.

Алгоритм решения проблем с JaCarta

КриптоПРО очень часто вызывает различные ошибки в Windows, простой пример (Windows installer service could not be accessed). Вот так вот выглядит ситуация, когда утилита КриптоПРО не видит сертификат в контейнере.

Как видно в утилите UTN Manager ключ подключен, он видится в системе в смарт картах в виде Microsoft Usbccid (WUDF) устройства, но вот CryptoPRO, этот контейнер не определяет и у вас нет возможности установить сертификат. Локально токен подключали, все было то же самое. Стали думать что сделать.

Возможные причины с определением контейнера

  1. Во первых, это проблема с драйверами, например, в Windows Server 2012 R2, JaCarta в идеале должна определяться в списке смарт карт как JaCarta Usbccid Smartcard, а не Microsoft Usbccid (WUDF)
  2. Во вторых если устройство видится как Microsoft Usbccid (WUDF), то версия драйверов может быть устаревшей, и из-за чего ваши утилиты будут не определять защищенный USB носитель.
  3. Устарелая версия CryptoPRO

Как решить проблему, что криптопро не видит USB ключ?

Создали новую виртуальную машину и стали ставить софт все последовательно.

Перед установкой любого программного обеспечения работающего с USB носителями на которых находятся сертификаты и закрытые ключи. Нужно ОБЯЗАТЕЛЬНО
отключить токен, если воткнут локально, то отключаем его, если по сети, разрываем сессию

  • Первым делом обновляем вашу операционную систему , всеми доступными обновлениями, так как Microsoft исправляет много ошибок и багов, в том числе и драйверами.
  • Вторым пунктом является, в случае с физическим сервером, установить все свежие драйвера на материнскую плату и все периферийное оборудование.
  • Далее устанавливаете Единый Клиент JaCarta.
  • Устанавливаете свежую версию КриптоПРО

Установка единого клиента JaCarta PKI

Единый Клиент JaCarta
— это специальная утилита от компании «Аладдин», для правильной работы с токенами JaCarta. Загрузить последнюю версию, данного программного продукта, вы можете с официального сайта, или у меня с облака, если вдруг, не получиться с сайта производителя.

Далее полученный архив вы распаковываете и запускаете установочный файл, под свою архитектуру Windows , у меня это 64-х битная. Приступаем к установке Jacarta драйвера. Единый клиент Jacarta, ставится очень просто (НАПОМИНАЮ ваш токен в момент инсталляции, должен быть отключен). На первом окне мастера установки, просто нажимаем далее.

Принимаем лицензионное соглашение и нажимаем «Далее»

Чтобы драйвера токенов JaCarta у вас работали корректно, достаточно выполнить стандартную установку.

Если выберете «Выборочную установку», то обязательно установите галки:

  • Драйверы JaCarta
  • Модули поддержки
  • Модуль поддержки для КриптоПРО

Через пару секунд, Единый клиент Jacarta, успешно установлен.

Обязательно произведите перезагрузку сервера или компьютера, чтобы система увидела свежие драйвера.

После установки JaCarta PKI, нужно установить КриптоПРО, для этого заходите на официальный сайт.

https://www.cryptopro.ru/downloads

На текущий момент самая последняя версия КриптоПро CSP 4.0.9944. Запускаем установщик, оставляем галку «Установить корневые сертификаты» и нажимаем «Установить (Рекомендуется)»

Инсталляция КриптоПРО будет выполнена в фоновом режиме, после которой вы увидите предложение, о перезагрузке браузера, но я вам советую полностью перезагрузиться.

После перезагрузки подключайте ваш USB токен JaCarta. У меня подключение идет по сети, с устройства DIGI, через . В клиенте Anywhere View, мой USB носитель Jacarta, успешно определен, но как Microsoft Usbccid (WUDF), а в идеале должен определиться как JaCarta Usbccid Smartcard, но нужно в любом случае проверить, так как все может работать и так.

Открыв утилиту «Единый клиент Jacarta PKI», подключенного токена обнаружено не было, значит, что-то с драйверами.

Microsoft Usbccid (WUDF) — это стандартный драйвер Microsoft, который по умолчанию устанавливается на различные токены, и бывает, что все работает, но не всегда. Операционная система Windows по умолчанию, ставит их в виду своей архитектуры и настройки, мне вот лично в данный момент такое не нужно. Что делаем, нам нужно удалить драйвера Microsoft Usbccid (WUDF) и установить драйвера для носителя Jacarta.

Откройте диспетчер устройств Windows, найдите пункт «Считыватели устройств смарт-карт (Smart card readers)» щелкните по Microsoft Usbccid (WUDF) и выберите пункт «Свойства». Перейдите на вкладку «Драйвера» и нажмите удалить (Uninstall)

Согласитесь с удалением драйвера Microsoft Usbccid (WUDF).

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

После перезагрузки системы, вы можете увидеть установку устройства и драйверов ARDS Jacarta.

Откройте диспетчер устройств, вы должны увидеть, что теперь ваше устройство определено, как JaCarta Usbccid Smartcar и если зайти в его свойства, то вы увидите, что смарт карта jacarta, теперь использует драйвер версии 6.1.7601 от ALADDIN R.D.ZAO, так и должно быть.

Если открыть единый клиент Jacarta, то вы увидите свою электронную подпись, это означает, что смарт карта нормально определилась.

Открываем CryptoPRO, и видим, что криптопро не видит сертификат в контейнере, хотя все драйвера определились как нужно. Есть еще одна фишка.

  1. В RDP сессии вы не увидите свой токен, только локально, уж такая работа токена, либо я не нашел как это поправить. Вы можете попробовать выполнить рекомендации по устранению ошибки «Не возможно подключиться к службе управления смарт-картами».
  2. Нужно снять одну галку в CryptoPRO

ОБЯЗАТЕЛЬНО снимите галку «Не использовать устаревшие cipher suite-ы» и перезагрузитесь
.

После этих манипуляций у меня КриптоПРО увидел сертификат и смарт карта jacarta стала рабочей, можно подписывать документы.

Еще можете в устройствах и принтерах, увидеть ваше устройство JaCarta,

Если у вас как и у меня, токен jacarta установлен в виртуальной машине, то вам придется устанавливать сертификат, через console виртуальной машины, и так же дать на нее права ответственному человеку. Если это физический сервер, то там придется давать права на порт управления , в котором так же есть виртуальная консоль.

Когда вы установили все драйвера для токенов Jacarta, вы можете увидеть при подключении по RDP и открытии утилиты «Единый клиент Jacarta PKI» вот такое сообщение с ошибкой:

  1. Не запущена служба смарт-карт на локальной машине. Архитектурой RDP-сессии, разработанной Microsoft, не предусмотрено использование ключевых носителей, подключенных к удалённому компьютеру, поэтому в RDP-сессии удалённый компьютер использует службу смарт-карт локального компьютера. Из этого следует что, запуска службы смарт-карт внутри RDP-сессии недостаточно для нормальной работы.
  2. Служба управления смарт-картами на локальном компьютере запущена, но недоступна для программы внутри RDP-сессии из-за настроек Windows и/или RDP-клиента.

Как исправить ошибку «Не возможно подключиться к службе управления смарт-картами».

  • Запустите службу смарт-карт на локальной машине, с которой вы инициируете сеанс удалённого доступа. Настройте её автоматический запуск при старте компьютера.
  • Разрешите использование локальных устройств и ресурсов во время удалённого сеанса (в частности, смарт-карт). Для этого, в диалоге «Подключение к удалённому рабочему столу» в параметрах выберите вкладку «Локальные ресурсы», далее в группе «Локальные устройства и ресурсы» нажмите кнопку «Подробнее…», а в открывшемся диалоге выберите пункт «Смарт-карты» и нажмите «ОК», затем «Подключить».

  • Убедитесь в сохранности настроек RDP-подключения. По умолчанию они сохраняются в файле Default.rdp в каталоге «Мои Документы» Проследите, чтобы в данном файле присутствовала строчка «redirectsmartcards:i:1».
  • Убедитесь в том, что на удалённом компьютере, к которому вы осуществляете RDP-подключение, не активирована групповая политика
    -[Конфигурация компьютераадминистративные шаблоныкомпоненты windowsслужбы удалённых рабочих столовузел сеансов удалённых рабочих столовперенаправление устройств и ресурсовНе разрешать перенаправление устройства чтения смарт-карт]. Если она включена (Enabled), то отключите её, и перегрузите компьютер.
  • Если у вас установлена Windows 7 SP1 или Windows 2008 R2 SP1 и вы используете RDC 8.1 для соединения с компьютерами под управлением Windows 8 и выше, то вам необходимо установить обновление для операционной системы https://support.microsoft.com/en-us/kb/2913751

Вот такой вот был траблшутинг по настройке токена Jacarta, КриптоПРО на терминальном сервере, для подписи документов в ВТБ24 ДБО. Если есть замечания или поправки, то пишите их в комментариях.

Приветствую, читатель!

По общению с некоторыми активно интересующимися читателями, я решил повторить свой «поисковой» эксперимент, который я делал, когда писал первые обзорные материалы на темы токенов. На этот раз я решил собрать в кучу неудачные опыты использования токенов, собрать ошибки Jacarta. Пишу сразу с конкретикой, так как думаю сделать разные подборки для каждой из марки. Начнем с лидера рынка, компания Аладдин Р.Д. и их продукт Jacarta, токен, который используется именно для ЕГАИС.

Чего не будет в этом посте:

1. я не буду давать решения для ошибок Jacarta, потому что каждая ситуация индивидуальна.

2.Может быть и так, что Джакарта-токен не причина ошибки. Это может быть УТМ и т.д. Поэтому каждый случай надо разбирать в отдельность

3.Умножение ошибок, дабы очернить продукт. Моя задача дать предельно стороннюю сводку того, с чем чаще всего стакиваются пользователи Jacarta токена в ЕГАИСе.

Подборка и систематизация отзывов о Джакарте

В прошлый раз мое исследование было ограниченно официальным форумом ЕГАИС (http://egais2016.ru/), сейчас я расширил спектр изучения форумов, чтобы сделать материал более обширным.

Итак, Джакарта-токен для ЕГАИС будет анализироваться по отзывам со следующих источников:

    Естественно, боле всего результатов обнаружилось на форуме ЕГАС

    Итого, по запросу вышло у нас 630 сообщений

    Нашлось 3 толстых ветки

    Например, вот случай, когда полетело подряд 8 JaCarta-токенов
    из-за, цитирую:

    «Ошибка 0х00000006 в разделе PKI при попытке форматирования. Либо джакарта просто не определяется как устройство. Обновляли клиент до версии 2,9. Пробовали через jacarta format. Ни один способ ни разу не помог»

    Проблема, когда не система просто не видит Jacarta, действительно серьезная и самая, пожалуй, распространенная. Другой вопрос в том, что причин появления этой ошибки могут быть различные нарушения.

    Еще одна обнаруженная ошибка, когда опять-таки Джакарта не определяется, устройства не видят Jacarta. Забавно отметить, что Аладдин дает ответные письма по негодованиям пользователей, но по другой проблеме =)))) Но дают же! Это важно.

    Частенько ошибки при обнаружении и инсталляции, но там могут быть и проблемы дистрибутивов УТМ, что тоже очень часто происходит. Я внимательно читаю все ветки и поэтому будьте уверены, не буду указывать тут не существующих ошибок для Jacarta. Хотя тут вопрос весьма сложный, так как когда система не видит Jacarta, это может быть обоюдная пролема.

    В одной из уже указанных веток есть вот такой интересный коммент

    А что теперь делать пользователям Jacarta токена, когда связи между Жемальто и Аладдином расторгнуты?

    На форуме egaisa.net

    Нашлось 5 веток обсуждений

    В основном типовые ошибки при инициализации работы, а также когда уже все настройки сделаны, непостоянная работа Джакарты. Также часты ошибки после обновлений, когда система не находит или не видит Jacarta

    Если почитать форумы более внимательно, то выйдет, что на начальном этапе всем впаривали Jacarta токен для ЕГАИСА, не вникая в подробности и вообще не просвещая клиентов, что не только Джакарта может быть… Но об этом мы уже не раз говорили, а вы можете убедиться.

    Давайте вернемся к ЕГАИС форуму.

    Всего у нас ответов по поисковику 630 за все время работы. Естественно проблемы более чем годичной давности рассматривать нет смысла.

    Например, из самых частых ошибок

    1. Ошибки при попытке формирования сертификата RSA
    2. Ошибки синхронизации с УТМ
    3. Ошибка при обновлении
    4. Ошибка 610
    5. Ошибка обнаружения Jacarta

    Почему у Джакарта плохие отзывы?

    Подытожим, что Джакарта токен много кем используется, однако стабильность работы хромает. Я также нашел такое мнение, что это м.б. зависеть от «партии поставки», наверное это очень странно, так как ПО-шки для всех одни и те же должны быть. Возможно это результат того, что в итоге Джакарта собирается из множества разноразрозненных деталей, что приводит к нестабильной работе и умиранию всего организма в целом.

    В следующей серии поговорим о Рутокене, смарт-картах и других продуктах СКЗИ.

    Спасибо, что остаетесь на связи.

    Носитель Jacarta PKI/ГОСТ блокируется при многочисленных попытках ввести неверный пин-код. При этом теряется связь с сервером ФСРАР, и данные о фактурах не поступают в вашу учетную систему. Как быстро разблокировать ключ и восстановить работу с ЕГАИС?

    По умолчанию на всех новых носителях установлены следующие пароли:

    PKI 11 11 11 11
    Администратор PKI 00 00 00 00
    ГОСТ 0987654321
    Администратор ГОСТ 1234567890

    Для снятия блокировки на компьютере должна быть установлена программа Единый клиент Jacarta. Если настройка и установка ЕГАИС производилась нашими специалистами, то эта программа у вас уже есть.

    Запустите программу и дождитесь, когда в окне Единого клиента появится информация о носителе Jacarta PKI/ГОСТ.

    Снятие блокировки ГОСТ

    В разделе ГОСТ записан сертификат КЭП, выданный в удостоверяющем центре. Будьте внимательны
    — нельзя удалять из этого раздела какие-либо компоненты. После удаления придется повторно обращаться в удостоверяющий центр для выпуска ключа.

    Чтобы разблокировать пин-код ГОСТ, в верхнем меню “Операции с приложением” выберите первый пункт “Разблокировать PIN-код пользователя”. На экране появится уведомление, что снятие блокировки обнулит счетчик ошибочных попыток ввода.

    Нажмите “ОК” и во вновь открывшемся окне введите пин-код администратора Jacarta ГОСТ
    1234567890. После обнуления счетчика ошибок введите стандартный пин-код пользователя ГОСТ 0987654321.

    Важно: эта процедура поможет только скинуть счетчик, но не изменить забытый пароль на новый. Если вы изменили пароль ГОСТ, установленный по умолчанию, и забыли его, придется проводить инициализацию и вновь записывать ключ в удостоверяющем центре.

    Снятие блокировки PKI

    В контейнере PKI записан RSA-ключ, который генерируется в личном кабинете на сайте egais.ru. В случае утери пин-кода этот раздел может быть инициализирован (полностью очищен), так как вы можете повторно записать ключ самостоятельно и бесплатно, без обращения в удостоверяющий центр.

    #java #keylistener #japplet

    #java #keylistener #japplet

    Вопрос:

    Я пытался создать апплет как проект для школы, но столкнулся с этой ошибкой, которую я никогда раньше не видел. Любой совет был бы крайне желателен, я часами безуспешно боролся. Кроме того, это мой первый большой проект на Java, поэтому любые другие советы относительно кодирования и стиля очень приветствуются. Моя IDE — BlueJ, и я запустил ее в программе просмотра апплетов, если это имеет значение. Приветствия!

     import java.awt.*;
    import javax.swing.*;
    import java.lang.*;
    import java.util.*;
    import java.awt.event.*;
    
    public abstract class Renderer extends JApplet implements KeyListener
    {
        public PlayerShip playerShip;
        public static final int CANVAS_SIZE=500;
        public static final int FRAMES_PER_SECOND = 20;
        public static final int SKIP_TICKS = 1000 / FRAMES_PER_SECOND;
        public void initLevel(){
            playerShip= new PlayerShip(CANVAS_SIZE);
        }
        @Override 
        public void keyPressed(KeyEvent e){
            if (e.getKeyCode()== KeyEvent.VK_RIGHT){
                playerShip.moveRight();
            }
            else if (e.getKeyCode()== KeyEvent.VK_LEFT){
                playerShip.moveLeft();
            }
            repaint();
        }
        public void paint(Graphics g){
            int sleep_time = 0;
            int next_game_tick = 0;
            long sleepTime;
            boolean Game= true;
            long startTime= System.currentTimeMillis();
            setSize(CANVAS_SIZE, CANVAS_SIZE);
            while(Game== true){
                initLevel();
                int leftSide=playerShip.getLeftBound();
                int width=playerShip.getWidth();
                int topSide=playerShip.getTopBound();
                int height=playerShip.getHeight();
    
    
                g.setColor(Color.blue);
                g.fillRect(0, 0, CANVAS_SIZE, CANVAS_SIZE);
                g.setColor(Color.orange);
                g.fillRect (leftSide, topSide, width, height);
                long timeElapsed = System.currentTimeMillis() - startTime;
                next_game_tick  = SKIP_TICKS;
    
                sleepTime= next_game_tick - timeElapsed;
                try{
                    Thread.sleep(sleepTime);
                }
                catch(InterruptedException ex)
                {
                    Thread.currentThread().interrupt();
                }
    
            }
    
        }
    
    }
      

    Редактировать: Здесь также есть класс player

     public class PlayerShip
    {
        // instance variables - replace the example below with your own
        public static final int SIZE= 20;
        public int shipX;
        public int shipY;
        public int shipLeft;
        public int shipRight;
        public PlayerShip(int canvasSize)
        {
            shipX= canvasSize/2;
            shipY= canvasSize*3/4;
        }
        public void moveLeft(){
            shipX -=1;
        }
        public void moveRight(){
            shipX =1;
        }
        public int getLeftBound(){
            int leftSide = Math.round(shipX - (SIZE/2));
            return (leftSide);
        }
        public int getWidth(){
            return SIZE;
        }
        public int getTopBound(){
            int topSide = Math.round(shipY - (SIZE/2));
            return (topSide);
        }
        public int getHeight(){
            return SIZE;
        }
    
    }
      

    Ответ №1:

    Реализовать KeyListener

    Одна из проблем может заключаться в том, что вы реализовали только один из трех методов, требуемых java.awt.event.KeyListener интерфейсом. Вы сделали, keyPressed но пропустили keyTyped и keyReleased .

     @Override
    public void keyTyped ( KeyEvent e )
    {
        …
    }
    
    @Override
    public void keyPressed ( KeyEvent e )
    {
        …
    }
    
    @Override
    public void keyReleased ( KeyEvent e )
    {
        …
    }
      

    Импортирует

    Возможно, вам потребуется добавить явное, import для Color класса, распознавание его констант.

     import java.awt.Color;
      

    По соглашению константы в Java называются со всеми прописными буквами. Итак, Color.BLUE .

    Соглашения об именовании

    Это не проблема компилятора или апплета, но вы должны следовать соглашениям об именовании Java ради других программистов, читающих ваш код. Итак, boolean Game должно начинаться со строчной буквы. Кроме того, логические значения часто называются с is префиксом, so boolean isGame . Я подозреваю, что вы могли бы разработать более описательную формулировку.

    Кстати, для краткости сократите while ( isGame == true ) до while ( isGame ) .

    Более серьезная проблема: эта isGame переменная, используемая в вашем while цикле, никогда не меняет своего состояния. Итак, ваш while цикл бесконечен.

    Выполняется

    После внесения вышеуказанных изменений я вижу, что ваш апплет запускается с использованием IDE IntelliJ и Java 8 (JVM Zulu от Azul Systems) через приложение AppletViewer версии 1.0 на моем MacBook Pro с macOS Mojave.

    введите описание изображения здесь

    Кстати, мне кажется, что вы отключаете основной поток GUI своей строкой Thread.sleep(sleepTime); . Я не эксперт по апплетам или AWT, но, насколько я помню, вы никогда не должны переводить основной поток GUI в спящий режим.

     package work.basil.example;
    
    public class PlayerShip
    {
        // instance variables - replace the example below with your own
        public static final int SIZE = 20;
        public int shipX;
        public int shipY;
        public int shipLeft;
        public int shipRight;
    
        public PlayerShip ( int canvasSize )
        {
            shipX = canvasSize / 2;
            shipY = canvasSize * 3 / 4;
        }
    
        public void moveLeft ()
        {
            shipX -= 1;
        }
    
        public void moveRight ()
        {
            shipX  = 1;
        }
    
        public int getLeftBound ()
        {
            int leftSide = Math.round( shipX - ( SIZE / 2 ) );
            return ( leftSide );
        }
    
        public int getWidth ()
        {
            return SIZE;
        }
    
        public int getTopBound ()
        {
            int topSide = Math.round( shipY - ( SIZE / 2 ) );
            return ( topSide );
        }
    
        public int getHeight ()
        {
            return SIZE;
        }
    
    }
      

    … и…

     package work.basil.example;
    
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.KeyEvent;
    import java.awt.event.KeyListener;
    
    public class Renderer extends JApplet implements KeyListener
    {
        public PlayerShip playerShip;
        public static final int CANVAS_SIZE = 500;
        public static final int FRAMES_PER_SECOND = 20;
        public static final int SKIP_TICKS = 1000 / FRAMES_PER_SECOND;
    
        public void initLevel ()
        {
            playerShip = new PlayerShip( CANVAS_SIZE );
        }
    
        public void paint ( Graphics g )
        {
            int sleep_time = 0;
            int next_game_tick = 0;
            long sleepTime;
            boolean isGame = true;
            long startTime = System.currentTimeMillis();
            setSize( CANVAS_SIZE , CANVAS_SIZE );
            while ( isGame  )
            {
                initLevel();
                int leftSide = playerShip.getLeftBound();
                int width = playerShip.getWidth();
                int topSide = playerShip.getTopBound();
                int height = playerShip.getHeight();
    
                g.setColor( Color.BLUE );
                g.fillRect( 0 , 0 , CANVAS_SIZE , CANVAS_SIZE );
                g.setColor( Color.ORANGE );
                g.fillRect( leftSide , topSide , width , height );
                long timeElapsed = System.currentTimeMillis() - startTime;
                next_game_tick  = SKIP_TICKS;
    
                sleepTime = next_game_tick - timeElapsed;
                try
                {
                    Thread.sleep( sleepTime );
                } catch ( InterruptedException ex )
                {
                    Thread.currentThread().interrupt();
                }
    
            }
    
        }
    
        //----------|  Override `java.awt.event.KeyListener`  |------------------
    
        @Override
        public void keyPressed ( KeyEvent e )
        {
            if ( e.getKeyCode() == KeyEvent.VK_RIGHT )
            {
                playerShip.moveRight();
            } else if ( e.getKeyCode() == KeyEvent.VK_LEFT )
            {
                playerShip.moveLeft();
            }
            repaint();
        }
    
        @Override
        public void keyTyped ( KeyEvent e )
        {
            // No code needed here.
        }
    
        @Override
        public void keyReleased ( KeyEvent e )
        {
            // No code needed here.
        }
    
    }
      

    Я добавлю обязательное предупреждение о том, что производители веб-браузеров, Oracle и сообщество Java постепенно отказываются от технологии Java Applet. Этот проект отлично подходит для обучения. Но для реальной работы вы, вероятно, захотите узнать о OpenJFX и использовании jlink для объединения среды выполнения Java.

    Комментарии:

    1. Добавлено это. Апплет по-прежнему не инициализировался, также добавлен код PlayerShip, чтобы вы могли это видеть. Извините за путаницу, это мой первый пост как пользователя.

    2. Спасибо за огромную помощь! Я воспользуюсь вашим советом и посмотрю, как это работает, когда буду внедрять его завтра

    3. Итак, я реализовал то, что вы предложили, и оно работает намного плавнее, но корабль по-прежнему не перемещается слева направо. Еще раз большое спасибо, и я также ценю советы по стилю и передовой практике

    4. @NeilEstrada Корабль тоже не двигался для меня. Но ваш вопрос касался того, что апплет не запускался. Мы решили это.

    5. @NeilEstrada Совет: Следующий шаг — использовать отладчик, если BlueJ предлагает такую функцию, чтобы наблюдать за выполнением вашего кода, или не запускать, в зависимости от обстоятельств. И вы можете выполнить вызовы в System.out.println , чтобы проверить, выполняется код или не выполняется.

    Если вы забыли пин-код администратора JaCarta для RSA-ключа, появится окно с ошибкой «Ошибка авторизации. PIN-код заблокирован и не может быть использован«.

    Внимание! Процесс инициализации не только сбросит пин-код администратора, но и удалит RSA-ключ с носителя JaCarta!

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

    Для разблокирования пин-кода администратора выполните следующие действия:

    ВНИМАНИЕ!

    Если вами были утеряны (заблокированы) пин-коды от вкладки ГОСТ, то ключ JaCarta полностью теряет свой функционал, работать с ним больше не получится. Таковы требования ФСБ России для ГОСТ апплета.

    sokref писал(а):Да, возможно у Вас что-то к браузеру прицепилось.
    Также попробуйте выключить НОД и без него тоже самое повторить, в некоторых версиях НОД32 есть проблема с Кабинетом

    Вот что нашел еще интересного в логах видимо выполнения Java
    Java Plug-in 1.6.0_17
    Using JRE version 1.6.0_17-b04 Java HotSpot(TM) Client VM
    User home directory = C:UsersИлья
    —————————————————-
    c: clear console window
    f: finalize objects on finalization queue
    g: garbage collect
    h: display this help message
    l: dump classloader list
    m: print memory usage
    o: trigger logging
    q: hide console
    r: reload policy configuration
    s: dump system and deployment properties
    t: dump thread list
    v: dump thread stack
    x: clear classloader cache
    0-5: set trace level to <n>
    —————————————————-

    Reading certificates from 29038

    http://cabinet.salyk.kz/sonowebinfo/app … Applet.jar

    | C:UsersИльяAppDataRoamingSunJavaDeploymentcache6.01941c6b693-482579b9-1.0.0.55-.idx
    Reading certificates from 138226

    http://cabinet.salyk.kz/sonowebinfo/app … a-prov.jar

    | C:UsersИльяAppDataRoamingSunJavaDeploymentcache6.0407c8783a8-2a79755f-1.0.0.3-.idx
    Reading certificates from 62058

    http://cabinet.salyk.kz/sonowebinfo/appletLib/jss4.jar

    | C:UsersИльяAppDataRoamingSunJavaDeploymentcache6.03460105e62-39d05503-1.0.0.1-.idx
    Reading certificates from 30668

    http://cabinet.salyk.kz/sonowebinfo/app … -1.3.0.jar

    | C:UsersИльяAppDataRoamingSunJavaDeploymentcache6.049187954b1-46e03667-1.0.0.2-.idx
    Reading certificates from 2852

    http://cabinet.salyk.kz/sonowebinfo/app … v1.0.0.jar

    | C:UsersИльяAppDataRoamingSunJavaDeploymentcache6.051fdf5ab3-305c9b3b-1.0.0.2-.idx
    Reading certificates from 3426

    http://cabinet.salyk.kz/sonowebinfo/app … ogging.jar

    | C:UsersИльяAppDataRoamingSunJavaDeploymentcache6.052538a834-19dccf53-1.0.0.2-.idx
    Reading certificates from 2430

    http://cabinet.salyk.kz/sonowebinfo/app … client.jar

    | C:UsersИльяAppDataRoamingSunJavaDeploymentcache6.0875ec61c8-11b53bf5-1.0.0.2-.idx
    Reading certificates from 14803

    http://cabinet.salyk.kz/sonowebinfo/app … a-mail.jar

    | C:UsersИльяAppDataRoamingSunJavaDeploymentcache6.01138fb778b-1a8a02cc-1.0.0.2-.idx
    Getting user key file…
    Getting user key path…
    Found user key path: null.
    Getting user key path…
    Found user key path: null.

    Может помоч понять что происходит ?

    Исправляем сообщение Идет процесс инициализации апплета для подписывания запроса возникающее при попытке отправить форму или запрос в Кабинете Налогоплательщика в браузере Mozilla Firefox, а так же два способа добраться до зависших окон указания пути до сертификата или зависшего окна ввода пароля.

    ВИДЕОУРОК:

    Понравилась статья? Поделить с друзьями:
  1. Ошибка инициализации видеокарты warhammer dark crusade
  2. Ошибка инициализации авест белинвестбанк
  3. Ошибка инициализации и запуска транспорта
  4. Ошибка инициализации видеокарты sims 4 579bc009 1df4e8dc 00000000
  5. Ошибка инициализации steam как исправить