Class Biometrics

All Implemented Interfaces:
Runnable

public class Biometrics extends Device
JposDevice based implementation of a JavaPOS Biometrics device service implementation for the sample device implemented in SampleUdpDevice.tcl.

The simulator supports the following biometrics commands:

  • 'BIO:StartN': Starts input, where N specifies whether user name and password shall be entered (0) or only the password shall be re-entered (1). Sends back 'BIO:Start0' if Biometrics is just in input state, otherwise 'BIO:Start1'.
  • 'BIO:Check': Checks input state. Sends back 'BIO:Check0' if still in input and 'BIO:Check1' if input has been finished.
  • 'BIO:Get': Retrieves input data. Sends back 'BIO:GetK', where K is a space separated list of decimal Unicode values representing user name and password. 0 will be the delimiter between user name and password. An exampe: If the user name is 'john' and the password 'doe', the simulator sends 'BIO:Get106 111 104 110 0 100 111 101'.
All frames have variable length. Communication will be made with UDP sockets.
Multiple commands can be sent in a single frame, separated by comma (,). The corresponding responses will be sent in one frame, separated by comma as well.

Here a full list of all Biometrics device specific properties that can be changed via jpos.xml:

  • BIRFormatIDOwner: The owner component of the BIR format ID in the range 0 - 65535. Default: 54321. Keep in mind that this is not a real format owner as provided by the International Biometric Industry Association.
  • BIRFormatIDType: The type component of the BIR format ID in the range 0 - 65535. Default: 1.
  • MaxEnrollmentEntries: The maximum number of password captures allowed for successful identification. Default: 5. Identification is successful, if two successive password entries match.
  • FRRUserOnly: The False Reject Rate if user matches but password is wrong. Default: 10.
  • FARUserOnly: The False Accept Rate if user matches but password is wrong. Default: 90.
The format of the BDB (Biometric Data Block) used by this simulation is as follows:
  • The BDB starts with the BDB length (4 byte), followed by
  • Hash codes(12 byte) that cover the password, followed by
  • length (4 byte) of the user name, followed by
  • length (4 byte) of payload from application, followed by
  • user name (UTF8 encoded, length as specified before), followed by
  • application payload (length specified before).
Length fields within the BDB are in binary little-endian format.
  • Constructor Details

    • Biometrics

      protected Biometrics(String id)
      The device implementation. See parent for further details.
      Parameters:
      id - Device ID, UDP address of simulator.
  • Method Details

    • checkProperties

      public void checkProperties(jpos.config.JposEntry entry) throws jpos.JposException
      Description copied from class: JposBaseDevice
      Checks whether a JposEntry belongs to a predefined property value an if so, sets the corresponding driver value
      Overrides:
      checkProperties in class Device
      Parameters:
      entry - Entry to be checked, contains value to be set
      Throws:
      jpos.JposException - if a property value is invalid
    • changeDefaults

      public void changeDefaults(BiometricsProperties props)
      Description copied from class: JposDevice
      Change defaults of properties. Must be implemented within derived classed that support biometrics services.
      Overrides:
      changeDefaults in class JposDevice
      Parameters:
      props - Property set for setting the property defaults
    • getBiometricsProperties

      public BiometricsProperties getBiometricsProperties(int index)
      Description copied from class: JposDevice
      Returns device implementation of BiometricsProperties.
      Overrides:
      getBiometricsProperties in class JposDevice
      Parameters:
      index - Device index, see constructor of JposCommonProperties.
      Returns:
      Instance of BiometricsProperties that matches the requirements of the corresponding device service.