Документация
ОС Аврора 5.0.1

Класс Provider(абстрактный)

Публичные функции

virtual Context * clone () const =0
virtual void configChanged (const QVariantMap &config)
virtual Context * createContext (const QString &type)=0
virtual QString credit () const
virtual QVariantMap defaultConfig () const
virtual void deinit ()
virtual QStringList features () const =0
virtual void init ()
virtual QString name () const =0
virtual void prepareUnitTest (const QHash< QString, QString > &properties=QHash< QString, QString >(), bool preInitKeyStore=true)
Provider * provider () const
virtual int qcaVersion () const =0
bool sameProvider (const Context *c) const
virtual void teardownUnitTest ()
QString type () const
virtual int version () const

Защищённые методы

Context (const Context &from)
Context (Provider *parent, const QString &type)

Подробное описание

Криптопровайдер Algorithm.

Provider представляет собой криптопровайдера плагина (или, в особом случае, встроенного криптопровайдера). Это класс, от которого нужно унаследоваться, чтобы создать свой собственный плагин. Обычно не нужно беспокоиться об этом классе, если просто используются существующие возможности и плагины QCA, однако ничто не мешает использовать его для получения информации о конкретных плагинах, как показано в примере ниже.

Примеры

aes-cmac.cpp и providertest.cpp.

Описание методов

init()

virtual void QCA::Provider::init () virtual

Процедура инициализации.

Данная процедура будет вызываться при загрузке плагина, так что это хорошее место для выполнения любых одноразовых задач инициализации. Если инициализация не нужна, следует её реализовать как пустую процедуру.

deinit()

virtual void QCA::Provider::deinit () virtual

Процедура деинициализации.

Эта процедура будет вызываться непосредственно перед уничтожением криптопровайдера. Примечательно, что во время выключения QCA, deinit() будет вызываться для всех криптопровайдеров до того, как какой-либо криптопровайдер будет уничтожен. Следует использовать эту возможность, чтобы освободить любые ресурсы, которые могут использоваться другими криптопровайдерами.

version()

virtual int QCA::Provider::version () const virtual

Номер версии плагина.

Формат такой же, как и у QCA. Версия 1.2.3 будет представлена ​​как 0x010203.

По умолчанию возвращается 0 (версия 0.0.0).

qcaVersion()

virtual int QCA::Provider::qcaVersion () const pure virtual

Целевая версия QCA для криптопровайдера.

Метод используется для проверки совместимости между криптопровайдером и QCA. Чтобы криптопровайдер можно было использовать, необходимо указать здесь старший и дополнительный номера версий, которые меньше или равны фактической версии QCA (номер версии патча игнорируется). Это означает, что старый провайдер можно использовать с новым QCA, но новый провайдер нельзя использовать со старым QCA.

Примеры

aes-cmac.cpp.

name()

virtual QString QCA::Provider::name () const pure virtual

Имя криптопровайдера.

Обычно возвращается строка, содержащая удобное имя.

QString name() const
{
   return "qca-myplugin";
}

Примечание.

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

Примеры

aes-cmac.cpp.

features()

virtual QStringList QCA::Provider::features () const pure virtual

Возможности (алгоритмы) криптопровайдера.

Обычно просто возвращается фиксированный QStringList:

QStringList features() const
{
   QStringList list;
   list += "sha1";
   list += "sha256";
   list += "hmac(sha1)";
   return list;
}

Примеры

aes-cmac.cpp.

credit()

virtual QString QCA::Provider::credit () const virtual

Необязательный текст для титров криптопровайдера.

Можно отобразить эту информацию в титрах или диалоговом окне «О программе». Возвращает пустую строку, если у криптопровайдера нет текста титров. Следует сообщать текст титров только в случае крайней необходимости (например, «рекламный пункт», связанный с лицензированием). Не нужно его использовать для сообщения общей информации об авторе.

createContext()

virtual Context* QCA::Provider::createContext (const QString & type) pure virtual

Процедура создания контекста плагина.

Нужно вернуть указатель на алгоритм Context, который соответствует указанному имени алгоритма.

Параметры

type Требуется название алгоритма
Context *createContext(const QString &type)
{
   if ( type == "sha1" )
      return new SHA1Context( this );
   else if ( type == "sha256" )
      return new SHA0256Context( this );
   else if ( type == "hmac(sha1)" )
      return new HMACSHA1Context( this );
   else
      return 0;
}

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

Примеры

aes-cmac.cpp.

defaultConfig()

virtual QVariantMap QCA::Provider::defaultConfig () const virtual

Метод для установки параметров конфигурации по умолчанию.

Если криптопровайдеру требуются некоторые параметры конфигурации, этот метод позволяет установить параметры по умолчанию. Затем пользователь может изменять параметры конфигурации по мере необходимости и устанавливать их с помощью configChanged().

Требуется вернуть объект QVariantMap, в котором опции конфигурации являются ключами, а конфигурация по умолчанию — значениями, как показано ниже:

QVariantMap defaultConfig() const
{
   QVariantMap myConfig;
   myConfig[ "firstOption" ] = QString("firstOptionValue");
   myConfig[ "secondOption" ] = true;
   myConfig[ "thirdOpt" ] = 1243;
   return myConfig;
}

См. также configChanged для настройки конфигурации;

configChanged()

virtual void QCA::Provider::configChanged (const QVariantMap & config) virtual

Метод для установки параметров конфигурации.

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

Параметры

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

prepareUnitTest()

virtual void QCA::Provider::prepareUnitTest (const QHash< QString, QString > & properties = QHash<QString,QString >(), bool preInitKeyStore = true) virtual

Метод настройки специфического для провайдера окружения для юнит-тестирования.

Аргументы зависят от теста и должны содержать общую информацию о настройках. Метод вызывается один раз в каждом тестовом случае.

Параметры

Свойства Релевантная для тестирования информация о ключах-значениях. Содержание и интерпретация различные.

teardownUnitTest()

virtual void QCA::Provider::teardownUnitTest () virtual

Метод удаления специфической для провайдера среды для юнит-тестирования.

Метод вызывается один раз в каждом тестовом случае.

provider()

Provider* QCA::Provider::provider () const

Объект Provider, связанный с этим Context.

type()

QString QCA::Provider::type () const

Тип контекста, переданный конструктору.

clone()

virtual Context* QCA::Provider::clone () const pure virtual

Создаёт дубликат этого Context.

sameProvider()

bool QCA::Provider::sameProvider (const Context * c) const

Проверяет, имеют ли два контекста одного и того же Provider.

Параметры

c Указатель на Context для сравнения

Возвращает true, если аргумент и этот Context имеют одного и того же криптопровайдера.

Context() [1/2]

QCA::Provider::Context (Provider * parent, const QString & type ) protected

Стандартный конструктор.

Параметры

parent Родительский криптопровайдер для этого контекста
type Название типа контекста криптопровайдера

Context() [2/2]

QCA::Provider::Context (const Context & from) protected

Конструктор копирования.

Параметры

from Context для копирования

Мы используем cookies для персонализации сайта и его более удобного использования. Вы можете запретить cookies в настройках браузера.

Пожалуйста ознакомьтесь с политикой использования cookies.