One Touch For Windows SDK: Java Edition 1.3 SDK Developer Guide
User Manual:
Open the PDF directly: View PDF
.
Page Count: 115
| Download | |
| Open PDF In Browser | View 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 &UHDWHREMHFW ሺሻ %HJLQFDSWXULQJILQJHUSULQW VDPSOHVIURPUHDGHU V Ǥሺ ሺሻ Ǥሺሻ 5HFHLYH HYHQWZLWK REMHFW &DSWXUHILQJHUSULQWVDPSOH 6WRSFDSWXULQJ ILQJHUSULQWVDPSOHV Ǥሺሻ )LQJHUSULQW)HDWXUH([WUDFWLRQ FODVV &UHDWH REMHFWXVLQJRI &UHDWH REMHFW '3)3)HDWXUH6HWIHDWXUH6HW IHDWXUH([WUDFWRUFUHDWH)HDWXUH6HW VDPSOH '3)3'DWD3XUSRVH'$7$B385326(B(152//0(17 ሺሻǢ 5HFHLYH REMHFWV )LQJHUSULQW(QUROOPHQW LQWHUIDFH &UHDWHREMHFW ሺሻǢ 3HUIRUPV\VWHPIXQFWLRQRI ILQJHUSULQWHQUROOPHQWDQGUHWXUQ REMHFW &KHFNSURSHUW\ Ǥሺሻ Ǥ ሺሻ 5HFHLYH REMHFW Ǥሺሻ 6HULDOL]H REMHFWIRUVWRUDJH &OHDUILQJHUSULQWWHPSODWHDQG VHW7WR Ǥ ሺሻ 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 &UHDWHREMHFW %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.3EXIF Metadata provided by EXIF.tools