Information technology — Biometric application programming interface — Part 1: BioAPI specification

ISO/IEC 19784-1:2018 defines the Application Programming Interface (API) and Service Provider Interface (SPI) for standard interfaces within a biometric system that support the provision of that biometric system using components from multiple vendors. It provides interworking between such components through adherence to this and to other International Standards. For use in a system that does not include a BioAPI Framework (called a framework-free BioAPI system), only the SPI interface is applicable, with applications interfacing directly to that in a platform-specific manner. NOTE 1 Many clauses and/or sub-clauses of this document are not applicable for implementation of a framework-free BioAPI system. These are identified at the head of the clause of sub-clause. The BioAPI specification is applicable to a broad range of biometric technology types. It is also applicable to a wide variety of biometrically enabled applications, from personal devices, through network security applications, to large complex identification systems. ISO/IEC 19784-1:2018 supports an architecture in which a BioAPI Framework supports multiple simultaneous biometric applications (provided by different vendors), using multiple dynamically installed and loaded (or unloaded) Biometric Service Provider (BSP) components and BioAPI Units (provided by other different vendors), possibly using one of an alternative set of BioAPI Function Provider (BFP) components (provided by other vendors) or by direct management of BioAPI Units. NOTE 2 Where BioAPI Units are provided by a different vendor fom a BSP, a standardised BioAPI Function Provider Interface (FPI) may be needed. This is outside the scope of this document, but is specified by later parts for the different categories of FPI. NOTE 3 Where a BioAPI Framework is not used in a system, the ability to support multiple applications and multiple BSPs is platform-dependent and depends on the nature of the system-integration techniques employed. ISO/IEC 19784-1:2018 is not required (and should normally not be referenced) when a complete biometric system is being procured from a single vendor, particularly if the addition or interchange of biometric hardware, services, or applications is not a feature of that biometric system. (Such systems are sometimes referred to as "embedded systems".) Standardisation of such systems is not in the scope of this document. ISO/IEC 19784-1:2018 does not define security requirements for biometric applications and biometric service providers. NOTE 4 ISO 19092 provides guidelines on security aspects of biometric systems[3]. The performance of biometric systems (particularly in relation to searches of a large population to provide the biometric identification capability) is not in the scope of this document. Trade-offs between interoperability and performance are not in the scope of this document. ISO/IEC 19784-1:2018 specifies a version of the BioAPI specification that is defined to have a version number described as Major 2, Minor 0, or version 2.0. It also specifies a version number described as Major 2, Minor 1, or version 2.1 that provides an enhanced Graphical User Interface. It also specifies a version number described as Major 2, Minor 2, or version 2.2 that provides features supporting fusion and security. Some clauses and sub-clauses apply only to one of these versions, some to two or more. This is identified at the head of the relevant clauses and sub-clauses. NOTE 5 Earlier versions of the BioAPI specification were not International Standards. NOTE 6 The differences between the requirements of the 2.0 specification and the 2.1 specification for framework-free operation relate only to the biometric type values and encodings. Conformance requirements are specified in Clause 5.

Technologies de l'information — Interface de programmation d'applications biométriques — Partie 1: Spécifications BioAPI

General Information

Status
Published
Publication Date
22-Mar-2018
Current Stage
9093 - International Standard confirmed
Start Date
06-Sep-2024
Completion Date
30-Oct-2025
Ref Project

Relations

Standard
ISO/IEC 19784-1:2018 - Information technology — Biometric application programming interface — Part 1: BioAPI specification Released:3/23/2018
English language
234 pages
sale 15% off
Preview
sale 15% off
Preview

Standards Content (Sample)


INTERNATIONAL ISO/IEC
STANDARD 19784-1
Second edition
2018-04
Information technology — Biometric
application programming interface —
Part 1:
BioAPI specification
Technologies de l'information — Interface de programmation
d'applications biométriques —
Partie 1: Spécifications BioAPI
Reference number
©
ISO/IEC 2018
© ISO/IEC 2018
All rights reserved. Unless otherwise specified, or required in the context of its implementation, no part of this publication may
be reproduced or utilized otherwise in any form or by any means, electronic or mechanical, including photocopying, or posting
on the internet or an intranet, without prior written permission. Permission can be requested from either ISO at the address
below or ISO’s member body in the country of the requester.
ISO copyright office
CP 401 • Ch. de Blandonnet 8
CH-1214 Vernier, Geneva
Phone: +41 22 749 01 11
Fax: +41 22 749 09 47
Email: copyright@iso.org
Website: www.iso.org
Published in Switzerland
ii © ISO/IEC 2018 – All rights reserved

Contents Page
Foreword .viii
Introduction .ix
1 Scope . 1
2 Normative references . 2
3 Terms and definitions . 2
4 Symbols and abbreviated terms . 8
5 Conformance . 8
6 The BioAPI architecture. 9
6.1 The full BioAPI API/SPI Architectural Model . 9
6.2 The framework-free BioAPI Architectural Model .10
6.3 The BioAPI BSP Architectural Model .10
6.4 The component registry .12
6.5 BSP and BFP Installation and De-installation .13
6.6 BSP Load and BioAPI Unit Attachment .14
6.7 Controlling BioAPI Units .15
6.8 BIR Structure and Handling .15
6.8.1 BIR Structure .15
6.8.2 BIR Data Handling .16
7 BioAPI types and macros .17
7.1 BioAPI .17
7.2 BioAPI_ACBio_PARAMETERS (BioAPI 2.2) .17
7.3 BioAPI_ASN1_BIR (BioAPI 2.2) .17
7.4 BioAPI_ASN1_ENCODED (BioAPI 2.2) .18
7.5 BioAPI_BFP_LIST_ELEMENT .18
7.6 BioAPI_BFP_SCHEMA .18
7.7 BioAPI_BIR .19
7.8 BioAPI_BIR_ARRAY_POPULATION .19
7.9 BioAPI_BIR_BIOMETRIC_DATA_FORMAT .20
7.10 BioAPI_BIR_BIOMETRIC_PRODUCT_ID .20
7.11 BioAPI_BIR_BIOMETRIC_TYPE (BioAPI 2.0) .20
7.12 BioAPI_BIR_BIOMETRIC_TYPE (BioAPI 2.1) .21
7.13 BioAPI_BIR_DATA_TYPE .22
7.14 BioAPI_BIR_HANDLE .23
7.15 BioAPI_BIR_HEADER .23
7.16 BioAPI_BIR_PURPOSE .24
7.17 BioAPI_BIR_SECURITY_BLOCK_FORMAT .25
7.18 BioAPI_BIR_SUBTYPE (BioAPI 2.0) .25
7.19 BioAPI_BIR_SUBTYPE (BioAPI 2.1) .26
7.20 BioAPI_BIR_SUBTYPE_MASK (BioAPI 2.1) .27
7.21 BioAPI_BOOL .28
7.22 BioAPI_BSP_SCHEMA (BioAPI 2.0) .28
7.23 BioAPI_BSP_SCHEMA (BioAPI 2.1) .30
7.24 BioAPI_CANDIDATE .32
7.25 BioAPI_CATEGORY .32
7.26 BioAPI_DATA .32
7.27 BioAPI_DATE .32
7.28 BioAPI_DB_ACCESS_TYPE .33
7.29 BioAPI_DB_MARKER_HANDLE .33
7.30 BioAPI_DB_HANDLE .33
7.31 BioAPI_DBBIR_ID .33
7.32 BioAPI_DTG .34
7.33 BioAPI_ENCRYPTION_ALG (BioAPI 2.2) .34
© ISO/IEC 2018 – All rights reserved iii

7.34 BioAPI_ENCRYPTION_INFO (BioAPI 2.2) .34
7.35 BioAPI_ERROR_INFO (BioAPI 2.1) .34
7.36 BioAPI_EVENT .35
7.37 BioAPI_EVENT_MASK.35
7.38 BioAPI_EventHandler .35
7.39 BioAPI_FMR .36
7.40 BioAPI_FRAMEWORK_SCHEMA .36
7.41 BioAPI_GUI_BITMAP (BioAPI 2.0) .37
7.42 BioAPI_GUI_BITMAP (BioAPI 2.1) .37
7.43 BioAPI_GUI_BITMAP_ARRAY (BioAPI 2.1) .38
7.44 BioAPI_GUI_ENROLL_TYPE (BioAPI 2.1).38
7.45 BioAPI_GUI_EVENT_SUBSCRIPTION (BioAPI 2.1) .39
7.46 BioAPI_GUI_MESSAGE (BioAPI 2.0) .39
7.47 BioAPI_GUI_MOMENT (BioAPI 2.1) .40
7.48 BioAPI_GUI_OPERATION (BioAPI 2.1) .41
7.49 BioAPI_GUI_PROGRESS (BioAPI 2.0) .41
7.50 BioAPI_GUI_PROGRESS (BioAPI 2.1) .42
7.51 BioAPI_GUI_RESPONSE (BioAPI 2.0) .42
7.52 BioAPI_GUI_RESPONSE (BioAPI 2.1) .42
7.53 BioAPI_GUI_STATE (BioAPI 2.0) .44
7.54 BioAPI_GUI_STATE_CALLBACK (BioAPI 2.0) .44
7.55 BioAPI_GUI_STREAMING_CALLBACK (BioAPI 2.0) .45
7.56 BioAPI_GUI_SUBOPERATION (BioAPI 2.1) .46
7.57 BioAPI_HANDLE .47
7.58 BioAPI_HASH_ALG (BioAPI 2.2) .47
7.59 BioAPI_IDENTIFY_POPULATION .47
7.60 BioAPI_IDENTIFY_POPULATION_TYPE .47
7.61 BioAPI_INDICATOR_STATUS .48
7.62 BioAPI_INPUT_BIR .48
7.63 BioAPI_INPUT_BIR_FORM .48
7.64 BioAPI_INSTALL_ACTION .48
7.65 BioAPI_INSTALL_ERROR .48
7.66 BioAPI_KEY_INFO (BioAPI 2.2) .49
7.67 BioAPI_KEY_TRANSPORT (BioAPI 2.2) .49
7.68 BioAPI_MAC_ALG (BioAPI 2.2) .49
7.69 BioAPI_MAC_INFO (BioAPI 2.2) .49
7.70 BioAPI_OPERATIONS_MASK .50
7.71 BioAPI_OPTIONS_MASK .50
7.72 BioAPI_POWER_MODE .52
7.73 BioAPI_QUALITY .52
7.74 BioAPI_RETURN .53
7.75 BioAPI_SECURITY_OPTIONS_MASK (BioAPI 2.2) .53
7.76 BioAPI_SECURITY_PROFILE (BioAPI 2.2).53
7.77 BioAPI_DIGITAL_SIGNATURE_ALG (BioAPI 2.2) .54
7.78 BioAPI_STRING .55
7.79 BioAPI_TIME .55
7.80 BioAPI_UNIT_ID.55
7.81 BioAPI_UNIT_LIST_ELEMENT .55
7.82 BioAPI_UNIT_SCHEMA .55
7.83 BioAPI_UNIT_SCHEMA (BioAPI 2.2).57
7.84 BioAPI_UUID .58
7.85 BioAPI_VERSION.58
7.86 GUI Events .58
7.86.1 BioAPI_GUI_SELECT_EVENT_HANDLER (BioAPI 2.1) .59
7.86.2 BioAPI_GUI_STATE_EVENT_HANDLER (BioAPI 2.1) .61
7.86.3 BioAPI_GUI_PROGRESS_EVENT_HANDLER (BioAPI 2.1) .63
8 BioAPI functions .65
8.1 Component Management Functions .65
iv © ISO/IEC 2018 – All rights reserved

8.1.1 BioAPI_Init . . .65
8.1.2 BioAPI_Terminate .66
8.1.3 BioAPI_GetFrameworkInfo .66
8.1.4 BioAPI_EnumBSPs .67
8.1.5 BioAPI_BSPLoad .67
8.1.6 BioAPI_BSPUnload .69
8.1.7 BioAPI_BSPAttach .70
8.1.8 BioAPI_BSPAttachSecure (BioAPI 2.2) .71
8.1.9 BioAPI_BSPDetach .73
8.1.10 BioAPI_QueryUnits.74
8.1.11 BioAPI_EnumBFPs .75
8.1.12 BioAPI_QueryBFPs .76
8.1.13 BioAPI_ControlUnit . .77
8.1.14 BioAPI_Control (BioAPI 2.1) .77
8.1.15 BioAPI_Transform (BioAPI 2.1) .78
8.1.16 BioAPI_LinkToEndpoint (BioAPI 2.1) .80
8.1.17 BioAPI_UnlinkFromEndpoint (BioAPI 2.1) .80
8.1.18 BioAPI_EnumFrameworks (BioAPI 2.1) .81
8.2 Data Handle Operations .82
8.2.1 BioAPI_FreeBIRHandle .82
8.2.2 BioAPI_GetBIRFromHandle .82
8.2.3 BioAPI_GetHeaderFromHandle .83
8.3 Callback and Event Operations .83
8.3.1 BioAPI_EnableEvents .83
8.3.2 BioAPI_SetGUICallbacks (BioAPI 2.0) .84
8.3.3 BioAPI_NotifyGUIProgressEvent (BioAPI 2.1) .85
8.3.4 BioAPI_NotifyGUISelectEvent (BioAPI 2.1) .86
8.3.5 BioAPI_NotifyGUIStateEvent (BioAPI 2.1) .87
8.3.6 BioAPI_QueryGUIEventSubscriptions (BioAPI 2.1) .88
8.3.7 BioAPI_RedirectGUIEvents (BioAPI 2.1) .89
8.3.8 BioAPI_SubscribeToGUIEvents (BioAPI 2.1) .91
8.3.9 BioAPI_UnredirectGUIEvents (BioAPI 2.1) .93
8.3.10 BioAPI_UnsubscribeFromGUIEvents (BioAPI 2.1) .94
8.3.11 BioAPI_EnableEventNotifications (BioAPI 2.1) .95
8.4 Biometric Operations .95
8.4.1 BioAPI_Capture .95
8.4.2 BioAPI_CreateTemplate .97
8.4.3 BioAPI_Process .99
8.4.4 BioAPI_ProcessWithAuxBIR (BioAPI2.0 and BioAPI2.1) .100
8.4.5 BioAPI_ProcessUsingAuxBIRs (BioAPI 2.2) .101
8.4.6 BioAPI_VerifyMatch .102
8.4.7 BioAPI_VerifyMatchUsingAuxBIRs (BioAPI 2.2) .104
8.4.8 BioAPI_IdentifyMatch .106
8.4.9 BioAPI_Decide (BioAPI 2.2) .109
8.4.10 BioAPI_Fuse (BioAPI 2.2) .110
8.4.11 BioAPI_Enroll .111
8.4.12 BioAPI_Verify .113
8.4.13 BioAPI_Identify.115
8.4.14 BioAPI_Import .118
8.4.15 BioAPI_Export (BioAPI 2.2) .119
8.4.16 BioAPI_PresetIdentifyPopulation .120
8.5 Database Operations .121
8.5.1 BioAPI_DbOpen .121
8.5.2 BioAPI_DbClose .122
8.5.3 BioAPI_DbCreate .122
8.5.4 BioAPI_DbDelete .123
8.5.5 BioAPI_DbSetMarker .124
8.5.6 BioAPI_DbFreeMarker .124
© ISO/IEC 2018 – All rights reserved v

8.5.7 BioAPI_DbStoreBIR . .125
8.5.8 BioAPI_DbGetBIR .126
8.5.9 BioAPI_DbGetNextBIR .127
8.5.10 BioAPI_DbDeleteBIR .128
8.6 BioAPI Unit operations .128
8.6.1 BioAPI_SetPowerMode .128
8.6.2 BioAPI_SetIndicatorStatus.129
8.6.3 BioAPI_GetIndicatorStatus .130
8.6.4 BioAPI_CalibrateSensor .130
8.7 Utility Functions .131
8.7.1 BioAPI_Cancel .131
8.7.2 BioAPI_Free .131
9 BioAPI Service Provider Interface .132
9.1 Summary .132
9.2 Type Definitions for Biometric Service Providers .132
9.2.1 BioSPI_EventHandler .132
9.2.2 BioSPI_BFP_ENUMERATION_HANDLER .133
9.2.3 BioSPI_MEMORY_FREE_HANDLER .134
9.2.4 BioSPI_GUI_PROGRESS_EVENT_HANDLER (BioAPI 2.1) .135
9.2.5 BioSPI_GUI_SELECT_EVENT_HANDLER (BioAPI 2.1) .136
9.2.6 BioSPI_GUI_STATE_EVENT_HANDLER (BioAPI 2.1) .137
9.3 Biometric Service Provider Operations .137
9.3.1 SPI Component Management Operations .137
9.3.2 SPI Data Handle Operations .143
9.3.3 SPI Callback and Event Operations .143
9.3.4 SPI Biometric Operations .145
9.3.5 SPI Database Operations .148
9.3.6 SPI BioAPI Unit operations .150
9.3.7 SPI Utility Functions .151
10 Component registry interface .151
10.1 BioAPI Registry Schema .152
10.1.1 Framework Schema .152
10.1.2 BSP Schema .152
10.1.3 BFP Schema .154
10.2 Component registry functions .155
10.2.1 BioAPI_Util_InstallBSP .155
10.2.2 BioAPI_Util_InstallBFP .156
10.2.3 BioAPI_RegisterBSP (BioAPI 2.1) .156
10.2.4 BioAPI_UnregisterBSP (BioAPI 2.1) .157
10.2.5 ioAPI_RegisterBFP (BioAPI 2.1) .158
10.2.6 BioAPI_UnregisterBFP (BioAPI 2.1) .159
10.2.7 BioAPI_GetLastErrorInfo (BioAPI 2.1) .159
11 BioAPI error handling .160
11.1 Error Values and Error Codes Scheme .160
11.2 Error Codes and Error Value Enumeration .160
11.2.1 BioAPI Error Value Constants .160
11.2.2 Implementation-Specific Error Codes .160
11.2.3 General Error Codes .161
11.2.4 Component Management Error Codes .162
11.2.5 Database Error Values .163
11.2.6 Location Error Values .163
11.2.7 Quality Error Codes .165
11.2.8 Security Error Codes (BioAPI 2.2) .166
Annex A (normative) Conformance .168
Annex B (normative) CBEFF Patron Format Specification: BioAPI patron format .185
vi © ISO/IEC 2018 – All rights reserved

Annex C (informative) Specification overview .191
Annex D (informative) Calling sequence examples and sample code .214
Annex E (normative) ASN.1 specification of BioAPI_BIR (BioAPI2.2) .232
Bibliography .234
© ISO/IEC 2018 – All rights reserved vii

Foreword
ISO (the International Organization for Standardization) and IEC (the International Electrotechnical
Commission) form the specialized system for worldwide standardization. National bodies that are
members of ISO or IEC participate in the development of International Standards through technical
committees established by the respective organization to deal with particular fields of technical
activity. ISO and IEC technical committees collaborate in fields of mutual interest. Other international
organizations, governmental and non-governmental, in liaison with ISO and IEC, also take part in the
work. In the field of information technology, ISO and IEC have established a joint technical committee,
ISO/IEC JTC 1.
The procedures used to develop this document and those intended for its further maintenance are
described in the ISO/IEC Directives, Part 1. In particular the different approval criteria needed for
the different types of document should be noted. This document was drafted in accordance with the
editorial rules of the ISO/IEC Directives, Part 2 (see www .iso .org/ directives).
Attention is drawn to the possibility that some of the elements of this document may be the subject
of patent rights. ISO and IEC shall not be held responsible for identifying any or all such patent
rights. Details of any patent rights identified during the development of the document will be in the
Introduction and/or on the ISO list of patent declarations received (see www .iso .org/ patents).
Any trade name used in this document is information given for the convenience of users and does not
constitute an endorsement.
For an explanation on the voluntary nature of standards, the meaning of ISO specific terms and
expressions related to conformity assessment, as well as information about ISO's adherence to the
World Trade Organization (WTO) principles in the Technical Barriers to Trade (TBT) see the following
URL: www .iso .org/ iso/ foreword .html.
This document was prepared by ISO/IEC JTC 1, Information technology, SC 37, Biometrics.
This second edition cancels and replaces the first edition (ISO/IEC 19784-1:2006). It also incorporates
the Amendments ISO/IEC 19784-1:2006/Amd 1:2007, ISO/IEC 19784-1:2006/Amd 2:2009 and
ISO/IEC 19784-1:2006/Amd 3:2010.
A list of all the parts in the ISO 19784 series, can be found on the ISO website.
viii © ISO/IEC 2018 – All rights reserved

Introduction
This document provides a high-level generic biometric authentication model suited to most forms of
biometric technology. An architectural model is described which enables components of a biometric
system to be provided by different vendors, and to interwork through fully-defined Application
Programming Interfaces (APIs).
A key feature of the architecture is the BioAPI Framework, which supports calls by one or more
application components (provided by different vendors, and potentially running concurrently) using
the BioAPI API specification. The BioAPI Framework provides this support by invoking (through a
Service Provider Interface, SPI) one or more Biometric Service Provider (BSP) components (provided
by different vendors, and potentially running concurrently) which can be dynamically loaded and
invoked as required by an application component.
However, this document can also be applied where a system is to be built from conforming BSP
components (without a BioAPI Framework module), using platform-specific system-integration
mechanisms - see Clause 6.
This document specifies the behaviour of the BioAPI Framework when applications and BSPs are in
the same system. Other interworking standards (see 4.29) specify modifications of that behaviour that
enable both BSPs and Graphical User Interfaces to be remote from the system containing an application.
[6]
NO
...

Questions, Comments and Discussion

Ask us and Technical Secretary will try to provide an answer. You can facilitate discussion about the standard in here.

Loading comments...