ISO/IEC 30106-2:2020
(Main)Information technology — Object oriented BioAPI — Part 2: Java implementation
Information technology — Object oriented BioAPI — Part 2: Java implementation
This document specifies an interface of a BioAPI Java framework and BioAPI Java BSP, which will mirror the corresponding components, specified in ISO/IEC 30106-1. The semantic equivalent of ISO/IEC 30106-1 is maintained in this document.
Technologies de l'information — Objet orienté BioAPI — Partie 2: Mise en oeuvre Java
General Information
Relations
Buy Standard
Standards Content (Sample)
INTERNATIONAL ISO/IEC
STANDARD 30106-2
Second edition
2020-11
Information technology — Object
oriented BioAPI —
Part 2:
Java implementation
Technologies de l'information — Objet orienté BioAPI —
Partie 2: Mise en oeuvre Java
Reference number
ISO/IEC 30106-2:2020(E)
©
ISO/IEC 2020
---------------------- Page: 1 ----------------------
ISO/IEC 30106-2:2020(E)
COPYRIGHT PROTECTED DOCUMENT
© ISO/IEC 2020
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
Email: copyright@iso.org
Website: www.iso.org
Published in Switzerland
ii © ISO/IEC 2020 – All rights reserved
---------------------- Page: 2 ----------------------
ISO/IEC 30106-2:2020(E)
Contents Page
Foreword .vi
Introduction .vii
1 Scope . 1
2 Normative references . 1
3 Terms and definitions . 1
4 BioAPI Java package structure . 1
4.1 Overall structure . 1
4.2 Package org.bioapi . 1
4.2.1 Package description . 1
4.2.2 Structure . 2
4.3 Package org.bioapi.data . 2
4.3.1 Package description . 2
4.3.2 Structure . 2
5 Data types and constants . 2
5.1 Class ACBioParameters . 2
5.1.1 Description . . . 2
5.1.2 Method summary . 2
5.2 Class BFPListElement . . 3
5.2.1 Description . . . 3
5.2.2 Method summary . 3
5.3 Class BFPSchema. 3
5.3.1 Description . . . 3
5.3.2 Method summary . 3
5.4 Class BIR . 5
5.4.1 Description . . . 5
5.4.2 Method summary . 5
5.5 Class BSPSchema .11
5.5.1 Description . . .11
5.5.2 Method Summary .11
5.6 Class Candidate .14
5.6.1 Description . . .14
5.6.2 Method summary .14
5.7 Class DataTypes .15
5.7.1 Description . . .15
5.7.2 Enumerations .15
5.8 Class Date .22
5.8.1 Description . . .22
5.8.2 Method summary .22
5.9 Class FrameworkSchema .25
5.9.1 Description . . .25
5.9.2 Method summary .25
5.10 Class GUIBitmap .26
5.10.1 Description . . .26
5.10.2 Method summary .26
5.11 Class IdentifyPopulation .27
5.11.1 Description . . .27
5.11.2 Method summary .27
5.12 Class PopulationMember .28
5.12.1 Description . . .28
5.12.2 Method summary .28
5.13 Class RegistryID .28
5.13.1 Description . . .28
© ISO/IEC 2020 – All rights reserved iii
---------------------- Page: 3 ----------------------
ISO/IEC 30106-2:2020(E)
5.13.2 Method summary .28
5.14 Class SecurityProfileType .29
5.14.1 Description . . .29
5.14.2 Method summary .29
5.15 Class UnitList .30
5.15.1 Description . . .30
5.15.2 Method summary .30
5.16 Class UnitListElement .31
5.16.1 Description . . .31
5.16.2 Method summary .31
5.17 Class UnitSchema .31
5.17.1 Description . . .31
5.17.2 Method summary .31
5.18 Class UUID .34
5.18.1 Description . . .34
6 Object oriented interfaces for supporting BioAPI_Units .34
6.1 General .34
6.2 Interface archive .34
6.2.1 Description . . .34
6.2.2 Method summary .34
6.3 Interface comparison .38
6.3.1 Description . . .38
6.3.2 Method summary .39
6.4 Interface processing .41
6.4.1 Description . . .41
6.4.2 Method summary .41
6.5 Interface sensor .43
6.5.1 Description . . .43
6.5.2 Method summary .43
7 BFP level .44
7.1 Interface BFP .44
7.1.1 Description . . .44
7.1.2 Imported interfaces .44
7.1.3 Method summary .44
8 BSP level .47
8.1 Interface BSP .47
8.1.1 Description . . .47
8.1.2 Imported interfaces .47
8.1.3 Method summary .47
9 Framework level .56
9.1 Interface ComponentRegistry .56
9.1.1 Description . . .56
9.1.2 Method summary .56
9.2 Interface framework .57
9.2.1 Description . . .57
9.2.2 Inherited interfaces .57
9.2.3 Method summary .58
10 Application interaction .62
10.1 class BioAPIException extends Exception .62
10.1.1 Description . . .62
10.1.2 Constructor summary .62
10.1.3 Method Summary .63
10.2 GUI callback functions .63
10.2.1 Description . . .63
10.2.2 Callback interface specification .64
iv © ISO/IEC 2020 – All rights reserved
---------------------- Page: 4 ----------------------
ISO/IEC 30106-2:2020(E)
11 BSP Interaction .68
11.1 Interface BSPEventListener .68
11.1.1 Method summary .68
12 BFP Interaction .68
12.1 Interface BFPEnumerationListener .68
12.1.1 Method summary .68
12.2 Interface BFPEventListener .68
12.2.1 Method summary .68
12.3 Interface BFPGUIProgressEventListener .69
12.3.1 Method summary .69
Annex A (informative) Java requirements .70
Annex B (informative) Calling sequence examples and sample code .71
Bibliography .72
© ISO/IEC 2020 – All rights reserved v
---------------------- Page: 5 ----------------------
ISO/IEC 30106-2:2020(E)
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.
This second edition cancels and replaces the first edition (ISO/IEC 30106-2:2016), which has been
technically revised.
The main changes compared to the previous edition are as follows:
— correction of typing errors;
— addition of AnalyseQuality method.
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.
vi © ISO/IEC 2020 – All rights reserved
---------------------- Page: 6 ----------------------
ISO/IEC 30106-2:2020(E)
Introduction
This document specifies an application programming interface expressed in Java language. Java
is intended to be a simple, general-purpose, object-oriented programming language that is aimed at
enabling programmers to quickly build a wide range of applications for multiple platforms.
This Java implementation allows an easy use of Java BSPs, Java-based application servers or Java applets.
It is therefore the best way to write desktop and web applications/services. This document provides an
advanced and well-designed remote framework.
Although the best practices of Java programming state that variables should be written in lowercase
letters, in the case of symbols, such as BSP or BFPs, they have been retained in uppercase letters.
© ISO/IEC 2020 – All rights reserved vii
---------------------- Page: 7 ----------------------
INTERNATIONAL STANDARD ISO/IEC 30106-2:2020(E)
Information technology — Object oriented BioAPI —
Part 2:
Java implementation
1 Scope
This document specifies an interface of a BioAPI Java framework and BioAPI Java BSP, which will
mirror the corresponding components, specified in ISO/IEC 30106-1. The semantic equivalent of
ISO/IEC 30106-1 is maintained in this document.
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 10646, Information technology — Universal Coded Character Set (UCS)
ISO/IEC 30106-1, Information technology — Object oriented BioAPI — Part 1: Architecture
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 Java package structure
4.1 Overall structure
The BioAPI Java interface is divided into several packages. The following is the package structure.
— Package org.bioapi: Contains functionality to manage units, BSPs, BFPs, the Framework and
Applications.
— Package org.bioapi.data: Contains all the data structures.
4.2 Package org.bioapi
4.2.1 Package description
This package contains all the components responsible for managing and executing the functionality of
BioAPI. Component Registry interface is also defined in this package.
© ISO/IEC 2020 – All rights reserved 1
---------------------- Page: 8 ----------------------
ISO/IEC 30106-2:2020(E)
4.2.2 Structure
The description of this package is given explaining a bot
...
DRAFT INTERNATIONAL STANDARD
ISO/IEC DIS 30106-2
ISO/IEC JTC 1/SC 37 Secretariat: ANSI
Voting begins on: Voting terminates on:
2019-09-23 2019-12-16
Information technology — Object oriented BioAPI —
Part 2:
Java implementation
Technologies de l'information — Objet orienté BioAPI —
Partie 2: Mise en oeuvre Java
ICS: 35.240.15
THIS DOCUMENT IS A DRAFT CIRCULATED
FOR COMMENT AND APPROVAL. IT IS
THEREFORE SUBJECT TO CHANGE AND MAY
NOT BE REFERRED TO AS AN INTERNATIONAL
STANDARD UNTIL PUBLISHED AS SUCH.
IN ADDITION TO THEIR EVALUATION AS
BEING ACCEPTABLE FOR INDUSTRIAL,
This document is circulated as received from the committee secretariat.
TECHNOLOGICAL, COMMERCIAL AND
USER PURPOSES, DRAFT INTERNATIONAL
STANDARDS MAY ON OCCASION HAVE TO
BE CONSIDERED IN THE LIGHT OF THEIR
POTENTIAL TO BECOME STANDARDS TO
WHICH REFERENCE MAY BE MADE IN
Reference number
NATIONAL REGULATIONS.
ISO/IEC DIS 30106-2:2019(E)
RECIPIENTS OF THIS DRAFT ARE INVITED
TO SUBMIT, WITH THEIR COMMENTS,
NOTIFICATION OF ANY RELEVANT PATENT
RIGHTS OF WHICH THEY ARE AWARE AND TO
©
PROVIDE SUPPORTING DOCUMENTATION. ISO/IEC 2019
---------------------- Page: 1 ----------------------
ISO/IEC DIS 30106-2.2(E)
ISO/IEC DIS 30106-2:2019(E)
Contents Page
Foreword .xii
Introduction.xiii
1 Scope.1
2 Normative References.1
3 BioAPI Java Package Structure .1
3.1 Package org.bioapi .1
3.1.1 Package description.1
3.1.2 Structure.1
3.2 Package org.bioapi.data.2
3.2.1 Package description.2
3.2.2 Structure.2
4 Data types and constants.3
4.1 Class ACBioParameters .3
4.1.1 Description.3
4.1.2 Method Summary .3
4.1.2.1 int[] getChallenge().3
4.1.2.2 int[] getInitialBPUIOIndexOutput().3
4.1.2.3 int[] getSupremumBPUIOIndexOutput() .3
4.2 Class BFPListElement .3
4.2.1 Description.3
4.2.2 Method Summary .3
4.2.2.1 UUID getBFPID() .3
4.2.2.2 UnitCategoryType getUnitCategory().4
4.2.2.3 void setBFPID(UUID bfpID) .4
4.2.2.4 void setUnitCategory(UnitCategoryType unitCategory) .4
4.3 Class BFPSchema .4
4.3.1 Description.4
4.3.2 Method Summary .4
4.3.2.1 String getBFPDescription() .4
4.3.2.2 Vector getBFPSupportedFormats() .4
4.3.2.3 UUID getBFPUUID().4
4.3.2.4 Vector getFactorsMask().4
4.3.2.5 byte[] getFWProperty() .5
4.3.2.6 UUID getFWPropertyID().5
4.3.2.7 String getPath() .5
4.3.2.8 String getProductVersion() .5
4.3.2.9 String getSpecVersion() .5
4.3.2.10 UnitCategoryType getUnitCategory().5
4.3.2.11 String getVendor().6
4.4 Class BIR.6
4.4.1 Description.6
4.4.2 Method Summary .6
4.4.2.1 void birFromByteArray(byte[] record).6
4.4.2.2 byte[] birToByteArray() .6
COPYRIGHT PROTECTED DOCUMENT
4.4.2.3 void destroy().6
4.4.2.4 BiometricSubtype getBDBBiometricSubtype().6
© ISO/IEC 2019
4.4.2.5 BiometricType getBDBBiometricType().7
All rights reserved. Unless otherwise specified, or required in the context of its implementation, no part of this publication may
4.4.2.6 byte[] getBDBChallengeResponse() .7
be reproduced or utilized otherwise in any form or by any means, electronic or mechanical, including photocopying, or posting
4.4.2.7 Date getBDBCreationDate() .7
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
© ISO/IEC 2019 – All rights reserved iii
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
---------------------- Page: 2 ----------------------
ISO/IEC DIS 30106-2:2019(E)
Contents Page
Foreword . xii
Introduction . xiii
1 Scope . 1
2 Normative References . 1
3 BioAPI Java Package Structure . 1
3.1 Package org.bioapi . 1
3.1.1 Package description . 1
3.1.2 Structure . 1
3.2 Package org.bioapi.data . 2
3.2.1 Package description . 2
3.2.2 Structure . 2
4 Data types and constants . 3
4.1 Class ACBioParameters . 3
4.1.1 Description . 3
4.1.2 Method Summary . 3
4.1.2.1 int[] getChallenge() . 3
4.1.2.2 int[] getInitialBPUIOIndexOutput() . 3
4.1.2.3 int[] getSupremumBPUIOIndexOutput() . 3
4.2 Class BFPListElement . 3
4.2.1 Description . 3
4.2.2 Method Summary . 3
4.2.2.1 UUID getBFPID() . 3
4.2.2.2 UnitCategoryType getUnitCategory() . 4
4.2.2.3 void setBFPID(UUID bfpID) . 4
4.2.2.4 void setUnitCategory(UnitCategoryType unitCategory) . 4
4.3 Class BFPSchema . 4
4.3.1 Description . 4
4.3.2 Method Summary . 4
4.3.2.1 String getBFPDescription() . 4
4.3.2.2 Vector getBFPSupportedFormats() . 4
4.3.2.3 UUID getBFPUUID() . 4
4.3.2.4 Vector getFactorsMask() . 4
4.3.2.5 byte[] getFWProperty() . 5
4.3.2.6 UUID getFWPropertyID() . 5
4.3.2.7 String getPath() . 5
4.3.2.8 String getProductVersion() . 5
4.3.2.9 String getSpecVersion() . 5
4.3.2.10 UnitCategoryType getUnitCategory() . 5
4.3.2.11 String getVendor() . 6
4.4 Class BIR . 6
4.4.1 Description . 6
4.4.2 Method Summary . 6
4.4.2.1 void birFromByteArray(byte[] record) . 6
4.4.2.2 byte[] birToByteArray() . 6
4.4.2.3 void destroy() . 6
4.4.2.4 BiometricSubtype getBDBBiometricSubtype() . 6
4.4.2.5 BiometricType getBDBBiometricType(). 7
4.4.2.6 byte[] getBDBChallengeResponse() . 7
4.4.2.7 Date getBDBCreationDate() . 7
© ISO/IEC 2019 – All rights reserved iii
---------------------- Page: 3 ----------------------
ISO/IEC DIS 30106-2:2019(E)
4.4.2.8 byte[] getBDBData() .7
4.4.2.9 RegistryID getBDBFormat() .7
4.4.2.10 byte[] getBDBIndex() .7
4.4.2.11 ProcessedLevel getBDBProcessedLevel() .7
4.4.2.12 Purpose getBDBPurpose() .7
4.4.2.13 byte getBDBQuality() .8
4.4.2.14 Vector getBDBValidityPeriod() .8
4.4.2.15 Date getBIRCreationDate() .8
4.4.2.16 byte[] getBIRCreator() .8
4.4.2.17 byte[] getBIRIndex() .8
4.4.2.18 byte[] getBIRAdditionalData() .8
4.4.2.19 Vector getBIRValidityPeriod() .8
4.4.2.20 byte getCBEFFVersion() .9
4.4.2.21 RegistryID getPatronFormat() .9
4.4.2.22 byte getPatronHeaderVersion().9
4.4.2.23 byte[] getSBData() .9
4.4.2.24 RegistryID getSBFormat() .9
4.4.2.25 boolean hasBDBEncription() .9
4.4.2.26 boolean hasBDBIntegrity() .9
4.4.2.27 boolean isBIRSigned() . 10
4.4.2.28 boolean isQualitySupported() . 10
4.4.2.29 boolean isQualityKnown() . 10
4.4.2.30 void setBDBBiometricSubtype(BiometricSubtype bdbBiometricSubtype) . 10
4.4.2.31 void setBDBBiometricType(BiometricType bdbBiometricType) . 10
4.4.2.32 void setBDBChallengeResponse(byte bdbChallengeResponse) . 10
4.4.2.33 void setBDBCreationDate(Date bdbCreationDate) . 10
4.4.2.34 void setBDBEncription(boolean bdbEncription) . 10
4.4.2.35 void setBDBFormat(RegistryID bdbFormat) . 10
4.4.2.36 void setBDBData(byte[] bdbData) . 11
4.4.2.37 void setBDBIndex(byte[] bdbIndex) . 11
4.4.2.38 void setBDBIntegrity(boolean bdbIntegrity) . 11
4.4.2.39 void setBDBQuality(byte bdbQuality) . 11
4.4.2.40 void setBDBProcessedLevel(ProcessedLevel bdbProcessedLevel) . 11
4.4.2.41 void setBDBPurpose(Purpose bdbPurpose) . 11
4.4.2.42 void setBDBValidityPeriod(Vector bdbValidityPeriod) . 11
4.4.2.43 void setBIRCreationDate(Date birCreationDate) . 11
4.4.2.44 void setBIRCreator(byte[] birCreator) . 12
4.4.2.45 void setBIRIndex(byte[] birIndex) . 12
4.4.2.46 void setBIRAdditionalData(byte[] birAdditionalData) . 12
4.4.2.47 void setBIRValidityPeriod(Vector birValidityPeriod) . 12
4.4.2.48 void setCBEFFVersion(byte cbeffVersion) . 12
4.4.2.49 void setPatronFormat(RegistryID patronFormat) . 12
4.4.2.50 void setPatronHeaderVersion(byte patronHeaderVersion) . 12
4.4.2.51 void setSBData(byte[] sbData) . 13
4.4.2.52 void setSBFormat(RegistryID sbFormat) . 13
4.5 Class BSPSchema . 13
4.5.1 Description . 13
4.5.2 Method Summary . 13
4.5.2.1 UUID getBSPAccessUUID() . 13
4.5.2.2 String getBSPDescription() . 13
4.5.2.3 Vector getBSPSupportedAlgorithms() . 13
4.5.2.4 Vector getBSPSupportedFormats(). 13
4.5.2.5 Vector getBSPSupportedTransformOperation() . 14
4.5.2.6 UUID getBSPUUID() . 14
4.5.2.7 int getDefaultCalibrateTimeout() . 14
4.5.2.8 int getDefaultCaptureTimeout() . 14
4.5.2.9 int getDefaultEnrolTimeout() . 14
4.5.2.10 int getDefaultIdentifyTimeout() . 14
4.5.2.11 int getDefaultVerifyTimeout() . 14
4.5.2.12 Vector getFactorsMask() . 15
iv © ISO/IEC 2019 – All rights reserved
---------------------- Page: 4 ----------------------
ISO/IEC DIS 30106-2:2019(E)
4.5.2.13 byte[] getHostingEndpointIRI() . 15
4.5.2.14 int getMaxBSPDbSize() . 15
4.5.2.15 int getMaxIdentify() . 15
4.5.2.16 int getMaxNumEnrolInstances() . 15
4.5.2.17 int getMaxAdditionalDataSize() . 15
4.5.2.18 Vector getOperations() . 16
4.5.2.19 Vector getOptions() . 16
4.5.2.20 String getPath() . 16
4.5.2.21 int getAdditionalDataPolicy() . 16
4.5.2.22 String getProductVersion() . 16
4.5.2.23 String getSpecVersion() . 16
4.5.2.24 String getVendor() . 16
4.6 Class Candidate . 17
4.6.1 Description . 17
4.6.2 Method Summary . 17
4.6.2.1 int getFMRAchieved() . 17
4.6.2.2 UUID getKey() . 17
4.6.2.3 void setFMRAchieved(int fmrAchieved) . 17
4.6.2.4 void setKey(UUID key) . 17
4.7 Class DataTypes . 17
4.7.1 Description . 17
4.7.2 Enumerations . 17
4.7.2.1 BiometricSubtype . 18
4.7.2.2 BiometricType . 18
4.7.2.3 BIRDatabaseAccess. 18
4.7.2.4 BSPSchemaOperations . 19
4.7.2.5 BSPSchemaOptions. 19
4.7.2.6 EventKind . 20
4.7.2.7 Facility . 20
4.7.2.8 GUIEnrolType . 20
4.7.2.9 GUIMoment . 20
4.7.2.10 GUIOperation . 20
4.7.2.11 GUIResponse . 20
4.7.2.12 GUISuboperation . 21
4.7.2.13 ProcessedLevel . 21
4.7.2.14 Purpose . 21
4.7.2.15 ResultOptions . 21
4.7.2.16 SecurityOptionsType . 22
4.7.2.17 UnitCategoryType . 22
4.7.2.18 UnitIndicatorStatus . 22
4.7.2.19 UnitPowerMode . 22
4.8 Class Date . 22
4.8.1 Description . 22
4.8.2 Method Summary . 22
4.8.2.1 int getDayOfMonth() . 22
4.8.2.2 int getHour() . 23
4.8.2.3 int getMinute() . 23
4.8.2.4 int getMonth() . 23
4.8.2.5 int getSecond() . 23
4.8.2.6 int getYear() . 23
4.8.2.7 boolean isLowerOrEqual (int day, int month, int year) . 23
4.8.2.8 boolean isLowerOrEqual (int day, int month, int year, int hour, int minute,
int second) . 23
4.8.2.9 bool
...
Questions, Comments and Discussion
Ask us and Technical Secretary will try to provide an answer. You can facilitate discussion about the standard in here.