ГОСТ Р ИСО/МЭК 19784-1-2007. Национальный стандарт Российской Федерации. Автоматическая идентификация. Идентификация биометрическая. Биометрический программный интерфейс. Часть 1. Спецификация биометрического программного интерфейса
Актуально на 07.11.2026.
Как цитировать: "ГОСТ Р ИСО/МЭК 19784-1-2007. Национальный стандарт Российской Федерации. Автоматическая идентификация. Идентификация биометрическая. Биометрический программный интерфейс. Часть 1. Спецификация биометрического программного интерфейса". ГОСТ Р ИСО/МЭК 19784-1-2007. https://bukva.ai/docs/standart-gost-r-isomek-19784-1-2007
(утв. и введен в действие Приказом Ростехрегулирования от 25.12.2007 № 402-ст)
Примечание
Документ введен в действие с 01.01.2009.
Утвержден и введен в действие Приказом Федерального агентства
по техническому регулированию
и метрологии
от 25 декабря 2007 г. № 402-ст
БИОМЕТРИЧЕСКИЙ ПРОГРАММНЫЙ ИНТЕРФЕЙС
СПЕЦИФИКАЦИЯ БИОМЕТРИЧЕСКОГО ПРОГРАММНОГО ИНТЕРФЕЙСА
Automatic identification. Biometrics. BioAPI.
Biometric Application Programming Interface.
Part 1. BioAPI Specification
ISO/IEC 19784-1:2006
BioAPI — Biometric Application Programming Interface -
Part 1: BioAPI Specification
(IDT)
Предисловие
Цели и принципы стандартизации в Российской Федерации установлены Федеральным законом от 27 декабря 2002 г. № 184-ФЗ «О техническом регулировании», а правила применения национальных стандартов Российской Федерации — ГОСТ Р 1.0-2004 «Стандартизация в Российской Федерации. Основные положения»
Сведения о стандарте
1 ПОДГОТОВЛЕН Научно-исследовательским и испытательным центром биометрической техники Московского государственного технического университета имени Н.Э. Баумана (НИИЦ БТ МГТУ им. Н.Э. Баумана) на основе собственного аутентичного перевода стандарта, указанного в пункте 4 при консультационной поддержке Ассоциации автоматической идентификации «ЮНИСКАН/ГС1 РУС»
2 ВНЕСЕН Техническим комитетом по стандартизации ТК 355 «Автоматическая идентификация»
3 УТВЕРЖДЕН И ВВЕДЕН В ДЕЙСТВИЕ Приказом Федерального агентства по техническому регулированию и метрологии от 25 декабря 2007 г. № 402-ст
4 Настоящий стандарт идентичен международному стандарту ИСО/МЭК 19784-1:2006 «BioAPI. Биометрический программный интерфейс. Часть 1. Спецификация биометрического программного интерфейса» (ISO/IEC 19784-1:2006 «BioAPI — Biometric Application Programming Interface — Part 1: BioAPI Specification»), за исключением приложения G. Наименование настоящего стандарта изменено относительно наименования указанного международного стандарта для приведения в соответствие с ГОСТ Р 1.5-2004 (подраздел 3.5) и учета его принадлежности к группе стандартов «Автоматическая идентификация».
При применении настоящего стандарта рекомендуется использовать вместо ссылочных международных стандартов соответствующие им национальные стандарты, сведения о которых приведены в дополнительном приложении G
Информация об изменениях к настоящему стандарту публикуется в ежегодно издаваемом информационном указателе «Национальные стандарты», а текст изменений и поправок — в ежемесячно издаваемых информационных указателях «Национальные стандарты». В случае пересмотра (замены) или отмены настоящего стандарта соответствующее уведомление будет опубликовано в ежемесячно издаваемом информационном указателе «Национальные стандарты». Соответствующая информация, уведомление и тексты размещаются также в информационной системе общего пользования — на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет
Введение
Настоящий стандарт представляет собой спецификацию архитектуры (далее — модель) программного интерфейса для биометрических приложений (БиоАПИ) и определяет высокоуровневую обобщенную модель биометрического распознавания, пригодную для использования в любой биометрической технологии. Настоящий стандарт не обеспечивает поддержку мультимодальной биометрии в явном виде.
Описываемая модель позволяет использовать компоненты биометрической системы разных изготовителей и обеспечивать их взаимодействие посредством установленных программных интерфейсов приложений (ПИП).
Основой модели является инфраструктура БПИ (BioAPI Framework), поддерживающая вызовы одного или нескольких биометрических программных приложений (далее — приложений), которые могут быть предоставлены различными изготовителями и потенциально могут выполняться одновременно с помощью ПИП БПИ. Инфраструктура БПИ обеспечивает поддержку вызова с помощью интерфейса поставщика услуги (ИПУ) одного или нескольких поставщиков биометрической услуги (ПБУ), которые могут быть предоставлены различными изготовителями и, возможно, будут выполняться одновременно, а также могут быть динамически загружены и вызваны в соответствии с требованиями биометрического приложения.
На самом нижнем уровне модели находятся аппаратные или программные средства, выполняющие биометрические функции, например, такие как получение данных, сравнение или архивирование. Такие составляющие биометрической системы называются модулями БиоПИП и могут являться частью ПБУ или поставляться как компонент поставщика функции БиоПИП (ПФБ).
Между ПБУ различных изготовителей, предоставляющих для записи информации от модулей БиоАПИ, к которым они имеют доступ, структуры данных, соответствующие другим международным стандартам, особенно ISO/IEC 19794, могут быть установлены взаимодействия через инфраструктуру БиоАПИ.
Таким образом, ПБУ может обеспечивать выполнение биометрических услуг с помощью:
a) модулей БиоАПИ, которые являются частью или непосредственно управляются ПБУ, или
b) вызова через интерфейс поставщика функции БиоПИП (ИПФ) одного или нескольких компонентов поставщика биометрической функции (ПБФ) разных изготовителей, которые управляют модулями БиоАПИ, являющимися частью ПБФ.
Примечание - Модуль БиоАПИ может состоять только из программного обеспечения или из комбинации программного и аппаратного обеспечения (например, биометрический сканер, архив или алгоритм).
Допускается наличие одного или более модулей БиоПИП определенного типа, который поддерживается ПБУ (или ПБФ). Данные модули могут быть динамически добавлены и удалены из системы. Добавление и удаление вызывают события, о которых может быть сообщено приложению (через ПБУ и инфраструктуру БиоПИП).
Настоящий стандарт устанавливает основные биометрические функции регистрации, верификации и идентификации (приложение C) и включает в себя интерфейс базы данных, что позволяет приложению управлять хранением биометрических записей с помощью модуля архива БиоАПИ, управляемого ПБУ или ПБФ. Это обеспечивает оптимальную производительность процессов архивирования и сравнения биометрического образца с множеством контрольных шаблонов (например, при выполнении функции биометрической идентификации по большой выборке).
Интерфейс предоставляет примитивы <*>, которые позволяют приложению управлять получением биометрических образцов от биометрических сканеров с помощью доступа к соответствующему модулю БиоПИП, использованием этих биометрических образцов для регистрации (хранения в базе записей биометрической информации (ЗБИ), управляемой приложением или ПБУ), и последующей верификацией и идентификацией.
<*> В настоящем стандарте термин «примитивы» обозначает базовый элемент, используемый для построения программы.
Настоящий стандарт также устанавливает содержание реестра компонентов (информацию о биометрических компонентах, установленных в биометрической системе). Он также обеспечивает интерфейс реестра компонентов для управления и проверки данного реестра.
В настоящем стандарте использован язык программирования Си (по ИСО/МЭК 9899:1999 «Языки программирования. Си») для определения структур данных и вызовов функций, которые формируют интерфейсы БиоАПИ.
Раздел 6 устанавливает модель БиоАПИ, ее компоненты и интерфейсы, определенные для этих компонентов.
Раздел 7 устанавливает структуры данных, используемые в БиоАПИ.
Раздел 8 устанавливает вызовы функций, инициируемые приложением и поддерживаемые соответствующей инфраструктурой БиоАПИ, которые обрабатываются либо непосредственно инфраструктурой БиоАПИ (например, получение списков установленных компонентов БиоАПИ), либо переадресовываются функциям, предоставляемым ПБУ.
Раздел 9 устанавливает вызовы функций, поддерживаемые соответствующим ПБУ и осуществляемые инфраструктурой БиоАПИ в ответ на вызов биометрического приложения.
Раздел 10 устанавливает форму реестра биометрических компонентов и интерфейс реестра компонентов.
Раздел 11 устанавливает обработку событий и возвращаемые ошибки.
В приложении A приведены подробные требования и таблицы определения соответствия спецификации БиоПИП, которые могут быть использованы разработчиком компонентов приложения БиоПИП, инфраструктуры БиоПИП или ПБУ для определения поддерживаемых функций и биометрических форматов записи.
Примечание - Методы тестирования на соответствие БиоАПИ требованиям настоящего стандарта приведены в ISO/IEC 24709.
В приложении B приведено описание ЗБИ БиоАПИ, соответствующее формату ведущей организации, определенному в ИСО/МЭК 19785-1 «Информационные технологии. Единая структура формата обмена биометрическими данными. Часть 1. Спецификация элементов данных». В приложении также приведено описание биометрической записи, установленное в вышеуказанном стандарте, и побитовое представление записи для ее хранения и передачи.
В приложении C приведено краткое описание основных положений настоящего стандарта.
В приложении D приведен пример текста программы для установления последовательности вызовов функций.
Отдельные положения стандарта ИСО/МЭК 19784-1 могут быть предметом других патентных прав, помимо указанных в нем.
Сноски в тексте стандарта приведены для пояснения и выделены курсивом.
1 Область применения
Настоящий стандарт устанавливает программный интерфейс приложения (ПИП) и интерфейс поставщика услуги (ИПУ) в качестве стандартных интерфейсов биометрической системы, позволяющих создавать биометрическую систему, используя компоненты, изготовленные различными изготовителями. Соответствие ПИП и ИПУ требованиям настоящего стандарта и других стандартов ИСО/МЭК обеспечивает взаимодействие между этими компонентами.
Положения настоящего стандарта могут применяться для разных биометрических технологий и систем различного назначения: от персональных устройств идентификации и систем обеспечения сетевой безопасности до масштабных комплексных систем идентификации.
Настоящий стандарт устанавливает модель, в которой инфраструктура БиоАПИ, наряду с поддержкой нескольких биометрических приложений (возможно предоставленных различными изготовителями), может:
- использовать несколько динамически устанавливаемых, загружаемых или выгружаемых компонентов ПБУ (возможно изготовленных на различных предприятиях) и через них — модули БиоПИП;
- использовать один из альтернативных наборов компонентов ПБФ (возможно изготовленных на различных предприятиях);
- использовать непосредственно модули БиоАПИ.
Примечание - Если модули БиоАПИ и ПБУ предоставлены разными изготовителями, может потребоваться использование ИПФ, требования к которому установлены в следующих частях комплекса стандартов ИСО/МЭК 19784.
Настоящий стандарт не распространяется на биометрические системы, разработанные одним изготовителем, в частности, когда для них не предусмотрена возможность добавления или замены программных и/или аппаратных средств или изменения целей использования.
Настоящий стандарт не устанавливает требований безопасности для биометрических приложений и ПБУ.
Примечание — Руководство по аспектам безопасности биометрических систем приведено в ISO/IEC 19092 [3].
Настоящий стандарт не распространяется на эксплуатационные характеристики биометрических систем (особенно идентификационных систем) и на зависимость эксплуатационных характеристик системы от функциональной совместимости компонентов.
Настоящий стандарт определяет версию спецификации БиоАПИ с номером последней редакции 2 и номером поправки (или номер изменения данной редакции) 0, то есть версию 2.0.
Примечание - Настоящий стандарт не распространяется на более ранние версии спецификации БиоАПИ.
2 Соответствие
2.1 Компоненты БиоПИП считают соответствующими требованиям настоящего стандарта, если они соответствуют требованиям приложения A.
2.2 Для определения описываемых интерфейсов в настоящем стандарте использован язык программирования Си по ИСО/МЭК 9899. Компонент БиоАПИ, предоставляющий или использующий интерфейс на других языках программирования, может соответствовать требованиям настоящего стандарта при условии, что взаимодействующий с ним компонент системы может использовать интерфейс с помощью подробной спецификации на языке программирования Си, представленной в настоящем стандарте (7.1).
3 Нормативные ссылки
В настоящем стандарте использованы нормативные ссылки на следующие стандарты, которые необходимо учитывать при использовании настоящего стандарта. В случае ссылок на стандарты, у которых указана дата утверждения, необходимо пользоваться только указанной редакцией. В случае, когда дата утверждения не приведена, следует пользоваться последней редакцией ссылочных стандартов, включая любые поправки и изменения к ним:
ИСО/МЭК 9834-8 Информационные технологии. Взаимосвязь открытых систем. Процедуры для работы регистрационных органов в системе OSI. Часть 8. Создание и регистрация универсальных уникальных идентификаторов (UUIDs) и их использование в качестве компонентов идентификаторов объектов ASN1.
ИСО/МЭК 9899:1999 Языки программирования. Си
ИСО/МЭК 10646-2003 Информационные технологии. Универсальный многооктетный комплекс закодированных знаков (UCS).
ИСО/МЭК 19785-1 Информационные технологии. Единая структура форматов обмена биометрическими данными. Часть 1. Спецификация элементов данных
ИСО/МЭК 19785-2 Информационные технологии. Единая структура форматов обмена биометрическими данными. Часть 2. Процедуры действий регистрационного органа в области биометрии
4 Термины и определения
В настоящем стандарте применены следующие термины и определения:
Примечание - Названия функций и элементов данных не включены в данный раздел, а их определения приведены в тексте настоящего стандарта.
4.1 адаптация; адаптация шаблона (adaptation; template adaptation): Использование ЗБИ, полученной с вновь зарегистрированного и верифицированного биометрического образца, для автоматического обновления или модернизации зарегистрированного ранее контрольного шаблона.
Примечание - Данную процедуру используют для минимизации эффектов устаревания шаблонов.
4.2 присоединенная сессия (attach session): Временная связь между приложением, отдельным ПБУ и набором модулей, напрямую или косвенно управляемых ПБУ.
4.3 компонент БиоАПИ (BioAPI component): Компонент архитектуры БиоАПИ с определенным интерфейсом, который может быть предоставлен отдельным изготовителем, используемый при испытании на соответствие.
Примечание - Компоненты БиоАПИ включают в себя приложения БиоАПИ, инфраструктуру БиоАПИ, ПБУ и ПБФ.
4.4 поставщик функции БиоАПИ; ПБФ (BioAPI function provider; BFP): Компонент, управляющий одним или более модулями БиоАПИ определенной категории.
Примечание 1 — Интерфейсы ПБФ стандартизованы в следующих частях комплекса стандартов ИСО/МЭК 19784.
Примечание 2 — ПБУ распределены на типы, соответствующие типам модулей БиоАПИ, которыми они управляют (см. 6.2.4).
4.5 модуль БиоАПИ (BioAPI unit): Абстракция аппаратного или программного уровня, напрямую управляемая ПБУ или ПБФ.
Примечание — Модули БиоАПИ категоризированы (6.2.2) и включают в себя модули сканеров, архива, алгоритмов сравнения и алгоритмов обработки.
4.6 биометрический (biometric): Имеющий отношение к биометрии.
4.7 блок биометрических данных; ББД (biometric data block; BDB): Блок данных, построенный в соответствии с определенным форматом и содержащий один или несколько биометрических образцов или биометрических шаблонов.
Примечание 1 — Настоящий стандарт не распространяется на форматы, допускающие, что размер ББД может не быть кратным восьми битам.
Примечание 2 — Требования к структуре формата ББД не предъявляются.
Примечание 3 — Каждая <*> часть комплекса ИСО/МЭК 19794 устанавливает требования к одному и более форматам ББД. Изготовитель может создать и зарегистрировать <**> свой формат.
<*> В оригинале ИСО/МЭК 19784-1 допущена ошибка. Первая часть этого стандарта называется «Принципы и структура» и не устанавливает требований к какому-либо формату ББД.
<**> Регистрация должна быть проведена органом регистрации в области биометрии в системе ЕСФОБД с присвоением соответствующих идентификаторов по ГОСТ Р ИСО/МЭК 19785-1-2007 и ГОСТ Р ИСО/МЭК 19785-2-2007.
Примечание 4 — Информация, содержащаяся в ББД, не имеет значения для приложения БиоАПИ, поэтому далее в тексте стандарта использован термин «неопределенный блок биометрических данных».
4.8 запись биометрической информации; ЗБИ (biometric information record; BIR): Структура данных, включающая в себя один или более ББД вместе с информацией, идентифицирующей форматы ББД, и дополнительной информацией, например о типе ББД (подписанный, зашифрованный).
Примечание — Настоящий стандарт устанавливает формат ЗБИ (см. 7.4), включающий в себя только один ББД. ИСО/МЭК 19785 устанавливает формат ЗБИ, содержащий несколько ББД в ЗБИ, однако в нем приведено аналогичное определение данного термина. Необходимо учитывать, что при использовании термина ЗБИ в тексте настоящего стандарта имеется в виду ЗБИ, соответствующая требованиям приложения B. При необходимости дополнительных пояснений в тексте стандарта может быть использован термин «БиоАПИ ЗБИ».
4.8.1 контрольная ЗБИ (reference BIR): ЗБИ, ББД которой содержит один или более биометрических шаблонов.
4.8.2 образец ЗБИ (sample BIR): ЗБИ, ББД которой содержит только биометрические образцы, не являющиеся шаблонами.
4.9 биометрический образец (biometric sample): Информация с биометрического сканера, полученная непосредственно или после обработки.
Примечание — См. также терминологические статьи 4.9.2, 4.9.3 и 4.9.4.
4.9.1 биометрический шаблон (biometric template): Биометрический образец или комбинация биометрических образцов, пригодных для хранения в качестве контрольных для дальнейшего сравнения.
4.9.2 промежуточный биометрический образец (intermediate biometric sample): Биометрический образец, полученный путем обработки исходного биометрического образца и предназначенный для дальнейшей обработки.
4.9.3 обработанный биометрический образец (processed biometric sample): Биометрический образец, предназначенный для сравнения.
4.9.4 исходный биометрический образец (raw biometric sample): Биометрический образец, полученный непосредственно с биометрического сканера.
Примечание - В настоящее время стандарты, устанавливающие требования к форматам необработанных биометрических образцов, не разработаны. Спецификации данных форматов зависят от характеристик биометрических сканеров и от их изготовителей. При разработке стандартов на биометрические сканеры должны быть установлены требования к форматам необработанных биометрических образцов.
4.9.5 контрольный шаблон (reference template): Сохраненный биометрический шаблон.
4.10 биометрический сканер (biometric sensor): Биометрическое аппаратное средство, используемое для получения исходных биометрических образцов.
Примечание - Также допускается использовать термин «биометрическое устройство».
4.11 поставщик биометрической услуги; ПБУ (biometric service provider; BSP): Компонент, осуществляющий для приложения определенные действия либо с помощью определенного интерфейса путем непосредственного управления одним или несколькими модулями БиоАПИ, либо через поставщиков функции БиоАПИ также с помощью определенного интерфейса.
4.12 биометрия (biometrics): Автоматическое <*> распознавание индивидуума, в основе которого лежат его поведенческие и биологические характеристики.
<*> В том числе и автоматизированное.
4.13 обратный вызов (callback): Механизм, в соответствии с которым компонент, предоставляющий ПИП, вызывает функцию из компонента, использующего ПИП, причем адрес данной функции предварительно передан в качестве входного параметра при вызове функции ПИП.
Примечание - Данный механизм позволяет компоненту БиоАПИ связаться с другим компонентом БиоАПИ, не используя вызовы функции ПИП, обычно в ответ на произошедшее событие или прерывание.
4.14 реестр компонентов (component registry): Информация, сохраняемая инфраструктурой БиоАПИ, о доступных в биометрической системе компонентах БиоАПИ.
4.15 шифровать/шифрование (encrypt/encryption): Обратимое преобразование данных с помощью криптографического алгоритма для создания зашифрованного <**> текста с целью защиты информации (обеспечения конфиденциальности).
<**> Термин «зашифрованный» может быть определен как защищенный, закрытый.
Примечание 1 — Алгоритмы шифрования обеспечивают выполнение двух процессов: шифрование, которое преобразует исходный текст в зашифрованный, и дешифрование, которое преобразует зашифрованный текст в исходный.
Примечание 2 — Шифрование может использоваться как с целью обеспечения безопасности, так и с целью обеспечения конфиденциальности.
4.16 регистрация (enrollment): Процесс получения одного или нескольких биометрических образцов человека с последующим построением биометрического контрольного шаблона, используемого для верификации или идентификации личности.
Примечание - Контрольный шаблон обычно сохраняется биометрическим приложением и/или ПБУ, поддерживающим модуль архива БиоАПИ.
4.17 вероятность ошибки ложного совпадения; ОЛС (false match rate; FMR): Мера вероятности, с которой процесс биометрического сравнения неверно идентифицирует личность или не сможет отказать в доступе нарушителю.
Примечание 1 — В БиоАПИ ОЛС используется в качестве средства установления оценок соответствия и порогов (приложение C).
Примечание 2 — Раньше данное определение использовалось также для определения термина «вероятность ошибки ложного доступа», но использование термина «вероятность ошибки ложного совпадения» является предпочтительным. Для терминов «вероятность ошибки ложного отказа; ОЛО» и «вероятность ошибки ложного несовпадения; ОЛН» использование последнего является предпочтительным <*>.
4.18 дескриптор (handle): Параметр, возвращаемый функцией БиоАПИ (например, A), который может быть использован приложением БиоАПИ в следующем вызове функции для идентификации компонента БиоАПИ или элемента данных в рамках компонента A.
Примечание - Типами дескрипторов являются:
BIR_Handle — создается ПБУ для выбора или доступа к ЗБИ в рамках данного ПБУ;
BSP Attach Session Handle — используется для присоединенной сессии;
DB_Handle — создается ПБУ для выбора или доступа к управляемой данным ПБУ базе данных ЗБИ.
4.19 идентифицировать/идентификация (identify/identification): Процесс сравнения предложенного биометрического образца с контрольной выборкой (схема «один ко многим») с целью определения личности, которой соответствует определенный шаблон данной выборки, имеющий сходство с предложенным биометрическим образцом.
Примечание - Данный процесс часто называют «идентификационное сопоставление».
4.20 сопоставлять/сопоставление (match/matching): Процесс сравнения предложенного биометрического образца с одним из контрольных биометрических шаблонов (схема «один к одному») с целью оценки степени схожести.
Примечание 1 — Основой решения о допуске или об отказе обычно является превышение данной оценки степени схожести порогового значения.
Примечание 2 — Алгоритмы сопоставления и их влияние на вероятность ошибки ложного совпадения и вероятность ошибки ложного несовпадения в настоящее время не стандартизованы.
Примечание 3 — Также см. определения терминов «идентифицировать» (4.19) и «верифицировать» (4.28).
4.21 полезная информация (payload): Данные, собранные во время регистрации и относящиеся к контрольному шаблону, которые могут быть выданы после удачной биометрической верификации.
Примечание — Примерами полезной информации являются имена пользователей, счета, пароли, криптографические ключи, цифровые подписи (приложение C).
4.22 оценка схожести/оценивание схожести (score/scoring): Значение, определяющее степень соответствия биометрического образца и контрольного биометрического шаблона.
4.23 блок безопасности (security block): Блок данных, содержащий информацию о целостности данных ЗБИ.
4.24 независимое устройство (self-contained device): Комбинированное устройство, которое включает в себя биометрический сканер, а также все или часть функций ПБУ.
Примечание - Независимое устройство может не только получать биометрические образцы, но также обрабатывать, сопоставлять и/или хранить их. Данные функции обычно реализованы на аппаратном уровне или на уровне встроенных программных средств.
4.25 подпись/цифровая подпись (signature/digital signature): Особые данные, добавленные к блоку данных, или криптографическое преобразование блока данных, позволяющее получателю блока данных гарантировать подлинность автора и целостность блока данных и защитить данные от фальсификации.
Примечание - Цифровые подписи могут также использоваться для определения подлинности автора, обеспечения целостности данных и невозможности отказаться от авторства.
4.26 порог (threshold): Значение, устанавливающее степень схожести или корреляции, превышение которого позволяет считать биометрический образец соответствующим контрольному биометрическому шаблону.
4.27 универсальный уникальный идентификатор; УУИД (universally unique identificator; UUID): 128-битовое значение, определенное по ИСО/МЭК 9834-8.
4.28 верифицировать/верификация (verify/verification): Процесс сравнения биометрического образца с контрольным биометрическим шаблоном (схема «один к одному») с целью определения соответствия предложенного биометрического образца контрольному шаблону.
Примечание — Данный процесс также часто называют «верификационное сопоставление».
5 Обозначения и сокращения
В настоящем стандарте приняты следующие обозначения и сокращения:
ПИП — программный интерфейс приложений (Application Programming Interface; API);
ББД — блок биометрических данных (Biometric Data Block; BDB);
ПБФ — поставщик функции БиоАПИ (BioAPI Function Provider; BFP);
ПБУ — поставщик биометрической услуги (Biometric Service Provider; BSP);
ЕСФОБД — единая структура формата обмена биометрическими данными (Common Biometric Exchange Formats Framework; CBEFF);
ОЛС — вероятность ошибки ложного совпадения (False Match Rate; FMR);
ИПФ — интерфейс поставщика функции (Function Provider Interface; FPI);
ГИП — графический интерфейс пользователя (Graphical User Interface; GUI);
ИД — идентичность/идентификация/идентификатор (Identity/Identification/Identifier; ID);
СНК — сопоставление на карте (Match on Card; MOC);
ИДП — идентификатор продукта (Product ID; PID);
БЗИ — блок защиты информации (Security Block; SB);
СБЗ — стандартный биометрический заголовок (Standard Biometric Header; SBH).
Примечание - Данное сокращение соответствует приведенному в ИСО/МЭК 19785-1;
ИПУ — интерфейс поставщика услуги (Service Provider Interface);
УУИД — универсальный уникальный идентификатор (Universally Unique Identifier; UUID).
6 Архитектура БиоАПИ
6.1 Архитектурная модель ПИП/ИПУ БиоАПИ
6.1.1 БиоАПИ включает в себя модель ПИП/ИПУ, изображенную на рисунке 1.
Рисунок 1 — Модель БиоАПИ ПИП/ПБУ
Примечание — На рисунке 1 структура модели ниже уровня ИПУ упрощена. Возможные варианты внутренней структуры и стандартизированный интерфейс ПБУ изображены на рисунке 2.
6.1.2 Система БиоАПИ состоит из компонентов БиоАПИ, имеющих стандартизированные интерфейсы. На рисунке 1 показаны взаимодействия между тремя видами компонентов БиоАПИ: инфраструктурой БиоАПИ, приложениями и монолитными ПБУ.
Примечание — Описание стандартизированных интерфейсов, позволяющее независимым компонентам БиоАПИ предоставлять доступ к функциям ПБУ, приведено в 6.2.
6.1.3 ПИП определяет интерфейс между инфраструктурой БиоАПИ и биометрическим приложением. Приложение предназначено для вызова функций, описанных в спецификации ПИП (раздел 8). Инфраструктура БиоАПИ поддерживает функции, приведенные в спецификации ПИП.
6.1.4 ИПУ определяет интерфейс между инфраструктурой БиоАПИ и ПБУ. Инфраструктура БиоАПИ вызывает функции, описанные в спецификации ИПУ (раздел 9). ПБУ поддерживает функции, приведенные в спецификации ИПУ.
6.1.5 Инфраструктура БиоАПИ предназначена для управления ПБУ и отображения вызовов функций ПИП функциям ИПУ, адресованных соответствующему ПБУ.
6.1.6 Приложение может получить доступ к функциональным возможностям ПБУ (через инфраструктуру БиоАПИ) только после того как ПБУ будет загружен и присоединен (8.1.5 и 8.1.7). Когда приложению больше не требуется использование ПБУ, оно его отсоединяет и выгружает (см. 8.1.6 и 8.1.8).
6.1.7 Приложение может одновременно загружать и присоединять более одного ПБУ. ПБУ может быть одновременно присоединен к более чем одному приложению.
Примечание - Взаимодействия между приложением и присоединенным ПБУ обычно не зависят от взаимодействий между этим приложением и другими ПБУ или между этим ПБУ и другими приложениями, за исключением случаев, когда возникает конфликт с физическим устройством, управляемым ПБУ.
6.1.8 Функции, определенные в настоящем стандарте, поддерживают наличие в биометрической системе:
a) отдельной инфраструктуры БиоАПИ со связанным с ней реестром компонентов;
b) динамического выполнения и завершения нескольких одновременно выполняющихся биометрических приложений, взаимодействующих с данной инфраструктурой БиоАПИ;
c) динамической установки, удаления (и связанными с ними загрузкой и выгрузкой) нескольких ПБУ, взаимодействующих с данной инфраструктурой БиоАПИ;
d) сообщения от ПБУ инфраструктуре БиоАПИ (и следовательно, выполняющемуся биометрическому приложению) о событиях, связанных с динамическим присоединением и отсоединением модулей БиоАПИ (см. 6.5), управляемых данным ПБУ.
Примечание - Ожидается, что ПИП будет связан с единственным приложением, управляющим одним ПБУ с не более чем одним модулем БиоАПИ каждой биометрической категории, доступ к которому обеспечивается с помощью данного ПБУ. Тем не менее поддержка доступа приложения к нескольким ПБУ, каждый из которых способен управлять несколькими модулями БиоАПИ (но только одним из каждой категории для данной присоединенной сессии), помогает облегчить такие применения, как контроль физического доступа, особенно при использовании сетевых устройств.
6.2 Архитектурная модель ПБУ БиоАПИ
6.2.1 Модули БиоАПИ представляют собой абстракцию биометрических устройств и являются основными структурными блоками, которые предоставляет ПБУ приложению. Они включают в себя и скрывают программные и аппаратные ресурсы различных типов, такие как устройство регистрации, архивирующее устройство и т.д.
6.2.2 Каждый модуль БиоАПИ моделирует или включает в себя один (или ни одного) элемент аппаратного обеспечения и любое необходимое программное обеспечение. В настоящее время определенны следующие категории модулей БиоАПИ:
Примечание - Первые два модуля, как правило, но не обязательно, связаны со аппаратными средствами, а последние два модуля, как правило, но не обязательно, не имеют связанных с ними аппаратных средств.
6.2.3 Модуль БиоАПИ может управляться ПБУ внутренне (прямое управление модулем БиоАПИ) или связанным поставщиком функции БиоАПИ (ПБФ) (непрямое управление модулем БиоАПИ). Интерфейсы поставщика функции БиоАПИ (ИПФ) определены в следующих частях комплекса стандартов ИСО/МЭК 19784.
6.2.4 ПБФ может управлять несколькими модулями БиоАПИ данной категории (но не более чем одним в любой присоединенной сессии для данного приложения). ПБФ категоризированы в соответствии с категориями модулей БиоАПИ, которыми они могут управлять. В настоящее время определены следующие категории ПБФ:
6.2.5 ИПФ БиоАПИ для каждой категории ПБФ определены в других частях комплекса стандартов ИСО/МЭК 19784. Все ИПФ поддерживают доступ к одному или нескольким (но не более чем к одному в любой присоединенной сессии для данного приложения) модулям БиоАПИ в адресуемом ПБФ.
6.2.6 ПБУ, поддерживающий несколько модулей БиоАПИ (управляемых непосредственно или с помощью ПБФ), может поддерживать интерфейс ИПУ, позволяющий приложению выбрать конкретный модуль БиоАПИ (один для каждой категории) для присоединенной сессии. Приложение может задать параметр BioAPI_DONT_CARE для модуля БиоАПИ конкретной категории. В этом случае выбор используемого модуля БиоАПИ осуществляет ПБУ.
6.2.7 Если разработчик ПБУ указывает конкретную категорию модуля БиоАПИ, то ПБУ должен иметь возможность управлять модулем БиоАПИ данной категории напрямую или взаимодействовать с ПБФ соответствующей категории с помощью соответствующего стандартизованного ИПФ.
6.2.8 Функции ПИП БиоАПИ и ИПУ (в некоторых случаях — функции ИПФ) (8.1.12 и 9.3.1.7) дают возможность приложению посылать модулю или запрашивать у модуля БиоАПИ управляющую информацию и информацию о статусе с использованием ПИП БиоАПИ и ИПУ (или ИПФ). Эти функции являются дополнительными к обычным биометрическим операциям. Параметры управляющих функций не стандартизованы. Если ПБУ или ПБФ (если он задействован) не поддерживает эту управляющую функцию, возвращается ошибка (6.6).
6.2.9 Если установлена присоединенная сессия ПБУ, выбирается не более чем один модуль БиоАПИ каждой категории (8.1.7).
Примечание - Для данной архитектуры требуется, чтобы интерфейсы ИПФ обеспечивали возможность ПБУ передавать ПБФ идентификацию (обеспечиваемую интерфейсом ПИП и ИПУ) того модуля БиоАПИ, который должен использоваться. Это подразумевает наличие конкретной камеры, сканера, устройства хранения и других устройств. Необходимые функции ИПФ для каждой категории ПБФ установлены в следующих частях комплекса стандартов ИСО/МЭК 19784.
6.3 Реестр компонентов
6.3.1 Реестр компонентов содержит информацию об установленных ПБУ и ПБФ.
6.3.2 В модели БиоАПИ предполагается наличие в биометрической системе единственного экземпляра инфраструктуры БиоАПИ и единственного связанного с ним реестра компонентов.
Примечание - В реальной информационной системе могут быть несколько реестров компонентов, поддерживаемых одним и тем же, но разделяемым, кодом инфраструктуры БиоАПИ либо разными кодами инфраструктуры БиоАПИ (возможно, старой и новой версиями инфраструктуры). Это обеспечивается наличием нескольких биометрических систем в одной реальной информационной системе.
6.3.3 БиоАПИ требует, чтобы не было взаимодействий или конфликтов между различными биометрическими системами, входящими в одну реальную компьютерную систему.
Примечание - Если реальная компьютерная система содержит несколько биометрических систем, возможное разделение кода и программно-алгоритмических средств, с помощью которых приложение связывается с той или иной биометрической системой, является вопросом исполнения.
6.3.4 Следующая информация может быть получена приложением с помощью функций инфраструктуры БиоАПИ, возвращающих информацию реестра компонентов (8.1.3, 8.1.4 и 8.1.10):
a) информация о самой инфраструктуре BioAPI;
b) подробные данные о всех установленных ПБУ;
c) подробные данные о всех установленных ПБФ.
Примечание - Информация об установленных ПБФ также может быть получена ПБУ с помощью механизма обратного вызова.
6.3.5 Следующая информация может быть получена приложением с помощью функций инфраструктуры БиоАПИ, передаваемых через ИПУ конкретному ПБУ (8.1.11 и 8.1.9):
a) подробные данные о всех установленных ПБФ, которые поддерживаются данным ПБУ;
b) подробные данные о всех модулях БиоАПИ, находящихся в подключенном состоянии, к которым возможен доступ с помощью данного ПБУ (напрямую или с помощью поддерживаемого ПБФ).
6.3.6 Информация, приведенная в 6.3.4 и 6.3.5, может быть получена приложением путем использования функций, которые могут быть вызваны в следующих условиях:
a) информация о самой инфраструктуре может быть получена в любое время после вызова функции BioAPI_Init (8.1.3);
b) подробные данные о всех установленных ПБУ могут быть получены в любое время после вызова функции BioAPI_Init (8.1.4);
c) подробные данные о всех установленных ПБФ могут быть получены в любое время после вызова функции BioAPI_Init (8.1.10);
d) подробные данные о всех установленных ПБФ, которые поддерживаются каждым ПБУ, могут быть получены в любое время после вызова функции BioAPI_Load (8.1.11) для этого ПБУ.
Примечание 1 — Приложением могут быть загружены одновременно несколько ПБУ.
Примечание 2 — Предполагается, что при вызове функции BSP_Load ПБУ использует ИПФ для загрузки всех ПБФ, которые он может использовать;
e) подробные данные о всех модулях БиоАПИ, находящихся в подключенном состоянии, к которым возможен доступ с помощью данного ПБУ (напрямую или с помощью поддерживаемого ПБФ), могут быть получены (по ссылке на УУИД ПБУ) в любое время после вызова функции BioAPI_Load (8.1.9) для этого ПБУ.
6.4 Установка и удаление ПБУ и ПБФ
6.4.1 Для установки ПБУ или ПБФ используют УУИД (параметр функций BioAPI_Util_InstallBSP и BioAPI_Util_InstallBFP) для идентификации ПБУ или ПБФ. Установка ПБУ или ПБФ с помощью УУИД, с которым ранее уже был установлен ПБУ или ПБФ, должна приводить к отказу установки и возврату ошибки. Если один и тот же ПБУ или ПБФ установлен в нескольких биометрических системах, он должен иметь один и тот же УУИД во всех системах. Необходимо, чтобы УУИД был уникальным для каждого ПБУ и ПБФ в отдельно взятой биометрической системе.
6.4.2 Установка ПБФ осуществляется путем вызова функции инфраструктуры БиоАПИ (10.2.1) с последующим предоставлением данных о ПБУ (схема ПБУ, определенная в 7.16).
Примечание - Данный вызов функции стандартизован, но осуществляется, как правило, с помощью установочного приложения, а не обычного биометрического приложения.
6.4.3 При установке нового ПБУ его обычно активизируют путем инсталляционного процесса, используя зависимые от реализации механизмы, а затем ПБУ может использовать механизм обратного вызова (9.2.2) для получения информации от инфраструктуры об установленных ПБФ.
Примечание - Данная функция может быть вызвана в любое время для того, чтобы ПБУ мог обновлять любую внутреннюю информацию, которую он может поддерживать. Формат и содержание (и даже существование) такой внутренней информации не стандартизированы и полностью определяются ПБУ.
6.4.4 После успешной установки или удаления ПБУ или ПБФ, следующий запрос от любого приложения или ПБУ, касающийся информации реестра компонентов, должен возвращать правильную информацию в отношении недавно установленного ПБУ или ПБФ и не возвращать информацию об удаленном ПБУ или ПБФ (8.1.4 и 8.1.10).
6.4.5 Не существует механизмов для информирования установленного ПБУ (используемого или неиспользуемого в настоящее время) об установке новых ПБФ или удалении существующих ПБФ (6.4.6). Ответственность за определение того, какие ПБФ установлены, возложена исключительно на ПБУ, использующего функцию обратного вызова перечня ПБФ (9.2.2).
6.4.6 Функция ПИП БиоАПИ BioAPI_Util_InstallBsp (10.2.1), которую вызывает приложение (например, мастер удаления), сообщает инфраструктуре БиоАПИ, что ПБУ был удален. Инфраструктура БиоАПИ обновляет реестр компонентов. Не существует стандартизованных функций для уведомления отдельных ПБУ, находящихся в рабочей памяти выполняющихся приложений, об удалении используемых ими ПБФ, и эффект удаления используемого ПБУ ПБФ зависит от исполнения.
Примечание - Удаление ПБФ обычно не вызывает удаления связанных с ним аппаратных средств или драйверов модулей БиоАПИ, так как эти драйверы и аппаратные средства могут также использоваться другими установленными ПБФ. Данная область находится вне стандартизации БиоАПИ и зависит от исполнения ПБФ.
6.5 Загрузка ПБУ и присоединение модуля БиоАПИ
6.5.1 Действия биометрического приложения должны выполняться в следующем порядке:
a) инициализация доступа к инфраструктуре БиоАПИ (8.1.1);
b) идентификация и загрузка одного или более ПБУ (8.1.4 и 8.1.5) с возможным указанием обработчика событий для получения обратных вызовов при возникновении связанных с данным ПБУ определенных событий (7.26), например подключение или удаление модуля БиоАПИ, к которому может быть осуществлен доступ через данного ПБУ. Когда обработчики события обратного вызова определены, приложение будет получать уведомления о всех подключениях и отключениях, о которых сообщается соответствующим ПБУ;
c) присоединение единственного ПБУ вместе с одним БиоАПИ каждой категории (к которому ПБУ имеет прямой или косвенный доступ).
Примечание - Под присоединением ПБУ подразумевается установление присоединенной сессии ПБУ;
d) после присоединения (со ссылкой на присоединенный ПБУ) могут быть выполнены остальные вызовы функций БиоАПИ, которые будут обработаны присоединенным ПБУ с использованием идентифицированных модулей БиоАПИ требуемой категории.
Примечание 1 — Приложение может устанавливать несколько одновременно присоединенных сессий с разными ПБУ (или с тем же ПБУ).
Примечание 2 — Пример кода последовательных вызовов приведен в приложении D.
6.5.2 Загрузка ПБУ (8.1.5) дает приложению возможность получать полную информацию о модулях БиоАПИ, к которым может быть осуществлен доступ (прямой или косвенный) через данного ПБУ или с помощью запроса инфраструктуры, или в соответствии с уведомлением обратного вызова от ПБУ (или двумя способами).
6.5.3 Модуль БиоАПИ может использоваться только в случае, если аппаратные и программные средства, от которых он зависит, в данное время подключены к системе. В модели это называется «подключенным состоянием модуля БиоАПИ».
6.5.4 Когда приложение присоединяет ПБУ, оно может указать, что модуль БиоАПИ, выбираемый для какой-либо конкретной категории модуля БиоАПИ, должен быть определен ПБУ. Это называют «выбором модуля БиоАПИ по умолчанию с использованием параметра BioAPI_DONT_CARE».
Примечание - Единственное различие между выбором конкретного доступного модуля БиоАПИ (находящегося в подключенном состоянии) данной категории и выбором модуля БиоАПИ по умолчанию с использованием параметра BioAPI_DONT_CARE заключается в том, что, в последнем случае, решение о выборе используемого модуля БиоАПИ принимает ПБУ.
6.5.5 Уведомление о событии подключения каждого модуля БиоАПИ содержит его схему.
Примечание - Возможно, что физическое подключение некоторых частей аппаратных средств (например, смарт-карта, которая может поддерживать как архивирование, так и сопоставление) будет вызывать два отдельных различных уведомления. Приложение может не связать эти два события с одним физическим устройством.
6.5.6 В ответ на функцию BioAPI_BSPAttach приложение должно выбрать не более одного модуля БиоАПИ каждой категории, который находится в настоящее время в подключенном состоянии (или выбрать BioAPI_DONT_CARE) и управляется данным ПБУ или связанным с ним ПБФ. Затем ПБУ обеспечивает доступ к модулю (для модулей БиоАПИ, управляемых напрямую) или взаимодействует со связанным с ним ПБФ для получения доступа к данному модулю БиоАПИ.
6.5.7 Информационное содержание уведомления об удалении должно включать в себя (7.28):
6.5.8 Уведомление о событии удаления модуля БиоАПИ, который является частью набора модулей, используемых в текущей присоединенной сессии, необходимо для того, чтобы приложение больше не производило вызовов функций, кроме BioAPI_BSPDetach и BioAPI_GetBIRFromHandle.
6.6 Управление модулями БиоАПИ
6.6.1 В ПИП, ИПУ и ИПФ БиоАПИ доступна функция (8.1.12 и 9.3.1.7), которая позволяет приложению управлять модулем БиоАПИ через ПБУ. ПБУ не обязательно должен поддерживать данную функцию, но если такая функция поддерживается, ПБУ идентифицирует наличие такой поддержки в своей схеме (7.16 и 7.46).
6.6.2 Данная функция содержит конкретные управляющие коды, содержание буфера и возвращаемые значения, но их формат и значение определяются конструкцией УУИД и могут быть индивидуальны для каждого изготовителя. Настоящий стандарт не устанавливает требований к УУИД, поддерживающим данную функцию.
6.7 Структура и обработка ЗБИ
6.7.1 Структура ЗБИ
ЗБИ, использующая ПИП и ИПУ, является структурой данных Си, сохраненной в памяти компьютера с использованием указателей на различные элементы. Структура ЗБИ, рекомендуемая для хранения и передачи между компьютерными системами, представляет собой сериализацию структуры данных Си и изображена на рисунке 3. В формате, рекомендуемом для хранения и передачи, к полям, определенным в структуре данных Си, добавляются поля длины.
Примечание — Формат постоянного клиента БиоАПИ, рекомендуемый для хранения и передачи ЗБИ БиоАПИ, приведен в приложении B. Для представления ЗБИ БиоАПИ в ПИП и ИПУ используется структура данных, определенная в 7.4.
СБЗ содержит информацию о содержании последующего ББД.
ББД содержит биометрический образец, формат которого определен полем «ИД формата» в СБЗ. Данный формат может быть стандартным или внутренним.
Примечание — Стандартные форматы ББД определены в ISO/IEC 19794 [5].
БЗИ является необязательным (нулевое поле длины БЗИ указывает на отсутствие данного блока) и содержит параметры, связанные с использованием цифровой подписи и/или шифрованием ЗБИ. Формат БЗИ определяется полем «Формат БЗИ» в СБЗ. Поле «Тип данных ЗБИ» указывает, использует ли ЗБИ цифровую подпись и/или является ли ББД зашифрованным (7.9).
Первое поле длины указывает длину всей ЗБИ без учета самого поля. Второе поле длины, расположенное после заголовка и перед ББД, указывает длину ББД без учета самого поля длины. Третье поле длины, расположенное после ББД и перед БЗИ, указывает длину БЗИ без учета самого поля длины.
6.7.2 Обработка данных ЗБИ
При создании новой ЗБИ, ПБУ возвращает к ней дескриптор. Большинство локальных операций может быть выполнено без перемещения ЗБИ из ПБУ. (Так как ЗБИ могут быть достаточно большими, это является преимуществом при выполнении различных операций). Однако если приложению необходимо управлять ЗБИ (сохранить ее в базе данных приложения, передать другому ПБУ или переслать на сервер для верификации/идентификации, возможно, через инфраструктуру с использованием ISO/IEC 24708 [6]), оно может запрашивать ЗБИ с использованием дескриптора (функции BioAPI_GetBIRFromHandle). Если требуется только информация заголовка, она может быть получена с использованием функции BioAPI_GetHeaderFromHandle.
Передача ЗБИ в качестве входного параметра функции БиоАПИ может быть реализована одним из следующих трех способов:
a) ссылкой на ее дескриптор (если она находится в вызванном ПБУ);
b) ссылкой на ее ключевое значение (УУИД) в открытой базе данных ЗБИ (управляемой вызванным ПБУ);
c) предоставлением самой ЗБИ с использованием структуры данных BioAPI_BIR Си.
7 Типы и макросы БиоАПИ
7.1 Макрос БиоАПИ
Определение соглашения о вызовах БиоАПИ:
Примечание - Взаимодействие программных продуктов разных изготовителей в общем случае зависит от выбранного (иногда в соответствии с установками в заголовке Си) представления в памяти (например, заполнение промежутков между элементами данных, механизм передачи параметров и использование регистров или стеков). Многие операционные системы выбирают один из вариантов по умолчанию, который и должен использоваться. Если не существует выбранных установок по умолчанию, необходимо использовать опцию представления структур данных без заполнения промежутков между элементами данных.
7.2 Тип BioAPI_BFP_LIST_ELEMENT
7.2.1 Данный тип определяет ПБФ, представляя его категорию и УУИД. При запросе о поддерживаемых ПБФ, ПБУ возвращается список.
| typedef struct bioapi_bfp_list_element | { |
| BioAPI_CATEGORY BFPCategory; BioAPI_UUID BFPUuid; } BioAPI_BFP_LIST_ELEMENT; | |
7.2.2 Определения
BFPCategory — определяет категорию модуля БиоАПИ, поддерживаемую ПБФ.
BFPUuid — УУИД ПБФ в реестре компонентов.
7.3 Тип BioAPI_BFP_SCHEMA
7.3.1 Информация о ПБФ, содержащаяся в реестре компонентов.
7.3.2 Определения
BFPCategory — определяет категорию модуля БиоАПИ, поддерживаемую ПБФ.
BFPDescription — строка с нулевым символом на конце, содержащая текстовое описание ПБФ.
Path — указатель на строку с нулевым символом на конце, содержащую путь к файлу ПБФ, включая название файла. Путь к файлу может быть записан в виде адреса страницы URL. Символьная строка должна содержать символы, закодированные в формате UTF-8 в соответствии с ИСО/МЭК 10646.
Примечание - Если в вызове функции используется BioAPI_BFP_SCHEMA, принимающий компонент выделяет память для элемента схемы Path, а вызывающий компонент освобождает память.
SpecVersion — номер редакции и номер поправки или изменений редакции стандарта, в соответствии с которой был разработан ПБФ.
Примечание - Требования к ПБФ будут установлены в следующих частях комплекса стандартов 19784.
ProductVersion — строка версии программного обеспечения ПБФ.
Vendor — строка с нулевым символом на конце, содержащая название изготовителя ПБФ.
BFPSupportedFormats — указатель на массив структур BioAPI_BIR_BIOMETRIC_DATA_FORMAT, определяющий поддерживаемые форматы ББД.
NumSupportedFormats — число поддерживаемых форматов, содержащихся в BFPSupportedFormats.
FactorsMask — маска, указывающая, какие биометрические типы поддерживаются ПБФ.
BFPPropertyID — УУИД формата передаваемого свойства ПБФ.
BFPProperty — адрес и длина буфера памяти, содержащего свойства ПБФ. Формат и содержание свойства ПБФ могут быть определены изготовителем или установлены в соответствующем стандарте.
7.4 Тип BioAPI_BIR
7.4.1. BioAPI_BIR представляет собой контейнер биометрических данных и состоит из BioAPI_BIR_HEADER, ББД и (необязательно) БЗИ. ББД может содержать исходные данные образца, частично обработанные (промежуточные) данные или полностью обработанные биометрические данные. BioAPI_BIR может использоваться для регистрации пользователя (при этом он хранится постоянно) или для верификации или идентификации пользователя (при этом он используется кратковременно).
7.4.2 ББД и БЗИ представляют собой целое число октетов и имеют переменную длину до 2**32-1 октетов. Если БЗИ содержит цифровую подпись, она вычисляется одновременно для BioAPI_BIR_Header и ББД.
| typedef struct bioapi_bir { BioAPI_BIR_HEADER Header; BioAPI_DATA BiometricData; BioAPI_DATA SecurityBlock; /* Если БЗИ отсутствует, то SecurityBlock.Data=NULL */ } BioAPI_BIR; |
|---|
Примечание 1 — ЗБИ БиоАПИ содержит информацию, необходимую для формата постоянного клиента ЕСФОБД определенную в ИСО/МЭК 19785-1.
Примечание 2 — Форматы BiometricData и SecurityBlock определены соответственно элементами BioAPI_BIR_BIOMETRIC_DATA_FORMAT и BioAPI_BIR_SECURITY_BLOCK_FORMAT в заголовке BioAPI_BIR_HEADER.
Примечание 3 — ЕСФОБД позволяет использовать форматы ЗБИ, отличающиеся от формата, поддерживаемого БиоАПИ. Преобразование между форматом ЗБИ БиоАПИ и другими форматами ЗБИ определено в ИСО/МЭК 19785-1.
7.5 Тип BioAPI_BIR_ARRAY_POPULATION
Данный тип представляет собой массив ЗБИ, используемый при идентификации (в качестве входного параметра для функций BioAPI_Identify или BioAPI_IdentifyMatch, как часть BioAPI_IDENTIFY_POPULATION).
| typedef struct bioapi_bir_array_population { uint32_t NumberOfMembers; BioAPI_BIR Members; / указатель на массив ЗБИ */ } BioAPI_BIR_ARRAY_POPULATION; |
|---|
7.6 Тип BioAPI_BIR_BIOMETRIC_DATA_FORMAT
Данный тип определяет формат данных, содержащихся в элементе БиоАПИ BiometricData «непрозрачного» блока биометрических данных (ББД) ЗБИ.
| typedef struct bioapi_bir_biometric_data_format { uint16_t FormatOwner; uint16_t FormatType; } BioAPI_BIR_BIOMETRIC_DATA_FORMAT; |
|---|
Примечание 1 — Значения FormatOwner (владелец формата) присваиваются и регистрируются органами регистрации ЕСФОБД. Значения FormatType (тип формата) присваиваются владельцем формата и при необходимости тип формата может быть зарегистрирован. Информация о регистрации приведена в ИСО/МЭК 19785-2.
Примечание 2 — BioAPI_BIR_BIOMETRIC_DATA_FORMAT соответствует комбинации «CBEFF_BDB_format_owner» и «CBEFF_BDB_format_type», установленных в ИСО/МЭК 19785-1.
Примечание 3 — Данная структура используется обычно в заголовке ЗБИ, однако она также используется как входной параметр для функций, осуществляющих получение биометрических данных.
7.7 Тип BioAPI_BIR_BIOMETRIC_PRODUCT_ID
Данный тип предоставляет идентификатор продукта (ИДП) для ПБУ, который разработал ББД в ЗБИ (элемент BiometricData).
Значение NO_VALUE_AVAILABLE следует отражать установкой значений всех компонентов в ноль. Это значение следует использовать только для ЗБИ, которая первоначально была получена не от ПБУ БиоАПИ, а из другого источника, и была преобразована в ЗБИ БиоАПИ. БПУ не должны использовать это значение.
Значения ProductOwner (владелец продукта) присваиваются и регистрируются органами регистрации ЕСФОБД в качестве идентификаторов биометрической организации. Информация об органах регистрации приведена в ИСО/МЭК 19785-2. Тип продукта присваивается владельцем продукта и может быть зарегистрирован.
Примечание 1 — ИД продуктов аналогичны ИД форматов и процессы их регистрации идентичны. Изготовитель может зарегистрировать значение владельца формата/продукта (идентификатор биометрической организации), которое может использоваться в обоих полях.
Примечание 2 — BioAPI_BIR_BIOMETRIC_PRODUCT_ID соответствует «CBEFF_BDB_product_owner» и «CBEFF_BDB_product_type», приведенным в ИСО/МЭК 19785-1.
7.8 Тип BioAPI_BIR_BIOMETRIC_TYPE
Данный тип представляет собой маску, описывающую набор биометрических типов (факторов), содержащихся в рамках ЗБИ БиоАПИ или поддерживаемых ПБУ.
Примечание 1 — BioAPI_TYPE_MULTIPLE используется для обозначения того, что биометрические образцы, содержащиеся в ББД (BiometricData ЗБИ), включают в себя образцы, полученные от биометрических сканеров разных типов (например, данные отпечатков пальцев и изображения лица). Расположение индивидуальных образцов в ББД определяет владелец формата и идентифицируется значением типа формата.
Примечание 2 — Значение NO_VALUE_AVAILABLE указывается установкой нулевого значения. Данное значение должно использоваться в том случае, если для ЗБИ, которые первоначально не были созданы ПБУ БиоАПИ, а были преобразованы в ЗБИ БиоАПИ, информация о биометрическом типе недоступна в записи первоначального источника. Преобразованные ЗБИ, чьи биометрические типы не соответствуют ни одному из определенных типов, должны использовать значение BioAPI_TYPE_OTHER.
Примечание 3 — BioAPI_BIR_BIOMETRIC_TYPE соответствует «CBEFF_BDB_biometric_type» по ИСО/МЭК 19785-1.
7.9 Тип BioAPI_BIR_DATA_TYPE
7.9.1 BioAPI_BIR_DATA_TYPE (тип данных ЗБИ БиоАПИ) используется для решения следующих задач:
a) определения типа биометрических образцов (исходные, промежуточные или обработанные), которые содержатся в ББД;
b) определения того, зашифрована ли ЗБИ и/или использует ли она цифровую подпись;
c) определения того, включено или нет значение индекса в качестве составной части заголовка ЗБИ.
Примечание - Если ЗБИ зашифрована ПБУ, то она может не определяться приложением или другим ПБУ.
7.9.2 Должен быть установлен один из следующих трех признаков: «исходный» (RAW), «промежуточный» (INTERMEDIATE) или «обработанный» (PROCESSED). Если ЗБИ, содержащая данные ЗБИ с установленными различными признаками, передается в инфраструктуру БиоАПИ в качестве параметра вызываемой функции, должно возвращаться значение ошибки BioAPIERR_INVALID_BIR.
Примечание - ЗБИ, которые первоначально не были созданы ПБУ БиоАПИ, а были преобразованы из другого формата данных и для которых информация о типе образца недоступна, могут не устанавливать данный признак (ПБУ БиоАПИ должны устанавливать один из вышеуказанных признаков).
7.9.3 Установка признаков «зашифровано» (ENCRYPTED) и «подписано» (SIGNED) является необязательной.
7.9.4 Признак «индекс» (INDEX_PRESENT) следует устанавливать в случае, если индекс присутствует в заголовке ЗБИ, и не следует устанавливать в случае, если индекс отсутствует в заголовке ЗБИ.
Примечание - BioAPI_BIR_DATA_TYPE соответствует комбинации «CBEFF_BDB_processed_level» и «CBEFF_BIR_integrity_options» по ИСО/МЭК 19785-1.
7.10 Тип BioAPI_BIR_HANDLE
Данный тип является дескриптором для обращения к ЗБИ БиоАПИ, существующей в ПБУ.
Примечание - Дескриптор, определяющий ЗБИ, имеет положительное ненулевое значение. Другие значения BioAPI_BIR_HANDLE (в настоящее время только минус 1 и минус 2) зарезервированы для индикации исключений.
| typedef int32_t BioAPI_BIR_HANDLE; | |
| #define BioAPI_INVALID_BIR_HANDLE | (-1) |
| #define BioAPI_UNSUPPORTED_BIR_HANDLE | (-2) |
7.11 Тип BioAPI_BIR_HEADER
Данный тип представляет собой заголовок ЗБИ, содержащий стандартную информацию, с описанием содержания следующих за ней непрозрачных ББД. Данная информация может быть прочитана приложением и предоставляется для того, чтобы обеспечить приложению возможность выбора метода обработки и трассировки с учетом ЗБИ. ПБУ не зашифровывает данный заголовок.
Примечание 1 — BioAPI_BIR_HEADER соответствует СБЗ в ЕСФОБД по ИСО/МЭК 19785-1.
Примечание 2 — Срок годности (Expiration date) соответствует элементу «Valid to» поля «CBEFF_BDB_validity_period» по ИСО/МЭК 19785-1. Поле признака (Index) соответствует полю «CBEFF_BDB_index» по ИСО/МЭК 19785-1.
Примечание 3 — Возможно существование ЗБИ БиоАПИ, которая не была создана ПБУ, а была преобразована из другого формата данных. В этом случае некоторые из полей заголовка, которые являются необязательными в ЕСФОБД (ИСО/МЭК 19785-1), но требуются БиоАПИ, могут отсутствовать. В этом случае для данных полей предусмотрено значение NO_VALUE_AVAILABLE или значение по умолчанию (в соответствующих этим полям структурах данных). Однако все ЗБИ, созданные ПБУ БиоАПИ, должны содержать корректные данные для этих полей и не должны использовать значение NO_VALUE_AVAILABLE (исключение составляют поля BioAPI_Quality и BioAPI_BIR_SUBTYPE, которые являются необязательным в заголовке ЗБИ БиоАПИ). Если ЗБИ, созданная не БиоАПИ, обозначена как входной параметр для ПБУ, ПБУ может возвратить ошибку «недействительная ЗБИ».
Примечание 4 — Формат хранения ЗБИ включает в себя точную длину поля, которая не является необходимой в структуре Си (приложение B относительно формата хранения ЗБИ).
7.12 Тип BioAPI_BIR_PURPOSE
7.12.1 Данный тип определяет назначение создаваемой ЗБИ БиоАПИ (при использовании в качестве входного параметра к функциям БиоАПИ) или назначение имеющейся ЗБИ (при использовании в качестве выходного параметра функции БиоАПИ или в заголовке ЗБИ).
Примечание - Условие BioAPI_NO_DATA_AVAILABLE (данные недоступны) указывается установкой значения в ноль. Данное значение используется только для тех ЗБИ, которые первоначально не сформированы ПБУ БиоАПИ, а были созданы другим источником и преобразованы в ЗБИ БиоАПИ. ПБУ не следует использовать данное значение.
7.12.2 Назначение ЗБИ (BioAPI_BIR_PURPOSE) используется двумя способами. Во-первых, оно используется как входной параметр, чтобы дать возможность приложению указать ПБУ назначение итоговой ЗБИ, таким образом, давая возможность ПБУ выполнить соответствующую регистрацию и обработку, чтобы создать надлежащую ЗБИ для данного назначения. Во-вторых, оно используется в пределах заголовка ЗБИ, чтобы указать приложению (или ПБУ в течение последующих операций), какому назначению соответствует ЗБИ. Например, некоторые ПБУ используют различные форматы ББД в зависимости от их использования для верификации или идентификации; в последнем случае формат обычно включает в себя дополнительную информацию для увеличения скорости или точности. Многие ПБУ используют различные форматы данных в зависимости от их использования в качестве образца для непосредственной верификации или в качестве контрольного шаблона для будущих сопоставлений (при регистрации).
Примечание - Параметр BioAPI_BIR_PURPOSE в заголовке ЗБИ соответствует параметру CBEFF_BDB_purpose по ИСО/МЭК 19785-1. Названия параметров отличаются незначительно, так как ЗБИ БиоАПИ ограничена отдельной BDB, но семантика остается неизменной.
7.12.3 Ограничения на использование данных, содержащихся в ЗБИ конкретного назначения:
a) в заголовке ЗБИ может быть указано любое назначение;
b) назначения BioAPI_PURPOSE_VERIFY (верификация) и BioAPI_PURPOSE_IDENTIFY (идентификация) допустимы только в качестве входного параметра функции BioAPI_Capture;
c) назначения BioAPI_PURPOSE_ENROLL (регистрация), BioAPI_PURPOSE_ENROLL_FOR_VERIFICATION_ONLY (регистрация только для верификации) и BioAPI_PURPOSE_ENROLL_FOR_IDENTIFICATION_ONLY (регистрация только для идентификации) допустимы только в качестве входных параметров функций BioAPI_Capture, BioAPI_Enroll и BioAPI_Import (импортирование);
d) назначение BioAPI_PURPOSE_AUDIT (контроль) не является входным параметром функции, а используется только в заголовке ЗБИ;
e) функции BioAPI_Process (обработка), BioAPI_CreateTemplate (создать шаблон) и BioAPI_ProcessWithAuxData не используют назначение в качестве входного параметра, а считывают поле назначения из заголовка входного ЗБИ CapturedBIR (полученная ЗБИ);
f) функция BioAPI_Process (обработка) может принимать в качестве входных данных любую промежуточную ЗБИ с назначением BioAPI_PURPOSE_VERIFY и BioAPI_PURPOSE_IDENTIFY и должна возвращать ЗБИ с тем же назначением, что и входная ЗБИ;
g) функция BioAPI_CreateTemplate (создать шаблон) может принимать в качестве входных данных любую промежуточную ЗБИ с назначением: BioAPI_PURPOSE_ENROLL, BIOAPI_PURPOSE_ENROLL_FOR_VERIFICATION_ONLY, BIOAPI_PURPOSE_ENROLL_FOR_IDENTIFICATION_ONLY и должна возвращать ЗБИ с тем же назначением, что и входная ЗБИ;
h) если ЗБИ подходит для регистрации, верификации и идентификации, то возвращаемая ЗБИ должна иметь назначение BioAPI_PURPOSE_ENROLL.
7.13 Тип BioAPI_BIR_SECURITY_BLOCK_FORMAT
Данный тип определяет формат данных, содержащихся в блоке безопасности (БЗИ) ЗБИ БиоАПИ (элемент блока безопасности).
| typedef struct bioapi_bir_security_block_format { uint16_t SecurityFormatOwner; uint16_t SecurityFormatType; } BioAPI_BIR_SECURITY_BLOCK_FORMAT; |
|---|
Если признаки «шифрование» и «подпись» не установлены в поле Bio API_BIR_DATA_TYPE заголовка ЗБИ, то параметры SecurityFormatOwner и SecurityFormatType должны быть установлены в 0x0000 и блок безопасности должен отсутствовать.
Значения SecurityFormatOwner присвоены и зарегистрированы регистрационными правами ЕСФОБД как идентификаторы биометрических организаций по ИСО/МЭК 19785-2. SecurityFormatType присвоен владельцем формата безопасности (биометрическая организация) и может быть зарегистрирован дополнительно.
Примечание 1 — ИД форматов безопасности аналогичны ИД форматов. Процесс регистрации ИД форматов безопасности аналогичен процессу регистрации ИД форматов. Изготовитель может зарегистрировать значение владельца формата/продукта/безопасности (идентификатор биометрической организации), что может быть использовано во всех связанных областях.
Примечание 2 — Содержание блока безопасности может включать в себя цифровую подпись или код аутентификационного сообщения (вычисленный как заголовок ЗБИ + ББД), параметры шифрования ББД (то есть алгоритмы шифрования, длина ключа) и/или целостные параметры ЗБИ (ИД алгоритмов, название ключа, версия).
Примечание 3 — Формат блока безопасности ЗБИ БиоАПИ в заголовке ЗБИ соответствует «CBEFF_SB_format_owner» и «CBEFF_SB_format_type» по ИСО/МЭК 19785-1.
7.14 Тип BioAPI_BIR_SUBTYPE
7.14.1 Данный тип идентифицирует подтип в рамках типа ББД указанного в BioAPI_BIR_BIOMETRIC_TYPE. Значения подтипов определяются спецификациями данного типа ББД.
7.14.2 Каждый из флагов BioAPI_BIR_SUBTYPE_LEFT и BioAPI_BIR_SUBTYPE_RIGHT (ноль, один или оба) может быть установлен произвольно.
7.14.3 Может быть установлен один или ни одного из пяти подтипов пальца.
Примечание 1 — Условие NO_VALUE_AVAILABLE (значение недоступно) указывается присвоением значения ноль. Для ЗБИ, которые не были первоначально созданы ПБУ БиоАПИ, а были преобразованы из другого формата данных и для которых информация о подтипе недоступна, допускается данное значение не устанавливать.
Примечание 2 — BioAPI_BIR_SUBTYPE соответствуют «CBEFF_BDB_biometric_subtype» по ИСО/МЭК 19785-1.
Примечание 3 — Данная структура прежде всего используется в заголовке ЗБИ, однако она также используется как входной параметр для функций получения биометрических данных. Значение BioAPI_NO_SUBTYPE_AVAILABLE используется в заголовке ЗБИ, если данное поле неприменимо или информация недоступна. Значение BioAPI_NO_SUBTYPE_AVAILABLE также используется как параметр функции, если приложение позволяет ПБУ определить, какой тип данных будет получен.
7.15 Тип BioAPI_BOOL
Данный тип используется для индикации истинного или ложного значения условия.
| typedef uint8_t BioAPI_BOOL; | |
| #define BioAPI_FALSE | (0) |
| #define BioAPI_TRUE | (!BioAPI_FALSE) |
7.16 Тип BioAPI_BSP_SCHEMA
7.16.1 Данный тип включает в себя информацию о ПБУ, содержащуюся в реестре компонентов БиоАПИ.
7.16.2 Определения
BSPDescription — строка с нулевым символом на конце, содержащая текстовое описание ПБУ.
Path — указатель на строку с нулевым символом на конце, содержащую путь к файлу ПБФ, включая название файла. Путь к файлу может быть записан в виде адреса страницы URL. Символьная строка должна содержать символы, закодированные в формате UTF-8 в соответствии с ИСО/МЭК 10646.
Примечание - Если BioAPI_BSP_SCHEMA используется в вызове функции, компонент, получающий вызов, выделяет память для элемента схемы Path (путь к файлу), а вызывающий компонент освобождает память.
SpecVersion — номер редакции и номер поправки или изменений данной редакции спецификации БиоАПИ, для которой был разработан ПБУ.
ProductVersion — строка версии программного обеспечения ПБУ.
Vendor — строка с нулевым символом на конце, содержащая название изготовителя ПБУ.
BSPSupportedFormats — указатель на структуру BioAPI_BIR_BIOMETRIC_DATA_FORMAT, определяющую поддерживаемые форматы ББД.
NumSupportedFormats — число поддерживаемых форматов, содержащихся в BspSupportedFormats.
FactorMask — маска, указывающая биометрические типы, поддерживаемые ПБУ.
Operations — маска, указывающая операции, поддерживаемые ПБУ.
Options — маска, указывающая опции, поддерживаемые ПБУ.
PayloadPolicy — пороговое значение (минимальное значение ОЛС), используемое для принятия решения о выдаче полезной информации после успешной верификации.
MaxPayloadSize — максимальный размер полезной информации (в байтах), которую может принять ПБУ.
DefaultVerifyTimeout — заданное по умолчанию значение времени ожидания в миллисекундах, используемое ПБУ для функции верификации BioAPI_Verify в случае, когда время ожидания не определено приложением.
DefaultIdentifyTimeout — заданное по умолчанию значение времени ожидания в миллисекундах, используемое ПБУ для функции идентификации BioAPI_Identify и BioAPI_IdentifyMatch в случае, когда время ожидания не определено приложением.
DefaultCaptureTimeout — заданное по умолчанию значение времени ожидания в миллисекундах, используемое ПБУ для функции захвата BioAPI_Capture в случае, когда время ожидания не определено приложением.
DefaultEnrollTimeout — заданное по умолчанию значение времени ожидания в миллисекундах, используемое ПБУ для функции регистрации BioAPI_Enroll в случае, когда время ожидания не определено приложением.
DefaultCalibrateTimeout — заданное по умолчанию значение времени ожидания в миллисекундах, используемое ПБУ для операций калибровки датчика в случае, когда время ожидания не определено приложением.
MaxBSPDbSize — максимальный размер управляемой ПБУ базы данных ЗБИ.
Примечание 1 — Применяется только в том случае, если ПБУ способен непосредственно управлять отдельным модулем архива.
Примечание 2 — Нулевое значение означает, что информация о размере базы данных не должна быть предоставлена по следующим трем причинам:
a) база данных не поддерживается;
b) существует возможность управления несколькими модулями (непосредственно или с использованием интерфейса ПБФ), каждый из которых может иметь различную максимальную длину и информация о данном модуле будет предоставлена как часть уведомления о подключении (часть схемы модуля);
c) поддерживается один модуль архива, но в данном параметре информация не предоставлена — она будет доступна в уведомлении о подключении.
MaxIdentify — максимальное число людей, поддерживаемых функцией идентификации. Значение FFFFFFFF указывает на отсутствие ограничения.
7.16.3 Более подробное описание приведенных элементов и порядка записи информации ПБУ в реестр компонентов БиоАПИ приведено в 10.1.2 и 10.2.1.
7.17 Тип BioAPI_CANDIDATE
Данный тип содержит одного кандидата из набора, возвращаемого функциями идентификации BioAPI_Identify или сопоставления BioAPI_IdentifyMatch и соответствующий успешному сопоставлению.
| typedef struct bioapi_candidate { BioAPI_IDENTIFY_POPULATION_TYPE Type; union { BioAPI_UUID *BIRInDataBase; uint32_t *BIRInArray; } BIR; BioAPI_FMR FMRAchieved; } BioAPI_CANDIDATE; |
|---|
7.18 Тип BioAPI_CATEGORY
Данное битовое поле описывает категорию ПБФ или модуля БиоАПИ. ПБФ или модуль БиоАПИ должен соответствовать только одной категории.
Старший значимый бит зарезервирован и не указывает категорию ПБФ или модуля БиоАПИ.
7.19 Тип BioAPI_DATA
7.19.1 Структура BioAPI_DATA используется для связывания длины (в байтах) с адресом произвольного блока непрерывной памяти.
| typedef struct bioapi_data { uint32_t Length; /* in bytes */ void *Data; } BioAPI_DATA; |
|---|
7.19.2 Определения
Length — длина буфера данных в байтах.
Data — указатель на начало буфера данных произвольной длины.
7.20 Тип BioAPI_DATE
Данный тип определяет дату создания или срок действия ЗБИ.
Условие BioAPI_NO_DATA_AVAILABLE (данные недоступны) указывается установкой нулевого значения. Если информация о дате, используемая в поле год — день — время (ГДВ) в заголовке ЗБИ, недоступна, то должно быть использовано значение NO_DATE_AVAILABLE.
Примечание 1 — 2000-й год представлен значением 2000.
Примечание 2 — При использовании ГДВ в качестве ExpirationDate в заголовке ЗБИ соответствует части «срок действия» параметра «CBEFF_BDB_validity_period» по ИСО/МЭК 19785-1.
Примечание 3 — Форматы даты соответствуют установленным в ИСО 8601 [2].
7.21 Тип BioAPI_DB_ACCESS_TYPE
Данное битовое поле описывает необходимый уровень доступа биометрического приложения к управляемой ПБУ базе данных ЗБИ. ПБУ может использовать эту маску, чтобы определить, какую блокировку базы данных ЗБИ он должен обеспечить.
| typedef uint32_t BioAPI_DB_ACCESS_TYPE; | |
| #define BioAPI_DB_ACCESS_READ | (0x00000001) |
| #define BioAPI_DB_ACCESS_WRITE | (0x00000002) |
7.22 Тип BioAPI_DB_MARKER_HANDLE
Данный тип представляет собой дескриптор к маркеру базы данных ЗБИ.
Маркер является внутренней структурой данных, управляемой ПБУ, которая динамически указывает на запись в открытой базе данных ЗБИ, управляемой ПБУ. Дескриптор маркера создается и возвращается биометрическому приложению функциями BioAPI_DbOpen и BioAPI_DbGetBIR. Маркер содержит дескриптор открытой базы данных и позицию записи в этой базе. Все маркеры (и их дескрипторы) к открытой базе данных ЗБИ, хранимые биометрическим приложением, становятся недоступными при закрытии биометрическим приложением базы данных.
typedef uint32_t BioAPI_DB_MARKER_HANDLE;
7.23 Тип BioAPI_DB_HANDLE
Данный тип представляет собой дескриптор к открытой базе данных ЗБИ, первоначально передаваемый ПБУ биометрическому приложению, а затем используемый данным приложением для обращения к базе данных через ПБУ.
| typedef int32_t BioAPI_DB_HANDLE; | |
| #define BioAPI_DB_INVALID_HANDLE | (-1) |
| #define BioAPI_DB_DEFAULT_HANDLE | (0) |
| #define BioAPI_DB_DEFAULT_UUID_PTR | (NULL) |
7.24 Тип BioAPI_DBBIR_ID
Данный тип определяет структуру, содержащую дескриптор базы данных ЗБИ, управляемой ПБУ и УУИД ЗБИ в данной базе данных.
| typedef struct bioapi_dbbir_id { BioAPI_DB_HANDLE DbHandle; BioAPI_UUID KeyValue; } BioAPI_DBBIR_ID; |
|---|
Примечание - Данный тип используется как элемент параметра BioAPI_INPUT_BIR.
7.25 Тип BioAPI_DTG
Данный тип определяет дату и время создания ЗБИ.
| typedef struct bioapi_DTG { BioAPI_DATE Date; BioAPI_TIME Time; } BioAPI_DTG; |
|---|
Примечание - ГДВ БиоАПИ в заголовке ЗБИ соответствует CBEFF_creation_date по ИСО/МЭК 19785-1.
7.26 Тип BioAPI_EVENT
Данный перечислимый тип определяет виды событий, которые могут быть вызваны ПБУ, ПБФ или модулем БиоАПИ. Биометрическое приложение может определять функции обратного вызова обработчика событий типа BioAPI_EventHandler для получения и управления данными событиями. Функции обратного вызова регистрируются функцией BioAPI_BSPLoad. Например события, включающие в себя добавление (подключение) или удаление биометрического датчика. События являются асинхронными.
События BioAPI_NOTIFY_SOURCE_PRESENT и BioAPI_NOTIFY_SOURCE_REMOVED формируются устройством (модулем датчиков), которое способно определить доступен ли пользователь для предоставления биометрического образца (например, находится ли палец на сканере). BioAPI_NOTIFY_SOURCE_PRESENT показывает, что образец доступен, в то время как BioAPI_NOTIFY_SOURCE_REMOVED показывает, что образец более недоступен. Не требуется, чтобы данные события появлялись парами; несколько событий BioAPI_NOTIFY_SOURCE_PRESENT могут появляться последовательно.
7.27 Тип BioAPI_EVENT_MASK
Данный тип определяет маску с позициями битов для каждого типа событий. Маска используется для разрешения и запрещения выдачи уведомлений о событиях и для указания, какие события поддерживаются ПБУ.
Примечание - Иногда невозможно определить в маске событие подключения, возникающее в прикрепленной сессии ПБУ, из-за того, что событие может появиться после вызова функции BioAPI_BSPLoad и перед тем как может быть обработан любой вызов BioAPI_EnableEvents. Данная ситуация возникает из-за того, что для вызова функции BioAPI_EnableEvents требуется дескриптор, который возвращается функцией BioAPI_BSPAttach, а вызов функции BioAPI_BSPAttach должен следовать за вызовом функции BioAPI_BSPLoad. Событие подключения (INSERT) возникнет в ПБУ при вызове функции BioAPI_BSPLoad в случае, если модуль БиоАПИ уже «подключен», и это событие передастся приложению раньше, чем оно сможет вызвать функцию BioAPI_EnableEvents.
7.28 Тип BioAPI_EventHandler
7.28.1 Данный тип представляет собой интерфейс обработчика событий, который должен поддерживать приложение, если необходимо получать асинхронные уведомления о событиях, таких как наличие биометрического образца или ошибка, обнаруженная ПБУ. Процесс обработки события регистрируется в инфраструктуре БиоАПИ в ходе выполнения функции BioAPI_BSPLoad. Данный обработчик события предназначен для всех общих событий, возникающих в загруженном ПБУ, во всех присоединенных сессиях. Уведомления об общих событиях обрабатываются через инфраструктуру БиоАПИ.
Функция обработки событий и любые функции, запрашивающие данную функцию (непосредственно или косвенно), не должны приводить к вызову функций БиоАПИ. Подобные циклические вызовы могут привести к их взаимной блокировке во многих ситуациях, поэтому обработчик события должен быть реализован без использования сервисов БиоАПИ (но функции получения списков могут использоваться в любое время).
BioAPI_EventHandler может быть вызван несколько раз в ответ на единственное событие, возникшее в присоединенном ПБУ. Обработчик события и вызывающее приложение должны прослеживать получение уведомлений о событии и игнорировать дублирующие уведомления. Уведомление о событии представляет собой следующую информацию:
| typedef BioAPI_RETURN (BioAPI *BioAPI_EventHandler) (const BioAPI_UUID BSPUuid, BioAPI_UNIT_ID UnitID, void AppNotifyCallbackCtx, const BioAPI_UNIT_SCHEMA *UnitSchema, BioAPI_EVENT EventType); |
|---|
7.28.2 Определения
BSPUuid — УУИД ПБУ, инициирующий событие.
UnitID — ИД модуля БиоАПИ, связанного с событием.
AppNotifyCallbackCtx — общий указатель на контекстную информацию, которая предоставляется при вызове функции BioAPI_BSPLoad, устанавливающей обработчик событий.
UnitSchema — указатель на схему модуля БиоАПИ, связанного с данным событием.
EventType — тип произошедшего события BioAPI_EVENT.
Если параметр EventType является BioAPI_NOTIFY_INSERT, то должна быть предоставлена схема модуля (параметр UnitSchema должен указывать на переменную типа BioAPI_UNIT_SCHEMA). В других случаях UnitSchema должен быть пустым.
Когда приложение получает вызов к обработчику событий, который хранит схему модуля, приложение не должно вызывать BioAPI_Free для освобождения блока памяти, содержащего схему модуля или блока памяти, указывающего на нее любым своим элементом.
7.29 Тип BioAPI_FMR
32-разрядное целочисленное значение (N), которое указывает на вероятность ошибки ложного совпадения, равную N/(231 — 1). Чем больше данное значение, тем больше вероятность ошибки ложного совпадения. Отрицательные значения используются в особых случаях. В настоящее время определено единственное отрицательное значение — минус 1.
| typedef int32_t BioAPI_FMR; | |
| #define BioAPI_NOT_SET | (-1) |
Примечание — ОЛС используется в БиоАПИ в качестве средства для установки порогов и возврата оценок совпадения (см. приложение C, раздел C.4).
7.30 Тип BioAPI_FRAMEWORK_SCHEMA
7.30.1 Данный тип представляет собой схему структуры компонента инфраструктуры БиоАПИ для занесения компонентов БиоАПИ в реестр.
7.30.2 Описание
FrameworkUuid — УУИД компонента инфраструктуры.
FwDescription — строка с нулевым символом на конце, содержащая текстовое описание инфраструктуры.
Path — указатель на строку с нулевым символом на конце, содержащую путь и имя файла с исполняемым кодом инфраструктуры. Путь к файлу может быть записан в виде адреса страницы (URL). Данная строка должна состоять из символов по ИСО/МЭК 10646 кодировки UTF-8 (ИСО/МЭК 10646, приложение D).
Примечание - Если в вызове функции используется BioAPI_BFP_SCHEMA, принимающий компонент выделяет память для элемента схемы Path, а вызывающий компонент освобождает память.
SpecVersion — номер редакции и номер поправки или изменений редакции стандарта, в соответствии с которой был разработан ПБФ.
ProductVersion — строка версии программного обеспечения инфраструктуры.
Vendor — строка с нулевым символом на конце, содержащая название изготовителя инфраструктуры.
FwPropertyID — УУИД формата следующих свойств инфраструктуры.
FwProperty — адрес и длина буфера памяти, содержащего свойства инфраструктуры. Формат и содержание свойств инфраструктуры могут быть описаны изготовителем или указаны в стандарте.
7.30.3 Определение схемы структуры приведено в 10.1.1.
7.31 Тип BioAPI_GUI_BITMAP
7.31.1 Данная структура предоставляет собой графическое изображение для его отображения приложением.
7.31.2 Определения
Bitmap — множество 8-битовых полутоновых точек (где «00» — черный и «FF» — белый), в котором данные считываются слева направо и сверху вниз следующим образом (таблица 1).
Формат битовой карты графического интерфейса пользователя
Примечание — Данная структура используется вместе с опцией графического интерфейса пользователя, управляемой приложением. Описание BioAPI_GUI_STATE_CALLBACK и BioAPI_GUI_STREAMING_CALLBACK приведено в 7.36 и 7.37.
7.32 Тип BioAPI_GUI_MESSAGE
Данная структура предоставляет сообщение для его отображения приложением.
typedef uint32_t BioAPI_GUI_MESSAGE;
Примечание — Данная структура используется вместе с опцией графического интерфейса пользователя, управляемой приложением. Описание BioAPI_GUI_STATE_CALLBACK приведено в 7.36.
7.33 Тип BioAPI_GUI_PROGRESS
Данный тип представляет собой значение, указывающее приложению процент выполнения (окончания) осуществляемого ПБУ действия, предназначенное для отображения.
typedef uint8_t BioAPI_GUI_PROGRESS;
Примечание — Данная структура используется вместе с опцией графического интерфейса пользователя, управляемой приложением. Описание BioAPI_GUI_STATE_CALLBACK приведено в 7.36.
7.34 Тип BioAPI_GUI_RESPONSE
Данный тип возвращает значение от биометрического приложения в процессе выполнения обратного вызова.
Примечание — Данная структура используется вместе с опцией графического интерфейса пользователя, управляемой приложением. Описание BioAPI_GUI_STATE_CALLBACK приведено в 7.36.
7.35 Тип BioAPI_GUI_STATE
Данный тип представляет собой битовое поле, указывающее состояние ГИП, а также то, какие другие значения параметров представлены в структуре BioAPI_GUI_STATE_CALLBACK (данную информацию ПБУ предоставляет приложению с помощью BioAPI_GUI_STATE_CALLBACK).
Примечание — Данная структура используется вместе с опцией графического интерфейса пользователя, управляемой приложением. Описание BioAPI_GUI_STATE_CALLBACK приведено в 7.36.
7.36 Тип BioAPI_GUI_STATE_CALLBACK
7.36.1 Данный тип представляет собой указатель на функцию обратного вызова, которую предоставляет приложение для того, чтобы дать возможность ПБУ передавать через инфраструктуру приложению информацию о состоянии графического интерфейса пользователя (ГИП) и получать ответы.
7.36.2 Функция
Возврат значения, отличающегося от BioAPI_OK (например, BioAPI_Enroll), приводит к немедленному возврату вызванной функции к вызывающему коду с передачей ему данного значения в качестве кода ошибки.
7.36.3 Параметры
GuiStateCallbackCtx (входной) — указатель на контекстную информацию, предоставленный инициатором запроса и возвращаемый его инициатору.
GuiState (входной) — индикация текущего состояния ПБУ по отношению к ГИП, а также индикация того, какие другие параметры являются доступными.
Response (выходной) — указатель на ответ приложения поставщику биометрической услуги при возврате от обратного вызова.
Message (входной/необязательный) — номер сообщения, подлежащего отображению пользователю. Номера и тексты сообщений не стандартизированы и зависят от ПБУ. GuiState указывает наличие параметра Message; если сообщения не могут быть переданы, параметр имеет нулевое значение.
Progress (входной/необязательный) — значение, которое указывает степень выполнения (в процентах) операции по созданию образца или ЗБИ. Значение может использоваться для отображения индикатора выполнения. Не все ПБУ поддерживают индикацию выполнения. GuiState указывает наличие значения параметра Progress в вызове; если степень выполнения не передается, параметр имеет нулевое значение.
SampleBuffer (входной/необязательный) — текущий буфер образца для приложения, подлежащий отображению. GuiState указывает наличие параметра SampleBuffer; если он не передается, параметр имеет нулевое значение.
Примечание — Описание интерфейса пользователя приведено в приложении C, раздел C.7.
7.37 Тип BioAPI_GUI_STREAMING_CALLBACK
7.37.1 Данный тип представляет собой указатель на функцию обратного вызова, которую предоставляет приложение для того, чтобы дать возможность ПБУ передавать поток данных для отображения в виде последовательности битовых изображений через инфраструктуру приложению.
7.37.2 Функция
| typedef BioAPI_RETURN (BioAPI *BioAPI_GUI_STREAMING_CALLBACK) (void *GuiStreamingCallbackCtx, const BioAPI_GUI_BITMAP *Bitmap); |
|---|
Возврат значения, отличающегося от BioAPI_OK (например, BioAPI_Enroll), приведет к немедленному возврату вызванной функции к вызывающему коду с передачей ему данного значения в качестве кода ошибки.
7.37.3 Параметры
GuiStreamingCallbackCtx (входной) — указатель на контекстную информацию, предоставленный инициатором запроса и возвращаемый инициатору.
Bitmap (входной) — указатель на битовое изображение, которое должно быть отображено.
Примечание — Описание интерфейса пользователя приведено в приложении C, раздел C.7.
7.38 Тип BioAPI_HANDLE
Данный тип представляет собой уникальный идентификатор, возвращаемый в ответ на вызов функции BioAPI_BSPAttach, который идентифицирует присоединенную сессию ПБУ БиоАПИ.
typedef uint32_t BioAPI_HANDLE;
7.39 Тип BioAPI_IDENTIFY_POPULATION
Структура, используемая для идентификации набора ЗБИ, используется в качестве входного параметра функции BioAPI_Identify или BioAPI_IdentifyMatch.
| typedef struct bioapi_identify_population { BioAPI_IDENTIFY_POPULATION_TYPE Type; union { BioAPI_DB_HANDLE *BIRDataBase; BioAPI_BIR_ARRAY_POPULATION *BIRArray; } BIRs; } BioAPI_IDENTIFY_POPULATION; |
|---|
Если BioAPI_PRESET_ARRAY_TYPE определен в параметре Type, то параметр BIRArray должен быть выбран и установлен NULL.
7.40 Тип BioAPI_IDENTIFY_POPULATION_TYPE
Данная структура определяет метод передачи ЗБИ функции BioAPI_Identify или BioAPI_IdentifyMatch в виде массива или с помощью указателя на базу данных.
| typedef uint8_t BioAPI_IDENTIFY_POPULATION_TYPE; | |
| #define BioAPI_DB_TYPE | (1) |
| #define BioAPI_ARRAY_TYPE | (2) |
| #define BioAPI_PRESET_ARRAY_TYPE | (3) |
7.41 Тип BioAPI_INDICATOR_STATUS
Данная структура используется биометрическим приложением для получения и установки индикаторов устройств (модулей БиоАПИ), поддерживаемых ПБУ. Конкретная физическая форма этих индикаторов (и их наличие) зависит от исполнения.
7.42 Тип BioAPI_INPUT_BIR
Данная структура предназначена для ввода ЗБИ БиоАПИ в ПИП, который может быть выполнен тремя способами путем передачи:
b) ключа к ЗБИ в базе данных, управляемой ПБУ. Если DbHandle имеет нулевое значение, используется база данных, выбранная ПБУ. (Значение DbHandle возвращается, когда база данных ЗБИ открыта);
| typedef struct bioapi_input_bir { BioAPI_INPUT_BIR_FORM Form; union { BioAPI_DBBIR_ID *BIRinDb; BioAPI_BIR_HANDLE *BIRinBSP; BioAPI_BIR *BIR; } InputBIR; } BioAPI_INPUT_BIR; |
|---|
7.43 Тип BioAPI_INPUT_BIR_FORM
Данный тип представляет собой значение, указывающее форму или метод, с помощью которых передается ЗБИ.
| typedef uint8_t BioAPI_INPUT_BIR_FORM; | |
| #define BioAPI_DATABASE_ID_INPUT | (1) |
| #define BioAPI_BIR_HANDLE_INPUT | (2) |
| #define BioAPI_FULLBIR_INPUT | (3) |
Примечание - Данный тип используется как элемент BioAPI_INPUT_BIR.
7.44 Тип BioAPI_INSTALL_ACTION
Данный тип определяет действие, которое будет совершено во время операций установки ПБУ.
| typedef uint32_t BioAPI_INSTALL_ACTION; | |
| #define BioAPI_INSTALL_ACTION_INSTALL | (1) |
| #define BioAPI_INSTALL_ACTION_REFRESH | (2) |
| #define BioAPI_INSTALL_ACTION_UNINSTALL | (3) |
7.45 Тип BioAPI_INSTALL_ERROR
Данный тип содержит дополнительную информацию об ошибке, которая произошла во время операции установки.
| typedef struct install_error{ BioAPI_RETURN ErrorCode; BioAPI_STRING ErrorString; } BioAPI_INSTALL_ERROR; |
|---|
7.46 Тип BioAPI_OPERATIONS_MASK
Данный тип представляет собой битовую маску, указывающую, какие операции поддерживаются ПБУ.
Примечание - Данный тип используется как элемент BioAPI_BSP_SCHEMA.
7.47 Тип BioAPI_OPTIONS_MASK
Данный тип представляет собой битовую маску, указывающую, какие опции поддерживаются ПБУ. Необязательные функции определяются в BioAPI_OPERATIONS_MASK и в этом разделе не приводятся.
typedef uint32_t BioAPI_OPTIONS_MASK;
#define BioAPI_RAW (0x00000001)
Если установлено, то ПБУ поддерживает возврат исходных/контрольных данных.
#define BioAPI_QUALITY_RAW (0x00000002)
Если установлено, то ПБУ поддерживает возврат значения качества (в заголовке ЗБИ) для исходных биометрических данных.
#define BioAPI_QUALITY_INTERMEDIATE (0x00000004)
Если установлено, то ПБУ поддерживает возврат значения качества (в заголовке ЗБИ) для промежуточных биометрических данных.
#define BioAPI_QUALITY_PROCESSED (0x00000008)
Если установлено, то ПБУ поддерживает возврат значения качества (в заголовке ЗБИ) для обработанных биометрических данных.
#define BioAPI_APP_GUI (0x00000010)
Если установлено, то ПБУ поддерживает управление ГИП приложением.
#define BioAPI_STREAMINGDATA (0x00000020)
Если установлено, то ПБУ предоставляет потоковые данные ГИП.
#define BioAPI_SOURCEPRESENT (0x00000040)
Если установлено, то ПБУ поддерживает обнаружение присутствия биометрической характеристики в биометрическом датчике.
#define BioAPI_PAYLOAD (0x00000080)
Если установлено, то ПБУ поддерживает перенос полезной информации (сохраняет полезную информацию при выполнении функций BioAPI_Enroll или BioAPI_CreateTemplate и возвращает ее при успешном выполнении функций BioAPI_Verify или BioAPI_VerifyMatch).
#define BioAPI_BIR_SIGN (0x00000100)
Если установлено, то ПБУ возвращает ЗБИ с подписью.
#define BioAPI_BIR_ENCRYPT (0x00000200)
Если установлено, то ПБУ возвращает зашифрованные ЗБИ (часть ББД).
#define BioAPI_TEMPLATEUPDATE (0x00000400)
Если установлено, то ПБУ обновляет и предоставляет контрольный шаблон как часть операций регистрации или создания шаблона.
#define BioAPI_ADAPTATION (0x00000800)
Если установлено, то ПБУ поддерживает адаптацию ЗБИ в возвращаемых параметрах операций BioAPI_Verify или BioAPI_VerifyMatch.
#define BioAPI_BINNING (0x00001000)
Если установлено, то ПБУ поддерживает категоризацию (в операциях BioAPI_Identify и BioAPI_IdentifyMatch).
#define BioAPI_SELFCONTAINEDDEVICE (0x00002000)
Если установлено, то ПБУ поддерживает автономное устройство.
#define BioAPI_MOC (0x0004000)
Если установлено, то ПБУ напрямую поддерживает сопоставление на смарт-карте.
#define BioAPI_SUBTYPE_TO_CAPTURE (0x00008000)
Если установлено, то ПБУ поддерживает спецификацию приложения с подтипом получения данных и будет действовать в соответствии с ней.
#define BioAPI_SENSORBFP (0x00010000)
Если установлено, то ПБУ поддерживает управление модулем датчика с помощью ПБФ.
#define BioAPI_ARCHIVEBFP (0x00020000)
Если установлено, то ПБУ поддерживает управление модулем архива с помощью ПБФ.
#define BioAPI_MATCHINGBFP (0x00040000)
Если установлено, то ПБУ поддерживает управление модулем алгоритмов сопоставления с помощью ПБФ.
#define BioAPI_PROCESSINGBFP (0x00080000)
Если установлено, то ПБУ поддерживает управление модулем алгоритмов обработки с помощью ПБФ.
#define BioAPI_COARSESCORES (0x00100000)
Если установлено, то ПБУ возвращает грубо квантованную оценку (см. приложение C, пункт C.4.6).
Примечание - Данный тип используется как элемент BioAPI_BSP_SCHEMA.
7.48 Тип BioAPI_POWER_MODE
Данный тип представляет собой перечисление, определяющее типы режимов питания, которые может использовать ПБУ и присоединенные к нему устройства (модули БиоАПИ).
7.49 Тип BioAPI_QUALITY
7.49.1 Данный тип представляет собой значение, указывающее относительное качество биометрических данных в ББД.
typedef int8_t BioAPI_QUALITY;
7.49.2 Результаты биометрического анализа зависят от качества биометрического образца. Так как принятого универсального определения качества не существует, БиоАПИ определяет следующую структуру для относительной количественной оценки эффекта влияния качества на использование ЗБИ (как предполагается средством реализации ПБУ). Оценки, выдаваемые ПБУ, основаны на назначении (BioAPI_BIR_PURPOSE), определенном приложением (например, BioAPI_PURPOSE_ENROLL, BioAPI_PURPOSE_VERIFY, BioAPI_PURPOSE_IDENTIFY и т.д.). Кроме того, результаты биометрического анализа зависят от используемых приложений, то есть некоторые приложения могут требовать более высокого качества образцов, в то время как другие приложения устанавливают более низкие требования.
7.49.3 Результаты измерения качества возвращаются как целые значения в диапазоне 0 — 100, за исключением следующих случаев:
Значение «минус 1»: BioAPI_QUALITY не был установлен ПБУ (для объяснения следует обратиться к документации разработчика ПБУ).
Значение «минус 2»: BioAPI_QUALITY не поддерживается ПБУ.
7.49.4 Обратную связь BioAPI_QUALITY и биометрического приложения используют с целью:
c) <*> Основная цель — ПБУ должен сообщить приложению, насколько подходит биометрическая выборка для назначения (BioAPI_PURPOSE), указанного приложением (как предполагается разработчиком ПБУ на основе использования сценария, предположенного разработчиком этого ПБУ).
<*> В оригинале ИСО/МЭК 19784-1 допущена ошибка. Нумерация перечислений начинается с пункта c).
d) Вторичная цель — предоставить приложению относительные результаты (например, текущий образец лучше или хуже предыдущего образца).
7.49.5 Значения показателя качества в диапазоне 0 — 100 имеют следующую общую интерпретацию:
Примечание - BioAPI_QUALITY соответствует «BDB_Quality» (качество ББД) в ЕСФОБД по ИСО/МЭК 19785-1.
7.50 Тип BioAPI_RETURN
7.50.1 Данный тип содержит данные, возвращаемые всеми функциями БиоАПИ. Допустимые значения включают в себя:
- BioAPI_OK;
- все ошибочные значения, определенные в настоящем стандарте;
- особые значения ошибок ПБУ, определенные и возвращенные ПБУ;
- все значения ошибок, определенные для компонентов более низких уровней;
- зависящие от модулей БиоАПИ значения ошибок, определенные и возвращенные ПБУ.
| typedef uint32_t BioAPI_RETURN; | |
| #define BioAPI_OK | (0) |
7.50.2 Определения
BioAPI_OK — указывает, что операция была выполнена успешно.
Любое другое значение — указывает, что операция не была выполнена успешно и идентифицирует обнаруженную ошибку, которая привела к аварийному завершению (перечень стандартизированных кодов ошибок указан разделе 11).
7.51 Тип BioAPI_STRING
7.51.1 Данный тип используется структурами данных БиоАПИ для представления символьной строки в буфере фиксированной длины. Символьная строка должна завершаться нулевым символом.
typedef uint8_t BioAPI_STRING [269];
7.51.2 Данная строка должна состоять из символов, описанных в ИСО/МЭК 10646, кодировки UTF-8 по ИСО/МЭК 10646, приложение D.
7.52 Тип BioAPI_TIME
Данный тип определяет время создания ЗБИ.
Условие NO VALUE AVAILABLE (данные недоступны) должно быть указано установкой всех полей на «99» (десятичные). При записи данных года, месяца, дня в заголовке ЗБИ и недоступной информации о времени должны быть использованы значения BioAPI_NO_HOUR_AVAILABLE, BioAPI_NO_MINUTE_AVAILABLE и BioAPI_NO_SECOND_AVAILABLE.
Примечание — Формат времени соответствует установленному в ISO 8601 [2].
7.53 Тип BioAPI_UNIT_ID
Данный тип представляет собой ИД модуля БиоАПИ — 32-разрядное целое число, присвоенное модулю БиоАПИ от ПБУ, который управляет (непосредственно или косвенно) модулем БиоАПИ.
| typedef uint32_t BioAPI_UNIT_ID; | |
| #define BioAPI_DONT_CARE | (0x00000000) |
| #define BioAPI_DONT_INCLUDE | (0xFFFFFFFF) |
7.54 Тип BioAPI_UNIT_LIST_ELEMENT
7.54.1 Данный тип указывает модуль БиоАПИ по категории ИД. Список данных элементов используется для установления присоединенной сессии.
| typedef struct bioapi_unit_list_element { BioAPI_CATEGORY UnitCategory; BioAPI_UNIT_ID UnitId; } BioAPI_UNIT_LIST_ELEMENT; |
|---|
7.54.2 Определения
UnitCategory — определяет категорию модуля БиоАПИ.
UnitId — ИД модуля БиоАПИ, используемый в данной присоединенной сессии, создаваемый ПБУ и являющийся уникальным.
7.55 Тип BioAPI_UNIT_SCHEMA
7.55.1 Данный тип представляет собой схему модуля БиоАПИ и показывает специфические характеристики модуля БиоАПИ.
Примечание - Схема модуля БиоАПИ используется как параметр функции BioAPI_QueryUnits и BioAPI_EventHandler но не хранится в реестре компонентов.
7.55.2 Определения
BspUuid — УУИД ПБУ, поддерживающего этот модуль БиоАПИ.
UnitManagerUuid — УУИД программного компонента (либо ПБУ, либо ПБФ), непосредственно управляющего модулем БиоАПИ.
UnitId — ИД модуля БиоАПИ в данной присоединенной сессии, создаваемый ПБУ и являющийся уникальным.
UnitCategory — определяет категорию модуля БиоАПИ.
UnitProperties — УУИД, указывающий набор свойств модуля БиоАПИ. Указанный набор может быть определен изготовителем или соответствовать конкретному стандарту.
VendorInformation — содержит собственную информацию изготовителя.
SupportedEvents — маска, указывающая, какие типы событий поддерживаются аппаратными средствами.
UnitPropertyID — УУИД формата следующей структуры свойств модуля.
UnitProperty — адрес и длина буфера памяти, содержащего свойства модуля, описывающие модуль БиоАПИ. Формат и содержание свойств модуля могут быть либо описаны изготовителем, либо указаны в связанном стандарте.
HardwareVersion — строка, оканчивающаяся пустым символом, содержащая версию аппаратного обеспечения; может быть пустой, если параметр недоступен.
FirmwareVersion — строка, оканчивающаяся пустым символом, содержащая версию встроенного программного обеспечения; может быть пустой, если параметр недоступен.
SoftwareVersion — строка с нулевым символом на конце, содержащая версию программного обеспечения; может быть пустой, если параметр недоступен.
HardwareSerialNumber — строка с нулевым символом на конце, содержащая уникальный серийный номер, определяющий изготовителя компонентов аппаратного обеспечения; может быть пустой, если параметр недоступен.
AuthenticatedHardware — Булево значение, указывающее, был ли аутентифицирован компонент аппаратного обеспечения.
MaxBSPDbSize — максимальный размер поддерживаемой модулем БиоАПИ базы данных; если равен нулю — база данных не существует.
MaxIdentify — максимальная совокупность идентификации, поддерживаемая модулем БиоАПИ; безразмерная — «FFFFFFFF».
7.56 Тип BioAPI_UUID
Данный тип представляет собой универсальный уникальный идентификатор, используемый для идентификации и обращения к компонентам (ПБУ, ПБФ, модулям и инфраструктуре БиоАПИ), идентификации базы данных ЗБИ, а также и в качестве индекса базы данных ЗБИ, управляемой ПБУ.
typedef uint8_t BioAPI_UUID [16];
Примечание 1 — УУИД определены в ИСО/МЭК 9834-8.
Примечание 2 — УУИД БиоАПИ заголовка ЗБИ соответствует параметру «CBEFF_BDB_index» по ИСО/МЭК 19785-1.
7.57 Тип BioAPI_VERSION
7.57.1 Данный тип используется для представления версии спецификации БиоАПИ или определения того, с какими компонентами или данными совместимы ПБФ. Данное значение обычно используется в заголовке ЗБИ и схемах реестра компонентов.
Данная версия БиоАПИ имеет целое значение (десятичное) 32 или (шестнадцатеричное) 20, соответствующее основному значению 2 и дополнительному — 0.
typedef uint8_t BioAPI_VERSION;
Примечание 1 — Данный тип не используется для версии продукта, который обычно представлен в виде строки.
Примечание 2 — Версия БиоАПИ используется в заголовке ЗБИ и соответствует параметру «CBEFF_patron_header_version» ИСО/МЭК 19785-1.
<*> В оригинале ИСО/МЭК 19784-1 допущена ошибка, должен быть номер 7.57.2.
Версия БиоАПИ объединяет номер редакции и номер поправки или изменения данной редакции: первая шестнадцатеричная цифра определяет номер редакции, вторая — номер поправки или изменения данной редакции:
m — номер поправки или изменения данной редакции.
8 Функции БиоАПИ
8.1 Функции управления компонентом
Функции, указанные в этом разделе, обрабатываются инфраструктурой БиоАПИ. Некоторые из них обрабатываются внутренне, а другие передаются ПБУ через ИПУ.
8.1.1 Функция BioAPI_Init
| BioAPI_RETURN BioAPI BioAPI_Init (BioAPI_VERSION Version); |
|---|
8.1.1.1 Описание
Данная функция инициализирует инфраструктуру БиоАПИ и проверяет, совместима ли версия инфраструктуры БиоАПИ, ожидаемой приложением, с версией инфраструктуры БиоАПИ в системе. Данная функция должна быть вызвана приложением, по крайней мере, один раз.
Любой вызов функции BioAPI_Init, когда предыдущий вызов функции BioAPI_Init не был закончен связанным вызовом функции BioAPI_Terminate, будет обработан следующим образом: инфраструктура БиоАПИ выдаст ответ BioAPI_OK (только в том случае, если номер версии инфраструктуры совместим с номером версии инфраструктуры, которая была предложена предыдущим вызовом функции BioAPI_Init) или BioAPIERR_INCOMPATIBLE_VERSION, но не будет переинициализирована. Счетчик числа удачных вызовов BioAPI_Init будет сохраняться инфраструктурой и не завершится до тех пор, пока число соответствующих вызовов BioAPI_Terminate не достигнет определенного значения.
Данная функция обрабатывается в инфраструктуре БиоАПИ и не передается ПБУ.
8.1.1.2 Параметры
Version (входной) — номер редакции и номер поправки спецификации БиоАПИ, с которой совместимо биометрическое приложение.
8.1.1.3 Возвращаемое значение
Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки в противном случае. Значение BioAPI_OK указывает на отсутствие ошибки и успешное выполнение функции. Все остальные значения описывают тип ошибки.
8.1.1.4 Ошибки
BioAPIERR_INCOMPATIBLE_VERSION
Данные об обработке ошибок БиоАПИ приведены в разделе 11.
8.1.2 Функция BioAPI_Terminate
BioAPI_RETURN BioAPI BioAPI_Terminate (void);
8.1.2.1 Описание
Данная функция завершает использование инфраструктуры БиоАПИ. Инфраструктура может произвести очистку внутреннего состояния, связанного с запрашивающим приложением.
Данная функция может быть вызвана только в том случае, если функция BioAPI_Init, для которой еще не была вызвана рассматриваемая функция, была ранее удачно вызвана, по крайней мере, один раз. Функция BioAPI_Terminate не должна вызываться до успешного выполнения функции BioAPI_Init.
Данная функция не должна вызываться приложением, если был сделан вызов функции BioAPI_BSPLoad, для которого не был выполнен соответствующий вызов функции BioAPI_BSPUnload (для данного УУИД ПБУ). Если данная функция должна быть вызвана во время существования загруженных ПБУ, то для каждого вызова функций BioAPI_BSPLoad, для которого не был выполнен вызов функции BioAPI_BSPUnload, инфраструктура БиоАПИ должна неявно выполнить действия, соответствующие отсутствующему вызову BioAPI_BSPUnload (как если бы соответствующая функция была вызвана), а затем выполнить действия, соответствующие BioAPI_Terminate (т.е. инфраструктура должна выгрузить все ПБУ до завершения использования инфраструктуры).
Данная функция обрабатывается в инфраструктуре БиоАПИ и не передается ПБУ, за исключением тех случаев, когда подразумевается выполнение функции BioAPI_BSPUnload, как указано выше.
8.1.2.2 Параметры
8.1.2.3 Возвращаемое значение
Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на отсутствие ошибки. Все остальные значения описывают тип ошибки.
Примечание - Обычно ожидается успешное выполнение функции BioAPI_Terminate; однако при возникновении непредвиденных условий приложение может не предпринимать дальнейшие действия.
8.1.2.4 Ошибки
Данные об обработке ошибок БиоАПИ приведены в разделе 11.
8.1.3 Функция BioAPI_GetFrameworkInfo
| BioAPI_RETURN BioAPI BioAPI_GetFrameworkInfo (BioAPI_FRAMEWORK_SCHEMA *FrameworkSchema); |
|---|
8.1.3.1 Описание
Данная функция возвращает информацию об инфраструктуре БиоАПИ. Так как на компьютере могут быть установлены несколько инфраструктур, приложению требуется информация о них, чтобы выбрать одну для использования.
8.1.3.2 Параметры
FwUuid (выходной) — УУИД инфраструктуры, который должен быть одинаковым для всех экземпляров данной инфраструктуры.
FrameworkSchema (выходной) — указатель на область памяти, в которую будет возвращена информация о схеме.
8.1.3.3 Возвращаемое значение
Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на отсутствие ошибки. Все остальные значения описывают тип ошибки.
8.1.3.4 Ошибки
Данные об обработке ошибок БиоАПИ приведены в разделе 11.
8.1.4 Функция BioAPI_EnumBSPs
| BioAPI_RETURN BioAPI BioAPI_EnumBSPs (BioAPI_BSP_SCHEMA **BSPSchemaArray, uint32_t *NumberOfElements); |
|---|
8.1.4.1 Описание
Данная функция предоставляет информацию о всех ПБУ, установленных в реестре компонентов. Функция выполняет действия в следующем порядке:
a) выделяет блок памяти, достаточный для хранения массива элементов типа BioAPI_BSP_SCHEMA с числом элементов, равным числу установленных ПБУ;
b) заполняет массив схемами установленных ПБУ;
c) возвращает адрес массива в параметре BSPSchemaArray и число элементов массива в параметре NumberOfElements.
Данная функция может быть вызвана только в том случае, если был сделан, по крайней мере, один вызов функции BioAPI_Init, для которого еще не был сделан соответствующий вызов функции BioAPI_Terminate.
Данная функция обрабатывается в инфраструктуре БиоАПИ и не передается ни одному ПБУ.
Блок памяти, содержащий массив, должен быть освобожден приложением путем вызова функции BioAPI_Free (8.7.2), если приложение в дальнейшем не будет его использовать. Те элементы массива, на которые указывает блок памяти путем параметра Path, также должны быть освобождены приложением с помощью вызова функции BioAPI_Free, если приложение больше не будет использовать элементы массива.
8.1.4.2 Параметры
BspSchemaArray (выходной) — указатель на адрес массива элементов типа BioAPI_BSP_SCHEMA (распределенного инфраструктурой), содержащего информацию о схеме ПБУ.
NumElementsReturned (выходной) — указатель на число элементов массива (равно числу схем ПБУ в реестре компонентов).
8.1.4.3 Возвращаемое значение
Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на отсутствие ошибки. Все остальные значения описывают тип ошибки.
8.1.4.4 Ошибки
Данные об обработке ошибок БиоАПИ приведены в разделе 11.
8.1.5 Функция BioAPI_BSPLoad
| BioAPI_RETURN BioAPI BioAPI_BSPLoad (const BioAPI_UUID BSPUuid, BioAPI_EventHandler AppNotifyCallback, void AppNotifyCallbackCtx); |
|---|
8.1.5.1 Описание
Данная функция инициализирует ПБУ с помощью функции BioSPI_BSPLoad (см. 9.3.1.1). Инициализация включает в себя регистрацию обработчика события приложения для указанного ПБУ и разрешение всех событий. Приложение может предоставить функцию обработчика событий, чтобы получать уведомления о событиях. Несколько приложений могут независимо и одновременно загружать один и тот же ПБУ, и каждое приложение может установить свой собственный обработчик событий. Все приложения должны получать уведомление о событии. Если приложение загружает несколько ПБУ, то могут использоваться одни и те же или разные обработчики события.
Приложение может установить столько обработчиков событий, сколько необходимо для данного ПБУ, путем многократного вызова функции BioAPI_BSPLoad для данного ПБУ. Обработчик событий идентифицируется по его адресу и содержанию.
Если в ПБУ возникает событие, то ПБУ может послать уведомление о событии инфраструктуре путем вызова обработчика событий инфраструктуры.
Когда инфраструктура получает уведомление о событии от ПБУ, она должна послать уведомление каждому обработчику событий, установленному каждым приложением, для которого данное уведомление о событии возможно для данного ПБУ. Поэтому отдельный обратный вызов уведомления о событии, сделанный из ПБУ к инфраструктуре, может привести к появлению нулевого значения или к обратным вызовам инфраструктуры к приложениям.
Когда инфраструктура получает уведомление о событии от ПБУ, она должна вызвать все обработчики событий, установленные каждым приложением для данного ПБУ. Если приложение установило несколько обработчиков событий, они должны быть вызваны по одному в любом порядке, выбранном инфраструктурой (такой вызов предпочтительнее одновременного вызова).
Уведомление о событии может появиться в любое время: во время вызовов БиоАПИ или в то время, когда вызовы БиоАПИ не выполняются. Разработчик приложения должен гарантировать, что обратные вызовы будут правильно и безопасно обрабатываться приложением независимо от того, когда приложение будет их получать.
Примечание - В этом случае необходимо использовать технологию синхронизированных потоков и порядка действий, сформированных кодом приложения на обработчик события.
Применяют «счетчик использований» установки обработчиков событий; они должны быть удалены путем вызова функции BioAPI_BSPUnload столько раз, сколько были установлены. Если ПБУ загружен путем вызова функции BioAPI_BSPLoad, он должен для каждого существующего модуля БиоАПИ немедленно вызвать событие «установка». Это событие укажет биометрическому приложению, что оно может продолжать работу и вызвать функцию BioAPI_BSPAttach. Если аппаратный компонент для определенных функциональных возможностей отсутствует, то событие «установка» не может быть инициировано до тех пор, пока аппаратный компонент не будет подключен.
Данная функция может быть вызвана только в том случае, если был выполнен, по крайней мере, один вызов функции BioAPI_Init, для которого не был выполнен соответствующий вызов функции BioAPI_Terminate. Функция BioAPI_BSPAttach может быть вызвана несколько раз после выполнения функции BioAPI_BSPLoad.
Функция BioAPI_BSPLoad не должна вызываться до тех пор, пока ПБУ не будет установлен с помощью функции BioAPI_Util_InstallBSP. Определение установки ПБУ может быть проведено вызовом функции BioAPI_EnumBSPs.
8.1.5.2 Параметры
BSPUuid (входной) — УУИД ПБУ, выбранного для загрузки.
AppNotifyCallback (входной/необязательный) — функция уведомления о событии, поставляемая вызывающим кодом. Определяет обратный вызов для уведомлений о событиях от загруженного (и позже присоединенного) ПБУ.
AppNotifyCallbackCtx (входной) — указатель на контекстную информацию. Когда выбранный поставщик услуги инициирует событие, данное значение передается как входной параметр обработчику события, указанному в AppNotifyCallback.
8.1.5.3 Возвращаемое значение
Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на отсутствие ошибки. Все остальные значения описывают тип ошибки.
8.1.5.4 Ошибки
Данные об обработке ошибок БиоАПИ приведены в разделе 11.
8.1.6 Функция BioAPI_BSPUnload
| BioAPI_RETURN BioAPI BioAPI_BSPUnload (const BioAPI_UUID BSPUuid, BioAPI_EventHandler AppNotifyCallback, void AppNotifyCallbackCtx); |
|---|
8.1.6.1 Описание
Данная функция выполняет отмену регистрации функции обратного вызова уведомлений о событиях вызывающего кода, указанного в BSPUuid. Функция BioAPI_BSPUnload аналогична вызову функции BioAPI_BSPLoad. Если все обратные вызовы, зарегистрированные БиоАПИ, удалены, то БиоАПИ выгружает (для этого биометрического приложения) ПБУ, загруженный путем вызова функции BioAPI_BSPLoad.
Для однозначного определения зарегистрированных обратных вызовов инфраструктура БиоАПИ использует три входных параметра: BSPUuid, AppNotifyCallback и AppNotifyCallbackCtx.
Данная функция может быть вызвана (для данного УУИД ПБУ) только в том случае, если был выполнен, по крайней мере, один вызов функции BioAPI_BSPLoad (для данного УУИД ПБУ), для которого не был выполнен соответствующий вызов данной функции.
Данную функцию не следует вызывать, если был выполнен вызов функции BioAPI_BSPAttach, для которого еще не был осуществлен вызов функции BioAPI_BSPDetach (для данного дескриптора ПБУ). Если данная функция должна быть вызвана, когда ПБУ все еще присоединен, то для каждого вызова функции BioAPI_BSPAttach, для которого не был выполнен вызов функции BioAPI_BSPDetach, инфраструктура БиоАПИ должна неявно выполнить действия, соответствующие отсутствующему вызову функции BioAPI_BSPDetach (как будто соответствующая функция была вызвана в это время), а затем выполнить действия, соответствующие вызову функции BioAPI_BSPUnload (т.е. инфраструктура должна отсоединить ПБУ до его выгрузки).
Это же происходит и в случае, когда действия, соответствующие отсутствующему вызову функции BioAPI_BSPUnload, неявно выполнены инфраструктурой во время вызова функции BioAPI_Terminate (см. 8.1.2).
8.1.6.2 Параметры
BSPUuid (входной) — УУИД БСП, выбранного для выгрузки.
AppNotifyCallback (входной/необязательный) — функция уведомления о событии, для которой будет выполнена отмена регистрации. Функция, которая была передана при вызове функции BioAPI_BSPLoad.
AppNotifyCallbackCtx (входной/необязательный) — контекст уведомления о событии, который был предоставлен в соответствующем вызове функции BioAPI_BSPLoad.
8.1.6.3 Возвращаемое значение
Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на отсутствие ошибки. Все остальные значения описывают тип ошибки.
8.1.6.4 Ошибки
Данные об обработке ошибок БиоАПИ приведены в разделе 11.
8.1.7 Функция BioAPI_BSPAttach
| BioAPI_RETURN BioAPI BioAPI_BSPAttach (const BioAPI_UUID *BSPUuid, BioAPI_VERSION Version, const BioAPI_UNIT_LIST_ELEMENT *UnitList, uint32_t NumUnits, BioAPI_HANDLE *NewBSPHandle); |
|---|
8.1.7.1 Описание
Данная функция выполняет присоединение ПБУ и проверяет совместимость ожидаемой приложением версии ПБУ и версии системы. Вызывающий код должен определить список, состоящий из нуля или более модулей БиоАПИ, которые должен использовать вызов ПБУ в создаваемой присоединенной сессии.
Данная функция может быть вызвана (для данного УУИД ПБУ) только в том случае, если был выполнен, по крайней мере, один вызов функции BioAPI_BSPLoad (для данного УУИД ПБУ), для которого не был выполнен соответствующий вызов функции BioAPI_BSPUnload. Функция BioAPI_BSPAttach может быть вызвана несколько раз при каждом вызове функции BioAPI_BSPLoad (перед вызовом функции BioAPI_BSPUnload) для одного и того же ПБУ, создавая несколько вызовов данного ПБУ.
8.1.7.2 Параметры
BSPUuid (входной) — указатель на структуру BioAPI_UUID, содержащую глобальный уникальный идентификатор (УУИД) для ПБУ.
Version (входной) — номера редакции и поправки данной спецификации БиоАПИ, которую приложение предлагает ПБУ для поддержки. ПБУ должен определить, совместимы ли его услуги с номером версии приложения.
UnitList (входной) — указатель на буфер, содержащий список структур BioAPI_UNIT_LIST_ELEMENT, указывающий ПБУ, какие модули БиоАПИ (поддерживаемые ПБУ) он должен поддерживать в данной прикрепленной сессии. Структуры содержат ИД и категорию каждого модуля БиоАПИ. Для каждой категории модулей БиоАПИ приложение может выбрать одну из следующих возможностей:
a) выбор специального модуля БиоАПИ: для определения особого модуля БиоАПИ для использования в данной прикрепленной сессии ИД и категория данного модуля БиоАПИ должна быть предоставлена этому элементу;
b) выбор любого модуля БиоАПИ: когда параметр UnitID установлен в BioAPI_DONT_CARE в специальном элементе, ПБУ выберет модуль БиоАПИ данной категории или возвратит ошибку, если он не поддерживает какой-либо модуль БиоАПИ данной категории. Если особая категория не включена в список, ПБУ также выберет для использования модуль БиоАПИ данной категории, если он ее поддерживает (однако ошибка не будет возвращена, если модуль БиоАПИ не поддерживает ее);
c) выбор отсутствия модуля БиоАПИ: когда параметр UnitID установлен в BioAPI_DONT_CARE, ПБУ не присоединит модуль БиоАПИ данной категории, даже если он ее поддерживает.
Примечание - Любой следующий вызов, требующий использования модуля БиоАПИ данной категории, закончится возвращением ошибки.
NumUnits (входной) — число элементов модулей БиоАПИ в списке, на который указывает указатель UnitList. Если этот параметр содержит нулевое значение, то ПБУ выберет модуль БиоАПИ любой категории, которыми ПБУ управляет напрямую или косвенно.
Примечание - При каждом вызове биометрическим приложением ПБУ может быть присоединен только один модуль БиоАПИ любой категории.
NewBSPHandle (выходной) — новый дескриптор, который может использоваться для взаимодействия с запрошенным ПБУ. Если выполнение функции заканчивается ошибкой, будет установлено значение BioAPIERR_FRAMEWORK_INVALID_BSP_HANDLE.
8.1.7.3 Возвращаемое значение
Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет детальное условие ошибки. Значение BioAPI_OK указывает на отсутствие ошибки. Все остальные значения описывают условия ошибки.
8.1.7.4 Ошибки
BioAPIERR_INCOMPATIBLE_VERSION
Данные об обработке ошибок БиоАПИ приведены в разделе 11.
8.1.8 Функция BioAPI_BSPDetach
BioAPI_RETURN BioAPI BioAPI_BSPDetach
8.1.8.1 Описание
Данная функция отсоединяет биометрическое приложение от вызова ПБУ.
При выполнении данной функции все распределенные ресурсы ПБУ, связанные с прикрепленной сессией ПБУ, должны быть освобождены или признаны недействительными. Это особенно важно для ЗБИ, дескрипторов ПБУ и дескрипторов базы данных. При выполнении данной функции все установленные функции обратного вызова будут недействительными.
Данная функция может быть вызвана только после вызова функции BioAPI_BSPAttach и должна вызываться не более одного раза для одного и того же дескриптора ПБУ, созданного вызовом функции BioAPI_BSPAttach.
8.1.8.2 Параметры
BSPHandle (входной) — дескриптор, идентифицирующий присоединенную сессию ПБУ, которая должна быть прекращена.
8.1.8.3 Возвращаемое значение
Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на отсутствие ошибки. Все остальные значения описывают тип ошибки.
8.1.8.4 Ошибки
| BioAPIERR_INVALID_BSP_HANDLE |
|---|
Данные об обработке ошибок БиоАПИ приведены в разделе 11.
8.1.9 Функция BioAPI_QueryUnits
| BioAPI_RETURN BioAPI BioAPI_QueryUnits (const BioAPI_UUID *BSPUuid, BioAPI_UNIT_SCHEMA **UnitSchemaArray, uint32_t *NumberOfElements); |
|---|
8.1.9.1 Описание
Данная функция предоставляет информацию обо всех модулях БиоАПИ, которые непосредственно или косвенно управляются ПБУ, идентифицированных предоставляемым УУИД ПБУ и присутствующих в системе. Функция выполняет действия в следующем порядке:
a) устанавливает число модулей БиоАПИ, которые будут управляться непосредственно или косвенно данным ПБУ;
b) выделяет блок памяти, достаточный для размещения массива элементов типа BioAPI_UNIT_SCHEMA с числом элементов, равным числу модулей БиоАПИ, определенному в перечислении a);
c) заполняет массив схемами всех модулей БиоАПИ, определенных в перечислении a);
d) возвращает адрес массива в параметре UnitSchemaArray и размер массива в параметре NumberOfElements.
Примечание - Когда инфраструктура вызывает функцию ПБУ BioSPI_QueryUnits, ПБУ выделяет память для данных, которые должны быть возвращены инфраструктуре. В некоторых реализациях архитектуры инфраструктура передает данные приложению в точности о том, как возвращено ПБУ, так как приложение интерпретирует адрес так же, как и ПБУ, и сможет получить доступ к данным, которые размещены по этому адресу. В других реализациях архитектуры инфраструктура должна переместить все данные, возвращенные ПБУ, во вновь выделенный блок памяти, доступный приложению, и вызвать функцию BioSPI_Free после копирования каждого блока памяти, но перед возвращением вызова BioAPI_QueryUnits. В первом случае, когда приложение вызывает функцию BioAPI_Free, инфраструктура делает соответствующий вызов BioSPI_Free. Во втором случае вызов BioAPI_Free обрабатывается самой инфраструктурой. Однако особенности данных реализаций инфраструктуры не видны приложению.
Блок памяти, содержащий массив, должен быть освобожден приложением путем вызова функции BioAPI_Free (см. 8.7.2), если он больше не нужен приложению. Блок памяти, на который ссылаются элементы UnitProperties в пределах каждого элемента массива, должен также быть освобожден приложением путем вызова функции BioAPI_Free, если он больше не нужен приложению. Данная функция может быть вызвана только после вызова функции BioAPI_Load для ПБУ и не может быть вызвана после вызова функции BioAPI_Unload для ПБУ.
8.1.9.2 Параметры
BSPUuid (входной) — УУИД ПБУ, на который должна быть возвращена информация о модуле.
UnitSchemaArray (выходной) — указатель на массив элементов типа BioAPI_UNIT_SCHEMA (распределенный ПБУ, см. примечание к 8.1.9.1), содержащий информацию о схемах модуля.
NumberOfElements (выходной) — указатель на число элементов массива.
8.1.9.3 Возвращаемое значение
Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на отсутствие ошибки. Все остальные значения описывают тип ошибки.
8.1.9.4 Ошибки
| BioAPIERR_BSP_NOT_LOADED BioAPIERR_INVALID_UUID |
|---|
Данные об обработке ошибок БиоАПИ приведены в разделе 11.
8.1.10 Функция BioAPI_EnumBFPs
| BioAPI_RETURN BioAPI BioAPI_EnumBFPs (BioAPI_BFP_SCHEMA **BFPSchemaArray, uint32_t *NumberOfElements); |
|---|
8.1.10.1 Описание
Данная функция предоставляет информацию обо всех ПБУ, установленных в данное время в реестре компонентов, и выполняется в следующем порядке:
a) выделяет область памяти, достаточную для размещения массива элементов типа BioAPI_BFP_SCHEMA с числом элементов, равным числу установленных ПБУ;
b) заполняет массив схемами всех установленных ПБУ;
c) возвращает адрес массива в параметре BSPSchemaArray и размер массива в параметре NumberOfElements.
Данная функция может быть вызвана только в том случае, если был сделан, по крайней мере, один вызов функции BioAPI_Init, для которого еще не был сделан соответствующий вызов функции BioAPI_Terminate.
Данная функция обрабатывается в инфраструктуре БиоАПИ и не передается ни одному ПБУ.
Область памяти, содержащая массив, должна быть освобождена приложением с помощью вызова функции BioAPI_Free (см. 8.7.2) в том случае, если он больше не нужен приложению.
Область памяти, на которую указывают параметры Path и BFPProperty в пределах каждого элемента массива, также должна быть освобождена приложением путем вызова функции BioAPI_Free, если элементы массива не используются приложением.
8.1.10.2 Параметры
BfpSchemaArray (выходной) — указатель на массив элементов типа BioAPI_UNIT_SCHEMA (распределенный инфраструктурой), содержащих информацию о схемах ПБУ.
NumberOfElements (выходной) — указатель на число элементов массива, равное числу схем ПБУ в реестре компонентов.
8.1.10.3 Возвращаемое значение
Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на отсутствие ошибки. Все остальные значения описывают тип ошибки.
8.1.10.4 Ошибки
Данные об обработке ошибок БиоАПИ приведены в разделе 11.
8.1.11 Функция BioAPI_QueryBFPs
| BioAPI_RETURN BioAPI BioAPI_QueryBFPs (const BioAPI_UUID *BSPUuid, BioAPI_BFP_LIST_ELEMENT **BFPList, uint32_t *NumberOfElements); |
|---|
8.1.11.1 Описание
Данная функция возвращает список ПБФ, которые установлены в данный момент в реестре компонентов и поддерживаются ПБУ, идентифицированным УУИД ПБУ. Функция выполняет действия в следующем порядке:
a) определяет число установленных ПБФ, поддерживаемых данным ПБУ;
b) выделяет область памяти, достаточную для размещения массива элементов типа BioAPI_BFP_LIST_ELEMENT с числом элементов ПБФ, определенным в перечислении a);
c) заполняет массив идентификационной информацией (категория и УУИД) о ПБФ, определенных в перечислении a);
d) возвращает адрес массива в параметре BFPList и число элементов массива в параметре NumberOfElements.
Примечание - Когда инфраструктура вызывает функцию ПБУ BioSPI_QueryBSPs, ПБУ выделяет память для данных, которые должны быть возвращены инфраструктуре. В некоторых реализациях архитектуры инфраструктура передает данные приложению точно так же, как их возвращает ПБУ, так как приложение интерпретирует адрес так же, как и ПБУ и сможет получить доступ к данным, которые размещены ПБУ по этому адресу. В других реализациях архитектуры инфраструктура должна переместить все данные, возвращенные ПБУ, во вновь выделенную область памяти, доступную приложению, и вызвать функцию BioSPI_Free после копирования каждого блока памяти, но перед возвращением вызова BioAPI_QueryBSP. В первом случае, когда приложение вызывает функцию BioAPI_Free, инфраструктура делает соответствующий вызов BioSPI_Free. Во втором случае вызов функции BioAPI_Free обрабатывается инфраструктурой. Однако различия реализации инфраструктуры приложение не обнаруживает.
Дополнительная информация о поддерживаемых ПБФ может быть получена путем вызова функции BioAPI_EnumBFPs и анализом параметра BFPSchemaArray по соответствующим BfpUuids.
Данная функция может быть вызвана только после вызова функции BioAPI_Load для специального ПБУ и не может быть вызвана после вызова функции BioAPI_Unload для ПБУ.
Область памяти, содержащая массив, должна быть освобождена приложением путем вызова функции BioAPI_Free (см. 8.7.2) в том случае, если приложение больше не использует элементы массива.
8.1.11.2 Параметры
BSPUuid (входной) — УУИД ПБУ, по которому должна быть возвращена информация о ПБФ.
BFPList (выходной) — указатель на массив элементов типа BioAPI_BFP_LIST_ELEMENT (распределенный ПБУ, см. примечание выше) и буфер, содержащий идентификационную информацию о ПБФ.
NumberOfElements (выходной) — указатель на число элементов массива.
8.1.11.3 Возвращаемое значение
Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на отсутствие ошибки. Все остальные значения описывают тип ошибки.
8.1.11.4 Ошибки
| BioAPIERR_INVALID_BSP_HANDLE |
|---|
Данные об обработке ошибок БиоАПИ приведены в разделе 11.
8.1.12 Функция BioAPI_ControlUnit
| BioAPI_RETURN BioAPI BioAPI_ControlUnit (BioAPI_HANDLE BSPHandle, BioAPI_UNIT_ID UnitID, uint32_t ControlCode, const BioAPI_DATA *InputData, BioAPI_DATA *OutputData); |
|---|
8.1.12.1 Описание
Данная функция посылает управляющие данные от приложения модулю БиоАПИ и получает обратно данные состояния или рабочие данные. Содержание параметра ControlCode посылаемых (входных) и получаемых (выходных) данных должно быть определено в спецификации на интерфейс для данного модуля БиоАПИ или связанного ИПФ в том случае, если он присутствует.
Данная функция выделяет область памяти, достаточную для размещения выходных данных, которые должны быть возвращены приложению, заполняет блок данными и записывает в поля Length и Data структуры OutputData размер и адрес блока памяти соответственно.
Блок памяти, возвращенный при вызове функции БиоАПИ, должен быть освобожден приложением путем вызова функции BioAPI_Free (8.7.2).
8.1.12.2 Параметры
BSPHandle (входной) — дескриптор присоединенного ПБУ.
ControlCode (входной) — код функции в вызываемом модуле БиоАПИ.
InputData (входной) — указатель на структуру BioAPI-DATA, содержащую адрес и длину буфера данных, которые должны быть посланы модулю БиоАПИ в соответствии с данным ControlCode.
OutputData (выходной) — указатель на структуру BioAPI-DATA. На выходе она должна содержать адрес и длину буфера данных, содержащего данные, полученные от модуля БиоАПИ после обработки функции, указанной в ControlCode. Если функция не выделила область памяти, то адрес должен быть установлен на пустой указатель, а длина буфера задана равной нулю.
8.1.12.3 Возвращаемое значение
Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на отсутствие ошибки. Все остальные значения описывают тип ошибки.
8.1.12.4 Ошибки
| BioAPIERR_BIOAPI_UNIT_NOT_INSERTED BioAPIERR_INVALID_UNIT_ID BioAPIERR_UNIT_IN_USE BioAPIERR_INVALID_BSP_HANDLE |
|---|
Данные об обработке ошибок БиоАПИ приведены в разделе 11.
8.2 Операции над дескриптором данных
8.2.1 Операция BioAPI_FreeBIRHandle
| BioAPI_RETURN BioAPI BioAPI_FreeBIRHandle (BioAPI_HANDLE BSPHandle, BioAPI_BIR_HANDLE Handle); |
|---|
8.2.1.1 Описание
Данная функция освобождает память и ресурсы, связанные с указанным дескриптором ЗБИ. Связанная с вызовом данной функции ЗБИ больше не может быть получена по этому дескриптору. При необходимости биометрическое приложение может сохранить ЗБИ в базе данных, управляемой ПБУ, (путем вызова функции BioAPI_DbStoreBIR) перед вызовом функции BioAPI_FreeBIRHandle. В качестве альтернативы приложение может вызвать функцию BioAPI_GetBIRFromHandle, которая восстановит ЗБИ и очистит дескриптор, вместо вызова функции BioAPI_FreeBIRHandle.
Данная функция может быть вызвана только после вызова функции BioAPI_BSPAttach и не может быть вызвана по окончании выполнения функции BioAPI_BSPDetach для дескриптора ПБУ, созданного при выполнении функции BioAPI_BSPAttach.
8.2.1.2 Параметры
BSPHandle (входной) — дескриптор присоединенного ПБУ.
Handle (входной) — освобождаемый дескриптор ЗБИ.
8.2.1.3 Возвращаемое значение
Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на отсутствие ошибки. Все остальные значения описывают тип ошибки.
8.2.1.4 Ошибки
| BioAPIERR_INVALID_BIR_HANDLE BioAPIERR_INVALID_BSP_HANDLE |
|---|
Данные об обработке ошибок БиоАПИ приведены в разделе 11.
8.2.2 Операция BioAPI_GetBIRFromHandle
| BioAPI_RETURN BioAPI BioAPI_GetBIRFromHandle (BioAPI_HANDLE BSPHandle, BioAPI_BIR_HANDLE Handle, BioAPI_BIR *BIR); |
|---|
8.2.2.1 Описание
Данная функция извлекает ЗБИ, связанную с дескриптором ЗБИ, возвращаемым ПБУ. Перед окончанием выполнения функции, ПБУ освобождает дескриптор ЗБИ.
8.2.2.2 Параметры
BSPHandle (входной) — дескриптор ПБУ БиоАПИ.
Handle (входной) — дескриптор извлекаемой ЗБИ.
BIR (выходной) — указатель на извлеченную ЗБИ.
8.2.2.3 Возвращаемое значение
Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на отсутствие ошибки. Все остальные значения описывают тип ошибки.
8.2.2.4 Ошибки
| BioAPIERR_INVALID_BIR_HANDLE BioAPIERR_INVALID_BSP_HANDLE |
|---|
Данные об обработке ошибок БиоАПИ приведены в разделе 11.
8.2.3 Операция BioAPI_GetHeaderFromHandle
| BioAPI_RETURN BioAPI BioAPI_GetHeaderFromHandle (BioAPI_HANDLE BSPHandle, BioAPI_BIR_HANDLE Handle, BioAPI_BIR_HEADER *Header); |
|---|
8.2.3.1 Описание
Данная функция извлекает заголовок ЗБИ, связанной с данным дескриптором. ПБУ не освобождает дескриптор ЗБИ.
8.2.3.2 Параметры
BSPHandle (входной) — дескриптор присоединенного ПБУ.
Handle (входной) — дескриптор ЗБИ, заголовок которой должен быть извлечен.
Header (выходной) — заголовок указанной ЗБИ.
8.2.3.3 Возвращаемое значение
Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на отсутствие ошибки. Все остальные значения описывают тип ошибки.
8.2.3.4 Ошибки
| BioAPIERR_INVALID_BIR_HANDLE BioAPIERR_INVALID_BSP_HANDLE |
|---|
Данные об обработке ошибок БиоАПИ приведены в разделе 11.
8.3 Обратные вызовы и работа с событиями
8.3.1 Функция BioAPI_EnableEvents
| BioAPI_RETURN BioAPI BioAPI_EnableEvents (BioAPI_HANDLE BSPHandle, BioAPI_EVENT_MASK Events); |
|---|
8.3.1.1 Описание
Данная функция разрешает события, указанные в маске событий, исходящие от всех модулей БиоАПИ, выбранных в прикрепленной сессии ПБУ, идентифицированной дескриптором ПБУ, и отключает все другие события от этих модулей БиоАПИ. События от других модулей БиоАПИ, непосредственно или косвенно управляемых тем же ПБУ (которые могут быть выбраны в другой прикрепленной сессии и не выбраны в данной), не обрабатываются.
В некоторых случаях событие «вставка» не может быть заблокировано.
8.3.1.2 Параметры
BSPHandle (входной) — дескриптор присоединенного ПБУ.
Events (входной) — маска, обозначающая разрешенные события.
8.3.1.3 Возвращаемое значение
Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на успешное выполнение функции. Все остальные значения описывают тип ошибки.
8.3.1.4 Ошибки
Данные об обработке ошибок БиоАПИ приведены в разделе 11.
8.3.2 Функция BioAPI_SetGUICallbacks
8.3.2.1 Описание
Данная функция позволяет приложению устанавливать обратные вызовы так, что приложение может управлять внешним видом и поведением биометрического интерфейса пользователя, получая от ПБУ последовательные битовые изображения, называемые потоковыми данными, для их отображения биометрическим приложением, а также информацию о режиме.
Примечание - Не все ПБУ поддерживают функцию предоставления потоковых данных.
8.3.2.2 Параметры
BSPHandle (входной) — дескриптор присоединенного поставщика биометрической услуги.
GuiStreamingCallback (входной) — указатель на обратный вызов приложения для взаимодействия с представлением потоковых биометрических данных.
GuiStreamingCallbackCtx (входной) — указатель на контекстную информацию, предоставленную приложением, которая будет представлена в обратном вызове.
GuiStateCallback (входной) — указатель на обратный вызов приложения для взаимодействия с изменениями состояния ГИП.
GuiStateCallbackCtx (входной) — указатель на контекстную информацию, предоставленную приложением, которая будет представлена в обратном вызове.
Примечание 1 — Определения функциональных подтипов для BioAPI_GUI_STATE_CALLBACK и BioAPI_GUI_STREAMING_CALLBACK приведены в 7.36 и 7.37 соответственно.
Примечание 2 — Определение интерфейса пользователя приведено в приложении C, раздел C.7.
8.3.2.3 Возвращаемое значение
Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на отсутствие ошибки. Все остальные значения описывают условия ошибки.
8.3.2.4 Ошибки
| BioAPIERR_INVALID_POINTER BioAPIERR_INVALID_BSP_HANDLE |
|---|
Данные об обработке ошибок БиоАПИ приведены в разделе 11.
8.4 Биометрические функции
8.4.1 Функция BioAPI_Capture
8.4.1.1 Описание
Данная функция получает образцы для указанного назначения, ПБУ возвращает ЗБИ «промежуточного» типа в случае, если после этого необходимо вызывать функцию BioAPI_Process, или «обработанную» ЗБИ в противном случае. Назначение записано в заголовке CapturedBIR. Если AuditData является ненулевым указателем, может быть возвращен ЗБИ «исходного» типа. Функция возвращает дескрипторы к любым собранным данным, и все локальные операции могут быть выполнены с помощью дескрипторов. Если приложению необходимо получить данные для их сохранения в базе данных ЗБИ или пересылки на сервер, оно может извлечь их путем вызова функции BioAPI_GetBIRFromHandle.
По умолчанию за предоставление связанного с получением данных интерфейса пользователя отвечает ПБУ. Приложение может запросить управление видом и поведением ГИП путем предоставления указателя обратного вызова ГИП в BioAPI_SetGUICallbacks. Дополнительное описание особенностей интерфейса пользователя приведено в приложении C, раздел C.7.
Использование устройств получения биометрических данных происходит последовательно. Если два или более биометрических приложения одновременно запрашивают датчик, «опоздавшие» будут ждать завершения операции или истечения времени ожидания. Этот порядок установлен во всех функциях получения данных. За сериализацию отвечает ПБУ. В свою очередь ПБУ реализует сериализацию, используя признак «занято» (BioAPI_UNIT_IN_USE) или устанавливая очередность.
Дескриптор ЗБИ, возвращаемый функцией, должен быть освобожден приложением путем вызова функции BioAPI_FreeBIRHandle, если приложение больше не использует его.
8.4.1.2 Параметры
BSPHandle (входной) — дескриптор присоединенного ПБУ.
Purpose (входной) — значение, указывающее назначение получаемых биометрических данных.
Subtype (входной/необязательный) — определяет тип полученных данных (например, левый или правый глаз). Значение BioAPI_NO_SUBTYPE_AVAILABLE (0x00) показывает, что ПБУ должен выбрать подтип данных.
Примечание - Не все ПБУ поддерживают получение специфических данных. Действительный подтип должен быть указан в заголовке возвращаемого CapturedBIR.
OutputFormat (входной/необязательный) — определяет формат ББД, который будет использоваться при возвращении CapturedBIR в том случае, если ПБУ поддерживает более одного формата. Пустой указатель означает, что ПБУ должен выбрать формат.
CapturedBIR (выходной) — дескриптор ЗБИ, содержащей полученные данные. Эти данные являются либо ЗБИ «промежуточного» типа (которая может использоваться исключительно функциями BioAPI_Process, BioAPI_CreateTemplate или BioAPI_ProcessWithAuxData в зависимости от назначения), либо «обработанной» ЗБИ (которая может непосредственно использоваться функциями BioAPI_VerifyMatch или BioAPI_IdentifyMatch в зависимости от назначения).
Timeout (входной) — целое число, определяющее значение времени ожидания (в миллисекундах) для операции. Если время ожидания истекло, функция возвращает ошибку без предоставления результатов операции. Данное значение может быть любым положительным числом. Значение минус 1 означает, что будет использоваться значение времени ожидания, заданное по умолчанию ПБУ.
AuditData (выходной/необязательный) — дескриптор ЗБИ, содержащей исходные биометрические данные. Эти данные могут использоваться для предоставления биометрических данных личности. Нулевой указатель на входе указывает, что контрольные данные не будут собраны. Не все ПБУ поддерживают сбор контрольных данных. ПБУ может возвратить значение дескриптора BioAPI_UNSUPPORTED_BIR_HANDLE, чтобы указать, что AuditData не поддерживается, или значение BioAPI_INVALID_BIR_HANDLE, чтобы указать, что контрольные данные недоступны.
8.4.1.3 Возвращаемое значение
Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на отсутствие ошибки. Все остальные значения описывают тип ошибки.
8.4.1.4 Ошибки
| BioAPIERR_USER_CANCELLED BioAPIERR_UNABLE_TO_CAPTURE BioAPIERR_TOO_MANY_HANDLES BioAPIERR_TIMEOUT_EXPIRED BioAPIERR_PURPOSE_NOT_SUPPORTED BioAPIERR_UNSUPPORTED_FORMAT BioAPIERR_UNIT_IN_USE |
|---|
Данные об обработке ошибок БиоАПИ приведены в разделе 11.
8.4.2 Функция BioAPI_CreateTemplate
8.4.2.1 Описание
Данная функция принимает ЗБИ, содержащую биометрические данные в промежуточной форме, для создания нового шаблона регистрации. Новая ЗБИ создается с помощью CapturedBIR. Также функция может дополнительно выполнить адаптацию на основе существующего ReferenceTemplate (контрольного шаблона). Старый ReferenceTemplate остается неизменным.
Дополнительный входной ReferenceTemplate предоставляется для использования при создании NewTemplate (нового шаблона), если ПБУ поддерживает эту возможность. Использование ПБУ входного ReferenceTemplate для создания выходного NewTemplate необязательно.
Если ПБУ поддерживает внутреннюю или управляемую ПБУ базу данных ЗБИ (например, смарт-карту или механизм идентификации), то он может дополнительно возвратить УУИД, присвоенный вновь созданному ReferenceTemplate, сохраненному в управляемой ПБУ базе данных ЗБИ. Значение УУИД должно быть таким же, как и значение, включенное в заголовок ЗБИ, если оно там присутствует.
Дескриптор ЗБИ, возвращаемый приложением, должен быть освобожден приложением BioAPI_GetBIRFromHandle, если он больше не использует его. ЗБИ может быть восстановлена путем вызова функции BioAPI_GetBIRFromHandle, которая освобождает дескриптор.
8.4.2.2 Параметры
BSPHandle (входной) — дескриптор присоединенного ПБУ.
CapturedBIR (входной) — полученная ЗБИ или ее дескриптор.
ReferenceTemplate (входной/необязательный) — необязательно существующий шаблон, который должен быть адаптирован, или его ключ в базе данных ЗБИ, или его дескриптор.
OutputFormat (входной/необязательный) — определяет, какой формат ББД будет использоваться при возвращении NewTemplate, если ПБУ поддерживает более одного формата. Пустой указатель означает, что формат должен быть выбран ПБУ.
NewTemplate (выходной) — дескриптор вновь созданного шаблона, который получен из параметра CapturedBIR с использованием (необязательно) ReferenceTemplate.
Payload (входной/необязательный) — указатель на данные, которые будут сохранены ПБУ. Данный параметр игнорируется, если указатель пустой.
Примечание 1 — Не все ПБУ поддерживают сохранение полезной информации.
Примечание 2 — Дополнительно о полезной информации указано в приложении A, подпункт A.4.6.2.6, и приложении C, раздел C.5.
TemplateUUID (выходной/необязательный) — указатель на 16-байтовую область памяти, в которую дополнительно может быть возвращен присвоенный ПБУ УУИД, связанный с ReferenceTemplate (сохраненным в управляемой ПБУ базе данных ЗБИ). Если не требуется возвращения УУИД, указатель должен быть пустым.
8.4.2.3 Возвращаемое значение
Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на отсутствие ошибки. Все остальные значения описывают тип ошибки.
8.4.2.4 Ошибки
Данные об обработке ошибок БиоАПИ приведены в разделе 11.
8.4.3 Функция BioAPI_Process
| BioAPI_RETURN BioAPI BioAPI_Process (BioAPI_HANDLE BSPHandle, const BioAPI_INPUT_BIR *CapturedBIR, const BioAPI_BIR_BIOMETRIC_DATA_FORMAT *OutputFormat, BioAPI_BIR_HANDLE *ProcessedBIR); |
|---|
8.4.3.1 Описание
Данная функция обрабатывает промежуточные данные, полученные путем вызова функции BioAPI_Capture, для последующей верификации или идентификации. Если присоединенный вызов ПБУ позволяет проводить обработку, то ПБУ создает обработанный биометрический образец ЗБИ. В противном случае ProcessedBIR приравнивается к пустому указателю и функция возвращает BioAPIERR_BSP_FUNCTION_NOT_SUPPORTED.
Данная функция приводит к созданию ЗБИ ПБУ. Приложение может восстановить ЗБИ с помощью дескриптора путем вызова функции BioAPI_GetBIRFromHandle, которая также освобождает дескриптор или может освободить память, связанную с дескриптором ЗБИ путем вызова функции BioAPI_FreeBIRHandle.
8.4.3.2 Параметры
BSPHandle (входной) — дескриптор присоединенного ПБУ.
CapturedBIR (входной) — полученная ЗБИ или ее дескриптор.
OutputFormat (входной/необязательный) — определяет, какой формат ББД будет использоваться при возвращении ProcessedBIR, если ПБУ поддерживает более одного формата. Пустой указатель означает, что формат должен быть выбран ПБУ.
ProcessedBIR (выходной) — дескриптор вновь созданной «обработанной» ЗБИ должен быть равен пустому указателю.
8.4.3.3 Возвращаемое значение
Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на успешное выполнении функции. Все остальные значения описывают тип ошибки.
8.4.3.4 Ошибки
Данные об обработке ошибок БиоАПИ приведены в разделе 11.
8.4.4 Функция BioAPI_ProcessWithAuxBIR
| BioAPI_Return BioAPI BioAPI_ProcessPrematchData (BioAPI_HANDLE BSPHandle, const BioAPI_INPUT_BIR *CapturedBIR, const BioAPI_INPUT_BIR *PrematchData, BioAPI_HANDLE_PTR ProcessedBIR); |
|---|
8.4.4.1 Описание
Данная функция обрабатывает промежуточные данные, полученные при вызове функции BioAPI_Capture, в соответствии со вспомогательными данными, создавая обработанные биометрические образцы с целью их последующей верификации или идентификации. Это позволяет разрабатывать приложения, требующие в виде входного параметра вспомогательные данные обработки.
Примечание — Данная функция может использоваться для поддержки биометрических сопоставлений-на-карте (СНК). Описание использования БиоАПИ для полной обработки СНК, приведено в приложении C, раздел C.8.
Если возможность работы со вспомогательными данными поддерживается прикрепленным обращением ПБУ, то ПБУ создает обработанный биометрический образец ЗБИ, иначе, параметр ProcessedBIR установлен в ноль, и функция возвращает BioAPIERR_BSP_FUNCTION_NOT_SUPPORTED.
Использование данной функции приводит к созданию ЗБИ ПБУ. Приложение может восстановить ЗБИ с помощью дескриптора путем вызова функции BioAPI_GetBIRFromHandle, которая также освобождает дескриптор, или может освободить память, связанную с дескриптором ЗБИ путем вызова функции BioAPI_FreeBIRHandle.
8.4.4.2 Параметры
BSPHandle (входной) — дескриптор присоединенного ПБУ.
CapturedBIR (входной) — ЗБИ, полученная в результате предварительно вызванной функции BioAPI_Capture.
AuxiliaryData (входной) — ЗБИ, содержащая вспомогательные данные, используемые для операций обработки.
Примечание 1 — Примером вспомогательных данных может служить информация, связанная с регистрацией шаблона, которая дает возможность обработчику должным образом выполнить сжатие входного изображения, чтобы максимизировать возможность последующего сопоставления (например, для гарантии того, что обработанная ЗБИ для верификации и зарегистрированный шаблон выделены в одной и той же части пальца).
Примечание 2 — Содержание и формат вспомогательных данных определены полем формата биометрических данных ЗБИ в заголовке вспомогательной ЗБИ и могут быть специфичными для каждого ПБУ.
OutputFormat (входной/необязательный) — определяет, какой формат ББД будет использоваться при возвращении ProcessedBIR, если ПБУ поддерживает более одного формата. Пустой указатель означает, что формат должен выбрать ПБУ.
ProcessedBIR (выходной) — дескриптор для вновь созданной «обработанной» ЗБИ.
8.4.4.3 Возвращаемое значение
Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на успешное выполнение функции. Все остальные значения описывают тип ошибки.
8.4.4.4 Ошибки
Данные об обработке ошибок БиоАПИ приведены в разделе 11.
8.4.5 Функция BioAPI_VerifyMatch
8.4.5.1 Описание
Данная функция выполняет верификацию, т.е. сопоставление «один к одному» двух ЗБИ: ProcessedBIR и ReferenceTemplate. ProcessedBIR представляет собой «обработанную» ЗБИ, специально созданную для проведения верификации. ReferenceTemplate (контрольный шаблон) создается при регистрации.
Приложение должно запросить максимальное значение критерия (порога) ОЛС для успешного выполнения верификации. Булево значение Result указывает, была ли верификация проведена успешно или нет, а FMRAchieved представляет собой значение ОЛС, указывающее степень близости сопоставляемых ЗБИ.
Примечание — Дополнительная информация о понятии ОЛС для нормализованного оценивания схожести и выбора порога приведена в приложении C, раздел C.4.
Установкой указателя AdaptedBIR на непустой указатель приложение может потребовать, чтобы ЗБИ была создана адаптацией ReferenceTemplate с использованием ProcessedBIR. Новый дескриптор возвращается указателем AdaptedBIR. Если сопоставление проведено успешно, то может быть сделана попытка адаптации ReferenceTemplate с использованием информации, взятой из ProcessedBIR. Не все ПБУ поддерживают адаптацию. Полученный AdaptedBIR должен считаться оптимальным шаблоном регистрации и должен быть сохранен в базе данных регистрации. Решение об использовании или отказе от использования этих данных принимает приложение. Важно отметить, что адаптация может быть проведена не во всех случаях. При выполнении адаптации данная функция сохраняет дескриптор новой ЗБИ в памяти, на которую указывает параметр AdaptedBIR.
Если ReferenceTemplate связана с Payload (полезная информация), то она может быть возвращена при условии успешной верификации, если FMRAchieved имеет допустимое значение; данный процесс управляется политикой ПБУ и должен быть указан в его схеме.
Примечание 1 — Не все ПБУ поддерживают возвращение полезной информации.
Примечание 2 — Дополнительная информация об использовании Payload приведена в приложении A, подпункт A.4.6.2.6, и приложении C, раздел C.5.
Область памяти, возвращаемая при вызове функции БиоАПИ, должна быть освобождена приложением сразу же после прекращения его использования функцией BioAPI_Free (см. 8.7.2). Если адаптированная ЗБИ возвращается, ее дескриптор может быть освобожден путем вызова функции BioAPI_FreeBIRHandle.
8.4.5.2 Параметры
BSPHandle (входной) — дескриптор присоединенного ПБУ.
MaxFMRRequested (входной) — значение ОЛС, являющееся критерием успешной верификации (то есть порогом сопоставления).
ProcessedBIR (входной) — верифицируемая ЗБИ или ее дескриптор.
ReferenceTemplate (входной) — верифицирующая (контрольная) ЗБИ, ее ключ в базе данных ЗБИ или ее дескриптор.
AdaptedBIR (выходной/необязательный) — указатель на дескриптор адаптированной ЗБИ. Данный указатель может быть пустым, если не требуется создание адаптированной ЗБИ. Не все ПБУ поддерживают адаптацию ЗБИ. Функция может возвратить значение дескриптора BioAPI_UNSUPPORTED_BIR_HANDLE, чтобы указать, что адаптация не поддерживается, или значение BioAPI_INVALID_BIR_HANDLE, чтобы указать, что адаптация невозможна.
Result (выходной) — указатель на Булево значение (BioAPI_TRUE/BioAPI_FALSE), показывающее, является ли результат сопоставления ЗБИ положительным или нет в соответствии с установленными критериями.
FMRAchieved (выходной) — указатель на значение ОЛС, означающее близость соответствия.
Payload (выходной/необязательный) — если с ReferenceTemplate связана полезная информация, то она возвращается в выделенную в памяти структуру BioAPI_DATA в том случае, если значение FMRAchieved соответствует политике ПБУ.
8.4.5.3 Возвращаемое значение
Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на успешное выполнение функции. Все остальные значения описывают тип ошибки.
8.4.5.4 Ошибки
| BioAPIERR_INVALID_BIR_HANDLE BioAPIERR_INVALID_BIR BioAPIERR_BIR_SIGNATURE_FAILURE BioAPIERR_INCONSISTENT_PURPOSE BioAPIERR_BIR_NOT_FULLY_PROCESSED BioAPIERR_RECORD_NOT_FOUND BioAPIERR_QUALITY_ERROR |
|---|
Данные об обработке ошибок БиоАПИ приведены в разделе 11.
8.4.6 Функция BioAPI_IdentifyMatch
8.4.6.1 Описание
Данная функция выполняет идентификацию, т.е. сопоставление «один ко многим» ProcessedBIR и набора контрольных ЗБИ. ProcessedBIR представляет собой «обработанную» ЗБИ, полученную специально для проведения идентификации. Совокупность, с которой проводится сопоставление, может быть предоставлена одним из двух способов:
a) в базе данных ЗБИ, обозначаемой открытым дескриптором базы данных;
b) во входном параметре в виде массива ЗБИ.
Примечание - При использовании управляемой БПУ базы данных ЗБИ, она должна быть сначала открыта путем вызова функции BioAPI_DbOpen.
Существует возможность использования массива ЗБИ, который может быть определен в BioAPI_IDENTIFY_POPULATION_TYPE в структуре BioAPI_IDENTIFY_POPULATION. Если он определен как BioAPI_PRESET_ARRAY_TYPE (3), то будет использоваться массив ЗБИ, который был предварительно установлен при вызове функции BioAPI_PresetIdentifyPopulation. Предварительно установленный массив ЗБИ будет освобожден самим ПБУ при вызове функции BioAPI_BSPDetach.
Функция выполняется в следующем порядке:
a) определяет число кандидатов из популяции, чьи сопоставления соответствуют определенному критерию;
b) выделяет область памяти, достаточную для размещения массива элементов типа BioAPI_CANDIDATE, с числом элементов, равным числу кандидатов, определенных в перечислении a);
c) заполняет массив информацией о кандидатах, определенных в перечислении a), включая FMRAchieved каждого кандидата;
d) возвращает адрес массива в параметре Candidates и размер массива в параметре NumberOfResults.
Примечание — Дополнительная информация об использовании понятия ОЛС для нормализованного оценивания схожести и выбора порога приведена в приложении C, раздел C.4.
Блок памяти, возвращаемый путем вызова функции БиоАПИ, должен быть освобожден приложением путем вызова функции BioAPI_Free (см. 8.7.2).
8.4.6.2 Параметры
BSPHandle (входной) — дескриптор присоединенного ПБУ.
MaxFMRRequested (входной) — значение, являющееся критерием успешной идентификации (то есть порогом сопоставления).
ProcessedBIR (входной) — идентифицируемая ЗБИ.
Population (входной) — совокупность контрольных шаблонов ЗБИ, по которым проводится идентификация (с помощью ПБУ).
TotalNumberOfTemplates (входной) — определяет общее число шаблонов сохраненной приложением совокупности. Нулевое значение указывает, что приложение не предоставляет число шаблонов.
Примечание - Если совокупность распределена по нескольким базам данным/частям, то общий размер совокупности будет больше размера той совокупности, которую видит ПБУ. ПБУ может отображать FARRequested на свой внутренний порог сопоставления, основываясь на этом общем размере совокупности.
Binning (входной) — Булево значение, указывающее, включен или нет режим категоризации.
Примечание 1 — Категоризация — методика оптимизации поиска, которую может использовать ПБУ. Данная методика основана на поиске подмножества совокупности по внутренним характеристикам биометрических данных. Наряду с увеличением скорости операции сопоставления может также увеличиться вероятность пропуска кандидата из-за возможной ошибочной буферизации и как результат обнаружения буфера, который должен содержать, но не содержит сопоставляемую ЗБИ.
Примечание 2 — Дополнительная информация о категоризации приведена в приложении A, подпункт A.4.6.2.10.
MaxNumberOfResults (входной) — определяет максимальное число кандидатов, возвращаемых в результате сопоставления 1:N. Нулевое значение указывает на необходимость возврата всех кандидатов.
NumberOfResults (выходной) — указатель на число кандидатов, возвращенных в параметре Candidates в качестве результата сопоставления 1:N.
Candidates (выходной) — указатель на адрес массива элементов типа BioAPI_CANDIDATE, содержащий информацию о ЗБИ, идентифицированных как результат процесса сопоставления (то есть индексы, связанные с ЗБИ, для которых был превышен порог сопоставления). Данный массив является ранжированным, причем запись с лучшей оценкой схожести (наиболее соответствующая) находится на первом месте. Если ни одного кандидата не найдено, память под массив не выделяется и возвращается пустой указатель. Если параметр Population был представлен в базе данных ЗБИ, т.е. значение BioAPI_IDENTIFY_POPULATION_TYPE равно BioAPI_DB_TYPE, то массив содержит указатели на УУИД, связанные с ЗБИ, хранящимися во внутренней базе данных регистрации ПБУ. Если параметр Population был представлен как массив ЗБИ, то BioAPI_IDENTIFY_POPULATION_TYPE имеет значение BioAPI_ARRAY_TYPE и массив Candidates содержит указатели на относительные индексы в передаваемом массиве.
TimeOut (входной) — целое число, определяющее значение времени ожидания (в миллисекундах) для выполнения операции. Если время ожидания истекло, функция возвращает ошибку, память для массива не выделяется и возвращается пустой указатель. Данное значение может быть любым положительным числом. Значение минус 1 означает, что будет использоваться значение времени ожидания, заданное ПБУ по умолчанию.
8.4.6.3 Возвращаемое значение
Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на успешное выполнение функции. Все остальные значения описывают тип ошибки.
8.4.6.4 Ошибки
Данные об обработке ошибок БиоАПИ приведены в разделе 11.
Примечание 1 — Не все ПБУ поддерживают идентификацию 1:N. Данное указание должно быть приведено в руководстве по программированию конкретного ПБУ.
Примечание 2 — В зависимости от ПБУ, местоположения и размера базы данных, по которой производится поиск, выполнение данной операции может занять значительное время. Рекомендуемое значение параметра Timeout должно быть указано в руководстве по программированию конкретного ПБУ.
Примечание 3 — Число кандидатов сопоставления, найденных ПБУ, зависит от текущего ОЛС алгоритма сопоставления, установленного в параметре MaxFMRRequested.
8.4.7 Функция BioAPI_Enroll
8.4.7.1 Описание
Данная функция получает биометрические данные от присоединенного устройства (модуля датчика) для создания ProcessedBIR с целью создания BioAPI_PURPOSE_ENROLL, BioAPI_PURPOSE_ENROLL_FOR_VERIFICATION_ONLY или BioAPI_PURPOSE_ENROLL_FOR_IDENTIFICATION ONLY (то есть для создания контрольного шаблона).
Необязательный входной параметр ReferenceTemplate используется при создании нового шаблона NewTemplate, если ПБУ поддерживает возможность обновления шаблона. При этом использование входного шаблона ReferenceTemplate ПБУ для создания выходного шаблона NewTemplate необязательно.
Если ПБУ поддерживает внутреннюю (или управляемую ПБУ) базу данных ЗБИ (например, смарт-карту или механизм идентификации), то он может дополнительно возвратить УУИД, присвоенный вновь созданному ReferenceTemplate (контрольному шаблону), сохраненному в базе данных ЗБИ, управляемой ПБУ. Значение УУИД должно быть таким же, как и значение, включенное в заголовок ЗБИ, если оно там присутствует.
По умолчанию за предоставление связанного с операцией регистрации интерфейса пользователя отвечает ПБУ. Приложение может запросить управление видом и поведением ГИП в виде предоставления указателя обратного вызова ГИП в BioAPI_SetGUICallbacks. Дополнительное описание особенностей интерфейса пользователя приведено в приложении C, раздел C.7.
Так как функция BioAPI_Enroll включает в себя функцию получения данных, она упорядочивает использование устройства получения биометрических данных. Если два или более биометрических приложения одновременно запрашивают датчик, «опоздавшие» должны будут ждать завершения операции или истечения времени ожидания. Этот порядок установлен во всех функциях получения данных. Сериализацию осуществляет ПБУ. Это может быть реализовано либо возвращением ошибки «занято» (BioAPI_UNIT_IN_USE), либо организацией очередности.
Область памяти, возвращаемая вызовом функции БиоАПИ, должна быть освобождена приложением путем вызова функции BioAPI_Free, если приложение больше не будет ее использовать (см. 8.7.2). Выходные ЗБИ могут быть восстановлены путем вызова функции BioAPI_GetBIRFromHandle, которая освобождает дескриптор, или дескриптор может быть освобожден без восстановления ЗБИ путем вызова функции BioAPI_FreeBIRHandle.
8.4.7.2 Параметры
BSPHandle (входной) — дескриптор присоединенного ПБУ.
Purpose (входной) — значение, указывающее желаемый подтип получаемых данных (BioAPI_PURPOSE_ENROLL, BioAPI_PURPOSE_ENROLL_FOR_VERIFICATION_ONLY или BioAPI_PURPOSE_ENROLL_FOR_IDENTIFICATION ONLY).
Subtype (входной/необязательный) — определяет подтип регистрации (например, левый или правый глаз). Значение BioAPI_NO_SUBTYPE_AVAILABLE (0x00) указывает, что подтип должен выбрать ПБУ.
Примечание - Не все ПБУ поддерживают получение данных определенного подтипа. Используемый подтип получения данных будет отображен в заголовке возвращаемого параметра NewTemplate.
OutputFormat (входной/необязательный) — определяет формат ББД возвращаемого NewTemplate, если ПБУ поддерживает более одного формата. Пустой указатель означает, что ПБУ должен выбрать формат.
ReferenceTemplate (входной/необязательный) — адаптируемая (обновляемая) ЗБИ, ее ключ в базе данных или ее дескриптор.
NewTemplate (выходной) — дескриптор вновь созданного шаблона, который получен из новых исходных образцов и (необязательно) из ReferenceTemplate.
Payload (входной/необязательный) — указатель на данные, которые будут сохранены ПБУ. Данный параметр игнорируется, если указатель пустой.
Примечание 1 — Не все ПБУ поддерживают хранение полезной информации.
Примечание 2 — Дополнительная информация о полезной информации, приведена в приложении A, подпункт A.4.6.2.6, и приложении C, раздел C.5.
Timeout (входной) — целое число, определяющее значение времени ожидания (в миллисекундах) для операции. Если время ожидания истекло, функция возвращает ошибку без результатов операции. Данное значение может быть любым положительным числом. Значение минус 1 означает, что будет использоваться значение времени ожидания, заданное ПБУ по умолчанию.
AuditData (выходной/необязательный) — дескриптор ЗБИ, содержащей контрольные биометрические данные, которые могут использоваться для предоставления биометрических данных личности. Нулевой указатель на входе указывает, что контрольные данные не будут собраны. Не все ПБУ поддерживают сбор контрольных данных. ПБУ может возвратить значение дескриптора BioAPI_UNSUPPORTED_BIR_HANDLE для того, чтобы указать, что AuditData не поддерживается, или значение BioAPI_INVALID_BIR_HANDLE, чтобы указать, что контрольные данные недоступны.
TemplateUUID (выходной/необязательный) — указатель на 16-байтовый блок памяти, в который будет возвращен (необязательно) назначенный ПБУ УУИД, связанный с ReferenceTemplate (сохраненным в управляемой ПБУ базе данных ЗБИ). Указатель должен быть нулевым, если УУИД не возвращается.
8.4.7.3 Возвращаемое значение
Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на успешное выполнение функции. Все остальные значения описывают тип ошибки.
8.4.7.4 Ошибки
Данные об обработке ошибок БиоАПИ приведены в разделе 11.
8.4.8 Функция BioAPI_Verify
8.4.8.1 Описание
Данная функция получает биометрические данные от присоединенного устройства (модуля датчика) и сравнивает их с контрольным шаблоном ReferenceTemplate.
Приложение должно запросить максимальное значение критерия ОЛС (пороговое значение) для успешного сопоставления. Булево значение Result указывает, проведена верификация успешно или нет, а параметр FMRAchieved представляет собой значение ОЛС, указывающее степень близости сопоставляемых ЗБИ.
Примечание — Дополнительная информация об использовании понятия ОЛС для нормализованного оценивания схожести и выбора порога приведена в приложении C, раздел C.4.
Устанавливая указатель AdaptedBIR, приложение может потребовать, чтобы ЗБИ была сформирована адаптацией ReferenceTemplate с использованием ProcessedBIR. Новый дескриптор должен быть возвращен в AdaptedBIR. Если сопоставление проведено успешно, может быть сделана попытка адаптации ReferenceTemplate с использованием информации, взятой из ProcessedBIR. (Не все ПБУ поддерживают адаптацию). Полученный AdaptedBIR считают оптимальным шаблоном регистрации, и он должен быть сохранен в базе данных регистрации (решение об использовании или отказе от использования этих данных принимает приложение). Важно отметить, что адаптация может быть проведена не во всех случаях. При выполнении адаптации данная функция хранит дескриптор новой ЗБИ в памяти, на которую указывает параметр AdaptedBIR.
Если с ReferenceTemplate связана Payload (полезная информация), то она может быть возвращена при условии успешной верификации, если FMRAchieved достаточно строгий, что контролируется политикой ПБУ и определено в его схеме.
Примечание 1 — Не все ПБУ возвращают полезную информацию.
Примечание 2 — Дополнительная информация относительно использования параметра Payload приведена в приложении A, подпункт A.4.6.2.6, и приложении C, раздел C.5.
По умолчанию за предоставление связанного с операцией верификации интерфейса пользователя отвечает ПБУ. Приложение может запросить управление видом и поведением ГИП в виде предоставления указателя обратного вызова ГИП в функции BioAPI_SetGUICallbacks. Дополнительное описание особенностей интерфейса пользователя приведено в приложении C, раздел C.7.
Так как функция BioAPI_Verify включает в себя операцию получения данных, она упорядочивает использование устройств получения биометрических данных. Если два или более биометрических приложения одновременно запрашивают датчик, «опоздавшие» приложения должны будут ждать завершения операции или истечения времени ожидания. Этот порядок установлен во всех функциях получения данных. Сериализацию осуществляет ПБУ. Это может быть реализовано либо возвращением ошибки «занято» (BioAPI_UNIT_IN_USE), либо организацией очередности.
Область памяти, возвращаемая вызовом функции БиоАПИ, должна быть освобождена приложением путем вызова функции BioAPI_Free, если приложение больше не будет ее использовать (см. 8.7.2). Выходные ЗБИ могут быть восстановлены путем вызова функции BioAPI_GetBIRFromHandle, которая освобождает дескриптор, или дескриптор может быть освобожден без восстановления ЗБИ путем вызова функции BioAPI_FreeBIRHandle.
8.4.8.2 Параметры
BSPHandle (входной) — дескриптор присоединенного ПБУ.
MaxFMRRequested (входной) — значение ОЛС, являющееся критерием успешной верификации (порогом сопоставления).
ReferenceTemplate (входной) — верифицирующая (контрольная) ЗБИ, ее ключ в базе данных ЗБИ или ее дескриптор.
Subtype (входной/необязательный) — определяет подтип регистрации (например, левый или правый глаз). Значение BioAPI_NO_SUBTYPE_AVAILABLE (0x00) указывает, что подтип должен выбрать ПБУ.
Примечание - Не все ПБУ поддерживают получение данных определенного подтипа.
AdaptedBIR (выходной/необязательный) — указатель на дескриптор адаптированной ЗБИ. Данный указатель может быть пустым, если не требуется создание адаптированной ЗБИ. Не все ПБУ поддерживают адаптацию ЗБИ. Функция может возвратить значение дескриптора BioAPI_UNSUPPORTED_BIR_HANDLE, чтобы указать, что адаптация не поддерживается, или значение BioAPI_INVALID_BIR_HANDLE, чтобы указать, что адаптация невозможна.
Result (выходной) — указатель на Булево значение (BioAPI_TRUE/BioAPI_FALSE), показывающее, является ли результат сопоставления ЗБИ положительным или нет в соответствии с установленными критериями.
FMRAchieved (выходной) — указатель на значение ОЛС, означающее близость соответствия (оценка схожести).
Payload (выходной/необязательный) — если с ReferenceTemplate связана полезная информация, то она возвращается в выделенную в памяти структуру BioAPI_DATA в том случае, если значение FARAchieved соответствует политике ПБУ.
Timeout (входной) — целое число, определяющее значение времени ожидания (в миллисекундах) для операции. Если время ожидания истекло, функция возвращает ошибку без предоставления результатов операции. Данное значение может быть любым положительным числом. Значение минус 1 означает, что будет использоваться значение времени ожидания, заданное по умолчанию ПБУ.
AuditData (выходной/необязательный) — дескриптор ЗБИ, содержащей исходные биометрические данные. Эти данные могут использоваться для предоставления биометрических данных личности. Нулевой указатель на входе указывает, что контрольные данные не должны быть собраны. Не все ПБУ поддерживают сбор контрольных данных. ПБУ может возвратить значение дескриптора BioAPI_UNSUPPORTED_BIR_HANDLE, чтобы указать, что AuditData не поддерживается, или значение BioAPI_INVALID_BIR_HANDLE, чтобы указать, что контрольные данные недоступны.
8.4.8.3 Возвращаемое значение
Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на успешное выполнение функции. Все остальные значения описывают тип ошибки.
8.4.8.4 Ошибки
Данные об обработке ошибок БиоАПИ приведены в разделе 11.
8.4.9 Функция BioAPI_Identify
8.4.9.1 Описание
Данная функция получает биометрические данные от присоединенного устройства (модуля датчика) и сравнивает их с набором контрольных ЗБИ (Population).
Совокупность, с которой проводится сопоставление, может быть представлена одним из двух способов:
a) в базе данных ЗБИ, обозначаемой открытым дескриптором базы данных;
b) во входном параметре в виде массива ЗБИ.
Примечание - При использовании управляемой БПУ базы данных ЗБИ она должна быть сначала открыта путем вызова функции BioAPI_DbOpen.
Существует возможность использования массива ЗБИ, который может быть определен в BioAPI_IDENTIFY_POPULATION_TYPE в структуре BioAPI_IDENTIFY_POPULATION. Если он определен как BioAPI_PRESET_ARRAY_TYPE (3), то будет использоваться массив ЗБИ, который был предварительно установлен при вызове функции BioAPI_PresetIdentifyPopulation. Предварительно установленный массив ЗБИ будет освобожден ПБУ внутренне при вызове BioAPI_BSPDetach.
Приложение должно запросить максимальное значение критерия ОЛС успешного сопоставления.
Функция выполняет действия в следующем порядке:
a) получает образец и обрабатывает его соответствующим образом;
b) определяет число кандидатов популяции, чья оценка схожести соответствует определенному критерию;
c) выделяет область памяти, достаточную для размещения массива элементов типа BioAPI_CANDIDATE с числом, равным числу кандидатов, определенных в перечислении b);
d) заполняет массив информацией о кандидатах, определенных в перечислении b), включая FMRAchieved каждого кандидата;
e) возвращает адрес массива в параметре Candidates и размер массива в параметре NumberOfResults.
Примечание — Дополнительная информация относительно использования понятия ОЛС для нормализованного оценивания схожести и выбора порога приведена в приложении C, раздел C.4.
По умолчанию за предоставление связанного с операцией идентификации интерфейса пользователя отвечает ПБУ. Приложение может запросить управление видом и поведением ГИП в виде предоставления указателя обратного вызова ГИП в функции BioAPI_SetGUICallbacks. Дополнительное описание особенностей интерфейса пользователя приведено в приложении C, раздел C.7.
Так как функция BioAPI_Identify включает в себя функцию получения данных, она упорядочивает использование устройств получения биометрических данных. Если два или более биометрических приложения одновременно запрашивают устройства регистрации биометрических данных, «опоздавшие» должны будут ждать завершения операции или истечения времени ожидания. Сериализацию осуществляет ПБУ. Это же может быть реализовано либо возвращением ошибки «занято» (BioAPI_UNIT_IN_USE), либо организацией очередности.
Область памяти, возвращаемая вызовом функции БиоАПИ, должна быть освобождена приложением с помощью вызова функции BioAPI_Free в том случае, если приложение больше не будет ее использовать (см. 8.7.2). Выходные ЗБИ могут быть восстановлены путем вызова функции BioAPI_GetBIRFromHandle, которая освобождает дескриптор, или дескриптор может быть освобожден без восстановления ЗБИ путем вызова функции BioAPI_FreeBIRHandle.
8.4.9.2 Параметры
BSPHandle (входной) — дескриптор присоединенного ПБУ.
MaxFMRRequested (входной) — значение ОЛС, являющееся критерием успешной идентификации (порог сопоставления).
Subtype (входной/необязательный) — определяет подтип регистрации (например, левый или правый глаз). Значение BioAPI_NO_SUBTYPE_AVAILABLE (0x00) указывает, что подтип должен выбрать ПБУ.
Примечание - Не все ПБУ поддерживают получение данных определенного подтипа.
Population (входной) — совокупность контрольных ЗБИ (шаблонов), по которой проводится идентификация (с помощью ПБУ).
TotalNumberOfTemplates (входной) — определяет общее число шаблонов, сохраненной приложением совокупности. Нулевое значение указывает, что приложение не предоставляет число шаблонов.
Примечание - Если совокупность распределена по нескольким базам данных/частям, то общий размер совокупности будет больше совокупности, которую видит ПБУ. ПБУ может отображать FARRequested на свой внутренний порог сопоставления, основываясь на этом общем размере совокупности.
Binning (входной) — Булево значение, указывающее, включен или нет режим категоризации.
Примечание 1 — Категоризация — методика оптимизации поиска, которую может использовать ПБУ. Данная методика основана на поиске подмножества совокупности по внутренним характеристикам биометрических данных. Наряду с увеличением скорости операции сопоставления, может также увеличиться вероятность пропуска кандидата из-за возможности ошибочной буферизации и в результате буфер не будет содержать соответствующую ЗБИ.
Примечание 2 — Дополнительная информация относительно категоризации приведена в приложении A, подпункт A.4.6.2.10.
MaxNumberOfResults (входной) — определяет максимальное число кандидатов, возвращаемых в результате сопоставления 1:N. Нулевое значение указывает на необходимость возврата всех кандидатов.
NumberOfResults (выходной) — указатель на число кандидатов, возвращенных в массиве Candidates в качестве результата сопоставления 1:N.
Candidates (выходной) — указатель на адрес массива элементов типа BioAPI_CANDIDATE, содержащих информацию о ЗБИ, идентифицированных в результате процесса сопоставления (то есть индексы, связанные с ЗБИ, для которых был превышен порог сопоставления). Данный перечень является ранжированным, причем запись с самой высокой оценкой схожести находится на первом месте. Если ни одного кандидата не найдено, данный указатель будет пустым. Если Population была представлена в базе данных ЗБИ, т.е. значение BioAPI_IDENTIFY_POPULATION_TYPE равно BioAPI_DB_TYPE, то массив Candidates содержит указатели на УУИД, связанные с ЗБИ, хранящимися во внутренней базе данных регистрации ПБУ. Если Population была представлена как передаваемый массив ЗБИ, то BioAPI_IDENTIFY_POPULATION_TYPE имеет значение BioAPI_ARRAY_TYPE и массив Candidates содержит указатели на относительные индексы в передаваемом массиве.
Timeout (входной) — целое число, определяющее значение времени ожидания (в миллисекундах) для выполнения операции. Если время ожидания истекло, функция возвращает ошибку, память для массива не выделяется и возвращается пустой указатель в параметре Candidates. Данное значение может быть любым положительным числом. Значение минус 1 означает, что будет использоваться значение времени ожидания, заданное ПБУ по умолчанию.
AuditData (выходной/необязательный) — дескриптор ЗБИ, содержащей исходные биометрические данные. Эти данные могут использоваться для предоставления личных биометрических данных. Нулевой указатель на входе указывает, что контрольные данные не должны быть собраны. Не все ПБУ поддерживают сбор контрольных данных. ПБУ может возвратить значение дескриптора BioAPI_UNSUPPORTED_BIR_HANDLE, чтобы указать, что AuditData не поддерживается, или значение BioAPI_INVALID_BIR_HANDLE, чтобы указать, что контрольные данные недоступны.
8.4.9.3 Возвращаемое значение
Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на успешное выполнение функции. Все остальные значения описывают тип ошибки.
8.4.9.4 Ошибки
Данные об обработке ошибок БиоАПИ приведены в разделе 11.
Примечание 1 — Не все ПБУ поддерживают идентификацию 1:N. Данное указание должно быть приведено в руководстве по программированию конкретного ПБУ.
Примечание 2 — В зависимости от ПБУ, местоположения и размера базы данных, по которой производится поиск, выполнение данной операции может занять значительное время. Рекомендуемое значение параметра Timeout должно быть указано в руководстве по программированию конкретного ПБУ.
Примечание 3 — Число кандидатов сопоставления, найденных ПБУ, зависит от текущего значения ОЛД алгоритма сопоставления, которое указано в параметре установок порога MaxFMRRequested.
8.4.10 Функция BioAPI_Import
8.4.10.1 Описание
Данная функция передает исходные биометрические данные, полученные биометрическим приложением любым способом, и запрашивает указанный вызов ПБУ о необходимости создания ЗБИ определенного назначения. Параметр InputData определяет буфер памяти, содержащий исходные биометрические данные, а InputFormat определяет формат исходных биометрических данных. Форматы InputFormats, которые может принять конкретный ПБУ, определяются самим ПБУ (см. ошибку BioAPIERR_UNSUPPORTED_FORMAT). Функция возвращает дескриптор к ConstructedBIR. Если приложению необходимо получить ЗБИ для их сохранения в базе данных или пересылки на сервер, оно может извлечь их путем вызова функции BioAPI_GetBIRFromHandle или сохранить путем вызова функции BioAPI_DbStoreBIR.
Выходные ConstructedBIR могут быть восстановлены путем вызова функции BioAPI_GetBIRFromHandle, которая освобождает дескриптор, или дескриптор может быть освобожден без восстановления ЗБИ путем вызова функции BioAPI_FreeBIRHandle.
8.4.10.2 Параметры
BSPHandle (входной) — дескриптор присоединенного ПБУ.
InputData (входной) — указатель на данные изображения/потоковые данные для импорта в обработанную ЗБИ. Изображение/поток соответствует формату, указанному в InputFormat.
InputFormat (входной) — формат InputData.
OutputFormat (входной/необязательный) — определяет формат ББД возвращаемого ConstructedBIR, если ПБУ поддерживает более одного формата. Пустой указатель означает, что формат должен быть выбран ПБУ.
Purpose (входной) — параметр, указывающий назначение ConstructedBIR.
ConstructedBIR (выходной) — дескриптор ЗБИ, созданной из импортированных биометрических данных. Данная ЗБИ может быть промежуточной или обработанной ЗБИ (в соответствии с типом, указанным в заголовке).
8.4.10.3 Возвращаемое значение
Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на успешное выполнение функции. Все остальные значения описывают тип ошибки.
8.4.10.4 Ошибки
| BioAPIERR_UNSUPPORTED_FORMAT BioAPIERR_UNABLE_TO_IMPORT BioAPIERR_TOO_MANY_HANDLES BioAPIERR_FUNCTION_NOT_SUPPORTED BioAPIERR_PURPOSE_NOT_SUPPORTED |
|---|
Данные об обработке ошибок БиоАПИ приведены в разделе 11.
8.4.11 Функция BioAPI_PresetIdentifyPopulation
| BioAPI_RETURN BioAPI BioAPI_PresetIdentifyPopulation (BioAPI_HANDLE BSPHandle, const BioAPI_IDENTIFY_POPULATION *Population); |
|---|
8.4.11.1 Описание
Данная функция предоставляет совокупность ЗБИ ПБУ, указанному в BSPHandle. Совокупность шаблонов, с которыми проводится сопоставление, представлена одним из следующих способов:
a) в базе данных ЗБИ, обозначаемой открытым дескриптором базы данных;
b) во входном параметре в виде массива ЗБИ;
ПБУ выделяет область памяти и передает в нее совокупность ЗБИ в формате, который поддерживается внутренним алгоритмом ПБУ (не стандартизован). После успешного вызова данной функции приложение может вызвать функцию BioAPI_Identify или BioAPI_IdentifyMatch, задавая BioAPI_PRESET_ARRAY_TYPE в структуре BioAPI_IDENTIFY_POPULATION. ПБУ сохраняет этот блок памяти до тех пор, пока снова не будет вызвана функция BioAPI_PresetIdentifyPopulation или BioAPI_BSPDetach.
8.4.11.2 Параметры
BSPHandle (входной) — дескриптор присоединенного поставщика услуги БиоАПИ.
Population (входной) — совокупность ЗБИ, по которой проводится идентификация.
8.4.11.3 Возвращаемое значение
Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на успешное выполнение функции. Все остальные значения описывают тип ошибки.
8.4.11.4 Ошибки
Данные об обработке ошибок БиоАПИ приведены в разделе 11.
Примечание — В зависимости от размера передаваемой базы данных и требуемой степени преобразования выполнение данной операции может занять значительное время.
8.5 Операции над базой данных
Операции над базой данных обеспечивают доступ приложения к базам данных ЗБИ архива модулей БиоАПИ (либо непосредственно управляемыми ПБУ, либо реализованными через ПБФ).
Примечание 1 — Описание контекста и использования функций базы данных приведено в приложении C, раздел C.6.
Примечание 2 — Механизмы авторизации для управления правом биометрического приложения создавать, удалять или производить запись в базу данных в настоящем стандарте не рассматриваются (но могут ссылаться на ИСО/МЭК 19784-2 «Информационные технологии — Программный интерфейс биометрического приложения — Часть 2: Интерфейс поставщика функции биометрического архива»).
8.5.1 Функция BioAPI_DbOpen
| BioAPI_RETURN BioAPI BioAPI_DbOpen (BioAPI_HANDLE BSPHandle, const BioAPI_UUID *DbUuid, BioAPI_DB_ACCESS_TYPE AccessRequest, BioAPI_DB_HANDLE *DbHandle, BioAPI_DB_MARKER_HANDLE *MarkerHandle); |
|---|
8.5.1.1 Описание
Данная функция открывает базу данных ЗБИ, поддерживаемую текущим присоединенным архивом установленного вызова ПБУ, используя режим доступа, указанный в AccessRequest. Создается новый маркер и устанавливается на первую запись в базе данных ЗБИ, а затем возвращается дескриптор данного маркера.
Некоторые ПБУ могут поддерживать только отдельную базу данных ЗБИ или иметь предпочтительную базу данных. Приложение может предоставить ПБУ возможность выбрать базу данных ЗБИ для открытия, используя значение пустого указателя для параметра УУИД базы данных.
Примечание - Каждый вызов данной функции должен сопровождаться вызовом функции BioAPI_DbFreeMarker для освобождения ресурсов маркера. В приложении должно быть учтено, что каждый вызов функции BioAPI_DbOpen приводит к выделению ресурсов, которые не могут быть автоматически освобождены, в противном случае будет невозможно выполнять итерации в базе данных с использованием возвращенного дескриптора маркера. Если приложение не требует выполнения итераций в базе данных, то оно должно сразу же вызвать функцию BioAPI_DbFreeMarker, в противном случае оно должно выполнить это после завершения итерации.
8.5.1.2 Параметры
BSPHandle (входной) — дескриптор присоединенного вызова ПБУ.
DbUuid (входной) — указатель на УУИД, определяющий открываемую базу данных ЗБИ. Если указатель пустой, то ПБУ должен выбрать базу данных ЗБИ.
AccessRequest (входной) — признак требуемого режима доступа к базе данных ЗБИ BioAPI_DB_ACCESS_READ или BioAPI_DB_ACCESS_WRITE. В отдельной системе в каждый момент времени только одно приложение может открыть адресуемую базу данных в режиме записи BioAPI_DB_ACCESS_WRITE.
DbHandle (выходной) — дескриптор открытой базы данных ЗБИ. Если выполнение функции оканчивается ошибкой, данное значение будет установлено в BioAPI_DB_INVALID_HANDLE.
Marker (выходной) — дескриптор признака, который впоследствии может использоваться приложением для выполнения итераций в базе данных ЗБИ, начиная с первой записи.
8.5.1.3 Возвращаемое значение
Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на успешное выполнение функции. Все остальные значения описывают тип ошибки.
8.5.1.4 Ошибки
Данные об обработке ошибок БиоАПИ приведены в разделе 11.
8.5.2 Функция BioAPI_DbClose
| BioAPI_RETURN BioAPI BioAPI_DbClose (BioAPI_HANDLE BSPHandle, BioAPI_DB_HANDLE DbHandle); |
|---|
8.5.2.1 Описание
Данная функция закрывает открытую базу данных ЗБИ. Все маркеры, установленные для записей в базе данных, освобождаются и их дескрипторы становятся недействительны.
Примечание - Если база данных, открытая в режиме BioAPI_DB_ACCESS_WRITE не будет закрыта, она может быть повреждена.
8.5.2.2 Параметры
BSPHandle (входной) — дескриптор присоединенного ПБУ.
DbHandle (входной) — дескриптор БД для открытой базы данных ЗБИ, управляемой ПБУ. Данный параметр определяет открытую базу данных, которая должна быть закрыта.
8.5.2.3 Возвращаемое значение
Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на успешное выполнение функции. Все остальные значения описывают тип ошибки.
8.5.2.4 Ошибки
| BioAPIERR_UNABLE_TO_CLOSE_DATABASE BioAPIERR_INVALID_DB_HANDLE BioAPIERR_DATABASE_IS_CORRUPT |
|---|
Данные об обработке ошибок БиоАПИ приведены в разделе 11.
8.5.3 Функция BioAPI_DbCreate
| BioAPI_RETURN BioAPI BioAPI_DbCreate (BioAPI_HANDLE BSPHandle, const BioAPI_UUID *DbUuid, uint32_t NumberOfRecords, BioAPI_DB_ACCESS_TYPE AccessRequest, BioAPI_DB_HANDLE *DbHandle); |
|---|
8.5.3.1 Описание
Данная функция создает и открывает новую базу данных ЗБИ для присоединенного в данный момент модуля архива установленного вызова ПБУ. Идентификация новой базы данных определяется входным параметром DbUuid, который должен быть создан биометрическим приложением и должен отличаться от УУИД всех баз данных, как открытых, так и закрытых в данный момент, поддерживаемых данным модулем архива. Вновь созданная база данных ЗБИ может быть открыта в указанном режиме доступа.
Примечание - Функция используется для создания новой базы данных ЗБИ. Она не передает никакой информации модулю архива о новой базе данных, за исключением ее УУИД и условий доступа. Существуют архивы, которые могут работать только с базами данных статического размера или которым требуются значительные усилия для управления базой данных с динамически изменяемым размером (например, смарт-картами, которые сохраняют шаблоны в «прозрачных» или структурированных файлах и имеют статический размер, зависящий от характеристик операционной системы смарт-карты). Для создания новой базы данных ЗБИ архиву может потребоваться информация о ее размере. Так как вызывающее приложение может не знать средний или максимальный размер шаблона (в байтах), то оно предоставляет максимальное число записей, которые будут сохранены в базе данных. Если архив может работать с динамическими базами данных, то он будет игнорировать параметр NumberOfRecords.
8.5.3.2 Параметры
BSPHandle (входной) — дескриптор присоединенного ПБУ.
DbUuid (входной) — указатель на УУИД, который будет идентифицировать создаваемую базу данных ЗБИ.
NbrRecords (входной) — максимальное число записей, которые будут сохранены в базе данных ЗБИ.
AccessRequest (входной) — признак требуемого режима доступа к базе данных ЗБИ: «чтение» или «запись». В конкретной системе в каждый момент времени только одно приложение может открыть адресуемую базу данных в режиме записи BioAPI_DB_ACCESS_WRITE.
DbHandle (выходной) — дескриптор вновь созданной и открытой базы данных. Если выполнение функции оканчивается ошибкой, данное значение будет установлено в BioAPI_DB_INVALID_HANDLE.
8.5.3.3 Возвращаемое значение
Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на успешное выполнение функции. Все остальные значения описывают тип ошибки.
8.5.3.4 Ошибки
| BioAPIERR_UNABLE_TO_CREATE_DATABASE BioAPIERR_DATABASE_ALREADY_EXISTS BioAPIERR_INVALID_UUID BioAPIERR_INVALID_ACCESS_REQUEST |
|---|
Данные об обработке ошибок БиоАПИ приведены в разделе 11.
8.5.4 Функция BioAPI_DbDelete
| BioAPI_RETURN BioAPI BioAPI_DbDelete (BioAPI_HANDLE BSPHandle, const BioAPI_UUID *DbUuid); |
|---|
8.5.4.1 Описание
Данная функция удаляет все записи из указанной базы данных ЗБИ, а также всю информацию о состоянии, связанную с этой базой данных.
8.5.4.2 Параметры
BSPHandle (входной) — дескриптор присоединенного ПБУ.
DbUuid (входной) — указатель на УУИД, идентифицирующий удаляемую базу данных ЗБИ.
8.5.4.3 Возвращаемое значение
Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на успешное выполнение функции. Все остальные значения описывают тип ошибки.
8.5.4.4 Ошибки
| BioAPIERR_DATABASE_IS_OPEN BioAPIERR_INVALID_UUID |
|---|
Данные об обработке ошибок БиоАПИ приведены в разделе 11.
8.5.5 Функция BioAPI_DbSetMarker
| BioAPI_RETURN BioAPI BioAPI_DbSetMarker (BioAPI_HANDLE BSPHandle, BioAPI_DB_HANDLE DbHandle, const BioAPI_UUID *KeyValue, BioAPI_DB_MARKER_HANDLE MarkerHandle); |
|---|
8.5.5.1 Описание
Данная функция устанавливает маркер, идентифицированный параметром MarkerHandle, для указания на запись, обозначенную параметром KeyValue в базе данных ЗБИ, указанной в DbHandle. Пустой указатель приведет к установке маркера на первую запись в базе данных.
Примечание - При возникновении ошибки положение маркера не изменяется.
8.5.5.2 Параметры
BSPHandle (входной) — дескриптор присоединенного ПБУ.
DbHandle (входной) — дескриптор открытой базы данных ЗБИ присоединенного архива модулей БиоАПИ.
KeyValue (входной) — ключ в базе данных ЗБИ, на который должен быть установлен маркер.
MarkerHandle (входной/выходной) — дескриптор маркера, который должен быть установлен и может быть впоследствии использован приложением для выполнения итераций в базе данных ЗБИ начиная с новой позиции.
8.5.5.3 Возвращаемое значение
Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на успешное выполнение функции. Все остальные значения описывают тип ошибки.
8.5.5.4 Ошибки
| BioAPIERR_INVALID_DB_HANDLE BioAPIERR_RECORD_NOT_FOUND |
|---|
Данные об обработке ошибок БиоАПИ приведены в разделе 11.
8.5.6 Функция BioAPI_DbFreeMarker
| BioAPI_RETURN BioAPI BioAPI_DbFreeMarker (BioAPI_HANDLE BSPHandle, BioAPI_DB_MARKER_HANDLE MarkerHandle); |
|---|
8.5.6.1 Описание
Данная функция освобождает память и ресурсы, связанные с указанным маркером, и аннулирует MarkerHandle.
8.5.6.2 Параметры
BSPHandle (входной) — дескриптор присоединенного ПБУ.
MarkerHandle (входной) — дескриптор маркера базы данных ЗБИ, который должен быть освобожден.
8.5.6.3 Возвращаемое значение
Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на успешное выполнение функции. Все остальные значения описывают тип ошибки.
8.5.6.4 Ошибки
| BioAPIERR_MARKER_HANDLE_IS_INVALID |
|---|
Данные об обработке ошибок БиоАПИ приведены в разделе 11.
8.5.7 Функция BioAPI_DbStoreBIR
| BioAPI_RETURN BioAPI BioAPI_DbStoreBIR (BioAPI_HANDLE BSPHandle, const BioAPI_INPUT_BIR *BIRToStore, BioAPI_DB_HANDLE DbHandle, BioAPI_UUID *BirUuid); |
|---|
8.5.7.1 Описание
Данная функция сохраняет ЗБИ, идентифицированную параметром BIRToStore, в открытой базе данных ЗБИ, идентифицированной параметром DbHandle. Если BIRToStore определен дескриптором ЗБИ, то входной дескриптор BIR освобождается. Если BIRToStore определен значением ключа базы данных, то ЗБИ восстанавливается и сохраняется (копируется) в открытую базу данных. Новой ЗБИ в базе данных присваивается новый УУИД, который может использоваться в качестве ключевого значения для последующего доступа к ЗБИ.
8.5.7.2 Параметры
BSPHandle (входной) — дескриптор присоединенного ПБУ.
BIRToStore (входной) — ЗБИ, сохраняемая в открытой базе данных (или ЗБИ, ее дескриптор или индекс к ней, сохраняемые в другой открытой базе данных).
DbHandle (входной) — дескриптор открытой базы данных ЗБИ.
Uuid (выходной) — УУИД, однозначно идентифицирующий новую ЗБИ в базе данных. Данный УУИД не может быть изменен. Для того чтобы связать с пользователем другую ЗБИ, необходимо удалить старую, сохранить в базе данных новую ЗБИ, а затем заменить старый УУИД новым в учетной записи базы данных приложения. ЗБИ должна быть добавлена в конце базы данных.
8.5.7.3 Возвращаемое значение
Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на успешное выполнение функции. Все остальные значения описывают тип ошибки.
8.5.7.4 Ошибки
| BioAPIERR_INVALID_DB_HANDLE |
|---|
Данные об обработке ошибок БиоАПИ приведены в разделе 11.
8.5.8 Функция BioAPI_DbGetBIR
| BioAPI_RETURN BioAPI BioAPI_DbGetBIR (BioAPI_HANDLE BSPHandle, BioAPI_DB_HANDLE DbHandle, const BioAPI_UUID *KeyValue, BioAPI_BIR_HANDLE *RetrievedBIR, BioAPI_DB_MARKER_HANDLE *MarkerHandle); |
|---|
8.5.8.1 Описание
Данная функция извлекает ЗБИ, идентифицированную параметром KeyValue в открытой базе данных ЗБИ, идентифицированной параметром DbHandle. Функция копирует ЗБИ в память ПБУ и возвращает ее дескриптор. Маркер создается и устанавливается на запись, следующую за восстановленной ЗБИ в базе данных (или на первую запись базы данных, если восстановленная ЗБИ является последней), и возвращается дескриптор на маркер.
Область памяти, возвращаемая при вызове функции БиоАПИ, должна быть освобождена приложением путем вызова функции BioAPI_Free (8.7.2).
8.5.8.2 Параметры
BSPHandle (входной) — дескриптор присоединенного ПБУ.
DbHandle (входной) — дескриптор открытой базы данных ЗБИ.
KeyValue (входной) — ключ в базе данных извлекаемой ЗБИ.
RetrievedBIR (выходной) — дескриптор извлеченной ЗБИ.
MarkerHandle (выходной) — дескриптор маркера, который может быть впоследствии использован приложением для выполнения итераций в базе данных ЗБИ, начиная с позиции восстановленной ЗБИ.
8.5.8.3 Возвращаемое значение
Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на успешное выполнение функции. Все остальные значения описывают тип ошибки.
8.5.8.4 Ошибки
| BioAPIERR_RECORD_NOT_FOUND BioAPIERR_INVALID_DB_HANDLE |
|---|
Данные об обработке ошибок БиоАПИ приведены в разделе 11.
8.5.9 Функция BioAPI_DbGetNextBIR
| BioAPI_RETURN BioAPI BioAPI_DbGetNextBIR (BioAPI_HANDLE BSPHandle, BioAPI_DB_HANDLE DbHandle, BioAPI_DB_MARKER_HANDLE MarkerHandle, BioAPI_BIR_HANDLE *RetrievedBIR, BioAPI_UUID *BirUuid); |
|---|
8.5.9.1 Описание
Данная функция извлекает ЗБИ, идентифицированную параметром MarkerHandle. Функция копирует ЗБИ в память ПБУ и возвращает ее дескриптор, а также указатель на УУИД, который однозначно идентифицирует ЗБИ в базе данных, после чего маркер устанавливается на следующую запись в базе данных.
Примечание - Если в базе данных больше нет записей, маркер будет указывать на несуществующую позицию.
8.5.9.2 Параметры
BSPHandle (входной) — дескриптор присоединенного ПБУ.
DbHandle (входной) — дескриптор открытой базы данных ЗБИ.
MarkerHandle (входной/выходной) — дескриптор маркера, указывающий, какая запись должна быть восстановлена.
RetrievedBIR (выходной) — дескриптор извлеченной ЗБИ.
BirUuid (выходной) — УУИД, однозначно идентифицирующий извлеченную ЗБИ в базе данных.
8.5.9.3 Возвращаемое значение
Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на успешное выполнение функции. Все остальные значения описывают тип ошибки.
8.5.9.4 Ошибки
| BioAPIERR_END_OF_DATABASE BioAPIERR_MARKER_HANDLE_IS_INVALID BioAPIERR_INVALID_DB_HANDLE |
|---|
Данные об обработке ошибок БиоАПИ приведены в разделе 11.
8.5.10 Функция BioAPI_DbDeleteBIR
| BioAPI_RETURN BioAPI BioAPI_DbDeleteBIR (BioAPI_HANDLE BSPHandle, BioAPI_DB_HANDLE DbHandle, const BioAPI_UUID *KeyValue); |
|---|
8.5.10.1 Описание
ЗБИ, идентифицированная параметром KeyValue в открытой базе данных ЗБИ, идентифицированной параметром DbHandle, удаляется из базы данных. Если маркер установлен на удаленную запись, то:
a) если эта ЗБИ была не последней записью в базе данных, то маркер перемещается на следующую ЗБИ;
b) в другом случае маркер устанавливается на недействительную позицию. Однако дескриптор маркера остается действительным и может быть использован при последующем вызове функции BioAPI_DbSetMarker для установки маркера в позицию другой записи.
8.5.10.2 Параметры
BSPHandle (входной) — дескриптор присоединенного ПБУ.
DbHandle (входной) — дескриптор открытой базы данных ЗБИ.
KeyValue (входной) — УУИД ЗБИ, которая должна быть удалена.
8.5.10.3 Возвращаемое значение
Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на успешное выполнение функции. Все остальные значения описывают тип ошибки.
8.5.10.4 Ошибки
| BioAPIERR_RECORD_NOT_FOUND BioAPIERR_INVALID_DB_HANDLE |
|---|
Данные об обработке ошибок БиоАПИ приведены в разделе 11.
8.6 Операции с модулями БиоАПИ
8.6.1 Функция BioAPI_SetPowerMode
| BioAPI_RETURN BioAPI BioAPI_SetPowerMode (BioAPI_HANDLE BSPHandle, BioAPI_UNIT_ID UnitId, BioAPI_POWER_MODE PowerMode). |
|---|
8.6.1.1 Описание
Данная функция устанавливает присоединенный модуль БиоАПИ соответствующей прикрепленной сессии ПБУ в требуемый режим энергопотребления в том случае, если модуль поддерживает этот режим.
8.6.1.2 Параметры
BSPHandle (входной) — дескриптор присоединенного ПБУ.
UnitId (входной) — ИД модуля БиоАПИ, для которого должен быть установлен режим энергопотребления. Опция BioAPI_DONT_CARE недоступна для данной функции.
PowerMode (входной) — 32-битовое значение, указывающее режим энергопотребления, в который требуется перевести модуль БиоАПИ.
8.6.1.3 Возвращаемое значение
Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на успешное выполнение функции. Все остальные значения описывают тип ошибки.
8.6.1.4 Ошибки
| BioAPIERR_FUNCTION_NOT_SUPPORTED BioAPIERR_INVALID_UNIT_ID BioAPIERR_UNIT_NOT_INSERTED BioAPIERR_UNIT_IN_USE |
|---|
Данные об обработке ошибок БиоАПИ приведены в разделе 11.
8.6.2 Функция BioAPI_SetIndicatorStatus
| BioAPI_RETURN BioAPI BioAPI_SetIndicatorStatus (BioAPI_HANDLE BSPHandle, BioAPI_UNIT_ID UnitId, BioAPI_INDICATOR_STATUS IndicatorStatus). |
|---|
8.6.2.1 Описание
Данная функция устанавливает выбранный модуль в требуемый режим индикации в том случае, если модуль поддерживает этот режим. После того как параметру IndicatorStatus присвоено значение BioAPI_INDICATOR_ACCEPT или BioAPI_INDICATOR_REJECT, режим индикации остается неизменным до тех пор, пока приложение не установит другое значение.
8.6.2.2 Параметры
BSPHandle (входной) — дескриптор присоединенного ПБУ.
UnitId (входной) — ИД модуля БиоАПИ, для которого должен быть установлен режим индикации. Опция BioAPI_DONT_CARE недоступна для данной функции.
IndicatorStatus (входной) — значение устанавливаемого режима индикации модуля БиоАПИ.
8.6.2.3 Возвращаемое значение
Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на успешное выполнение функции. Все остальные значения описывают тип ошибки.
8.6.2.4 Ошибки
| BioAPIERR_FUNCTION_NOT_SUPPORTED BioAPIERR_INVALID_UNIT_ID BioAPIERR_UNIT_NOT_INSERTED BioAPIERR_UNIT_IN_USE |
|---|
Данные об обработке ошибок БиоАПИ приведены в разделе 11.
8.6.3 Функция BioAPI_GetIndicatorStatus
| BioAPI_RETURN BioAPI BioAPI_GetIndicatorStatus (BioAPI_HANDLE BSPHandle, BioAPI_UNIT_ID UnitId, BioAPI_INDICATOR_STATUS *IndicatorStatus); |
|---|
8.6.3.1 Описание
Данная функция возвращает режим индикации модуля БиоАПИ в том случае, если модуль поддерживает этот режим.
8.6.3.2 Параметры
BSPHandle (входной) — дескриптор присоединенного ПБУ.
UnitId (входной) — ИД модуля БиоАПИ, для которого должен быть получен режим индикации. Опция BioAPI_DONT_CARE недоступна для данной функции.
IndicatorStatus (выходной) — значение режима индикации модуля БиоАПИ.
8.6.3.3 Возвращаемое значение
Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на успешное выполнение функции. Все остальные значения описывают тип ошибки.
8.6.3.4 Ошибки
| BioAPIERR_FUNCTION_NOT_SUPPORTED BioAPIERR_INVALID_UNIT_ID BioAPIERR_UNIT_NOT_INSERTED BioAPIERR_UNIT_IN_USE |
|---|
Данные об обработке ошибок БиоАПИ приведены в разделе 11.
8.6.4 Функция BioAPI_CalibrateSensor
| BioAPI_RETURN BioAPI BioAPI_CalibrateSensor (BioAPI_HANDLE BSPHandle, int32_t Timeout); |
|---|
8.6.4.1 Описание
Данная функция выполняет калибровку подключенного датчика модуля БиоАПИ в том случае, если модуль датчика поддерживает калибровку.
8.6.4.2 Параметры
BSPHandle (входной) — дескриптор присоединенного поставщика биометрической услуги.
Timeout (входной) — целое число, определяющее значение времени ожидания (в миллисекундах) для операции. Если время ожидания истекло, функция возвращает ошибку. Данное значение может быть любым числом. Значение минус 1 означает, что ПБУ должен использовать значение времени ожидания калибровки по умолчанию.
8.6.4.3 Возвращаемое значение
Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на успешное выполнение функции. Все остальные значения описывают тип ошибки.
8.6.4.4 Ошибки
| BioAPIERR_FUNCTION_NOT_SUPPORTED BioAPIERR_UNIT_IN_USE BioAPIERR_INVALID_UNIT_ID BioAPIERR_UNIT_NOT_INSERTED BioAPIERR_CALIBRATION_NOT_SUCCESSFUL BioAPIERR_TIMEOUT_EXPIRED |
|---|
Данные об обработке ошибок БиоАПИ приведены в разделе 11.
8.7 Служебные операции
8.7.1 Функция BioAPI_Cancel
| BioAPI_RETURN BioAPI BioAPI_Cancel (BioAPI_HANDLE BSPHandle); |
|---|
8.7.1.1 Описание
Данная функция должна отменить все заблокированные в данный момент вызовы, связанные с BSPHandle. Данная функция не должна завершаться до тех пор, пока все заблокированные вызовы не будут отменены.
8.7.1.2 Параметры
BSPHandle (входной) — дескриптор присоединенного ПБУ.
8.7.1.3 Возвращаемое значение
Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на успешное выполнение функции. Все остальные значения описывают тип ошибки.
8.7.1.4 Ошибки
Данные об обработке ошибок БиоАПИ приведены в разделе 11.
8.7.2 Функция BioAPI_Free
| BioAPI_RETURN BioAPI BioAPI_Free (void* Ptr); |
|---|
8.7.2.1 Описание
Данная функция освобождает область памяти, на которую указывает параметр Ptr. Если Ptr имеет нулевое значение, никакие действия не выполняются. В противном случае, если Ptr не соответствует указателю, ранее возвращенному функциями БиоАПИ, или если область памяти уже была освобождена вызовом функции BioAPI_Free, последствия вызова данной функции неопределенны.
Также используют функции BioSPI, в которых ПБУ выделяет область памяти, которая должна быть освобождена инфраструктурой путем вызова функции BioSPI_Free. Каждый раз, когда инфраструктура посылает блок памяти приложению, оно становится ответственным за освобождение данного блока памяти. В таких случаях приложение вызывает функцию BioAPI_Free и инфраструктура (или получатель вызова) должна или освободить блок памяти, или вызвать функцию BioSPI_Free прикрепленной сессии соответствующего ПБУ.
Примечание - Инфраструктура может быть реализована таким образом, что ПБУ распределяет указатели, которые не передаются приложению. В таком случае инфраструктура перемещает данные, возвращенные ПБУ, в выделенную область памяти и после копирования в область памяти до возвращения в приложение вызывает функцию BioAPI_Free. Однако такие действия инфраструктуры не сообщаются приложению.
В других случаях инфраструктура сама распределяет память и передает приложению указатель на нее. В таких случаях, когда приложение вызывает BioAPI_Free, инфраструктура должна освободить область памяти, не вызывая функцию BioSPI_Free ПБУ.
Необходимо, чтобы инфраструктура сохраняла информацию о том, какие блоки памяти она распределила сама и какие блоки памяти были получены от ПБУ. В дальнейшем она должна хранить информацию о ПБУ и прикрепленных сессиях, в которых инфраструктура получила блок памяти.
8.7.2.2 Параметры
Ptr (входной) — указатель на освобождаемую память.
8.7.2.3 Возвращаемое значение
Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на успешное выполнение функции. Все остальные значения описывают тип ошибки.
8.7.2.4 Ошибки
Данные об обработке ошибок БиоАПИ приведены в разделе 11.
9 Интерфейс поставщика услуги БиоАПИ
9.1 Общие положения
ИПУ — программный интерфейс, который предоставляет ПБУ для подключения к инфраструктуре БиоАПИ. ИПУ является взаимно однозначным отображением вызова функции от биометрического приложения к инфраструктуре БиоАПИ (использующей ПИП, указанный в разделе 8) и далее — к присоединенной сессии. Инфраструктура БиоАПИ направляет вызовы ПИП к соответствующему ИПУ указанного ПБУ (определяемого параметром дескриптора ПБУ в функции ПИП). В данном разделе были приняты следующие соглашения:
a) для функции ИПУ, параметры которой идентичны параметрам функции ПИП, имеющей то же самое наименование (кроме пропуска дескриптора ПБУ), в данном разделе приведена только ее сигнатура, но приведено подробное описание соответствующей функции ПИП;
b) для функции ИПУ, параметры которой отличаются от параметров функции ПИП, имеющей то же самое наименование, приведено ее полное описание;
c) существуют функции ПИП, не имеющие соответствующих функций ИПУ; такие функции полностью не обрабатываются инфраструктурой БиоАПИ.
9.2 Определение типов (для ПБУ)
9.2.1 BioSPI_EventHandler
Прототип функции BioAPI_EventHandler (см. 7.28) используется для определения интерфейса обработчика событий, которые позволяют инфраструктуре БиоАПИ принимать от ПБУ асинхронные уведомления о событиях типа BioAPI_EVENT.
Пример - события вставки или удаления модуля БиоАПИ, обнаружения неисправности.
Адрес функции BioSPI_EventHandler передается ПБУ во время выполнения функции BioSPI_BSPLoad. Данный обработчик событий является единственным, который должен вызывать ПБУ для уведомления инфраструктуры БиоАПИ о типах событий, происходящих в загруженном ПБУ.
Для каждого ПБУ, загруженного одним или несколькими приложениями в результате выполнения функции BioAPI_BSPLoad, существует единственный обработчик события. Инфраструктура БиоАПИ должна уведомлять обработчик о событиях биометрических приложений, загрузивших ПБУ, в котором происходит событие. Если инфраструктура получила уведомление о событии подключения до того, как данное биометрическое приложение загрузило ПБУ (но после того, как другое биометрическое приложение загрузило его), инфраструктура должна запомнить данное событие и уведомить о нем обработчик событий биометрического приложения немедленно после загрузки ПБУ биометрическим приложением.
Инфраструктура БиоАПИ пересылает события биометрическому приложению, которое вызвало соответствующую функцию BioAPI_BSPLoad. Обработчик, указанный в BioSPI_EventHandler, может быть вызван многократно в ответ на одно событие.
| typedef BioAPI_RETURN (BioAPI *BioSPI_EventHandler) (const BioAPI_UUID *BSPUuid, BioAPI_UNIT_ID UnitID, const BioAPI_UNIT_SCHEMA *UnitSchema, BioAPI_EVENT EventType); |
|---|
9.2.1.1 Определения
BSPUuid — УУИД ПБУ, вызывающего событие.
UnitID — ИД модуля БиоАПИ, связанного с данным событием.
UnitSchema — указатель на модуль схемы модуля БиоАПИ, связанного с данным событием.
EventType — произошедшее событие типа BioAPI_EVENT.
Если параметр EventType имеет значение BioAPI_NOTIFY_INSERT, то должна быть подготовлена схема модуля (то есть параметр UnitSchema должен указывать на переменную типа). В другом случае параметр UnitSchema должен быть пустым.
Когда инфраструктура получает от ПБУ вызов обработчика событий, который хранит схему модуля, инфраструктура не должна вызывать функцию BioSPI_Free для освобождения блока памяти, содержащего схему модуля или блок памяти, указывающий на что-либо любым своим элементом.
9.2.2 BioSPI_BFP_ENUMERATION_HANDLER
Данная функция представляет собой обратный вызов, с помощью которого инфраструктура БиоАПИ открывает ПБУ, чтобы дать ему возможность получать информацию об установленных ПБУ. Данная функция аналогична функции BioAPI_EnumBFPs (см. 8.1.10), но в отличие от нее не является частью ПИП БиоАПИ и поэтому не открыта приложению. И наоборот, ПБУ может использовать данную функцию для получения той же информации, которую приложение может получить путем вызова функции BioAPI_EnumBFPs.
Адрес обратного вызова BioSPI_BFP_ENUMERATION_HANDLER инфраструктура предоставляет ПБУ в виде входного параметра функции BioSPI_BSPLoad.
9.2.2.1 Определения
| typedef BioAPI_RETURN (*BioSPI_BFP_ENUMERATION_HANDLER) (BioAPI_BFP_SCHEMA **BFPSchemaArray, uint32_t *NumberOfElements); |
|---|
Функция обратного вызова предоставляет информацию о всех ПБФ, установленных в реестре компонентов. Функция выполняет действия в следующем порядке:
a) выделяет область памяти, достаточную для размещения массива элементов типа BioAPI_BFP_SCHEMA с числом элементов, равным числу установленных ПБФ;
b) заполняет массив схемами всех установленных ПБФ;
c) возвращает адрес массива в параметре BFPSchemaArray и число элементов массива в параметре NumberOfElements.
Область памяти, содержащая массив, должна быть освобождена с помощью ПБУ путем обратного вызова обработчика освобождения памяти инфраструктуры (см. 9.2.3) в том случае, если данный блок памяти в дальнейшем не будет использоваться ПБУ.
Область памяти, на которой указывают параметры Path и BFPProperty, в пределах каждого элемента массива, должна быть также освобождена с помощью ПБУ путем обратного вызова обработчика освобождения памяти инфраструктуры (см. 9.2.3), если приложение в дальнейшем не будет их использовать.
9.2.2.2 Параметры
BFPSchemaArray (выходной) — указатель на адрес массива элементов типа BioAPI_BFP_SCHEMA (распределенного инфраструктурой), содержащего информацию о схемах ПБФ.
NumberOfElements (выходной) — указатель на число элементов массива или число схем ПБФ в реестре компонентов.
9.2.2.3 Возвращаемое значение
Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на успешное выполнение функции. Все остальные значения описывают тип ошибки.
9.2.2.4 Ошибки
Данные об обработке ошибок БиоАПИ приведены в разделе 11.
9.2.3 BioSPI_MEMORY_FREE_HANDLER
Данную функцию также называют обработчиком освобождения памяти. Она представляет собой обратный вызов, который инфраструктура БиоАПИ открывает для ПБУ, давая ему возможность вызвать функцию освобождения памяти, которая была выделена инфраструктурой для возвращения данных ПБУ во время приоритетного обратного вызова. Подобное распределение памяти происходит в тот момент, когда ПБУ вызывает обработчик перечислений ПБФ (см. 9.2.2). Функция освобождения памяти аналогична функции БиоАПИ BioAPI_Free (см. 8.7.2), но отличается от нее тем, что не является частью ПИП БиоАПИ и поэтому недоступна приложению.
Адрес обратного вызова BioSPI_MEMORY_FREE_HANDLER предоставляется ПБУ инфраструктурой как входной параметр функции BioSPI_BSPLoad.
9.2.3.1 Определения
| typedef BioAPI_RETURN (BioSPI_MEMORY_FREE_HANDLER) (void Ptr); |
|---|
Данный обратный вызов производит освобождение той области памяти, на которую указывает параметр Ptr. Если Ptr пустой, никакого действия не происходит. Однако, если Ptr не соответствует указателю, ранее возвращенному с помощью обратного вызова, или если область памяти уже была освобождена ранее путем вызова обработчика освобождения памяти, поведение функции не определено.
Примечание - В отличие от функции BioAPI_Free никакие запросы обработчика освобождения памяти не приводят к вызову функции BioSPI_Free.
9.2.3.2 Параметры
Ptr (входной) — указатель на область памяти, которая должна быть освобождена.
9.2.3.3 Возвращаемое значение
Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на успешное выполнение функции. Все остальные значения описывают тип ошибки.
9.2.3.4 Ошибки
Данные об обработке ошибок БиоАПИ приведены в разделе 11.
9.3 Биометрические операции поставщика услуги
9.3.1 Операции ИПУ управления компонентом
9.3.1.1 BioSPI_BSPLoad
9.3.1.1.1 Описание
Данная функция выполняет процесс инициализации компонента между БиоАПИ и ПБУ. Функция BioSPI_BSPLoad не должна вызываться более одного раза без соответствующего вызова функции BioSPI_BSPUnload.
BSPUuid — идентифицирует вызываемый ПБУ.
BioAPINotifyCallback — определяет обратный вызов, используемый для уведомления инфраструктуры БиоАПИ о событиях типа BioAPI_EVENT в любой действующей прикрепленной сессии. ПБУ должен сохранять данную информацию для дальнейшего использования.
BFPEnumerationHandler — является адресом обратного вызова обработчика перечислений ПБФ, предоставляемым инфраструктурой для ПБУ. ПБУ должен сохранять адрес для дальнейшего использования. ПБУ может использовать данный обратный вызов каждый раз, когда необходимо получить информацию об установленных в инфраструктуре ПБФ.
MemoryFreeHandler — является адресом обратного вызова обработчика освобождения памяти, предоставляемым инфраструктурой для ПБУ. ПБУ должен сохранять адрес для дальнейшего использования. ПБУ может использовать данный обратный вызов каждый раз, когда необходимо освободить блок памяти, распределенный инфраструктурой во время приоритетного обратного вызова обработчика перечислений ПБФ.
Примечание — Данная функция аналогична функции BioAPI_BSPLoad (см. 8.1.5).
9.3.1.1.2 Параметры
BSPUuid (входной) — УУИД вызываемого ПБУ.
BioAPINotifyCallback (входной) — указатель на функцию для обработчика событий БиоАПИ, который управляет событиями типа BioAPI_EVENT.
BFPEnumerationHandler (входной) — функциональный указатель на обработчик перечислений ПБФ инфраструктуры, который возвращает информацию о схемах ПБФ для всех установленных ПБФ.
MemoryFreeHandler (входной) — указатель на функцию обработки освобождения памяти инфраструктуры.
9.3.1.1.3 Возвращаемое значение
Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на успешное выполнение функции. Все остальные значения описывают тип ошибки.
9.3.1.1.4 Ошибки
Аналогичны указанным для функции BioAPI_BSPLoad (8.1.5.4).
9.3.1.2 BioSPI_BSPUnload
| BioAPI_RETURN BioAPI BioSPI_BSPUnload (const BioAPI_UUID *BSPUuid); |
|---|
9.3.1.2.1 Описание
Данная функция блокирует события и выполняет дерегистрацию функции уведомления о событии. ПБУ может выполнить операции освобождения ресурсов, обратные процессу инициализации, выполненному при BioSPI_BSPLoad.
Примечание — Данная функция аналогична функции BioAPI_BSPUnload (см. 8.1.6).
9.3.1.2.2 Параметры
BSPUuid (входной) — УУИД вызываемого ПБУ.
9.3.1.2.3 Возвращаемое значение
Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на успешное выполнение функции. Все остальные значения описывают тип ошибки.
9.3.1.2.4 Ошибки
Аналогичны указанным для функции BioAPI_BSPUnload (8.1.6.4).
9.3.1.3 BioSPI_BSPAttach
| BioAPI_RETURN BioAPI BioSPI_BSPAttach (const BioAPI_UUID *BSPUuid, BioAPI_VERSION Version, const BioAPI_UNIT_LIST_ELEMENT *UnitList, uint32_t NumUnits, BioAPI_HANDLE BSPHandle); |
|---|
9.3.1.3.1 Описание
Данная функция вызывается инфраструктурой один раз при каждом вызове функции BioAPI_BSPAttach, определяя ПБУ, указанного в параметре BSPUuid.
ПБУ должен проверить совместимость с версией, указанной в параметре Version. Если версия несовместима, то функция возвращает отказ. ПБУ должен выполнить все инициализации, требуемые для поддержки нового вызова.
ПБУ должен подключить специализированные модули БиоАПИ, если они им поддерживаются.
Примечание — Данная функция аналогична функции BioAPI_BSPAttach (см. 8.1.7).
9.3.1.3.2 Параметры
BSPUuid (входной) — указатель на УУИД вызываемого ПБУ.
Version (входной) — номера редакции и поправки данной спецификации БиоАПИ, которую приложение предлагает ПБУ для поддержки. ПБУ должен определить, совместим ли он с требуемой версией.
UnitList (входной) — указатель на буфер, содержащий список структур BioAPI_UNIT_LIST_ELEMENT, указывающих, какие модули БиоАПИ (поддерживаемые ПБУ) должны быть использованы в данной присоединенной сессии. Для каждой категории модуля БиоАПИ должно выполняться одно из следующих действий:
a) выбор специализированного модуля БиоАПИ: специализированный модуль БиоАПИ, который должен быть использован в данной присоединенной сессии, определяется добавлением ИД и категории;
b) выбор любого модуля БиоАПИ: если параметр UnitID в конкретном элементе устанавливают в BioAPI_DONT_CARE, ПБУ осуществляет выбор, какой модуль данной категории может быть использован, или возвращает ошибку, если он не поддерживает ни один из модулей данной категории. Если конкретная категория не указана, ПБУ выбирает поддерживаемый модуль БиоАПИ этой категории, но не возвращает ошибку, если он не поддерживает этот модуль;
c) выбор без указания модуля БиоАПИ: если параметр UnitID установлен в BioAPI_DONT_INCLUDE, ПБУ не присоединит модуль БиоАПИ данной категории, даже если он поддерживает ее.
Примечание - Любые соответствующие вызовы, требующие использования модуля БиоАПИ данной категории, закончатся возвращением ошибки.
NumUnits (входной) — число элементов модулей БиоАПИ в списке, на который указывает указатель UnitList. Если данный параметр содержит нулевое значение, то ПБУ выбирает модуль БиоАПИ для всех категорий модулей БиоАПИ, которыми ПБУ управляет непосредственно или косвенно.
BSPHandle (входной) — значение BioAPI_HANDLE, определенное инфраструктурой и связанное с присоединенной сессией, создаваемой данной функцией.
Примечание - Только один модуль БиоАПИ каждой категории может быть одновременно соотнесен с прикрепленной сессией.
9.3.1.3.3 Возвращаемое значение
Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на успешное выполнение функции. Все остальные значения описывают тип ошибки.
9.3.1.3.4 Ошибки
Аналогичны указанным для функции BioAPI_BSPAttach (8.1.7.4).
9.3.1.4 BioSPI_BSPDetach
| BioAPI_RETURN BioAPI BioSPI_BSPDetach (BioAPI_HANDLE BSPHandle); |
|---|
9.3.1.4.1 Описание
Данная функция вызывается инфраструктурой БиоАПИ один раз при каждом вызове функции BioAPI_BSPDetach, определяющей присоединенную сессию, указанную в BSPHandle. ПБУ должен выполнить все операции по завершению работы, связанные со специализированным присоединенным дескриптором.
Примечание — Данная функция аналогична функции BioAPI_BSPDetach (см. 8.1.8).
9.3.1.4.2 Параметры
BSPHandle (входной) — дескриптор, связанный с присоединенной сессией, завершаемой данной функцией.
9.3.1.4.3 Возвращаемое значение
Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на отсутствие ошибки. Все остальные значения описывают тип ошибки.
9.3.1.4.4 Ошибки
Аналогичны указанным для функции BioAPI_BSPDetach (8.1.8.4).
9.3.1.5 BioSPI_QueryUnits
| BioAPI_RETURN BioAPI BioSPI_QueryUnits (const BioAPI_UUID *Uuid, BioAPI_UNIT_SCHEMA **UnitSchemaArray, uint32_t *NumberOfElements); |
|---|
Примечание — Подробное описание функции приведено в 8.1.9 (BioAPI_QueryUnits).
9.3.1.6 BioSPI_QueryBFPs
| BioAPI_RETURN BioAPI BioSPI_QueryBFPs (const BioAPI_UUID *BSPUuid, BioAPI_BFP_LIST_ELEMENT **BFPList, uint32_t *NumberOfElements); |
|---|
Примечание 1 — При вызове данной функции ПБУ может использовать обратный вызов обработчика перечислений ПБФ (9.2.2) для получения информации обо всех установленных ПБФ и затем может создать список всех поддерживаемых ПБФ путем проверки каждой записи массива, возвращаемого данным обратным вызовом.
Примечание 2 — Подробное описание функции приведено в 8.1.11 (BioAPI_QueryBFPs).
9.3.1.7 BioSPI_ControlUnit
| BioAPI_RETURN BioAPI BioSPI_ControlUnit (BioAPI_HANDLE BSPHandle, BioAPI_UNIT_ID UnitID, uint32_t ControlCode, const BioAPI_DATA *InputData, BioAPI_DATA *OutputData); |
|---|
Примечание — Подробное описание функции приведено в 8.1.12 (BioAPI_ControlUnit).
9.3.2 Операции над дескриптором данных ИПУ
9.3.2.1 BioSPI_FreeBIRHandle
| BioAPI_RETURN BioAPI BioSPI_FreeBIRHandle (BioAPI_HANDLE BSPHandle, BioAPI_BIR_HANDLE Handle); |
|---|
Примечание — Подробное описание функции приведено в 8.2.1 (BioAPI_FreeBIRHandle).
9.3.2.2 BioSPI_GetBIRFromHandle
BioAPI_RETURN BioAPI BioSPI_GetBIRFromHandle
Примечание — Подробное описание функции приведено в 8.2.2 (BioAPI_GetBIRFromHandle).
9.3.2.3 BioSPI_GetHeaderFromHandle
| BioAPI_RETURN BioAPI BioSPI_GetHeaderFromHandle (BioAPI_HANDLE BSPHandle, BioAPI_BIR_HANDLE Handle, BioAPI_BIR_HEADER *Header); |
|---|
Примечание — Подробное описание функции приведено в 8.2.3 (BioAPI_GETHeaderFromHandle).
9.3.3 Обратные вызовы и работа с событиями ИПУ
9.3.3.1 BioSPI_EnableEvents
| BioAPI_RETURN BioAPI BioSPI_EnableEvents (BioAPI_HANDLE BSPHandle, BioAPI_EVENT_MASK Events); |
|---|
Примечание — Подробное описание функции приведено в 8.3.1 (BioAPI_EnableEvents).
9.3.3.2 BioSPI_SetGUICallbacks
Примечание — Подробное описание функции приведено в 8.3.2 (BioAPI_SetGUICallbacks).
9.3.4 Биометрические операции ИПУ
9.3.4.1 BioSPI_Capture
Примечание — Подробное описание функции приведено в 8.4.1 (BioAPI_Capture).
9.3.4.2 BioSPI_CreateTemplate
Примечание — Подробное описание функции приведено в 8.4.2 (BioAPI_CreateTemplate).
9.3.4.3 BioSPI_Process
| BioAPI_RETURN BioAPI BioSPI_Process (BioAPI_HANDLE BSPHandle, const BioAPI_INPUT_BIR *CapturedBIR, const BioAPI_BIR_BIOMETRIC_DATA_FORMAT *OutputFormat, BioAPI_BIR_HANDLE *ProcessedBIR); |
|---|
Примечание — Подробное описание функции приведено в 8.4.3 (BioAPI_Process).
9.3.4.4 BioSPI_ProcessWithAuxBIR
Примечание — Подробное описание функции приведено в 8.4.4 (BioAPI_ProcessWithAuxBIR).
9.3.4.5 BioSPI_VerifyMatch
Примечание — Подробное описание функции приведено в 8.4.5 (BioAPI_VerifyMatch).
9.3.4.6 BioSPI_IdentifyMatch
Примечание — Подробное описание функции приведено в 8.4.6 (BioAPI_IdentifyMatch).
9.3.4.7 BioSPI_Enroll
Примечание — Подробное описание функции приведено в 8.4.7 (BioAPI_Enroll).
9.3.4.8 BioSPI_Verify
Примечание — Подробное описание функции приведено в 8.4.8 (BioAPI_Verify).
9.3.4.9 BioSPI_Identify
Примечание — Подробное описание функции приведено в 8.4.9 (BioAPI_Identify).
9.3.4.10 BioSPI_Import
Примечание — Подробное описание функции приведено в 8.4.10 (BioAPI_Import).
9.3.4.11 BioSPI_PresetIdentifyPopulation
BioAPI_RETURN BioAPI BioAPI_PresetIdentifyPopulation
const BioAPI_IDENTIFY_POPULATION *Population);
Примечание — Подробное описание функции приведено в 8.4.11 (BioAPI_PresetIdentifyPopulation).
9.3.5 Операции над базой данных ИПУ
9.3.5.1 BioSPI_DbOpen
| BioAPI_RETURN BioAPI BioSPI_DbOpen (BioAPI_HANDLE BSPHandle, const BioAPI_UUID *DbUuid, BioAPI_DB_ACCESS_TYPE AccessRequest, BioAPI_DB_HANDLE *DbHandle, BioAPI_DB_MARKER_HANDLE *MarkerHandle); |
|---|
Примечание — Подробное описание функции приведено в 8.5.1 (BioAPI_DbOpen).
9.3.5.2 BioSPI_DbClose
| BioAPI_RETURN BioAPI BioSPI_DbClose (BioAPI_HANDLE BSPHandle, BioAPI_DB_HANDLE DbHandle); |
|---|
Примечание — Подробное описание функции приведено в 8.5.2 (BioAPI_DbClose).
9.3.5.3 BioSPI_DbCreate
| BioAPI_RETURN BioAPI BioSPI_DbCreate (BioAPI_HANDLE BSPHandle, const BioAPI_UUID *DbUuid, uint32_t NumberOfRecords, BioAPI_DB_ACCESS_TYPE AccessRequest, BioAPI_DB_HANDLE *DbHandle); |
|---|
Примечание — Подробное описание функции приведено в 8.5.3 (BioAPI_DbCreate).
9.3.5.4 BioSPI_DbDelete
| BioAPI_RETURN BioAPI BioSPI_DbDelete (BioAPI_HANDLE BSPHandle, const BioAPI_UUID *DbUuid); |
|---|
Примечание — Подробное описание функции приведено в 8.5.4 (BioAPI_DbDelete).
9.3.5.5 BioSPI_DbSetMarker
| BioAPI_RETURN BioAPI BioSPI_DbSetMarker (BioAPI_HANDLE BSPHandle, BioAPI_DB_HANDLE DbHandle, const BioAPI_UUID *KeyValue, BioAPI_DB_MARKER_HANDLE MarkerHandle); |
|---|
Примечание — Подробное описание функции приведено в 8.5.5 (BioAPI_DbSetMarker).
9.3.5.6 BioSPI_DbFreeMarker
| BioAPI_RETURN BioAPI BioSPI_DbFreeMarker (BioAPI_HANDLE BSPHandle, BioAPI_DB_MARKER_HANDLE MarkerHandle); |
|---|
Примечание — Подробное описание функции приведено в 8.5.6 (BioAPI_DbFreeMarker).
9.3.5.7 BioSPI_DbStoreBIR
| BioAPI_RETURN BioAPI BioSPI_DbStoreBIR (BioAPI_HANDLE BSPHandle, const BioAPI_INPUT_BIR *BIRToStore, BioAPI_DB_HANDLE DbHandle, BioAPI_UUID_PTR Uuid); |
|---|
Примечание — Подробное описание функции приведено в 8.5.7 (BioAPI_DbStoreBIR).
9.3.5.8 BioSPI_DbGetBIR
| BioAPI_RETURN BioAPI BioSPI_DbGetBIR (BioAPI_HANDLE BSPHandle, BioAPI_DB_HANDLE DbHandle, const BioAPI_UUID *KeyValue, BioAPI_BIR_HANDLE *RetrievedBIR, BioAPI_DB_MARKER_HANDLE *MarkerHandle); |
|---|
Примечание — Подробное описание функции приведено в 8.5.8 (BioAPI_DbGetBIR).
9.3.5.9 BioSPI_DbGetNextBIR
| BioAPI_RETURN BioAPI BioSPI_DbGetNextBIR (BioAPI_HANDLE BSPHandle, BioAPI_DB_HANDLE DbHandle, BioAPI_DB_MARKER_HANDLE MarkerHandle, BioAPI_BIR_HANDLE *RetrievedBIR, BioAPI_UUID *BirUuid); |
|---|
Примечание — Подробное описание функции приведено в 8.5.9 (BioAPI_DbGetNextBIR).
9.3.5.10 BioSPI_DbDeleteBIR
| BioAPI_RETURN BioAPI BioSPI_DbDeleteBIR (BioAPI_HANDLE BSPHandle, BioAPI_DB_HANDLE DbHandle, const BioAPI_UUID *KeyValue); |
|---|
Примечание — Подробное описание функции приведено в 8.5.10 (BioAPI_DbDeleteBIR).
9.3.6 Операции с модулями БиоАПИ ИПУ
9.3.6.1 BioSPI_SetPowerMode
| BioAPI_RETURN BioAPI BioSPI_SetPowerMode (BioAPI_HANDLE BSPHandle, BioAPI_UNIT_ID UnitId, BioAPI_POWER_MODE PowerMode); |
|---|
Примечание — Подробное описание функции приведено в 8.6.1 (BioAPI_SetPowerMode).
9.3.6.2 BioSPI_SetIndicatorStatus
| BioAPI_RETURN BioAPI BioSPI_SetIndicatorStatus (BioAPI_HANDLE BSPHandle, BioAPI_UNIT_ID UnitId, BioAPI_INDICATOR_STATUS IndicatorStatus); |
|---|
Примечание — Подробное описание функции приведено в 8.6.2 (BioAPI_SetIndicatorStatus).
9.3.6.3 BioSPI_GetIndicatorStatus
| BioAPI_RETURN BioAPI BioSPI_GetIndicatorStatus (BioAPI_HANDLE BSPHandle, BioAPI_UNIT_ID UnitId, BioAPI_INDICATOR_STATUS *IndicatorStatus); |
|---|
Примечание — Подробное описание функции приведено в 8.6.3 (BioAPI_GetIndicatorStatus).
9.3.6.4 BioSPI_CalibrateSensor
| BioAPI_RETURN BioAPI BioSPI_CalibrateSensor (BioAPI_HANDLE BSPHandle, int32_t Timeout); |
|---|
Примечание — Подробное описание функции приведено в 8.6.4 (BioAPI_CalibrateSensor).
9.3.7 Служебные операции ИПУ
9.3.7.1 BioSPI_Cancel
| BioAPI_RETURN BioAPI BioSPI_Cancel (BioAPI_HANDLE BSPHandle); |
|---|
Примечание — Подробное описание функции приведено в 8.7.1 (BioAPI_Cancel).
9.3.7.2 BioSPI_Free
| BioAPI_RETURN BioAPI BioSPI_Free (void* Ptr); |
|---|
Примечание — Подробное описание функции приведено в 8.7.2 (BioAPI_Free).
10 Интерфейс реестра компонентов
Реестр компонентов хранит статическую информацию, описывающую возможности компонентов БиоАПИ. Для получения данной информации биометрические приложения опрашивают реестр компонентов. Реестр компонентов является частью инфраструктуры БиоАПИ.
Приложение, выполняющее установку компонентов БиоАПИ (инфраструктуру БиоАПИ, ПБУ или ПБФ), размещает информацию о них в реестр компонентов. Данная информация используется биометрическим приложением для определения того, какие ПБУ и ПБФ были установлены. Биометрическое приложение может использовать данную информацию динамически в своей решающей логике. Например, оно может решить, необходимо ли производить какой-либо (необязательный) вызов функции к данному ПБУ, в зависимости от записи в реестре для данного ПБУ о поддержке вызова. Также реестр компонентов предоставляет информацию относительно форматов ББД, поддерживаемых ПБУ (см. 6.7 и приложение B), и значения по умолчанию ПБУ для различных общих параметров (таких, как время ожидания).
Примечание - Информация о модулях БиоАПИ не хранится в реестре компонентов, но предоставляется при загрузке ПБУ (как событие вставки) или в ответ на запрос (BioAPI_QueryUnits).
Реестр компонентов разработан как независимый от платформы, но может использовать встроенный реестр какой-либо операционной системы (такой, как системный реестр Microsoft WindowsTM).
Средства регистрации информации в реестре компонентов приведены в 10.2.
10.1 Схема реестра компонентов БиоАПИ
Все компоненты биометрической системы, выполненной в соответствии с БиоАПИ, должны быть записаны в реестре компонентов. Данные записи не зависят от операционной системы. Данный подраздел определяет информацию, хранимую в реестре для каждого компонента биометрической системы, основанной на БиоАПИ.
Примечание — Все строковые типы, определенные как элементы структуры компонентов, должны содержать символы, закодированные по ИСО/МЭК 10646 (формат UTF-8), если не установлены иные требования для структур данных, указанных в разделе 7.
10.1.1 Схема инфраструктуры
Данная схема содержит атрибуты инфраструктуры БиоАПИ.
Примечание — См. также 7.30.
10.1.2 Схема ПБУ
Данная схема описывает возможности ПБУ. Для каждого установленного в биометрическую систему ПБУ существует одна схема.
| Имя поля | Тип данных поля | Описание |
| BSPUUID | UINT8_T [16] | УУИД, однозначно идентифицирующий ПБУ |
| Description | STRING | Текстовое описательное имя ПБУ |
| Path | STRING | Путь к исполняемому ПБУ, включающий имя файла исполняемого кода компонента ПБУ (может быть URL-адресом) |
| Spec Version | UINT8_T | Версия поддерживаемой спецификации БиоАПИ |
| Product Version | STRING | Версия программного продукта ПБУ |
| Vendor | STRING | Наименование изготовителя ПБУ, представленное в виде текста |
| BSP Supported Formats | MULTIUINT32_T | Массив 2-байтовых пар в виде целых чисел. Каждая пара определяет поддерживаемый формат ББД (см. BioAPI_BIR_BIOMETRIC_DATA_FORMAT) |
| Number of Supported Formats | UINT32_T | Целое число, определяющее число форматов ББД, поддерживаемых ПБУ (число 2-байтовых пар в виде целых чисел в поле BSP Supported Formats) |
| Factors Mask | UINT32_T | Маска, указывающая, какие формы определения подлинности поддерживаются ПБУ (см. BioAPI_BIR_BIOMETRIC_TYPE) |
| Operations | UINT32_T | Операции (функции), поддерживаемые ПБУ (см. BioAPI_OPERATIONS_MASK) |
| Options | UINT32_T | Опции, поддерживаемые ПБУ (см. BioAPI_OPTIONS_MASK) |
| Payload Policy | UINT32_T | Значение порога (минимальное значение ОЛС), используемое для определения возможности предоставления полезной информации (см. BioAPI_FMR) |
| Max Payload Size | UINT32_T | Максимальный размер полезной информации в байтах |
| Default Verify Timeout | INT32_T | Значение времени ожидания по умолчанию в миллисекундах, используемое ПБУ для операций верификации в случае, если время ожидания не установлено биометрическим приложением |
| Default Identify Timeout | INT32_T | Значение времени ожидания по умолчанию в миллисекундах, используемое ПБУ для операций идентификации в случае, если время ожидания не установлено биометрическим приложением |
| Default Capture Timeout | INT32_T | Значение времени ожидания по умолчанию в миллисекундах, используемое ПБУ для операций получения данных в случае, если время ожидания не установлено биометрическим приложением |
| Default Enroll Timeout | INT32_T | Значение времени ожидания по умолчанию в миллисекундах, используемое ПБУ для операций регистрации в случае, если время ожидания не установлено биометрическим приложением |
| Default calibrate Timeout | INT32_T | Значение времени ожидания по умолчанию в миллисекундах, используемое ПБУ для операций калибровки в случае, если время ожидания не установлено биометрическим приложением |
| MAX BSP DB size | UINT32_T | Максимальный размер базы данных ЗБИ. Нулевое значение указывает на отсутствие базы данных для этого ПБУ <1> |
| Max Identify Population | UINT32_T | Наибольшая совокупность, поддерживаемая функцией идентификации <1>. Значение 0xFFFFFFFF указывает на отсутствие ограничений |
| <1> Применяется только в том случае, если ПБУ может непосредственно управлять отдельным модулем архива. Значение 0 означает, что ПБУ способен управлять несколькими модулями (либо напрямую, либо с помощью интерфейса ПБФ) и информация об этих модулях будет предоставлена как часть уведомления о вставке (часть схемы модуля). | ||
Примечание — См. также 7.16.
10.1.3 Схема ПБФ
Данная схема описывает возможности ПБФ. Для каждого установленного в биометрической системе ПБФ существует одна схема.
| Имя поля | Тип данных поля | Описание |
| BFP UUID | UINT8_T [16] | УУИД, однозначно идентифицирующий ПБФ |
| BFP Category | UINT32_T | Категория ПБФ, определенная УУИД ПБФ |
| Description | STRING | Текстовое описательное имя ПБФ |
| Path | STRING | Путь к исполняемому ПБФ, включающий в себя имя файла исполняемого кода ПБФ (может быть URL-адресом) |
| Spec Version | UINT8_T | Версия поддерживаемого стандарта BioAPI <1> |
| Product Version | STRING | Версия программного продукта ПБФ |
| Vendor | STRING | Наименование изготовителя ПБФ, представленное в виде текста |
| BFP Supported Formats | MULTIUINT32_T | Массив 2-байтовых пар в виде целых чисел. Каждая пара определяет поддерживаемый формат ББД (см. BioAPI_BIR_BIOMETRIC_DATA_FORMAT) |
| Number of Supported Formats | UINT32_T | Целое число, определяющее число форматов ББД, поддерживаемых ПБФ (число 2-байтовых пар в виде целых чисел в поле BFP Supported Formats) |
| Factors Mask | UINT32_T | Маска, указывающая, какие формы установления подлинности поддерживаются ПБФ (см. BioAPI_BIR_BIOMETRIC_TYPE) |
| BFP Property ID | UINT8_T [16] | УУИД, идентифицирующий формат поля BFP Properties (указывает изготовитель) |
| BFP Property | DATA | Специализированная информация изготовителя о ПБФ |
| <1> Спецификация интерфейса поставщика функции будет установлена в отдельной части комплекса стандартов ИСО/МЭК 19784. | ||
Примечание — См. также 7.3.
10.2 Функции реестра компонентов
Для упрощения разработки совместимых с БиоАПИ приложений и ПБУ используют служебные функции реестра компонентов, приведенные в настоящем разделе.
Функции установки предусмотрены для того, чтобы конструктор ПБУ и ПБФ мог заполнить схемы ПБУ и ПБФ реестра компонентов. Реестр компонентов не зависит от операционной системы.
10.2.1 BioAPI_Util_InstallBsp
10.2.1.1 Описание
Данная функция устанавливает, модифицирует (обновляет) или удаляет ссылку на ПБУ в реестре компонентов.
| BioAPI_RETURN BioAPI_Util_InstallBsp (BioAPI_INSTALL_ACTION Action, BioAPI_INSTALL_ERROR *pError, BioAPI_BSP_SCHEMA_PTR pBSPSchema); |
|---|
После инициализации данной функции для установки инфраструктура БиоАПИ должна создать запись схемы ПБУ в реестре компонентов и включить в него содержание входной схемы ПБУ.
После инициализации данной функции для обновления инфраструктура БиоАПИ должна заменить существующие записи схемы ПБУ в реестре компонентов содержанием входной схемы ПБУ, основываясь на УУИД ПБУ в данной схеме.
После инициализации данной функции для удаления инфраструктура БиоАПИ должна удалить запись схемы ПБУ из реестра компонентов для ПБУ, обозначенного параметром BSPUuid во входной схеме.
10.2.1.2 Параметры
Action (входной) — определяет тип выполняемого действия. Допустимыми значениями являются следующие:
Error (выходной) — указатель на структуру BioAPI_INSTALL_ERROR. Если выполнение функции заканчивается ошибкой, данная структура содержит дополнительную информацию о типе ошибки.
BSPSchema (входной/выходной) — указатель на элементы схемы ПБУ, определенные в 7.16, описывающие свойства и характеристики устанавливаемого ПБУ. При вызове функции с параметром Action, установленным в BioAPI_INSTALL_ACTION_UNINSTALL, необходимо задать только элемент BSPUuid параметра BSPSchema.
10.2.1.3 Возвращаемые значения
Если функция выполнена успешно, то она возвращает BioAPI_OK. Если функция завершается неудачей, она возвращает код ошибки БиоАПИ (см. раздел 11). Параметр Error содержит дополнительные сведения об ошибке.
10.2.2 BioAPI_Util_InstallBFP
10.2.2.1 Описание
Данная функция устанавливает, модифицирует (обновляет) или удаляет ссылку на ПБФ в реестре компонентов.
| BioAPI_RETURN BioAPI_Util_InstallUnit (BioAPI_INSTALL_ACTION Action, BioAPI_INSTALL_ERROR *Error, const BioAPI_BFP_SCHEMA *BFPSchema); |
|---|
10.2.2.2 Параметры
Action (входной) — определяет тип выполняемого действия. Допустимыми значениями являются следующие:
Error (выходной) — указатель на структуру BioAPI_INSTALL_ERROR. Если выполнение функции заканчивается ошибкой, то данная структура содержит дополнительную информацию об ошибке.
BFPSchema (входной/выходной) — указатель на элемент реестра компонентов, описывающий свойства и характеристики устанавливаемого ПБФ (см. 7.3). При вызове функции с параметром Action, установленным в BioAPI_INSTALL_ACTION_UNINSTALL, необходимо задать только элемент BFPUuid параметра BFPSchema.
10.2.2.3 Возвращаемые значения
Если функция выполнена успешно, она возвращает BioAPI_OK. Если функция завершается неудачей, она возвращает код ошибки БиоАПИ. Параметр Error содержит дополнительные сведения об ошибке.
11 Обработка ошибок БиоАПИ
Все функции БиоАПИ возвращают значение типа BioAPI_RETURN. Значение BioAPI_OK указывает на успешное выполнение функции. Любое другое значение указывает на наличие ошибки. В настоящем стандарте установлены ограничения на возвращаемые значения ошибок, возникающих в инфраструктуре БиоАПИ, в ПБУ или в модулях БиоАПИ, присоединенных к ПБУ.
11.1 Значения ошибок и схемы кодов ошибок
Значение ошибки представляет собой полное 32-разрядное значение BioAPI_RETURN.
Кодом ошибки являются младшие 24 бита значения ошибки и идентифицируют фактические условия ошибки.
Восемь старших битов значения ошибки идентифицируют источник ошибки:
c) модуль БиоАПИ, присоединенный к ПБУ.
11.2 Перечень кодов ошибок и значений ошибок
11.2.1 Константы значения ошибки БиоАПИ
| #define BIOAPI_FRAMEWORK_ERROR | (0x00000000) |
|---|---|
| #define BIOAPI_BSP_ERROR | (0x01000000) |
| #define BIOAPI_UNIT_ERROR | (0x02000000) |
11.2.2 Определяемые реализацией коды ошибок
Коды ошибок 0x000000 — 0x0000FF зарезервированы.
11.2.3 Общие коды ошибки
| #define BioAPIERR_INTERNAL_ERROR | (0x000101) |
|---|
Общая системная ошибка указывает, что произошла ошибка операционной системы или ошибка внутреннего состояния и состояние системы может быть неизвестно.
| #define BioAPIERR_MEMORY_ERROR | (0x000102) |
|---|
| #define BioAPIERR_INVALID_POINTER | (0x000103) |
|---|
Входной/выходной параметр функции или входное/выходное поле структуры данных является недействительным указателем.
| #define BioAPIERR_INVALID_INPUT_POINTER | (0x000104) |
|---|
Входной параметр функции или входное поле структуры данных является недействительным указателем.
| #define BioAPIERR_INVALID_OUTPUT_POINTER | (0x000105) |
|---|
Выходной параметр функции или выходное поле структуры данных является недействительным указателем.
| #define BioAPIERR_FUNCTION_NOT_SUPPORTED | (0x000106) |
|---|
Функция не реализована поставщиком биометрической услуги.
| #define BioAPIERR_OS_ACCESS_DENIED | (0x000107) |
|---|
Операционная система запрещает доступ к требуемому ресурсу.
| #define BioAPIERR_FUNCTION_FAILED | (0x000108) |
|---|
Функция не выполнена по неизвестной причине.
| #define BioAPIERR_INVALID_UUID | (0x000109) |
|---|
Входной УУИД недействителен. Данный тип ошибки может появляться в случае, если компонент, запрашиваемый данным УУИД, не присутствует в системе или не может быть найден.
| #define BioAPIERR_INCOMPATIBLE_VERSION | (0x00010a) |
|---|
Ошибка вследствие несовместимости версии. Возникает, если вызываемый компонент не поддерживает ожидаемую приложением версию БиоАПИ.
| #define BioAPIERR_INVALID_DATA | (0x00010b) |
|---|
Данные во входном параметре недействительны.
| #define BioAPIERR_UNABLE_TO_CAPTURE | (0x00010c) |
|---|
Связанный ПБУ не может получить исходные образцы от запрашиваемого модуля БиоАПИ.
| #define BioAPIERR_TOO_MANY_HANDLES | (0x00010d) |
|---|
Связанный ПБУ не имеет более ресурсов для размещения дескрипторов ЗБИ.
| #define BioAPIERR_TIMEOUT_EXPIRED | (0x00010e) |
|---|
Функция завершена по причине истечения времени ожидания.
| #define BioAPIERR_INVALID_BIR | (0x00010f) |
|---|
Входная ЗБИ непригодна для требуемого назначения.
| #define BioAPIERR_BIR_SIGNATURE_FAILURE | (0x000110) |
|---|
Связанный ПБУ не смог подтвердить достоверность подписи ЗБИ.
| #define BioAPIERR_UNABLE_TO_STORE_PAYLOAD | (0x000111) |
|---|
Связанный ПБУ не может сохранить полезную информацию.
| #define BioAPIERR_NO_INPUT_BIRS | (0x000112) |
|---|
Совокупность для идентификации является пустой.
| #define BioAPIERR_UNSUPPORTED_FORMAT | (0x000113) |
|---|
Связанный ПБУ не поддерживает запрашиваемый формат ББД.
| #define BioAPIERR_UNABLE_TO_IMPORT | (0x000114) |
|---|
Связанный ПБУ не может создать ЗБИ из входных данных.
| #define BioAPIERR_INCONSISTENT_PURPOSE | (0x000115) |
|---|
Назначение, записанное в ЗБИ, и требуемое назначение несовместимы с выполняемой функцией.
| #define BioAPIERR_BIR_NOT_FULLY_PROCESSED | (0x000116) |
|---|
Функция требует полностью обработанную ЗБИ.
| #define BioAPIERR_PURPOSE_NOT_SUPPORTED | (0x000117) |
|---|
ПБУ не поддерживает требуемое назначение.
| #define BioAPIERR_USER_CANCELLED | (0x000118) |
|---|
Пользователь отменил операцию до ее завершения или истечения времени ожидания.
| #define BioAPIERR_UNIT_IN_USE | (0x000119) |
|---|
ПБУ или модуль БиоАПИ, присоединенный к ПБУ, в данный момент используется другим биометрическим приложением.
| #define BioAPIERR_INVALID_BSP_HANDLE | (0x00011a) |
|---|
Данный дескриптор ПБУ является недействительным.
| #define BioAPIERR_FRAMEWORK_NOT_INITIALIZED | (0x00011b) |
|---|
Вызов функции без инициализации инфраструктуры БиоАПИ.
| #define BioAPIERR_INVALID_BIR_HANDLE | (0x00011c) |
|---|
Дескриптор ЗБИ недействителен, то есть не существует или был удален.
| #define BioAPIERR_CALIBRATION_NOT_SUCCESSFUL | (0x00011d) |
|---|
Попытка калибровки модуля датчиков не может быть завершена удачно.
| #define BioAPIERR_PRESET_BIR_DOES_NOT_EXIST | (0x00011e) |
|---|
Совокупность ЗБИ не была предустановлена.
| #define BioAPIERR_BIR_DECRYPTION_FAILURE | (0x00011f) |
|---|
ПБУ не может расшифровать входную ЗБИ и, следовательно, не может использовать ее для запрашиваемой операции.
11.2.4 Коды ошибок управления компонентом
| #define BioAPIERR_COMPONENT_FILE_REF_NOT_FOUND | (0x000201) |
|---|
Ссылка на файл компонента не может быть получена.
| #define BioAPIERR_BSP_LOAD_FAIL | (0x000202) |
|---|
Инфраструктура не способна успешно загрузить ПБУ.
| #define BioAPIERR_BSP_NOT_LOADED | (0x000203) |
|---|
ПБУ, для которого запрашивается действие, не загружен.
| #defineBioAPIERR_UNIT_NOT_INSERTED | (0x000204) |
|---|
Модуль БиоАПИ, для которого запрашивается действие, не подключен.
| #define BioAPIERR_INVALID_UNIT_ID | (0x000205) |
|---|
Запрашивается недействительный ИД модуля БиоАПИ.
| #define BioAPIERR_INVALID_CATEGORY | (0x000206) |
|---|
Запрашивается недействительная категория ПБФ или модуля БиоАПИ.
11.2.5 Значения ошибок базы данных
| #define BioAPIERR_INVALID_DB_HANDLE | (0x000300) |
|---|
Недействительный дескриптор базы данных.
| #define BioAPIERR_UNABLE_TO_OPEN_DATABASE | (0x000301) |
|---|
Связанный ПБУ не может открыть указанную базу данных.
| #define BioAPIERR_DATABASE_IS_LOCKED | (0x000302) |
|---|
База данных не может быть открыта для доступа из-за того, что является заблокированной.
| #define BioAPIERR_DATABASE_DOES_NOT_EXIST | (0x000303) |
|---|
Указанной базы данных не существует.
| #define BioAPIERR_DATABASE_ALREADY_EXISTS | (0x000304) |
|---|
Отказ создания базы данных, так как она уже существует.
| #define BioAPIERR_INVALID_DATABASE_NAME | (0x000305) |
|---|
Несуществующее имя базы данных (недействительный УУИД).
| #define BioAPIERR_RECORD_NOT_FOUND | (0x000306) |
|---|
Не существует записи с запрашиваемым ключом.
| #define BioAPIERR_MARKER_IS_INVALID | (0x000307) |
|---|
Указанный маркер недействителен.
| #define BioAPIERR_DATABASE_IS_OPEN | (0x000308) |
|---|
| #define BioAPIERR_INVALID_ACCESS_REQUEST | (0x000309) |
|---|
| #define BioAPIERR_END_OF_DATABASE | (0x00030a) |
|---|
| #define BioAPIERR_UNABLE_TO_CREATE_DATABASE | (0x00030b) |
|---|
Связанный ПБУ не может создать базу данных.
| #define BioAPIERR_UNABLE_TO_CLOSE_DATABASE | (0x00030c) |
|---|
Связанный ПБУ не может закрыть базу данных.
| #define BioAPIERR_UNABLE_TO_DELETE_DATABASE | (0x00030d) |
|---|
Связанный ПБУ не может удалить базу данных.
| #define BioAPIERR_DATABASE_IS_CORRUPT | (0x00030e) |
|---|
Указанная база данных повреждена.
11.2.6 Значения ошибок положения
В различных биометрических технологиях, основанных на отпечатке пальца, лице, радужной оболочке, сетчатке глаза или других характеристиках, устройства получения биометрических данных (модули датчиков) имеют три измерения с позиции пользователя. Коды ошибок, представленные в данном пункте, определяют ошибки, которые могут быть вызваны некорректным размещением биометрической характеристики пользователя в биометрическом устройстве при попытке получения биометрического образца. Примеры расположения датчика отпечатка пальца, который может быть установлен вертикально или горизонтально, приведены на рисунке 4. При неправильном размещении биометрической характеристики коды ошибок должны предоставлять пользователю необходимую информацию. Для вертикально расположенного датчика сообщения о перемещении «вперед» и «назад» соответствуют интенсивности контакта или расстоянию до датчика, а для горизонтально расположенного датчика эти слова соответствуют продольным направлениям.
![]() |
![]() |
|---|---|
| а) Датчик расположен вертикально | б) Датчик расположен горизонтально |
Рисунок 4 — Положение биометрического образца (на примере датчика отпечатка пальца)
Если ПБУ или модулю БиоАПИ, генерирующему код ошибки, известна ориентация устройства получения биометрической характеристики, то он может выбрать код ошибки, правильно описывающий положение пользователя. В другом случае необходимо использовать более общие коды ошибок.
Примечание - Подобные ошибки должны быть возвращены функциями BioAPI_CreateTemplate, BioAPI_Process, BioAPI_ProcessWithAuxBIR, BioAPI_VerifyMatch и BioAPI_IdentifyMatch. Управляемый ПБУ ГИП других биометрических функций (BioAPI_Capture, BioAPI_Enroll, BioAPI_Verify, и BioAPI_Identify) сообщает пользователю, какие действия должны быть выполнены для получения качественного образца.
Биометрические приложения могут использовать следующие коды ошибок, определения которых приведены ниже, для обратной связи с пользователем с целью получения образцов более высокого качества независимо от используемой биометрической технологии, если она имеет три измерения.
Если ПБУ или модуль БиоАПИ, генерирующий код ошибки, не имеют информации об ориентации датчика, то он должен возвратить общие коды ошибок.
11.2.6.1 Общие коды ошибок положения
| #define BioAPIERR_LOCATION_ERROR | (0x000400) |
|---|
| #define BioAPIERR_OUT_OF_FRAME | (0x000401) |
|---|
Недействительное горизонтальное или вертикальное положение.
| #define BioAPIERR_INVALID_CROSSWISE_POSITION | (0x000402) |
|---|
Недействительное поперечное положение.
| #define BioAPIERR_INVALID_LENGTHWISE_POSITION | (0x000403) |
|---|
Недействительное продольное положение.
| #define BioAPIERR_INVALID_DISTANCE | (0x000404) |
|---|
11.2.6.2 Специальные коды ошибок положения
| #define BioAPIERR_LOCATION_TOO_RIGHT | (0x000405) |
|---|
Положение сдвинуто слишком вправо.
| #define BioAPIERR_LOCATION_TOO_LEFT | (0x000406) |
|---|
Положение сдвинуто слишком влево.
| #define BioAPIERR_LOCATION_TOO_HIGH | (0x000407) |
|---|
| #define BioAPIERR_LOCATION_TOO_LOW | (0x000408) |
|---|
| #define BioAPIERR_LOCATION_TOO_FAR | (0x000409) |
|---|
| #define BioAPIERR_LOCATION_TOO_NEAR | (0x00040a) |
|---|
| #define BioAPIERR_LOCATION_TOO_FORWARD | (0x00040b) |
|---|
Положение слишком близко (вперед).
| #define BioAPIERR_LOCATION_TOO_BACKWARD | (0x00040c) |
|---|
Положение слишком далеко (назад).
11.2.7 Коды ошибок качества
| #define BioAPIERR_QUALITY_ERROR | (0x000501) |
|---|
Качество образца слишком низкое для успешного выполнения операции.
Примечание - Ошибки качества могут быть возвращены любой функцией, получающей ЗБИ БиоАПИ в качестве входного параметра.
A.1.1 Проверке на соответствие требованиям настоящего стандарта подвергают:
A.1.2 Требования соответствия для биометрических приложений, инфраструктуры БиоАПИ и ПБУ определены в A.2, A.3 и A.4 соответственно.
Примечание - В настоящем стандарте не рассматриваются вопросы соответствия ПБФ, однако они описаны в других частях комплекса стандартов ИСО/МЭК 19784. Интерфейсы модулей БиоАПИ не стандартизованы.
A.2 Совместимость биометрического приложения спецификации БиоАПИ
A.2.1 Для проверки соответствия настоящему стандарту биометрическое приложение должно произвести вызов каждой используемой функции БиоАПИ в соответствии с требованиями настоящего стандарта. Все входные параметры должны присутствовать и быть действительными. Приложение должно принимать все действительные выходные параметры и возвращаемые значения.
A.2.2 Минимальный набор функций, которые должны быть вызваны, не установлен. Несмотря на это биометрическое приложение должно соответствовать установленным зависимостям вызовов функций.
A.3 Совместимость инфраструктуры спецификации БиоАПИ
A.3.1 Связующим звеном между соответствующими БиоАПИ приложениями и ПБУ является компонент инфраструктуры БиоАПИ. Он предназначен для решения следующих общих задач:
a) загрузки/присоединения ПБУ;
c) поддержки и управления реестром компонентов;
d) пересылки вызовов функций/трансляции ПИП — ИПУ;
e) обработки уведомлений о событиях ПБУ и отправки этих уведомлений о событиях обработчику событий в приложение, которое загрузило данный ПБУ;
g) поддержки вызовов ПИП, связанных с инсталляцией или деинсталляцией компонентов БиоАПИ, с соответствующим обновлением реестра компонентов;
f) поддержки запросов со стороны ПБУ об установленных ПБФ.
A.3.2 Для соответствия БиоАПИ вышеуказанный компонент инфраструктуры БиоАПИ должен:
a) предоставлять функции управления компонентом в соответствии с 8.1;
b) предоставлять данные для реестра компонентов в соответствии с разделом 10;
c) выполнять трансляцию функций ПИП, указанных в разделе 8, в соответствующие функции ИПУ, указанные в разделе 9;
d) соответствовать структурам данных, определенным в разделе 7, и кодам ошибок, определенным в разделе 11, при реализации перечислений a) - c);
e) обрабатывать уведомления о событиях и обратных вызовах в соответствии с 7.28, 8.3 и 9.2.
A.3.3 Соответствующая инфраструктура БиоАПИ должна поддерживать все опции, установленные настоящим стандартом, так как это обеспечивает возможность приложению и ПБУ реализовать любую из этих опций. Не определено никаких подгрупп функций соответствующей инфраструктуры.
A.4 Соответствие ПБУ спецификации БиоАПИ
Для соответствия настоящему стандарту ПБУ должны реализовывать функции, обязательные для ПБУ соответствующего подкласса, в соответствии с ИПУ, определенным в разделе 9. ПБУ должны соответствовать одному из соответствующих подклассов, указанных в A.1.1.
ПБУ должны принимать все действительные входные параметры и возвращать действительные выходные параметры. Необязательные возможности и возвращаемые параметры могут отсутствовать, но если они реализованы, то они должны соответствовать требованиям настоящего стандарта. Дополнительные параметры не требуются.
Инсталляционный процесс ПБУ должен представить совокупность всех необходимых записей реестра компонентов.
ПБУ должны иметь действительный и уникальный УУИД, связанный с определенным программным продуктом и версией ПБУ.
Примечание - УУИД может быть самогенерируемым (ИСО 9834-8) и может быть одним и тем же в сложной системе, где установлен тот же ПБУ продукт/версия.
ЗБИ, созданные ПБУ, должны соответствовать структурам данных, определенным в разделе 7. ПБУ должны возвращать только данные BioAPI_BIR, содержащие зарегистрированный FormatOwner со связанным действительным FormatID (7.6 и приложение B).
ПБУ должны выполнять обработку ошибок в соответствии с разделом 11.
Все ПБУ должны поддерживать основные операции управления компонентом (9.3.1), операции над дескрипторами (9.3.2), событиями (9.3.3.1) и утилитами (9.3.7). Обратные вызовы (9.3.3.2), операции над базой данных (9.3.5) и операции над модулями БиоАПИ (9.3.6) являются необязательными.
Обобщенные требования соответствия ПБУ каждого подкласса ПБУ приведены в таблице A.1. Подробное описание требований приведено в следующих подразделах. Соответствие относительно опциональных возможностей приведено в A.4.6.
A.4.1 Соответствие ПБУ для верификации спецификации БиоАПИ
ПБУ для верификации — ПБУ, способные выполнять сопоставление «один к одному» (верификацию) и не способные выполнять сопоставление «один ко многим» (идентификацию).
Примечание - Сопоставление «один ко многим» может быть реализовано в виде последовательности запросов сопоставления «один к одному».
Для соответствия настоящему стандарту ПБУ для верификации должен поддерживать следующие биометрические функции:
A.4.1.1 Для биометрической функции BioSPI_Verify необходима поддержка только лучшего значения MaxFMRRequested. ПБУ должен возвращать это поддерживаемое значение (FMRAchieved). Если в ПБУ реализована грубая оценка, то ПБУ должен указать в реестре компонентов это свойство.
Примечание — Критерии использования ОЛС для оценки схожести и пороговой классификации приведены в разделе C.4 приложения C.
Использование параметра Subtype является необязательным.
Возвращение полезной информации (Payload) необходимо только в том случае, если она связана со входным контрольным шаблоном и если оценка схожести превышает значение FMRAchieved (ПБУ должен внести в реестр компонентов минимальное значение ОЛС, требуемое для возвращения полезной информации).
Возвращение AdaptedBIR является необязательным. Возвращение исходных данных (AuditData) является необязательным.
ПБУ должны предоставлять весь необходимый интерфейс пользователя (в качестве интерфейса пользователя по умолчанию), связанный с получением данных, являющимся частью операции верификации. Поддержка контролируемого приложением ГИП является необязательной.
A.4.1.2 Для биометрической функции BioSPI_Enroll должно приниматься только назначение BioAPI_PURPOSE_ENROLL_FOR_VERIFICATION_ONLY (регистрация только для верификации). Если запрашивается другое неподдерживаемое назначение, то BioAPI_RETURN должно содержать тип ошибки.
Использование Payload (возвращение полезной информации) является необязательным (то есть, если полезная информация предусмотрена приложением, но не поддерживается ПБУ, она не обязательно должна быть принята).
Принятие и использование параметра Subtype является необязательным.
Если ПБУ поддерживает более одного формата данных ЗБИ (как указано в схеме ПБУ в реестре компонентов), он должен принимать входной параметр OutputFormat и возвращать NewTemplate в этом формате.
Использование входного ReferenceTemplate (если он предоставлен) для создания выходного NewTemplate является необязательным.
Возврат исходных данных (AuditData) является необязательным.
Все ПБУ должны предоставлять весь необходимый интерфейс пользователя (в качестве интерфейса пользователя по умолчанию), связанный с получением данных, являющимся частью операции Enroll. Поддержка контролируемого приложением ГИП является необязательной.
A.4.2 Соответствие ПБУ для идентификации спецификации БиоАПИ
ПБУ для идентификации — ПБУ, способные выполнять как сопоставление «один ко многим» (идентификацию), так и сопоставление «один к одному» (верификацию). Для соответствия стандарту БиоАПИ ПБУ для идентификации должен поддерживать следующие биометрические функции:
A.4.2.1 Для биометрической функции BioSPI_Verify необходима поддержка только лучшего значения MaxFMRRequested. ПБУ должен возвращать это поддерживаемое значение (FMRAchieved). Если в ПБУ реализована грубая оценка, то ПБУ должен указать в реестре компонентов это свойство.
Примечание — Критерии использования ОЛС для оценки схожести и пороговой классификации приведены в разделе C.4 приложения C.
Принятие и использование параметра Subtype является необязательным.
Возвращение полезной информации (Payload) необходимо только в том случае, если она связана со входным ReferenceTemplate и если оценка схожести превышает значение FMRAchieved. ПБУ должен внести в реестр компонентов минимальное значение ОЛС, требуемое для возвращения полезной информации.
Возвращение AdaptedBIR является необязательным. Возвращение исходных данных (AuditData) является необязательным.
Все ПБУ должны предоставлять весь необходимый ГИП (в качестве интерфейса пользователя по умолчанию), связанный с получением данных, являющийся частью операции верификации. Поддержка контролируемого приложением ГИП является необязательной.
A.4.2.2 Для биометрической функции BioSPI_Identify необходима поддержка только лучшего значения MaxFMRRequested. Должен быть обеспечен возврат списка Candidates. ПБУ может возвратить значения поля FMRAchieved в виде следующего ближайшего шага/приращения. ПБУ должен указать в реестре компонентов, реализована ли в нем грубая оценка.
Примечание — Критерии использования ОЛС для оценки схожести и пороговой классификации приведены в разделе C.4 приложения C.
Поддержка режима категоризации является необязательной.
Возврат исходных данных (AuditData) является необязательным.
Все ПБУ должны предоставлять весь необходимый ГИП (в качестве интерфейса пользователя по умолчанию), связанный с получением данных, являющийся частью операции Identify. Поддержка контролируемого приложением ГИП является необязательной.
A.4.2.3 Для биометрической функции BioSPI_Enroll должны приниматься только следующие значения:
- BioAPI_PURPOSE_ENROLL;
- BioAPI_PURPOSE_ENROLL_FOR_VERIFICATION_ONLY;
- BioAPI_PURPOSE_ENROLL_FOR_IDENTIFICATION_ONLY.
Если запрашивается другое неподдерживаемое назначение, то BioAPI_RETURN должно содержать тип ошибки. Принятие Payload является необязательным.
Принятие и использование параметра Subtype является необязательным.
Если ПБУ поддерживает более одного формата данных ЗБИ (как указано в схеме ПБУ в реестре компонентов), то он должен принимать входной параметр OutputFormat и возвращать NewTemplate в этом формате.
Использование входного ReferenceTemplate (если он предоставлен) для создания выходного NewTemplate является необязательным.
Возврат исходных данных (AuditData) является необязательным.
ПБУ должны предоставлять весь необходимый ГИП (в качестве интерфейса пользователя по умолчанию), связанный с получением данных, являющийся частью операции регистрации. Поддержка контролируемого приложением ГИП является необязательной.
A.4.3 Соответствие ПБУ для получения данных спецификации БиоАПИ
ПБУ для получения данных — ПБУ, предоставляющие интерфейс к одному или нескольким биометрическим датчикам и возвращающие промежуточные ЗБИ, которые могут затем использоваться другими ПБУ (например, биометрическим механизмом БиоАПИ, см. A.4.4 и A.4.5). Данный тип ПБУ не предоставляет возможности для обработки или сопоставления получаемых данных. Для соответствия стандарту БиоАПИ ПБУ для получения данных должно поддерживать следующую биометрическую функцию:
A.4.3.1 Для биометрической функции BioSPI_Capture возврат исходных данных (AuditData) является необязательным.
Принятие и использование параметра Subtype является необязательным.
Если ПБУ поддерживает более одного формата данных ЗБИ (как указано в схеме ПБУ в реестре компонентов), то он должен принимать входной параметр OutputFormat и возвращать NewTemplate в этом формате.
ПБУ должны предоставлять весь необходимый ГИП (в качестве интерфейса пользователя по умолчанию), связанный с операцией BioSPI_Capture. Поддержка контролируемого приложением ГИП является необязательной.
A.4.4 Соответствие механизма верификации спецификации БиоАПИ
Механизмы биометрической верификации — ПБУ, содержащие алгоритмы биометрической обработки и сопоставления «один к одному», но не выполняющие получение биометрических данных. Как правило, они используются совместно с другим ПБУ, управляющим операцией получения данных (устройство получения данных либо полноценный ПБУ). Для соответствия настоящему стандарту биометрический механизм должен поддерживать следующие биометрические функции:
A.4.4.1 Для биометрической функции BioSPI_CreateTemplate должно приниматься только назначение BioAPI_PURPOSE_ENROLL_FOR_VERIFICATION_ONLY (регистрация только для верификации). Если установлено другое назначение, то BioAPI_RETURN должно содержать тип ошибки.
Если ПБУ поддерживает более одного формата данных ЗБИ (как указано в схеме ПБУ в реестре компонентов), то он должен принимать входной параметр OutputFormat и возвращать NewTemplate в этом формате.
Принятие полезной информации (Payload) является необязательным. Обновление шаблона (с использованием входного ReferenceTemplate) является необязательным.
A.4.4.2 Для биометрической функции BioSPI_Process должны приниматься только входные CapturedBIR с назначением BioAPI_PURPOSE_VERIFY. Если установлено другое назначение, то BioAPI_RETURN должно содержать тип ошибки.
Если ПБУ поддерживает более одного формата данных ЗБИ (как указано в схеме ПБУ в реестре компонентов), то он должен принимать входной параметр OutputFormat и возвращать NewTemplate в этом формате.
A.4.4.3 Для биометрической функции BioSPI_VerifyMatch должны приниматься только входные ProcessedBIR с назначением BioAPI_PURPOSE_VERIFY и входные ReferenceTemplate с назначением BioAPI_PURPOSE_ENROLL_FOR_VERIFICATION_ONLY. Если установлены другие назначения, то BioAPI_RETURN должно содержать тип ошибки.
Необходима поддержка только лучшего значения MaxFMRRequested, однако ПБУ должен возвращать это поддерживаемое значение (FMRAchieved). Если в ПБУ реализована грубая оценка, то ПБУ должен указать в реестре компонентов это свойство.
Примечание — Критерии использования ОЛС для оценки схожести и пороговой классификации приведены в разделе C.4 приложения C.
Возвращение полезной информации (Payload) необходимо только в том случае, если она связана со входным контрольным шаблоном и если оценка схожести превышает значение FMRAchieved (ПБУ должен внести в реестр компонентов минимальное значение ОЛС, необходимое для возвращения полезной информации).
Возвращение AdaptedBIR является необязательным.
A.4.5 Соответствие механизма идентификации спецификации БиоАПИ
Для соответствия настоящему стандарту механизм биометрической идентификации должен удовлетворять всем требованиям соответствия, предъявляемым к механизму биометрической верификации, за исключением того, что функция BioSPI_CreateTemplate должна принимать CapturedBIR со значением параметра Purpose BioAPI_PURPOSE_ENROLL_FOR_IDENTIFICATION_ONLY и функция BioSPI_Process должна принимать CapturedBIR со значением параметра Purpose BioAPI_PURPOSE_IDENTIFY; также должно быть обеспечено выполнение следующей биометрической функции:
A.4.5.1 Для биометрической функции BioSPI_IdentifyMatch необходима поддержка только ближайшего лучшего значения MaxFMRRequested. Требуется возврат списка Candidates, однако ПБУ может возвратить значения для поля FMRAchieved в виде следующего ближайшего шага/приращения. ПБУ должен указать в реестре компонентов, реализована ли в нем грубая оценка.
Примечание — Критерии использования ОЛС для оценки схожести и пороговой классификации приведены в разделе C.4 приложения C.
Поддержка режима категоризации является необязательной.
A.4.6 Дополнительные возможности
Представленные в данном подразделе возможности являются необязательными для поддержки ПБУ и соответствия БиоАПИ. Однако дополнительные возможности должны соответствовать следующим требованиям:
- реализованные дополнительные возможности должны соответствовать требованиям настоящего стандарта;
- ПБУ должны вносить (при установке) в реестр компонентов (с помощью элемента OptionsMask, относящегося к BSPSchema в функции реестра BioAPI_Util_InstallBSP, см. 10.2.1) информацию о всех поддерживаемых и неподдерживаемых возможностях;
- документация ПБУ должна включать в себя таблицу, в которой должны быть указаны все поддерживаемые и неподдерживаемые возможности.
A.4.6.1 Дополнительные функции
A.4.6.1.1 Элементарные функции
Несмотря на то что данные функции являются необязательными, рекомендуется, чтобы следующие элементарные функции поддерживались всеми ПБУ, если их выполнение поддерживается базовой технологией.
A.4.6.1.1.1 Если поддерживается функция BioSPI_Capture, то для ПБУ для верификации необходимо только значение параметра Purpose BioAPI_PURPOSE_VERIFY или BioAPI_PURPOSE_ENROLL_FOR_VERIFICATION_ONLY. Если установлено другое неподдерживаемое назначение, то BioAPI_RETURN должно содержать условие ошибки. Данная функция должна возвратить CapturedBIR с назначением BioAPI_PURPOSE_VERIFY, BioAPI_PURPOSE_ENROLL_FOR_VERIFICATION_ONLY или BioAPI_PURPOSE_ENROLL соответственно.
Если данная функция поддерживается, то ПБУ для идентификации должны принимать все назначения (кроме BioAPI_PURPOSE_AUDIT), даже если нет различий в содержании или формате возвращаемых данных.
Принятие и использование параметра Subtype является необязательным.
Если ПБУ поддерживает более одного формата данных ЗБИ (как указано в схеме ПБУ в реестре компонентов), он должен принимать входной параметр OutputFormat и возвращать NewTemplate в этом формате.
Возврат исходных данных (AuditData) является необязательным.
Все ПБУ должны предоставлять весь необходимый ГИП (в качестве интерфейса пользователя по умолчанию), связанный с операцией BioSPI_Capture. Поддержка контролируемого приложением ГИП является необязательной.
A.4.6.1.1.2 Если поддерживается функция BioSPI_CreateTemplate, то для ПБУ для верификации необходимы только входные CapturedBIRs со значением параметра Purpose BioAPI_PURPOSE_ENROLL_FOR_VERIFICATION_ONLY. Если установлено неподдерживаемое назначение, то BioAPI_RETURN должно содержать условие ошибки.
Если данная функция поддерживается, ПБУ идентификации должны принимать входные CapturedBIRs, имеющие назначение, связанное с регистрацией.
Принятие полезной информации (Payload) является необязательным. Обновление шаблона (входного ReferenceTemplate) необязательно.
Если ПБУ поддерживает более одного формата данных ЗБИ (как указано в схеме ПБУ в реестре компонентов), он должен принимать входной параметр OutputFormat и возвращать NewTemplate в этом формате.
A.4.6.1.1.3 Если поддерживается функция BioSPI_Process, для ПБУ для верификации требуются входные CapturedBIRs только со значением параметра Purpose BioAPI_PURPOSE_VERIFY. Если установлено неподдерживаемое назначение, то BioAPI_RETURN должно содержать условие ошибки.
Если данная функция поддерживается, ПБУ для идентификации должны принимать CapturedBIRs со значением параметра Purpose или BioAPI_PURPOSE_VERIFY, или BioAPI_PURPOSE_IDENTIFY, даже если нет различий в содержании или формате возвращаемых данных.
Если ПБУ поддерживает более одного формата данных ЗБИ (как указано в схеме ПБУ в реестре компонентов), он должен принимать входной параметр OutputFormat и возвращать ProcessedBIR в этом формате.
A.4.6.1.1.4 Если поддерживается функция BioSPI_ProcessWithAuxBIR, то для ПБУ для верификации необходимы входные CapturedBIRs только со значением параметра Purpose BioAPI_PURPOSE_VERIFY. Если установлено неподдерживаемое назначение, то BioAPI_RETURN должно содержать тип ошибки.
Если данная функция поддерживается, то ПБУ для идентификации должны принимать CapturedBIRs со значением параметра Purpose или BioAPI_PURPOSE_VERIFY, или BioAPI_PURPOSE_IDENTIFY, даже если нет различий в содержании или формате возвращаемых данных.
ПБУ, поддерживающие данную функцию, должны содержать в своей документации формат и содержание (или источник) AuxiliaryData, которые принимаются как входной параметр.
Если ПБУ поддерживает более одного формата данных ЗБИ (как указано в схеме ПБУ в реестре компонентов), он должен принимать входной параметр OutputFormat и возвращать ProcessedBIR в этом формате.
A.4.6.1.1.5 Если поддерживается функция BioSPI_VerifyMatch, то должны приниматься входные ProcessedBIR только со значением параметра Purpose BioAPI_PURPOSE_VERIFY и входные ReferenceTemplate со значением параметра Purpose или BioAPI_PURPOSE_ENROLL, или BioAPI_PURPOSE_ENROLL_FOR_VERIFICATION_ONLY. Если установлены неподдерживаемые назначения, то BioAPI_RETURN должно содержать условие ошибки.
Необходима поддержка только лучшего значения MaxFMRRequested, однако ПБУ должен возвращать это поддерживаемое значение (FMRAchieved). Если в ПБУ реализована грубая оценка, то ПБУ должен указать в реестре компонентов это свойство.
Примечание — Критерии использования ОЛС для оценки схожести и пороговой классификации приведены в разделе C.4 приложения C.
Возвращение полезной информации (Payload) необходимо только в том случае, если она связана со входным контрольным шаблоном и если оценка схожести превышает значение FMRAchieved. ПБУ должен внести в реестр компонентов минимальное значение ОЛС, необходимое для возвращения полезной информации.
Возвращение параметра AdaptedBIR является необязательным.
A.4.6.1.1.6 Если поддерживается функция BioSPI_IdentifyMatch, то должны приниматься входные ЗБИ (ProcessedBIR) только со значением параметра Purpose BioAPI_PURPOSE_IDENTIFY. Если установлено неподдерживаемое назначение, то BioAPI_RETURN должно содержать условие ошибки.
Необходима поддержка только лучшего значения MaxFMRRequested. Требуется возврат списка Candidates, однако ПБУ может возвратить значение для поля FMRAchieved в виде следующего ближайшего шага/приращения. Если в ПБУ реализована грубая оценка, то ПБУ должен указать в реестре компонентов это свойство.
Примечание — Критерии использования ОЛС для оценки схожести и пороговой классификации приведены в разделе C.4 приложения C.
Поддержка режима категоризации является необязательной.
A.4.6.1.2 Для операций над базой данных не требуется, чтобы ПБУ предоставлял внутреннюю или управляемую базу данных ЗБИ. Однако если она предоставляется, то должны предоставляться все функции управления для доступа и обслуживания базы данных. Все предоставляемые функции управления базой данных должны соответствовать приведенным описаниям.
A.4.6.1.3 Функция BioSPI_Import не является обязательной. Если она предоставляется, то это должно быть отображено в реестре компонентов и функция должна быть реализована в соответствии с приведенным описанием.
ПБУ для верификации должен выполнять импортированные только тех данных, у которых параметр назначения установлен в BioAPI_PURPOSE_ENROLL или BioAPI_PURPOSE_ENROLL_FOR_VERIFICATION_ONLY. ПБУ для идентификации должен выполнять импортирование только тех данных, у которых параметр назначения установлен в BioAPI_PURPOSE_ENROLL или BioAPI_PURPOSE_ENROLL_FOR_IDENTIFICATION_ONLY.
Если ПБУ поддерживает более одного формата данных ЗБИ (как указано в схеме ПБУ в реестре компонентов), то он должен принимать входной параметр OutputFormat и возвращать ConstructedBIR в указанном формате.
A.4.6.1.4 Функция BioSPI_PresetIdentifyPopulation не является обязательной. Если она предоставляется, то это должно быть отображено в реестре компонентов и функция должна быть реализована в соответствии с приведенным описанием.
A.4.6.1.5 Операции с модулями БиоАПИ не являются обязательными, так же как и все операции над модулями BioAPI. Если они предоставляются, то это должно быть отображено в реестре компонентов и операции должны быть реализованы в соответствии с приведенным описанием.
A.4.6.2 Дополнительные подфункции
В таблице A.2 приведены дополнительные возможности, для каждой из которых ПБУ должен указать в матрице опций в пределах схемы ПБУ реестра компонентов и в документации ПБУ, поддерживает он ее или нет.
A.4.6.2.1 Возврат исходных данных
Функции, выполняющие получение биометрических данных от датчика, могут дополнительно поддерживать возврат исходных данных для визуализации или контроля. Если данная функция поддерживает возврат исходных данных, то выходной параметр AuditData будет содержать указатель на эти данные. Если возврат исходных данных не поддерживается, то ПБУ возвращает значение BioAPI_UNSUPPORTED_BIR_HANDLE.
A.4.6.2.2 Возврат значения качества
После получения биометрических данных от датчика ПБУ может вычислить значение относительного качества для полученных биометрических данных, которое будет включено в заголовок возвращаемого CapturedBIR (и необязательного AuditData). Если функция возврата значения качества поддерживается, то поле заголовка будет содержать положительное значение от 1 до 100. Если функция возврата значения качества не поддерживается, то значение поля будет установлено на минус 2. Значение устанавливается в процессе выполнения BioSPI_Capture и BioSPI_Enroll.
Аналогично для обработанной ЗБИ может быть вычислено другое значение качества, которое добавляется в заголовок ProcessedBIR (и необязательного AdaptedBIR). Это происходит в процессе выполнения функций BioSPI_CreateTemplate, BioSPI_Process, BioSPI_ProcessWithAuxBIR, BioSPI_Verify, BioSPI_VerifyMatch, BioSPI_Enroll и BioSPI_Import (ConstructedBIR).
ПБУ должен внести в реестр компонентов (OptionsMask) информацию о том, поддерживает он или нет вычисление качества для ЗБИ каждого типа: исходной, промежуточной и обработанной.
Примечание — Дополнительная информация относительно качества данных приведена в 7.49.
A.4.6.2.3 Управляемый приложением ГИП
ПБУ поддерживает необходимые обратные вызовы, чтобы дать возможность приложению управлять видом и поведением ГИП.
Для соответствия настоящему стандарту все ПБУ должны по умолчанию предоставлять возможность визуализации информации интерфейса пользователя (выполнение визуализации необходимо и требуется биометрической технологией) во время операций получения данных. Все предоставляемые ПБУ ГИП должны поддерживать механизм прерывания и отмены оператором.
ПБУ может дополнительно также поддерживать управляемый приложением ГИП. В данном случае ПБУ должен поддерживать функции BioSPI_SetGUICallbacks.
Если поддерживается управляемый приложением ГИП, то ПБУ может дополнительно предоставлять потоковые данные (например, для распознавания по голосу и по лицу). Если потоковые данные предоставляются, то ПБУ должен поддерживать входные параметры GuiStreamingCallback и GuiStreamingCallbackCtx.
Все ПБУ должны внести в реестр компонентов информацию о поддерживаемых функциях и опциях ГИП.
Примечание — Дополнительная информация относительно вопросов интерфейса пользователя приведена в разделе C.5 приложения C.
A.4.6.2.4 Обратные вызовы потокового ГИП
ПБУ предоставляет потоковые данные ГИП и поддерживает потоковый обратный вызов ГИП.
A.4.6.2.5 Обнаружение источника
ПБУ может обнаруживать наличие доступных образцов и поддерживает событие наличия источника.
Примечание - Примером доступных образцов может служить физический контакт пальца с рабочей поверхностью сканера отпечатков пальцев.
4.6.2.6 Полезная информация
Некоторые ПБУ могут дополнительно поддерживать хранение полезной информации при создании контрольного шаблона и выполнять возврат полезной информации после успешной верификации. Содержание полезной информации не ограничено и может включать в себя секретные данные, такие как личный идентификационный номер или секретные ключи, связанные с пользователем, биометрические данные которого содержатся в ЗБИ. Данные полезной информации создаются в процессе выполнения операций BioSPI_Enroll или BioSPI_CreateTemplate и возвращаются как результат операций BioSPI_Verify или BioSPI_VerifyMatch. Если функция предусмотрена, то ПБУ должен внести в реестр компонентов максимальный размер поля для полезной информации. Если максимальный размер равен нулю, то это указывает на то, что перенос полезной информации не поддерживается. Если размер входной полезной информации превышает установленный размер, то функция должна возвратить код ошибки. Если перенос полезной информации не поддерживается, выходной параметр Payload должен иметь значение минус 1.
Примечание — Дополнительная информация относительно полезной информации приведена в разделе C.5 приложения C.
A.4.6.2.7 Функции безопасности
БиоАПИ поддерживает, но не требует реализации функций безопасности. К тому же он не определяет функции, выходящие за рамки ПИП.
ПБУ вносит в реестр компонентов информацию о возможности поддержки шифрования ЗБИ и создания электронной подписи ЗБИ.
Примечание - Управление ключами, связанное с данными возможностями, не адресуется данным ПИП.
Функции CreateTemplate и Enroll могут быть предоставлены приложением с ранее зарегистрированным шаблоном (ReferenceTemplate) для обновления (то есть, ПБУ может использовать этот шаблон отдельно с вновь полученными данными для создания NewTemplate). ПБУ должен в любом случае возвратить NewTemplate (за исключением события ошибки), но если обновление шаблона не поддерживается, в расчетах может игнорироваться предоставляемый ReferenceTemplate.
Некоторые ПБУ могут дополнительно обеспечивать возможность использования вновь полученных биометрических данных для обновления контрольной ЗБИ. Данная операция может быть выполнена только в результате успешного завершения функций BioSPI_Verify или BioSPI_VerifyMatch (то есть в том случае, если Result равен BioAPI_TRUE). Данная процедура используется для того, чтобы сохранить новую зарегистрированную ЗБИ с самым высоким качеством. ПБУ принимает решение о необходимости выполнения адаптации, основываясь на таких факторах, как качество, прошедшее время и наличие существенных различий. Если ПБУ не поддерживает адаптацию, возвращаемый параметр AdaptedBIR должен иметь значение минус 2 (BioAPI_UNSUPPORTED_BIR_HANDLE). Если ПБУ поддерживает адаптацию, но по некоторым причинам не способен выполнить адаптацию или принял решение не выполнять адаптацию, то возвращаемый параметр AdaptedBIR должен иметь значение минус 1 (BioAPI_INVALID_BIR_HANDLE). ПБУ должен внести в реестр компонентов (OptionsMask) информацию о поддержке функций адаптации шаблона.
ПБУ для идентификации могут дополнительно поддерживать методы ограничения совокупности записей базы данных, по которым должен производиться поиск, для снижения времени отклика. Данная функция используется только в ПБУ для идентификации и выполняется только в процессе выполнения операций BioSPI_Identify и BioSPI_IdentifyMatch. ПБУ для идентификации должны внести в реестр компонентов информацию о поддержке данной функции. ПБУ для идентификации не поддерживают данную функцию и могут игнорировать входной параметр Binning включения/выключения данного режима.
Примечание - Для настройки или модификации стратегии режима категоризации не предоставляется явная поддержка ПИП, кроме опции включения/выключения данного режима.
A.4.6.2.11 Независимое устройство
Поддерживаемое устройство является независимым, если помимо функции получения биометрических данных оно может выполнять как минимум функцию верификации или содержать базу данных ЗБИ.
Примечание - Независимое устройство может содержать два и более модулей БиоАПИ, то есть модуль датчика плюс еще один модуль другой категории БиоАПИ.
A.4.6.2.12 Сопоставление на карте
ПБУ поддерживает возможность выполнения операции сопоставления на смарт-карте. В зависимости от подкласса ПБУ требуется, чтобы ПБУ мог создавать и использовать пригодные для СНК ЗБИ. Может потребоваться также, чтобы ПБУ мог взаимодействовать непосредственно или косвенно с картой.
A.4.6.2.13 Подтип для получения данных
ПБУ поддерживает возможность определения подтипа биометрических данных (например, правый указательный палец или левый глаз). Если данная опция поддерживается и приложение определяет подтип получаемых данных, то ПБУ должен получить данные этих признаков и указать их в заголовке возвращаемого CapturedBIR. Это применимо ко всем функциям, требующим получения данных (то есть BioSPI_Capture, BioSPI_Enroll, BioSPI_Verify или BioSPI_Identify).
ПБУ поддерживает присоединение альтернативных устройств датчика с помощью связанного ИПФ. Если датчик присоединен, ПБУ использует это устройство для всех функций, требующих получения биометрических данных (то есть BioSPI_Capture, BioSPI_Enroll, BioSPI_Verify или BioSPI_Identify).
В дополнение к внутренним возможностям работы с архивом ПБУ поддерживает присоединение альтернативного модуля архива. В данном случае ПБУ поддерживает интерфейс к такому модулю через связанный ИПФ. При этом также требуется, чтобы ПБУ поддерживал операции над базой данных BioSPI. Если архив присоединен, ПБУ использует этот архив путем передачи УУИД базы данных, связанной с этим архивом (базой данных), любой функции базы данных.
ПБУ поддерживает присоединение альтернативного модуля (алгоритма) сопоставления. Если модуль присоединен, ПБУ использует альтернативный модуль для любой операции сопоставления, для которой он пригоден (то есть в случае модуля сопоставления «один к одному» может выполняться операция верификации).
ПБУ поддерживает присоединение альтернативного модуля (алгоритма) обработки. Если модуль присоединен, ПБУ использует альтернативный модуль для всех вызовов функций BioSPI_Process или BioSPI_CreateTemplate.
A.4.6.2.18 Грубая оценка схожести
ПБУ поддерживает возврат оценки схожести на шаге, на котором она была специально завышена для подсчета попыток атак (см. приложение C, подраздел C.4.6). До тех пор, пока данная опция включена в OptionsMask, ПБУ предоставляет конечную квантованную оценку схожести.
ФОРМАТ ПОСТОЯННОГО КЛИЕНТА СПЕЦИФИКАЦИИ ЕСФОБД: ФОРМАТ ПОСТОЯННОГО КЛИЕНТА БиоАПИ
B.1 Наименование постоянного клиента
B.2 Спецификатор постоянного клиента
257 (0x0101). Данный номер был выделен регистрационной комиссией по ИСО/МЭК 19785-2.
B.3 Наименование формата постоянного клиента
ИСО/МЭК СТК1/ПК 37 Постоянный клиент БиоАПИ.
B.4 Идентификатор формата постоянного клиента
6 (0x0006). Данный номер был зарегистрирован в соответствии с требованиями ИСО/МЭК 19785-2.
B.5 Идентификатор объекта АСН.1 для данного формата постоянного клиента
{iso registration-authority cbeff(19785) organization(0) 257 bir(1) patron-format (6)}
Приложения и ПБУ, требующие ЗБИ, которые полностью поддерживаются структурой данных Си, определенной в настоящем стандарте.
Данная спецификация формата постоянного клиента имеет версию идентификатора 0x20 (номер редакции издания — 2, номер поправки или изменения данной редакции — 0).
Настоящий стандарт соответствует ЕСФОБД следующей версии: номер редакции издания — 2, номер поправки или изменения данной редакции — 0.
Данный формат постоянного клиента соответствует обязательному стандарту на структуру данных Си для элементов данных ЕСФОБД, которые приведены в разделе 7.
Настоящий формат постоянного клиента предназначен для надежного сохранения или для передачи ЗБИ БиоАПИ как модуля между системами.
Примечание — Пример текста программы для создания формата постоянного владельца БиоАПИ из BioAPI_BIR структуры данных Си в соответствии с 7.4 приведен в приложении D.
Последовательность байтов/битов в представлении данного формата должна быть в формате обратного порядка (big-endian) без каких-либо вставок между элементами данных для всей памяти и передачи между системами.
Определенные ЕСФОБД элементы данных, не включенные в таблицу B.1, определены в настоящем формате постоянного клиента как абстрактное значение типа NO VALUE AVAILABLE (данные недоступны).
| Наименование поля БиоАПИ, ссылки БиоАПИ и поля формата постоянного клиента | Наименование элемента данных ЕСФОБД | Длина, байт | Абстрактное значение | Кодировка a | Ссылка ЕСФОБД |
| Длина ЗБИ b | Недоступно | 4 c | Длина в байтах полного кода ЗБИ, за исключением поля длины | Целое | Недоступна |
| BioAPI_VERSION (БиоАПИ, 7.57) | CBEFF_patron_header_version | 1 | Основной номер равен 2 Дополнительный номер равен 0 | '20' | 6.5.24 |
| BioAPI_BIR_DATA_TYPE (БиоАПИ, 7.9) | CBEFF_BDB_encryption_options | 1 | NOT ENCRYPTED | '0_' | 6.5.3 |
| ENCRYPTED | '1_' | ||||
| CBEFF_BIR_integrity_options | NOT SIGNED | '0_' | 6.5.4 | ||
| SIGNED | '2_' | ||||
| CBEFF_BDB_processed_level | NO VALUE | '_0' | 6.5.11 | ||
| AVAILABLE RAW | '_1' | ||||
| INTERMEDIATE | '_2' | ||||
| PROCESSED | '_4' | ||||
| (признак индекса) | Недоступно | INDEX PRESENT | '8_' | Недоступна | |
| BioAPI_BIR_BIOMETRIC_DATA_FORMAT (БиоАПИ, 7.6) | CBEFF_BDB_format_owner | 2 2 | FormatOwner | Целое | 6.5.1; |
| CBEFF_BDB_format_type | FormatType | Целое | 6.5.2 | ||
| BioAPI_QUALITY (БиоАПИ, 7.49) | CBEFF_BDB_quality | 1 | NOT SUPPORTED | -2 | 6.5.15 |
| NOT SET (NO VALUE AVAILABLE) | -1 | ||||
| VALUE | 0 — 100 | ||||
| BioAPI_BIR_PURPOSE (БиоАПИ, 7.12) | CBEFF_BDB_purpose | 1 | NO VALUE | 0 | 6.5.14 |
| AVAILABLE | 1 | ||||
| VERIFY | 2 | ||||
| IDENTIFY | 3 | ||||
| ENROLL | 4 | ||||
| ENROLL_FOR_VERIFICATION_ONLY | 5 | ||||
| ENROLL_FOR_IDENTIFICATION_ONLY | 6 | ||||
| AUDIT | |||||
| BioAPI_BIR_BIOMETRIC_TYPE (БиоАПИ, 7.8) | CBEFF_BDB_biometric_type | 4 | NO VALUE | '00 00 00 00' | 6.5.6 |
| AVAILABLE | '00 00 00 01' | ||||
| MULTIPLE | '00 00 00 02' | ||||
| FACIAL FEATURES | '00 00 00 04' | ||||
| VOICE | '00 00 00 08' | ||||
| FINGERPRINT | '00 00 00 10' | ||||
| IRIS | '00 00 00 20' | ||||
| RETINA | '00 00 00 40' | ||||
| HAND GEOMETRY | '00 00 00 80' | ||||
| SIGNATURE DYNAMICS | '00 00 01 00' | ||||
| KEYSTROKE DYNAMICS | '00 00 02 00' | ||||
| LIP MOVEMENT | '00 00 04 00' | ||||
| THERMAL FACE IMAGE | '00 00 08 00' | ||||
| THERMAL HAND | '00 00 10 00' | ||||
| IMAGE | '40 00 00 00' | ||||
| GAIT | '80 00 00 00' | ||||
| OTHER | |||||
| PASSWORD | |||||
| BioAPI_BIR_BIOMETRIC_PRODUCT_ID (БиоАПИ, 7.7) | CBEFF_BDB_product_owner | 2 2 | ProductOwner | Целое ненулевое | 6.5.12 |
| CBEFF_BDB_product_type | ProductType | ||||
| NO VALUE AVAILABLE | Целое ненулевое '00 00 00 00' | 6.5.13 | |||
| BioAPI_DATE (БиоАПИ, 7.20) (дата создания) | CBEFF_BDB_creation_date | 4 | NO VALUE AVAILABLE Год, месяц, день | '00 00 00 00' Целое ненулевое | 6.5.9 |
| BioAPI_TIME (БиоАПИ, 7.52) (время создания) | 3 | NO VALUE AVAILABLE Час, минуты, секунды | '99 99 99' Целое | ||
| BioAPI_BIR_SUBTYPE (БиоАПИ, 7.14) | CBEFF_BDB_biometric_subtype | 1 | NO VALUE | '00' | 6.5.7 |
| AVAILABLE | '01' | ||||
| LEFT | '02' | ||||
| RIGHT | '04' | ||||
| THUMB | '08' | ||||
| POINTERFINGER | '10' | ||||
| MIDDLEFINGER | '20' | ||||
| RINGFINGER | '40' | ||||
| LITTLEFINGER MULTIPLE | '80' | ||||
| BioAPI_DATE (БиоАПИ, 7.20) (дата истечения срока) | CBEFF_BDB_validity_period d | 4 | NO VALUE AVAILABLE Год, месяц, день | 00 00 00 00' Целое ненулевое | 6.5.16 |
| BioAPI_BIR_SECURITY_BLOCK_FORMAT (БиоАПИ, 7.13) | CBEFF_SB_format_owner | 2 2 | SecurityFormatOwner SecurityFormatType | Ненулевое целое | 6.5.25 |
| CBEFF_SB_format_type | NO VALUE AVAILABLE | Ненулевое целое '00 00 00 00' | 6.5.26 | ||
| BioAPI_UUID (БиоАПИ, 7.56) (index) | CBEFF_BDB_indexe e | 16 | Индекс базы данных ЗБИ | Целое | 6.5.10 |
| Длина ББД <g> | Недоступно | 4 | Length in bytes of BDB | Целое | Недоступно |
| BioAPI_DATA (БиоАПИ, 7.19) (BiometricData) | Блок биометрических данных (ББД) f | Непостоянный | BiometricData | 6.2.2 | |
| Длина SB <g> | Недоступно | 4 | Длина SB в байтах | Целое | Недоступно |
| BioAPI_DATA (БиоАПИ, 7.19) (SecurityBlock) | Security Block (SB) <h> | Непостоянный | SecurityBlock | 6.2.3 | |
| a По умолчанию кодировка представляет собой целочисленные значения. b Длина ЗБИ не присутствует в представлении структуры данных Си ЗБИ, но присутствует в форматах сохранения и передачи данных. В данном случае длина — длина всей ЗБИ, за исключением самого поля длины ЗБИ, но содержащая все остальные поля заголовков, поле длины ББД, ББД, поле длины блока безопасности и блок безопасности. c ЗБИ БиоАПИ не может содержать ББД и/или блок безопасности, являющиеся достаточно большими — код целой ЗБИ более 4 байтов. d Данное поле БиоАПИ представляет собой вторую часть элемента данных CBEFF_BDB_validity_period; поле BioAPI_DATE (дата создания) — первую часть. e Поле УУИД/индекс присутствует только в том случае, если установлен соответствующий признак в параметре BIR_DATA_TYPE (все остальные поля заголовка ЗБИ присутствуют всегда). f Формат и содержимое ББД определены спецификацией формата ББД, указываемой с помощью значений владельца формата и типа формата, закодированных в параметре BioAPI_BIR_BIOMETRIC_DATA_FORMAT. <g> БиоАПИ не поддерживает ББД или блок безопасности, длина которых более 4 байтов. Длина блока безопасности всегда должна указываться. Если блок безопасности не предусмотрен, его длина должна быть установлена на ноль. <h> Формат и содержимое блока безопасности определены спецификацией формата блока безопасности, указываемой значениями владельца формата безопасности и типом формата безопасности, закодированных в параметре BioAPI_BIR_SECURITY_BLOCK_FORMAT. | |||||
Формат хранения ЗБИ представляет собой последовательность бинарных полей фиксированной длины (отдельно от содержания полей ББД и блока безопасности). Последовательность полей приведена в таблице B.1. В данном виде заголовок может быть длиной либо 36, либо 52 байта, в зависимости от присутствия необязательного поля УУИД (см. таблицу B.1, сноска e).
Примечание - Данный формат также используется для обмена данными ЗБИ, однако в процессе обмена данными на системном, прикладном или структурном уровне может произойти изменение ЗБИ в другой формат постоянного клиента ЕСФОБД. Дополнительная информация о преобразовании формата постоянного клиента приведена в ИСО/МЭК 19785; информация о протоколе биометрического межсетевого обмена (ПБО) — в ИСО/МЭК 24708.
B.11 Формулировка соответствия формата постоянного клиента
B.11.1 Идентифицирующая информация
| Необходимая информация | Ссылки формата постоянного клиента |
|---|---|
| Наименование постоянного клиента | См. B.1 |
| Идентификатор постоянного клиента | См. B.2 |
| Наименование формата постоянного клиента | См. B.3 |
| Идентификатор формата постоянного клиента | См. B.4 |
| Идентификатор объекта АСН.1 формата постоянного клиента | См. B.5 |
| Область применения | См. B.6 |
| Версия формата постоянного клиента | См. B.7 |
| Версия ЕСФОБД | См. B.8 |
B.11.2 Элементы данных и абстрактные значения, определяемые ЕСФОБД
B.11.3 Определенные постоянным клиентом элементы данных и абстрактные значения
Данный формат постоянного клиента определяет дополнительные абстрактные значения или исключает их для двух элементов данных, определенных ЕСФОБД. ИСО/МЭК СТК 1 ПК 37, являющийся постоянным клиентом данного формата постоянного клиента ЕСФОБД, определяет, что такие исключения или различия выполняются в соответствии с утверждением требований ЕСФОБД для соответствия ИСО/МЭК 19785-1. Рассматриваемыми элементами данных являются следующие:
C.1.1 Прикладной уровень является верхним уровнем, на котором реализованы основные биометрические функции, обычно используемые приложением для реализации биометрических возможностей.
C.1.2 ПИП прикладного уровня содержит все функции, которые требуются приложению для биометрической верификации. Поэтому, по возможности, количество дополнительных функциональных возможностей сводится к минимуму. Основной дополнительной функцией является функция идентификации; только специализированные ПБУ могут реализовывать данную функцию для больших совокупностей, и основной причиной того, что возможности базы данных вынесены в интерфейс, является обеспечение возможности ПБУ управлять этими большими совокупностями.
C.1.3 БиоАПИ предназначен для использования как приложениями, так и разработчиками ПБУ. Для обеспечения максимально открытой и простой интеграции технологии (расширяя таким образом ее коммерческую жизнеспособность) предпринятый подход направлен на скрывание или инкапсуляцию до возможного предела сложностей и уникальных аспектов индивидуальных биометрических технологий и отдельных реализаций, программных продуктов и устройств изготовителя с обеспечением абстракции высокого уровня, которая может использоваться в ряде потенциальных программных приложений. Данный подход также обеспечивает повышение универсальности интерфейса для обращения к большему набору потенциальных биометрических технологий и приложений. Доступ к биометрическим функциям осуществляется с помощью набора стандартных интерфейсов, определенных в настоящем стандарте, и поставщики биометрической услуги предоставляют данные механизмы с помощью связанных со стандартом интерфейсов. Теоретически ПБУ, снабженные конструкторами, соответствующими настоящему стандарту интерфейса, могут использоваться для достижения, как минимум, основного уровня функциональных возможностей в пределах любого приложения, разработанного в соответствии с настоящим стандартом.
C.1.4 Настоящий стандарт обеспечивает поддержку нескольких методов верификации, используемых как независимо, так и совместно в «многоуровневой» схеме.
C.2.1 Базовая модель является одинаковой для всех типов биометрических технологий. Сначала должен быть создан первоначальный регистрационный шаблон пользователя. Это достигается путем сбора ряда образцов с помощью любого устройства получения биометрических данных. Из образцов извлекают характерные особенности, и полученные результаты объединяют в шаблон. Процесс создания данного первоначального шаблона называется регистрацией. Алгоритмы, используемые для создания шаблонов, могут быть запатентованными или нет. Первоначальный шаблон сохраняется приложением как контрольный шаблон (также можно обеспечить хранение шаблона с помощью ПБУ в модуле архива БиоАПИ).
C.2.2 Каждый раз, когда пользователь должен быть верифицирован, «живые» образцы получают с датчика, обрабатывают для представления в пригодной для использования форме и сопоставляют с ранее зарегистрированным шаблоном. Такую форму биометрического установления подлинности называют верификацией, так как проводится проверка, является ли пользователь тем, кем он себя называет (то есть проверяется заявляемая идентичность). Биометрические технологии допускают другую форму установления подлинности, которая называется идентификацией. В данной форме пользователь не должен заявлять идентичность; поставщик биометрической услуги сравнивает обработанные образцы пользователя с указанной совокупностью шаблонов и принимает решение, какой из них имеет наибольшую степень схожести. В зависимости от вероятностей сопоставления может быть принято решение об идентичности пользователя и индивидуума, шаблон которого имеет наибольшую степень схожести.
C.2.3 Возможная архитектура реализации технологии БиоАПИ представлена на рисунке C.1. Различные стадии операций верификации и идентификации показаны в области, обозначенной «Поставщик биометрический услуги». Стадии, указанные над данной областью, относятся к элементарным функциям интерфейса верхнего уровня: получение данных, обработка и сопоставление. На рисунке C.1 видно, что ПБУ (или приложение) обладает свободой в размещении своих функциональных возможностей в данных примитивах. Существует еще одна степень свободы, не показанная на данном рисунке: конструктор может разместить большинство или все функции ПБУ в самом биометрическом датчике. На практике, если устройство содержит базу данных ЗБИ, все функции могут быть выполнены в независимом устройстве.
Рисунок C.1 — Возможная архитектура реализации технологии БиоАПИ
C.3.1 В ПИП существует три основные функции абстракции высокого уровня:
Образцы поступают с модуля датчика, обрабатываются для представления в пригодной для использования форме, из которой создается шаблон, который возвращается приложению.
Полученные один или несколько образцов обрабатываются для представления в пригодной для использования форме и сопоставляются с контрольным шаблоном. Результаты сопоставления возвращаются приложению.
Полученные один или несколько образцов обрабатываются для представления в пригодной для использования форме и сопоставляются с набором шаблонов. Возвращаемый список показывает, насколько соответствуют образцы основным кандидатам в наборе.
C.3.2 На рисунке C.1 показано, что обработка биометрических данных с момента получения исходных образцов до их сопоставления с шаблоном может включать в себя много этапов. ПИП предоставляет конструктору максимальную возможность свободной расстановки этапов обработки и позволяет разделить этапы обработки между клиентом (к которому присоединено биометрическое устройство) и сервером. Он также допускает возможность использования независимых устройств, которые могут выполнить все этапы биометрической обработки.
C.3.3 Существует ряд причин, по которым обработка и сопоставление должны быть выполнены на сервере:
a) алгоритмы будут выполняться в более защищенной среде (например, в среде с контролируемым доступом, защищенной брандмауэром);
b) клиентская платформа не имеет достаточной производительности для реализации алгоритмов;
c) база данных пользователей и биометрически защищенные ресурсы могут быть размещены на сервере;
d) идентификация по большой совокупности образцов может быть корректно реализована только на сервере.
В ПИП есть четыре элементарные функции, которые при последовательном использовании могут обеспечить получение того же результата, что и абстракции высокого уровня. Элементарные функции позволяют приложению определять и контролировать время и место выполнения данных операций компонента, что позволяет им быть разделенными во времени и пространстве.
Функция BioAPI_Capture всегда выполняется на клиентском компьютере; попытка выполнить функцию BioAPI_Capture на компьютере без биометрического датчика заканчивается возвращением ошибки, так как функция не поддерживается. Должны быть получены один или несколько образцов (для регистрации, верификации или идентификации). Функция BioAPI_Capture может выполнять полную обработку образца, которая заканчивается созданием ЗБИ для верификации или идентификации. Если обработка не завершена, функция BioAPI_Capture возвращает промежуточную ЗБИ, указывая, что должна быть вызвана функция BioAPI_Process (или BioAPI_CreateTemplate). Если обработка завершена, функция BioAPI_Capture возвращает обработанную ЗБИ, указывая, что функция BioAPI_Process выполнена. Приложение устанавливает тип и назначение образцов, давая возможность ПБУ выполнить специальную обработку. Данное назначение записывается в заголовке созданной ЗБИ.
Алгоритмы обработки могут быть доступны как на клиентском компьютере, так и на сервере. Функция BioAPI_Process предназначена для выполнения необходимой для верификации или идентификации (но не регистрации) обработки образцов. Функция всегда принимает в качестве входного параметра промежуточную ЗБИ и может выполнять обработку до получения конечного шаблона определенного типа, соответствующего указанному назначению. Если функция обработки выполняется на клиентском компьютере, то она может возвращать как обработанную, так и промежуточную ЗБИ, что указывает на необходимость вызова функции BioAPI_Process на сервере. Сервер завершает обработку и возвращает обработанную ЗБИ приложению. Приложение может передать обработку на сервер, а может, с целью экономии пропускной способности (и мощности сервера), вызвать функцию BioAPI_Process на клиентском компьютере.
Примечание - Размеры обработанных ЗБИ всегда меньше промежуточных; уменьшение размера ЗБИ зависит от применяемой технологии, а также от степени обработки, выполненной функцией BioAPI_Capture.
C.3.4.3 Сопоставление — верификация и идентификация
На данном этапе проводится сравнение обработанной ЗБИ с одним шаблоном (верификация) или с набором шаблонов (идентификация). Поддержка функции идентификации является необязательной, но поддерживаемые функции сопоставления всегда доступны на сервере и могут быть доступны на клиентском компьютере.
Функция BioAPI_CreateTemplate предназначена для создания шаблона из зарегистрированных биометрических данных. Входным параметром функции всегда является промежуточная ЗБИ, а результатом — шаблон (то есть обработанная ЗБИ с назначением BioAPI_PURPOSE_ENROLL, BioAPI_PURPOSE_ENROLL_FOR_VERIFICATION_ONLY или BioAPI_PURPOSE_ENROLL_FOR_IDENTIFICATION_ONLY). Дополнительно функция BioAPI_CreateTemplate может принимать старый шаблон и создавать из него новый шаблон, что является адаптацией или обновлением старого шаблона с использованием новых биометрических образцов в виде промежуточных ЗБИ. ПБУ может дополнительно позволить приложению предоставить для сохранения полезную информацию (C.5).
На рисунке C.2 показано возможное распределение элементарных функций между платформами сервера и клиента, в котором приложение контролирует место и время вызова операции, а также обмен информацией между клиентом и сервером.
Примечание — Реализация технологии клиент — сервер также может быть выполнена с использованием биометрического протокола межсетевого обмена, который будет определен в ИСО/МЭК 24708 [6], для взаимодействия одной инфраструктуры с другой.
Один или оба вызова функции обработки могут не потребоваться
Рисунок C.2 — Пример реализации технологии клиент-сервер с использованием элементарных функций
C.4 Оценивание схожести и выбор порога в БиоАПИ
C.4.1 Исходные биометрические образцы являются комплексными аналоговыми потоками данных, поступающими от устройств регистрации (модулей датчика). Не существует двух идентичных образцов, полученных от одного пользователя. Шаблоны являются цифровым результатом обработки и сжатия данных образцов и не являются точным представлением пользователя. Поэтому результаты любого сопоставления образцов с контрольным шаблоном могут быть выражены только в терминах вероятности.
C.4.2 Существует два возможных критерия для оценки результатов сопоставления: вероятность ошибки ложного совпадения (ОЛС) и вероятность ошибки ложного отказа (ОЛО). ОЛС — вероятность того, что образец ложно соответствует представленному шаблону, а ОЛО — вероятность того, что образец ложно отклонен (то есть должен соответствовать, но не признан таковым). В зависимости от обстоятельств приложение может быть заинтересовано использовать либо тот, либо другой критерий.
C.4.3 Функции БиоАПИ позволяют приложению запрашивать порог сопоставления в виде максимального значения ОЛС (то есть предельного значения вероятности ложного доступа).
C.4.4 Для каждой технологии и реализации каждое значение ОЛС имеет соответствующее значение ОЛО (существует взаимооднозначная взаимосвязь ОЛО с ОЛС). Определяя либо ОЛС, либо ОЛО, определяют другое значение. Для соответствия требованиям БиоАПИ необходимо, чтобы все технологии и реализации поддерживали пороговую классификацию, основанную на значении ОЛС.
C.4.5 Основным возвращаемым результатом является фактическое значение ОЛС, полученное в результате сопоставления (оценивания схожести). Для функций BioAPI_Identify и BioAPI_IdentifyMatch эти результаты содержатся в массиве кандидатов.
C.4.6 Процесс возврата приложению оценок схожести будет защищен слабо, если не были предприняты соответствующие меры. Приложение «мошенника» может совершить нападение в виде «поиска экстремума», последовательно модифицируя образцы случайным образом и сохраняя только те изменения, которые приводят к увеличению возвращаемой оценки схожести. Таким образом может быть создано искусственное изображение, которое может «обмануть» биометрическую систему. Однако данный метод нападения может быть исключен путем разрешения возврата приложению только дискретных приращений оценки схожести. Уровень квантования, который требуется для нейтрализации подобного рода нападений, зависит от типа используемой биометрической характеристики и используемых алгоритмов. Возврат дискретных (грубоквантованных) приращений оценки схожести ПБУ является необязательным; ПБУ может возвращать как непрерывную (конечно квантованную), так и дискретную оценку схожести. Если предоставляется грубая оценка, то это должно быть отображено в маске опций в схеме ПБУ в реестре компонентов.
Примечание 1 — Нападение в виде «поиска экстремума» является изощренным методом и рассчитано на слабость системы безопасности.
Примечание 2 — Грубое квантование неизбежно приводит к снижению информативности оценки схожести. По существу, его использование, в том числе и в оценке схожести, приводит к ухудшению нисходящей мультимодальной или мультибиометрической комбинации.
C.4.7 Использование значений ОЛС для представления оценок схожести предусмотрено для обеспечения нормализации и возможности сравнения различных технологий, а также предоставления общепонятных средств выбора порогов и интерпретации результатов. Не предполагается строгое измерение эксплуатационных характеристик (то есть точное измерение значения ОЛС для отдельного индивидуального образца сопоставления). Кроме того, конструктор ПБУ несет ответственность за точное отображение внутренней структуры оценки схожести, основанной на рабочей характеристике получателя (РХС), в значение ОЛС.
C.4.8 Может быть применен другой способ оценки нормализации. Значения оценки схожести и порога принятия решения могут быть определены в произвольном масштабе, зависящем от биометрической модальности и выбора изготовителя оборудования. К тому же оценка схожести может быть определена в одном из нескольких нормализованных масштабов при условии, что технология и реализация будут сопоставимы. В зависимости от обстоятельств одному приложению может быть предпочтительнее использовать один масштаб оценки схожести, другому приложению — другой. Таким образом, нормированный масштаб является масштабом ошибочного соответствия, используемым в БиоАПИ, в котором порог принятия решения для отдельного значения является вероятностью ошибки ложного соответствия в числовом виде, равной пороговому значению в этом масштабе.
Используют следующие шкалы оценки схожести:
a) исходная шкала оценки (определена для разработчиков и изготовителей). Предоставляет улучшенную поддержку и упрощенную модель нормализованной оценки с использованием функции плотности вероятности (ФПВ), полученной при исследовании приложения с целью улучшения преобразования;
b) логарифмическая шкала ОЛС (логарифмическая шкала ошибочного соответствия). Предоставляет значительный динамический интервал;
c) логарифмическая шкала по основанию 10 (логарифм от отношения коэффициентов вероятности истинного к ложному). Обеспечивает оптимальное приближение к комбинации двух независимых биометрических характеристик в соответствии со статистической моделью теории согласования.
Некоторые из этих альтернативных мер применимы в мультимодальных реализациях. Настоящий стандарт не рассматривает поддержку таких альтернативных шкал оценки, которые, вероятно, будут использоваться в будущем.
C.5.1 Не существует двух идентичных образцов, полученных от одного пользователя. Поэтому невозможно использовать непосредственно биометрические образцы в качестве криптографических ключей. В соответствии с БиоАПИ шаблон может быть взаимосвязан с криптографическим ключом, который может предоставляться после успешной верификации.
C.5.2 Полезная информация предоставляется приложением в процессе выполнения операции Enroll или CreateTemplate. ПБУ несет ответственность за хранение полезной информации и создание взаимосвязи с конкретным контрольным шаблоном. Это может быть выполнено одним из следующих способов (допускаются и другие способы):
a) хранение полезной информации в управляемой ПБУ базе данных;
b) хранение полезной информации на смарт-карте;
c) хранение полезной информации в непрозрачной части (ББД) ЗБИ.
Примечание - Хранение в ЗБИ возможно только во внутреннем формате ББД. Биометрические данные, соответствующие форматам данных, определенным в ИСО/МЭК 19794, не поддерживают хранение полезной информации.
C.5.3 Полезная информация предоставляется приложению после успешной верификации или идентификации (после выполнения функции BioAPI_Verify или BioAPI_VerifyMatch). ПБУ может использовать политику предоставления полезной информации только в том случае, если достигнутая фактическая ОЛС ниже некоторого порогового значения зафиксированного в записи ПБУ реестра.
C.5.4 Полезной информацией могут быть любые данные, которые являются полезными для приложения; они необязательно должны быть криптографическими, но даже в криптографическом приложении они должны быть представлены именем или защищены ключом. Другие данные, сохраняемые как полезная информация, могут включать в себя пароли, личные идентификационные номера, информацию о привилегии доступа, идентификаторы учетной записи и другую пользовательскую или секретную информацию, которая должна иметь биометрическую защиту.
C.6.1 Обычно пользовательские базы данных управляются приложением. Во многих случаях пользовательская база данных уже реализована (например, база данных счетов в банке, пользовательский реестр людей, которые принадлежат сетевому домену или имеющих авторизованный доступ к сетевому серверу), и биометрическое приложение только связывает биометрический шаблон с каждым пользователем в базе данных в дополнение к паролю или взамен пароля. Важно, что приложение поддерживает управление доступом к данной базе данных.
C.6.2 БиоАПИ позволяет ПБУ управлять базой данных ЗБИ для обеспечения:
a) оптимизации выполнения операции идентификации по большим совокупностям образцов (то есть когда идентификация осуществляется непосредственно в базе данных);
b) доступа к ЗБИ, которые могут храниться на независимом устройстве регистрации;
c) доступа через ПБУ к ЗБИ, хранящимся в портативной базе данных, например на смарт-карте.
C.6.3 За обеспечение всех необходимых взаимосвязей между базой (базами) данных ЗБИ ПБУ и пользовательской базой (базами) данных отвечает приложение. Для обеспечения данного условия каждая запись в базе данных ЗБИ ПБУ имеет связанный с ней УУИД. Для обеспечения информационной безопасности записи в базе данных ПБУ не могут быть изменены, а могут быть только созданы и удалены. Новые записи получают новые УУИД. УУИД создаются ПБУ каждый раз, когда создается (операцией CreateTemplate или Enroll) или импортируется (операцией Import) шаблон. ПБУ генерирует УУИД и связывает его с контрольным шаблоном в базе данных ЗБИ, управляемой ПБУ.
C.6.4 Не все ПБУ поддерживают идентификацию и интерфейс базы данных. Если совокупность идентификации является небольшой, то она может быть обработана путем передачи массива ЗБИ через интерфейс.
C.6.5 Базы данных ЗБИ могут быть созданы по имени УУИД, а ПБУ может иметь предпочтительную базу данных. Приложение может дать возможность ПБУ выбрать базу данных ЗБИ, в которой будут проводиться операции, с использованием значения пустого указателя на параметр УУИД базы данных.
C.6.6 Управляемая ПБУ база данных ЗБИ может контролироваться непосредственно или косвенно, то есть через интерфейс ПБФ. Сама база данных ЗБИ включает в себя модуль архива БиоАПИ. Несмотря на то, что ПБУ может управлять только одним модулем БиоАПИ в данной прикрепленной сессии, этот модуль может включать в себя многоуровневые базы данных, которые адресуются своими индивидуальными УУИД базы данных.
C.6.7 Для указания текущей записи используются маркеры, которые приблизительно соответствуют «курсору» для реляционных баз данных; однако использование реляционной технологии не требуется и не предполагается.
C.6.8 Новый маркер создает и возвращает дескриптор, когда открывается база данных ЗБИ (при вызове функции BioAPI_DbOpen) или при восстановлении записи (при вызове функции BioAPI_DbGetBIR). Существующий маркер может быть установлен в определенную позицию путем вызова функции BioAPI_DbSetMarker. Дескриптор маркера может использоваться приложением для упрощения повторного обращения к следующей записи в базе данных ЗБИ. Таким образом, маркер (но не дескриптор маркера) обновляется при вызове функции BioAPI_DbGetNextBIR. Маркеры и их дескрипторы освобождаются явно при вызове функции BioAPI_DbFreeMarker или неявно при закрытии базы данных ЗБИ (при вызове функции BioAPI_DbClose).
C.6.9 ПБУ может управлять более чем одной базой данных ЗБИ. В этом случае база данных ЗБИ, управляемая ПБУ, в которой необходимо произвести операции, указывается приложением по имени (УУИД базы данных) или дескриптору (для открытой базы данных).
C.7 Анализ интерфейса пользователя
C.7.1 Интерфейс пользователя для паролей и личных идентификационных номеров является достаточно простым, но для биометрической технологии он может быть достаточно сложным и может в значительной степени зависеть от применяемой технологии, требуя многочисленные зависимые от реализации взаимодействия с пользователем. Некоторые биометрические технологии предоставляют пользователю потоки данных (например, лицо и голос), а другие требуют от пользователя подтверждения каждого взятого образца (например, лицо, голос, подпись). В процессе регистрации некоторые технологии верифицируют каждый взятый образец на основе предыдущих образцов. Число образцов, взятых для конкретного назначения, может меняться в зависимости от используемой технологии, и интерфейс пользователя для регистрации обычно отличается от интерфейсов для верификации и идентификации.
C.7.2 Большинство ПБУ содержат встроенный интерфейс пользователя, которого может быть достаточно для решения большинства задач. Однако ПИП позволяет приложению управлять видом и поведением данного интерфейса пользователя, предоставляя приложению возможность осуществлять обратные вызовы поставщика услуги для их использования, представления и сбора образцов.
C.7.3 Один из обратных вызовов используется для представления и сбора образцов и указывает приложению на изменение состояния. Все ПБУ, реализующие опцию Application Controlled GUI, должны поддерживать данный обратный вызов, несмотря на то что конечные механизмы могут значительно меняться. Другой обратный вызов ГИП используется для представления пользователю потоковых данных в форме последовательности битовых изображений. Данный обратный вызов является необязательным, и ПБУ указывает в своей записи в реестре, требуется ли он.
C.7.4 ПБУ управляется конечным механизмом интерфейса пользователя и инициирует его обратные вызовы (BioAPI_GUI_STATE_CALLBACK) каждый раз, когда возникает событие изменения состояния. Данные изменения состояния могут возникать при создании образца или при необходимости предоставления пользователю сообщения. После возвращения сообщения приложение может предоставить ПБУ ответ пользователя: отмена, продолжение, действительный образец, недействительный образец и т.д.
C.7.5 Если ПБУ должен представить пользователю потоковые данные образца, он инициирует потоковый обратный вызов (BioAPI_GUI_STREAMING_CALLBACK) параллельно с событиями изменения состояния. Данный обратный вызов требует от приложения выполнения многопоточной обработки.
C.7.6 Если приложение выполняет однотипный обратный вызов несколько раз в одном и том же контексте (дескриптор ПБУ), поведение ПБУ будет зависеть от реализации операции. ПБУ выбирает, продолжить ли операцию после возврата первого обратного вызова или ждать возврата всех обратных вызовов. Ситуация, когда различные обратные вызовы возвращаются с различными кодами ответа, также находится под управлением ПБУ.
C.8 Сопоставление на карте (СНК)
C.8.1 Технология БиоАПИ поддерживает использование смарт-карт. Используют два следующих варианта применения:
a) смарт-карта используется в качестве хранилища для контрольного шаблона, что обеспечивает его безопасное и портативное хранение (данный способ называют хранение на карте);
b) операции биометрического сопоставления выполняются на смарт-карте (данный способ называют сопоставление на карте).
C.8.2 В обоих случаях шаблон сохраняется на карте. При сопоставлении на карте (СНК) операции сопоставления также осуществляются на карте. Во время биометрической верификации обработанная ЗБИ передается на карту, где она сопоставляется с контрольным шаблоном, хранимым на этой карте. Результат сопоставления возвращается ПБУ или ПБФ или используется непосредственно с картой для доступа к другим данным, записанным на карте, и функциям карты (например, для считывания цифровой подписи).
Примечание - При использовании одного из вариантов смарт-карта может выступать в роли модуля архива БиоАПИ или как модуль алгоритмов сопоставления БиоАПИ.
C.8.3 ПБУ и ПБФ могут использовать возможности применения в смарт-картах технологий БиоАПИ согласно ИСО/МЭК 7816-11 [1].
В соответствии с требованиями настоящего стандарта биометрические данные должны быть сохранены в формате постоянного клиента ЕСФОБД, определенном в ИСО/МЭК 19785-3 [4] для сохранения на карте. Для СНК биометрические данные преобразуются в биометрический информационный шаблон (БИШ), который сохраняется на карте и может быть впоследствии запрошен для возврата информации о структуре и содержании ProcessedBIR и послан карте для сопоставления с сохраненным контрольным шаблоном (например, владелец/тип формата и, возможно, другая информация об алгоритмах и шаблоне).
Примечание - Данная информация может быть вспомогательной при использовании функции BioAPI_ProcessWithAuxBIR.
C.8.4 Существует множество способов взаимодействия биометрических компонентов и компонентов смарт-карты (программные и аппаратные средства) для выполнения операции СНК. Один из потоков процесса высокого уровня для такой операции изображен на рисунке C.3. Метод защиты данных верификации с помощью средств криптографии приведен в ИСО/МЭК 7816-11.
Рисунок C.3 — Пример потока процесса для операции СНК
Примечание 1 — Область, которая расположена выше обмена данными между ПБУ и смарт-картой, описывается как любое взаимодействие с непосредственно управляемым модулем БиоАПИ (смарт-карта выступает в роли модуля архива или модуля алгоритмов сопоставления) или одним или более ПБФ.
Примечание 2 — В данном примере реализации СНК требуется, чтобы ПБУ был совместим со смарт-картой, включал интерфейс взаимодействия со смарт-картой (напрямую с помощью одного или более ПБУ) и поддерживал СНК.
Примечание 3 — Приложение, ПБУ, ПБФ могут взаимодействовать со смарт-картой напрямую или с помощью некого стандартного интерфейса смарт-карты или связующего программного обеспечения. Обычно используется взаимодействие СНК с программным обеспечением, встроенным программным обеспечением или сетевым приложением на смарт-карте.
C.8.5 Операция верификации обычно разделяется между хост-компьютером и смарт-картой. Как правило, получение и обработка биометрических данных реализуются на хост-компьютере, а смарт-карта реализует операции сопоставления и возвращает результат сопоставления.
Примечание 1 — При расширении возможностей смарт-карты на нее могут быть перенесены с хост-компьютера также и другие функции.
Примечание 2 — На смарт-карте может быть установлен личный «статус безопасности», если результат сопоставления положителен.
C.8.6 Некоторые реализации СНК требуют, чтобы часть информации, хранящейся в контрольном шаблоне, была извлечена хост-компьютером для использования в качестве входного параметра операций получения данных или обработки. На рисунке C.3 первый шаг соответствует восстановлению «вспомогательных данных» в формат БИШ.
Примечание 1 — При использовании СНК функция BioAPI_ProcessWithAuxBIR вызывается для обработки полученных данных ЗБИ с использованием вспомогательных данных, предоставленных как входной параметр в соответствии с CapturedBIR.
Примечание 2 — Вспомогательные данные могут включать в себя, например, информацию о регистрации, чтобы предоставить пользователю дополнительную информацию в процессе выполнения функций получения данных или обработки, например расположить палец на рабочей поверхности, чтобы обеспечить пригодность получаемых данных для сопоставлении, прежде чем послать их карте, таким образом снижая общее время верификации.
C.8.7 ПБУ, поддерживающие смарт-карты, могут выполнять операции с ней непосредственно или через ПБФ. Например:
a) хранение ЗБИ на смарт-карте может быть осуществлено через ПБФ архива;
b) верификация СНК может быть осуществлена алгоритмом ПБФ сопоставления.
ПРИМЕРЫ ПОСЛЕДОВАТЕЛЬНОСТИ ВЫЗОВОВ И ТИПОВОГО КОДА
D.1 Простая последовательность вызовов
БиоАПИ может поддерживать большое разнообразие биометрических технологий и устройств, так же как и методов аутентификации, однако иногда приложению требуется использование только небольшого подмножества вызовов функций для выполнения верификации. В данном разделе указана последовательность вызовов, необходимых для выполнения данного типа верификации.
Сначала необходимо инициализировать инфраструктуру БиоАПИ. Это осуществляется путем вызова функции BioAPI_Init. Приложение должно определить, с какой версией спецификации БиоАПИ оно совместимо.
D.1.2 Загрузка и присоединение ПБУ
Если приложение знает УУИД ПБУ, который необходимо использовать, то для подготовки ПБУ к использованию функциями БиоАПИ необходимо только вызвать функции BioAPI_BSP_BSPLoad и BioAPI_BSPAttach.
Функция BioAPI_BSPAttach возвращает дескриптор, который будет использоваться при последующих вызовах функций БиоАПИ.
После подключения ПБУ проводится регистрация биометрических данных субъекта. Это осуществляется путем однократного вызова функции BioAPI_Enroll.
Как только шаблон будет возвращен, он может быть помещен в хранилище данных для последующего извлечения и верификации (см. D.2).
Для верификации необходимо выполнить несколько вызовов. Если ПБУ поддерживает функцию BioAPI_VerifyMatch, последовательность вызовов будет более сложной и приложение должно получать данные, создавать шаблон и проводить верификацию поэтапно. В противном случае приложение может просто вызвать функцию BioAPI_Verify.
D.1.5 Отсоединение и выгрузка ПБУ
Как только приложение закончит использование ПБУ, оно его отсоединяет и выгружает.
Для закрытия инфраструктуры БиоАПИ необходимо вызвать функцию BioAPI_Terminate.
D.2 Преобразование ЗБИ образца
Следующий пример кода преобразует структуру данных C (BioAPI_BIR, определенную в 7.4) в формат постоянного клиента БиоАПИ (определенного в приложении B) и обратно.
Сведения о соответствии ссылочных международных стандартов национальным стандартам приведены в таблице E.1.
| Обозначение ссылочного международного стандарта | Обозначение и наименование соответствующего национального стандарта |
| ИСО/МЭК 9899:1999 | <*> |
| ИСО/МЭК 24709 | <*> |
| ИСО/МЭК 19785-1 | ГОСТ Р ИСО/МЭК 19785-1-2007 «Автоматическая идентификация. Идентификация биометрическая. Единая структура форматов обмена биометрическими данными. Часть 1. Спецификация элементов данных» |
| ИСО/МЭК 19785-2 | ГОСТ Р ИСО/МЭК 19785-2-2007 «Автоматическая идентификация. Идентификация биометрическая. Единая структура форматов обмена биометрическими данными. Часть 2. Спецификация элементов данных» |
| ИСО/МЭК 19092 | <*> |
| ИСО 8601 | <*> |
| ИСО/МЭК 9834-8 | <*> |
| ИСО/МЭК 10646 | <*> |
| ИСО/МЭК 19794 | |
| <*> Соответствующий национальный стандарт отсутствует. Оригинал международного стандарта ИСО/МЭК находится в Федеральном информационном фонде технических регламентов и стандартов. | |
БИБЛИОГРАФИЯ
| [1] | ISO/IEC 7816-11:2004 | Identification cards — Integrated circuit cards — Part 11: Personal verification through biometric methods |
|---|---|---|
| [2] | ISO 8601 | Data elements and interchange formats — Information interchange — Representation of dates and times |
| [3] | ISO 19092 | Financial services — Biometrics <*> |
| [4] | ISO/IEC 19785-3 | Information technology — Common biometric exchange formats framework — Part 3: Patron format specifications <*> |
| [5] | ISO/IEC 19794 | Information technology — Biometric data interchange formats |
| [6] | ISO/IEC 24708 | Information technology — BioAPI Interworking Protocol <*> |
| [7] | ISO/IEC 24709 | Information technology — Conformance testing for BioAPI <*> |
| УДК 004.93'1:006.354 | ОКС 35.040 | П85 |
| Ключевые слова: автоматическая идентификация, идентификация биометрическая, спецификация БиоАПИ, программный интерфейс приложения, ПБУ | ||







