Information technology - Object oriented BioAPI - Part 4: C++ implementation

This document specifies an interface of a BioAPI C++ framework and BioAPI C++ BSP which will mirror the corresponding components specified in ISO/IEC 30106-1. The semantic equivalence of this document will be maintained with ISO/IEC 30106-2 (Java implementation) and ISO/IEC 30106-3 (C# implementation). In spite of the differences in actual parameters passed between functions, the names and interface structure are the same.

Technologies de l'information — Objet orienté BioAPI — Partie 4: Implémentation C++

General Information

Status
Published
Publication Date
14-Sep-2019
Current Stage
9060 - Close of review
Completion Date
04-Mar-2030

Overview

ISO/IEC 30106-4:2019 - Information technology - Object oriented BioAPI - Part 4: C++ implementation defines an object‑oriented C++ interface for implementing BioAPI components. The standard specifies a C++ framework and C++ BSP (Biometric Service Provider) interface that mirror the architecture and components described in ISO/IEC 30106-1, while maintaining semantic equivalence with the Java and C# implementations (ISO/IEC 30106-2 and ISO/IEC 30106-3). ISO/IEC 30106-4:2019 is aimed at enabling consistent, interoperable biometric system components across different programming languages.

Key Topics and Technical Requirements

  • C++ framework and BSP interfaces: Defines the structure and naming of classes and interfaces for a BioAPI C++ implementation so that BSPs and frameworks interoperate.
  • Data types and constants: Covers basic data types, enumerations, and common constructs such as BioAPIData, RegistryID, UUID, and date/time handling.
  • Object models and schemas: Describes C++ classes and schemas including ACBioParameters, BIR (Biometric Information Record), BSPSchema, BFPSchema, UnitSchema, UnitList, and GUI bitmap representations.
  • Unit and BFP support interfaces: Specifies object‑oriented interfaces for Unit support (IArchive, IComparison, IProcessing, ISensor) and BFP-level behaviour.
  • BFP, BSP and Framework level interfaces: Defines interfaces such as IBFP, IBSP, IComponentRegistry, and IFramework for component registration, lifecycle, properties, events and methods.
  • Application interaction and error handling: Includes application interaction patterns and exception types (e.g., BioAPIException) for consistent runtime behavior.
  • Language parity: Maintains name and interface structure compatibility with the Java and C# parts, even when parameter types differ.

Practical Applications and Who Uses It

  • Biometric SDK and BSP vendors: Implementers building C++ biometric service providers that must interoperate with an object‑oriented BioAPI framework.
  • System integrators and solution architects: Teams integrating multi‑vendor biometric components into security, access control, or identity platforms.
  • Enterprise and government IT: Organizations standardizing biometric modules to ensure portability and consistent behavior across platforms.
  • Developers and researchers: C++ developers implementing biometric algorithms, sensor interfaces, or unit-level services who need a standardized API for interoperability.

Benefits include improved interoperability, reduced integration cost, and easier cross‑language porting of biometric components.

Related Standards

  • ISO/IEC 30106-1 - Object oriented BioAPI (architecture and components)
  • ISO/IEC 30106-2 - Java implementation (semantic equivalent)
  • ISO/IEC 30106-3 - C# implementation (semantic equivalent)

Keywords: ISO/IEC 30106-4:2019, BioAPI, C++ implementation, BioAPI C++ BSP, biometric interface, BIR, IBSP, IFramework, object‑oriented BioAPI, biometric standards.

Standard

ISO/IEC 30106-4:2019 - Information technology — Object oriented BioAPI — Part 4: C++ implementation Released:9/15/2019

English language
57 pages
sale 15% off
Preview
sale 15% off
Preview

Frequently Asked Questions

ISO/IEC 30106-4:2019 is a standard published by the International Organization for Standardization (ISO). Its full title is "Information technology - Object oriented BioAPI - Part 4: C++ implementation". This standard covers: This document specifies an interface of a BioAPI C++ framework and BioAPI C++ BSP which will mirror the corresponding components specified in ISO/IEC 30106-1. The semantic equivalence of this document will be maintained with ISO/IEC 30106-2 (Java implementation) and ISO/IEC 30106-3 (C# implementation). In spite of the differences in actual parameters passed between functions, the names and interface structure are the same.

This document specifies an interface of a BioAPI C++ framework and BioAPI C++ BSP which will mirror the corresponding components specified in ISO/IEC 30106-1. The semantic equivalence of this document will be maintained with ISO/IEC 30106-2 (Java implementation) and ISO/IEC 30106-3 (C# implementation). In spite of the differences in actual parameters passed between functions, the names and interface structure are the same.

ISO/IEC 30106-4:2019 is classified under the following ICS (International Classification for Standards) categories: 35.240.15 - Identification cards. Chip cards. Biometrics. The ICS classification helps identify the subject area and facilitates finding related standards.

You can purchase ISO/IEC 30106-4:2019 directly from iTeh Standards. The document is available in PDF format and is delivered instantly after payment. Add the standard to your cart and complete the secure checkout process. iTeh Standards is an authorized distributor of ISO standards.

Standards Content (Sample)


INTERNATIONAL ISO/IEC
STANDARD 30106-4
First edition
2019-09
Information technology — Object
oriented BioAPI —
Part 4:
C++ implementation
Technologies de l'information — Objet orienté BioAPI —
Partie 4: Implémentation C++
Reference number
©
ISO/IEC 2019
© ISO/IEC 2019
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 2019 – All rights reserved

Contents Page
Foreword .v
Introduction .vi
1 Scope . 1
2 Normative references . 1
3 Terms and definitions . 1
4 BioAPI C++ general requirements . 1
5 Data types and constants . 2
5.1 Basic data types . 2
5.1.1 Enumerations . 2
5.1.2 BioAPIData .10
5.1.3 RegistryID .10
5.1.4 UUID . .10
5.1.5 Date and Time .10
5.2 Class ACBioParameters .11
5.2.1 Description . . .11
5.2.2 Properties summary .11
5.3 Class BFPListElement . .11
5.3.1 Description . . .11
5.3.2 Properties summary .11
5.4 Class BFPSchema.11
5.4.1 Description . . .11
5.4.2 Properties summary .11
5.5 Class BIR .12
5.5.1 Description . . .12
5.5.2 Properties summary .12
5.5.3 Method summary .13
5.6 Class BSPSchema .14
5.6.1 Description . . .14
5.6.2 Properties summary .14
5.7 Class candidate .15
5.7.1 Description . . .15
5.7.2 Properties summary .15
5.8 Class FrameworkSchema .15
5.8.1 Description . . .15
5.8.2 Properties summary .15
5.9 Class GUIBitmap .16
5.9.1 Description . . .16
5.9.2 Properties .16
5.10 Class Identifypopulation .16
5.10.1 Description . . .16
5.10.2 Properties summary .16
5.10.3 Method summary .16
5.11 Class PopulationMember .17
5.11.1 Description . . .17
5.11.2 Properties summary .17
5.12 Class SecurityProfileType .17
5.12.1 Description . . .17
5.12.2 Properties summary .17
5.13 Class UnitList .18
5.13.1 Description . . .18
5.13.2 Properties summary .18
5.13.3 Methods summary .18
© ISO/IEC 2019 – All rights reserved iii

5.14 Class UnitListElement .18
5.14.1 Description . . .18
5.14.2 Properties summary .18
5.15 Class UnitSchema .19
5.15.1 Description . . .19
5.15.2 Properties summary .19
6 Object oriented interfaces for supporting BioAPI_Units .19
6.1 General .19
6.2 Interface IArchive .20
6.2.1 Description . . .20
6.2.2 Method summary .20
6.3 Interface IComparison .23
6.3.1 Description . . .23
6.3.2 Method summary .24
6.4 Interface IProcessing .27
6.4.1 Description . . .27
6.4.2 Method summary .27
6.5 Interface ISensor .28
6.5.1 Description . . .28
6.5.2 Method summary .28
7 BFP level .29
7.1 Interface IBFP .29
7.1.1 Description . . .29
7.1.2 Imported interfaces .30
7.1.3 Properties summary .30
7.1.4 Events summary .30
7.1.5 Method summary .30
8 BSP level .33
8.1 Interface IBSP .33
8.1.1 Description . . .33
8.1.2 Imported interfaces .34
8.1.3 Properties summary .34
8.1.4 Events summary .34
8.1.5 Method summary .34
9 Framework level .41
9.1 Interface IComponentRegistry .41
9.1.1 Description . . .41
9.1.2 Method summary .41
9.2 Interface IFramework .43
9.2.1 Description . . .43
9.2.2 Inherited interfaces .43
9.2.3 Properties summary .43
9.2.4 Method summary .43
10 Application interaction .47
10.1 class BioAPIException : Exception .47
10.1.1 Description . . .47
10.1.2 Constructor summary .48
10.1.3 Properties summary .48
10.1.4 Method Summary .49
10.2 Callback functions .49
10.2.1 Description . . .49
10.2.2 Callback functions specification .49
Annex A (informative) Calling sequence examples and sample code .56
Bibliography .57
iv © ISO/IEC 2019 – All rights reserved

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.
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) or the IEC
list of patent declarations received (see http: //patents .iec .ch).
Any trade name used in this document is information given for the convenience of users and does not
constitute an endorsement.
For an explanation of 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 www .iso
.org/iso/foreword .html.
This document was prepared by Joint Technical Committee ISO/IEC JTC 1, Information technology,
Subcommittee SC 37, Biometrics.
A list of all parts in the ISO/IEC 30106 series can be found on the ISO website.
Any feedback or questions on this document should be directed to the user’s national standards body. A
complete listing of these bodies can be found at www .iso .org/members .html.
© ISO/IEC 2019 – All rights reserved v

Introduction
In this document an application programming interface expressed in C++ language is specified. C++ is
a basic, general-purpose, object-oriented programming language that is used in most computer-based
platforms and operating systems.
One of the advantages of using C++ is that, as it is supported by most computer platforms, the
development, in source code, may be fully (or at least to a great part) supported from one platform to
another.
C++ is a programming language standardized by ISO/IEC 14882, and most development platforms allow
its use in conjunction to other programming languages and frameworks.
This document is drafted to make a clear and usable interpretation of ISO/IEC 30106-1, when using C++
programming language.
vi © ISO/IEC 2019 – All rights reserved

INTERNATIONAL STANDARD ISO/IEC 30106-4:2019(E)
Information technology — Object oriented BioAPI —
Part 4:
C++ implementation
1 Scope
This document specifies an interface of a BioAPI C++ framework and BioAPI C++ BSP which will
mirror the corresponding components specified in ISO/IEC 30106-1. The semantic equivalence of this
document will be maintained with ISO/IEC 30106-2 (Java implementation) and ISO/IEC 30106-3 (C#
implementation). In spite of the differences in actual parameters passed between functions, the names
and interface structure are the same.
2 Normative references
The following documents are referred to in the text in such a way that some or all of their content
constitutes requirements of this document. For dated references, only the edition cited applies. For
undated references, the latest edition of the referenced document (including any amendments) applies.
ISO/IEC 30106-1, Information technology — Object oriented BioAPI — Architecture
ISO/IEC 30106-2, Information technology — Object oriented BioAPI — Part 2: Java implementation
ISO/IEC 30106-3, Information technology — Object oriented BioAPI — Part 3: C# implementation
ISO/IEC 14882, Programming languages — C++
3 Terms and definitions
No terms and definitions are listed in this document.
ISO and IEC maintain terminological databases for use in standardization at the following addresses:
— ISO Online browsing platform: available at https: //www .iso .org/obp
— IEC Electropedia: available at http: //www .electropedia .org/
4 BioAPI C++ general requirements
All classes defined in the scope of this document shall have a constructor with all its properties as
parameters, as well as a destructor that will free all allocated memory. In addition, the definition of
each of the classes may contain further requirements for the constructor.
The destructor shall fullfill at least, the same requirements that the corresponding Dispose() method
defined in ISO/IEC 30106-2 and ISO/IEC 30106-3.
In addition, most implementations shall declare the classes as exportable. Therefore, in this document a
constant called BIOAPI is defined, allowing exportation of the classes.
EXAMPLE In Windows the definition of BIOAPI is: #define BIOAPI __declspec(dllexport)
To illustrate the use of the specification given in this document, refer to Annex A.
© ISO/IEC 2019 – All rights reserved 1

5 Data types and constants
5.1 Basic data types
5.1.1 Enumerations
5.1.1.1  BiometricSubtype
Description: Subtype of the biometric data used (e.g. which finger used in finger modalities).
When transferring this information into/from a binary format, the Biometric
Subtype constants defined in ISO/IEC 30106-1 shall be used.
Enum Constant — NoValueAvailable
Summary:
— Left
— Right
— LeftThumb
— LeftIndexFinger
— LeftMiddleFinger
— LeftRingFinger
— LeftLittleFinger
— RightThumb
— RightIndexFinger
— RightMiddleFinger
— RightRingFinger
— RightLittleFinger
— LeftPalm
— LeftBackOfHand
— LeftWrist
— RightPalm
— RightBackOfHand
— RightWrist
2 © ISO/IEC 2019 – All rights reserved

5.1.1.2  BiometricType
Description: Type of the biometric data used (e.g. modality). When transferring this infor-
mation into/from a binary format, the Biometric Type constants defined in ISO/
IEC 30106-1 shall be used.
Enum Constant — NoValueAvailable
Summary:
— MultipleBiometricTypes
— Face
— Voice
— Finger
— Iris
— Retina
— HandGeometry
— SignatureOrSign
— Keystroke
— LipMovement
— Gait
— Vein
— DNA
— Ear
— Foot
— Scent
5.1.1.3  BIRDatabaseAccess
Description: Defines the access mode to the database
Enum Constant — Read – access mode which allows only retrieval of records.
Summary:
— ReadWrite – access mode which allows addition, deletion and retrieval of
records.
— Write – access mode which allows addition and deletion of records, but
retrieval is not allowed
© ISO/IEC 2019 – All rights reserved 3

5.1.1.4  BSPSchemaOperations
Description: Enumerates the different operations that a BSP can offer to the biometric appli-
cation (see 5.6)
Enum Constant — CalibrateSensor (0x00020000)
Summary:
— Capture (0x00000004)
— CheckQuality (0x00080000)
— ControlUnit (0x00400000)
— CreateTemplate (0x00000008)
— CreateTemplateWithAuxBIR (0x00000020)
— EnableEvents (0x00000001)
— Enrol (0x00000100)
— GetIndicatorStatus (0x00010000)
— Identify (0x00000080)
— IdentifyAggregate (0x00000400)
— PresetIdentifyPopulation (0x00001000)
— Process (0x00000010)
— ProcessWithAuxBIR (0x01000000)
— QueryBFPs (0x00200000)
— QueryUnits (0x00100000)
— Security (0x10000000)
— SetIndicatorStatus (0x00008000)
— SetPowerMode (0x00004000)
— Verify (0x00000040)
— VerifyAggregated (0x00000200)
— VerifyWithAuxBIR (0x02000000)
4 © ISO/IEC 2019 – All rights reserved

5.1.1.5  BSPSchemaOptions
Description: Enumerates the different options that can a handle a BSP (see 5.6)
Enum Constant — Adaptation (0x00000800)
Summary:
— AppGUI (0x00000010)
— AchiveBFP (0x00020000)
— Binning (0x00001000)
— BirEncrypt (0x00000200)
— BirSign (0x00000100)
— CaptureMultiple (0x00400000)
— CoarseScores (0x00100000)
— ComparisonBFP (0x00040000)
— GUIProgressEvents (0x00000020)
— IdentifyIndicator (0x00200000)
— OCC (0x00004000) (on-card comparison, formerly known as MOC)
— AdditionalData (0x00000080)
— ProcessingBFP (0x00080000)
— ProcessMultiple (0x00800000)
— QualityIntermediate (0x00000004)
— QualityProcessed (0x00000008)
— QualityRaw (0x00000002)
— Raw (0x00000001)
— SelfContainedDevice (0x00002000)
— SensorBFP (0x00010000)
— SourcePresent (0x00000040)
— SubtypeToCapture (0x00008000)
— TemplateUpdate (0x00000400)
— Disabilities
— PADFeature
© ISO/IEC 2019 – All rights reserved 5

5.1.1.6  EventKind
Description: Defines the kind of sources that can originate an event
Enum Constant — Insert (0x00000001)
Summary:
— Remove (0x00000002)
— Fault (0x00000004)
— SourcePresent (0x00000008)
— SourceRemoved (0x00000010)
5.1.1.7  Facility
Description: Defines originator of the error in an exception (see 10.1)
Enum Constant — Framework – The error was reported by the framework component.
Summary:
— BSP – The error was reported by the biometric service provider.
— Unit – The error was reported by the biometric unit

5.1.1.8  GUIEnrolType
Description: Indicates the enrol type of a BSP (see 10.2)
Enum Constant — TestVerify
Summary:
— MultipleCapture
5.1.1.9  GUIMoment
Description: Determines the moment when the processing of an operation is at the time of
calling a GUI callback function (see 10.2)
Enum Constant — BeforeStart
Summary:
— AfterEnd
6 © ISO/IEC 2019 – All rights reserved

5.1.1.10  GUIOperation
Description: Determines the operation being performed when using GUI callback functions
(see 10.2)
Enum Constant — Capture
Summary:
— Enrol
— Identify
— Verify
5.1.1.11  GUIResponse
Description: Enumeration of the possible actions to be performed bya BSP after a GUI event
notification callback made by the BSP has returned control to the BSP (see 10.2)
Enum Constant — CycleStart
Summary:
— CycleRestart
— Default
— OpComplete
— OpCancel
— ProgressContinue
— ProgressAbort
— Recapture
— SubOpStart
— SubOpNext
5.1.1.12   GUISuboperation
Description: An enumeration of the possible types of suboperations performed by a BSP during
an operation, to be reported to the application in GUI event notifications (see 10.2)
Enum Constant — Capture
Summary:
— CreateTemplate
— Identify
— Process
— Verify
© ISO/IEC 2019 – All rights reserved 7

5.1.1.13  ProcessedLevel
Description: Determines the level of processing of the BIR
Enum Constant — Intermediate
Summary:
— Processed
— Raw
5.1.1.14  Purpose
Description: Defines the purpose for which the BIR or process is intended
Enum Constant — Verify
Summary:
— Identify
— Enrol
— EnrolForVerificationOnly
— EnrolForIdentificacionOnly
— Audit
— Decide
— NoPurposeAvailable
5.1.1.15  ResultOptions
Description: Defines the request to some BioAPI methods, to provide additional results to the
originally defined (e.g. see 6.3.2).
Enum Constant — RequestAdaptedBIR – Request that a BIR be constructed by adapting the
Summary: reference template using the processed BIR that is the input to the biometric
verification.
— RequestAdditionalData – Request that the additionalData should be returned
upon successful verification
— RequestAdditionalData – Request additional data to be used, for example, in an
auditing process.
8 © ISO/IEC 2019 – All rights reserved

5.1.1.16  SecurityOptionsType
Description: Defines which security options are supported by the BioAPI_Unit
Enum Constant — Encryption (0x00000001) – Indicates that the BioAPI Unit supports encryption.
Summary:
— MAC (0x00000002) – Indicates that the BioAPI Unit supports MAC generation.
— DigitalSignature (0x00000004) – Indicates that the BioAPI Unit supports digital
signature.
— ACBioGenerationWithMAC (0x00000010) – Indicates that the BioAPI Unit
supports ACBio generation using MAC.
— ACBioGenerationWithDigitalSignature (0x00000020) – Indicates that the
BioAPI Unit supports ACBio generation using digital signature.

5.1.1.17  UnitCategoryType
Description: List the different categories for a BioAPI_Unit
Enum Constant — Archive – the unit manages BSP’s BIR database. (0x00000001)
Summary:
— Comparison – the unit is the collection of comparison algorithms.
(0x00000002)
— Processing – the unit is the collection of processing algorithms.
(0x00000004)
— Sensor – the unit manages hardware sensor (0x00000008)
— QualityAssessment – the unit is the collection of the different quality
assessment processes (0x00000010)

5.1.1.18  UnitIndicatorStatus
Description: Defines possible values for the indicator status
Enum Constant — Accept
Summary:
— Busy
— Failure
— Ready
— Reject
© ISO/IEC 2019 – All rights reserved 9

5.1.1.19  UnitPowerMode
Description: Defines possible unit power modes
Enum Constant — Detect – mode when unit is able to detect interaction of subject with the sensor.
Summary:
— Normal – mode when all functions are available.
— Sleep – minimum mode. All functions off
5.1.2 BioAPIData
5.1.2.1 Description
Defines generic data to be exchanged within Object Oriented BioAPI.
5.1.2.2 C++ definition
typedef vector BIOAPI BioAPIData;
5.1.3 RegistryID
5.1.3.1 Description
Defines the identification of the data to be used or the product identification. It is a structure with two
components, as defined in the different fields of ISO/IEC 19785 Biometric Information Records (BIRs)
5.1.3.2 Properties summary
— unsigned short Owner
— unsigned short Type
5.1.3.3 C++ definition
typedef struct BIOAPI RegistryID {
unsigned short owner;
unsigned short type;
} RegistryID;
5.1.4 UUID
5.1.4.1 Description
Throughout this document, there is a need to use Unique Identifiers, either for components or for users.
This document defines the Universally Unique IDentifier (UUID) as an array of 16 bytes.
5.1.4.2 C++ definition
typedef array BIOAPI UUID;
5.1.5 Date and Time
In the scope of this document, date and time will be handled by the tm structure contained in the
standard ctime library.
EXAMPLE
#include
tm BDBCreationDate;
10 © ISO/IEC 2019 – All rights reserved

5.2 Class ACBioParameters
5.2.1 Description
The structure that provides the information which is used to generate ACBio instances.
5.2.2 Properties summary
— vector Challenge – Challenge from the validator of a biometric verification when ACBio is
used. This value shall be sent to the field controlValue of type ACBioContentInformation in ACBio
instances.
— vector InitialBPUIOIndexOutput – The initial value of BPU IO index which is to be assigned to the
output from the BioAPI Unit, BFP, or BSP when the ACBio instances are generated. The range between
InitialBPUIOIndexOutput and SupremumBPUIOIndexOutput shall be divided into the number of BSP
Units and BFPs which are accepted by the BSP, and assigned to the BSP Units and BSPs.
— vector SupremumBPUIOIndexOutput – The supremum of BPU IO indexes which are to be
assigned to the output from the BioAPI Unit, BFP, or BSP when the ACBio instances are generated.
5.3 Class BFPListElement
5.3.1 Description
Identifies a BFP by category and UUID. A list is returned by a BSP when queried for the installed BFPs
that it supports.
5.3.2 Properties summary
— UnitCategoryType UnitCategory: The category of the unit.
— UUID BFPID: The UUID assigned to the BFP.
5.4 Class BFPSchema
5.4.1 Description
Represents the record in the component registry that defines the properties of the BFP installed in the
system. Is a serializable class.
5.4.2 Properties summary
— UUID BFPUUID: UUID of the BFP.
— UnitCategoryType BFPCategory: Category of the BFP identified by the BFPUUID.
— string BFPDescription: A NULL-terminated string containing a text description of the BFP.
— string Path: A pointer to a NULL-terminated string containing the path of the file containing the
BFP executable code, including the filename. The path may be a URL. This string shall consist of
ISO/IEC 10646 characters encoded in UTF-8 (see ISO/IEC 10646:2017, Annex D). When BFPSchema
is used within a function call, the component that receives the call allocates the memory for the Path
schema element and the calling component frees the memory.
— string SpecVersion: Major/minor version number of the BioAPI specification to which the BFP was
implemented.
— string ProductVersion: The version string of the BFP software.
© ISO/IEC 2019 – All rights reserved 11

— string Vendor: A NULL-terminated string containing the name of the BFP vendor.
— svector BFPProperty.
— vector BFPSupportedFormats: A list the data formats that are supported by the BFP
(see 7.1).
— vector FactorsMask: A list of the biometric types supported by the BFP (see 7.1).
— UUID FwPropertyID: UUID of the format of the following BFP property.
— vector FwProperty: Address and length of a memory buffer containing the BFP
property. The format and content of the BFP property can either be specified by a vendor or can be
specified in a related standard.
5.5 Class BIR
5.5.1 Description
This interface represents BIRs. It supports ISO/IEC 19785 definitions, both for Simple-BIRs or for
Complex-BIRs. The specification of the patron format that shall be used is given in ISO/IEC 30106-1.
5.5.2 Properties summary
— RegistryID SelfID;
— unsigned char CBEFFVersion;
— unsigned char PatronHeaderVersion;
— RegistryID BDBFormat;
— bool BDBEncription;
— bool BIRIntegrity;
— BiometricType BDBBiometricType;
— BiometricSubtype BDBBiometricSubtype;
— RegistryID BDBCaptureDevice;
— RegistryID BDBFeatureExtractionAlg;
— RegistryID BDBComparisonAlg;
— RegistryID BDBCompresionAlg;
— RegistryID BDBPADTechnique;
— vector BDBChallengeResponse;
— tm BDBCreationDate;
— vector BDBIndex;
— ProcessedLevel BDBProcessedLevel;
— RegistryID BDBProduct;
— Purpose BDBPurpose;
— unsigned char BDBQuality;
12 © ISO/IEC 2019 – All rights reserved

— RegistryID BDBQualityAlg;
— vector BDBValidityPeriod;
— tm BIRCreationDate;
— vector BIRCreator;
— vector BIRIndex;
— vector BIRPayload;
— vector BIRPointer;
— vector BIRValidityPeriod;
— RegistryID SBFormat;
— vector BDBData;
— vector SBData.
5.5.3 Method summary
5.5.3.1  BIR (vector record)
Description: Constructs the BIR data from a byte array coded as an ISO/IEC 19785 self-identi-
fying record
Parameters: — record: the byte array containing the CBEFF record
Exception: If the input parameters are invalid, the format is not supported or operation fails
due to error.
BioAPIException (see 10.1)
5.5.3.2  BIR(RegistryID bDBFormat, bool bDBEncription, bool bIRIntegrity, BiometricType
bDBBiometricType, BiometricSubtype bDBBiometricSubtype, RegistryID bDBCaptureDevice,
RegistryID bDBFeatureExtractionAlg, RegistryID bDBComparisonAlg, RegistryID bDBCom-
presionAlg, RegistryID bDBPADTechnique, vector bDBChallengeResponse, tm
bDBCreationDate, vector bDBIndex, ProcessedLevel bDBProcessedLevel, Reg-
istryID bDBProduct, Purpose bDBPurpose, unsigned char bDBQuality, RegistryID bDBQualit-
yAlg, vector bDBValidityPeriod, tm bIRCreationDate, vector bIRCreator,
vector bIRIndex, vector bIRPayload, vector
bIRPointer, vector bIRValidityPeriod, RegistryID sBFormat, vector bDB-
Data, vector sBData);
Description: Constructs the BIR data from its individual components
Parameters: — Each of the properties in the BIR class
Exception: If the input parameters are invalid, the format is not supported or operation fails
due to error.
BioAPIException (see 10.1)
5.5.3.3  vector ToArray()
Description: Serializes a BIR record in order to provide it as a byte array representing the
CBEFF information
Return Value: The byte array containing the CBEFF information
© ISO/IEC 2019 – All rights reserved 13

Exception: If the input parameters are invalid, the format is not supported or operation fails
due to error.
BioAPIException (see 10.1)
5.6 Class BSPSchema
5.6.1 Description
Represents the record in the component registry that defines the properties of the BSP installed in the
system. Is a serializable class.
5.6.2 Properties summary
— UUID BSPUUID.
— String BSPDescription: A NULL-terminated string containing a text description of the BSP.
— string Path: A pointer to a NULL-terminated string containing the path of the file containing the
BSP executable code, including the filename. The path may be a URL. This string shall consist of
ISO/IEC 10646 characters encoded in UTF-8 (see ISO/IEC 10646:2017, Annex D). When BioAPI_BSP_
SCHEMA is used within a function call, the component that receives the call allocates the memory
for the Path schema element and the calling component frees the memory.
— string SpecVersion: Major/minor version number of the BioAPI specification to which the BSP was
implemented.
— string ProductVersion: The version string of the BSP software.
— string Vendor: A NULL-terminated string containing the name of the BSP vendor.
— vector BSPSupportedFormats: A list the data formats that are supported by the BSP
(see 5.1.3).
— vector FactorsMask: A list of the biometric types supported by the BSP (see 5.1.1.2).
— vector Operations: A list of the biometric operations supported by the BSP
(see 4.1.1.4).
— vector Options: A list of the biometric options supported by the BSP (see
5.1.1.5).
— int AdditionalDataPolicy: Threshold setting (maximum FMR value) used to determine when to
release additionalData after successful verification.
— int MaxAdditionalDataSize: Maximum additionalData size (in bytes) that the BSP can accept.
— int DefaultVerifyTimeout: Default timeout value in milliseconds used by the BSP for Verify operations
when no timeout is specified by the applica
...

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...