CryptoPro J6Oscar service implementation.
Public API.

ru.CryptoPro.JCP.KeyStore.J6Oscar
Class OscarService

java.lang.Object
  extended by ru.CryptoPro.JCP.KeyStore.J6CF.ReaderMedia
      extended by ru.CryptoPro.JCP.KeyStore.J6Oscar.OscarService
All Implemented Interfaces:
ru.CryptoPro.JCP.KeyStore.ContainerReaderInterface, ru.CryptoPro.JCP.KeyStore.MediaInterface

public class OscarService
extends ru.CryptoPro.JCP.KeyStore.J6CF.ReaderMedia
implements ru.CryptoPro.JCP.KeyStore.ContainerReaderInterface, ru.CryptoPro.JCP.KeyStore.MediaInterface

Сервис для работы с картой Оскар.

Author:
Copyright 2004-2009 Crypto-Pro. All rights reserved.
Version:1.0

Field Summary
 
Fields inherited from class ru.CryptoPro.JCP.KeyStore.J6CF.ReaderMedia
cCard
 
Constructor Summary
OscarService()
          Конструктор.
 
Method Summary
 void close()
          Закрытия folder.
 java.util.Enumeration enumExisting(java.lang.String alias)
          Перечисление существующих folders на носителе.
 java.util.Enumeration enumNew(java.lang.String alias)
          Перечисление новых folders на носителе.
 int fileSize(int num)
          Получение размера файла.
 java.lang.String folder()
          Полученние имени папки.
 java.util.Date getCreationDate()
          Получение даты создания.
static int[] getFilePosition(int[] sizes)
          Получение позиций для всех файлов.
 ru.CryptoPro.JCP.KeyStore.MediaInterface getMedia()
          Получение ссылки на media.
 boolean login(char[] password)
          Предьявление пароля носителю.
 java.lang.String mediaUnique()
          Получение уникального номера вставленного носителя.
 ru.CryptoPro.JCP.KeyStore.ContainerReaderInterface open(java.lang.String folder, boolean create)
          Открытие folder по имени.
 byte[] readFile(int num, int from, int size)
          Чтение файла с носителя.
 void removeFile(int num)
          Удаление файла.
 void removeFolder()
          Удаление folder.
 void storeFile(int num, byte[] buf, boolean readProtectPin)
          Запись файла на носитель.
 
Methods inherited from class ru.CryptoPro.JCP.KeyStore.J6CF.ReaderMedia
getCard, init, unlock
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface ru.CryptoPro.JCP.KeyStore.MediaInterface
toString, unlock
 

Constructor Detail

OscarService

public OscarService()
             throws ru.CryptoPro.JCP.KeyStore.J6CF.ConfigurationException
Конструктор.

Throws:
ru.CryptoPro.JCP.KeyStore.J6CF.ConfigurationException - ошибки в настройках
Method Detail

open

public ru.CryptoPro.JCP.KeyStore.ContainerReaderInterface open(java.lang.String folder,
                                                               boolean create)
                                                        throws java.io.IOException
Открытие folder по имени.

Specified by:
open in interface ru.CryptoPro.JCP.KeyStore.MediaInterface
Overrides:
open in class ru.CryptoPro.JCP.KeyStore.J6CF.ReaderMedia
Parameters:
folder - имя folder
create - флаг создания folder (не используется)
Returns:
интерфейс считывателя контейнера
Throws:
java.io.IOException - ошибки ввода/вывода

enumExisting

public java.util.Enumeration enumExisting(java.lang.String alias)
Перечисление существующих folders на носителе. Перечисление Application заданных в конфигурации.

Specified by:
enumExisting in interface ru.CryptoPro.JCP.KeyStore.MediaInterface
Overrides:
enumExisting in class ru.CryptoPro.JCP.KeyStore.J6CF.ReaderMedia
Parameters:
alias - имя нового контейнера (не используется)
Returns:
перечислитель CardFolderEnumeration

enumNew

public java.util.Enumeration enumNew(java.lang.String alias)
Перечисление новых folders на носителе. Перечисление Application заданных в конфигурации.

Specified by:
enumNew in interface ru.CryptoPro.JCP.KeyStore.MediaInterface
Overrides:
enumNew in class ru.CryptoPro.JCP.KeyStore.J6CF.ReaderMedia
Parameters:
alias - имя искомого контейнера (не используется)
Returns:
перечислитель CardFolderEnumeration

mediaUnique

public java.lang.String mediaUnique()
                             throws java.io.IOException
Получение уникального номера вставленного носителя.

Specified by:
mediaUnique in interface ru.CryptoPro.JCP.KeyStore.MediaInterface
Overrides:
mediaUnique in class ru.CryptoPro.JCP.KeyStore.J6CF.ReaderMedia
Returns:
уникальный номер
Throws:
java.io.IOException - ошибки обращения к носителю

getFilePosition

public static int[] getFilePosition(int[] sizes)
                             throws ru.CryptoPro.JCP.KeyStore.J6CF.ConfigurationException
Получение позиций для всех файлов.

Parameters:
sizes - длины файлов
Returns:
начальные позиции файлов
Throws:
ru.CryptoPro.JCP.KeyStore.J6CF.ConfigurationException - ошибки настройки

readFile

public byte[] readFile(int num,
                       int from,
                       int size)
                throws java.io.IOException
Чтение файла с носителя.

Specified by:
readFile in interface ru.CryptoPro.JCP.KeyStore.ContainerReaderInterface
Parameters:
num - номер файла
from - начальная позиция для чтения
size - количество байт для чтения (значение -1 прочитать до конца файла)
Returns:
прочитанный файл или null, если файла не существует
Throws:
java.io.IOException - ошибки чтения

fileSize

public int fileSize(int num)
             throws java.io.IOException
Получение размера файла.

Specified by:
fileSize in interface ru.CryptoPro.JCP.KeyStore.ContainerReaderInterface
Parameters:
num - номер файла
Returns:
размер файла
Throws:
java.io.IOException - любые ошибки получения размера файла

storeFile

public void storeFile(int num,
                      byte[] buf,
                      boolean readProtectPin)
               throws java.io.IOException
Запись файла на носитель.

Specified by:
storeFile in interface ru.CryptoPro.JCP.KeyStore.ContainerReaderInterface
Parameters:
num - номер файла
buf - записываемый буфер
readProtectPin - игнорируется
Throws:
java.io.IOException - ошибки записи

removeFile

public void removeFile(int num)
Удаление файла. Функция не поддерживается.

Specified by:
removeFile in interface ru.CryptoPro.JCP.KeyStore.ContainerReaderInterface
Parameters:
num - номер файла

removeFolder

public void removeFolder()
Удаление folder. Функция не поддерживается: просто закрытие.

Specified by:
removeFolder in interface ru.CryptoPro.JCP.KeyStore.ContainerReaderInterface

folder

public java.lang.String folder()
Полученние имени папки.

Specified by:
folder in interface ru.CryptoPro.JCP.KeyStore.ContainerReaderInterface
Returns:
имя папки

getMedia

public ru.CryptoPro.JCP.KeyStore.MediaInterface getMedia()
Получение ссылки на media.

Specified by:
getMedia in interface ru.CryptoPro.JCP.KeyStore.ContainerReaderInterface
Returns:
интерфейс носителя

getCreationDate

public java.util.Date getCreationDate()
Получение даты создания.

Specified by:
getCreationDate in interface ru.CryptoPro.JCP.KeyStore.ContainerReaderInterface
Returns:
null

close

public void close()
Закрытия folder. Если был выполнен login, то выполняется logout.

Specified by:
close in interface ru.CryptoPro.JCP.KeyStore.ContainerReaderInterface

login

public boolean login(char[] password)
              throws java.io.IOException,
                     java.security.UnrecoverableKeyException
Предьявление пароля носителю.

Specified by:
login in interface ru.CryptoPro.JCP.KeyStore.ContainerReaderInterface
Parameters:
password - пароль доступа к носителю
Returns:
true - если носитель использует пароли; false - иначе
Throws:
java.security.UnrecoverableKeyException - ошибка предъявления пароля
java.io.IOException

Copyright Crypto-Pro.
All rights reserved.