One Touch For Windows SDK: Java Edition 1.3 SDK Developer Guide

User Manual:

Open the PDF directly: View PDF PDF.
Page Count: 115

DownloadOne Touch For Windows SDK: Java Edition 1.3 SDK Developer Guide
Open PDF In BrowserView PDF
DigitalPersona, Inc.

One Touch® for Windows SDK
Java Edition

Version 1.3

Developer Guide

DigitalPersona, Inc.
© 1996–2008 DigitalPersona, Inc. All Rights Reserved.
All intellectual property rights in the DigitalPersona software, firmware, hardware, and documentation included with or
described in this guide are owned by DigitalPersona or its suppliers and are protected by United States copyright laws,
other applicable copyright laws, and international treaty provisions. DigitalPersona and its suppliers retain all rights not
expressly granted.
DigitalPersona, U.are.U, and One Touch are trademarks of DigitalPersona, Inc., registered in the United States and other
countries. Adobe and Adobe Reader are either registered trademarks or trademarks of Adobe Systems Incorporated in the
United States and/or other countries. Microsoft, Visual C++, Visual Studio, Windows, Windows Server, and Windows Vista
are registered trademarks of Microsoft Corporation in the United States and other countries.
This guide and the software it describes are furnished under license as set forth in the “License Agreement” that is shown
during the installation process.
Except as permitted by such license or by the terms of this guide, no part of this document may be reproduced, stored,
transmitted, and translated, in any form and by any means, without the prior written consent of DigitalPersona. The
contents of this guide are furnished for informational use only and are subject to change without notice. Any mention of
third-party companies and products is for demonstration purposes only and constitutes neither an endorsement nor a
recommendation. DigitalPersona assumes no responsibility with regard to the performance or use of these third-party
products. DigitalPersona makes every effort to ensure the accuracy of its documentation and assumes no responsibility or
liability for any errors or inaccuracies that may appear in it.
Technical Support
Upon your purchase of a Developer Support package (available from http://buy.digitalpersona.com), you are entitled to a
specified number of hours of telephone and email support.
Feedback
Although the information in this guide has been thoroughly reviewed and tested, we welcome your feedback on any
errors, omissions, or suggestions for future improvements. Please contact us at
TechPubs@digitalpersona.com
or
DigitalPersona, Inc.
720 Bay Road, Suite 100
Redwood City, California 94063
USA
(650) 474-4000
(650) 298-8313 Fax

Document Publication Date: June17, 2008 M008

Table of Contents
1

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Target Audience . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Chapter Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Document Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Additional Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
System Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Supported DigitalPersona Products . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Fingerprint Template Compatibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2

Quick Start . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Quick Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Insert the Fingerprint Reader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Using the Sample Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Java UI Sample . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Enrolling Fingerprints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Deleting an Enrolled Fingerprint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Verifying a fingerprint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Fingerprint Enrollment and Verification Sample . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

3

Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Installing the SDK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Installing the Runtime Environment (RTE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Installing and Uninstalling the RTE Silently . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4

Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Biometric System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Fingerprint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Fingerprint Recognition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Fingerprint Enrollment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Fingerprint Verification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Creating an object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
False Positives and False Negatives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Workflows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Fingerprint Enrollment Workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Fingerprint Enrollment with UI Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Enrolling a Fingerprint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

DigitalPersona One Touch for Java SDK | Developer Guide

1
2
2
3
4
4
4
5

14
14
15
18

iii

Table of Contents

Unenrolling (Deleting) a Fingerprint Template . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Fingerprint Verification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Fingerprint Verification with UI Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Fingerprint Data Object Serialization/Deserialization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Serializing a Fingerprint Data Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Deserializing a Serialized Fingerprint Data Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
5

API Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
class onetouch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DPFPCaptureFeedback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DPFPDataPurpose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DPFPError . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DPFPFingerIndex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DPFPGlobal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DPFPData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DPFPFeatureSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DPFPFeatureSetFactory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DPFPSample . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DPFPSampleFactory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DPFPTemplate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DPFPTemplateFactory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
capture package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DPFPCapturePriority . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DPFPCapture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DPFPCaptureFactory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
event package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DPFPDataAdapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DPFPDataEvent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DPFPErrorAdapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DPFPErrorEvent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DPFPImageQualityAdapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DPFPImageQualityEvent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DPFPReaderStatusAdapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DPFPReaderStatusEvent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DPFPSensorAdapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DPFPSensorEvent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DPFPDataListener . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DPFPErrorListener . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DPFPImageQualityListener . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DPFPReaderStatusListener . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DPFPSensorListener . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

DigitalPersona One Touch for Java SDK | Developer Guide

38
38
38
40
40
42
44
46
46
46
47
47
47
47
49
49
50
53
54
54
55
55
56
56
57
57
58
59
59
60
60
61
61
62

iv

Table of Contents

processing package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DPFPImageQualityException . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DPFPTemplateStatus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DPFPEnrollment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DPFPEnrollmentFactory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DPFPFeatureExtraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DPFPFeatureExtractionFactory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DPFPSampleConversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
readers package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DPFPReaderImpressionType . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DPFPReaderSerialNumberType . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DPFPReaderTechnology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DPFPReaderDescription . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DPFPReaderVersion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DPFPReadersCollection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DPFPReadersCollectionFactory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
swing package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DPFPEnrollmentControl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DPFPEnrollmentEvent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DPFPEnrollmentVetoException . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DPFPVerificationControl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DPFPVerificationEvent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DPFPVerificationVetoException . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DPFPEnrollmentListener . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DPFPVerificationListener . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
verification package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DPFPVerification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DPFPVerificationFactory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DPFPVerificationResult . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

63
63
63
64
64
65
65
66
67
67
67
68
69
70
70
70
71
71
73
75
76
78
80
80
80
81
81
83
83

6

Graphical User Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DPFPEnrollmentControl User Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Enrolling a Fingerprint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Unenrolling (Deleting) a Fingerprint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DPFPVerificationControl Graphical User Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

84
84
84
91
93

7

Redistribution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
RTE\Install Folder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Redist Folder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Fingerprint Reader Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Hardware Warnings and Regulatory Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

94
94
94
99
99

DigitalPersona One Touch for Java SDK | Developer Guide

v

Table of Contents

Fingerprint Reader Use and Maintenance Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
8

Setting the False Accept Rate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
False Accept Rate (FAR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Representation of Probability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Requested FAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Specifying the FAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Achieved FAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

100
100
100
101
101
101
102

Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106

DigitalPersona One Touch for Java SDK | Developer Guide

vi

Introduction

1

The One Touch® for Windows SDK - Java Edition is a software development tool that enables developers to
integrate fingerprint biometrics into a wide set of Java-based applications, services, and products. The tool
enables developers to perform basic fingerprint biometric operations: capturing a fingerprint from a
DigitalPersona fingerprint reader, extracting the distinctive features from the captured fingerprint sample, and
storing the resulting data in a template for later comparison of a submitted fingerprint with an existing
fingerprint template.
Other editions of the One Touch for Windows SDK enable developers to use a variety of programming
languages in a number of development environments (Visual Basic, C++ and .NET) to create their applications.
Each edition includes detailed documentation and sample code that can be used to guide developers to
quickly and efficiently produce fingerprint biometric additions to their products.
The One Touch® for Windows SDK: Java Edition builds on a decade-long legacy of fingerprint biometric
technology, being the most popular set of development tools with the largest set of enrolled users of any
biometric product in the world. Because of its popularity, the DigitalPersona® Fingerprint Recognition Engine
software —with its high level of accuracy—and award-winning U.are.U® Fingerprint Reader hardware have
been used with the widest-age, hardest-to-fingerprint demographic of users in the world.
The One Touch for Windows SDK: Java Edition has been designed to authenticate users on the Microsoft®
Windows Vista® and Microsoft® Windows® XP operating systems running on any of the x86-based platforms.
The product is used with DigitalPersona fingerprint readers in a variety of useful configurations: standalone
USB peripherals, modules that are built into customer platforms, and keyboards.
The DigitalPersona One Touch I.D. SDK product can also be implemented along with the One Touch for
Windows SDK: Java Edition to add fast fingerprint identification capability to a developer’s design.
Fingerprint Authentication on a Remote Computer
This SDK includes transparent support for fingerprint authentication through Windows Terminal Services
(including Remote Desktop Connection) and through a Citrix connection to Metaframe Presentation Server
using a client from the Citrix Presentation Server Client package.
Through Remote Desktop or a Citrix session, you can use a local fingerprint reader to log on to, and use other
installed features of, a remote machine running your fingerprint-enabled application.
The following types of Citrix clients are supported:
„

Program Neighborhood

„

Program Neighborhood Agent

„

Web Client

Note that to take advantage of this feature, your fingerprint-enabled application must run on the Terminal
Services or Citrix server, not on the client.

DigitalPersona One Touch for Windows SDK: Java Edition | Developer Guide

1

Chapter 1: Introduction

Target Audience

Target Audience
This guide is for developers who have a working knowledge of the Java programming language.

Chapter Overview
Chapter 1, Introduction (this chapter), describes the audience for which this guide is written; defines the
typographical, notational, and naming conventions used throughout this guide; cites a number of resources
that may assist you in using the One Touch for Windows SDK: Java Edition identifies the minimum system
requirements needed to run the SDK; and lists the DigitalPersona products and fingerprint templates
supported by the SDK.
Chapter 2, Quick Start, provides a quick introduction to the One Touch for Windows SDK: Java Edition using one
of the sample applications provided as part of the SDK.
Chapter 3, Installation, contains instructions for installing the various components of the product and identifies
the files and folders that are installed on your hard disk.
Chapter 4, Overview, introduces One Touch for Windows SDK: Java Edition terminology and concepts. This
chapter also includes typical workflow diagrams and explanations of the One Touch for WindowsSDK: Java
Edition API components used to perform the tasks in the workflows.
Chapter 5, API Reference, defines the components that are used for developing applications based on the One
Touch for WindowsSDK: Java Edition API.
Chapter 6, Graphical User Interfaces, describes the functionality of the graphical user interfaces included with
the DPFPEnrollmentControl and DPFPVerificationControl objects.
Chapter 7, Redistribution, identifies the files that you may distribute according to the End User License
Agreement (EULA) and lists the functionalities that you need to provide to your end users when you develop
products based on the One Touch for WindowsSDK: Java Edition API.
Chapter 8, Setting the False Accept Rate, provides information about determining and using specific values for
the FAR and evaluating and testing achieved values.
A glossary and an index are also included for your reference.

DigitalPersona One Touch for Windows SDK: Java Edition | Developer Guide

2

Chapter 1: Introduction

Document Conventions

Document Conventions
This section defines the notational, typographical, and naming conventions used in this guide.

Notational Conventions
The following notational conventions are used throughout this guide:
NOTE: Notes provide supplemental reminders, tips, or suggestions.
IMPORTANT: Important notations contain significant information about system behavior, including problems
or side effects that can occur in specific situations.

Typographical Conventions
The following typographical conventions are used in this guide:
Typeface

Purpose

Example

Bold

Used for keystrokes and window and dialog
box elements and to indicate data types

Click Fingerprint Enrollment.
The Fingerprint Enrollment dialog box appears.
String that contains a fingerprint reader serial
number

Courier
bold

Used to indicate computer programming code

Check the TemplateStatus property after each
call to the addFeatures method.
Initialize a new instance of the DPFPCapture.
Capture class.

Italics

Used for emphasis or to introduce new terms
If you are viewing this document online,
clicking text in italics may also activate a
hypertext link to other areas in this guide or to
URLs.

This section includes illustrations of typical fingerprint
enrollment and fingerprint verification workflows.
(emphasis)
A fingerprint is an impression of the ridges on the skin
of a finger. (new term)
See Installing the SDK on page 8. (link to heading and
page)

DigitalPersona One Touch for Windows SDK: Java Edition | Developer Guide

3

Chapter 1: Introduction

Additional Resources

Additional Resources
You can refer to the resources in this section to assist you in using the One Touch for Windows SDK: Java Edition.

Related Documentation
Subject

Document

Fingerprint recognition, including the history and basics
of fingerprint identification and the advantages of
DigitalPersona’s Fingerprint Recognition Engine

The DigitalPersona White Paper: Guide to Fingerprint
Recognition. The file, Fingerprint Guide.pdf, is located in
the Docs folder in the One Touch for Java SDK software
package, and is not automatically installed on your
computer as part of the setup process.

Late-breaking news about the product

The Readme.txt files provided in the root directory in the
SDK software package as well as in some subdirectories

Online Resources
Web Site name

URL

DigitalPersona Developer Connection Forum for peer-topeer interaction between DigitalPersona Developers

http://www.digitalpersona.com/webforums/

Latest updates for DigitalPersona software products

http://www.digitalpersona.com/support/downloads/
software.php

System Requirements
This section lists the minimum software and hardware requirements needed to run the One Touch for Windows
SDK: Java Edition.
„

x86-based processor or better

„

JRE or JDK 1.5 or 1.6 (needed to run samples and completed applications)

„

USB connector on the computer where the fingerprint reader is to be connected

„

DigitalPersona U.are.U 4000B or U.are.U 2500 fingerprint reader or module

Supported DigitalPersona Products
The One Touch for Windows SDK: Java Edition supports the following DigitalPersona products:
„

DigitalPersona U.are.U 4000B fingerprint readers and modules

DigitalPersona One Touch for Windows SDK: Java Edition | Developer Guide

4

Chapter 1: Introduction

„

DigitalPersona U.are.U 2500 fingerprint readers and modules

„

DigitalPersona U.are.U Fingerprint Keyboard

Fingerprint Template Compatibility

Fingerprint Template Compatibility
Fingerprint templates produced by the One Touch for Windows SDK are also compatible with the following
DigitalPersona SDKs:
„

Gold SDK

„

Gold CE SDK

„

One Touch for Windows

„

One Touch for Linux SDK, all distributions

DigitalPersona One Touch for Windows SDK: Java Edition | Developer Guide

5

Quick Start

2

This chapter provides a quick introduction to the One Touch for Windows: Java Edition SDK using the included
sample applications.
There are three sample applications.
„

Fingerprint Enrollment & Verification Sample - Provides a basic UI for exploring fingerprint enrollment and
verification and the events that are produced in the process. Also provides the ability to save and open a
fingerprint template.

„

Java UI Sample - Includes a professionally designed series of integrated dialogs that can be used for
enrolling and unenrolling fingerprints.

„

Java Console Sample - Creates a simple console-based application illustrating enrollment and verification,
reader selection and adding a user to the fingerprint database.

Quick Concepts
The following definitions will assist you in understanding the purpose and functionality of the sample
application that is described in this section.
Enrollment—The process of capturing a person’s fingerprint four times, extracting the features from the
fingerprints, creating a fingerprint template, and storing the template for later comparison.
Verification—The process of comparing a captured fingerprint to a fingerprint template to determine whether
the two match.
Unenrollment—The process of deleting a fingerprint template associated with a previously enrolled
fingerprint.
For further descriptions of these processes, see Chapter 4 on page 19.

Installation
Before you can use the sample applications, you must install the One Touch for Windows: Java Edition SDK,
which includes the DigitalPersona One Touch for Windows runtime environment (RTE).
The Java runtime (JRE) or Java SDK (JDK) is required in order to run the sample applications, but is not required
prior to installing the One Touch for Windows: Java Edition SDK.
To install the One Touch for Windows: Java Edition SDK
1. In the SDK\Install folder of the software package, launch the Setup.exe file, and then click Next. If
installing on a 64-bit computer, use the setup.exe located in the SDK\Install\x64 folder.

DigitalPersona One Touch for Windows: Java Edition SDK | Developer Guide

6

Chapter 2: Quick Start

Insert the Fingerprint Reader

2. Follow the installation instructions as they appear.
3. Restart your computer.
4. Optionally install a supported JRE or JDK. See page 4 for supported JRE/JDKs.

Insert the Fingerprint Reader
Insert the fingerprint reader into the USB connector on the system where you installed the SDK.

Using the Sample Applications
After installation, you will find the sample applications in the following folder,
\One Touch SDK\Java\Samples
The sample applications are:
Name

File to Launch

Page

Java UI Sample

\Samples\uisupport\run.bat

7

Fingerprint Enrollment and Verification Sample

\Samples\enrollment\run.bat

11

Console UI Sample

\Samples\console\run.bat

13

Java UI Sample
To start the Java UI sample application 1. Launch the run.bat file. in the
Samples\uisupport folder.
2. The Java UI Sample dialog box displays.

Functions
This sample application illustrates the following
enrollment functions:
Max. Enrolled Fingerprints Count- allows you to
specify the maximum number of fingerprints that
can be enrolled.
Enrolled Fingerprints - displays a checkmark next
to each enrolled finger. Click on any enrolled finger
to unenroll (delete) the finger.

DigitalPersona One Touch for Windows: Java Edition SDK | Developer Guide

7

Chapter 2: Quick Start

Java UI Sample

Enforce enrollment or unenrollment failure - when checked, the enrollment and unenrollment processes
will always fail.
Enroll Fingerprints - Click this button to enroll or unenroll (delete) a finger
This sample application illustrates the following verification functions:
False Accept Rate (FAR) requested- Illustrates setting the FAR, the proportion of fingerprint verification
transactions, by fingerprint data subjects not enrolled in the system, where an incorrect decision of match is
returned.
False Accept Rate (FAR) achieved- Illustrates the FAR actually achieved during the current transaction.
Fingerprint Matched- When verifying a fingerprint, if the scanned fingerprint matches a previously enrolled
fingerprint, this box will be checked.
Verify Fingerprint- Click this button to verify a fingerprint. The button is disabled until at least one fingerprint
has been enrolled.

Enrolling Fingerprints
To enroll a fingerprint 1. Click Enroll Fingerprints. The Fingerprint Enrollment dialog displays.

2. Click the finger on the illustration that corresponds to the finger that you wish to enroll.

DigitalPersona One Touch for Windows: Java Edition SDK | Developer Guide

8

Chapter 2: Quick Start

Java UI Sample

3. Scan your fingerprint successfully four times. The previous screen will display, with the successfully
enrolled finger highlighted in green.

DigitalPersona One Touch for Windows: Java Edition SDK | Developer Guide

9

Chapter 2: Quick Start

Java UI Sample

Deleting an Enrolled Fingerprint
To delete an enrolled fingerprint „

On the Java UI Sample dialog, click any enrolled finger, i.e. one with a checkmark in the box next to it.

„

Or, on the Enroll a Fingerprint dialog, click any enrolled fingerprint, i.e. one that is highlighted in green.

Verifying a fingerprint
To verify a fingerprint 1. Click Verify Fingerprint.

2. Touch the fingerprint reader with any enrolled finger.

DigitalPersona One Touch for Windows: Java Edition SDK | Developer Guide

10

Chapter 2: Quick Start

Fingerprint Enrollment and Verification Sample

Fingerprint Enrollment and Verification Sample
To start the Fingerprint Enrollment and Verification Sample application 1. Launch the run.bat file in the Samples\Enrollment folder.
2. The Fingerprint Enrollment and Verification Sample dialog box displays.

Functions
This sample application illustrates the following functions:
Fingerprint Enrollment - illustrates default prompts and standard events occurring in the enrollment process.
Also shows the image captured by the fingerprint reader.

DigitalPersona One Touch for Windows: Java Edition SDK | Developer Guide

11

Chapter 2: Quick Start

Fingerprint Enrollment and Verification Sample

Fingerprint Verification - illustrates default prompts and standard events occurring in the verification process.
Also shows image captured by the fingerprint reader.

Save Fingerprint Template - illustrates saving the fingerprint template as a file using a standard Java Save
dialog.
Read Fingerprint Template - illustrates opening and reading the fingerprint template using a standard Java
Save dialog.

DigitalPersona One Touch for Windows: Java Edition SDK | Developer Guide

12

Chapter 2: Quick Start

Fingerprint Enrollment and Verification Sample

Console UI Sample
To start the Console UI Sample application 1. Launch the run.bat file in the Samples\console folder.
2. The Console UI displays.

Functions
This sample application illustrates the following functions:
List all available readers - illustrates listing all available fingerprint readers.
Select a reader - illustrates selection of a specific fingerprint reader or an option to use any available reader.
Add a person to the database - illustrates adding a person to the user database. You must select a reader and
add a person to the database before you can enroll their fingerprints.
Perform fingerprint enrollment - illustrates a console-based enrollment process. You must select a reader and
add a person to the database and enroll a fingerprint before you can perform verification.
Exit the application - Closes the sample application and the command box.

DigitalPersona One Touch for Windows: Java Edition SDK | Developer Guide

13

Installation

3

This chapter contains instructions for installing the various components of the One Touch for Windows SDK:
Java Edition and identifies the files and folders that are installed on your hard disk.
The following two installations are located in the SDK software package:
„

SDK, which you use in developing your application. This installation is located in the SDK folder.

„

RTE (runtime environment), which you must provide to your end users to implement the One Touch for
Windows SDK: Java Edition API components. This installation is located in the RTE folder. (The RTE
installation is also included in the SDK installation.)

Installing the SDK
NOTE: All installations share the DLLs and the DPHostW.exe file that are installed with the C/C++ edition.
Additional product-specific files are provided for other editions.
To install the One Touch for Windows SDK: Java Edition for 32-bit operating systems
1. In the SDK folder in the SDK software package, open the Setup.exe file, and then click Next.
2. Follow the installation instructions as they appear.
3. Restart your computer.
To install the One Touch for Windows SDK: Java Edition for 64-bit operating systems
1. In the SDK\x64 folder in the SDK software package, open the Setup.exe file, and then click Next.
2. Follow the installation instructions as they appear.
3. Restart your computer.
Table 1 describes the files and folders that are installed in the  folder on your hard disk for
the 32-bit and 64-bit installations. The RTE files and folders, which are described in Table 2 on page 16 for the
32-bit installation and in Table 3 on page 17 for the 64-bit installation, are also installed on your hard disk.

DigitalPersona One Touch for Windows SDK: Java Edition | Developer Guide

14

Chapter 3: Installation

Installing the Runtime Environment (RTE)

Table 1. One Touch for Windows SDK: Java Edition installed files and folders
Folder

Files/Description

One Touch SDK\Java\Docs

DigitalPersona One Touch for Windows SDK: Java
Edition Developer Guide

One Touch SDK\Java\Samples

This folder contains subfolders for each of the
samples provided as part of the SDK, with source
code, build.bat and run.bat files in the directory. To
run the sample applications use the run.bat file in
the appropriate directory.

One Touch SDK\Java\Samples\UI Support

This folder contains the source code, build.bat, and
run.bat files for the sample Java application,
UISupport, that demonstrates the functionality of
the graphical user interface.

One Touch SDK\Java\Samples\Enrollment

This folder contains the source code, build.bat, and
run.bat files for the sample Java application,
Enrollment, that shows how to use the One Touch for
Windows: Java Edition API for performing fingerprint
enrollment and fingerprint verification.

One Touch SDK\Java\Samples\Console

This folder contains the source code, build.bat, and
run.bat files for the sample Java application,
console.bat, that demonstrates through a console
application, enrollment and verification and
additional functionality such as selecting a reader
and adding a user to the user database.

Installing the Runtime Environment (RTE)
When you develop a product based on the One Touch for Windows SDK: Java Edition, you need to provide the
redistributables to your end users. These files are designed and licensed for use with your application. You may
include the installation files located in the RTE\Install folder in your application or you may incorporate the
redistributables directly into your installer. You may also use the merge modules located in the Redist folder in
the SDK software package to create your own MSI installer. (See Redistribution on page 94 for licensing terms.)

DigitalPersona One Touch for Windows SDK: Java Edition | Developer Guide

15

Chapter 3: Installation

Installing the Runtime Environment (RTE)

If you created an application based on the One Touch for Windows: Java Edition API that does not include an
installer, your end users must install the One Touch for Windows: Java Edition Runtime Environment to run your
application. The latest version of the RTE is available from the DigitalPersona Web site at
http://www.digitalpersona.com/support/downloads/software.php.
To install the One Touch for Windows: Java Edition Runtime Environment for 32-bit operating systems
1. In the RTE folder in the SDK software package, open the Setup.exe file.
2. Follow the installation instructions as they appear.
Table 2 identifies the files that are installed on your hard disk for 32-bit versions of the supported operating
systems.
Table 2. One Touch for Windows: Java Edition RTE installed files and folders, 32-bit installation
Folder

File

Description

\Bin

DPCOper2.dll

DLLs and executable file used by all of the One
Touch for Windows APIs

DPDevice2.dll
DPDevTS.dll
DpHostW.exe
DPmsg.dll
DPMux.dll
DpSvInfo2.dll
DPTSClnt.dll
\Bin\Java

dpfpenrollment.jar
dpfpverification.jar

Java library files and executables used to create
One Touch for Windows functionality.

dpotapi.jar
dpotjni.jar


DPFPApi.dll
DpClback.dll

DLLs used by all of the One Touch for Windows
APIs

dpHFtrEx.dll
dpHMatch.dll
DPFpUI.dll


otdpfpjni.dll
otfxjni.dll

DLLs used by the One Touch for Windows: Java
Edition API

otmcjni.dll

DigitalPersona One Touch for Windows SDK: Java Edition | Developer Guide

16

Chapter 3: Installation

Installing the Runtime Environment (RTE)

To install the One Touch for Windows: Java Edition Runtime Environment for 64-bit operating systems
1. In the RTE\x64 folder in the SDK software package, open the Setup.exe file.
2. Follow the installation instructions as they appear.
Table 3 identifies the files that are installed on your hard disk for 64-bit versions of the supported operating
systems.
Table 3. One Touch for Windows SDK: Java Edition RTE installed files and folders, 64-bit installation
Folder

File

Description

\Program Files (x86)\Bin

DPCOper2.dll

DLLs and executable file used by all of the One
Touch for Windows APIs

DPDevice2.dll
DPDevTS.dll
DpHostW.exe
DPmsg.dll
DPMux.dll
DpSvInfo2.dll
DPCrStor.dll
\Bin

DPTSClnt.dll

64-bit DLLs used by all of the One Touch for
Windows APIs

\Bin\Java

dpfpenrollment.jar

Java library files and executables used to create
One Touch for Windows functionality.

dpfpverification.jar
dpotapi.jar
dpotjni.jar

DigitalPersona One Touch for Windows SDK: Java Edition | Developer Guide

17

Chapter 3: Installation

Installing and Uninstalling the RTE Silently

Table 3. One Touch for Windows SDK: Java Edition RTE installed files and folders, 64-bit installation (continued)
Folder

File

Description



DPFPApi.dll

32-bit DLLs used by all of the One Touch for
Windows APIs

DpClback.dll
dpHFtrEx.dll
dpHMatch.dll
DPFpUI.dll
otdpfpjni.dll
otfxjni.dll
otmcjni.dll


DPFPApi.dll
DpClback.dll

64-bit DLLs used by all of the One Touch for
Windows APIs

dpHFtrEx.dll
dpHMatch.dll
DPFpUI.dll
otdpfpjni.dll
otfxjni.dll
otmcjni.dll

Installing and Uninstalling the RTE Silently
The One Touch for Windows SDK: Java Edition software package contains a batch file, InstallOnly.bat, that you
can use to silently install the RTE. In addition, you can modify the file to selectively install the various features of
the RTE. Refer to the file for instructions.
The SDK software package also contains a file, UninstallOnly.bat, that you can use to silently uninstall the RTE.

DigitalPersona One Touch for Windows SDK: Java Edition | Developer Guide

18

Overview

4

This chapter introduces One Touch for Windows SDK: Java Edition concepts and terminology. (For more details
on the subject of fingerprint biometrics, refer to the “DigitalPersona White Paper: Guide to Fingerprint
Recognition” included in the One Touch for Windows SDK: Java Edition software package.) This chapter also
includes typical workflow diagrams and explanations of the One Touch for Windows SDK: Java Edition API
functions used to perform the tasks in the workflows.

Biometric System
A biometric system is an automatic method of identifying a person based on the person’s unique physical and/
or behavioral traits, such as a fingerprint or an iris pattern, or a handwritten signature or voice. Biometric
identifiers are
„

Universal

„

Distinctive

„

Persistent (sufficiently unchangeable over time)

„

Collectable

Biometric systems have become an essential component of effective person recognition solutions because
biometric identifiers cannot be shared or misplaced and they naturally represent an individual’s bodily identity.
Substitute forms of identity, such as passwords (commonly used in logical access control) and identity cards
(frequently used for physical access control), do not provide this level of authentication that strongly validates
the link to the actual authorized user.
Fingerprint recognition is the most popular and mature biometric system used today. In addition to meeting
the four criteria above, fingerprint recognition systems perform well (that is, they are accurate, fast, and robust),
they are publicly acceptable, and they are hard to circumvent.

Fingerprint
A fingerprint is an impression of the ridges on the skin of a finger. A fingerprint recognition system uses the
distinctive and persistent characteristics from the ridges, also referred to as fingerprint features, to distinguish
one finger (or person) from another. The One Touch for Windows SDK: Java Edition incorporates the
DigitalPersona Fingerprint Recognition Engine (Engine), which uses traditional as well as modern fingerprint
recognition methodologies to convert these fingerprint features into a format that is compact, distinguishing,
and persistent. The Engine then uses the converted, or extracted, fingerprint features in comparison and
decision-making to provide reliable personal recognition.

DigitalPersona One Touch for Windows SDK: Java Edition | Developer Guide

19

Chapter 4: Overview

Fingerprint Recognition

Fingerprint Recognition
The DigitalPersona fingerprint recognition system uses the processes of fingerprint enrollment and fingerprint
verification, which are illustrated in the block diagram in Figure 1 on page 21. Some of the tasks in these
processes are done by the fingerprint reader and its driver; some are accomplished using One Touch for
Windows SDK: Java Edition API functions, which use the Engine; and some are provided by your software
application and/or hardware.

Fingerprint Enrollment
Fingerprint enrollment is the initial process of collecting fingerprint data from a person (enrollee) and storing the
resulting data as a fingerprint template for later comparison. The following procedure describes typical
fingerprint enrollment. (Steps preceded by an asterisk are not performed by the One Touch for Windows SDK:
Java Edition.)
1. *Obtain the enrollee’s identifier (Subject Identifier).
2. Capture the enrollee’s fingerprint using the fingerprint reader.
3. Extract the fingerprint feature set for the purpose of enrollment from the fingerprint sample.
4. Repeat steps 2 and 3 until you have enough fingerprint feature sets to create a fingerprint template.
5. Create a fingerprint template.
6. *Associate the fingerprint template with the enrollee through a Subject Identifier, such as a user name,
email address, or employee number.
7. *Store the fingerprint template, along with the Subject Identifier, for later comparison.
Fingerprint templates can be stored in any type of repository that you choose, such as a fingerprint
capture device, a smart card, or a local or central database.

Fingerprint Verification
Fingerprint verification is the process of comparing the fingerprint data to the fingerprint template produced at
enrollment and deciding if the two match. The following procedure describes typical fingerprint verification.
(Steps preceded by an asterisk are not performed by the One Touch for Windows SDK: Java Edition.)
1. *Obtain the Subject Identifier of the person to be verified.
2. Capture a fingerprint sample using the fingerprint reader.
3. Extract a fingerprint feature set for the purpose of verification from the fingerprint sample.
4. *Retrieve the fingerprint template associated with the Subject Identifier from your repository.

DigitalPersona One Touch for Windows SDK: Java Edition | Developer Guide

20

Chapter 4: Overview

Creating an object

5. Perform a one-to-one comparison between the fingerprint feature set and the fingerprint template, and
make a decision of match or non-match.
6. *Act on the decision accordingly, for example, unlock the door to a building for a match, or deny access to
the building for a non-match.
)LQJHUSULQW(QUROOPHQW
*HW6XEMHFW,GHQWLILHU

&UHDWHILQJHUSULQW
IHDWXUHVHWV

&DSWXUHILQJHUSULQWV

&UHDWHWHPSODWH

6WRUHWHPSODWHDQG
6XEMHFW,GHQWLILHU

&RPSDUHDQG
PDNHGHFLVLRQ

8VHGHFLVLRQLQ
DSSOLFDWLRQ

)LQJHUSULQW9HULILFDWLRQ
*HW6XEMHFW,GHQWLILHU

5HWULHYHWHPSODWHDQG
6XEMHFW,GHQWLILHU

&DSWXUHILQJHUSULQW

&UHDWHILQJHUSULQW
IHDWXUHVHW

/HJHQG
3HUIRUPHGE\2QH7RXFKIRU:LQGRZV6'.-DYD(GLWLRQ
1RWSHUIRUPHGE\2QH7RXFKIRU:LQGRZV6'.-DYD(GLWLRQ

Figure 1. DigitalPersona fingerprint recognition system

Creating an object
In the workflows and their desciptions on the following pages, there are instructions such as “Create Capture
object.” As you can see from the description, step 1 on page 25, this is done using the DPFPCapture class.
However, unlike in the .NET language, we cannot just call DPFPCapture capture = new DPFPCapture(), because
DPFPCapture is an abstract interface, not a concrete class. To create a concrete class you must invoke some
factory which will construct the object with the desired interface. OT JavaSDK provides standard factories via
the DPFPGlobal object, so the construction code will be similar to DPFPCapture capture = DPFPGlobal.getCaptureFactory().createCapture();

DigitalPersona One Touch for Windows SDK: Java Edition | Developer Guide

21

Chapter 4: Overview

False Positives and False Negatives

False Positives and False Negatives
Fingerprint recognition systems provide many security and convenience advantages over traditional methods
of recognition. However, they are essentially pattern recognition systems that inherently occasionally make
certain errors, because no two impressions of the same finger are identical. During verification, sometimes a
person who is legitimately enrolled is rejected by the system (a false negative decision), and sometimes a
person who is not enrolled is accepted by the system (a false positive decision).
The proportion of false positive decisions is known as the false accept rate (FAR), and the proportion of false
negative decisions is known as the false reject rate (FRR). In fingerprint recognition systems, the FAR and the FRR
are traded off against each other, that is, the lower the FAR, the higher the FRR, and the higher the FAR, the
lower the FRR.
A One Touch for Windows SDK: Java Edition API function enables you to set the value of the FAR, also referred
to as the security level, to accommodate the needs of your application. In some applications, such as an access
control system to a highly confidential site or database, a lower FAR is required. In other applications, such as an
entry system to an entertainment theme park, security (which reduces ticket fraud committed by a small
fraction of patrons by sharing their entry tickets) may not be as significant as accessibility for all of the patrons,
and it may be preferable to decrease the FRR at the expense of an increased FAR.
It is important to remember that the accuracy of the fingerprint recognition system is largely related to the
quality of the fingerprint. Testing with sizable groups of people over an extended period has shown that a
majority of people have feature-rich, high-quality fingerprints. These fingerprints will almost surely be
recognized accurately by the DigitalPersona Fingerprint Recognition Engine and practically never be falsely
accepted or falsely rejected. The DigitalPersona fingerprint recognition system is optimized to recognize
fingerprints of poor quality. However, a very small number of people may have to try a second or even a third
time to obtain an accurate reading. Their fingerprints may be difficult to verify because they are either worn
from manual labor or have unreadable ridges. Instruction in the proper use of the fingerprint reader will help
these people achieve the desired results.

Workflows
Typical workflows are presented in this section for the following operations:
„

Fingerprint enrollment

„

Fingerprint enrollment with UI support

„

Fingerprint verification

„

Fingerprint verification with UI support

„

Fingerprint data object serialization and deserialization

NOTE: Steps preceded by two asterisks (**) are done by a fingerprint reader, and steps preceded by a single
asterisk (*) are performed by an application.

DigitalPersona One Touch for Windows SDK: Java Edition | Developer Guide

22

Chapter 4: Overview

Fingerprint Enrollment Workflow

Fingerprint Enrollment Workflow
This section contains a typical workflow for performing fingerprint enrollment. The workflow is illustrated in
Figure 2 and is followed by explanations of the One Touch for Windows SDK: Java Edition API functions used to
perform the tasks in the workflow. Your application workflow may be different than the one illustrated here. For
example, you could choose to create fingerprint feature sets locally and then send them to a server for
enrollment.

DigitalPersona One Touch for Windows SDK: Java Edition | Developer Guide

23

Chapter 4: Overview

Fingerprint Enrollment Workflow

)LQJHUSULQW6DPSOH&DSWXUH  ƒ’–—”‡FODVV
$GGOLVWHQHUWR
UHFHLYHHYHQWQRWLILFDWLRQV

&UHDWHƒ’–—”‡REMHFW
”‡ƒ–‡ƒ’–—”‡ሺሻ

%HJLQFDSWXULQJILQJHUSULQW
VDPSOHVIURPUHDGHU V

ƒ’–—”‡Ǥƒ††‡ƒ†‡”–ƒ–—•‹•–‡‡”ሺ‡™
 ‡ƒ†‡”–ƒ–—•†ƒ’–‡”ሺሻ

ƒ’–—”‡Ǥ•–ƒ”–ƒ’–—”‡ሺሻ

5HFHLYH‘’އ–‡
HYHQWZLWK
 ƒ’އREMHFW

&DSWXUHILQJHUSULQWVDPSOH

6WRSFDSWXULQJ
ILQJHUSULQWVDPSOHV
ƒ’–—”‡Ǥ•–‘’ƒ’–—”‡ሺሻ

)LQJHUSULQW)HDWXUH([WUDFWLRQ   ‡ƒ–—”‡š–”ƒ –‹‘FODVV
&UHDWH  ‡ƒ–—”‡‡–REMHFWXVLQJƒ–ƒ—”’‘•‡RI
”‘ŽŽ‡–
&UHDWH ‡ƒ–—”‡š–”ƒ –‹‘REMHFW
'3)3)HDWXUH6HWIHDWXUH6HW
IHDWXUH([WUDFWRUFUHDWH)HDWXUH6HW
VDPSOH

'3)3'DWD3XUSRVH'$7$B385326(B(152//0(17 

”‡ƒ–‡ ‡ƒ–—”‡š–”ƒ –‹‘ሺሻǢ

5HFHLYH
  ‡ƒ–—”‡‡–REMHFWV

)LQJHUSULQW(QUROOPHQW  ”‘ŽŽ‡–LQWHUIDFH
&UHDWH”‘ŽŽ‡–REMHFW
”‡ƒ–‡”‘ŽŽ‡–ሺሻǢ

3HUIRUPV\VWHPIXQFWLRQRI
ILQJHUSULQWHQUROOPHQWDQGUHWXUQ
 ‡’Žƒ–‡REMHFW

&KHFN‡’Žƒ–‡–ƒ–—•SURSHUW\
‡”‘ŽŽ‡–Ǥ‰‡–‡’Žƒ–‡–ƒ–—•ሺሻ

‡”‘ŽŽ‡–Ǥƒ†† ‡ƒ–—”‡•ሺˆ‡ƒ–—”‡‡–ሻ

5HFHLYH ‡’Žƒ–‡REMHFW
‡”‘ŽŽ‡–Ǥ‰‡–‡’Žƒ–‡ሺሻ

6HULDOL]H ‡’Žƒ–‡REMHFWIRUVWRUDJH

&OHDUILQJHUSULQWWHPSODWHDQG
VHW7‡’Žƒ–‡–ƒ–—•WR‘™
‡”‘ŽŽ‡–Ǥ އƒ”ሺሻ

6WRUHVHULDOL]HGILQJHUSULQW
WHPSODWHGDWDLQILQJHUSULQW
GDWDVWRUDJHVXEV\VWHP

/HJHQG
2QH7RXFKIRU:LQGRZV6'.-DYD

%

2SWLRQDOVWHS
$SSOLFDWLRQ QRWSDUWRI6'.
)LQJHUSULQWUHDGHU

Figure 2. Typical fingerprint enrollment workflow

DigitalPersona One Touch for Windows SDK: Java Edition | Developer Guide

24

Chapter 4: Overview

Fingerprint Enrollment Workflow

Fingerprint Sample Capture (DPFPCapture Class)
1. Create a new instance of the DPFPCapture class (page 50).
2. Load a fingerprint sample capture operation event handler for receiving event notifications by adding
event listeners (page 50).
3. Begin capturing fingerprint samples from the fingerprint reader(s) connected to a system by calling the
startCapture() method (page 52).
4. **Capture a fingerprint sample from a fingerprint reader. Note that you cannot change the priority or the
reader(s) setting of a DPFPCapture object after it is started.
5. *Receive the dataAcquired() event from the fingerprint sample capture event handler along with a
DPFPSample object when the fingerprint sample is successfully captured by the fingerprint reader
(page 54).
6. *Pass the DPFPFeatureExtraction.createFeatureSet(DPFPSample sample,
DPFPDataPurpose purpose); method. (See step 2 in the next section.)
7. Stop capturing fingerprint samples by calling the stopCapture method (page 52).

Fingerprint Feature Extraction (DPFPFeatureExtraction Class)
1. Create a new instance of the DPFPFeatureExtraction class (page 65).
2. Create DPFPFeatureSet objects by calling the createFeatureSet(DPFPSample sample,
DPFPDataPurpose purpose) method using the value Enrollment for DataPurpose and
passing the DPFPSample object from step 6 of the previous section (page 65).
3. *Pass the DPFPFeatureSet objects created in the previous step to the addFeatures method.
(See step 2 in the next section.)

Fingerprint Enrollment (DPFPEnrollment Class)
1. Create a new instance of the DPFPEnrollment class (page 64).
2. Perform the system function of fingerprint enrollment by calling the addFeatures(featureSet)
method and passing the DPFPFeatureSet objects from step 3 of the previous section (page 64).
3. Check the TemplateStatus property after each call to the addFeatures method using
getTemplateStatus() "getter" method (page 64).
When the TemplateStatus property returns the value
DPFPTemplateStatus.TEMPLATE_STATUS_READY, a DPFPTemplate object is created.
4. *Receive the DPFPTemplate object.
5. Serialize the DPFPTemplate object (see Serializing a Fingerprint Data Object on page 36).

DigitalPersona One Touch for Windows SDK: Java Edition | Developer Guide

25

Chapter 4: Overview

Fingerprint Enrollment Workflow

6. *Store the serialized fingerprint template data in a fingerprint data storage subsystem.
7. Clear the fingerprint template and set the value of TemplateStatus to
DPFPTemplateStatus.TEMPLATE_STATUS_UNKNOWN by calling the clear() method
(page 64).

DigitalPersona One Touch for Windows SDK: Java Edition | Developer Guide

26

Chapter 4: Overview

Fingerprint Enrollment with UI Support

Fingerprint Enrollment with UI Support
This section contains two typical workflows for performing fingerprint enrollment: one for enrolling a
fingerprint and one for unenrolling (deleting) a fingerprint. The workflows are illustrated in Figure 3 and Figure 4
and are followed by explanations of the One Touch for Windows SDK: Java Edition API functions used to
perform the tasks in the workflows.

Enrolling a Fingerprint
)LQJHUSULQW(QUROOPHQW&RQWURO±(QUROO)LQJHUSULQW
‫ۇۊۍۏۉۊڞۏۉۀۈۇۇۊۍۉڠګڡګڟډۂۉۄےێډۄېډۃھېۊۏۀۉۊډڼۉۊێۍۀۋۇڼۏۄۂۄڿډۈۊھ‬FODVV
6HWSURSHUW\
&UHDWH‫ۇۊۍۏۉۊڞۏۉۀۈۇۇۊۍۉڠ‬REMHFW

‫ٻێۍۀۂۉۄڡڿۀۇۇۊۍۉۀ‬

XVLQJVHW(QUROOHG)LQJHUVVHWWHUPHWKRG

6HWSURSHUWLHV

$GGHYHQWOLVWHQHUXVLQJ

‫ٻۏۉېۊڞۍۀۂۉۄڡۇۇۊۍۉڠۓڼۈ‬
‫ۍۀڽۈېکۇڼۄۍۀڮۍۀڿڼۀۍ‬

‫ڄڃۍۀۉۀۏێۄڧۏۉۀۈۇۇۊۍۉڠڿڿڼ‬

&DSWXUHILQJHUSULQWVDPSOHV

5HFHLYH‫ڿۀۇۇۊۍۉڠۍۀۂۉۄڡ‬HYHQWZLWK
‫ٻۀۏڼۇۋۈۀگګڡګڟ‬REMHFW

6HULDOL]H‫ۀۏڼۇۋۈۀگګڡګڟ‬REMHFWIRU
VWRUDJH

6WRUHVHULDOL]HGILQJHUSULQWGDWD
LQILQJHUSULQWGDWDVWRUDJHVXEV\VWHP

6WRUHQHZ‫ٻێۍۀۂۉۄڡڿۀۇۇۊۍۉۀ‬YDOXHLQ
ILQJHUSULQWGDWDVWRUDJHVXEV\VWHP

8VH‫ڄۀێۇڼہڃۀۍېۏۋڼڞۋۊۏڮۏۀێڄۀێۇڼہڃڿۀۈۍۊہۍۀګۏۀێ‬
RUWKURZ‫ۉۊۄۏۋۀھۓڠۊۏۀڱۏۉۀۈۇۇۊۍۉڠګڡګڟ‬WRLQGLFDWH
HQUROOPHQWIDLOXUHWRUHTXHVWPRUHFDSWXUHVRUWR
YHWRHQUROOPHQWUHVSHFWLYHO\

/HJHQG
%

2QH7RXFKIRU:LQGRZV6'.-DYD
2SWLRQDOVWHS
$SSOLFDWLRQ QRWSDUWRI6'.
)LQJHUSULQWUHDGHU

Figure 3. Typical fingerprint enrollment with UI support workflow: Enrolling a fingerprint

DigitalPersona One Touch for Windows SDK: Java Edition | Developer Guide

27

Chapter 4: Overview

Fingerprint Enrollment with UI Support

1. Create a new instance of the
com.digitalpersona.onetouch.ui.swing.DPFPEnrollmentControl class (page 71).

2. Set the enrolledFingers property using the setEnrolledFingers "setter" method
(page 72).
3. Optionally, set the EnrollFingerCount and readerSerialNumber properties, using the
setMaxEnrollFingerCount and setReaderSerialNumber methods (page 72).
4. Add an event listener for receiving event notifications using addEnrollmentListener() (page 71).
5. **Capture a predetermined number of fingerprint samples from a fingerprint reader.
6. *Receive the fingerEnrolled(DPFPEnrollmentEvent) event from the fingerprint enrollment
control event handler, along with the DPFPTemplate object (page 80).
7. Serialize the DPFPTemplate object (see Serializing a Fingerprint Data Object on page 36).
8. *Store the serialized fingerprint template data and the new value of enrolledFingers, using
getEnrolledFingers() getter, in a fingerprint data storage subsystem.
9. *Use setPerformed(false), setStopCapture(false) or throw
DPFPEnrollmentVetoException respectively to indicate enrollment failure, to request more
captures or to veto enrollment (page 73).

DigitalPersona One Touch for Windows SDK: Java Edition | Developer Guide

28

Chapter 4: Overview

Fingerprint Enrollment with UI Support

Unenrolling (Deleting) a Fingerprint Template
)LQJHUSULQW(QUROOPHQW&RQWURO±8QHQUROO)LQJHUSULQW
‫ۇۊۍۏۉۊڞۏۉۀۈۇۇۊۍۉڠګڡګڟډۂۉۄےێډۄېډۃھېۊۏۀۉۊډڼۉۊێۍۀۋۇڼۏۄۂۄڿډۈۊھ‬FODVV
6HWSURSHUW\
&UHDWH‫ۇۊۍۏۉۊڞۏۉۀۈۇۇۊۍۉڠ‬REMHFW

‫ٻێۍۀۂۉۄڡڿۀۇۇۊۍۉۀ‬

XVLQJ‫ٻێۍۀۂۉۄڡڿۀۇۇۊۍۉڠۏۀێ‬VHWWHU
PHWKRG

‫ڄڃۍۀۉۀۏێۄڧۏۉۀۈۇۇۊۍۉڠڿڿڼ‬

5HFHLYH‫ڿۀۏۀۇۀڟۍۀۂۉۄہ‬HYHQW
ZLWKLQGH[YDOXH

'HOHWHDSSURSULDWHILQJHUSULQW
WHPSODWHIURPILQJHUSULQWGDWD
VWRUDJHVXEV\VWHP

6WRUHQHZ‫ٻێۍۀۂۉۄڡڿۀۇۇۊۍۉۀ‬
YDOXHLQILQJHUSULQWGDWDVWRUDJH
VXEV\VWHP

$GGHYHQWOLVWHQHUXVLQJ

8VH‫ڄۀێۇڼہڃۀۍېۏۋڼڞۋۊۏڮۏۀێڄۀێۇڼہڃڿۀۈۍۊہۍۀګۏۀێ‬RUWKURZ
‫ۉۊۄۏۋۀھۓڠۊۏۀڱۏۉۀۈۇۇۊۍۉڠګڡګڟ‬WRLQGLFDWHHQUROOPHQWIDLOXUHWR
UHTXHVWPRUHFDSWXUHVRUWRYHWRHQUROOPHQWUHVSHFWLYHO\

/HJHQG
2QH7RXFKIRU:LQGRZV6'.-DYD
$SSOLFDWLRQ QRWSDUWRI6'.

Figure 4. Typical fingerprint enrollment with UI support workflow: Unenrolling (deleting) a fingerprint
1. Create a new instance of the
com.digitalpersona.onetouch.ui.swing.DPFPEnrollmentControll class (page 71).

2. *Retrieve the value of the enrolledFingers property stored in the fingerprint data storage
subsystem.
3. Set the enrolledFingers property using the setEnrolledFingers "setter" method
(page 72).
4. Add an event listener for receiving event notifications using addEnrollmentListener() (page 71).
5. *Receive the fingerDeleted event from the enrollment control event handler, along with the finger
index value (page 80).
6. *Delete the appropriate fingerprint template from the fingerprint data storage subsystem.
7. *Store the new value of enrolledFingers in the fingerprint data storage subsystem.

DigitalPersona One Touch for Windows SDK: Java Edition | Developer Guide

29

Chapter 4: Overview

Fingerprint Enrollment with UI Support

8. *Use setPerformed(false), setStopCapture(false) or throw
DPFPEnrollmentVetoException respectively to indicate enrollment failure, to request more
captures or to veto enrollment (page 73).

DigitalPersona One Touch for Windows SDK: Java Edition | Developer Guide

30

Chapter 4: Overview

Fingerprint Verification

Fingerprint Verification
This section contains a typical workflow for performing fingerprint verification. The workflow is illustrated in
Figure 5 and is followed by explanations of the One Touch for Windows SDK: Java Edition API functions used to
perform the tasks in the workflow.
)LQJHUSULQW6DPSOH&DSWXUH  ƒ’–—”‡FODVV
&UHDWHƒ’–—”‡REMHFW

%HJLQFDSWXULQJILQJHUSULQW
VDPSOHVIURPILQJHUSULQW
UHDGHU V

/RDGHYHQWKDQGOHUWR
UHFHLYHHYHQWQRWLILFDWLRQV
˜‡– ƒ†Ž‡”

–ƒ”–ƒ’–—”‡ሺሻ

5HFHLYH‘’އ–‡
HYHQWZLWK
 Ǥƒ’އREMHFW

&DSWXUHILQJHUSULQWVDPSOH

6WRSFDSWXULQJ
ILQJHUSULQWVDPSOHV
–‘’ƒ’–—”‡ሺሻ

)LQJHUSULQW)HDWXUH([WUDFWLRQ   ‡ƒ–—”‡š–”ƒ –‹‘FODVV
&UHDWH ‡ƒ–—”‡š–”ƒ –‹‘
REMHFW

&UHDWH  ‡ƒ–—”‡‡–REMHFWXVLQJ
ƒ–ƒ—”’‘•‡RI‡”‹ˆ‹ ƒ–‹‘
‡ƒ–—”‡š–”ƒ –‹‘Ǥ”‡ƒ–‡ ‡ƒ–—”‡‡–ሺ
ƒ’އǡƒ–ƒ—”’‘•‡ǡ”‡ˆƒ’–—”‡ ‡‡†„ƒ ǡ”‡ˆ
‡ƒ–—”‡‡–ሻ

5HFHLYH
  ‡ƒ–—”‡‡–REMHFW

)LQJHUSULQW9HULILFDWLRQ  ‡”‹ˆ‹ ƒ–‹‘FODVV
&UHDWH‡”‹ˆ‹ ƒ–‹‘REMHFW

3HUIRUPV\VWHPIXQFWLRQ
RIILQJHUSULQWYHULILFDWLRQDQGUHWXUQ
 ‡”‹ˆ‹ ƒ–‹‘‡•—Ž–REMHFW
‡”‹ˆ›ሺ ‡ƒ–—”‡‡–ǡ
‡’Žƒ–‡ǡ”‡ˆ‡•—Ž–ሻ

6HWSURSHUW\
‡“—‡•–‡†

5HFHLYH ‡”‹ˆ‹ ƒ–‹‘‡•—Ž–
REMHFW

5HWULHYHGHVHULDOL]HG
 Ǥ‡’Žƒ–‡REMHFW

/HJHQG
$

2QH7RXFKIRU:LQGRZV6'.-DYD
2SWLRQDOVWHS
$SSOLFDWLRQ QRWSDUWRI6'.
)LQJHUSULQWUHDGHU

Figure 5. Typical fingerprint verification workflow

DigitalPersona One Touch for Windows SDK: Java Edition | Developer Guide

31

Chapter 4: Overview

Fingerprint Verification

Fingerprint Sample Capture (DPFPCapture Class)
1. Create a new instance of the DPFPCapture class (page 50).
2. Load a fingerprint sample capture operation event handler for receiving event notifications by adding
event listeners (page 54).
3. Begin capturing fingerprint samples from the fingerprint reader(s) connected to a system by calling the
startCapture() method (page 52).
4. **Capture a fingerprint sample from a fingerprint reader. Note that you cannot change the priority or the
reader(s) setting of a DPFPCapture object after it is started.
5. *Receive the dataAcquired() event from the fingerprint sample capture event handler along with a
DPFPSample object when the fingerprint sample is successfully captured by the fingerprint reader
(page 54).
6. *Pass the DPFPFeatureExtraction.createFeatureSet(DPFPSample sample,
DPFPDataPurpose purpose); method. (See step 2 in the next section.)
7. Stop capturing fingerprint samples by calling the stopCapture method (page 52).

Fingerprint Feature Extraction (DPFPFeatureExtraction Class)
1. Create a new instance of the DPFPFeatureExtraction class (page 65).
2. Create DPFPFeatureSet objects by calling the createFeatureSet(DPFPSample sample,
DPFPDataPurpose purpose) method using the value Verification for DataPurpose and
passing the DPFPSample object from step 6 of the previous section (page 65).
3. *Pass the DPFPFeatureSet objects created in the previous step to the addFeatures method.
(See step 2 in the next section.)

Fingerprint Verification (DPFPVerification Class)
1. Create a new instance of the DPFPVerification class (page 81).
Example:
DPFPVerification matcher = DPFPGlobal
.getVerificationFactory()
.createVerification();
2. Optionally, set the FARRequested property (page 82). You can use this property to set or to change
the value of the FAR from the default or from a specified value.
Example:
matcher.setFARRequested(DPFPVerification.MEDIUM_SECURITY_FAR);
3. *Retrieve serialized fingerprint template data from the fingerprint data storage subsystem.

DigitalPersona One Touch for Windows SDK: Java Edition | Developer Guide

32

Chapter 4: Overview

Fingerprint Verification

4. Create a DPFPTemplate object from the serialized data (see Deserializing a Serialized Fingerprint Data
Object on page 37).
5. Perform the system function of fingerprint verification by calling the verify(featureSet,
template) method and passing the DPFPTemplate object created in the previous step and the
DPFPFeatureSet object from step 3 of the previous section (page 82).
Example:
DPFPVerificationResult result = matcher.verify(featureSet, template);
if (result.isVerified()) { ... }
6. *Receive the DPFPVerificationResult object, which provides the comparison decision of match
or non-match (page 83).

DigitalPersona One Touch for Windows SDK: Java Edition | Developer Guide

33

Chapter 4: Overview

Fingerprint Verification with UI Support

Fingerprint Verification with UI Support
This section contains a typical workflow for performing fingerprint verification with UI support. The workflow is
illustrated in Figure 6 and is followed by explanations of the One Touch for Windows SDK: Java Edition API
functions used to perform the tasks in the workflow.
)LQJHUSULQW9HULILFDWLRQ&RQWURO
‫ۇۊۍۏۉۊڞۉۊۄۏڼھۄہۄۍۀڱګڡګڟډۂۉۄےێډۄېډۃھېۊۏۀۉۊډڼۉۊێۍۀۋۇڼۏۄۂۄڿډۈۊھ‬FODVV
6HWSURSHUW\

&UHDWH‫ۇۊۍۏۉۊڞۉۊۄۏڼھۄہۄۍۀڱ‬
REMHFW

‫ۍۀڽۈېکۇڼۄۍۀڮۍۀڿڼۀڭ‬

RUXVH‫ڄڃۍۀڽۈېکۇڼۄۍۀڮۍۀڿڼۀڭۏۀێ‬PHWKRG

$GGDQHYHQWOLVWHQHUXVLQJ
‫ڄۍۀۉۀۏێۄڧۉۊۄۏڼھۄہۄۍۀڱګڡګڟڃۍۀۉۀۏێۄڧۉۊۄۏڼھۄہۄۍۀڱڿڿڼ‬

&DSWXUHILQJHUSULQWVDPSOH

5HFHLYH‫ڿۀۏۀۇۋۈۊڞۀۍېۏۋڼھ‬
HYHQWZLWK
‫ٻۏۀڮۀۍېۏڼۀڡګڡګڟ‬REMHFW

)LQJHUSULQW9HULILFDWLRQ ‫ۉۊۄۏڼھۄہۄۍۀڱګڡګڟ‬FODVV
&UHDWH‫ۉۊۄۏڼھۄہۄۍۀڱ‬REMHFW

6HW)$5XVLQJ

‫ڄڃۉۊۄۏڼھۄہۄۍۀڱۀۏڼۀۍھ‬

‫ڄڃڿۀۏێۀېیۀڭڭڜڡۏۀێ‬

3HUIRUPV\VWHPIXQFWLRQRIILQJHUSULQWYHULILFDWLRQ
DQGUHWXUQ‫ۏۇېێۀڭۉۊۄۏڼھۄہۄۍۀڱګڡګڟ‬REMHFW

5HFHLYH‫ۏۇېێۀڭۉۊۄۏڼھۄہۄۍۀڱګڡګڟ‬
REMHFW

‫ٻژٻۏۇېێۀۍٻۏۇېێۀڭۉۊۄۏڼھۄہۄۍۀڱګڡګڟ‬
‫ږڄۀۏڼۇۋۈۀۏٻڇۏۀڮۀۍېۏڼۀہڃ۔ہۄۍۀۑډۍۀۃھۏڼۈ‬
‫ۘٻډډډٻۖٻڄڄڃڿۀۄہۄۍۀڱێۄډۏۇېێۀۍڃٻہۄ‬

5HWULHYHGHVHULDOL]HG
‫ۀۏڼۇۋۈۀگډګڡګڟ‬REMHFWV

/HJHQG
$

2QH7RXFKIRU:LQGRZV6'.-DYD
2SWLRQDOVWHS
$SSOLFDWLRQ QRWSDUWRI6'.
)LQJHUSULQWUHDGHU

Figure 6. Typical fingerprint verification with UI support workflow

DigitalPersona One Touch for Windows SDK: Java Edition | Developer Guide

34

Chapter 4: Overview

Fingerprint Verification with UI Support

Fingerprint Verification Control (DPFPVerificationControl Class)
1. Create a new instance of the DPFPVerificationControl class (page 76).
2. Optionally, set the ReaderSerialNumber property (page 76).
3. Add an event listener using addVerificationListener(DPFPVerificationListener)
(page 76).
4. **Capture a fingerprint sample from a fingerprint reader.
5. Receive the captureCompleted event from the fingerprint verification control event handler along
with the DPFPFeatureSet object (page 80).

Fingerprint Verification (DPFPVerification Class)
1. Create a new instance of the DPFPVerification class (page 81).
Example:
DPFPVerification matcher = DPFPGlobal
.getVerificationFactory()
.createVerification();
2. Optionally, set the FARRequested property (page 82). You can use this property to set or to change
the value of the FAR from the default or from a specified value.
Example:
matcher.setFARRequested(DPFPVerification.MEDIUM_SECURITY_FAR);
3. *Retrieve serialized fingerprint template data from the fingerprint data storage subsystem.
4. Create a DPFPTemplate object from the serialized data (see Deserializing a Serialized Fingerprint Data
Object on page 37).
5. Perform the system function of fingerprint verification by calling the verify(featureSet,
template) method and passing the DPFPTemplate object created in the previous step and the
DPFPFeatureSet object from step 3 of the previous section (page 82).
Example:
DPFPVerificationResult result = matcher.verify(featureSet, template);
if (result.isVerified()) { ... }
6. *Receive the DPFPVerificationResult object, which provides the comparison decision of match
or non-match (page 82).

DigitalPersona One Touch for Windows SDK: Java Edition | Developer Guide

35

Chapter 4: Overview

Fingerprint Data Object Serialization/Deserialization

Fingerprint Data Object Serialization/Deserialization
This section contains two workflows: one for serializing a fingerprint data object and one for deserializing a
serialized fingerprint data object. The workflows are illustrated in Figure 7 and Figure 8 and are followed by
explanations of the One Touch for Windows SDK: Java Edition API functions used to perform the tasks in the
workflows.

Serializing a Fingerprint Data Object
%

6HULDOL]HILQJHUSULQWGDWDREMHFW
FRPGLJLWDOSHUVRQDRQHWRXFK'3)37HPSODWH
‫ۀۏڼۇۋۈۀگګڡګڟ‬REMHFW

6HULDOL]H‫ۀۏڼۇۋۈۀگګڡګڟ‬REMHFW
‫ڄڃۀەۄۇڼۄۍۀێڄڸڶۀۏ۔ڽڃٻھۄۇڽېګ‬

6WRUHVHULDOL]HGGDWDLQ
ILQJHUSULQWGDWDVWRUDJH
VXEV\VWHP

/HJHQG
2QH7RXFKIRU:LQGRZV6'.-DYD
$SSOLFDWLRQ QRWSDUWRI6'.

Figure 7. Fingerprint data object serialization workflow: DPFPTemplate object
1. Begin with a DPFPTemplate object. (See DPFPTemplate on page 47 for more information on how a
DPFPTemplate object is constructed or supplied).
2. Serialize the DPFPTemplate object by calling the serialize method (page 46 ).
3. *Store the serialized fingerprint template data in a fingerprint data storage subsystem.

DigitalPersona One Touch for Windows SDK: Java Edition | Developer Guide

36

Chapter 4: Overview

Fingerprint Data Object Serialization/Deserialization

Deserializing a Serialized Fingerprint Data Object
$

'HVHULDOL]HILQJHUSULQWGDWDREMHFW
FRPGLJLWDOSHUVRQDRQHWRXFK'3)37HPSODWHFODVV
5HWULHYHVHULDOL]HGILQJHUSULQW
WHPSODWHGDWDIURPILQJHUSULQW
GDWDVWRUDJHVXEV\VWHP

'HVHULDOL]H‫ۀۏڼۇۋۈۀگګڡګڟ‬REMHFW
GHVHULDOL]H E\WH>@GDWD 

5HWXUQ‫ۀۏڼۇۋۈۀگګڡګڟ‬REMHFW

/HJHQG
2QH7RXFKIRU:LQGRZV6'.-DYD
$SSOLFDWLRQ QRWSDUWRI6'.

Figure 8. Deserialization of serialized fingerprint data object workflow: DPFPTemplate object
1. *Retrieve serialized fingerprint template data from a fingerprint data storage subsystem.
2. Deserialize a DPFPTemplate object by calling the deserialize method (page 46).
3. Return a DPFPTemplate object.

DigitalPersona One Touch for Windows SDK: Java Edition | Developer Guide

37

5

API Reference
class onetouch
Type:
Package:

Package
digitalpersona

DPFPCaptureFeedback
Type:
Package:
Description:

Enumeration
onetouch
Feedback from capture operation.

Attributes
Attribute
CAPTURE_FEEDBACK_GOOD
Public
«enum»

Description
The sample is of good quality.

CAPTURE_FEEDBACK_NONE
Public
«enum»

There is no sample.

CAPTURE_FEEDBACK_TOO_LIGHT
Public
«enum»
CAPTURE_FEEDBACK_TOO_DARK
Public
«enum»

The sample is too light.

CAPTURE_FEEDBACK_TOO_NOISY
Public
«enum»

The sample is too noisy.

CAPTURE_FEEDBACK_LOW_CONTRAST
Public
«enum»

The sample contrast is too low.

CAPTURE_FEEDBACK_NOT_ENOUGH_FEATURES
Public
«enum»

The sample does not contain enough information.

DigitalPersona One Touch for Java SDK | Developer Guide

The sample is too dark.

38

Chapter 5: API Reference

DPFPCaptureFeedback

CAPTURE_FEEDBACK_NO_CENTRAL_REGION
Public
«enum»

The sample is not centered.

CAPTURE_FEEDBACK_NO_FINGER
Public
«enum»

The object scanned is not a finger.

CAPTURE_FEEDBACK_TOO_HIGH
Public
«enum»

The finger was too high on the swipe sensor.

CAPTURE_FEEDBACK_TOO_LOW
Public
«enum»

The finger was too low on the swipe sensor.

CAPTURE_FEEDBACK_TOO_LEFT
Public
«enum»

The finger was too close to the left border of swipe
sensor.

CAPTURE_FEEDBACK_TOO_RIGHT
Public

The finger was too close to the right border of
swipe sensor.

«enum»
CAPTURE_FEEDBACK_TOO_STRANGE
Public
«enum»

The scan looks strange.

CAPTURE_FEEDBACK_TOO_FAST
Public
«enum»

The finger was swiped too quickly.

CAPTURE_FEEDBACK_TOO_SKEWED
Public
«enum»

The image is too skewed.

CAPTURE_FEEDBACK_TOO_SHORT
Public
«enum»

The image is too short.

CAPTURE_FEEDBACK_TOO_SLOW
Public
«enum»

The finger was swiped too slowly.

DigitalPersona One Touch for Java SDK | Developer Guide

39

Chapter 5: API Reference

DPFPDataPurpose

DPFPDataPurpose
Type:
Package:
Description:

Enumeration
onetouch
Fingerprint data purpose.

Attributes
Attribute
DATA_PURPOSE_UNKNOWN
Public
«enum»

Description
The purpose of the data is not known.

DATA_PURPOSE_VERIFICATION
Public
«enum»

Fingerprint data will be used for the verification.

DATA_PURPOSE_ENROLLMENT
Public
«enum»

Fingerprint data will be used for the enrollment.

DPFPError
Type:
Package:
Description:

Class
onetouch
Describes the error structure.

Operations
Method
DPFPError()
Protected

Description
Constructs the error object.

Parameters
int [in] errorCode
The error code.
int [in] extendedErrorCode
The extended error code.
String [in] errorText
The error text.
Exception [in] exception
The exception caught.

DPFPError()
Public

Constructs the error object.

DigitalPersona One Touch for Java SDK | Developer Guide

int [in] errorCode
The error code.

40

Chapter 5: API Reference

DPFPError()
Public

DPFPError

Constructs the error object.

int [in] errorCode
The error code.
String [in] errorText
The error text.

DPFPError()
Public

Constructs the error object.

int [in] errorCode
The error code.
int [in] extendedErrorCode
The extended error code.

DPFPError()
Public

Constructs the error object.

int [in] errorCode
The error code.
int [in] extendedErrorCode
The extended error code.
String [in] errorText
The error text.

DPFPError()
Public

Constructs the error object.

Exception [in] exception
The exception caught.
String [in] errorText
The error text.

DPFPError()
Public

Constructs the error object.

Exception [in] exception
The exception caught.

getErrorCode() int
Public

Returns the error code.

getErrorText() String
Public

Returns the error text.

getException()
Exception
Public

Returns the exception caught.

getExtendedErrorCode( Returns the extended error
) int
code.
Public

DigitalPersona One Touch for Java SDK | Developer Guide

41

Chapter 5: API Reference

DPFPFingerIndex

DPFPFingerIndex
Type:
Package:
Description:

Enumeration
onetouch
Enumeration of fingers

Attributes
Attribute
LEFT_PINKY
Public
«enum»

Description
left little finger

LEFT_RING
Public
«enum»

left ring finger

LEFT_MIDDLE
Public
«enum»

left middle finger

LEFT_INDEX
Public
«enum»

left index finger

LEFT_THUMB
Public
«enum»

left thumb

RIGHT_THUMB
Public
«enum»

right thumb

RIGHT_INDEX
Public
«enum»

right index finger

RIGHT_MIDDLE
Public
«enum»

right middle finger

RIGHT_RING
Public
«enum»

right ring finger

RIGHT_PINKY
Public
«enum»

right little finger

DigitalPersona One Touch for Java SDK | Developer Guide

42

Chapter 5: API Reference

DPFPFingerIndex

Operations
Method
toBit() long
Public

Description
Parameters
Returns the finger's bitmask. The left little
finger corresponds to the least significant
bit of the mask. The right little finger
corresponds to the most significant bit of
the mask.

Static fromMask()
EnumSet
Public

DigitalPersona One Touch for Java SDK | Developer Guide

long [in] mask

43

Chapter 5: API Reference

DPFPGlobal

DPFPGlobal
Type:
Package:
Description:

Class
onetouch
This class represents a main access point to the OneTouch Java SDK library, and contains a set
of static factory method which allow the user to create various SDK classes.

Connections
Connector
Association
Source -> Destination

Source
Public
DPFPGlobal

Target
Private featureExtractionFactory
DPFPFeatureExtractionFactory

Association
Source -> Destination

Public
DPFPGlobal

Private featureSetFactory
DPFPFeatureSetFactory

Association
Source -> Destination

Public
DPFPGlobal

Private readersCollectionFactory
DPFPReadersCollectionFactory

Association
Source -> Destination

Public
DPFPGlobal

Private sampleConversion
DPFPSampleConversion

Association
Source -> Destination

Public
DPFPGlobal

Private templateFactory
DPFPTemplateFactory

Association
Source -> Destination

Public
DPFPGlobal

Private captureFactory
DPFPCaptureFactory

Association
Source -> Destination

Public
DPFPGlobal

Private enrollmentFactory
DPFPEnrollmentFactory

Association
Source -> Destination

Public
DPFPGlobal

Private verificationFactory
DPFPVerificationFactory

Association
Source -> Destination

Public
DPFPGlobal

Private sampleFactory
DPFPSampleFactory

Operations
Method
Static getCaptureFactory() DPFPCaptureFactory
Public

Description
Returns the default factory for
DPFPCapture objects.

Static getEnrollmentFactory()
DPFPEnrollmentFactory
Public
Static getFeatureExtractionFactory()
DPFPFeatureExtractionFactory
Public

Returns the default factory for
DPFPEnrollment objects.

DigitalPersona One Touch for Java SDK | Developer Guide

Parameters

Returns the default factory for
DPFPFeatureExtraction objects.

44

Chapter 5: API Reference

DPFPGlobal

Static getFeatureSetFactory() DPFPFeatureSetFactory Returns the default factory for
Public
DPFPFeatureSet objects.
Static getReadersFactory()
DPFPReadersCollectionFactory
Public
Static getSampleConversionFactory()
DPFPSampleConversion
Public
Static getSampleFactory() DPFPSampleFactory
Public

Returns the default factory for
DPFPReadersCollection objects.

Static getTemplateFactory() DPFPTemplateFactory
Public

Returns the default factory for
DPFPTemplate objects.

Static getVerificationFactory()
DPFPVerificationFactory
Public

Returns the default factory for
DPFPVerification objects.

DigitalPersona One Touch for Java SDK | Developer Guide

Returns the default factory for
DPFPSampleConversion objects.
Returns the default factory for
DPFPSample objects.

45

Chapter 5: API Reference

DPFPData

DPFPData
Type:
Package:
Description:

Interface
onetouch
Common structure of fingerprint data.

Operations
Method
Description
Parameters
deserialize() void Imports the data from the binary representation. byte[] [in] data
Public
The binary representation of a
fingerprint object.
serialize() byte
Serializes opaque biometric data.
Public
Returns the binary representation of the
fingerprint object.

DPFPFeatureSet
Type:
Package:
Description:

Interface DPFPData
onetouch
The fingerprint feature set.

DPFPFeatureSetFactory
Type:
Package:
Description:

Interface
onetouch
DPFPFeatureSet factory interface.

Operations
Method
createFeatureSet()
DPFPFeatureSet
Public

Description
Parameters
Creates an empty DPFPFeatureSet object
instance.
Returns the object created.

createFeatureSet()
DPFPFeatureSet
Public

Creates a DPFPFeatureSet object instance byte[] [in] data
and fills it with data.

DigitalPersona One Touch for Java SDK | Developer Guide

46

Chapter 5: API Reference

DPFPSample

DPFPSample
Type:
Package:
Description:

Interface DPFPData
onetouch
The fingerprint sample.

DPFPSampleFactory
Type:
Package:
Description:

Interface
onetouch
DPFPSample factory interface.

Operations
Method
createSample()
DPFPSample
Public

Description
Creates an empty DPFPSample object
instance.

Parameters

Returns the object created.
createSample()
DPFPSample
Public

Creates an DPFPSample object instance
and fills it with data.

byte[] [in] data

Returns the object created.

DPFPTemplate
Type:
Package:
Description:

Interface DPFPData
onetouch
The fingerprint template.

DPFPTemplateFactory
Type:
Package:
Description:

Interface
onetouch
DPFPTemplate factory interface.

Operations
Method
createTemplate()
DPFPTemplate
Public

Description
Creates an empty DPFPTemplate object
instance.

Parameters

Returns the object created.

DigitalPersona One Touch for Java SDK | Developer Guide

47

Chapter 5: API Reference

createTemplate()
DPFPTemplate
Public

DPFPTemplateFactory

Creates a DPFPTemplate object instance
and fills it with data.

byte[] [in] data

Returns the object created.

DigitalPersona One Touch for Java SDK | Developer Guide

48

Chapter 5: API Reference

capture package

capture package
Type:
Package:

Package
onetouch

DPFPCapturePriority
Type:
Package:
Description:

Enumeration
capture
Describes the priority of the fingerprint capture operation.

Attributes
Attribute
CAPTURE_PRIORITY_LOW
Public
«enum»

Description
Low priority. The subscriber uses this
priority to acquire reader events only if
there are no subscribers with high or
normal priority. Only one subscriber with
this priority is allowed.

CAPTURE_PRIORITY_NORMAL Normal priority. The subscriber uses this
Public
priority to acquire device events only if the
«enum»
operation runs in a foreground process.
Multiple subscribers with this priority are
allowed.
CAPTURE_PRIORITY_HIGH
Public
«enum»

High priority. The subscriber uses this
priority to acquire device events
exclusively. Only one subscriber with this
priority is allowed.

DigitalPersona One Touch for Java SDK | Developer Guide

49

Chapter 5: API Reference

DPFPCapture

DPFPCapture
Type:
Package:
Description:

Interface
capture
This interface describes the operation of capturing fingerprint samples from a reader.

The capture operation subscribes to and monitors events on the selected fingerprint reader and notifies
listeners about specific classes of events (image data and quality events, reader status events, sensor events,
errors).
One fingerprint reader may be monitored by several capture operations.
Each capture operation has a specific priority, which defines how reader events will be distributed among
several concurrent operations.
Operations
Method
addDataListener() void
Public

Description
Adds the data event listener.

Parameters
DPFPDataListener [in] listener
The listener to be added.

See also DPFPDataEvent
addErrorListener() void
Public

Adds the error event listener.

DPFPErrorListener [in] listener
The listener to be added.

See also DPFPErrorEvent
addImageQualityListener() void
Public

Adds the image quality event
listener.

DPFPImageQualityListener [in]
listener
The listener to be added.

See also DPFPImageQualityEvent
addReaderStatusListener() void
Public

Adds the reader status event
listener.

DPFPReaderStatusListener [in]
listener
The listener to be added.

See also DPFPReaderStatusEvent
addSensorListener() void
Public

Adds the sensor event listener.

DPFPSensorListener [in] listener
The listener to be added.

See also DPFPSensorEvent
getListeners() T
Public

Enumerates all event listeners for
the given class.

Class [in] t
listener class.

Returns an array of event listeners.
getPriority() DPFPCapturePriority Returns the current capture priority.
Public

DigitalPersona One Touch for Java SDK | Developer Guide

50

Chapter 5: API Reference

DPFPCapture

getReaderSerialNumber() String Returns the serial number of the
Public
fingerprint reader to be used for the
capture.
isStarted() boolean
Public

Returns the status of the capture
operation.
Returns true if capture is started,
false otherwise.

removeDataListener() void
Public

Removes the data event listener.

DPFPDataListener [in] listener
The listener to be removed.

See also DPFPDataEvent
removeErrorListener() void
Public

Removes the error event listener.

DPFPErrorListener [in] listener
The listener to be removed.

See also DPFPErrorEvent
removeImageQualityListener()
void
Public

Removes the image quality event
listener.

DPFPImageQualityListener [in]
listener
The listener to be removed.

See also DPFPImageQualityEvent
removeReaderStatusListener()
void
Public

Removes the reader status event
listener.

DPFPReaderStatusListener [in]
listener
The listener to be removed.

See also DPFPReaderStatusEvent
removeSensorListener() void
Public

Removes the sensor event listener. DPFPSensorListener [in] listener
The listener to be removed.
See also DPFPSensorEvent

setPriority() void
Public

Sets the capture priority.

DPFPCapturePriority [in] priority
The capture priority.

Modification of the priority is
allowed only when the capture
operation is not started, otherwise
an IllegalStateException will be
thrown.

DigitalPersona One Touch for Java SDK | Developer Guide

51

Chapter 5: API Reference

setReaderSerialNumber() void
Public

DPFPCapture

Sets the serial number of the
String [in] serialNumber
fingerprint reader to be used for the The serial number of the fingerprint
reader to be used for the capture.
capture.
Modification of the serial number is
allowed only when the capture
operation is not started, otherwise
an IllegalStateException will be
thrown.

startCapture() void
Public

Starts the capture.
The call is asynchronous and returns
immediately. The events will be sent
to the listeners until the
stopCapture method is called.

stopCapture() void
Public

Stops the previously started capture
operation.

DigitalPersona One Touch for Java SDK | Developer Guide

52

Chapter 5: API Reference

DPFPCaptureFactory

DPFPCaptureFactory
Type:
Interface
Package:
capture
Description:
This interface describes a factory of DPFPCapture objects. Use one of the createCapture
methods to construct a new DPFPCapture instance.
Operations
Method
createCapture()
DPFPCapture
Public

Description
Creates a capture object.

createCapture()
DPFPCapture
Public

Creates a capture object on a specified
reader.

Parameters

Returns the object created.
String [in] readerSerialNumber
A serial number of the specific
fingerprint reader

Returns the object created.
See also DPFPReaderDescription and
DPFPReadersCollection
createCapture()
DPFPCapture
Public

Creates a capture object with a specified
priority.
Returns the object created.

DPFPCapturePriority [in]
priority

createCapture()
DPFPCapture
Public

Creates a capture object on a specified
reader and with a specified priority.

String [in] readerSerialNumber

Returns the object created.
See also DPFPReaderDescription and
DPFPReadersCollection

DigitalPersona One Touch for Java SDK | Developer Guide

DPFPCapturePriority [in]
priority

53

Chapter 5: API Reference

event package

event package
Type:
Package:

Package
capture

DPFPDataAdapter
Type:
Package:
Description:

Class
event
An abstract adapter class for receiving data events from the fingerprint capture device. The
methods in this class are empty. This class exists as a convenience for creating listener objects.

Extend this class to create a DPFPDataEvent listener and override the methods for the events of interest. (If you
implement the DPFPDataListener interface, you have to define all of the methods in it. This abstract class
defines null methods for them all, so you only have to define methods for events you care about.)
Create a listener object using your class and then register it with a component using the component's
addDataListener method.
Operations
Method
dataAcquired() void
Public

Description
Invoked when the fingerprint sample is
acquired.

DigitalPersona One Touch for Java SDK | Developer Guide

Parameters
DPFPDataEvent [in] e
The event occurred.

54

Chapter 5: API Reference

DPFPDataEvent

DPFPDataEvent
Type:
Package:
Description:

Class EventObject
event
An event indicating that a fingerprint has been acquired

Operations
Method
DPFPDataEvent()
Public

Description
Constructs an event.

getSample()
DPFPSample
Public

Returns a fingerprint sample acquired.

Parameters
String [in] readerSerialNumber
The serial number of the reader
on which the event initially
occurred.
DPFPSample [in] sample
The fingerprint sample.

DPFPErrorAdapter
Type:
Package:
Description:

Class
event
An abstract adapter class for receiving error events from the fingerprint capture device. The
methods in this class are empty. This class exists as a convenience for creating listener objects.

Extend this class to create a DPFPErrorEvent listener and override the methods for the events of interest. (If you
implement the DPFPErrorListener interface, you have to define all of the methods in it. This abstract class
defines null methods for them all, so you only have to define methods for events you care about.)
Create a listener object using your class and then register it with a component using the component's
addErrorListener method.
Operations
Method
errorOccured() void
Public

Description
Fired when the error occurred.

exceptionCaught() void Fired when an exception caught.
Public

DigitalPersona One Touch for Java SDK | Developer Guide

Parameters
DPFPErrorEvent [in] e
The event occurred.
DPFPErrorEvent [in] e
The event occurred.

55

Chapter 5: API Reference

DPFPErrorEvent

DPFPErrorEvent
Type:
Package:
Description:

Class EventObject
event
An error event occurred during a fingerprint capture.

Operations
Method
DPFPErrorEvent()
Public

Description
Constructs an event.

Parameters
String [in] readerSerialNumber
The serial number of the reader
on which the event initially
occurred.
DPFPError [in] error
The error occurred.

getError() DPFPError
Public

Returns an error that occurred.

DPFPImageQualityAdapter
Type:
Package:
Description:

Class
event
An abstract adapter class for receiving image quality feedback from the fingerprint capture
device. The methods in this class are empty. This class exists as a convenience for creating
listener objects.

Extend this class to create a DPFPImageQualityEvent listener and override the methods for the events of
interest. (If you implement the DPFPImageQualityListener interface, you have to define all of the methods in it.
This abstract class defines null methods for them all, so you only have to define methods for events you care
about.)
Create a listener object using your class and then register it with a component using the component's
addImageQualityListener method.
Operations
Method
Description
onImageQuality() void Invoked when the fingerprint sample is
Public
acquired with unsatisfactory quality.

DigitalPersona One Touch for Java SDK | Developer Guide

Parameters
DPFPImageQualityEvent [in] e
The event occurred.

56

Chapter 5: API Reference

DPFPImageQualityEvent

DPFPImageQualityEvent
Type:
Package:
Description:

Class EventObject
event
An event indicating that the quality of the fingerprint acquired is bad.

Operations
Method
Description
DPFPImageQualityEven Constructs an event.
t()
Public

Parameters
String [in] readerSerialNumber
The serial number of the reader on which
the event initially occurred.
DPFPCaptureFeedback [in] feedback
The capture feedback.

getFeedback()
DPFPCaptureFeedback
Public

Returns feedback about the quality of the
capture.

DPFPReaderStatusAdapter
Type:
Package:
Description:

Class
event
An abstract adapter class for receiving reader status events from the fingerprint capture device.

The methods in this class are empty. This class exists as a convenience for creating listener objects.
Extend this class to create a DPFPReaderStatusEvent listener and override the methods for the events of
interest. (If you implement the DPFPReaderStatusListener interface, you have to define all of the methods in it.
This abstract class defines null methods for them all, so you only have to define methods for events you care
about.)
Create a listener object using your class and then register it with a component using the component's
addReaderStatusListener method.
Operations
Method
Description
readerConnected() void Invoked when the reader is connected.
Public
readerDisconnected()
void
Public

Parameters
DPFPReaderStatusEvent [in] e
The event occurred.

Invoked when the reader is disconnected. DPFPReaderStatusEvent [in] e
The event occurred.

DigitalPersona One Touch for Java SDK | Developer Guide

57

Chapter 5: API Reference

DPFPReaderStatusEvent

DPFPReaderStatusEvent
Type:
Class EventObject
Package:
event
Description:
An event indicating that a fingerprint reader has been connected or disconnected.
See also DPFPReaderStatusListener
Attributes
Attribute
READER_CONNECTED int
Public
Static Const

Description
Indicates that the reader has been
connected.

Constraints and tags
Default: 3

See also getReaderStatus()
READER_DISCONNECTED int Indicates that the reader has been
Public
disconnected.
Static Const
See also getReaderStatus()

Default: 2

Operations
Method
Description
DPFPReaderStatusEven Constructs an event
t() Public

Parameters
String [in] readerSerialNumber
The serial number of the reader
on which the event initially
occurred.
int [in] readerStatus
Either READER_CONNECTED or
READER_DISCONNECTED.

getReaderStatus() int
Public

Returns a reader status.

DigitalPersona One Touch for Java SDK | Developer Guide

58

Chapter 5: API Reference

DPFPSensorAdapter

DPFPSensorAdapter
Type:
Package:
Description:

Class
event
An abstract adapter class for receiving sensor events from the fingerprint capture device. The
methods in this class are empty. This class exists as a convenience for creating listener objects.

Extend this class to create a DPFPSensorEvent listener and override the methods for the events of interest. (If
you implement the DPFPSensorListener interface, you have to define all of the methods in it. This abstract class
defines null methods for them all, so you only have to define methods for events you care about.)
Create a listener object using your class and then register it with a component using the component's
addSensorListener method.
See also DPFPSensorEvent, DPFPSensorListener and DPFPCapture.
Operations
Method
fingerGone() void
Public

Description
Parameters
Invoked when the finger removed from the DPFPSensorEvent [in] e
reader.
The event occurred.

fingerTouched() void
Public
imageAcquired() void
Public

Invoked when the finger put on the reader. DPFPSensorEvent [in] e
The event occurred.
Invoked when the finger image is acquired DPFPSensorEvent [in] e
and the finger can be removed from the The event occurred.
reader.

DPFPSensorEvent
Type:
Package:
Description:

Class EventObject
event
An event indicating an activity on a fingerprint reader. See also DPFPSensorListener.

Attributes
Attribute
FINGER_GONE int
Public
Static Const

Description
Indicates that the finger has been removed from
the reader.

Constraints and tags
Default: 6

FINGER_TOUCH int
Public
Static Const

Indicates that the finger has been put on the
reader. See also getSensorStatus().

Default: 5

DigitalPersona One Touch for Java SDK | Developer Guide

59

Chapter 5: API Reference

IMAGE_READY int
Public
Static Const

DPFPDataListener

Indicates that the image has been acquired and the Default: 7
finger can be removed from the reader.

Operations
Method
DPFPSensorEvent()
Public

Description
Constructs an event

Parameters
String [in] readerSerialNumber
A serial number of the reader on which the event
initially occurred.
int [in] sensorStatus
Either FINGER_TOUCH, FINGER_GONE or
IMAGE_READY.

getSensorStatus() int Returns a sensor status.
Public

DPFPDataListener
Type:
Package:
Description:

Interface EventListener
event
The listener interface for receiving data events from a fingerprint reader. For the intermediate
reader events (finger touch/gone) see DPFPSensorListener. See also DPFPDataEvent.

Operations
Method
dataAcquired() void
Public

Description
Invoked when a fingerprint sample is
acquired.

Parameters
DPFPDataEvent [in] e
The event occurred.

DPFPErrorListener
Type:
Package:
Description:

Interface EventListener
event
The listener interface for receiving error events from a fingerprint reader. See also
DPFPErrorEvent

Connections
Connector
Realisation

Source -> Destination

Source
Public
DPFPErrorAdapter

DigitalPersona One Touch for Java SDK | Developer Guide

Target
Public
DPFPErrorListener

60

Chapter 5: API Reference

DPFPImageQualityListener

Operations
Method
errorOccured() void
Public

Description
Fired when an error occurred.

exceptionCaught() void Fired when an exception was caught.
Public

Parameters
DPFPErrorEvent [in] e
The event that occurred.
DPFPErrorEvent [in] e
The event that occurred.

DPFPImageQualityListener
Type:
Package:
Description:

Interface EventListener
event
The listener interface for receiving information about bad image quality. See also
DPFPImageQualityEvent.

Operations
Method
Description
Parameters
onImageQuality() void Invoked when the quality of the acquired DPFPImageQualityEvent [in] e
Public
fingerprint is unsatisfactory.
The event that occurred.

DPFPReaderStatusListener
Type:
Package:
Description:

Interface EventListener
event
The listener interface for receiving events when a fingerprint reader is connected or
disconnected.

Operations
Method
Description
readerConnected() void Invoked when a reader is connected.
Public

Parameters
DPFPReaderStatusEvent [in] e
The event occurred.

readerDisconnected()
void
Public

DPFPReaderStatusEvent [in] e
The event occurred.

Invoked when a reader is disconnected.

DigitalPersona One Touch for Java SDK | Developer Guide

61

Chapter 5: API Reference

DPFPSensorListener

DPFPSensorListener
Type:
Package:
Description:

Interface EventListener
event
The listener interface for receiving intermediate events from a fingerprint reader. For the reader
data events see DPFPDataListener. See also DPFPSensorEvent and DPFPDataListener.

Operations
Method
fingerGone() void
Public

Description
Invoked when a finger is removed from a
reader.

Parameters
DPFPSensorEvent [in] e
The event occurred.

fingerTouched() void
Public

Invoked when a finger is put on a reader.

DPFPSensorEvent [in] e
The event occurred.

imageAcquired() void
Public

Invoked when a finger image is acquired
and the finger can be removed from a
reader.

DPFPSensorEvent [in] e
The event occurred.

DigitalPersona One Touch for Java SDK | Developer Guide

62

Chapter 5: API Reference

processing package

processing package
Type:
Package:

Package
onetouch

DPFPImageQualityException
Type:
Package:
Description:

Class Exception
processing
The exception will be thrown when the sample quality is not good enough for processing.

Operations
Method
Description
DPFPImageQualityExceptio Creates an exception with the
n()
given quality feedback.
Public
getCaptureFeedback()
DPFPCaptureFeedback
Public

Parameters
DPFPCaptureFeedback [in]
captureFeedback
The capture quality feedback.

Returns the capture feedback.

DPFPTemplateStatus
Type:
Package:
Description:

Enumeration
processing
Status of the fingerprint template.

Attributes
Attribute
TEMPLATE_STATUS_UNKNOWN
Public
«enum»

Description
Status of the fingerprint template is
unknown. Most probably the fingerprint
template does not exist yet.

Constraints and tags
Default:

TEMPLATE_STATUS_INSUFFICIENT The fingerprint template exists, but more Default:
Public
fingerprint samples are required to finalize
«enum»
it.
TEMPLATE_STATUS_FAILED
Public
«enum»

The creation of the fingerprint template
failed.

Default:

TEMPLATE_STATUS_READY
Public
«enum»

Fingerprint template was successfully
created.

Default:

DigitalPersona One Touch for Java SDK | Developer Guide

63

Chapter 5: API Reference

DPFPEnrollment

DPFPEnrollment
Type:
Package:
Description:

Interface
processing
Creates a fingerprint template from a number of fingerprint feature sets.

Operations
Method
addFeatures() void
Public

Description
Adds a new fingerprint feature set to the
source data collection.

clear() void
Public

Clears the source data collection and resets
the result fingerprint template status to
DPFPTemplateStatus#TEMPLATE_STATUS_
UNKNOWN. The caller can start template
creation over again.

getFeaturesNeeded()
int
Public

Returns the number of fingerprint feature
sets needed to create the fingerprint
template. This value decreases as each
feature set is added, showing the actual
number of feature sets still needed in order
to complete creation of the fingerprint
template.

getTemplate()
DPFPTemplate
Public

Returns the fingerprint template created.

getTemplateStatus()
DPFPTemplateStatus
Public

Returns the status of the fingerprint
template.

Parameters
DPFPFeatureSet [in] featureSet
A fingerprint feature set to be
added.

DPFPEnrollmentFactory
Type:
Package:
Description:

Interface
processing
DPFPEnrollment factory interface.

Operations
Method
createEnrollment()
DPFPEnrollment
Public

Description
Creates an object implementing
DPFPEnrollment interface.

DigitalPersona One Touch for Java SDK | Developer Guide

Parameters

64

Chapter 5: API Reference

DPFPFeatureExtraction

DPFPFeatureExtraction
Type:
Package:
Description:

Interface
processing
This interface represents a fingerprint feature extractor.

The fingerprint feature extractor converts a sample captured from a fingerprint reader into a set of fingerprint
features, unique for the fingerprint and specific for any of following usages (purposes): enrollment or
verification. See also DPFPSample and DPFPDataPurpose.
Operations
Method
createFeatureSet() DPFPFeatureSet
Public

Description
Extracts a purpose-specific
fingerprint feature set from the
fingerprint sample.

Parameters
DPFPSample [in] sample
The source fingerprint sample.

DPFPDataPurpose [in] purpose
Returns the fingerprint feature set The purpose of the feature set.
created.

DPFPFeatureExtractionFactory
Type:
Package:
Description:

Interface
processing
DPFPFeatureExtraction factory interface.

Operations
Method
Description
createFeatureExtraction() Creates an object implementing DPFPFeatureExtraction
DPFPFeatureExtraction
interface.
Public
Returns the object created.

DigitalPersona One Touch for Java SDK | Developer Guide

65

Chapter 5: API Reference

DPFPSampleConversion

DPFPSampleConversion
Type:
Package:
Description:

Interface
processing
This interface provides converters for fingerprint sample data.

Once a fingerprint sample has been captured from a reader, it is possible to convert it to other formats: an
image or an ANSI1381-compliant binary representation.
Operations
Method
convertToAnsi1381()
byte
Public

Description
Converts the sample to ANSI1381-compliant
format.

Parameters
DPFPSample [in] sample
The fingerprint sample.

createImage() Image
Public

Converts the sample to a standard Java image.

DPFPSample [in] sample
The fingerprint sample.

DigitalPersona One Touch for Java SDK | Developer Guide

66

Chapter 5: API Reference

readers package

readers package
Type:
Package:

Package
onetouch

DPFPReaderImpressionType
Type:
Package:
Description:

Enumeration
readers
Describes the fingerprint reader impression type.

Attributes
Attribute
READER_IMPRESSION_TYPE_UNKNOWN
Public
«enum»

Description
Constraints and tags
The fingerprint reader impression type Default:
is unknown.

READER_IMPRESSION_TYPE_SWIPE
Public
«enum»

The reader scans fingerprints with a
swiping method.

Default:

READER_IMPRESSION_TYPE_AREA
Public
«enum»

The reader scans fingerprints with a
touching method.

Default:

DPFPReaderSerialNumberType
Type:
Package:
Description:

Enumeration
readers
Describes whether the serial number of the fingerprint reader is provided by hardware or
software.

Attributes
Attribute
SERIAL_NUMBER_TYPE_PERSISTENT
Public
«enum»

Description
The persistent serial number of the
fingerprint reader is provided by
hardware.

SERIAL_NUMBER_TYPE_VOLATILE
Public
«enum»

The volatile serial number of the
Default:
fingerprint reader is provided by software.

DigitalPersona One Touch for Java SDK | Developer Guide

Constraints and tags
Default:

67

Chapter 5: API Reference

DPFPReaderTechnology

DPFPReaderTechnology
Type:
Package:
Description:

Enumeration
readers
Describes the fingerprint reader technology.

Attributes
Attribute
Description
READER_TECHNOLOGY_UNKNOWN The fingerprint reader technology is
Public
unknown.
«enum»

Constraints and tags
Default:

READER_TECHNOLOGY_OPTICAL
Public
«enum»

Default:

Optical fingerprint reader.

READER_TECHNOLOGY_CAPACITIVE Capacitive fingerprint reader.

Default:

Public
«enum»
READER_TECHNOLOGY_THERMAL
Public
«enum»

Thermal fingerprint reader.

Default:

READER_TECHNOLOGY_PRESSURE Pressure fingerprint reader.
Public
«enum»

Default:

DigitalPersona One Touch for Java SDK | Developer Guide

68

Chapter 5: API Reference

DPFPReaderDescription

DPFPReaderDescription
Type:
Package:
Description:

Interface
readers
Provides information about a particular physical fingerprint reader attached to the system.

Operations
Method
getFirmwareRevision()
DPFPReaderVersion
Public

Description
Returns the fingerprint reader firmware
revision.

getHardwareRevision()
DPFPReaderVersion
Public

Returns the fingerprint reader hardware
revision.

getImpressionType()
DPFPReaderImpressionType
Public

Returns the fingerprint reader usage
modality.

getLanguage() int
Public

Returns the fingerprint reader language.

getProductName() String
Public

Returns the fingerprint reader product
class name.

getSerialNumber() String
Public

Returns the fingerprint reader serial
number.

getSerialNumberType()
DPFPReaderSerialNumberType
Public

Describes if the fingerprint reader serial
number is provided by hardware or
software.

getTechnology()
DPFPReaderTechnology
Public

Returns the fingerprint reader technology.

getVendor() String
Public

Returns the fingerprint reader
manufacturer name.

DigitalPersona One Touch for Java SDK | Developer Guide

Parameters

69

Chapter 5: API Reference

DPFPReaderVersion

DPFPReaderVersion
Type:
Package:
Description:

Interface
readers
The fingerprint reader version information.

Operations
Method
getBuild() int
Public

Description
Returns the build number of the reader.

getMajor() int
Public

Returns the major version of the reader.

getMinor() int
Public

Returns the minor version of the reader.

DPFPReadersCollection
Type:
Package:
Description:

Interface List
readers
Collection of the descriptions of all fingerprint readers attached to the system.

Operations
Method
Description
Parameters
get()
Finds a description of the fingerprint reader String [in] serialNumber
DPFPReaderDescription by its serial number.
The serial number.
Public
Returns the description found or null if
nothing was found.

DPFPReadersCollectionFactory
Type:
Package:
Description:

Interface
readers
DPFPReadersCollection factory interface.

Operations
Method
getReaders() DPFPReadersCollection
Public

Description
Creates a new list of available reader descriptions.
Returns the object created.

DigitalPersona One Touch for Java SDK | Developer Guide

70

Chapter 5: API Reference

swing package

swing package
Type:
Package:

Package
ui

DPFPEnrollmentControl
Type:
Package:
Description

Class JPanel, Serializable
swing
Swing UI for Enrollment

Attributes
Attribute

Description

Constraints and tags

DPFPUI_PROPERTIES String
Package
Static Const

Default: "dpfpui"

ENROLLED_FINGERS_PROPERTY String
Package
Static Const

Default:
"enrolledFingers"

MAX_ENROLLED_FINGER_COUNT String
Package
Static Const

Default:
"maxEnrollFingerCount"

PREFFERED_HEIGHT int
Package
Static Const

Default: 320

PREFFERED_WIDTH int
Package
Static Const

Default: 480

READER_SERIAL_NUMBER_PROPERTY String
Package
Static Const

Default:
"readerSerialNumber"

Operations
Method
addEnrollmentListener() void
Public

Description
Adds enrollment event listener

DPFPEnrollmentControl()
Public

Creates enrollment control.

DigitalPersona One Touch for Java SDK | Developer Guide

Parameters
DPFPEnrollmentListener [in] listener
listener to add

71

Chapter 5: API Reference

DPFPEnrollmentControl

getEnrolledFingers()
EnumSet
Public

Returns the enrolled finger
indices

getMaxEnrollFingerCount() int
Public

Returns the maximum number of
fingers allowed for the user

getReaderSerialNumber() String Returns the serial number of
Public
fingerprint reader from which
data will be captured.
removeEnrollmentListener()
void
Public

Removes enrollment event
listener

DPFPEnrollmentListener [in] listener
listener to remove

setEnrolledFingers() void
Public

Sets the enrolled finger indices

EnumSet [in]
fingers
fingers enrolled
int [in] maxCount
maximum number to set

setMaxEnrollFingerCount() void Sets the maximum number of
Public
fingers allowed for the user
setReaderSerialNumber() void
Public

Sets the serial number of
String [in] serialNumber
fingerprint reader from which
serial number to be set
data will be captured. Setting the
serial number will stop capturing.

DigitalPersona One Touch for Java SDK | Developer Guide

72

Chapter 5: API Reference

DPFPEnrollmentEvent

DPFPEnrollmentEvent
Type:
Package:
Description:

Class EventObject
swing
Event occurred as a result of user input in the enrollment control.

Attributes
Attribute
FINGER_DELETED int
Public
Static Const

Description
Constraints and tags
Indicates that finger enrollment is deleted Default: 1
and template should be removed

FINGER_ENROLLED int Indicates that finger is enrolled and needs Default: 0
Public
to be saved
Static Const
See also getID()
Operations
Method
Description
DPFPEnrollmentEvent() Constructs an event

Parameters
Object [in] source
event source

Public
int [in] id
event id
DPFPFingerIndex [in] finger
finger index
DPFPTemplate [in] template
enrolled template
DPFPEnrollmentEvent() Constructs an event with null template

Object [in] source
event source

Public
int [in] id
event id
DPFPFingerIndex [in] finger
finger index
getFingerIndex()
DPFPFingerIndex
Public

Returns the finger index associated with the
event.

getID() int
Public

Returns the event ID.

DigitalPersona One Touch for Java SDK | Developer Guide

73

Chapter 5: API Reference

DPFPEnrollmentEvent

getPerformed() boolean
Public
getStopCapture()
boolean
Public
getTemplate()
DPFPTemplate
Public

Returns the enrolled fingerprint template.

setPerformed() void
Public

Sets an [un]enrollment result to report in the
enrollment UI control.
Event handler may signal [un]enrollment
failure setting the performed property into
true.
Setting the property to true or false doesn't
prevent other listeners from receiving the
event - all listeners will be notified and may
modify the property again. So, if there are
several listeners subscribed to the event, they
can combine their results using either AND
("any failure means unsuccessful
[un]enrollment") or OR ("any success means
successful [un]enrollment"). boolean
expression with getPerformed().

boolean [in] performed
True signals that [un]enrollment
was successfully performed
(default),
False signals failure to perform
the [un]enrollment.
boolean [in] stop
True signals that there is no need
for new captures and the capture
operation may be stopped
(default).
False signals that the enrollment
needs more fingerprint captures.

After notifying all listeners, the control will
show the resulting [un]enrollment status.
If some listener wants to signal [un]enrollment
results immediately, it can set the event's
properties and throw a
DPFPEnrollmentVetoException. In this case all
remaining listeners will be skipped and
[un]enrollment status will be reflected
immediately.
Default value is false, so if there are no listeners
handling the event, it will signal success.

DigitalPersona One Touch for Java SDK | Developer Guide

74

Chapter 5: API Reference

DPFPEnrollmentVetoException

setStopCapture() void Sets a request for an capture cancellation.
Public
By default, when a fingerprint is captured and
all listeners are notified, the capture operation
stops. If some event listener wants to repeat
capture, it may set the stopCapture property to
false, then after notifying all listeners the
capture will continue.
If some listener wants to signal enrollment
result and stop capture immediately, it can set
the event's properties and throw a
DPFPEnrollmentVetoException. In this case all
remaining listeners will be skipped, capture will
stop and enrollment status will be reflected
immediately.

DPFPEnrollmentVetoException
Type:
Package:
Description:

Class Exception
swing
Can be thrown by DPFPEnrollment listeners in order to signal that results of [un]enrollment
should be applied immediately, ignoring other listeners.

See also DPFPEnrollmentEvent and DPFPEnrollmentListener.
Operations
Method
DPFPEnrollmentVetoException()
Public

Description
Constructs a new exception.

DPFPEnrollmentVetoException()
Public

DigitalPersona One Touch for Java SDK | Developer Guide

Parameters

String [in] reason

75

Chapter 5: API Reference

DPFPVerificationControl

DPFPVerificationControl
Type:
Package:
Description:

Class JPanel
swing
This class implements a Java Swing UI control for verification.

Attributes
Attribute
READER_SERIAL_NUMBER_PROPERTY
String
Public
Static Const

Description

Constraints and tags
Default: "readerSerialNumber"

Operations
Method
addVerificationListener() void
Public

Description
Adds a verification event listener.
See also DPFPVerificationEvent
and DPFPVerificationListener.

DPFPVerificationControl()
Public

Constructs a new verification UI
control.

getReaderSerialNumber() String
Public

Returns the serial number of the
fingerprint reader from which data
will be captured.

isStopping() boolean
Public

Indicates that the control has a
pending request to stop.

Parameters
DPFPVerificationListener [in]
listener
the listener to add

Returns true when the control has
a pending request to stop, false
otherwise.
removeVerificationListener() void
Public

Removes a verification event
listener.
See also DPFPVerificationEvent
and DPFPVerificationListener.

setReaderSerialNumber() void
Public

Sets the serial number of the
String [in] serialNumber
fingerprint reader from which data the serial number to be set
will be captured.
Note that setting the serial number
will stop capturing.

DigitalPersona One Touch for Java SDK | Developer Guide

DPFPVerificationListener [in]
listener
the listener to remove

76

Chapter 5: API Reference

start() void
Public

DPFPVerificationControl

Starts a fingerprint capture. This method makes the control begin
waiting for a fingerprint capture from the reader. When the
fingerprint is obtained, the control creates a feature set and
generates a DPFPVerificationEvent.
Event listeners may compare this feature set with their fingerprint
templates and report success/failure to the control using the
PFPVerificationEvent#setMatched property.
When all listeners are notified, the control will show a matching
status and stop capturing. If some listener wants more captures, it
can set DPFPVerificationEvent#getStopCapture() to false (by default
it is set to true).
If the DPFPVerificationVetoException has been thrown by any
listener, then remaining listeners will not receive the
captureCompleted event, and the control immediately shows
matching status and stops capture (unless the
DPFPVerificationEvent#getStopCapture() property was reset to
false).

stop() void
Public

Places a request to stop capture.
The stopping is asynchronous due
to JNI and Swing thread
interlocking. After the request is
placed, all events from the capture
must be ignored - check the
iStopping() flag.

DigitalPersona One Touch for Java SDK | Developer Guide

77

Chapter 5: API Reference

DPFPVerificationEvent

DPFPVerificationEvent
Type:
Package:
Description:

Class EventObject
swing
This class represents an event which occurs in a verification UI control as a result of user action.

Event listeners can modify "status" properties of the event setMatched, setStopCapture thus reporting about
verification results or requesting more fingerprint captures.
Operations
Method
DPFPVerificationEvent()
Public

Description
Constructs an event

Parameters
Object [in] source
event source
DPFPFeatureSet [in] featureSet
acquired fingerprint feature set

getFeatureSet()
DPFPFeatureSet
Public

Returns acquired fingerprint feature set

getMatched() boolean
Public
getStopCapture() boolean
Public

DigitalPersona One Touch for Java SDK | Developer Guide

78

Chapter 5: API Reference

setMatched() void
Public

DPFPVerificationEvent

Sets a verification result to report in the
verification control.
Event handlers may signal a verification
failure setting the matched property into
true.
Setting the property to true or false doesn't
prevent other listeners from receiving the
event, all listeners will be notified and may
modify the property again. So, if there are
several listeners subscribed to the event,
they can combine their results using either
AND ("any failure means unsuccessful
match") or OR ("any success means
successful match"). boolean expression
with the getMatched(). After notifying all
listeners, the control will show the resulting
verification status.

boolean [in] matched
True signals that verification was
successfully matched (default).
False signals failure to find any
matching template.

If some listener wants to signal verification
result immediately, it can set the event's
properties and throw a
DPFPVerificationVetoException. In this case
all remaining listeners will be skipped and
verification status will be reflected
immediately.
Default value is false, so if there are no
listeners handling the event, it will signal
success.
setStopCapture() void
Public

boolean [in] stop
By default, when a fingerprint is captured True signals that there is no need
and all listeners are notified, the capture for new captures and that the
capture operation may be
operation stops. If some event listener
stopped (default),.
wants to repeat capture, it may set the
stopCapture property to false, then after
False signals that the verification
notifying all listeners the capture will
needs more fingerprint captures.
continue.
Sets a request for a capture cancellation.

If some listener wants to signal verification
result and stop capture immediately, it can
set the event's properties and throw a
DPFPVerificationVetoException. In this case
all remaining listeners will be skipped,
capture will stop and verification status will
be reflected immediately.

DigitalPersona One Touch for Java SDK | Developer Guide

79

Chapter 5: API Reference

DPFPVerificationVetoException

DPFPVerificationVetoException
Type:
Package:
Description:

Class Exception
swing
Can be thrown by DPFPVerification listeners in order to signal that the capturing should be
continued.

Operations
Method
Description
DPFPVerificationVetoException() Constructs a new exception.
Public

Parameters

DPFPEnrollmentListener
Type:
Package:
Description:

Interface EventListener
swing
Listener interface for enrollment control events.

Operations
Method
fingerDeleted() void
Public

Description
Fired when old fingerprint is need to be
deleted.

Parameters
DPFPEnrollmentEvent [in] e
event occurred

fingerEnrolled() void
Public

Fired when new fingerprint was enrolled
and need to be saved.

DPFPEnrollmentEvent [in] e
event occurred

DPFPVerificationListener
Type:
Package:
Description:

Interface EventListener
swing
Listener interface for the verification UI control events.

Operations
Method
captureCompleted()
void
Public

Description
Parameters
Fired when fingerprint has been acquired DPFPVerificationEvent [in] e
and verification feature set is extracted.
The verification event that
occurred. Listeners should
modify the event to signal a
verification result.

DigitalPersona One Touch for Java SDK | Developer Guide

80

Chapter 5: API Reference

verification package

verification package
Type:
Package:

Package
onetouch

DPFPVerification
Type:
Package:
Description:

Interface
verification
This interface describes a fingerprint verification operation.

The fingerprint verification interface allows comparison of a fingerprint feature set (extracted from a
fingerprint reader capture) with a fingerprint template (created during fingerprint enrollment). It uses a false
accept rate (FAR) as a threshold to decide do the feature set and template match each other close enough to
accept the feature set. Lower FAR means lower probability of falsely accepted fingerprint but higher rate of
false rejects (FRR); and vice versa.
See also DPFPCapture, DPFPFeatureExtraction and DPFPEnrollment.
Attributes
Attribute
HIGH_SECURITY_FAR int
Public
Static Const

Description
Constraints and tags
False accept rate (FAR) factor corresponding to Default:
false accept probability of 0.000001 (1e-6)
PROBABILITY_ONE / 1000000
(most strict verification)

LOW_SECURITY_FAR int
Public
Static Const

False accept rate (FAR) factor corresponding to Default:
false accept probability of 0.0001 (1e-4) (not PROBABILITY_ONE / 10000
very strict verification)

MEDIUM_SECURITY_FAR
int
Public
Static Const

False accept rate (FAR) factor corresponding to Default:
false accept probability of 0.00001 (1e-5)
PROBABILITY_ONE / 100000
(moderately strict verification)

PROBABILITY_ONE int
Public
Static Const

False accept rate (FAR) corresponding to false Default: 0x7FFFFFFF
accept probability of 1.0 (every fingerprint
template will successfully match).

Operations
Method

Description

DigitalPersona One Touch for Java SDK | Developer Guide

Parameters

81

Chapter 5: API Reference

getFARRequested() int
Public

DPFPVerification

Returns the false accept rate (FAR) factor set for
the operation.
Corresponding probability (normalized to [0..1])
of false accept may be estimated as:
double p = ((double)getFARRequested()) /
PROBABILITY_ONE;.
Lower FAR means lower probability of falsely
accepted fingerprint but higher rate of false
rejects (FRR); and vice versa.

setFARRequested() void Sets the false accept rate (FAR) factor.
int [in] farRequested
Public
Corresponding probability (normalized to [0..1]) The false accept rate (FAR) factor
of false accept may be estimated as:
requested.
double p = ((double)farRequested()) /
PROBABILITY_ONE;.
So, having the desired normalized probability p,
you can calculate the farRequested value as:
int farRequested = p * PROBABILITY_ONE;.
Lower FAR means lower probability of falsely
accepted fingerprint but higher rate of false
rejects (FRR); and vice versa.
verify()
DPFPVerificationResult
Public

Compares the fingerprint feature set against the DPFPFeatureSet [in] featureSet
finger-print template and returns the result of Fingerprint feature set to verify.
comparison.
The fingerprint verification uses a false accept DPFPTemplate [in]
rate
enrollmentTemplate
(FAR) as a threshold to decide are the feature set Fingerprint template to verify
and template match each other close enough to against.
accept the feature set.
See also getFARRequested()

DigitalPersona One Touch for Java SDK | Developer Guide

82

Chapter 5: API Reference

DPFPVerificationFactory

DPFPVerificationFactory
Type:
Package:
Description:

Interface
verification
DPFPVerification factory interface.

Operations
Method
Description
createVerification() DPFPVerification Creates an instance of DPFPVerification
Public
object.

Parameters

createVerification() DPFPVerification Creates an instance of DPFPVerification
int [in] FARRequested
Public
object with a specified "false accept ratio"
value.

DPFPVerificationResult
Type:
Package:
Description:

Interface
verification
This interface represents a result of verification operation.

Operations
Method
getFalseAcceptRate()
int
Public
isVerified() boolean
Public

Description
Returns a value indicating the verification score i.e. how close do the
fingerprint and template match each other). See also getFARRequested
Returns the decision: whether fingerprint feature set matches the fingerprint
template closely enough, or not.
Returns true if fingerprint feature set matches the fingerprint template, false
otherwise.

DigitalPersona One Touch for Java SDK | Developer Guide

83

Graphical User Interfaces

6

This chapter describes the functionality of the graphical user interfaces that are wrapped within the following
namespaces:
„

com.digitalpersona.onetouch.ui.swing.DPFPEnrollmentControl
This namespace includes the graphical user interface described in the next section. The constructor,
properties, and event handler contained within this namespace are described on page 71.

„

com.digitalpersona.onetouch.ui.swing.DPFPVerificationControl
This object includes the graphical user interface described on page 93. The constructor, properties, and
event handler contained within this namespace are described on page 76.

DPFPEnrollmentControl User Interface
The graphical user interface included with the DPFPEnrollmentControl object consists of two elements.
The first element is used to provide instructions for selecting a fingerprint to enroll or to unenroll (delete) and is
used to indicate already-enrolled fingerprints. The second element is used to provide instructions and
feedback, both graphically and textually, about the enrollment process.
The tables and figure in this section describe the interaction between the user and the graphical user interface
during fingerprint enrollment and unenrollment (deletion).
NOTE: In the tables, the elements are referred to as the hands element and the numbers element.

Enrolling a Fingerprint
Figure 1 illustrates the fingerprint enrollment process using the DPFPEnrollmentControl object
graphical user interface. Picture numbers in the figure correspond to the pictures in Table 1 on page 86. Table 1
illustrates and describes the interaction between the user and the graphical user interface during fingerprint
enrollment.

DigitalPersona One Touch for Java SDK | Developer Guide

84

Chapter 6: Graphical User Interfaces

Enrolling a Fingerprint

6WDUW

8VHUFOLFNVILQJHU

3LFWXUH

8VHUFOLFNVXQHQUROOHGILQJHU

3LFWXUH

0D[LPXPWHPSODWHVFUHDWHG

\Dphftrex.dll

„

\Dphmatch.dll

DigitalPersona One Touch for Java SDK | Developer Guide

96

Chapter 7: Redistribution

„

„

\Dphftrex.dll

„

\Dphmatch.dll

Redist Folder

DPFpUI.msm
This merge module contains the following file:
„

„

Dpfpui.dll

DPFpUI_x64.msm
This merge module contains the following files:

„

„

\Dpfpui.dll

„

\Dpfpui.dll

DpOTCOMActX.msm
This merge module contains the following files:

„

„

DPFPShrX.dll

„

DPFPDevX.dll

„

DPFPEngX.dll

„

DPFPCtlX.dll

DpOTCOMActX_x64.msm
This merge module contains the following files:

„

„

DPFPShrX.dll

„

DPFPDevX.dll

„

DPFPEngX.dll

„

DPFPCtlX.dll

„

x64\DpFpCtlX.dll

„

x64\DpFpDevX.dll

„

x64\DpFpEngX.dll

„

x64\DpFpShrX.dll

DpOTDotNET.msm
This merge module contains the following files:
„

DPFPShrNET.dll

„

DPFPDevNET.dll

„

DPFPEngNET.dll

„

DPFPVerNET.dll

DigitalPersona One Touch for Java SDK | Developer Guide

97

Chapter 7: Redistribution

„

„

DPFPGuiNET.dll

„

DPFPCtlXLib.dll

„

DPFPCtlXTypeLibNET.dll

„

DPFPCtlXWrapperNET.dll

„

DPFPShrXTypeLibNET.dll

Redist Folder

DPOTJni.msm
This merge module contains the following files:

„

„

dpotjni.jar

„

otdpfpjni.dll

„

otfxini.dll

„

otmcjni.dll

DPOTJni_x64.msm
This merge module contains the following files:

„

„

dpotjni.jar

„

otdpfpjni.dll

„

otfxini.dll

„

otmcjni.dll

DPOTJava.msm
This merge module contains the following files:

„

„

dpfpenrollment.jar

„

dpfpverification.jar

„

dpotapi.jar

DpPolicies_OTW.msm
„

„

This merge module contains registry keys only.

DpProCore.msm
This merge module contains the following files:

„

„

Dpdevts.dll

„

Dpsvinfo2.dll

„

Dptsclnt.dll

DpProCore_x64.msm
This merge module contains the following files:

DigitalPersona One Touch for Java SDK | Developer Guide

98

Chapter 7: Redistribution

„

Dpdevts.dll

„

Dpsvinfo2.dll

„

Dptsclnt.dll

„

Reader Maintenance Swipe.pdf

„

Reader Maintenance Touch.pdf

„

Warnings and Regulatory Information.pdf

Fingerprint Reader Documentation

Fingerprint Reader Documentation
You may redistribute the documentation included in the Redist folder in the One Touch for Windows SDK: Java
Edition software package to your end users pursuant to the terms of this section and the EULA attendant to the
software and located in the Docs folder in the SDK software package.

Hardware Warnings and Regulatory Information
If you distribute DigitalPersona U.are.U fingerprint readers to your end users, you are responsible for advising
them of the warnings and regulatory information included in the Warnings and Regulatory Information.pdf file
in the Redist folder in the One Touch for Windows SDK: Java Edition software package. You may copy and
redistribute to your end users the language, including the copyright and trademark notices, set forth in the
Warnings and Regulatory Information.pdf file.

Fingerprint Reader Use and Maintenance Guide
The DigitalPersona U.are.U fingerprint reader use and maintenance guides, DigitalPersona Reader Maintenance
Touch.pdf and DigitalPersona Reader Maintenance Swipe.pdf, are located in the Redist folder in the One Touch
for Windows SDK: Java Edition software package. You may copy and redistribute the DigitalPersona Reader
Maintenance Touch.pdf and the DigitalPersona Reader Maintenance Swipe.pdf files, including the copyright
and trademark notices, to those who purchase a U.are.U module or fingerprint reader from you.

DigitalPersona One Touch for Java SDK | Developer Guide

99

Setting the False Accept Rate

8

This appendix is for developers who want to specify a false accept rate (FAR) other than the default used by the
DigitalPersona Fingerprint Recognition Engine.

False Accept Rate (FAR)
The false accept rate (FAR), also known as the security level, is the proportion of fingerprint verification
operations by authorized users that incorrectly returns a comparison decision of match. The FAR is typically
stated as the ratio of the expected number of false accept errors divided by the total number of verification
attempts, or the probability that a biometric system will falsely accept an unauthorized user. For example, a
probability of 0.001 (or 0.1%) means that out of 1,000 verification operations by authorized users, a system is
expected to return 1 incorrect match decision. Increasing the probability to, say, 0.0001 (or 0.01%) changes this
ratio from 1 in 1,000 to 1 in 10,000.
Increasing or decreasing the FAR has the opposite effect on the false reject rate (FRR), that is, decreasing the
rate of false accepts increases the rate of false rejects and vice versa. Therefore, a high security level may be
appropriate for an access system to a secured area, but may not be acceptable for a system where convenience
or easy access is more significant than security.

Representation of Probability
The DigitalPersona Fingerprint Recognition Engine supports the representation for the FAR probability that
fully conforms to the BIOAPI 1.1, BioAPI 2.0, and UPOS standard specifications. In this representation, the
probability is represented as a positive 32-bit integer, or zero. (Negative values are reserved for special uses.)
The definition PROBABILITY_ONE provides a convenient way of using this representation. PROBABILITY_ONE
has the value 0x7FFFFFFF (where the prefix 0x denotes base 16 notation), which is 2147483647 in decimal
notation. If the probability (P) is encoded by the value (INT_N), then
INT_N = P * PROBABILITY_ONE
P=

INT_N
PROBABILITY_ONE

Probability P should always be in the range from 0 to 1. Some common representations of probability are listed
in column one of Table 2. The value in the third row represents the current default value used by the
DigitalPersona Fingerprint Recognition Engine, which offers a mid-range security level. The value in the second
row represents a typical high FAR/low security level, and the value in the fourth row represents a typical low
FAR/high security level.
The resultant value of INT_N is represented in column two, in decimal notation.

DigitalPersona One Touch for Java SDK | Developer Guide

100

Chapter 8: Setting the False Accept Rate

Requested FAR

Table 2. Common values of probability and resultant INT_N values
Probability (P)

Value of INT_N in decimal notation

0.001 = 0.1% = 1/1000

2147483

0.0001 = 0.01% = 1/10000

214748

0.00001 = 0.001% = 1/100000

21475

0.000001 = 0.0001% = 1/1000000

2147

Requested FAR
You specify the value of the FAR, which is INT_N from the previous equation, using the FARRequested
property (page 82). While you can request any value from 0 to the value PROBABILITY_ONE, it is not guaranteed
that the Engine will fulfill the request exactly. The Engine implementation makes the best effort to
accommodate the request by internally setting the value closest to that requested within the restrictions it
imposes for security.

Specifying the FAR
You can specify the value of the FAR using the setFARRequested method. The following sample code sets the
FAR to a value of MEDIUM_SECURITY_FAR.
matcher.setFARRequested(DPFPVerification.MEDIUM_SECURITY_FAR);

Achieved FAR
The actual value of the FAR achieved for a particular verification operation can be retrived using the
getFalseAcceptRate method of the DPFPVerificationResult interface (page 83).
DPFPVerification verification =
DPFPGlobal.getVerificationFactory().createVerification(farRequested);
DPFPVerificationResult result = verification.verify(featureSet, template);
int FAR = result.getFalseAcceptRate();

This value is typically much smaller than the requested FAR due to the accuracy of the DigitalPersona
Fingerprint Recognition Engine. The requested FAR specifies the maximum value of the FAR to be used by the
Engine in making the verification decision. The actual FAR achieved by the Engine when conducting a
legitimate comparison is usually a much lower value. The Engine implementation may choose the range and
granularity for the achieved FAR. If you make use of this value in your application, for example, by combining it

DigitalPersona One Touch for Java SDK | Developer Guide

101

Chapter 8: Setting the False Accept Rate

Testing

with other achieved FARs, you should use it with caution, as the granularity and range may change between
versions of DigitalPersona SDKs without notice.

Testing
Although you may achieve the desired values of the FAR in your development environment, it is not
guaranteed that your application will achieve the required security level in real-world situations. Even though
the Engine is designed to make its best effort to accurately implement the probability estimates, it is
recommended that you conduct system-level testing to determine the actual operating point and accuracy in a
given scenario. This is even more important in systems where multiple biometric factors are used for
identification.

DigitalPersona One Touch for Java SDK | Developer Guide

102

Glossary
biometric system
An automatic method of identifying a person
based on the person’s unique physical and/or
behavioral traits, such as a fingerprint or an iris
pattern, or a handwritten signature or a voice.

features
See fingerprint features.

comparison
The estimation, calculation, or measurement of
similarity or dissimilarity between fingerprint
feature set(s) and fingerprint template(s).

fingerprint capture device
A device that collects a signal of a fingerprint data
subject’s fingerprint characteristics and converts it to a
fingerprint sample. A device can be any piece of
hardware (and supporting software and firmware). In
some systems, converting a signal from fingerprint
characteristics to a fingerprint sample may include
multiple components such as a camera, photographic
paper, printer, digital scanner, or ink and paper.

comparison score
The numerical value resulting from a comparison of
fingerprint feature set(s) with fingerprint
template(s). Comparison scores can be of two
types: similarity scores or dissimilarity scores.
DigitalPersona Fingerprint Recognition Engine
A set of mathematical algorithms formalized to
determine whether a fingerprint feature set
matches a fingerprint template according to a
specified security level in terms of the false accept
rate (FAR).
enrollee
See fingerprint data subject.
enrollment
See fingerprint enrollment.
false accept rate (FAR)
The proportion of fingerprint verification
transactions by fingerprint data subjects not
enrolled in the system where an incorrect decision
of match is returned.
false reject rate (FRR)
The proportion of fingerprint verification
transactions by fingerprint enrollment subjects
against their own fingerprint template(s) where an
incorrect decision of non-match is returned.

DigitalPersona One Touch for Windows SDK: .NET Edition | Developer Guide

fingerprint
An impression of the ridges on the skin of a finger.

fingerprint characteristic
Biological finger surface details that can be detected
and from which distinguishing and repeatable
fingerprint feature set(s) can be extracted for the
purpose of fingerprint verification or fingerprint
enrollment.
fingerprint data
Either the fingerprint feature set, the fingerprint
template, or the fingerprint sample.
fingerprint data object
An object that inherits the properties of a DPFPData
object. Fingerprint data objects include DPFPSample
(represents a fingerprint sample), DPFPFeatureSet
(represents a fingerprint feature set), and
DPFPTemplate (represents a fingerprint template).
fingerprint data storage subsystem
A storage medium where fingerprint templates are
stored for reference. Each fingerprint template is
associated with a fingerprint enrollment subject.
Fingerprint templates can be stored within a
fingerprint capture device; on a portable medium such
as a smart card; locally, such as on a personal computer
or a local server; or in a central database.

103

Glossary

fingerprint data subject
A person whose fingerprint sample(s), fingerprint
feature set(s), or fingerprint template(s) are present
within the fingerprint recognition system at any
time. Fingerprint data can be either from a person
being recognized or from a fingerprint enrollment
subject.
fingerprint enrollment
a. In a fingerprint recognition system, the initial
process of collecting fingerprint data from a person
by extracting the fingerprint features from the
person’s fingerprint image for the purpose of
enrollment and then storing the resulting data in a
template for later comparison.
b. The system function that computes a fingerprint
template from a fingerprint feature set(s).
fingerprint enrollment subject
The fingerprint data subject whose fingerprint
template(s) are held in the fingerprint data storage
subsystem.
fingerprint feature extraction
The system function that is applied to a fingerprint
sample to compute repeatable and distinctive
information to be used for fingerprint verification
or fingerprint enrollment. The output of the
fingerprint feature extraction function is a
fingerprint feature set.
fingerprint features
The distinctive and persistent characteristics from
the ridges on the skin of a finger. See also
fingerprint characteristics.
fingerprint feature set
The output of a completed fingerprint feature
extraction process applied to a fingerprint sample.
A fingerprint feature set(s) can be produced for the
purpose of fingerprint verification or for the
purpose of fingerprint enrollment.

DigitalPersona One Touch for Windows SDK: .NET Edition | Developer Guide

fingerprint image
A digital representation of fingerprint features prior
to extraction that are obtained from a fingerprint
reader. See also fingerprint sample.
fingerprint reader
A device that collects data from a person’s fingerprint
features and converts it to a fingerprint sample.
fingerprint recognition system
A biometric system that uses the distinctive and
persistent characteristics from the ridges of a finger,
also referred to as fingerprint features, to distinguish
one finger (or person) from another.
fingerprint sample
The analog or digital representation of fingerprint
characteristics prior to fingerprint feature extraction
that are obtained from a fingerprint capture device. A
fingerprint sample may be raw (as captured),
intermediate (after some processing), or processed.
fingerprint template
The output of a completed fingerprint enrollment
process that is stored in a fingerprint data storage
subsystem. Fingerprint templates are stored for later
comparison with a fingerprint feature set(s).
fingerprint verification
a. In a fingerprint recognition system, the process of
extracting the fingerprint features from a person’s
fingerprint image provided for the purpose of
verification, comparing the resulting data to the
template generated during enrollment, and deciding
if the two match.
b. The system function that performs a one-to-one
comparison and makes a decision of match or nonmatch.
match
The decision that the fingerprint feature set(s) and
the fingerprint template(s) being compared are from
the same fingerprint data subject.

104

Glossary

non-match
The decision that the fingerprint feature set(s) and
the fingerprint template(s) being compared are not
from the same fingerprint data subject.
one-to-one comparison
The process in which recognition fingerprint
feature set(s) from one or more fingers of one
fingerprint data subject are compared with
fingerprint template(s) from one or more fingers of
one fingerprint data subject.
repository
See fingerprint data storage subsystem.
security level
The target false accept rate for a comparison
context. See also FAR.
verification
See fingerprint verification.

DigitalPersona One Touch for Windows SDK: .NET Edition | Developer Guide

105

Index
A
addDataListener method 50
addEnrollmentListener() 28, 29, 71
addFeatures method 25
addFeatures(featureSet) method
calling in typical fingerprint enrollment workflow 25
adding event listeners 25, 32
additional resources 4
online resources 4
related documentation 4

B
biometric system
defined 103
explained 19
bold typeface, uses of 3

C
captureComplete event
from fingerprint verification control event handler,
receiving
in typical fingerprint verification with UI support
workflow 35
Citrix 1
Citrix Web Client 1
Clear() method
calling in typical fingerprint enrollment workflow 26
comparison, defined 103
compatible fingerprint templates
See fingerprint template compatibility
conventions, document
See document conventions
Courier bold typeface, use of 3
createFeatureSet method 25, 32
creating an object 21

D
data object
See fingerprint data object
dataAcquired() event 25, 32
deleting a fingerprint
See unenrolling a fingerprint
deserialize(byte[]) method
calling in fingerprint data object deserialization
workflow 37
deserializing fingerprint data object workflow 37
DigitalPersona Developer Connection Forum, URL to 4
DigitalPersona Fingerprint Recognition Engine 19

DigitalPersona One Touch for Java SDK | Developer Guide

DigitalPersona fingerprint recognition system 20
DigitalPersona products, supported 4
document conventions 3
documentation, related 4
DPFP.Verification.Verification class
creating new instance of
in typical fingerprint verification workflow 35
DPFPCapture class
creating new instance of
important notice that priority and readers settings
cannot be changed after starting 25, 32
in typical fingerprint enrollment workflow 25, 32
DPFPEnrollment class
creating new instance of
in typical fingerprint enrollment workflow 25
DPFPEnrollment.EnrollmentControl class
creating new instance of
in typical fingerprint enrollment with UI support
workflow 28, 29
DPFPEnrollmentControl graphical user interface 84
DPFPFeatureExtraction class
creating new instance of
in typical fingerprint enrollment workflow 25, 32
DPFPFeatureSet object
creating
in typical fingerprint enrollment workflow 25, 32
receiving, in typical fingerprint verification with UI
support workflow 35
DPFPSample 47
DPFPSample object, returning
in typical fingerprint enrollment workflow 25, 32
DPFPTemplate object
creating, in typical fingerprint enrollment workflow 25
returning, in typical fingerprint enrollment with UI
support workflow 28
serializing, in typical fingerprint enrollment with UI
support workflow 28
DPFPVerification class
creating new instance of
in typical fingerprint verification workflow 32
DPFPVerification.Result object, receiving
in typical fingerprint verification workflow 35
DPFPVerificationControl class
creating new instance of
in typical fingerprint verification with UI support
workflow 35
DPFPVerificationControl graphical user interface 93

106

Index

DPFPVerificationResult object, receiving
in typical fingerprint verification workflow 33

E
Engine
See DigitalPersona Fingerprint Recognition Engine
EnrolledFingerMask property
using
in typical fingerprint enrollment with UI support
workflow 28, 29
enrollee 20
defined 103
enrolling a fingerprint 27
enrollment
See fingerprint enrollment

F
false accept rate 22
defined 103
setting to value other than the default 100
false negative decision 22
false negative decision, proportion of 22
See also false accept rate
false positive decision 22
false positive decision, proportion of 22
See also false accept rate
false positives and false negatives 22
false reject rate 22
defined 103
FAR
See false accept rate
FARRequested property
setting
in typical fingerprint verification workflow 32, 35
to value other than the default 101
features
See fingerprint features
files and folders
installed for RTE, 32-bit installation 16
installed for RTE, 64-bit installation 17
installed for SDK 15
fingerprint 19
defined 103
workflow for enrolling with UI support 27
workflow for unenrolling (deleting) with UI support 29
fingerprint capture device 20
defined 103
See fingerprint reader
fingerprint characteristics, defined 103
fingerprint data 20
defined 103

DigitalPersona One Touch for Java SDK | Developer Guide

fingerprint data object
defined 103
deserializing 37
serializing 36
fingerprint data storage subsystem, defined 103
fingerprint data subject, defined 104
fingerprint deletion
See fingerprint unenrollment
fingerprint enrollment 20
defined 104
with UI support, workflows 27
workflow 23
fingerprint feature extraction
defined 104
fingerprint feature set 20
defined 104
fingerprint features, defined 104
fingerprint image, defined 104
See also fingerprint sample
fingerprint reader 20
defined 104
redistributing documentation for 99
use and maintenance guides, redistributing 99
fingerprint recognition 20
fingerprint recognition system 19
defined 104
See also DigitalPersona fingerprint recognition system
fingerprint recognition, guide to 4
fingerprint sample
capturing
in typical fingerprint enrollment with UI support
workflow 28
in typical fingerprint enrollment workflow 25, 32
in typical fingerprint verification with UI support
workflow 35
defined 104
See also fingerprint image
fingerprint template 20
creating, workflow for 23
creating, workflow for with UI support 27
defined 104
deserializing 37
serializing 36
fingerprint template compatibility 5
fingerprint unenrollment, workflow 29
fingerprint verification 20
defined 104
with UI support, workflow 34
workflow 31
folders and files

107

Index

installed for RTE, 32-bit installation 16
installed for RTE, 64-bit installation 17
installed for SDK 15
FRR
See false reject rate

G
graphical user interfaces 84

H
hardware warnings and regulatory information,
redistributing 99

I
image
See fingerprint image
important notation, defined 3
important notice
priority or reader setting of DPFPCapture object
cannot be changed after starting 25, 32
installation 14
installation files for redistributables
redistributing 94
installing
RTE 15
RTE silently 18
SDK 14
introduction to SDK 6
italics typeface, uses of 3

M
match 21
defined 104
MaxEnrollFingerCount property
setting, in typical fingerprint enrollment with UI
support workflow 28
merge modules
contents of 94
redistributing 94
Metaframe Presentation Server 1

N
non-match 21
defined 105
notational conventions 3
note notation, defined 3

O
OnDelete event
from fingerprint enrollment control event handler,
receiving
in typical fingerprint unenrollment with UI support

DigitalPersona One Touch for Java SDK | Developer Guide

workflow 29
OnEnroll event
from enrollment control event handler, receiving
in typical fingerprint enrollment with UI support
workflow 28
one-to-one comparison 21
defined 105
online resources 4

P
product compatibility
See fingerprint template compatibility
Program Neighborhood 1
Program Neighborhood Agent 1

Q
quick start 6

R
ReaderSerialNumber property
setting
in typical fingerprint verification with UI support
workflow 35
readerSerialNumber property
setting
in typical fingerprint enrollment with UI support
workflow 28
Redist folder, redistributing contents of 94
redistributables, redistributing 94
redistribution of files 94
regulatory information, requirement to advise end users
of 99
remote authentication 1
Remote Desktop Connection 1
repository 20
requirements, system
See system requirements
resources, additional
See additional resources
resources, online
See online resources
RTE
installing 15
installing/uninstalling silently 18
redistributing 94
RTE\Install folder, redistributing contents of 94
runtime environment
See RTE

S
SDK
files and folders installed 15

108

Index

installing 14
quick start 6
security level 22
serialization/deserialization of fingerprint data object
workflows 36
serialize(ref byte[]) method
calling in fingerprint data object serialization
workflow 36
serializing fingerprint data object workflow 36
setEnrolledFingers() 72
setMaxEnrollFingerCount method 28
setMaxEnrollFingerCount() 72
setReaderSerialNumber method 28
silently installing RTE 18
StartCapture() method
calling
in typical fingerprint enrollment workflow 25, 32
stopCapture() method
calling
in typical fingerprint enrollment workflow 25, 32
supported DigitalPersona products 4
system requirements 4

Updates for DigitalPersona Software Products 4
Windows Terminal Services 1
workflows 22–37

T
template compatibility
See fingerprint template compatibility
TemplateStatus property
using in typical fingerprint enrollment workflow 25
typefaces, uses of 3
typographical conventions 3

U
unenrolling a fingerprint 29
uninstalling RTE silently 18
updates for DigitalPersona software products, URL for
downloading 4
URL
DigitalPersona Developer Connection Forum 4
Updates for DigitalPersona Software Products 4
use and maintenance guides for fingerprint readers,
redistributing 99

V
verification
See fingerprint verification
verify(featureSet, template) method
calling
in typical fingerprint verification workflow 33, 35

W
Web site
DigitalPersona Developer Connection Forum 4

DigitalPersona One Touch for Java SDK | Developer Guide

109



Source Exif Data:
File Type                       : PDF
File Type Extension             : pdf
MIME Type                       : application/pdf
PDF Version                     : 1.6
Linearized                      : Yes
Page Mode                       : UseOutlines
XMP Toolkit                     : Adobe XMP Core 4.0-c316 44.253921, Sun Oct 01 2006 17:14:39
Producer                        : Acrobat Distiller 6.0.1 (Windows)
Creator Tool                    : FrameMaker 7.2
Modify Date                     : 2008:06:17 10:49:06-07:00
Create Date                     : 2008:06:13 16:02:30Z
Metadata Date                   : 2008:06:17 10:49:06-07:00
Document ID                     : uuid:c43cf36f-7f29-480d-a351-437d46662b3b
Instance ID                     : uuid:07b1f352-be52-49de-ac25-8af73ff29b93
Format                          : application/pdf
Title                           : One Touch for Windows SDK: Java Edition 1.3
Creator                         : Len Hodgeman (len@hodgeman.us)
Description                     : One Touch for Windows SDK: Java Edition 1.3
Subject                         : One Touch for Windows SDK: Java Edition 1.3
Page Count                      : 115
Page Layout                     : SinglePage
Author                          : Len Hodgeman (len@hodgeman.us)
Keywords                        : One, Touch, for, Windows, SDK:, Java, Edition, 1.3
EXIF Metadata provided by EXIF.tools

Navigation menu