kz.gamma.hardware.applet
Class CryptoApplet

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by java.awt.Panel
              extended by java.applet.Applet
                  extended by javax.swing.JApplet
                      extended by kz.gamma.hardware.applet.CryptoApplet
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, javax.swing.RootPaneContainer

public class CryptoApplet
extends javax.swing.JApplet

Класс для работы с внешними устройствами. Методы могут вызываться с веб-страниц. Используется спецификация PC/SC ("Personal Computer/Smart Card") и PKCS#11. Необходимо, чтобы в операционной системе был запущен сервис смарт-карт.

Author:
Renat Karimov
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JApplet
javax.swing.JApplet.AccessibleJApplet
 
Nested classes/interfaces inherited from class java.applet.Applet
java.applet.Applet.AccessibleApplet
 
Nested classes/interfaces inherited from class java.awt.Panel
java.awt.Panel.AccessibleAWTPanel
 
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
static java.lang.String COLUMN_SEPARATOR
          Разделитель столбцов для выходных данных
static int FILE_PATH
          Путь к файлу
protected  FileHelper fileHelper
          Помощник при работе с файлами
static java.lang.String IN_COLUMN_SEPARATOR
          Разделитель столбцов для входных данных
static java.lang.String IN_ROW_SEPARATOR
          Разделитель строк для входных данных
protected  java.lang.String lastError
          Ошибка, возникшая в последнем выполненном методе
protected static java.lang.String NULL_AS_STRING
          NULL в строковом представлении
static java.lang.String ROW_SEPARATOR
          Разделитель строк для выходных данных
protected  java.text.DateFormat sdfFull
          Формат даты
protected  java.text.DateFormat sdfShort
          Формат даты
static int STRING
          Строка
 
Fields inherited from class javax.swing.JApplet
accessibleContext, rootPane, rootPaneCheckingEnabled
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
CryptoApplet()
           
 
Method Summary
 java.lang.String binToHex(java.lang.String binInBase64)
          Конвертирование бинарных данных в hex-строку.
 boolean changePassword(java.lang.String reader, java.lang.String oldPass, java.lang.String newPass, java.lang.String algorithm)
          Смена пароля на ГОСТ или RSA устройстве
 boolean checkLicense(java.lang.String reader, java.lang.String algorithm)
          Проверка лицензии внешнего устройства
 boolean checkPassword(java.lang.String reader, java.lang.String pass, java.lang.String algorithm)
          Проверка пароля на ГОСТ или RSA устройстве
 java.lang.String createDialog()
          Создание диалога для выбора директории
 java.lang.String createDialog(java.lang.String extensions, java.lang.String description, int type)
          Создание диалога для выбора файла
 java.lang.String createOcspRequest(java.lang.String reader, java.lang.String objectName, java.lang.String pass, java.lang.String algorithm)
          Формирование запроса проверки статуса сертификата на алгоритме ГОСТ или RSA
 java.lang.String createPasswordDialog(java.lang.String message, java.lang.String title, int numberOfColumns)
          Создание диалога для ввода пароля
 java.lang.String createPkcs10(java.lang.String reader, java.lang.String subject, java.lang.String templateCn, java.lang.String objectName, java.lang.String pass)
          Формирование PKCS#10 на алгоритме ГОСТ
 java.lang.String createPkcs10(java.lang.String reader, java.lang.String subject, java.lang.String templateCn, java.lang.String objectName, java.lang.String pass, java.lang.String algorithm)
          Формирование PKCS#10 на алгоритме ГОСТ или RSA.
 java.lang.String createPkcs10(java.lang.String reader, java.lang.String subject, java.lang.String templateCn, java.lang.String objectName, java.lang.String pass, java.lang.String algorithm, java.lang.String publicKeyOid, java.lang.String signatureOid)
          Формирование PKCS#10 на алгоритме ГОСТ или RSA
 java.lang.String createPkcs7(java.lang.String reader, java.lang.String filePath, boolean attached, java.lang.String objectName, java.lang.String pass)
          Формирование PKCS#7 на алгоритме ГОСТ или RSA.
 java.lang.String createPkcs7(java.lang.String reader, java.lang.String filePath, boolean attached, java.lang.String objectName, java.lang.String pass, java.lang.String algorithm)
          Формирование PKCS#7 на алгоритме ГОСТ или RSA
 java.lang.String createPkcs7(java.lang.String reader, java.lang.String data, int dataType, boolean attached, java.lang.String objectName, java.lang.String pass, java.lang.String algorithm)
          Формирование PKCS#7 на алгоритме ГОСТ или RSA
 java.lang.String createPkcs7(java.lang.String reader, java.lang.String data, int dataType, boolean attached, java.lang.String objectName, java.lang.String pass, java.lang.String algorithm, java.lang.String digestOid)
          Формирование PKCS#7 на алгоритме ГОСТ или RSA
 java.lang.String createTimestampRequest(java.lang.String reader, java.lang.String data, int dataType, java.lang.String reqPolicy, java.lang.String objectName, java.lang.String pass, java.lang.String algorithm)
          Формирование запроса метки времени.
 java.lang.String createVistaMessage(java.lang.String reader, java.lang.String filePaths, java.lang.String directoryToSave, java.lang.String senderSignObjectName, java.lang.String senderExchObjectName, java.lang.String pass, java.lang.String recipientsExchCertificates, byte priority, java.lang.String title)
          Формирование сообщения в формате Vista и сохранение его на файловую систему
 boolean deleteKeyPair(java.lang.String reader, java.lang.String objectName, java.lang.String pass)
          Удаление ключевой пары ГОСТ
 boolean deleteKeyPair(java.lang.String reader, java.lang.String objectName, java.lang.String pass, java.lang.String algorithm)
          Удаление ключевой пары ГОСТ или RSA
 void destroy()
          Уничтожение апплета
 java.lang.String generateKeyPair(java.lang.String reader, int algType, java.lang.String objectName, java.lang.String pass)
          Генерация ключевой пары на алгоритме ГОСТ
 java.lang.String generateKeyPair(java.lang.String reader, int algType, java.lang.String objectName, java.lang.String pass, java.lang.String algorithm)
          Генерация ключевой пары на алгоритме ГОСТ или RSA
 java.lang.String generateObjectName()
          Генерирование имени объекта типа "Текущее время в миллисекундах".
 java.lang.String generateObjectName(java.lang.String dateFormat)
          Генерирование имени типа "Форматированная дата".
 java.lang.String getCertFromPkcs7(java.lang.String pkcs7)
          Получение сертификата из PKCS#7.
 java.lang.String getCertificateInfo(java.lang.String certificate)
          Получение информации о сертификате ГОСТ или RSA.
 java.lang.String getDevices()
          Получение информации о поддерживаемых устройствах в виде строк "ридер - устройство - алгоритм".
 java.lang.Integer getFileSize(java.lang.String path)
          Получение размера файла в байтах.
 java.lang.Integer getFreeMemorySize(java.lang.String reader, java.lang.String algorithm)
          Получение размера свободной памяти в байтах
 java.lang.String getInfoFromPkcs7(java.lang.String pkcs7)
          Получение информации о PKCS#7.
 java.lang.String getLastError()
          Получение информации об ошибке
 java.lang.String getObjects(java.lang.String reader, java.lang.String pass)
          Получение информации об объектах ГОСТ, находящихся на устройстве.
 java.lang.String getObjects(java.lang.String reader, java.lang.String pass, java.lang.String algorithm)
          Получение информации об объектах ГОСТ или RSA, находящихся на устройстве.
 java.lang.String getReaders()
          Получение списка доступных ридеров.
 java.lang.String getSerialNumber(java.lang.String reader, java.lang.String algorithm)
          Получение серийного номера устройства
 void init()
          Инициализация апплета
 java.lang.String invertParts(java.lang.String binInBase64)
          Переворачивание частей бинарных данных.
 java.lang.String loadData(java.lang.String path)
          Загрузка содержимого файла.
 java.lang.String parseVerifierResponse(java.lang.String verifierResponse)
          Парсинг ответа от службы Verifier
 java.lang.String parseVistaMessage(java.lang.String reader, int informationType, java.lang.String filePath, java.lang.String directoryToSave, java.lang.String pass, java.lang.String senderSignCertificate, java.lang.String senderExchCertificate)
          Парсинг сообщения в формате Vista
 boolean saveData(java.lang.String data, java.lang.String path)
          Сохранение данных в файл.
 boolean setCertificate(java.lang.String reader, java.lang.String certificate, java.lang.String objectName, java.lang.String pass)
          Установка сертификата ГОСТ на устройство
 boolean setCertificate(java.lang.String reader, java.lang.String certificate, java.lang.String objectName, java.lang.String pass, java.lang.String algorithm)
          Установка сертификата ГОСТ или RSA на устройство
 java.lang.String verifyOcspResponse(java.lang.String ocspResponse)
          Получение статуса сертификата из ответа на запрос проверки статуса сертификата на алгоритме ГОСТ или RSA
 boolean verifyPkcs7(java.lang.String pkcs7, java.lang.String filePath)
          Проверка PKCS#7 на алгоритме ГОСТ или RSA
 boolean verifyPkcs7(java.lang.String pkcs7, java.lang.String data, int dataType)
          Проверка PKCS#7 на алгоритме ГОСТ или RSA
 
Methods inherited from class javax.swing.JApplet
addImpl, createRootPane, getAccessibleContext, getContentPane, getGlassPane, getGraphics, getJMenuBar, getLayeredPane, getRootPane, getTransferHandler, isRootPaneCheckingEnabled, paramString, remove, repaint, setContentPane, setGlassPane, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, setTransferHandler, update
 
Methods inherited from class java.applet.Applet
getAppletContext, getAppletInfo, getAudioClip, getAudioClip, getCodeBase, getDocumentBase, getImage, getImage, getLocale, getParameter, getParameterInfo, isActive, newAudioClip, play, play, resize, resize, setStub, showStatus, start, stop
 
Methods inherited from class java.awt.Panel
addNotify
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getInsets, getLayout, getListeners, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paint, paintComponents, preferredSize, print, printComponents, processContainerEvent, processEvent, remove, removeAll, removeContainerListener, removeNotify, setComponentZOrder, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getToolkit, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, reshape, setBackground, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setMinimumSize, setName, setPreferredSize, setSize, setSize, setVisible, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

COLUMN_SEPARATOR

public static java.lang.String COLUMN_SEPARATOR
Разделитель столбцов для выходных данных


IN_COLUMN_SEPARATOR

public static java.lang.String IN_COLUMN_SEPARATOR
Разделитель столбцов для входных данных


ROW_SEPARATOR

public static java.lang.String ROW_SEPARATOR
Разделитель строк для выходных данных


IN_ROW_SEPARATOR

public static java.lang.String IN_ROW_SEPARATOR
Разделитель строк для входных данных


lastError

protected java.lang.String lastError
Ошибка, возникшая в последнем выполненном методе


NULL_AS_STRING

protected static final java.lang.String NULL_AS_STRING
NULL в строковом представлении

See Also:
Constant Field Values

FILE_PATH

public static final int FILE_PATH
Путь к файлу

See Also:
Constant Field Values

STRING

public static final int STRING
Строка

See Also:
Constant Field Values

sdfShort

protected java.text.DateFormat sdfShort
Формат даты


sdfFull

protected java.text.DateFormat sdfFull
Формат даты


fileHelper

protected FileHelper fileHelper
Помощник при работе с файлами

Constructor Detail

CryptoApplet

public CryptoApplet()
Method Detail

init

public void init()
Инициализация апплета

Overrides:
init in class java.applet.Applet

destroy

public void destroy()
Уничтожение апплета

Overrides:
destroy in class java.applet.Applet

getLastError

public java.lang.String getLastError()
Получение информации об ошибке

Returns:
Описание ошибки последнего выполненного метода

getReaders

public java.lang.String getReaders()
Получение списка доступных ридеров. Список может содержать ГОСТ и RSA устройства. Данные разделены CryptoApplet.COLUMN_SEPARATOR.

Returns:
Список ридеров. Если возвратилась пустая строка, значит устройства к компьютеру не подключены. Если возвратился null, значит произошла ошибка. В этом случае смотрите лог Java Console. Получить последнюю возникшую ошибку можно через метод getLastError()

getDevices

public java.lang.String getDevices()
Получение информации о поддерживаемых устройствах в виде строк "ридер - устройство - алгоритм". Информация может извлекается для ГОСТ и RSA устройств. Данные разделены CryptoApplet.COLUMN_SEPARATOR.

Returns:
Информация о поддерживаемых устройствах в виде строк "ридер - устройство - алгоритм". Столбцы разделены CryptoApplet.COLUMN_SEPARATOR. Строки разделены CryptoApplet.ROW_SEPARATOR. Строка содержит:
  • ридер (Обязательный);
  • устройство (Обязательный);
  • алгоритм (Обязательный).
Если возвратилась пустая строка, значит устройства к компьютеру не подключены, либо они не поддерживаются. Если возвратился null, значит произошла ошибка. В этом случае смотрите лог Java Console. Получить последнюю возникшую ошибку можно через метод getLastError()

generateObjectName

public java.lang.String generateObjectName()
Генерирование имени объекта типа "Текущее время в миллисекундах". Используется время с 1 января 1970 года.

Returns:
Имя объекта. Если возвратился null, значит произошла ошибка. В этом случае смотрите лог Java Console. Получить последнюю возникшую ошибку можно через метод getLastError()

generateObjectName

public java.lang.String generateObjectName(java.lang.String dateFormat)
Генерирование имени типа "Форматированная дата".

Parameters:
dateFormat - Формат даты генерируемых данных. Например, "MMddHHmmss". Используется временная зона UTC±00:00.
Returns:
Имя объекта. Если возвратился null, значит произошла ошибка. В этом случае смотрите лог Java Console. Получить последнюю возникшую ошибку можно через метод getLastError()

getObjects

public java.lang.String getObjects(java.lang.String reader,
                                   java.lang.String pass)
Получение информации об объектах ГОСТ, находящихся на устройстве.

Parameters:
reader - Ридер. Можно получить через метод getReaders() или getDevices(). Если передан null или пустая строка, то производится попытка получения первого доступного устройства c ключами ГОСТ. Приоритет поиска устройств для ГОСТ:
  • GammaJaCarta;
  • JavaToken;
  • AladdinJaCarta;
  • RuToken;
  • KzToken;
  • SafeNetToken;
  • JaCartaToken.
Понижение приоритета идет от первого к последнему.
pass - Пароль для доступа к устройству
Returns:
Информация об объектах ГОСТ. Столбцы разделены CryptoApplet.COLUMN_SEPARATOR. Строки разделены CryptoApplet.ROW_SEPARATOR. Строка содержит:
  • имя объекта (Обязательный);
  • идентификатор алгоритма ключа (Обязательный);
  • строковое представление алгоритма ключа (Обязательный);
  • тело сертификата (Опциональный. Если тело сертификата отсутствует, то в столбец будет вставлена пустая строка "");
  • открытый ключ в BASE64 кодировке (Обязательный).
Если возвратился null, значит произошла ошибка. В этом случае смотрите лог Java Console. Получить последнюю возникшую ошибку можно через метод getLastError()

getObjects

public java.lang.String getObjects(java.lang.String reader,
                                   java.lang.String pass,
                                   java.lang.String algorithm)
Получение информации об объектах ГОСТ или RSA, находящихся на устройстве.

Parameters:
reader - Ридер. Можно получить через метод getReaders() или getDevices(). Если передан null или пустая строка, то производится попытка получения первого доступного устройства c указанным алгоритмом. Приоритет поиска устройств для ГОСТ:
  • GammaJaCarta;
  • JavaToken;
  • AladdinJaCarta;
  • RuToken;
  • KzToken;
  • SafeNetToken;
  • JaCartaToken.
Приоритет поиска устройств для RSA:
  • JaCarta;
  • JavaToken;
  • RuToken;
  • KzToken.
Понижение приоритета идет от первого к последнему.
pass - Пароль для доступа к устройству
algorithm - Алгоритм. Возможные варианты:
  • gost - CryptoObject.GOST;
  • rsa - CryptoObject.RSA.
Returns:
Информация об объектах ГОСТ или RSA. Столбцы разделены CryptoApplet.COLUMN_SEPARATOR. Строки разделены CryptoApplet.ROW_SEPARATOR. Строка содержит:
  • имя объекта (Обязательный);
  • идентификатор алгоритма ключа (Обязательный);
  • строковое представление алгоритма ключа (Обязательный);
  • тело сертификата (Опциональный. Если тело сертификата отсутствует, то в столбец будет вставлена пустая строка "");
  • открытый ключ в BASE64 кодировке (Обязательный).
Если возвратился null, значит произошла ошибка. В этом случае смотрите лог Java Console. Получить последнюю возникшую ошибку можно через метод getLastError()

getCertificateInfo

public java.lang.String getCertificateInfo(java.lang.String certificate)
Получение информации о сертификате ГОСТ или RSA.

Parameters:
certificate - Сертификат. Возможные варианты:
  • PKCS#7 с сертификатом ГОСТ или RSA в BASE64 кодировке (Если количество сертификатов больше одного, то используется первый сертификат);
  • сертификат ГОСТ или RSA в BASE64 кодировке.
Returns:
Информация о сертификате. Данные разделены CryptoApplet.COLUMN_SEPARATOR. Строка содержит:
  • DN;
  • флаги Key Usage;
  • OID-ы Extended Key Usage;
  • дата начала действия сертификата;
  • дата окончания действия сертификата;
  • серийный номер сертификата;
  • OID алгоритма подписи;
  • флаг isCA;
  • открытый ключ в BASE64 кодировке;
  • политики;
  • Issuer DN;
  • подпись сертификата в BASE64 кодировке;
  • алгоритм открытого ключа;
  • идентификатор ключа субъекта;
  • идентификатор ключа центра сертификации.
Описание.

В значениях узлов DN следующие символы будут экранированнными: 1) ','; 2) '"'; 3) '\'; 4) '+'; 5) '='; 6) '<'; 7) '>'; 8) ';'.

Key Usage возвращается в виде строки "100000000". Каждый символ означает наличие определенного Key Usage. Например, в "100000000" закодирован digitalSignature, а в "001100000" - keyEncipherment и dataEncipherment. Возможные варианты Key Usage: KeyUsage ::= BIT STRING { digitalSignature (0), nonRepudiation (1), keyEncipherment (2), dataEncipherment (3), keyAgreement (4), keyCertSign (5), cRLSign (6), encipherOnly (7), decipherOnly (8) }

OID-ы Extended Key Usage возвращаются в виде строки, разделенной запятыми. Например "1.2.3,2.3.4". Если сертификат не содержит Extended Key Usage, то возвращается пустая строка.

OID алгоритма подписи. "1.2.840.113549.1.1.5" - это "SHA-1 with RSA Encryption". "1.3.6.1.4.1.6801.1.2.2" - это "SIGN GOST 34 310 (GammaTech)".

Флаг isCA. "1" - сертификат является сертификатом центра сертификации. "0" - сертификат не является сертификатом центра сертификации.

Политики возвращаются в виде строки, разделенной запятыми. Например "1.2.3,2.3.4". Если сертификат не содержит политик, то возвращается пустая строка.

В значениях узлов Issuer DN следующие символы будут экранированнными: 1) ','; 2) '"'; 3) '\'; 4) '+'; 5) '='; 6) '<'; 7) '>'; 8) ';'.

Если возвратился null, значит произошла ошибка. В этом случае смотрите лог Java Console. Получить последнюю возникшую ошибку можно через метод getLastError()


createPkcs7

public java.lang.String createPkcs7(java.lang.String reader,
                                    java.lang.String filePath,
                                    boolean attached,
                                    java.lang.String objectName,
                                    java.lang.String pass)
Формирование PKCS#7 на алгоритме ГОСТ или RSA. Если передано имя ридера, то производится поиск ГОСТ устройства, которое привязано к этому ридеру. Если ГОСТ устройство не найдено, то производится поиск RSA устройства. Если имя ридера не передано, то используется алгоритм ГОСТ.

Parameters:
reader - Ридер. Можно получить через метод getReaders() или getDevices(). Если передан null или пустая строка, то производится попытка получения первого доступного устройства. Приоритет поиска устройств для ГОСТ:
  • GammaJaCarta;
  • JavaToken;
  • AladdinJaCarta;
  • RuToken;
  • KzToken;
  • SafeNetToken;
  • JaCartaToken.
Понижение приоритета идет от первого к последнему.
filePath - Путь к файлу, который необходимо подписать
attached - Если true, то будет сформирована attached-подпись, иначе detached.
objectName - Наименование объекта (ключа)
pass - Пароль для доступа к устройству
Returns:
PKCS#7 на алгоритме ГОСТ или RSA в BASE64 кодировке. Если возвратился null, значит произошла ошибка. В этом случае смотрите лог Java Console. Получить последнюю возникшую ошибку можно через метод getLastError()

createPkcs7

public java.lang.String createPkcs7(java.lang.String reader,
                                    java.lang.String filePath,
                                    boolean attached,
                                    java.lang.String objectName,
                                    java.lang.String pass,
                                    java.lang.String algorithm)
Формирование PKCS#7 на алгоритме ГОСТ или RSA

Parameters:
reader - Ридер. Можно получить через метод getReaders() или getDevices(). Если передан null или пустая строка, то производится попытка получения первого доступного устройства c указанным алгоритмом. Приоритет поиска устройств для ГОСТ:
  • GammaJaCarta;
  • JavaToken;
  • AladdinJaCarta;
  • RuToken;
  • KzToken;
  • SafeNetToken;
  • JaCartaToken.
Приоритет поиска устройств для RSA:
  • JaCarta;
  • JavaToken;
  • RuToken;
  • KzToken.
Понижение приоритета идет от первого к последнему.
filePath - Путь к файлу, который необходимо подписать
attached - Если true, то будет сформирована attached-подпись, иначе detached.
objectName - Наименование объекта (ключа)
pass - Пароль для доступа к устройству
algorithm - Алгоритм. Возможные варианты:
  • gost - CryptoObject.GOST;
  • rsa - CryptoObject.RSA.
Returns:
PKCS#7 на алгоритме ГОСТ или RSA в BASE64 кодировке. Если возвратился null, значит произошла ошибка. В этом случае смотрите лог Java Console. Получить последнюю возникшую ошибку можно через метод getLastError()

createPkcs7

public java.lang.String createPkcs7(java.lang.String reader,
                                    java.lang.String data,
                                    int dataType,
                                    boolean attached,
                                    java.lang.String objectName,
                                    java.lang.String pass,
                                    java.lang.String algorithm)
Формирование PKCS#7 на алгоритме ГОСТ или RSA

Parameters:
reader - Ридер. Можно получить через метод getReaders() или getDevices(). Если передан null или пустая строка, то производится попытка получения первого доступного устройства c указанным алгоритмом. Приоритет поиска устройств для ГОСТ:
  • GammaJaCarta;
  • JavaToken;
  • AladdinJaCarta;
  • RuToken;
  • KzToken;
  • SafeNetToken;
  • JaCartaToken.
Приоритет поиска устройств для RSA:
  • JaCarta;
  • JavaToken;
  • RuToken;
  • KzToken.
Понижение приоритета идет от первого к последнему.
data - Данные для подписи
dataType - Тип подписываемых данных Возможные варианты:
  • 0 - CryptoApplet.FILE_PATH (Путь к файлу);
  • 1 - CryptoApplet.STRING (Строка в UTF-8 кодировке).
attached - Если true, то будет сформирована attached-подпись, иначе detached.
objectName - Наименование объекта (ключа)
pass - Пароль для доступа к устройству
algorithm - Алгоритм. Возможные варианты:
  • gost - CryptoObject.GOST;
  • rsa - CryptoObject.RSA.
Returns:
PKCS#7 на алгоритме ГОСТ или RSA в BASE64 кодировке. Если возвратился null, значит произошла ошибка. В этом случае смотрите лог Java Console. Получить последнюю возникшую ошибку можно через метод getLastError()

createPkcs7

public java.lang.String createPkcs7(java.lang.String reader,
                                    java.lang.String data,
                                    int dataType,
                                    boolean attached,
                                    java.lang.String objectName,
                                    java.lang.String pass,
                                    java.lang.String algorithm,
                                    java.lang.String digestOid)
Формирование PKCS#7 на алгоритме ГОСТ или RSA

Parameters:
reader - Ридер. Можно получить через метод getReaders() или getDevices(). Если передан null или пустая строка, то производится попытка получения первого доступного устройства c указанным алгоритмом. Приоритет поиска устройств для ГОСТ:
  • GammaJaCarta;
  • JavaToken;
  • AladdinJaCarta;
  • RuToken;
  • KzToken;
  • SafeNetToken;
  • JaCartaToken.
Приоритет поиска устройств для RSA:
  • JaCarta;
  • JavaToken;
  • RuToken;
  • KzToken.
Понижение приоритета идет от первого к последнему.
data - Данные для подписи
dataType - Тип подписываемых данных Возможные варианты:
  • 0 - CryptoApplet.FILE_PATH (Путь к файлу);
  • 1 - CryptoApplet.STRING (Строка в UTF-8 кодировке).
attached - Если true, то будет сформирована attached-подпись, иначе detached.
objectName - Наименование объекта (ключа)
pass - Пароль для доступа к устройству
algorithm - Алгоритм. Возможные варианты:
  • gost - CryptoObject.GOST;
  • rsa - CryptoObject.RSA.
digestOid - Объектный идертификатор хеш-значения. Возможные варианты:
  • 1.3.6.1.4.1.6801.1.2.1 - Gamma Technologies Research Laboratory LLP GOST;
  • 1.2.398.3.10.1.3.1 - Kazakhstan GOST;
  • 1.3.14.3.2.26 - SHA-1;
Returns:
PKCS#7 на алгоритме ГОСТ или RSA в BASE64 кодировке. Если возвратился null, значит произошла ошибка. В этом случае смотрите лог Java Console. Получить последнюю возникшую ошибку можно через метод getLastError()

verifyPkcs7

public boolean verifyPkcs7(java.lang.String pkcs7,
                           java.lang.String filePath)
Проверка PKCS#7 на алгоритме ГОСТ или RSA

Parameters:
pkcs7 - PKCS#7 на алгоритме ГОСТ или RSA в BASE64 кодировке
filePath - Путь к файлу, который был подписан
Returns:
true, если подпись верна. Если возвратился false, значит подпись неверна или произошла ошибка при проверке подписи. В этом случае смотрите лог Java Console. Получить последнюю возникшую ошибку можно через метод getLastError()

verifyPkcs7

public boolean verifyPkcs7(java.lang.String pkcs7,
                           java.lang.String data,
                           int dataType)
Проверка PKCS#7 на алгоритме ГОСТ или RSA

Parameters:
pkcs7 - PKCS#7 на алгоритме ГОСТ или RSA в BASE64 кодировке
data - Данные, которые подписывались
dataType - Тип подписанных данных Возможные варианты:
  • 0 - CryptoApplet.FILE_PATH (Путь к файлу);
  • 1 - CryptoApplet.STRING (Строка).
Returns:
true, если подпись верна. Если возвратился false, значит подпись неверна или произошла ошибка при проверке подписи. В этом случае смотрите лог Java Console. Получить последнюю возникшую ошибку можно через метод getLastError()

getInfoFromPkcs7

public java.lang.String getInfoFromPkcs7(java.lang.String pkcs7)
Получение информации о PKCS#7.

Parameters:
pkcs7 - PKCS#7 в BASE64 кодировке.
Returns:
Информация о PKCS#7 в UTF-8 кодировке. Данные разделены CryptoApplet.COLUMN_SEPARATOR. Строка содержит:
  • данные, которые подписывались.
Описание.

Данные, которые подписывались. Данные преобразовываются в строку. Из этого следует, что могут быть извлечены только строковые данные. Если подписывались бинарные данные, то после преобраозования в строку некоторые байты будут потеряны. Если возвратился null, значит произошла ошибка. В этом случае смотрите лог Java Console. Получить последнюю возникшую ошибку можно через метод getLastError()


getCertFromPkcs7

public java.lang.String getCertFromPkcs7(java.lang.String pkcs7)
Получение сертификата из PKCS#7.

Parameters:
pkcs7 - PKCS#7 в BASE64 кодировке.
Returns:
Сертификаты из PKCS#7 в BASE64 кодировке. Данные разделены CryptoApplet.COLUMN_SEPARATOR. Если возвратился null, значит произошла ошибка. В этом случае смотрите лог Java Console. Получить последнюю возникшую ошибку можно через метод getLastError()

generateKeyPair

public java.lang.String generateKeyPair(java.lang.String reader,
                                        int algType,
                                        java.lang.String objectName,
                                        java.lang.String pass)
Генерация ключевой пары на алгоритме ГОСТ

Parameters:
reader - Ридер. Можно получить через метод getReaders() или getDevices(). Если передан null или пустая строка, то производится попытка получения первого доступного устройства. Приоритет поиска устройств для ГОСТ:
  • GammaJaCarta;
  • JavaToken;
  • AladdinJaCarta;
  • RuToken;
  • KzToken;
  • SafeNetToken;
  • JaCartaToken.
Понижение приоритета идет от первого к последнему.
algType - Идентификатор алгоритма. Возможные варианты для ГОСТ:
  • 1 - CryptoParam.TYPE_GOST_PARAM_A;
  • 2 - CryptoParam.TYPE_GOST_PARAM_A_EX.
objectName - Наименование объекта (ключа). Для генерации имени объекта необходимо использовать метод используя метод generateObjectName()
pass - Пароль для доступа к устройству
Returns:
Открытый ключ в BASE64 кодировке. Если возвратился null, значит произошла ошибка. В этом случае смотрите лог Java Console. Получить последнюю возникшую ошибку можно через метод getLastError()

generateKeyPair

public java.lang.String generateKeyPair(java.lang.String reader,
                                        int algType,
                                        java.lang.String objectName,
                                        java.lang.String pass,
                                        java.lang.String algorithm)
Генерация ключевой пары на алгоритме ГОСТ или RSA

Parameters:
reader - Ридер. Можно получить через метод getReaders() или getDevices(). Если передан null или пустая строка, то производится попытка получения первого доступного устройства c указанным алгоритмом. Приоритет поиска устройств для ГОСТ:
  • GammaJaCarta;
  • JavaToken;
  • AladdinJaCarta;
  • RuToken;
  • KzToken;
  • SafeNetToken;
  • JaCartaToken.
Приоритет поиска устройств для RSA:
  • JaCarta;
  • JavaToken;
  • RuToken;
  • KzToken.
Понижение приоритета идет от первого к последнему.
algType - Идентификатор алгоритма. Возможные варианты для ГОСТ:
  • 1 - CryptoParam.TYPE_GOST_PARAM_A;
  • 2 - CryptoParam.TYPE_GOST_PARAM_A_EX.
Возможные варианты для RSA:
  • 3 - CryptoParam.TYPE_RSA_KEY_1024;
  • 4 - CryptoParam.TYPE_RSA_KEY_1536 (Только для JaCarta);
  • 5 - CryptoParam.TYPE_RSA_KEY_2048;
  • 6 - CryptoParam.TYPE_RSA_KEY_EX_1024;
  • 7 - CryptoParam.TYPE_RSA_KEY_EX_1536 (Только для JaCarta);
  • 8 - CryptoParam.TYPE_RSA_KEY_EX_2048;
objectName - Наименование объекта (ключа). Для генерации имени объекта необходимо использовать метод используя метод generateObjectName()
pass - Пароль для доступа к устройству
algorithm - Алгоритм. Возможные варианты:
  • gost - CryptoObject.GOST;
  • rsa - CryptoObject.RSA.
Returns:
Открытый ключ ГОСТ или RSA в BASE64 кодировке. Если возвратился null, значит произошла ошибка. В этом случае смотрите лог Java Console. Получить последнюю возникшую ошибку можно через метод getLastError()

deleteKeyPair

public boolean deleteKeyPair(java.lang.String reader,
                             java.lang.String objectName,
                             java.lang.String pass)
Удаление ключевой пары ГОСТ

Parameters:
reader - Ридер. Можно получить через метод getReaders() или getDevices(). Если передан null или пустая строка, то производится попытка получения первого доступного устройства. Приоритет поиска устройств для ГОСТ:
  • GammaJaCarta;
  • JavaToken;
  • AladdinJaCarta;
  • RuToken;
  • KzToken;
  • SafeNetToken;
  • JaCartaToken.
Понижение приоритета идет от первого к последнему.
objectName - Наименование объекта (ключа)
pass - Пароль для доступа к устройству
Returns:
true, если ключевая пара ГОСТ была удалена. Если возвратился false, значит ключевая пара не была удалена или произошла ошибка при удалении ключа. В этом случае смотрите лог Java Console. Получить последнюю возникшую ошибку можно через метод getLastError()

deleteKeyPair

public boolean deleteKeyPair(java.lang.String reader,
                             java.lang.String objectName,
                             java.lang.String pass,
                             java.lang.String algorithm)
Удаление ключевой пары ГОСТ или RSA

Parameters:
reader - Ридер. Можно получить через метод getReaders() или getDevices(). Если передан null или пустая строка, то производится попытка получения первого доступного устройства c указанным алгоритмом. Приоритет поиска устройств для ГОСТ:
  • GammaJaCarta;
  • JavaToken;
  • AladdinJaCarta;
  • RuToken;
  • KzToken;
  • SafeNetToken;
  • JaCartaToken.
Приоритет поиска устройств для RSA:
  • JaCarta;
  • JavaToken;
  • RuToken;
  • KzToken.
Понижение приоритета идет от первого к последнему.
objectName - Наименование объекта (ключа)
pass - Пароль для доступа к устройству
algorithm - Алгоритм. Возможные варианты:
  • gost - CryptoObject.GOST;
  • rsa - CryptoObject.RSA.
Returns:
true, если ключевая пара ГОСТ или RSA была удалена. Если возвратился false, значит ключевая пара не была удалена или произошла ошибка при удалении ключа. В этом случае смотрите лог Java Console. Получить последнюю возникшую ошибку можно через метод getLastError()

createPkcs10

public java.lang.String createPkcs10(java.lang.String reader,
                                     java.lang.String subject,
                                     java.lang.String templateCn,
                                     java.lang.String objectName,
                                     java.lang.String pass)
Формирование PKCS#10 на алгоритме ГОСТ

Parameters:
reader - Ридер. Можно получить через метод getReaders() или getDevices(). Если передан null или пустая строка, то производится попытка получения первого доступного устройства. Приоритет поиска устройств для ГОСТ:
  • GammaJaCarta;
  • JavaToken;
  • AladdinJaCarta;
  • RuToken;
  • KzToken;
  • SafeNetToken;
  • JaCartaToken.
Понижение приоритета идет от первого к последнему.
subject - DN. Узлы DN должны разделяться запятыми, то есть символом ','. В значениях узлов необходимо производить экранирование следующих символов: 1) ','; 2) '"'; 3) '\'; 4) '+'; 5) '='; 6) '<'; 7) '>'; 8) ';'. Например, если сформировано имя "C=KZ,O=ТОО 123, 456,CN=Name", то передать его необходимо как "C=KZ,O=ТОО 123\, 456,CN=Name"
templateCn - Значение поля CN шаблона сертификата. Имя шаблона всегда должно начинаться с "С=KZ,O=Template,CN=". Например, если имя шаблона "С=KZ,O=Template,CN=GOST_USER_SIGN_1H", то необходимо передать "GOST_USER_SIGN_1H". Может быть null
objectName - Наименование объекта (ключа)
pass - Пароль для доступа к устройству
Returns:
PKCS#10 на алгоритме ГОСТ в BASE64 кодировке. Если возвратился null, значит произошла ошибка. В этом случае смотрите лог Java Console. Получить последнюю возникшую ошибку можно через метод getLastError()

createPkcs10

public java.lang.String createPkcs10(java.lang.String reader,
                                     java.lang.String subject,
                                     java.lang.String templateCn,
                                     java.lang.String objectName,
                                     java.lang.String pass,
                                     java.lang.String algorithm)
Формирование PKCS#10 на алгоритме ГОСТ или RSA. Для ключей ГОСТ используются объектные идентификаторы Gamma Technologies Research Laboratory LLP.

Parameters:
reader - Ридер. Можно получить через метод getReaders() или getDevices(). Если передан null или пустая строка, то производится попытка получения первого доступного устройства c указанным алгоритмом. Приоритет поиска устройств для ГОСТ:
  • GammaJaCarta;
  • JavaToken;
  • AladdinJaCarta;
  • RuToken;
  • KzToken;
  • SafeNetToken;
  • JaCartaToken.
Приоритет поиска устройств для RSA:
  • JaCarta;
  • JavaToken;
  • RuToken;
  • KzToken.
Понижение приоритета идет от первого к последнему.
subject - DN. Узлы DN должны разделяться запятыми, то есть символом ','. В значениях узлов необходимо производить экранирование следующих символов: 1) ','; 2) '"'; 3) '\'; 4) '+'; 5) '='; 6) '<'; 7) '>'; 8) ';'. Например, если сформировано имя "C=KZ,O=ТОО 123, 456,CN=Name", то передать его необходимо как "C=KZ,O=ТОО 123\, 456,CN=Name"
templateCn - Значение поля CN шаблона сертификата. Имя шаблона всегда должно начинаться с "С=KZ,O=Template,CN=". Например, если имя шаблона "С=KZ,O=Template,CN=GOST_USER_SIGN_1H", то необходимо передать "GOST_USER_SIGN_1H". Может быть null
objectName - Наименование объекта (ключа)
pass - Пароль для доступа к устройству
algorithm - Алгоритм. Возможные варианты:
  • gost - CryptoObject.GOST;
  • rsa - CryptoObject.RSA.
Returns:
PKCS#10 на алгоритме ГОСТ или RSA в BASE64 кодировке. Если возвратился null, значит произошла ошибка. В этом случае смотрите лог Java Console. Получить последнюю возникшую ошибку можно через метод getLastError()

createPkcs10

public java.lang.String createPkcs10(java.lang.String reader,
                                     java.lang.String subject,
                                     java.lang.String templateCn,
                                     java.lang.String objectName,
                                     java.lang.String pass,
                                     java.lang.String algorithm,
                                     java.lang.String publicKeyOid,
                                     java.lang.String signatureOid)
Формирование PKCS#10 на алгоритме ГОСТ или RSA

Parameters:
reader - Ридер. Можно получить через метод getReaders() или getDevices(). Если передан null или пустая строка, то производится попытка получения первого доступного устройства c указанным алгоритмом. Приоритет поиска устройств для ГОСТ:
  • GammaJaCarta;
  • JavaToken;
  • AladdinJaCarta;
  • RuToken;
  • KzToken;
  • SafeNetToken;
  • JaCartaToken.
Приоритет поиска устройств для RSA:
  • JaCarta;
  • JavaToken;
  • RuToken;
  • KzToken.
Понижение приоритета идет от первого к последнему.
subject - DN. Узлы DN должны разделяться запятыми, то есть символом ','. В значениях узлов необходимо производить экранирование следующих символов: 1) ','; 2) '"'; 3) '\'; 4) '+'; 5) '='; 6) '<'; 7) '>'; 8) ';'. Например, если сформировано имя "C=KZ,O=ТОО 123, 456,CN=Name", то передать его необходимо как "C=KZ,O=ТОО 123\, 456,CN=Name"
templateCn - Значение поля CN шаблона сертификата. Имя шаблона всегда должно начинаться с "С=KZ,O=Template,CN=". Например, если имя шаблона "С=KZ,O=Template,CN=GOST_USER_SIGN_1H", то необходимо передать "GOST_USER_SIGN_1H". Может быть null
objectName - Наименование объекта (ключа)
pass - Пароль для доступа к устройству
algorithm - Алгоритм. Возможные варианты:
  • gost - CryptoObject.GOST;
  • rsa - CryptoObject.RSA.
publicKeyOid - Объектный идентификатор открытого ключа. Возможные варианты:
  • 1.3.6.1.4.1.6801.1.5.8 - Gamma Technologies Research Laboratory LLP Signature;
  • 1.3.6.1.4.1.6801.1.8.8 - Gamma Technologies Research Laboratory LLP Key Exchange;
  • 1.2.398.3.10.1.1.1.1 - Kazakhstan Signature;
  • 1.2.840.113549.1.1.1 - RSA.
signatureOid - Объектный идентификатор подписи. Возможные варианты:
  • 1.3.6.1.4.1.6801.1.2.2 - Gamma Technologies Research Laboratory LLP Signature;
  • 1.2.398.3.10.1.1.1.2 - Kazakhstan Signature;
  • 1.2.840.113549.1.1.5 - RSA.
Returns:
PKCS#10 на алгоритме ГОСТ или RSA в BASE64 кодировке. Если возвратился null, значит произошла ошибка. В этом случае смотрите лог Java Console. Получить последнюю возникшую ошибку можно через метод getLastError()

setCertificate

public boolean setCertificate(java.lang.String reader,
                              java.lang.String certificate,
                              java.lang.String objectName,
                              java.lang.String pass)
Установка сертификата ГОСТ на устройство

Parameters:
reader - Ридер. Можно получить через метод getReaders() или getDevices(). Если передан null или пустая строка, то производится попытка получения первого доступного устройства. Приоритет поиска устройств для ГОСТ:
  • GammaJaCarta;
  • JavaToken;
  • AladdinJaCarta;
  • RuToken;
  • KzToken;
  • SafeNetToken;
  • JaCartaToken.
Понижение приоритета идет от первого к последнему.
certificate - Сертификат. Возможные варианты:
  • PKCS#7 с сертификатом ГОСТ в BASE64 кодировке (Если количество сертификатов больше одного, то используется первый сертификат);
  • сертификат ГОСТ в BASE64 кодировке.
objectName - Наименование объекта (ключа)
pass - Пароль для доступа к устройству
Returns:
true, если сертификат ГОСТ был установлен. Если возвратился false, значит сертификат не был установлен или произошла ошибка при установке сертификата. В этом случае смотрите лог Java Console. Получить последнюю возникшую ошибку можно через метод getLastError()

setCertificate

public boolean setCertificate(java.lang.String reader,
                              java.lang.String certificate,
                              java.lang.String objectName,
                              java.lang.String pass,
                              java.lang.String algorithm)
Установка сертификата ГОСТ или RSA на устройство

Parameters:
reader - Ридер. Можно получить через метод getReaders() или getDevices(). Если передан null или пустая строка, то производится попытка получения первого доступного устройства c указанным алгоритмом. Приоритет поиска устройств для ГОСТ:
  • GammaJaCarta;
  • JavaToken;
  • AladdinJaCarta;
  • RuToken;
  • KzToken;
  • SafeNetToken;
  • JaCartaToken.
Приоритет поиска устройств для RSA:
  • JaCarta;
  • JavaToken;
  • RuToken;
  • KzToken.
Понижение приоритета идет от первого к последнему.
certificate - Сертификат. Возможные варианты:
  • PKCS#7 с сертификатом ГОСТ или RSA в BASE64 кодировке (Если количество сертификатов больше одного, то используется первый сертификат);
  • сертификат ГОСТ или RSA в BASE64 кодировке.
objectName - Наименование объекта (ключа)
pass - Пароль для доступа к устройству
algorithm - Алгоритм. Возможные варианты:
  • gost - CryptoObject.GOST;
  • rsa - CryptoObject.RSA.
Returns:
true, если сертификат ГОСТ или RSA был установлен. Если возвратился false, значит сертификат не был установлен или произошла ошибка при установке сертификата. В этом случае смотрите лог Java Console. Получить последнюю возникшую ошибку можно через метод getLastError()

saveData

public boolean saveData(java.lang.String data,
                        java.lang.String path)
Сохранение данных в файл. Данные должны быть закодированы в BASE64 кодировке. Перед сохранением данных они декодируются из BASE64.

Parameters:
data - Данные для сохранения в BASE64 кодировке
path - Путь к файлу
Returns:
true, если все ок. Если возвратился false, значит данные не были сохранены. В этом случае смотрите лог Java Console. Получить последнюю возникшую ошибку можно через метод getLastError()

loadData

public java.lang.String loadData(java.lang.String path)
Загрузка содержимого файла. Содержимое после загрузки кодируется с использованием BASE64-кодировки

Parameters:
path - Путь к файлу
Returns:
Содержимое файла в BASE64-кодировке. Если возвратился null, значит данные не были загружены. В этом случае смотрите лог Java Console. Получить последнюю возникшую ошибку можно через метод getLastError()

createDialog

public java.lang.String createDialog(java.lang.String extensions,
                                     java.lang.String description,
                                     int type)
Создание диалога для выбора файла

Parameters:
extensions - Расширения, по которым будут фильтроваться результаты. Фильтрация регистронезависимая. Значения расширений должны быть без точек, например, "doc", "txt", "p7b". "*" означает, что фильтрация будет отключена. Расширения должны быть разделены CryptoApplet.COLUMN_SEPARATOR
description - Описание фильтров. Например, "Текстовые файлы"
type - Тип диалога

Возможные варианты:

  • JFileChooser.OPEN_DIALOG - диалог открытия файла;
  • JFileChooser.SAVE_DIALOG - диалог сохранения файла.
Returns:
Путь к выбранному файлу. Если возвратился null, значит файл не был выбран. В этом случае смотрите лог Java Console. Получить последнюю возникшую ошибку можно через метод getLastError()

createDialog

public java.lang.String createDialog()
Создание диалога для выбора директории

Returns:
Путь к выбранной директории. Если возвратился null, значит директория не была выбрана. В этом случае смотрите лог Java Console. Получить последнюю возникшую ошибку можно через метод getLastError()

getFileSize

public java.lang.Integer getFileSize(java.lang.String path)
Получение размера файла в байтах.

Parameters:
path - Путь к файлу
Returns:
Размер файла в байтах. Если возвратился null, значит данные не были загружены. В этом случае смотрите лог Java Console. Получить последнюю возникшую ошибку можно через метод getLastError()

checkPassword

public boolean checkPassword(java.lang.String reader,
                             java.lang.String pass,
                             java.lang.String algorithm)
Проверка пароля на ГОСТ или RSA устройстве

Parameters:
reader - Ридер. Можно получить через метод getReaders() или getDevices(). Если передан null или пустая строка, то производится попытка получения первого доступного устройства c указанным алгоритмом. Приоритет поиска устройств для ГОСТ:
  • GammaJaCarta;
  • JavaToken;
  • AladdinJaCarta;
  • RuToken;
  • KzToken;
  • SafeNetToken;
  • JaCartaToken.
Приоритет поиска устройств для RSA:
  • JaCarta;
  • JavaToken;
  • RuToken;
  • KzToken.
Понижение приоритета идет от первого к последнему.
pass - Пароль для доступа к устройству
algorithm - Алгоритм. Возможные варианты:
  • gost - CryptoObject.GOST;
  • rsa - CryptoObject.RSA.
Returns:
true, если пароль верный. Если возвратился false, значит пароль неверный. В этом случае смотрите лог Java Console. Получить последнюю возникшую ошибку можно через метод getLastError()

changePassword

public boolean changePassword(java.lang.String reader,
                              java.lang.String oldPass,
                              java.lang.String newPass,
                              java.lang.String algorithm)
Смена пароля на ГОСТ или RSA устройстве

Parameters:
reader - Ридер. Можно получить через метод getReaders() или getDevices(). Если передан null или пустая строка, то производится попытка получения первого доступного устройства c указанным алгоритмом. Приоритет поиска устройств для ГОСТ:
  • GammaJaCarta;
  • JavaToken;
  • AladdinJaCarta;
  • RuToken;
  • KzToken;
  • SafeNetToken;
  • JaCartaToken.
Приоритет поиска устройств для RSA:
  • JaCarta;
  • JavaToken;
  • RuToken;
  • KzToken.
Понижение приоритета идет от первого к последнему.
oldPass - Старый пароль для доступа к устройству
newPass - Новый пароль для доступа к устройству
algorithm - Алгоритм. Возможные варианты:
  • gost - CryptoObject.GOST;
  • rsa - CryptoObject.RSA.
Returns:
true, если пароль удачно изменен. Если возвратился false, значит смена пароля не удалась. В этом случае смотрите лог Java Console. Получить последнюю возникшую ошибку можно через метод getLastError()

checkLicense

public boolean checkLicense(java.lang.String reader,
                            java.lang.String algorithm)
Проверка лицензии внешнего устройства

Parameters:
reader - Ридер. Можно получить через метод getReaders() или getDevices(). Если передан null или пустая строка, то производится попытка получения первого доступного устройства c указанным алгоритмом. Приоритет поиска устройств для ГОСТ:
  • GammaJaCarta;
  • JavaToken;
  • AladdinJaCarta;
  • RuToken;
  • KzToken;
  • SafeNetToken;
  • JaCartaToken.
Приоритет поиска устройств для RSA:
  • JaCarta;
  • JavaToken;
  • RuToken;
  • KzToken.
Понижение приоритета идет от первого к последнему.
algorithm - Алгоритм. Возможные варианты:
  • gost - CryptoObject.GOST;
  • rsa - CryptoObject.RSA.
Returns:
true, если лицензия валидна. Если возвратился false, значит лицензия не валидна. В этом случае смотрите лог Java Console. Получить последнюю возникшую ошибку можно через метод getLastError()

createOcspRequest

public java.lang.String createOcspRequest(java.lang.String reader,
                                          java.lang.String objectName,
                                          java.lang.String pass,
                                          java.lang.String algorithm)
Формирование запроса проверки статуса сертификата на алгоритме ГОСТ или RSA

Parameters:
reader - Ридер. Можно получить через метод getReaders() или getDevices(). Если передан null или пустая строка, то производится попытка получения первого доступного устройства c указанным алгоритмом. Приоритет поиска устройств для ГОСТ:
  • GammaJaCarta;
  • JavaToken;
  • AladdinJaCarta;
  • RuToken;
  • KzToken;
  • SafeNetToken;
  • JaCartaToken.
Приоритет поиска устройств для RSA:
  • JaCarta;
  • JavaToken;
  • RuToken;
  • KzToken.
Понижение приоритета идет от первого к последнему.
objectName - Наименование объекта (ключа)
pass - Пароль для доступа к устройству
algorithm - Алгоритм. Возможные варианты:
  • gost - CryptoObject.GOST;
  • rsa - CryptoObject.RSA.
Returns:
Запрос проверки статуса сертификата на алгоритме ГОСТ или RSA в BASE64 кодировке. Если возвратился null, значит произошла ошибка.В этом случае смотрите лог Java Console. Получить последнюю возникшую ошибку можно через метод getLastError()

verifyOcspResponse

public java.lang.String verifyOcspResponse(java.lang.String ocspResponse)
Получение статуса сертификата из ответа на запрос проверки статуса сертификата на алгоритме ГОСТ или RSA

Parameters:
ocspResponse - Ответ на запрос проверки статуса сертификата
Returns:
Статус сертификата. Возможные варианты:
  • 0 - сертификат не отозван;
  • 1 - сертификат отозван;
  • 2 - статус сертификата не известен.
Если возвратился null, значит произошла ошибка.В этом случае смотрите лог Java Console. Получить последнюю возникшую ошибку можно через метод getLastError()

createTimestampRequest

public java.lang.String createTimestampRequest(java.lang.String reader,
                                               java.lang.String data,
                                               int dataType,
                                               java.lang.String reqPolicy,
                                               java.lang.String objectName,
                                               java.lang.String pass,
                                               java.lang.String algorithm)
Формирование запроса метки времени. В случае использования ключа на алгоритме ГОСТ используется хеш на алгоритме ГОСТ. В случае использования ключа на алгоритме RSA используется хеш на алгоритме SHA1.

Parameters:
reader - Ридер. Можно получить через метод getReaders() или getDevices(). Если передан null или пустая строка, то производится попытка получения первого доступного устройства c указанным алгоритмом. Приоритет поиска устройств для ГОСТ:
  • GammaJaCarta;
  • JavaToken;
  • AladdinJaCarta;
  • RuToken;
  • KzToken;
  • SafeNetToken;
  • JaCartaToken.
Приоритет поиска устройств для RSA:
  • JaCarta;
  • JavaToken;
  • RuToken;
  • KzToken.
Понижение приоритета идет от первого к последнему.
data - Данные для подписи
dataType - Тип подписываемых данных Возможные варианты:
  • 0 - CryptoApplet.FILE_PATH (Путь к файлу);
  • 1 - CryptoObject.STRING (Строка в UTF-8 кодировке).
reqPolicy - Политика запроса
objectName - Наименование объекта (ключа)
pass - Пароль для доступа к устройству
algorithm - Алгоритм. Возможные варианты:
  • gost - CryptoObject.GOST;
  • rsa - CryptoObject.RSA.
Returns:
Запрос метки времени в BASE64 кодировке. Если возвратился null, значит произошла ошибка.В этом случае смотрите лог Java Console. Получить последнюю возникшую ошибку можно через метод getLastError()

parseVerifierResponse

public java.lang.String parseVerifierResponse(java.lang.String verifierResponse)
Парсинг ответа от службы Verifier

Parameters:
verifierResponse - Ответ службы Verifier
Returns:
Результат проверки сертификата в UTF-8 кодировке. Возможные варианты:
  • "00000 : Действителен.";
  • "00032 : Не найден сертификат Удостоверяющего Центра.";
  • "00327 : Cертификат отозван ... по причине ... .".
  • и др.
Если возвратился null, значит произошла ошибка.В этом случае смотрите лог Java Console. Получить последнюю возникшую ошибку можно через метод getLastError()

getFreeMemorySize

public java.lang.Integer getFreeMemorySize(java.lang.String reader,
                                           java.lang.String algorithm)
Получение размера свободной памяти в байтах

Parameters:
reader - Ридер. Можно получить через метод getReaders() или getDevices(). Если передан null или пустая строка, то производится попытка получения первого доступного устройства c указанным алгоритмом. Приоритет поиска устройств для ГОСТ:
  • GammaJaCarta;
  • JavaToken;
  • AladdinJaCarta;
  • RuToken;
  • KzToken;
  • SafeNetToken;
  • JaCartaToken.
Приоритет поиска устройств для RSA:
  • JaCarta;
  • JavaToken;
  • RuToken;
  • KzToken.
Понижение приоритета идет от первого к последнему.
algorithm - Алгоритм. Возможные варианты:
  • gost - CryptoObject.GOST;
  • rsa - CryptoObject.RSA.
Returns:
Размер свободной памяти в байтах. Если возвратился null, значит произошла ошибка. В этом случае смотрите лог Java Console. Получить последнюю возникшую ошибку можно через метод getLastError()

getSerialNumber

public java.lang.String getSerialNumber(java.lang.String reader,
                                        java.lang.String algorithm)
Получение серийного номера устройства

Parameters:
reader - Ридер. Можно получить через метод getReaders() или getDevices(). Если передан null или пустая строка, то производится попытка получения первого доступного устройства c указанным алгоритмом. Приоритет поиска устройств для ГОСТ:
  • GammaJaCarta;
  • JavaToken;
  • AladdinJaCarta;
  • RuToken;
  • KzToken;
  • SafeNetToken;
  • JaCartaToken.
Приоритет поиска устройств для RSA:
  • JaCarta;
  • JavaToken;
  • RuToken;
  • KzToken.
Понижение приоритета идет от первого к последнему.
algorithm - Алгоритм. Возможные варианты:
  • gost - CryptoObject.GOST;
  • rsa - CryptoObject.RSA.
Returns:
Серийный номер устройства. Если возвратился null, значит произошла ошибка. В этом случае смотрите лог Java Console. Получить последнюю возникшую ошибку можно через метод getLastError()

createPasswordDialog

public java.lang.String createPasswordDialog(java.lang.String message,
                                             java.lang.String title,
                                             int numberOfColumns)
Создание диалога для ввода пароля

Parameters:
message - Сообщение
title - Заголовок
numberOfColumns - Количество колонок, используемое при создании поля для ввода пароля
Returns:
Пароль. Если возвратился null, значит произошла ошибка. В этом случае смотрите лог Java Console. Получить последнюю возникшую ошибку можно через метод getLastError()

createVistaMessage

public java.lang.String createVistaMessage(java.lang.String reader,
                                           java.lang.String filePaths,
                                           java.lang.String directoryToSave,
                                           java.lang.String senderSignObjectName,
                                           java.lang.String senderExchObjectName,
                                           java.lang.String pass,
                                           java.lang.String recipientsExchCertificates,
                                           byte priority,
                                           java.lang.String title)
Формирование сообщения в формате Vista и сохранение его на файловую систему

Parameters:
reader - Ридер. Можно получить через метод getReaders() или getDevices(). Если передан null или пустая строка, то производится попытка получения первого доступного устройства c указанным алгоритмом. Приоритет поиска устройств для ГОСТ:
  • GammaJaCarta;
  • JavaToken;
  • AladdinJaCarta;
  • RuToken;
  • KzToken;
  • SafeNetToken;
  • JaCartaToken.
Понижение приоритета идет от первого к последнему.
filePaths - Путь к вложениям. Файлы должны быть разделены CryptoApplet.COLUMN_SEPARATOR
directoryToSave - Директория, в которой будет сохранено сообщение в формате Vista
senderSignObjectName - Наименование объекта (ключа) на подпись
senderExchObjectName - Наименование объекта (ключа) на шифрование
pass - Пароль для доступа к устройству
recipientsExchCertificates - Список сертификатов получателей на шифрование. Сертификаты должны быть разделены CryptoApplet.COLUMN_SEPARATOR Возможные варианты:
  • PKCS#7 с сертификатом ГОСТ в BASE64 кодировке (Если количество сертификатов больше одного, то используется первый сертификат);
  • сертификат ГОСТ в BASE64 кодировке.
priority - Приоритет сообщения. Возможные варианты:
  • 0x01 - VistaConstants.PRIORITY_HIGHEST;
  • 0x02 - VistaConstants.PRIORITY_HIGH;
  • 0x03 - VistaConstants.PRIORITY_NORMAL;
  • 0x04 - VistaConstants.PRIORITY_LOW;
  • 0x05 - VistaConstants.PRIORITY_LOWEST.
title - Тема сообщения
Returns:
Путь, по которому сохранено сообщение в формате Vista. Если возвратился null, значит произошла ошибка. В этом случае смотрите лог Java Console. Получить последнюю возникшую ошибку можно через метод getLastError()

parseVistaMessage

public java.lang.String parseVistaMessage(java.lang.String reader,
                                          int informationType,
                                          java.lang.String filePath,
                                          java.lang.String directoryToSave,
                                          java.lang.String pass,
                                          java.lang.String senderSignCertificate,
                                          java.lang.String senderExchCertificate)
Парсинг сообщения в формате Vista

Parameters:
reader - Ридер. Можно получить через метод getReaders() или getDevices(). Если передан null или пустая строка, то производится попытка получения первого доступного устройства c указанным алгоритмом. Приоритет поиска устройств для ГОСТ:
  • GammaJaCarta;
  • JavaToken;
  • AladdinJaCarta;
  • RuToken;
  • KzToken;
  • SafeNetToken;
  • JaCartaToken.
Понижение приоритета идет от первого к последнему.
informationType - Тип извлекаемой информации. Возможные варианты:
  • 0x00 - VistaMessage.INFORMATION. Краткая информация (reader, directoryToSave, pass, senderSignCertificate, senderExchCertificate могут быть null);
  • 0x01 - VistaMessage.VERIFY_AND_SAVE_ATTACHMENTS. Полная информация (reader, directoryToSave, pass, senderSignCertificate, senderExchCertificate - обязательные параметры).
filePath - Путь на файловой системе к сообщению в формате Vista.
directoryToSave - Директория, в которой будут сохранены вложения.
pass - Пароль для доступа к устройству.
senderSignCertificate - Сертификат отправителя на подпись. Возможные варианты:
  • PKCS#7 с сертификатом ГОСТ в BASE64 кодировке (Если количество сертификатов больше одного, то используется первый сертификат);
  • сертификат ГОСТ в BASE64 кодировке.
senderExchCertificate - Сертификат отправителя на шифрование. Возможные варианты:
  • PKCS#7 с сертификатом ГОСТ в BASE64 кодировке (Если количество сертификатов больше одного, то используется первый сертификат);
  • сертификат ГОСТ в BASE64 кодировке.
Returns:
Строка. Данные разделены CryptoApplet.COLUMN_SEPARATOR. Для VistaMessage.INFORMATION строка содержит:
  • тема сообщения;
  • флаги сообщения;
  • DN сертификата на подпись (Sender);
  • серийный номер сертификата на подпись (Sender);
  • DN сертификата на шифрование (Sender);
  • серийный номер сертификата на шифрование (Sender);
  • DNs сертификатов на шифрование (Recipients); DNs разделены CryptoApplet.ROW_SEPARATOR;
  • серийные номера сертификатов на шифрование (Recipients); серийные номера разделены CryptoApplet.ROW_SEPARATOR;
  • количество вложений;
  • наименования вложений; наименования разделены CryptoApplet.ROW_SEPARATOR.
Для VistaMessage.VERIFY_AND_SAVE_ATTACHMENTS строка содержит:
  • результат проверки подписи;
  • количество вложений;
  • пути к вложениям; пути разделены CryptoApplet.ROW_SEPARATOR.
Описание.

Флаги сообщения возвращаются в виде строки "100000". Каждый символ означает наличие определенного флага. Например, в "000001" закодирован TYPE_ARCH_SIGNED, а в "000011" - TYPE_ARCH_SIGNED и TYPE_ARCH_ENCRYPT. Возможные варианты флагов:

  • 000001 - VistaConstants.TYPE_ARCH_SIGNED;
  • 000010 - VistaConstants.TYPE_ARCH_ENCRYPT;
  • 000100 - VistaConstants.TYPE_ARCH_REQUEST;
  • 001000 - VistaConstants.TYPE_ARCH_RESPONSE;
  • 010000 - VistaConstants.TYPE_ARCH_BE_CONFIRMED;
  • 100000 - VistaConstants.TYPE_ARCH_IS_CONFIRMED.

Возможные варианты результатов проверки подписи:

  • true - подпись проверилась;
  • false - подпись не проверилась;
  • none - подпись отсутствует.

Если возвратился null, значит произошла ошибка. В этом случае смотрите лог Java Console. Получить последнюю возникшую ошибку можно через метод getLastError()


binToHex

public java.lang.String binToHex(java.lang.String binInBase64)
Конвертирование бинарных данных в hex-строку. Бинарные данные должны быть закодированы в BASE64.

Parameters:
binInBase64 - Бинарные данные, закодированные с использованием BASE64. В методе бинарные данные декодируются.
Returns:
hex-строка. Если возвратился null, значит произошла ошибка. В этом случае смотрите лог Java Console. Получить последнюю возникшую ошибку можно через метод getLastError()

invertParts

public java.lang.String invertParts(java.lang.String binInBase64)
Переворачивание частей бинарных данных. Бинарные данные должны быть закодированы в BASE64. Длина бинарных данных должна делиться на 2 без остатка. Пример. Входные данные: "MTIzNDU2Nzg5MA==" Данные после BASE64 декодирования: "1234567890" Данные после переворачивания: "5432109876" Результирующие данные: "NTQzMjEwOTg3Ng==" Метод может быть полезен, когда необходимо перевернуть части открытого ключа или подписи.

Parameters:
binInBase64 - Бинарные данные, закодированные с использованием BASE64. В методе бинарные данные декодируются.
Returns:
Перевернутые данные. Если возвратился null, значит произошла ошибка. В этом случае смотрите лог Java Console. Получить последнюю возникшую ошибку можно через метод getLastError()


Copyright © 2013 Gamma Technologies. All Rights Reserved.