Skip Headers
Oracle® Fusion Middleware Developer's Guide for Oracle Adaptive Access Manager
11g Release 2 (11.1.2.0)

Part Number E27206-18
Go to Documentation Home
Home
Go to Table of Contents
Contents
Go to Index
Index
Go to Feedback page
Contact Us

Go to previous page
Previous
Go to next page
Next
PDF · Mobi · ePub

20 Developing a Virtual Authentication Device

OAAM includes a suite of highly secure virtual authentication devices as samples to deploy if you choose to. Alteration of these samples is considered custom development. Source art and information in this chapter are provided as a reference to allow you to develop your own custom virtual authentication devices.

Note:

These samples are provided in English only.

This chapter contains the following sections:

20.1 What is a Virtual Authentication Device?

Virtual authentication devices are authenticator interfaces used to protect end users during the process of entering and transmitting authentication credentials and provide them with verification they are authenticating on the valid application. There are many security technologies employed in the authenticator user interfaces. Each virtual authentication device has its own unique set of security features that makes it much more than just an image on a web page.

20.1.1 Virtual Authentication Device Terminology

This section defines terms used in this chapter.

Table 20-1 VAD Terminology

Term Description

Authenticator / Authentipad

A control for user input included in OAAM that provides a keyboard and enables personalization.

Personalization

Assigning an image and generated phrase during registration. The phrase and image provide end users with verification they are authenticating on the valid application.

Virtual Keypad/Keyboard

A method for user input where the user clicks screen keys instead of an external keyboard.

Jitter

The act of moving key location slightly on each time the authenticator is generated.

Sub-jitter

After jitter is calculated each individual key is moved.

Offset

The act of moving a whole key set on screen.

Key Randomization

The act of randomizing the key order. (Scramble)

Timestamp

A string generated from the current system time or client side time.

Masking

Replacing characters in an HTML input field.


20.1.2 Virtual Authentication Types

Virtual authentication devices protect users from phishing attacks, data theft, and bots. Each user has an image and a phrase that are used as a shared secret between the business and the end user. The shared secret authenticates the website to the end user, which helps to protect end users from Phishing operations trying to fool them with social engineering.

Figure 20-1 Personalization

KeyPad personalization is shown.

Each time PinPad or KeyPad is used the data sent over the wire is random. The actual credential is not entered and sent by the end user. Instead, what is sent are screen coordinates. Basic jitter, sub-jitter and scramble are available. The following subsections introduces you to the virtual authentication devices.

20.1.2.1 TextPad

TextPad is a personalized device that consists of a single form field for entering a password or PIN using a regular keyboard. This method of data entry helps to defend against phishing primarily. The field can act as a password HTML control that masks data entry. TextPad is often deployed as the default for all users in a large deployment. Then, each user individually can upgrade to another device if desired. The personal image and phrase a user registers and sees every time the user logs in to the valid site serves as a shared secret between the user and server. If this shared secret is not presented or presented incorrectly, the users will notice. An example TextPad is shown in Figure 20-2.

Figure 20-2 TextPad

This is an illustration of a TextPad

20.1.2.2 PinPad and KeyPad

PinPad and KeyPad are indirect authentication credential entry virtual devices. They can be invoked at the time of login or in-session if required. A user navigates using their mouse to click the visual "keys." On the wire, the data entered is a string of random numbers that only the OAAM server can decode into the valid password/PIN/data. A configurable number of randomization mechanisms control the balance of usability with the level of required strength. The PinPad and KeyPad are generally given as an optional upgrade users can choose to use or not. This flow ensures only users who want the extra protection utilize it since there is a slight learning curve related to navigation.

PinPad is a lightweight authentication device for entering a numeric PIN. Data input is limited to numerals. It supports key jitter, randomization, and offset. An example PinPad is shown in Figure 20-3.

Figure 20-3 PinPad

This is an illustration of a PinPad

KeyPad is a personalized graphics keyboard. The user uses KeyPad to enter alphanumeric and special character using a traditional keyboard. KeyPad is ideal for entering passwords and other sensitive data. For example, credit card numbers can be entered. An example KeyPad is shown in Figure 20-4.

Figure 20-4 KeyPad

This is an illustration of a KeyPad

20.1.2.3 QuestionPad

QuestionPad is a personalized device that renders text in the form of a prompt or question. The user can provide information or an answer for the question using a regular keyboard. The QuestionPad is capable of incorporating the challenge question into the Question image. Like other Adaptive Strong Authentication devices, QuestionPad also helps in solving the phishing problem. An example QuestionPad is shown in Figure 20-5.

Figure 20-5 QuestionPad

This is an illustration of a QuestionPad

20.1.3 Virtual Authentication Device Configuration Files and Properties

Text based property files on the server side control how the virtual authentication devices are rendered and how they behave. These files are in the business application for Native deployments or in an application for UIO deployments. Details on the virtual authentication device properties are provided in this chapter for your reference.

20.1.3.1 Files Used in Virtual Authentication Device Configuration

Virtual authentication devices uses the following files:

  • oaam_custom.properties is the file where custom properties are added for virtual authentication devices, KeySet definitions used in the KeyPad and PinPad devices, and configuration properties that are not localized (translated).

  • oaam_custom_<locale>.properties are files the administrator customizing the application creates to contain locale-specific properties such as translated displayed messages. The locale identifier consists of at least a language identifier, and a region identifier (if required). For example, the custom properties file for US English is oaam_custom_en_US.properties.

Note:

Many of the properties related to the virtual authentication devices are in resource bundles so that they are capable of being localized. If the default value is in a "resource" file, then the override value should be placed in the client override file for resource bundle values (client_resource.properties).

20.1.3.2 Virtual Authentication Device Property Construction

Properties are constructed in the following manner.

bharosa.authentipad.<padtype>.<property>.<subproperty>=<value>

For example:

bharosa.authentipad.textpad.datafield.x=100

The pad type values are:

  • textpad

  • keypad

  • pinpad

  • questionpad

Any defined property can be overwritten or updated by redefining the property in the oaam_custom.properties file. This allows only the relevant properties to be changed without having to rewrite all properties in a new set.

20.1.3.3 Randomization and Jitter Properties

Each time PinPad, KeyPad, and QuestionPad are used the data sent over the wire is random. The actual credential is not entered and sent by the end user. Instead, what is sent are screen coordinates or offset values. In addition to basic jitter, sub-jitter and scramble are available through properties. The subsequent figure illustrates how jittering is achieved.

Figure 20-6 Randomization and Jitter

Keyboard jittering is shown on the VAD.
20.1.3.3.1 TextPad Randomization and Jitter Properties
bharosa.authentipad.textpad.encrypt.checksum = true
#This contains the values for the checksum encryption process
bharosa.authentipad.textpad.checksum.min = 100 
bharosa.authentipad.textpad.checksum.max = 200
bharosa.authentipad.textpad.checksum.total = 300
20.1.3.3.2 KeyPad Randomization and Jitter Properties
bharosa.authentipad.keypad.encrypt.jitter = true
bharosa.authentipad.keypad.randomizeKeys=false
bharosa.authentipad.keypad.keyWidthJitter=50
bharosa.authentipad.keypad.keyHeightJitter=15
bharosa.authentipad.keypad.encrypt.checksum = true
bharosa.authentipad.keypad.checksum.min = 100
bharosa.authentipad.keypad.checksum.max = 200
bharosa.authentipad.keypad.checksum.total = 300
20.1.3.3.3 PinPad Randomization and Jitter Properties
bharosa.authentipad.pinpad.encrypt.jitter = true
bharosa.authentipad.pinpad.randomizeKeys=false
bharosa.authentipad.pinpad.keyWidthJitter=50
bharosa.authentipad.pinpad.keyHeightJitter=15
bharosa.authentipad.pinpad.encrypt.checksum = true
#This contains the values for the checksum encryption process
bharosa.authentipad.pinpad.checksum.min = 100
bharosa.authentipad.pinpad.checksum.max = 200
bharosa.authentipad.pinpad.checksum.total = 300
20.1.3.3.4 QuestionPad Randomization and Jitter Properties
bharosa.authentipad.questionpad.encrypt.checksum = true
#This contains the values for the checksum encryption process
bharosa.authentipad.questionpad.checksum.min = 100
bharosa.authentipad.questionpad.checksum.max = 200
bharosa.authentipad.questionpad.checksum.total = 300

20.2 What Elements of the Authenticator Can Be Customized?

Specific elements of the Authenticator interfaces may be customized. The following are details on these configurations.

20.2.1 Virtual Authentication Device Composition

A virtual authentication device is composed of many elements. Figure 20-7 shows the elements which are combined at run time to produce the virtual authentication device for display on the client side.

Figure 20-7 Virtual Authentication Device Composition

The virtual device composition is shown.

Table 20-2 describes each element in the composition.

Table 20-2 Elements of an authenticator

Element Description

Personalized Image

An image selected by the user during registration. This is stored in the user repository in OAAM.

Authenticator Frame

An image that forms the frame of the authenticator. It contains graphics to represent user controls.

Timestamp, Phrase and Keyset

Image elements that are generated to build the personalization of the authenticator.

HTML Controls

A set of JavaScript controlled HTML elements for data entry and submission of data.


20.2.2 Personalized Image

There are 8,423 personalization images for each virtual authentication device. For the background images to be displayed in the virtual authentication device, set the following property:

vcrypt.user.image.dirlist.property.name=bharosa.image.dirlist
bharosa.image.dirlist=<absolute_folder_path_where_oaam_images_are_available>

To develop custom background images for the virtual authentication devices, perform the following steps:

  1. Process the images to the correct resolution for each virtual authentication device being used.

    You can configure a graphic editor to transform the images in batches.

  2. Add the images to the correct directories for each virtual authentication device. For example, the TextPad images is placed into the textpad folder.

  3. For each virtual authentication device, set the following property:

    bharosa.image.dirlist=<absolute_folder_path_where_oaam_images_are_available>
    

    For example:

    bharosa.image.dirlist=/scratch/user/Oracle/Middleware/Oracle_IDM1/oaam/oaam_images/<virtual_authentication_device>
    

    where <virtual_authentication_device> is one of the subdirectories: keypad, questionpad, or textpad.

20.2.3 Frames

Each of the authenticator interfaces, such as TextPad, KeyPad, PinPad, and so on, has a frame. The frame marks the outer boundary of the authenticator user interface and delineates the virtual authentication device from the rest of the page. The frame must always be apparent regardless of the graphical treatment to preserve the appearance of a device. The frame may not blend into the surrounding elements of an HTML page to the point were it disappears visually. The overall size and aspect of each pad is fixed and may not be altered. All elements of the interface must be contained within the frame. If any of the images are to be edited, make sure not to increase the physical dimensions or change the aspect ratio of the sample images because distortions will occur. These elements include buttons, fields, personal phrase and personal image. A single image file contains the branding, frame and button images.

The frame may be altered only in the following ways:

  • Colors may be altered for the outline and fill of the frame

  • Colors of the buttons on the frame may be altered

  • Branding may be altered

20.2.3.1 TextPad Authenticator Image and Frame Properties

Table 20-1 lists the TextPad Authenticator Properties

Table 20-3 TextPad Authenticator Properties

Feature Property

Default background graphic

(Can be application specific)

bharosa.uio.<appId>.DeviceTextPad.default.image = textpad_bg/UIO_BG.jpg

Password Frame File

(Can be application specific)

bharosa.uio.<appId>.password.DeviceTextPad.frame =

Challenge Frame File

(Can be application specific)

bharosa.uio.<appId>.<challengeType>.DeviceTextPad.frame =

Note: Challenge type can be any configured challenge type (ChallengeQuestion, ChallengeEmail, and others)

Registration Frame File

(Can be application specific)

bharosa.uio.<appId>.register.DeviceTextPad.frame = textpad_bg/TP_O_preview.png

User Preferences Frame File

(Can be application specific)

bharosa.uio.<appId>.userpreferences.DeviceTextPad.frame = textpad_bg/TP_O_preview.png


20.2.3.2 PinPad Authenticator Image and Frame Properties

Table 20-1 lists the PinPad Authenticator Properties

Table 20-4 PinPad Authenticator Properties

Feature Property

Default background graphic

(Can be application specific)

bharosa.uio.default.DevicePinPad.default.image = pinpad_bg/UIO_BG.jpg

Password Frame File

(Can be application specific)

bharosa.uio.<appId>.password.DevicePinPad.frame =

Challenge Frame File

(Can be application specific)

bharosa.uio.<appId>.<challengeType>.DevicePinPad.frame =

Note: Challenge type can be any configured challenge type (ChallengeQuestion, ChallengeEmail, and others)

Registration Frame File

(Can be application specific)

bharosa.uio.<appId>.register.DevicePinPad.frame = pinpad_bg/PP_v02_frame_preview.png

User Preferences Frame File

(Can be application specific)

bharosa.uio.<appId>.userpreferences.DevicePinPad.frame = pinpad_bg/PP_v02_frame_preview.png


20.2.3.3 QuestionPad Authenticator Image and Frame Properties

Table 20-1 lists the QuestionPad Authenticator Properties

Table 20-5 QuestionPad Authenticator Properties

Feature Property

Default background graphic

(Can be application specific)

bharosa.uio.<appId>.DeviceQuestionPad.default.image = textpad_bg/UIO_BG.jpg

Challenge Frame File

(Can be application specific)

bharosa.uio.<appId>.<challengeType>.DeviceQuestionPad.frame =

Note: Challenge type can be any configured challenge type (ChallengeQuestion, ChallengeEmail, and others)


20.2.3.4 KeyPad Authenticator Image and Frame Properties

Table 20-1 lists the KeyPad Authenticator Properties

Table 20-6 KeyPad Authenticator Properties

Feature Property

Default background graphic

(Can be application specific)

bharosa.uio.<appId>.DeviceKeyPadFull.default.image = keypad_bg/UIO_BG.jpg

Password Frame File

(Can be application specific)

bharosa.uio.<appId>.password.DeviceKeyPadFull.frame =

Challenge Frame File

(Can be application specific)

bharosa.uio.<appId>.<challengeType>.DeviceKeyPadFull.frame =

Note: Challenge type can be any configured challenge type (ChallengeQuestion, ChallengeEmail, and others)

Registration Frame File (

(Can be application specific)

bharosa.uio.<appId>.register.DeviceKeyPadFull.frame = alphapad_bg/kp_O_preview.png

User Preferences Frame File

(Can be application specific)

bharosa.uio.<appId>.userpreferences.DeviceKeyPadFull.frame = alphapad_bg/kp_O_preview.png


20.2.4 Enter Key, Personalized Phrase, and Time Stamp Positioning

Each virtual authentication device has its own unique security features. The default positioning of these elements are provided for your reference.

Visual Element Description

Enter Key Hotspot

The link area which allows user to submit data entered in the authentication device

Phrase

The personalized phrase assigned to the user at the time of registration. The phrase allows the user to ensure they are on their intended website

Timestamp

The timestamp of when the image was generated, allowing the user to ensure the authentication device is current


20.2.4.1 TextPad Visual Elements

This section provides information on the visual elements of TextPad.

Phrase (Caption)

bharosa.authentipad.textpad.caption.personalize = true
bharosa.authentipad.textpad.caption.x = 14
bharosa.authentipad.textpad.caption.y = 203
bharosa.authentipad.textpad.caption.frame = false
bharosa.authentipad.textpad.caption.wrap = false
bharosa.authentipad.textpad.caption.width = 130
bharosa.authentipad.textpad.caption.height = 16
bharosa.authentipad.textpad.caption.font.name = Arial
bharosa.authentipad.textpad.caption.font.color = 000000
bharosa.authentipad.textpad.caption.font.type= 0
bharosa.authentipad.textpad.caption.font.size = 9

Timestamp

bharosa.authentipad.textpad.timestamp.x = 25
bharosa.authentipad.textpad.timestamp.y = 165
bharosa.authentipad.textpad.timestamp.width = 132
bharosa.authentipad.textpad.timestamp.height = 16
bharosa.authentipad.textpad.timestamp.frame = false
bharosa.authentipad.textpad.timestamp.wrap = false
bharosa.authentipad.textpad.timestamp.font.name = Arial
bharosa.authentipad.textpad.timestamp.font.color = ffffff
bharosa.authentipad.textpad.timestamp.font.type= 0
bharosa.authentipad.textpad.timestamp.font.size = 9

Enter Key Hotspot

bharosa.authentipad.textpad.enterkey.x=98
bharosa.authentipad.textpad.enterkey.y=181
bharosa.authentipad.textpad.enterkey.width=45
bharosa.authentipad.textpad.enterkey.height=19
bharosa.authentipad.textpad.enterkey.label=enter
bharosa.authentipad.textpad.enterkey.enable=true

20.2.4.2 PinPad Visual Elements

This section provides information on the visual elements of PinPad.

Phrase (Caption)

bharosa.authentipad.pinpad.caption.personalize = true
bharosa.authentipad.pinpad.caption.x = 5
bharosa.authentipad.pinpad.caption.y = 206
bharosa.authentipad.pinpad.caption.frame = false
bharosa.authentipad.pinpad.caption.wrap = false
bharosa.authentipad.pinpad.caption.width = 130
bharosa.authentipad.pinpad.caption.height = 16
bharosa.authentipad.pinpad.caption.font.name = Arial
bharosa.authentipad.pinpad.caption.font.color = 000000
bharosa.authentipad.pinpad.caption.font.type= 0
bharosa.authentipad.pinpad.caption.font.size = 9

Timestamp

bharosa.authentipad.pinpad.timestamp.x = 15
bharosa.authentipad.pinpad.timestamp.y = 165
bharosa.authentipad.pinpad.timestamp.width = 132
bharosa.authentipad.pinpad.timestamp.height = 16
bharosa.authentipad.pinpad.timestamp.frame = false
bharosa.authentipad.pinpad.timestamp.wrap = false
bharosa.authentipad.pinpad.timestamp.font.name = Arial
bharosa.authentipad.pinpad.timestamp.font.color = ffffff
bharosa.authentipad.pinpad.timestamp.font.type= 0
bharosa.authentipad.pinpad.timestamp.font.size = 9

Enter Key Hotspot

bharosa.authentipad.pinpad.enterkey.x=78
bharosa.authentipad.pinpad.enterkey.y=182
bharosa.authentipad.pinpad.enterkey.width=49
bharosa.authentipad.pinpad.enterkey.height=20
bharosa.authentipad.pinpad.enterkey.label=enter
bharosa.authentipad.pinpad.enterkey.enable=true

Backspace Key Hotspot

bharosa.authentipad.pinpad.backspace.x=86
bharosa.authentipad.pinpad.backspace.y=8
bharosa.authentipad.pinpad.backspace.width=20
bharosa.authentipad.pinpad.backspace.height=20
bharosa.authentipad.pinpad.backspace.label=&lt;
bharosa.authentipad.pinpad.backspace.enable=true

20.2.4.3 QuestionPad Visual Elements

This section provides information on the visual elements of QuestionPad.

Note:

In 10.1.4.5 and above, the QuestionPad is a single line field.

Phrase (Caption)

bharosa.authentipad.questionpad.caption.personalize = true
bharosa.authentipad.questionpad.caption.x = 14
bharosa.authentipad.questionpad.caption.y = 203
bharosa.authentipad.questionpad.caption.frame = false
bharosa.authentipad.questionpad.caption.wrap = false
bharosa.authentipad.questionpad.caption.width = 130
bharosa.authentipad.questionpad.caption.height = 16
bharosa.authentipad.questionpad.caption.font.name = Arial
bharosa.authentipad.questionpad.caption.font.color = 000000
bharosa.authentipad.questionpad.caption.font.type= 0
bharosa.authentipad.questionpad.caption.font.size = 9

Timestamp

bharosa.authentipad.questionpad.timestamp.x = 25
bharosa.authentipad.questionpad.timestamp.y = 165
bharosa.authentipad.questionpad.timestamp.width = 132
bharosa.authentipad.questionpad.timestamp.height = 16
bharosa.authentipad.questionpad.timestamp.frame = false
bharosa.authentipad.questionpad.timestamp.wrap = false
bharosa.authentipad.questionpad.timestamp.font.name = Arial
bharosa.authentipad.questionpad.timestamp.font.color = ffffff
bharosa.authentipad.questionpad.timestamp.font.type= 0
bharosa.authentipad.questionpad.timestamp.font.size = 9

Question Text

bharosa.authentipad.questionpad.question.x = 9
bharosa.authentipad.questionpad.question.y = 32
bharosa.authentipad.questionpad.question.width = 132
bharosa.authentipad.questionpad.question.height = 62
bharosa.authentipad.questionpad.question.frame = false
bharosa.authentipad.questionpad.question.wrap = true
bharosa.authentipad.questionpad.question.font.name = Arial
bharosa.authentipad.questionpad.question.font.color = 000000
bharosa.authentipad.questionpad.question.font.type= 0
bharosa.authentipad.questionpad.question.font.size = 9

Enter Key Hotspot

bharosa.authentipad.questionpad.enterkey.x=98
bharosa.authentipad.questionpad.enterkey.y=181
bharosa.authentipad.questionpad.enterkey.width=45
bharosa.authentipad.questionpad.enterkey.height=19
bharosa.authentipad.questionpad.enterkey.label=enter
bharosa.authentipad.questionpad.enterkey.enable=true

Visible Text Input or Password (Non-Visible) Input Setting

The following property in oaam_custom.properties determines whether the QuestionPad is set for visible text input or password (non-visible) input.

bharosa.authentipad.questionpad.datafield.input.type

Valid values are text and password.

20.2.4.4 KeyPad Visual Elements

This section provides information on the visual elements of KeyPad.

Phrase (Caption)

bharosa.authentipad.keypad.caption.personalize = true
bharosa.authentipad.keypad.caption.x = 240
bharosa.authentipad.keypad.caption.y = 206
bharosa.authentipad.keypad.caption.frame = false
bharosa.authentipad.keypad.caption.wrap = false
bharosa.authentipad.keypad.caption.width = 130
bharosa.authentipad.keypad.caption.height = 16
bharosa.authentipad.keypad.caption.font.name = Arial
bharosa.authentipad.keypad.caption.font.color = 000000
bharosa.authentipad.keypad.caption.font.type= 0
bharosa.authentipad.keypad.caption.font.size = 9

Timestamp

bharosa.authentipad.keypad.timestamp.x = 110
bharosa.authentipad.keypad.timestamp.y = 202
bharosa.authentipad.keypad.timestamp.width = 132
bharosa.authentipad.keypad.timestamp.height = 16
bharosa.authentipad.keypad.timestamp.frame = false
bharosa.authentipad.keypad.timestamp.wrap = false
bharosa.authentipad.keypad.timestamp.font.name = Arial
bharosa.authentipad.keypad.timestamp.font.color = ffffff
bharosa.authentipad.keypad.timestamp.font.type= 0
bharosa.authentipad.keypad.timestamp.font.size = 9

Enter Key Hotspot

bharosa.authentipad.keypad.enterkey.x=292
bharosa.authentipad.keypad.enterkey.y=8
bharosa.authentipad.keypad.enterkey.width=50
bharosa.authentipad.keypad.enterkey.height=20
bharosa.authentipad.keypad.enterkey.label=enter
bharosa.authentipad.keypad.enterkey.enable=true

Backspace Key Hotspot

bharosa.authentipad.keypad.backspace.x=164
bharosa.authentipad.keypad.backspace.y=8
bharosa.authentipad.keypad.backspace.width=20
bharosa.authentipad.keypad.backspace.height=20
bharosa.authentipad.keypad.backspace.enable=true

Caps States

bharosa.authentipad.keypad.capslock.x=188   
bharosa.authentipad.keypad.capslock.y=0
bharosa.authentipad.keypad.capslock.width=43
bharosa.authentipad.keypad.capslock.height=29
bharosa.authentipad.keypad.capslock.capsonimg=kp_v2_all_caps.jpg
bharosa.authentipad.keypad.capslock.capsshiftimg=kp_v2_first_caps.jpg

20.2.5 KeysSets

A KeySet is the configuration that defines what character keys are present on the virtual authentication device. KeySets are used by the KeyPad and PinPad virtual authentication devices.

KeySets are defined by a series user defined enums.

The first enum defines the rows of the KeySet and points to another enum describing the keys present in that row.

For example, the following enum defines the rows of keys in a PinPad:

bharosa.authentipad.pinpad.default.keyset.enum=Default PinPad Keyset Enum
bharosa.authentipad.pinpad.default.keyset.enum.row1=0
bharosa.authentipad.pinpad.default.keyset.enum.row1.name=
  Default PinPad Keyset Row 1
bharosa.authentipad.pinpad.default.keyset.enum.row1.description=
  Default PinPad Keyset Row 1
bharosa.authentipad.pinpad.default.keyset.enum.row1.keys=
  bharosa.authentipad.pinpad.default.keyset.row1.enum
bharosa.authentipad.pinpad.default.keyset.enum.row1.order=1
 
bharosa.authentipad.pinpad.default.keyset.enum.row2=1
bharosa.authentipad.pinpad.default.keyset.enum.row2.name=
  Default PinPad Keyset Row 2
bharosa.authentipad.pinpad.default.keyset.enum.row2.description=
   Default PinPad Keyset Row 2
bharosa.authentipad.pinpad.default.keyset.enum.row2.keys=
   bharosa.authentipad.pinpad.default.keyset.row2.enum
bharosa.authentipad.pinpad.default.keyset.enum.row2.order=2
 
bharosa.authentipad.pinpad.default.keyset.enum.row3=2
bharosa.authentipad.pinpad.default.keyset.enum.row3.name=
   Default PinPad Keyset Row 3
bharosa.authentipad.pinpad.default.keyset.enum.row3.description=
   Default PinPad Keyset Row 3
bharosa.authentipad.pinpad.default.keyset.enum.row3.keys=
   bharosa.authentipad.pinpad.default.keyset.row3.enum
bharosa.authentipad.pinpad.default.keyset.enum.row3.order=3
 
bharosa.authentipad.pinpad.default.keyset.enum.row4=3
bharosa.authentipad.pinpad.default.keyset.enum.row4.name=
    Default PinPad Keyset Row 4
bharosa.authentipad.pinpad.default.keyset.enum.row4.description=
    Default PinPad Keyset Row 4
bharosa.authentipad.pinpad.default.keyset.enum.row4.keys=
    bharosa.authentipad.pinpad.default.keyset.row4.enum
bharosa.authentipad.pinpad.default.keyset.enum.row4.order=4

Each row is made of the following properties:

Table 20-7 Properties of Rows

Property Description

name

Name of the row.

description

Description of the row.

keys

Enum identifier of the enum that defines the keys in the row.

order

The order the key resides in the row of keys.


In this case, the row1 enum is defined as follows:

bharosa.authentipad.pinpad.default.keyset.row1.enum=Default Pinpad Keyset Row 1
bharosa.authentipad.pinpad.default.keyset.row1.enum.key1=0
bharosa.authentipad.pinpad.default.keyset.row1.enum.key1.name=1
bharosa.authentipad.pinpad.default.keyset.row1.enum.key1.description=1
bharosa.authentipad.pinpad.default.keyset.row1.enum.key1.value=1
bharosa.authentipad.pinpad.default.keyset.row1.enum.key1.shiftvalue=1
bharosa.authentipad.pinpad.default.keyset.row1.enum.key1.image=kp_v2_1.png
bharosa.authentipad.pinpad.default.keyset.row1.enum.key1.order=1
 
bharosa.authentipad.pinpad.default.keyset.row1.enum.key2=1
bharosa.authentipad.pinpad.default.keyset.row1.enum.key2.name=2
bharosa.authentipad.pinpad.default.keyset.row1.enum.key2.description=2
bharosa.authentipad.pinpad.default.keyset.row1.enum.key2.value=2
bharosa.authentipad.pinpad.default.keyset.row1.enum.key2.shiftvalue=2
bharosa.authentipad.pinpad.default.keyset.row1.enum.key2.image=kp_v2_2.png
bharosa.authentipad.pinpad.default.keyset.row1.enum.key2.order=2
 
bharosa.authentipad.pinpad.default.keyset.row1.enum.key3=2
bharosa.authentipad.pinpad.default.keyset.row1.enum.key3.name=3
bharosa.authentipad.pinpad.default.keyset.row1.enum.key3.description=3
bharosa.authentipad.pinpad.default.keyset.row1.enum.key3.value=3
bharosa.authentipad.pinpad.default.keyset.row1.enum.key3.shiftvalue=3
bharosa.authentipad.pinpad.default.keyset.row1.enum.key3.image=kp_v2_3.png
bharosa.authentipad.pinpad.default.keyset.row1.enum.key3.order=3

Each key is made of the following properties:

Table 20-8 Properties of Each Key

Property Description

name

Name of the key.

description

Description of the key.

value

The character value the key represents when clicked.

shiftvalue

The character value the key represents when in caps mode.

image

The image file name that will be used to display the visual representation of the key.

order

The order the key resides in the row of keys.


20.3 Customization Steps

The process is as follows:

  1. Add virtual authentication device related properties and custom KeySet related enum properties to oaam_custom.properties and save it in the <temp-folder>/WEB-INF/classes folder. This chapter also contains information on defining keysets and other virtual authentication device properties.

  2. Add key image files to <temp-folder>/WEB-INF/classes/bharosa_properties/<pad>_skins.

  3. Add Frame Image Files: <temp-folder>//WEB-INF/classes/bharosa_properties/<pad>_bg.

  4. Create OAAM Extensions Shared Library using oaam_custom.properties.

  5. Deploy the custom OAAM Extensions Shared Library into both the OAAM Managed Servers (OAAM Admin and OAAM Server).

    1. Repackage the WAR file using the command:

      jar -cvfm oracle.oaam.extensions.war <temp-folder>/META-INF/MANIFEST.MF 
      -C <temp-folder>
      

      Note:

      Make sure original MANIFEST.MF remains same as that contains shared library information.

    2. Re-deploy the updated oracle.oaam.extensions.war as a shared library with targets as oaam_server and oaam_admin.

  6. Restart OAAM Servers and validate your changes by accessing application.

20.4 Simple Configuration Example

An example is provided for developing an authenticator.

20.4.1 Designing the Frame

The default textpad frame is 148px wide by 223px high as denoted by the properties:

bharosa.authentipad.textpad.width=148
bharosa.authentipad.textpad.height=223

If you wanted to change these properties to make the new authentipad bigger, you would add two new properties to the oaam_custom.properties file.

For example:

bharosa.authentipad.textpad.width=368
bharosa.authentipad.textpad.height=223

The frame itself must have some elements.

  • A space for user password entry – recognizable as a form field.

  • An enter or login button.

  • A space for the personalized phrase.

  • A space for the timestamp string.

  • A transparent section for the personalized image to show through.

Create a new image that contains all these elements and conforms to width and height pixels.

20.4.2 Positioning the Elements

The elements are set using properties documented in Section 20.2.4, "Enter Key, Personalized Phrase, and Time Stamp Positioning." All properties use standard X,Y coordinates from 0,0 in the top left of the image.

20.5 Displaying Virtual Authentication Devices

This section describes the flow to render virtual authentication devices. It contains the following topics:

20.5.1 Setting Up Before Calling the get<pad_type> Method

To get the bgFile, you must obtain it from the user by performing:

String bgFile = (String) authUser.getSecurityPreferences().get("imagePath");

20.5.2 Getting the Virtual Authentication Device

The main API that handles virtual authentication device generation is BharosaClientImpl.getInstance().get<pad type>.

You can use the following methods to get commonly used virtual authentication devices:

  • BharosaClientImpl.getInstance().getFullKeyPad(...)

  • BharosaClientImpl.getInstance().getAlphaNumericKeyPad(...)

  • BharosaClientImpl.getInstance().getTextPad(...)

  • BharosaClientImpl.getInstance().getQuestionPad(...)

  • BharosaClientImpl.getInstance().getPinPad(...)

Each method takes the same set of parameters:

Table 20-9 Virtual Authentication Device: Method Parameters

Parameter Description

String padName

Identifier of the virtual authentication device, used in the HTML as the base name of input fields and JavaScript variables.

String frameFile

Image path to use for the frame.

String backgroundFile

Image path to use for the background image.

If using OAAM assignment APIs, OAAM stores the users assigned image in the VCryptAuthUser object: (String) authUser.getSecurityPreferences().get("imagePath")

VCryptLocalizedString captionText

A localized string to display as the caption on the virtual authentication device

  • VCryptLocalizedString(String, VCryptLocale)

  • VCryptLocalizedString(String, Locale)

  • VCryptLocalizedString(String)

boolean isADACompliant

Flag to designate if the virtual authentication device should be rendered with extra text and links for screen readers.

boolean hasJS

Flag to designate if the user has JavaScript enabled.

boolean hasImages

Flag to designate if the user has images enabled.


20.5.3 Setting Timestamp and Time Zone

You must set timestamp, time zone and display properties to the virtual authentication device that was obtained.

Table 20-10 describes fields that may need to be set on the virtual authentication device once it is created.

Table 20-10 Virtual Authentication Devices: Setting Additional Fields

Parameter Description

authentiPad.setTimeStamp(Date timeStamp)

Sets the timestamp to display on the virtual authentication device.

authentiPad.setTimeZone(TimeZone timeZone)

Sets the time zone to display on the virtual authentication device.

authentiPad.setDisplayOnly(boolean displayOnly)

Flag to designate if the virtual authentication device should be rendered without interactive fields and links. Commonly used to during image registration.

authentiPad.setQuestionText(VCryptLocalizedString questionText)

Used to display question on a QuestionPad.


20.5.4 Displaying Virtual Authentication Devices

VADs are rendered in an HTML page. Any page that is to render a VAD must include the bharosa_pad.js JavaScript file. The bharosa_pad.js file is a JavaScript library for rendering VADs and handling user interaction.

To get the HTML / JavaScript render string to be placed into an HTML page, call authentiPad.getHTML().

The output of this method, will be an HTML string containing required image maps and JavaScript constructors required to display the VAD.

Once rendered, the VAD will make a request for the image to be displayed. The URL used to render the image is configured by the property: bharosa.authentipad.image.url.

20.6 Enabling Accessible Versions of Authenticators

Users who access using assistive techniques will need to use the accessible versions of the virtual authentication devices. Accessible versions of the TextPad, QuestionPad, KeyPad and PinPad are not enabled by default. If accessible versions are needed in a deployment, they can be enabled through properties.

The accessible versions of the virtual authentication devices contain tabbing, directions and ALT text necessary for navigation through screen reader and other assistive technologies.

To enable these versions, set the is ADA compliant flag to true.

For native integration the property to control the virtual authentication devices is

desertref.authentipad.isADACompliant

For UIO, the property to control the virtual authentication devices is

bharosa.uio.default.authentipad.is_ada_compliant

20.7 Customizing the OAAM Server Pages

Areas of the resource bundles you can use to override the page directions and the virtual authentication device text (if desired) are as follows:

# Username Page

bharosa.uio.default.signon.page.title=Sign In:
bharosa.uio.default.signon.page.message=Enter your user name.

# Password Page

bharosa.uio.default.password.page.title=Sign In:
bharosa.uio.default.password.page.message=
   Use this security device to enter your password.
bharosa.uio.default.password.page.DeviceHTMLControl.message=Enter your password.
bharosa.uio.default.password.page.DeviceKeyPadFull.message=
   Please use this secure KeyPad to enter your password.
bharosa.uio.default.password.page.DeviceKeyPadAlpha.message=
   Please use this secure KeyPad to enter your password.
bharosa.uio.default.password.page.DeviceTextPad.message=
   Please use this secure TextPad to enter your password.
bharosa.uio.default.password.page.DevicePinPad.message=
   Please use this secure PinPad to enter your PIN.

### KeyPad Description and Directions

bharosa.authentipad.keypad.accessibility.directions =     
KeyPad directions: Use the following links to enter your password.
Your personalized caption text comes first,
followed by control links, which are then followed by the key links.
Once you have entered your password, use shift-tab to return 
to the enter link to submit your password.

bharosa.authentipad.keypad.security.image.alt = Security Device Image
bharosa.authentipad.keypad.datafield.label=Password
bharosa.authentipad.keypad.enterkey.label=enter

### PinPad Description and Directions

bharosa.authentipad.pinpad.accessibility.directions =
PinPad directions: Use the following links to enter your numeric pin.
Your personalized caption text comes first, followed by control links,
which are then followed by the numeric links.
Once you have entered your numeric pin,
use shift-tab to return to the enter link to submit your pin.

bharosa.authentipad.pinpad.security.image.alt = Security Device Image
bharosa.authentipad.pinpad.datafield.label=Pin
bharosa.authentipad.pinpad.enterkey.label=enter

### TextPad Description and Directions

bharosa.authentipad.textpad.accessibility.directions =
TextPad directions: Use the following items to validate your device.
Your personalized caption text comes first,
followed by a timestamp to ensure the device was generated for this session.
Once you have entered your password in the previous password entry field,
use tab to navigate to the enter link to submit your password.

bharosa.authentipad.textpad.security.image.alt = Security Device Image
bharosa.authentipad.textpad.datafield.label=Password
bharosa.authentipad.textpad.enterkey.label=enter

### TextPadReset Description and Directions

bharosa.authentipad.textpadreset.accessibility.directions = 
TextPad directions:
Use the following items to enter your new password.
Your personalized caption text comes first,
followed by a password input field and password confirmation field.
Once you have entered your password, use tab to navigate to the enter link
to submit your new password.

bharosa.authentipad.textpadreset.security.image.alt = Security Device Image
bharosa.authentipad.textpadreset.datafield.label=Password
bharosa.authentipad.textpadreset.confirmfield.label=Confirm Password
bharosa.authentipad.textpadreset.enterkey.label=enter

### CaptionPad Description and Directions

bharosa.authentipad.captionpad.accessibility.directions =  
CaptionPad directions: 
Use the following items to enter your new caption text.
Control links come first, followed by a text input field.
Once you have entered your caption, use tab to navigate to the enter link
to submit your new caption.

bharosa.authentipad.captionpad.security.image.alt = Security Device Image
bharosa.authentipad.captionpad.datafield.label=Security Phrase
bharosa.authentipad.captionpad.enterkey.label=enter

### CaptionPadConfirm Description and Directions

bharosa.authentipad.captionconfirmpad.accessibility.directions = 
CaptionConfirmPad directions: Use the following items to review your caption text.
To edit your caption text, tab to the Edit link and press Enter.
bharosa.authentipad.captionconfirmpad.security.image.alt = Security Device Image
bharosa.authentipad.captionconfirmpad.datafield.label=Security Phrase
bharosa.authentipad.captionconfirmpad.enterkey.label=enter

### QuestionPad Description and Directions

bharosa.authentipad.questionpad.accessibility.directions = 
QuestionPad directions: Use the following items to enter your answer.  
Your personalized question comes first, followed by your personalized caption,
which is then followed by your answer input field.  Once you have entered 
your answer, use tab to navigate to the enter link to submit your answer.
bharosa.authentipad.questionpad.security.image.alt = Security Device Image
bharosa.authentipad.questionpad.datafield.label=Answer
bharosa.authentipad.questionpad.enterkey.label=enter

20.8 Localizing Virtual Authentication Device in OAAM 11g

This section contains the following topics:

20.8.1 Overview

The process is as follows:

  1. Create the oaam_custom_<locale>.properties file with virtual authentication device related properties and save it in the <temp-folder>/WEB-INF/classes folder.

  2. Add the custom keyset related enum properties to oaam_custom.properties and save it in the <temp-folder>/WEB-INF/classes folder. This chapter also contains information on defining keysets and other virtual authentication device properties.

  3. Add key image files to <temp-folder>/WEB-INF/classes/bharosa_properties/alphapad_skins_<locale>.

  4. Add Frame Image Files: <temp-folder>//WEB-INF/classes/bharosa_properties/alphapad_bg.

  5. Create OAAM Extensions Shared Library using client_resource_<locale>.properties and oaam_custom.properties.

  6. Deploy the custom OAAM Extensions Shared Library into both the OAAM Managed Servers (OAAM Admin and OAAM Server).

  7. Test the localized virtual authentication devices.

20.8.2 Example Using German Locale

The following example shows how to localize the virtual authentication devices in German.

  1. Unzip the OAAM Extensions shared library WAR file into a temp folder <temp-folder>.

  2. Create client_resource_de.properties in <temp-folder>/WEB-INF/classes/ if not already present

  3. Add these in client_resource_de.properties

    # Keyset to use for German locale
    bharosa.authentipad.keypad.default.keyset=german
                  
     # Caption Coordinates for new German Pad
    bharosa.authentipad.keypad.caption.y = 330
    bharosa.authentipad.keypad.caption.frame = false
    bharosa.authentipad.keypad.caption.wrap = false
    bharosa.authentipad.keypad.caption.width = 130
    bharosa.authentipad.keypad.caption.height = 16
    bharosa.authentipad.keypad.caption.font.name = Arial
    bharosa.authentipad.keypad.caption.font.color = 000000
    bharosa.authentipad.keypad.caption.font.type= 0
    bharosa.authentipad.keypad.caption.font.size = 9
     
    # Frame files to use for new German Pad
    bharosa.authentipad.keypad.frame.file=alphapad_bg/kp_frame_O3.png
    bharosa.authentipad.keypad.sample.frame.file=alphapad_bg/
       kp_frame_O3.png
    bharosa.uio.default.register.DeviceKeyPadFull.frame = 
       alphapad_bg/kp_frame_O3.png
    bharosa.uio.default.userpreferences.DeviceKeyPadFull.frame = 
       alphapad_bg/kp_frame_O3.png
     
    # Skins folder containing German key images
    bharosa.authentipad.keypad.skins.dirlist=alphapad_skins_de/square
     
     
    # Timestamp Coordinates for new German Pad
    bharosa.authentipad.keypad.timestamp.y = 330
    bharosa.authentipad.keypad.timestamp.width = 132
    bharosa.authentipad.keypad.timestamp.height = 16
    bharosa.authentipad.keypad.timestamp.frame = false
    bharosa.authentipad.keypad.timestamp.wrap = false
    bharosa.authentipad.keypad.timestamp.font.name = Arial
    bharosa.authentipad.keypad.timestamp.font.color = ffffff
    bharosa.authentipad.keypad.timestamp.font.type= 0
    bharosa.authentipad.keypad.timestamp.font.size = 9
    
  4. Create oaam_custom.properties in <temp-folder>/WEB-INF/classes if not already present.

    ################# German Full Keypad Keyset #############################
     
    bharosa.authentipad.keypad.german.keyset.enum=German KeyPad Keyset Enum
    bharosa.authentipad.keypad.german.keyset.enum.row1=0
    bharosa.authentipad.keypad.german.keyset.enum.row1.name=
       German KeyPad Keyset Row 1
    bharosa.authentipad.keypad.german.keyset.enum.row1.description=
       German KeyPad Keyset Row 1
    bharosa.authentipad.keypad.german.keyset.enum.row1.keys=
       bharosa.authentipad.keypad.german.keyset.row1.enum
    bharosa.authentipad.keypad.german.keyset.enum.row1.order=1
     
    bharosa.authentipad.keypad.german.keyset.enum.row2=1
    bharosa.authentipad.keypad.german.keyset.enum.row2.name=
       German KeyPad Keyset Row 2
    bharosa.authentipad.keypad.german.keyset.enum.row2.description=
       German KeyPad Keyset Row 2
    bharosa.authentipad.keypad.german.keyset.enum.row2.keys=
       bharosa.authentipad.keypad.german.keyset.row2.enum
    bharosa.authentipad.keypad.german.keyset.enum.row2.order=2
     
    bharosa.authentipad.keypad.german.keyset.enum.row3=2
    bharosa.authentipad.keypad.german.keyset.enum.row3.name=
       German KeyPad Keyset Row 3
    bharosa.authentipad.keypad.german.keyset.enum.row3.description=
       German KeyPad Keyset Row 3
    bharosa.authentipad.keypad.german.keyset.enum.row3.keys=
       bharosa.authentipad.keypad.german.keyset.row3.enum
    bharosa.authentipad.keypad.german.keyset.enum.row3.order=3
     
    bharosa.authentipad.keypad.german.keyset.enum.row4=3
    bharosa.authentipad.keypad.german.keyset.enum.row4.name=
       German KeyPad Keyset Row 4
    bharosa.authentipad.keypad.german.keyset.enum.row4.description=
       German KeyPad Keyset Row 4
    bharosa.authentipad.keypad.german.keyset.enum.row4.keys=
       bharosa.authentipad.keypad.german.keyset.row4.enum
    bharosa.authentipad.keypad.german.keyset.enum.row4.order=4
     
    bharosa.authentipad.keypad.german.keyset.enum.row5=4
    bharosa.authentipad.keypad.german.keyset.enum.row5.name=
       German KeyPad Keyset Row 5
    bharosa.authentipad.keypad.german.keyset.enum.row5.description=
       German KeyPad Keyset Row 5
    bharosa.authentipad.keypad.german.keyset.enum.row5.keys=
       bharosa.authentipad.keypad.german.keyset.row5.enum
    bharosa.authentipad.keypad.german.keyset.enum.row5.order=5
     
    #########################\u00C0 to \u00FF Keyset ##############################
     
    bharosa.authentipad.keypad.german.keyset.enum=German KeyPad Keyset Enum
    bharosa.authentipad.keypad.german.keyset.enum.row6=5
    bharosa.authentipad.keypad.german.keyset.enum.row6.name=
       German KeyPad Keyset Row 6
    bharosa.authentipad.keypad.german.keyset.enum.row6.description=
       German KeyPad Keyset Row 6
    bharosa.authentipad.keypad.german.keyset.enum.row6.keys=
       bharosa.authentipad.keypad.german.keyset.row6.enum
    bharosa.authentipad.keypad.german.keyset.enum.row6.order=6
     
    bharosa.authentipad.keypad.german.keyset.enum.row7=6
    bharosa.authentipad.keypad.german.keyset.enum.row7.name=
       German KeyPad Keyset Row 7
    bharosa.authentipad.keypad.german.keyset.enum.row7.description=
       German KeyPad Keyset Row 7
    bharosa.authentipad.keypad.german.keyset.enum.row7.keys=
       bharosa.authentipad.keypad.german.keyset.row7.enum
    bharosa.authentipad.keypad.german.keyset.enum.row7.order=7
     
    bharosa.authentipad.keypad.german.keyset.enum.row8=7
    bharosa.authentipad.keypad.german.keyset.enum.row8.name=
       German KeyPad Keyset Row 8
    bharosa.authentipad.keypad.german.keyset.enum.row8.description=
       German KeyPad Keyset Row 8
    bharosa.authentipad.keypad.german.keyset.enum.row8.keys=
       bharosa.authentipad.keypad.german.keyset.row8.enum
    bharosa.authentipad.keypad.german.keyset.enum.row8.order=8
     
    bharosa.authentipad.keypad.german.keyset.enum.row9=8
    bharosa.authentipad.keypad.german.keyset.enum.row9.name=
       German KeyPad Keyset Row 9
    bharosa.authentipad.keypad.german.keyset.enum.row9.description=
       German KeyPad Keyset Row 9
    bharosa.authentipad.keypad.german.keyset.enum.row9.keys=
       bharosa.authentipad.keypad.german.keyset.row9.enum
    bharosa.authentipad.keypad.german.keyset.enum.row9.order=9
     
    bharosa.authentipad.keypad.german.keyset.enum.row10=9
    bharosa.authentipad.keypad.german.keyset.enum.row10.name=
       German KeyPad Keyset Row 10
    bharosa.authentipad.keypad.german.keyset.enum.row10.description=
       German KeyPad Keyset Row 10
    bharosa.authentipad.keypad.german.keyset.enum.row10.keys=
       bharosa.authentipad.keypad.german.keyset.row10.enum
    bharosa.authentipad.keypad.german.keyset.enum.row10.order=10
     
     
    ###############################################################################
     
     
     
    bharosa.authentipad.keypad.german.keyset.row1.enum=German KeyPad Keyset Row 1
    bharosa.authentipad.keypad.german.keyset.row1.enum.key1=0
    bharosa.authentipad.keypad.german.keyset.row1.enum.key1.name=!
    bharosa.authentipad.keypad.german.keyset.row1.enum.key1.description=!
    bharosa.authentipad.keypad.german.keyset.row1.enum.key1.value=!
    bharosa.authentipad.keypad.german.keyset.row1.enum.key1.shiftvalue=!
    bharosa.authentipad.keypad.german.keyset.row1.enum.key1.image=kp_v2_exclaim.png
    bharosa.authentipad.keypad.german.keyset.row1.enum.key1.order=1
     
    bharosa.authentipad.keypad.german.keyset.row1.enum.key2=1
    bharosa.authentipad.keypad.german.keyset.row1.enum.key2.name=@
    bharosa.authentipad.keypad.german.keyset.row1.enum.key2.description=@
    bharosa.authentipad.keypad.german.keyset.row1.enum.key2.value=@
    bharosa.authentipad.keypad.german.keyset.row1.enum.key2.shiftvalue=@
    bharosa.authentipad.keypad.german.keyset.row1.enum.key2.image=kp_v2_rate.png
    bharosa.authentipad.keypad.german.keyset.row1.enum.key2.order=2
     
    bharosa.authentipad.keypad.german.keyset.row1.enum.key3=2
    bharosa.authentipad.keypad.german.keyset.row1.enum.key3.name=#
    bharosa.authentipad.keypad.german.keyset.row1.enum.key3.description=#
    bharosa.authentipad.keypad.german.keyset.row1.enum.key3.value=#
    bharosa.authentipad.keypad.german.keyset.row1.enum.key3.shiftvalue=#
    bharosa.authentipad.keypad.german.keyset.row1.enum.key3.image=kp_v2_hash.png
    bharosa.authentipad.keypad.german.keyset.row1.enum.key3.order=3
     
    bharosa.authentipad.keypad.german.keyset.row1.enum.key4=3
    bharosa.authentipad.keypad.german.keyset.row1.enum.key4.name=$
    bharosa.authentipad.keypad.german.keyset.row1.enum.key4.description=$
    bharosa.authentipad.keypad.german.keyset.row1.enum.key4.value=$
    bharosa.authentipad.keypad.german.keyset.row1.enum.key4.shiftvalue=$
    bharosa.authentipad.keypad.german.keyset.row1.enum.key4.image=kp_v2_dollar.png
    bharosa.authentipad.keypad.german.keyset.row1.enum.key4.order=4
     
    bharosa.authentipad.keypad.german.keyset.row1.enum.key5=4
    bharosa.authentipad.keypad.german.keyset.row1.enum.key5.name=%
    bharosa.authentipad.keypad.german.keyset.row1.enum.key5.description=%
    bharosa.authentipad.keypad.german.keyset.row1.enum.key5.value=%
    bharosa.authentipad.keypad.german.keyset.row1.enum.key5.shiftvalue=%
    bharosa.authentipad.keypad.german.keyset.row1.enum.key5.image=kp_v2_percent.png
    bharosa.authentipad.keypad.german.keyset.row1.enum.key5.order=5
     
    bharosa.authentipad.keypad.german.keyset.row1.enum.key6=5
    bharosa.authentipad.keypad.german.keyset.row1.enum.key6.name=^
    bharosa.authentipad.keypad.german.keyset.row1.enum.key6.description=^
    bharosa.authentipad.keypad.german.keyset.row1.enum.key6.value=^
    bharosa.authentipad.keypad.german.keyset.row1.enum.key6.shiftvalue=^
    bharosa.authentipad.keypad.german.keyset.row1.enum.key6.image=kp_v2_carat.png
    bharosa.authentipad.keypad.german.keyset.row1.enum.key6.order=6
     
    bharosa.authentipad.keypad.german.keyset.row1.enum.key7=6
    bharosa.authentipad.keypad.german.keyset.row1.enum.key7.name=&
    bharosa.authentipad.keypad.german.keyset.row1.enum.key7.description=&
    bharosa.authentipad.keypad.german.keyset.row1.enum.key7.value=&
    bharosa.authentipad.keypad.german.keyset.row1.enum.key7.shiftvalue=&
    bharosa.authentipad.keypad.german.keyset.row1.enum.key7.image=kp_v2_and.png
    bharosa.authentipad.keypad.german.keyset.row1.enum.key7.order=7
     
    bharosa.authentipad.keypad.german.keyset.row1.enum.key8=7
    bharosa.authentipad.keypad.german.keyset.row1.enum.key8.name=*
    bharosa.authentipad.keypad.german.keyset.row1.enum.key8.description=*
    bharosa.authentipad.keypad.german.keyset.row1.enum.key8.value=*
    bharosa.authentipad.keypad.german.keyset.row1.enum.key8.shiftvalue=*
    bharosa.authentipad.keypad.german.keyset.row1.enum.key8.image=
       kp_v2_asterisk.png
    bharosa.authentipad.keypad.german.keyset.row1.enum.key8.order=8
     
    bharosa.authentipad.keypad.german.keyset.row1.enum.key9=8
    bharosa.authentipad.keypad.german.keyset.row1.enum.key9.name=(
    bharosa.authentipad.keypad.german.keyset.row1.enum.key9.description=(
    bharosa.authentipad.keypad.german.keyset.row1.enum.key9.value=(
    bharosa.authentipad.keypad.german.keyset.row1.enum.key9.shiftvalue=(
    bharosa.authentipad.keypad.german.keyset.row1.enum.key9.image=
       kp_v2_leftbraces.png
    bharosa.authentipad.keypad.german.keyset.row1.enum.key9.order=9
                                                                      
    bharosa.authentipad.keypad.german.keyset.row1.enum.key10=9
    bharosa.authentipad.keypad.german.keyset.row1.enum.key10.name=)
    bharosa.authentipad.keypad.german.keyset.row1.enum.key10.description=)
    bharosa.authentipad.keypad.german.keyset.row1.enum.key10.value=)
    bharosa.authentipad.keypad.german.keyset.row1.enum.key10.shiftvalue=)
    bharosa.authentipad.keypad.german.keyset.row1.enum.key10.image=
       kp_v2_rightbraces.png
    bharosa.authentipad.keypad.german.keyset.row1.enum.key10.order=10
     
    bharosa.authentipad.keypad.german.keyset.row1.enum.key11=10
    bharosa.authentipad.keypad.german.keyset.row1.enum.key11.name=_
    bharosa.authentipad.keypad.german.keyset.row1.enum.key11.description=_
    bharosa.authentipad.keypad.german.keyset.row1.enum.key11.value=_
    bharosa.authentipad.keypad.german.keyset.row1.enum.key11.shiftvalue=_
    bharosa.authentipad.keypad.german.keyset.row1.enum.key11.image=
       kp_v2_underscore.png
    bharosa.authentipad.keypad.german.keyset.row1.enum.key11.order=11
     
    bharosa.authentipad.keypad.german.keyset.row1.enum.key12=11
    bharosa.authentipad.keypad.german.keyset.row1.enum.key12.name=+
    bharosa.authentipad.keypad.german.keyset.row1.enum.key12.description=+
    bharosa.authentipad.keypad.german.keyset.row1.enum.key12.value=+
    bharosa.authentipad.keypad.german.keyset.row1.enum.key12.shiftvalue=+
    bharosa.authentipad.keypad.german.keyset.row1.enum.key12.image=kp_v2_plus.png
    bharosa.authentipad.keypad.german.keyset.row1.enum.key12.order=12
     
    bharosa.authentipad.keypad.german.keyset.row1.enum.key13=12
    bharosa.authentipad.keypad.german.keyset.row1.enum.key13.name=~
    bharosa.authentipad.keypad.german.keyset.row1.enum.key13.description=~
    bharosa.authentipad.keypad.german.keyset.row1.enum.key13.value=~
    bharosa.authentipad.keypad.german.keyset.row1.enum.key13.shiftvalue=~
    bharosa.authentipad.keypad.german.keyset.row1.enum.key13.image=kp_v2_tilda.png
    bharosa.authentipad.keypad.german.keyset.row1.enum.key13.order=13
     
     
    bharosa.authentipad.keypad.german.keyset.row2.enum=German KeyPad Keyset Row 2
    bharosa.authentipad.keypad.german.keyset.row2.enum.key1=0
    bharosa.authentipad.keypad.german.keyset.row2.enum.key1.name=1
    bharosa.authentipad.keypad.german.keyset.row2.enum.key1.description=1
    bharosa.authentipad.keypad.german.keyset.row2.enum.key1.value=1
    bharosa.authentipad.keypad.german.keyset.row2.enum.key1.shiftvalue=1
    bharosa.authentipad.keypad.german.keyset.row2.enum.key1.image=kp_v2_1.png
    bharosa.authentipad.keypad.german.keyset.row2.enum.key1.order=1
     
    bharosa.authentipad.keypad.german.keyset.row2.enum.key2=1
    bharosa.authentipad.keypad.german.keyset.row2.enum.key2.name=2
    bharosa.authentipad.keypad.german.keyset.row2.enum.key2.description=2
    bharosa.authentipad.keypad.german.keyset.row2.enum.key2.value=2
    bharosa.authentipad.keypad.german.keyset.row2.enum.key2.shiftvalue=2
    bharosa.authentipad.keypad.german.keyset.row2.enum.key2.image=kp_v2_2.png
    bharosa.authentipad.keypad.german.keyset.row2.enum.key2.order=2
     
    bharosa.authentipad.keypad.german.keyset.row2.enum.key3=2
    bharosa.authentipad.keypad.german.keyset.row2.enum.key3.name=3
    bharosa.authentipad.keypad.german.keyset.row2.enum.key3.description=3
    bharosa.authentipad.keypad.german.keyset.row2.enum.key3.value=3
    bharosa.authentipad.keypad.german.keyset.row2.enum.key3.shiftvalue=3
    bharosa.authentipad.keypad.german.keyset.row2.enum.key3.image=kp_v2_3.png
    bharosa.authentipad.keypad.german.keyset.row2.enum.key3.order=3
     
    bharosa.authentipad.keypad.german.keyset.row2.enum.key4=3
    bharosa.authentipad.keypad.german.keyset.row2.enum.key4.name=4
    bharosa.authentipad.keypad.german.keyset.row2.enum.key4.description=4
    bharosa.authentipad.keypad.german.keyset.row2.enum.key4.value=4
    bharosa.authentipad.keypad.german.keyset.row2.enum.key4.shiftvalue=4
    bharosa.authentipad.keypad.german.keyset.row2.enum.key4.image=kp_v2_4.png
    bharosa.authentipad.keypad.german.keyset.row2.enum.key4.order=4
     
    bharosa.authentipad.keypad.german.keyset.row2.enum.key5=4
    bharosa.authentipad.keypad.german.keyset.row2.enum.key5.name=5
    bharosa.authentipad.keypad.german.keyset.row2.enum.key5.description=5
    bharosa.authentipad.keypad.german.keyset.row2.enum.key5.value=5
    bharosa.authentipad.keypad.german.keyset.row2.enum.key5.shiftvalue=5
    bharosa.authentipad.keypad.german.keyset.row2.enum.key5.image=kp_v2_5.png
    bharosa.authentipad.keypad.german.keyset.row2.enum.key5.order=5
     
    bharosa.authentipad.keypad.german.keyset.row2.enum.key6=5
    bharosa.authentipad.keypad.german.keyset.row2.enum.key6.name=6
    bharosa.authentipad.keypad.german.keyset.row2.enum.key6.description=6
    bharosa.authentipad.keypad.german.keyset.row2.enum.key6.value=6
    bharosa.authentipad.keypad.german.keyset.row2.enum.key6.shiftvalue=6
    bharosa.authentipad.keypad.german.keyset.row2.enum.key6.image=kp_v2_6.png
    bharosa.authentipad.keypad.german.keyset.row2.enum.key6.order=6
     
    bharosa.authentipad.keypad.german.keyset.row2.enum.key7=6
    bharosa.authentipad.keypad.german.keyset.row2.enum.key7.name=7
    bharosa.authentipad.keypad.german.keyset.row2.enum.key7.description=7
    bharosa.authentipad.keypad.german.keyset.row2.enum.key7.value=7
    bharosa.authentipad.keypad.german.keyset.row2.enum.key7.shiftvalue=7
    bharosa.authentipad.keypad.german.keyset.row2.enum.key7.image=kp_v2_7.png
    bharosa.authentipad.keypad.german.keyset.row2.enum.key7.order=7
     
    bharosa.authentipad.keypad.german.keyset.row2.enum.key8=7
    bharosa.authentipad.keypad.german.keyset.row2.enum.key8.name=8
    bharosa.authentipad.keypad.german.keyset.row2.enum.key8.description=8
    bharosa.authentipad.keypad.german.keyset.row2.enum.key8.value=8
    bharosa.authentipad.keypad.german.keyset.row2.enum.key8.shiftvalue=8
    bharosa.authentipad.keypad.german.keyset.row2.enum.key8.image=kp_v2_8.png
    bharosa.authentipad.keypad.german.keyset.row2.enum.key8.order=8
     
    bharosa.authentipad.keypad.german.keyset.row2.enum.key9=8
    bharosa.authentipad.keypad.german.keyset.row2.enum.key9.name=9
    bharosa.authentipad.keypad.german.keyset.row2.enum.key9.description=9
    bharosa.authentipad.keypad.german.keyset.row2.enum.key9.value=9
    bharosa.authentipad.keypad.german.keyset.row2.enum.key9.shiftvalue=9
    bharosa.authentipad.keypad.german.keyset.row2.enum.key9.image=kp_v2_9.png
    bharosa.authentipad.keypad.german.keyset.row2.enum.key9.order=9
     
    bharosa.authentipad.keypad.german.keyset.row2.enum.key10=9
    bharosa.authentipad.keypad.german.keyset.row2.enum.key10.name=0
    bharosa.authentipad.keypad.german.keyset.row2.enum.key10.description=0
    bharosa.authentipad.keypad.german.keyset.row2.enum.key10.value=0
    bharosa.authentipad.keypad.german.keyset.row2.enum.key10.shiftvalue=0
    bharosa.authentipad.keypad.german.keyset.row2.enum.key10.image=kp_v2_0.png
    bharosa.authentipad.keypad.german.keyset.row2.enum.key10.order=10
                                                                      
    bharosa.authentipad.keypad.german.keyset.row2.enum.key11=10
    bharosa.authentipad.keypad.german.keyset.row2.enum.key11.name=-
    bharosa.authentipad.keypad.german.keyset.row2.enum.key11.description=-
    bharosa.authentipad.keypad.german.keyset.row2.enum.key11.value=-
    bharosa.authentipad.keypad.german.keyset.row2.enum.key11.shiftvalue=-
    bharosa.authentipad.keypad.german.keyset.row2.enum.key11.image=kp_v2_hyphen.png
    bharosa.authentipad.keypad.german.keyset.row2.enum.key11.order=11
     
    bharosa.authentipad.keypad.german.keyset.row2.enum.key12=11
    bharosa.authentipad.keypad.german.keyset.row2.enum.key12.name==
    bharosa.authentipad.keypad.german.keyset.row2.enum.key12.description==
    bharosa.authentipad.keypad.german.keyset.row2.enum.key12.value==
    bharosa.authentipad.keypad.german.keyset.row2.enum.key12.shiftvalue==
    bharosa.authentipad.keypad.german.keyset.row2.enum.key12.image=kp_v2_equals.png
    bharosa.authentipad.keypad.german.keyset.row2.enum.key12.order=12
     
    bharosa.authentipad.keypad.german.keyset.row2.enum.key13=12
    bharosa.authentipad.keypad.german.keyset.row2.enum.key13.name=`
    bharosa.authentipad.keypad.german.keyset.row2.enum.key13.description=`
    bharosa.authentipad.keypad.german.keyset.row2.enum.key13.value=`
    bharosa.authentipad.keypad.german.keyset.row2.enum.key13.shiftvalue=`
    bharosa.authentipad.keypad.german.keyset.row2.enum.key13.image=kp_v2_apost.png
    bharosa.authentipad.keypad.german.keyset.row2.enum.key13.order=13
     
    bharosa.authentipad.keypad.german.keyset.row3.enum=German KeyPad Keyset Row 3
    bharosa.authentipad.keypad.german.keyset.row3.enum.key1=0
    bharosa.authentipad.keypad.german.keyset.row3.enum.key1.name=q
    bharosa.authentipad.keypad.german.keyset.row3.enum.key1.description=q
    bharosa.authentipad.keypad.german.keyset.row3.enum.key1.value=q
    bharosa.authentipad.keypad.german.keyset.row3.enum.key1.shiftvalue=Q
    bharosa.authentipad.keypad.german.keyset.row3.enum.key1.image=kp_v2_Q.png
    bharosa.authentipad.keypad.german.keyset.row3.enum.key1.order=1
     
    bharosa.authentipad.keypad.german.keyset.row3.enum.key2=1
    bharosa.authentipad.keypad.german.keyset.row3.enum.key2.name=w
    bharosa.authentipad.keypad.german.keyset.row3.enum.key2.description=w
    bharosa.authentipad.keypad.german.keyset.row3.enum.key2.value=w
    bharosa.authentipad.keypad.german.keyset.row3.enum.key2.shiftvalue=W
    bharosa.authentipad.keypad.german.keyset.row3.enum.key2.image=kp_v2_W.png
    bharosa.authentipad.keypad.german.keyset.row3.enum.key2.order=2
     
    bharosa.authentipad.keypad.german.keyset.row3.enum.key3=2
    bharosa.authentipad.keypad.german.keyset.row3.enum.key3.name=e
    bharosa.authentipad.keypad.german.keyset.row3.enum.key3.description=e
    bharosa.authentipad.keypad.german.keyset.row3.enum.key3.value=e
    bharosa.authentipad.keypad.german.keyset.row3.enum.key3.shiftvalue=E
    bharosa.authentipad.keypad.german.keyset.row3.enum.key3.image=kp_v2_E.png
    bharosa.authentipad.keypad.german.keyset.row3.enum.key3.order=3
     
    bharosa.authentipad.keypad.german.keyset.row3.enum.key4=3
    bharosa.authentipad.keypad.german.keyset.row3.enum.key4.name=r
    bharosa.authentipad.keypad.german.keyset.row3.enum.key4.description=r
    bharosa.authentipad.keypad.german.keyset.row3.enum.key4.value=r
    bharosa.authentipad.keypad.german.keyset.row3.enum.key4.shiftvalue=R
    bharosa.authentipad.keypad.german.keyset.row3.enum.key4.image=kp_v2_R.png
    bharosa.authentipad.keypad.german.keyset.row3.enum.key4.order=4
     
    bharosa.authentipad.keypad.german.keyset.row3.enum.key5=4
    bharosa.authentipad.keypad.german.keyset.row3.enum.key5.name=t
    bharosa.authentipad.keypad.german.keyset.row3.enum.key5.description=t
    bharosa.authentipad.keypad.german.keyset.row3.enum.key5.value=t
    bharosa.authentipad.keypad.german.keyset.row3.enum.key5.shiftvalue=T
    bharosa.authentipad.keypad.german.keyset.row3.enum.key5.image=kp_v2_T.png
    bharosa.authentipad.keypad.german.keyset.row3.enum.key5.order=5
     
    bharosa.authentipad.keypad.german.keyset.row3.enum.key6=5
    bharosa.authentipad.keypad.german.keyset.row3.enum.key6.name=y
    bharosa.authentipad.keypad.german.keyset.row3.enum.key6.description=y
    bharosa.authentipad.keypad.german.keyset.row3.enum.key6.value=y
    bharosa.authentipad.keypad.german.keyset.row3.enum.key6.shiftvalue=Y
    bharosa.authentipad.keypad.german.keyset.row3.enum.key6.image=kp_v2_Y.png
    bharosa.authentipad.keypad.german.keyset.row3.enum.key6.order=6
     
    bharosa.authentipad.keypad.german.keyset.row3.enum.key7=6
    bharosa.authentipad.keypad.german.keyset.row3.enum.key7.name=u
    bharosa.authentipad.keypad.german.keyset.row3.enum.key7.description=u
    bharosa.authentipad.keypad.german.keyset.row3.enum.key7.value=u
    bharosa.authentipad.keypad.german.keyset.row3.enum.key7.shiftvalue=U
    bharosa.authentipad.keypad.german.keyset.row3.enum.key7.image=kp_v2_U.png
    bharosa.authentipad.keypad.german.keyset.row3.enum.key7.order=7
     
    bharosa.authentipad.keypad.german.keyset.row3.enum.key8=7
    bharosa.authentipad.keypad.german.keyset.row3.enum.key8.name=i
    bharosa.authentipad.keypad.german.keyset.row3.enum.key8.description=i
    bharosa.authentipad.keypad.german.keyset.row3.enum.key8.value=i
    bharosa.authentipad.keypad.german.keyset.row3.enum.key8.shiftvalue=I
    bharosa.authentipad.keypad.german.keyset.row3.enum.key8.image=kp_v2_I.png
    bharosa.authentipad.keypad.german.keyset.row3.enum.key8.order=8
     
    bharosa.authentipad.keypad.german.keyset.row3.enum.key9=8
    bharosa.authentipad.keypad.german.keyset.row3.enum.key9.name=o
    bharosa.authentipad.keypad.german.keyset.row3.enum.key9.description=o
    bharosa.authentipad.keypad.german.keyset.row3.enum.key9.value=o
    bharosa.authentipad.keypad.german.keyset.row3.enum.key9.shiftvalue=O
    bharosa.authentipad.keypad.german.keyset.row3.enum.key9.image=kp_v2_O.png
    bharosa.authentipad.keypad.german.keyset.row3.enum.key9.order=9
     
    bharosa.authentipad.keypad.german.keyset.row3.enum.key10=9
    bharosa.authentipad.keypad.german.keyset.row3.enum.key10.name=p
    bharosa.authentipad.keypad.german.keyset.row3.enum.key10.description=p
    bharosa.authentipad.keypad.german.keyset.row3.enum.key10.value=p
    bharosa.authentipad.keypad.german.keyset.row3.enum.key10.shiftvalue=P
    bharosa.authentipad.keypad.german.keyset.row3.enum.key10.image=kp_v2_P.png
    bharosa.authentipad.keypad.german.keyset.row3.enum.key10.order=10
                                                                      
    bharosa.authentipad.keypad.german.keyset.row3.enum.key11=10
    bharosa.authentipad.keypad.german.keyset.row3.enum.key11.name={
    bharosa.authentipad.keypad.german.keyset.row3.enum.key11.description={
    bharosa.authentipad.keypad.german.keyset.row3.enum.key11.value={
    bharosa.authentipad.keypad.german.keyset.row3.enum.key11.shiftvalue={
    bharosa.authentipad.keypad.german.keyset.row3.enum.key11.image=
       kp_v2_leftcurlybraces.png
    bharosa.authentipad.keypad.german.keyset.row3.enum.key11.order=11
     
    bharosa.authentipad.keypad.german.keyset.row3.enum.key12=11
    bharosa.authentipad.keypad.german.keyset.row3.enum.key12.name=}
    bharosa.authentipad.keypad.german.keyset.row3.enum.key12.description=}
    bharosa.authentipad.keypad.german.keyset.row3.enum.key12.value=}
    bharosa.authentipad.keypad.german.keyset.row3.enum.key12.shiftvalue=}
    bharosa.authentipad.keypad.german.keyset.row3.enum.key12.image=
       kp_v2_rightcurlybraces.png
    bharosa.authentipad.keypad.german.keyset.row3.enum.key12.order=12
     
    bharosa.authentipad.keypad.german.keyset.row3.enum.key13=12
    bharosa.authentipad.keypad.german.keyset.row3.enum.key13.name="
    bharosa.authentipad.keypad.german.keyset.row3.enum.key13.description="
    bharosa.authentipad.keypad.german.keyset.row3.enum.key13.value="
    bharosa.authentipad.keypad.german.keyset.row3.enum.key13.shiftvalue="
    bharosa.authentipad.keypad.german.keyset.row3.enum.key13.image=kp_v2_quotes.png
    bharosa.authentipad.keypad.german.keyset.row3.enum.key13.order=13
     
     
    bharosa.authentipad.keypad.german.keyset.row4.enum=German KeyPad Keyset Row 4
    bharosa.authentipad.keypad.german.keyset.row4.enum.key1=0
    bharosa.authentipad.keypad.german.keyset.row4.enum.key1.name=a
    bharosa.authentipad.keypad.german.keyset.row4.enum.key1.description=a
    bharosa.authentipad.keypad.german.keyset.row4.enum.key1.value=a
    bharosa.authentipad.keypad.german.keyset.row4.enum.key1.shiftvalue=A
    bharosa.authentipad.keypad.german.keyset.row4.enum.key1.image=kp_v2_A.png
    bharosa.authentipad.keypad.german.keyset.row4.enum.key1.order=1
     
    bharosa.authentipad.keypad.german.keyset.row4.enum.key2=1
    bharosa.authentipad.keypad.german.keyset.row4.enum.key2.name=s
    bharosa.authentipad.keypad.german.keyset.row4.enum.key2.description=s
    bharosa.authentipad.keypad.german.keyset.row4.enum.key2.value=s
    bharosa.authentipad.keypad.german.keyset.row4.enum.key2.shiftvalue=S
    bharosa.authentipad.keypad.german.keyset.row4.enum.key2.image=kp_v2_S.png
    bharosa.authentipad.keypad.german.keyset.row4.enum.key2.order=2
     
    bharosa.authentipad.keypad.german.keyset.row4.enum.key3=2
    bharosa.authentipad.keypad.german.keyset.row4.enum.key3.name=d
    bharosa.authentipad.keypad.german.keyset.row4.enum.key3.description=d
    bharosa.authentipad.keypad.german.keyset.row4.enum.key3.value=d
    bharosa.authentipad.keypad.german.keyset.row4.enum.key3.shiftvalue=D
    bharosa.authentipad.keypad.german.keyset.row4.enum.key3.image=kp_v2_D.png
    bharosa.authentipad.keypad.german.keyset.row4.enum.key3.order=3
     
    bharosa.authentipad.keypad.german.keyset.row4.enum.key4=3
    bharosa.authentipad.keypad.german.keyset.row4.enum.key4.name=f
    bharosa.authentipad.keypad.german.keyset.row4.enum.key4.description=f
    bharosa.authentipad.keypad.german.keyset.row4.enum.key4.value=f
    bharosa.authentipad.keypad.german.keyset.row4.enum.key4.shiftvalue=F
    bharosa.authentipad.keypad.german.keyset.row4.enum.key4.image=kp_v2_F.png
    bharosa.authentipad.keypad.german.keyset.row4.enum.key4.order=4
     
    bharosa.authentipad.keypad.german.keyset.row4.enum.key5=4
    bharosa.authentipad.keypad.german.keyset.row4.enum.key5.name=g
    bharosa.authentipad.keypad.german.keyset.row4.enum.key5.description=g
    bharosa.authentipad.keypad.german.keyset.row4.enum.key5.value=g
    bharosa.authentipad.keypad.german.keyset.row4.enum.key5.shiftvalue=G
    bharosa.authentipad.keypad.german.keyset.row4.enum.key5.image=kp_v2_G.png
    bharosa.authentipad.keypad.german.keyset.row4.enum.key5.order=5
     
    bharosa.authentipad.keypad.german.keyset.row4.enum.key6=5
    bharosa.authentipad.keypad.german.keyset.row4.enum.key6.name=h
    bharosa.authentipad.keypad.german.keyset.row4.enum.key6.description=h
    bharosa.authentipad.keypad.german.keyset.row4.enum.key6.value=h
    bharosa.authentipad.keypad.german.keyset.row4.enum.key6.shiftvalue=H
    bharosa.authentipad.keypad.german.keyset.row4.enum.key6.image=kp_v2_H.png
    bharosa.authentipad.keypad.german.keyset.row4.enum.key6.order=6
     
    bharosa.authentipad.keypad.german.keyset.row4.enum.key7=6
    bharosa.authentipad.keypad.german.keyset.row4.enum.key7.name=j
    bharosa.authentipad.keypad.german.keyset.row4.enum.key7.description=j
    bharosa.authentipad.keypad.german.keyset.row4.enum.key7.value=j
    bharosa.authentipad.keypad.german.keyset.row4.enum.key7.shiftvalue=J
    bharosa.authentipad.keypad.german.keyset.row4.enum.key7.image=kp_v2_J.png
    bharosa.authentipad.keypad.german.keyset.row4.enum.key7.order=7
     
    bharosa.authentipad.keypad.german.keyset.row4.enum.key8=7
    bharosa.authentipad.keypad.german.keyset.row4.enum.key8.name=k
    bharosa.authentipad.keypad.german.keyset.row4.enum.key8.description=k
    bharosa.authentipad.keypad.german.keyset.row4.enum.key8.value=k
    bharosa.authentipad.keypad.german.keyset.row4.enum.key8.shiftvalue=K
    bharosa.authentipad.keypad.german.keyset.row4.enum.key8.image=kp_v2_K.png
    bharosa.authentipad.keypad.german.keyset.row4.enum.key8.order=8
     
    bharosa.authentipad.keypad.german.keyset.row4.enum.key9=8
    bharosa.authentipad.keypad.german.keyset.row4.enum.key9.name=l
    bharosa.authentipad.keypad.german.keyset.row4.enum.key9.description=l
    bharosa.authentipad.keypad.german.keyset.row4.enum.key9.value=l
    bharosa.authentipad.keypad.german.keyset.row4.enum.key9.shiftvalue=L
    bharosa.authentipad.keypad.german.keyset.row4.enum.key9.image=kp_v2_L.png
    bharosa.authentipad.keypad.german.keyset.row4.enum.key9.order=9
     
    bharosa.authentipad.keypad.german.keyset.row4.enum.key10=9
    bharosa.authentipad.keypad.german.keyset.row4.enum.key10.name=:
    bharosa.authentipad.keypad.german.keyset.row4.enum.key10.description=:
    bharosa.authentipad.keypad.german.keyset.row4.enum.key10.value=:
    bharosa.authentipad.keypad.german.keyset.row4.enum.key10.shiftvalue=:
    bharosa.authentipad.keypad.german.keyset.row4.enum.key10.image=kp_v2_colon.png
    bharosa.authentipad.keypad.german.keyset.row4.enum.key10.order=10
                                                                      
    bharosa.authentipad.keypad.german.keyset.row4.enum.key11=10
    bharosa.authentipad.keypad.german.keyset.row4.enum.key11.name=;
    bharosa.authentipad.keypad.german.keyset.row4.enum.key11.description=;
    bharosa.authentipad.keypad.german.keyset.row4.enum.key11.value=;
    bharosa.authentipad.keypad.german.keyset.row4.enum.key11.shiftvalue=;
    bharosa.authentipad.keypad.german.keyset.row4.enum.key11.image=kp_v2_semicolon.png
    bharosa.authentipad.keypad.german.keyset.row4.enum.key11.order=11
     
    bharosa.authentipad.keypad.german.keyset.row4.enum.key12=11
    bharosa.authentipad.keypad.german.keyset.row4.enum.key12.name=\\
    bharosa.authentipad.keypad.german.keyset.row4.enum.key12.description=\\
    bharosa.authentipad.keypad.german.keyset.row4.enum.key12.value=\\
    bharosa.authentipad.keypad.german.keyset.row4.enum.key12.shiftvalue=\\
    bharosa.authentipad.keypad.german.keyset.row4.enum.key12.image=
       kp_v2_backslash.png
    bharosa.authentipad.keypad.german.keyset.row4.enum.key12.order=12
     
    bharosa.authentipad.keypad.german.keyset.row4.enum.key13=12
    bharosa.authentipad.keypad.german.keyset.row4.enum.key13.name='
    bharosa.authentipad.keypad.german.keyset.row4.enum.key13.description='
    bharosa.authentipad.keypad.german.keyset.row4.enum.key13.value='
    bharosa.authentipad.keypad.german.keyset.row4.enum.key13.shiftvalue='
    bharosa.authentipad.keypad.german.keyset.row4.enum.key13.image=kp_v2_quote.png
    bharosa.authentipad.keypad.german.keyset.row4.enum.key13.order=13
     
    bharosa.authentipad.keypad.german.keyset.row5.enum=German KeyPad Keyset Row 5
    bharosa.authentipad.keypad.german.keyset.row5.enum.key1=0
    bharosa.authentipad.keypad.german.keyset.row5.enum.key1.name=z
    bharosa.authentipad.keypad.german.keyset.row5.enum.key1.description=z
    bharosa.authentipad.keypad.german.keyset.row5.enum.key1.value=z
    bharosa.authentipad.keypad.german.keyset.row5.enum.key1.shiftvalue=Z
    bharosa.authentipad.keypad.german.keyset.row5.enum.key1.image=kp_v2_Z.png
    bharosa.authentipad.keypad.german.keyset.row5.enum.key1.order=1
     
    bharosa.authentipad.keypad.german.keyset.row5.enum.key2=1
    bharosa.authentipad.keypad.german.keyset.row5.enum.key2.name=x
    bharosa.authentipad.keypad.german.keyset.row5.enum.key2.description=x
    bharosa.authentipad.keypad.german.keyset.row5.enum.key2.value=x
    bharosa.authentipad.keypad.german.keyset.row5.enum.key2.shiftvalue=X
    bharosa.authentipad.keypad.german.keyset.row5.enum.key2.image=kp_v2_X.png
    bharosa.authentipad.keypad.german.keyset.row5.enum.key2.order=2
     
    bharosa.authentipad.keypad.german.keyset.row5.enum.key3=2
    bharosa.authentipad.keypad.german.keyset.row5.enum.key3.name=c
    bharosa.authentipad.keypad.german.keyset.row5.enum.key3.description=c
    bharosa.authentipad.keypad.german.keyset.row5.enum.key3.value=c
    bharosa.authentipad.keypad.german.keyset.row5.enum.key3.shiftvalue=C
    bharosa.authentipad.keypad.german.keyset.row5.enum.key3.image=kp_v2_C.png
    bharosa.authentipad.keypad.german.keyset.row5.enum.key3.order=3
     
    bharosa.authentipad.keypad.german.keyset.row5.enum.key4=3
    bharosa.authentipad.keypad.german.keyset.row5.enum.key4.name=v
    bharosa.authentipad.keypad.german.keyset.row5.enum.key4.description=v
    bharosa.authentipad.keypad.german.keyset.row5.enum.key4.value=v
    bharosa.authentipad.keypad.german.keyset.row5.enum.key4.shiftvalue=V
    bharosa.authentipad.keypad.german.keyset.row5.enum.key4.image=kp_v2_V.png
    bharosa.authentipad.keypad.german.keyset.row5.enum.key4.order=4
     
    bharosa.authentipad.keypad.german.keyset.row5.enum.key5=4
    bharosa.authentipad.keypad.german.keyset.row5.enum.key5.name=b
    bharosa.authentipad.keypad.german.keyset.row5.enum.key5.description=b
    bharosa.authentipad.keypad.german.keyset.row5.enum.key5.value=b
    bharosa.authentipad.keypad.german.keyset.row5.enum.key5.shiftvalue=B
    bharosa.authentipad.keypad.german.keyset.row5.enum.key5.image=kp_v2_B.png
    bharosa.authentipad.keypad.german.keyset.row5.enum.key5.order=5
     
    bharosa.authentipad.keypad.german.keyset.row5.enum.key6=5
    bharosa.authentipad.keypad.german.keyset.row5.enum.key6.name=n
    bharosa.authentipad.keypad.german.keyset.row5.enum.key6.description=n
    bharosa.authentipad.keypad.german.keyset.row5.enum.key6.value=n
    bharosa.authentipad.keypad.german.keyset.row5.enum.key6.shiftvalue=N
    bharosa.authentipad.keypad.german.keyset.row5.enum.key6.image=kp_v2_N.png
    bharosa.authentipad.keypad.german.keyset.row5.enum.key6.order=6
     
    bharosa.authentipad.keypad.german.keyset.row5.enum.key7=6
    bharosa.authentipad.keypad.german.keyset.row5.enum.key7.name=m
    bharosa.authentipad.keypad.german.keyset.row5.enum.key7.description=m
    bharosa.authentipad.keypad.german.keyset.row5.enum.key7.value=m
    bharosa.authentipad.keypad.german.keyset.row5.enum.key7.shiftvalue=M
    bharosa.authentipad.keypad.german.keyset.row5.enum.key7.image=kp_v2_M.png
    bharosa.authentipad.keypad.german.keyset.row5.enum.key7.order=7
     
    bharosa.authentipad.keypad.german.keyset.row5.enum.key8=7
    bharosa.authentipad.keypad.german.keyset.row5.enum.key8.name=<
    bharosa.authentipad.keypad.german.keyset.row5.enum.key8.description=<
    bharosa.authentipad.keypad.german.keyset.row5.enum.key8.value=<
    bharosa.authentipad.keypad.german.keyset.row5.enum.key8.shiftvalue=<
    bharosa.authentipad.keypad.german.keyset.row5.enum.key8.image=
       kp_v2_lessthan.png
    bharosa.authentipad.keypad.german.keyset.row5.enum.key8.order=8
     
    bharosa.authentipad.keypad.german.keyset.row5.enum.key9=8
    bharosa.authentipad.keypad.german.keyset.row5.enum.key9.name=>
    bharosa.authentipad.keypad.german.keyset.row5.enum.key9.description=>
    bharosa.authentipad.keypad.german.keyset.row5.enum.key9.value=>
    bharosa.authentipad.keypad.german.keyset.row5.enum.key9.shiftvalue=>
    bharosa.authentipad.keypad.german.keyset.row5.enum.key9.image=
       kp_v2_greaterthan.png
    bharosa.authentipad.keypad.german.keyset.row5.enum.key9.order=9
     
    bharosa.authentipad.keypad.german.keyset.row5.enum.key10=9
    bharosa.authentipad.keypad.german.keyset.row5.enum.key10.name=,
    bharosa.authentipad.keypad.german.keyset.row5.enum.key10.description=,
    bharosa.authentipad.keypad.german.keyset.row5.enum.key10.value=,
    bharosa.authentipad.keypad.german.keyset.row5.enum.key10.shiftvalue=,
    bharosa.authentipad.keypad.german.keyset.row5.enum.key10.image=kp_v2_comma.png
    bharosa.authentipad.keypad.german.keyset.row5.enum.key10.order=10
                                                                      
    bharosa.authentipad.keypad.german.keyset.row5.enum.key11=10
    bharosa.authentipad.keypad.german.keyset.row5.enum.key11.name=.
    bharosa.authentipad.keypad.german.keyset.row5.enum.key11.description=.
    bharosa.authentipad.keypad.german.keyset.row5.enum.key11.value=.
    bharosa.authentipad.keypad.german.keyset.row5.enum.key11.shiftvalue=.
    bharosa.authentipad.keypad.german.keyset.row5.enum.key11.image=kp_v2_period.png
    bharosa.authentipad.keypad.german.keyset.row5.enum.key11.order=11
     
    bharosa.authentipad.keypad.german.keyset.row5.enum.key12=11
    bharosa.authentipad.keypad.german.keyset.row5.enum.key12.name=/
    bharosa.authentipad.keypad.german.keyset.row5.enum.key12.description=/
    bharosa.authentipad.keypad.german.keyset.row5.enum.key12.value=/
    bharosa.authentipad.keypad.german.keyset.row5.enum.key12.shiftvalue=/
    bharosa.authentipad.keypad.german.keyset.row5.enum.key12.image=
       kp_v2_forwardslash.png
    bharosa.authentipad.keypad.german.keyset.row5.enum.key12.order=12
     
    bharosa.authentipad.keypad.german.keyset.row5.enum.key13=12
    bharosa.authentipad.keypad.german.keyset.row5.enum.key13.name=?
    bharosa.authentipad.keypad.german.keyset.row5.enum.key13.description=?
    bharosa.authentipad.keypad.german.keyset.row5.enum.key13.value=?
    bharosa.authentipad.keypad.german.keyset.row5.enum.key13.shiftvalue=?
    bharosa.authentipad.keypad.german.keyset.row5.enum.key13.image=
       kp_v2_questionmark.png
    bharosa.authentipad.keypad.german.keyset.row5.enum.key13.order=13
     
     
     
     
     
     
    ######################### Alternate Keypad Keyset ######################
     
    bharosa.authentipad.keypad.german.keyset.row6.enum=German KeyPad Keyset Row 6
    bharosa.authentipad.keypad.german.keyset.row6.enum.key1=0
    bharosa.authentipad.keypad.german.keyset.row6.enum.key1.name=\u00C0
    bharosa.authentipad.keypad.german.keyset.row6.enum.key1.description=\u00C0
    bharosa.authentipad.keypad.german.keyset.row6.enum.key1.value=\u00C0
    bharosa.authentipad.keypad.german.keyset.row6.enum.key1.shiftvalue=\u00C0
    bharosa.authentipad.keypad.german.keyset.row6.enum.key1.image=kp_v01_00C0.png
    bharosa.authentipad.keypad.german.keyset.row6.enum.key1.order=1
     
    bharosa.authentipad.keypad.german.keyset.row6.enum.key2=1
    bharosa.authentipad.keypad.german.keyset.row6.enum.key2.name=\u00C1
    bharosa.authentipad.keypad.german.keyset.row6.enum.key2.description=\u00C1
    bharosa.authentipad.keypad.german.keyset.row6.enum.key2.value=\u00C1
    bharosa.authentipad.keypad.german.keyset.row6.enum.key2.shiftvalue=\u00C1
    bharosa.authentipad.keypad.german.keyset.row6.enum.key2.image=kp_v01_00C1.png
    bharosa.authentipad.keypad.german.keyset.row6.enum.key2.order=2
     
    bharosa.authentipad.keypad.german.keyset.row6.enum.key3=2
    bharosa.authentipad.keypad.german.keyset.row6.enum.key3.name=\u00C2
    bharosa.authentipad.keypad.german.keyset.row6.enum.key3.description=\u00C2
    bharosa.authentipad.keypad.german.keyset.row6.enum.key3.value=\u00C2
    bharosa.authentipad.keypad.german.keyset.row6.enum.key3.shiftvalue=\u00C2
    bharosa.authentipad.keypad.german.keyset.row6.enum.key3.image=kp_v01_00C2.png
    bharosa.authentipad.keypad.german.keyset.row6.enum.key3.order=3
     
    bharosa.authentipad.keypad.german.keyset.row6.enum.key4=3
    bharosa.authentipad.keypad.german.keyset.row6.enum.key4.name=\u00C3
    bharosa.authentipad.keypad.german.keyset.row6.enum.key4.description=\u00C3
    bharosa.authentipad.keypad.german.keyset.row6.enum.key4.value=\u00C3
    bharosa.authentipad.keypad.german.keyset.row6.enum.key4.shiftvalue=\u00C3
    bharosa.authentipad.keypad.german.keyset.row6.enum.key4.image=kp_v01_00C3.png
    bharosa.authentipad.keypad.german.keyset.row6.enum.key4.order=4
     
    bharosa.authentipad.keypad.german.keyset.row6.enum.key5=4
    bharosa.authentipad.keypad.german.keyset.row6.enum.key5.name=\u00C4
    bharosa.authentipad.keypad.german.keyset.row6.enum.key5.description=\u00C4
    bharosa.authentipad.keypad.german.keyset.row6.enum.key5.value=\u00C4
    bharosa.authentipad.keypad.german.keyset.row6.enum.key5.shiftvalue=\u00C4
    bharosa.authentipad.keypad.german.keyset.row6.enum.key5.image=kp_v01_00C4.png
    bharosa.authentipad.keypad.german.keyset.row6.enum.key5.order=5
     
    bharosa.authentipad.keypad.german.keyset.row6.enum.key6=5
    bharosa.authentipad.keypad.german.keyset.row6.enum.key6.name=\u00C5
    bharosa.authentipad.keypad.german.keyset.row6.enum.key6.description=\u00C5
    bharosa.authentipad.keypad.german.keyset.row6.enum.key6.value=\u00C5
    bharosa.authentipad.keypad.german.keyset.row6.enum.key6.shiftvalue=\u00C5
    bharosa.authentipad.keypad.german.keyset.row6.enum.key6.image=kp_v01_00C5.png
    bharosa.authentipad.keypad.german.keyset.row6.enum.key6.order=6
     
    bharosa.authentipad.keypad.german.keyset.row6.enum.key7=6
    bharosa.authentipad.keypad.german.keyset.row6.enum.key7.name=\u00C6
    bharosa.authentipad.keypad.german.keyset.row6.enum.key7.description=\u00C6
    bharosa.authentipad.keypad.german.keyset.row6.enum.key7.value=\u00C6
    bharosa.authentipad.keypad.german.keyset.row6.enum.key7.shiftvalue=\u00C6
    bharosa.authentipad.keypad.german.keyset.row6.enum.key7.image=kp_v01_00C6.png
    bharosa.authentipad.keypad.german.keyset.row6.enum.key7.order=7
     
    bharosa.authentipad.keypad.german.keyset.row6.enum.key8=7
    bharosa.authentipad.keypad.german.keyset.row6.enum.key8.name=\u00C7
    bharosa.authentipad.keypad.german.keyset.row6.enum.key8.description=\u00C7
    bharosa.authentipad.keypad.german.keyset.row6.enum.key8.value=\u00C7
    bharosa.authentipad.keypad.german.keyset.row6.enum.key8.shiftvalue=\u00C7
    bharosa.authentipad.keypad.german.keyset.row6.enum.key8.image=kp_v01_00C7.png
    bharosa.authentipad.keypad.german.keyset.row6.enum.key8.order=8
     
    bharosa.authentipad.keypad.german.keyset.row6.enum.key9=8
    bharosa.authentipad.keypad.german.keyset.row6.enum.key9.name=\u00C8
    bharosa.authentipad.keypad.german.keyset.row6.enum.key9.description=\u00C8
    bharosa.authentipad.keypad.german.keyset.row6.enum.key9.value=\u00C8
    bharosa.authentipad.keypad.german.keyset.row6.enum.key9.shiftvalue=\u00C8
    bharosa.authentipad.keypad.german.keyset.row6.enum.key9.image=kp_v01_00C8.png
    bharosa.authentipad.keypad.german.keyset.row6.enum.key9.order=9
     
    bharosa.authentipad.keypad.german.keyset.row6.enum.key10=9
    bharosa.authentipad.keypad.german.keyset.row6.enum.key10.name=\u00C9
    bharosa.authentipad.keypad.german.keyset.row6.enum.key10.description=\u00C9
    bharosa.authentipad.keypad.german.keyset.row6.enum.key10.value=\u00C9
    bharosa.authentipad.keypad.german.keyset.row6.enum.key10.shiftvalue=\u00C9
    bharosa.authentipad.keypad.german.keyset.row6.enum.key10.image=kp_v01_00C9.png
    bharosa.authentipad.keypad.german.keyset.row6.enum.key10.order=10
                                                                      
    bharosa.authentipad.keypad.german.keyset.row6.enum.key11=10
    bharosa.authentipad.keypad.german.keyset.row6.enum.key11.name=\u00CA
    bharosa.authentipad.keypad.german.keyset.row6.enum.key11.description=\u00CA
    bharosa.authentipad.keypad.german.keyset.row6.enum.key11.value=\u00CA
    bharosa.authentipad.keypad.german.keyset.row6.enum.key11.shiftvalue=\u00CA
    bharosa.authentipad.keypad.german.keyset.row6.enum.key11.image=kp_v01_00CA.png
    bharosa.authentipad.keypad.german.keyset.row6.enum.key11.order=11
     
    bharosa.authentipad.keypad.german.keyset.row6.enum.key12=11
    bharosa.authentipad.keypad.german.keyset.row6.enum.key12.name=\u00CB
    bharosa.authentipad.keypad.german.keyset.row6.enum.key12.description=\u00CB
    bharosa.authentipad.keypad.german.keyset.row6.enum.key12.value=\u00CB
    bharosa.authentipad.keypad.german.keyset.row6.enum.key12.shiftvalue=\u00CB
    bharosa.authentipad.keypad.german.keyset.row6.enum.key12.image=kp_v01_00CB.png
    bharosa.authentipad.keypad.german.keyset.row6.enum.key12.order=12
     
    bharosa.authentipad.keypad.german.keyset.row6.enum.key13=12
    bharosa.authentipad.keypad.german.keyset.row6.enum.key13.name=\u00CC
    bharosa.authentipad.keypad.german.keyset.row6.enum.key13.description=\u00CC
    bharosa.authentipad.keypad.german.keyset.row6.enum.key13.value=\u00CC
    bharosa.authentipad.keypad.german.keyset.row6.enum.key13.shiftvalue=\u00CC
    bharosa.authentipad.keypad.german.keyset.row6.enum.key13.image=kp_v01_00CC.png
    bharosa.authentipad.keypad.german.keyset.row6.enum.key13.order=13
     
     
     
     
    bharosa.authentipad.keypad.german.keyset.row7.enum=German KeyPad Keyset Row 7
    bharosa.authentipad.keypad.german.keyset.row7.enum.key1=0
    bharosa.authentipad.keypad.german.keyset.row7.enum.key1.name=\u00CD
    bharosa.authentipad.keypad.german.keyset.row7.enum.key1.description=\u00CD
    bharosa.authentipad.keypad.german.keyset.row7.enum.key1.value=\u00CD
    bharosa.authentipad.keypad.german.keyset.row7.enum.key1.shiftvalue=\u00CD
    bharosa.authentipad.keypad.german.keyset.row7.enum.key1.image=kp_v01_00CD.png
    bharosa.authentipad.keypad.german.keyset.row7.enum.key1.order=1
     
    bharosa.authentipad.keypad.german.keyset.row7.enum.key2=1
    bharosa.authentipad.keypad.german.keyset.row7.enum.key2.name=\u00CE
    bharosa.authentipad.keypad.german.keyset.row7.enum.key2.description=\u00CE
    bharosa.authentipad.keypad.german.keyset.row7.enum.key2.value=\u00CE
    bharosa.authentipad.keypad.german.keyset.row7.enum.key2.shiftvalue=\u00CE
    bharosa.authentipad.keypad.german.keyset.row7.enum.key2.image=kp_v01_00CE.png
    bharosa.authentipad.keypad.german.keyset.row7.enum.key2.order=2
     
    bharosa.authentipad.keypad.german.keyset.row7.enum.key3=2
    bharosa.authentipad.keypad.german.keyset.row7.enum.key3.name=\u00CF
    bharosa.authentipad.keypad.german.keyset.row7.enum.key3.description=\u00CF
    bharosa.authentipad.keypad.german.keyset.row7.enum.key3.value=\u00CF
    bharosa.authentipad.keypad.german.keyset.row7.enum.key3.shiftvalue=\u00CF
    bharosa.authentipad.keypad.german.keyset.row7.enum.key3.image=kp_v01_00CF.png
    bharosa.authentipad.keypad.german.keyset.row7.enum.key3.order=3
     
    bharosa.authentipad.keypad.german.keyset.row7.enum.key4=3
    bharosa.authentipad.keypad.german.keyset.row7.enum.key4.name=\u00D0
    bharosa.authentipad.keypad.german.keyset.row7.enum.key4.description=\u00D0
    bharosa.authentipad.keypad.german.keyset.row7.enum.key4.value=\u00D0
    bharosa.authentipad.keypad.german.keyset.row7.enum.key4.shiftvalue=\u00D0
    bharosa.authentipad.keypad.german.keyset.row7.enum.key4.image=kp_v01_00D0.png
    bharosa.authentipad.keypad.german.keyset.row7.enum.key4.order=4
     
    bharosa.authentipad.keypad.german.keyset.row7.enum.key5=4
    bharosa.authentipad.keypad.german.keyset.row7.enum.key5.name=\u00D1
    bharosa.authentipad.keypad.german.keyset.row7.enum.key5.description=\u00D1
    bharosa.authentipad.keypad.german.keyset.row7.enum.key5.value=\u00D1
    bharosa.authentipad.keypad.german.keyset.row7.enum.key5.shiftvalue=\u00D1
    bharosa.authentipad.keypad.german.keyset.row7.enum.key5.image=kp_v01_00D1.png
    bharosa.authentipad.keypad.german.keyset.row7.enum.key5.order=5
     
    bharosa.authentipad.keypad.german.keyset.row7.enum.key6=5
    bharosa.authentipad.keypad.german.keyset.row7.enum.key6.name=\u00D2
    bharosa.authentipad.keypad.german.keyset.row7.enum.key6.description=\u00D2
    bharosa.authentipad.keypad.german.keyset.row7.enum.key6.value=\u00D2
    bharosa.authentipad.keypad.german.keyset.row7.enum.key6.shiftvalue=\u00D2
    bharosa.authentipad.keypad.german.keyset.row7.enum.key6.image=kp_v01_00D2.png
    bharosa.authentipad.keypad.german.keyset.row7.enum.key6.order=6
     
    bharosa.authentipad.keypad.german.keyset.row7.enum.key7=6
    bharosa.authentipad.keypad.german.keyset.row7.enum.key7.name=\u00D3
    bharosa.authentipad.keypad.german.keyset.row7.enum.key7.description=\u00D3
    bharosa.authentipad.keypad.german.keyset.row7.enum.key7.value=\u00D3
    bharosa.authentipad.keypad.german.keyset.row7.enum.key7.shiftvalue=\u00D3
    bharosa.authentipad.keypad.german.keyset.row7.enum.key7.image=kp_v01_00D3.png
    bharosa.authentipad.keypad.german.keyset.row7.enum.key7.order=7
     
    bharosa.authentipad.keypad.german.keyset.row7.enum.key8=7
    bharosa.authentipad.keypad.german.keyset.row7.enum.key8.name=\u00D4
    bharosa.authentipad.keypad.german.keyset.row7.enum.key8.description=\u00D4
    bharosa.authentipad.keypad.german.keyset.row7.enum.key8.value=\u00D4
    bharosa.authentipad.keypad.german.keyset.row7.enum.key8.shiftvalue=\u00D4
    bharosa.authentipad.keypad.german.keyset.row7.enum.key8.image=kp_v01_00D4.png
    bharosa.authentipad.keypad.german.keyset.row7.enum.key8.order=8
     
    bharosa.authentipad.keypad.german.keyset.row7.enum.key9=8
    bharosa.authentipad.keypad.german.keyset.row7.enum.key9.name=\u00D5
    bharosa.authentipad.keypad.german.keyset.row7.enum.key9.description=\u00D5
    bharosa.authentipad.keypad.german.keyset.row7.enum.key9.value=\u00D5
    bharosa.authentipad.keypad.german.keyset.row7.enum.key9.shiftvalue=\u00D5
    bharosa.authentipad.keypad.german.keyset.row7.enum.key9.image=kp_v01_00D5.png
    bharosa.authentipad.keypad.german.keyset.row7.enum.key9.order=9
     
    bharosa.authentipad.keypad.german.keyset.row7.enum.key10=9
    bharosa.authentipad.keypad.german.keyset.row7.enum.key10.name=\u00D6
    bharosa.authentipad.keypad.german.keyset.row7.enum.key10.description=\u00D6
    bharosa.authentipad.keypad.german.keyset.row7.enum.key10.value=\u00D6
    bharosa.authentipad.keypad.german.keyset.row7.enum.key10.shiftvalue=\u00D6
    bharosa.authentipad.keypad.german.keyset.row7.enum.key10.image=kp_v01_00D6.png
    bharosa.authentipad.keypad.german.keyset.row7.enum.key10.order=10
                                                                      
    bharosa.authentipad.keypad.german.keyset.row7.enum.key11=10
    bharosa.authentipad.keypad.german.keyset.row7.enum.key11.name=\u00D7
    bharosa.authentipad.keypad.german.keyset.row7.enum.key11.description=\u00D7
    bharosa.authentipad.keypad.german.keyset.row7.enum.key11.value=\u00D7
    bharosa.authentipad.keypad.german.keyset.row7.enum.key11.shiftvalue=\u00D7
    bharosa.authentipad.keypad.german.keyset.row7.enum.key11.image=kp_v01_00D7.png
    bharosa.authentipad.keypad.german.keyset.row7.enum.key11.order=11
     
    bharosa.authentipad.keypad.german.keyset.row7.enum.key12=11
    bharosa.authentipad.keypad.german.keyset.row7.enum.key12.name=\u00D8
    bharosa.authentipad.keypad.german.keyset.row7.enum.key12.description=\u00D8
    bharosa.authentipad.keypad.german.keyset.row7.enum.key12.value=\u00D8
    bharosa.authentipad.keypad.german.keyset.row7.enum.key12.shiftvalue=\u00D8
    bharosa.authentipad.keypad.german.keyset.row7.enum.key12.image=kp_v01_00D8.png
    bharosa.authentipad.keypad.german.keyset.row7.enum.key12.order=12
     
    bharosa.authentipad.keypad.german.keyset.row7.enum.key13=12
    bharosa.authentipad.keypad.german.keyset.row7.enum.key13.name=\u00D9
    bharosa.authentipad.keypad.german.keyset.row7.enum.key13.description=\u00D9
    bharosa.authentipad.keypad.german.keyset.row7.enum.key13.value=\u00D9
    bharosa.authentipad.keypad.german.keyset.row7.enum.key13.shiftvalue=\u00D9
    bharosa.authentipad.keypad.german.keyset.row7.enum.key13.image=kp_v01_00D9.png
    bharosa.authentipad.keypad.german.keyset.row7.enum.key13.order=13
     
     
     
     
    bharosa.authentipad.keypad.german.keyset.row8.enum=German KeyPad Keyset Row8
    bharosa.authentipad.keypad.german.keyset.row8.enum.key1=0
    bharosa.authentipad.keypad.german.keyset.row8.enum.key1.name=\u00DA
    bharosa.authentipad.keypad.german.keyset.row8.enum.key1.description=\u00DA
    bharosa.authentipad.keypad.german.keyset.row8.enum.key1.value=\u00DA
    bharosa.authentipad.keypad.german.keyset.row8.enum.key1.shiftvalue=\u00DA
    bharosa.authentipad.keypad.german.keyset.row8.enum.key1.image=kp_v01_00DA.png
    bharosa.authentipad.keypad.german.keyset.row8.enum.key1.order=1
     
    bharosa.authentipad.keypad.german.keyset.row8.enum.key2=1
    bharosa.authentipad.keypad.german.keyset.row8.enum.key2.name=\u00DB
    bharosa.authentipad.keypad.german.keyset.row8.enum.key2.description=\u00DB
    bharosa.authentipad.keypad.german.keyset.row8.enum.key2.value=\u00DB
    bharosa.authentipad.keypad.german.keyset.row8.enum.key2.shiftvalue=\u00DB
    bharosa.authentipad.keypad.german.keyset.row8.enum.key2.image=kp_v01_00DB.png
    bharosa.authentipad.keypad.german.keyset.row8.enum.key2.order=2
     
    bharosa.authentipad.keypad.german.keyset.row8.enum.key3=2
    bharosa.authentipad.keypad.german.keyset.row8.enum.key3.name=\u00DC
    bharosa.authentipad.keypad.german.keyset.row8.enum.key3.description=\u00DC
    bharosa.authentipad.keypad.german.keyset.row8.enum.key3.value=\u00DC
    bharosa.authentipad.keypad.german.keyset.row8.enum.key3.shiftvalue=\u00DC
    bharosa.authentipad.keypad.german.keyset.row8.enum.key3.image=kp_v01_00DC.png
    bharosa.authentipad.keypad.german.keyset.row8.enum.key3.order=3
     
    bharosa.authentipad.keypad.german.keyset.row8.enum.key4=3
    bharosa.authentipad.keypad.german.keyset.row8.enum.key4.name=\u00DD
    bharosa.authentipad.keypad.german.keyset.row8.enum.key4.description=\u00DD
    bharosa.authentipad.keypad.german.keyset.row8.enum.key4.value=\u00DD
    bharosa.authentipad.keypad.german.keyset.row8.enum.key4.shiftvalue=\u00DD
    bharosa.authentipad.keypad.german.keyset.row8.enum.key4.image=kp_v01_00DD.png
    bharosa.authentipad.keypad.german.keyset.row8.enum.key4.order=4
     
    bharosa.authentipad.keypad.german.keyset.row8.enum.key5=4
    bharosa.authentipad.keypad.german.keyset.row8.enum.key5.name=\u00DE
    bharosa.authentipad.keypad.german.keyset.row8.enum.key5.description=\u00DE
    bharosa.authentipad.keypad.german.keyset.row8.enum.key5.value=\u00DE
    bharosa.authentipad.keypad.german.keyset.row8.enum.key5.shiftvalue=\u00DE
    bharosa.authentipad.keypad.german.keyset.row8.enum.key5.image=kp_v01_00DE.png
    bharosa.authentipad.keypad.german.keyset.row8.enum.key5.order=5
     
    bharosa.authentipad.keypad.german.keyset.row8.enum.key6=5
    bharosa.authentipad.keypad.german.keyset.row8.enum.key6.name=\u00DF
    bharosa.authentipad.keypad.german.keyset.row8.enum.key6.description=\u00DF
    bharosa.authentipad.keypad.german.keyset.row8.enum.key6.value=\u00DF
    bharosa.authentipad.keypad.german.keyset.row8.enum.key6.shiftvalue=\u00DF
    bharosa.authentipad.keypad.german.keyset.row8.enum.key6.image=kp_v01_00DF.png
    bharosa.authentipad.keypad.german.keyset.row8.enum.key6.order=6
     
    bharosa.authentipad.keypad.german.keyset.row8.enum.key7=6
    bharosa.authentipad.keypad.german.keyset.row8.enum.key7.name=\u00E0
    bharosa.authentipad.keypad.german.keyset.row8.enum.key7.description=\u00E0
    bharosa.authentipad.keypad.german.keyset.row8.enum.key7.value=\u00E0
    bharosa.authentipad.keypad.german.keyset.row8.enum.key7.shiftvalue=\u00E0
    bharosa.authentipad.keypad.german.keyset.row8.enum.key7.image=kp_v01_00E0.png
    bharosa.authentipad.keypad.german.keyset.row8.enum.key7.order=7
     
    bharosa.authentipad.keypad.german.keyset.row8.enum.key8=7
    bharosa.authentipad.keypad.german.keyset.row8.enum.key8.name=\u00E1
    bharosa.authentipad.keypad.german.keyset.row8.enum.key8.description=\u00E1
    bharosa.authentipad.keypad.german.keyset.row8.enum.key8.value=\u00E1
    bharosa.authentipad.keypad.german.keyset.row8.enum.key8.shiftvalue=\u00E1
    bharosa.authentipad.keypad.german.keyset.row8.enum.key8.image=kp_v01_00E1.png
    bharosa.authentipad.keypad.german.keyset.row8.enum.key8.order=8
     
    bharosa.authentipad.keypad.german.keyset.row8.enum.key9=8
    bharosa.authentipad.keypad.german.keyset.row8.enum.key9.name=\u00E2
    bharosa.authentipad.keypad.german.keyset.row8.enum.key9.description=\u00E2
    bharosa.authentipad.keypad.german.keyset.row8.enum.key9.value=\u00E2
    bharosa.authentipad.keypad.german.keyset.row8.enum.key9.shiftvalue=\u00E2
    bharosa.authentipad.keypad.german.keyset.row8.enum.key9.image=kp_v01_00E2.png
    bharosa.authentipad.keypad.german.keyset.row8.enum.key9.order=9
     
    bharosa.authentipad.keypad.german.keyset.row8.enum.key10=9
    bharosa.authentipad.keypad.german.keyset.row8.enum.key10.name=\u00E3
    bharosa.authentipad.keypad.german.keyset.row8.enum.key10.description=\u00E3
    bharosa.authentipad.keypad.german.keyset.row8.enum.key10.value=\u00E3
    bharosa.authentipad.keypad.german.keyset.row8.enum.key10.shiftvalue=\u00E3
    bharosa.authentipad.keypad.german.keyset.row8.enum.key10.image=kp_v01_00E3.png
    bharosa.authentipad.keypad.german.keyset.row8.enum.key10.order=10
                                                                      
    bharosa.authentipad.keypad.german.keyset.row8.enum.key11=10
    bharosa.authentipad.keypad.german.keyset.row8.enum.key11.name=\u00E4
    bharosa.authentipad.keypad.german.keyset.row8.enum.key11.description=\u00E4
    bharosa.authentipad.keypad.german.keyset.row8.enum.key11.value=\u00E4
    bharosa.authentipad.keypad.german.keyset.row8.enum.key11.shiftvalue=\u00E4
    bharosa.authentipad.keypad.german.keyset.row8.enum.key11.image=kp_v01_00E4.png
    bharosa.authentipad.keypad.german.keyset.row8.enum.key11.order=11
     
    bharosa.authentipad.keypad.german.keyset.row8.enum.key12=11
    bharosa.authentipad.keypad.german.keyset.row8.enum.key12.name=\u00E5
    bharosa.authentipad.keypad.german.keyset.row8.enum.key12.description=\u00E5
    bharosa.authentipad.keypad.german.keyset.row8.enum.key12.value=\u00E5
    bharosa.authentipad.keypad.german.keyset.row8.enum.key12.shiftvalue=\u00E5
    bharosa.authentipad.keypad.german.keyset.row8.enum.key12.image=kp_v01_00E5.png
    bharosa.authentipad.keypad.german.keyset.row8.enum.key12.order=12
     
    bharosa.authentipad.keypad.german.keyset.row8.enum.key13=12
    bharosa.authentipad.keypad.german.keyset.row8.enum.key13.name=\u00E6
    bharosa.authentipad.keypad.german.keyset.row8.enum.key13.description=\u00E6
    bharosa.authentipad.keypad.german.keyset.row8.enum.key13.value=\u00E6
    bharosa.authentipad.keypad.german.keyset.row8.enum.key13.shiftvalue=\u00E6
    bharosa.authentipad.keypad.german.keyset.row8.enum.key13.image=kp_v01_00E6.png
    bharosa.authentipad.keypad.german.keyset.row8.enum.key13.order=13
     
     
     
    bharosa.authentipad.keypad.german.keyset.row9.enum=German KeyPad Keyset row9
    bharosa.authentipad.keypad.german.keyset.row9.enum.key1=0
    bharosa.authentipad.keypad.german.keyset.row9.enum.key1.name=\u00E7
    bharosa.authentipad.keypad.german.keyset.row9.enum.key1.description=\u00E7
    bharosa.authentipad.keypad.german.keyset.row9.enum.key1.value=\u00E7
    bharosa.authentipad.keypad.german.keyset.row9.enum.key1.shiftvalue=\u00E7
    bharosa.authentipad.keypad.german.keyset.row9.enum.key1.image=kp_v01_00E7.png
    bharosa.authentipad.keypad.german.keyset.row9.enum.key1.order=1
     
    bharosa.authentipad.keypad.german.keyset.row9.enum.key2=1
    bharosa.authentipad.keypad.german.keyset.row9.enum.key2.name=\u00E8
    bharosa.authentipad.keypad.german.keyset.row9.enum.key2.description=\u00E8
    bharosa.authentipad.keypad.german.keyset.row9.enum.key2.value=\u00E8
    bharosa.authentipad.keypad.german.keyset.row9.enum.key2.shiftvalue=\u00E8
    bharosa.authentipad.keypad.german.keyset.row9.enum.key2.image=kp_v01_00E8.png
    bharosa.authentipad.keypad.german.keyset.row9.enum.key2.order=2
     
    bharosa.authentipad.keypad.german.keyset.row9.enum.key3=2
    bharosa.authentipad.keypad.german.keyset.row9.enum.key3.name=\u00E9
    bharosa.authentipad.keypad.german.keyset.row9.enum.key3.description=\u00E9
    bharosa.authentipad.keypad.german.keyset.row9.enum.key3.value=\u00E9
    bharosa.authentipad.keypad.german.keyset.row9.enum.key3.shiftvalue=\u00E9
    bharosa.authentipad.keypad.german.keyset.row9.enum.key3.image=kp_v01_00E9.png
    bharosa.authentipad.keypad.german.keyset.row9.enum.key3.order=3
     
    bharosa.authentipad.keypad.german.keyset.row9.enum.key4=3
    bharosa.authentipad.keypad.german.keyset.row9.enum.key4.name=\u00EA
    bharosa.authentipad.keypad.german.keyset.row9.enum.key4.description=\u00EA
    bharosa.authentipad.keypad.german.keyset.row9.enum.key4.value=\u00EA
    bharosa.authentipad.keypad.german.keyset.row9.enum.key4.shiftvalue=\u00EA
    bharosa.authentipad.keypad.german.keyset.row9.enum.key4.image=kp_v01_00EA.png
    bharosa.authentipad.keypad.german.keyset.row9.enum.key4.order=4
     
    bharosa.authentipad.keypad.german.keyset.row9.enum.key5=4
    bharosa.authentipad.keypad.german.keyset.row9.enum.key5.name=\u00EB
    bharosa.authentipad.keypad.german.keyset.row9.enum.key5.description=\u00EB
    bharosa.authentipad.keypad.german.keyset.row9.enum.key5.value=\u00EB
    bharosa.authentipad.keypad.german.keyset.row9.enum.key5.shiftvalue=\u00EB
    bharosa.authentipad.keypad.german.keyset.row9.enum.key5.image=kp_v01_00EB.png
    bharosa.authentipad.keypad.german.keyset.row9.enum.key5.order=5
     
    bharosa.authentipad.keypad.german.keyset.row9.enum.key6=5
    bharosa.authentipad.keypad.german.keyset.row9.enum.key6.name=\u00EC
    bharosa.authentipad.keypad.german.keyset.row9.enum.key6.description=\u00EC
    bharosa.authentipad.keypad.german.keyset.row9.enum.key6.value=\u00EC
    bharosa.authentipad.keypad.german.keyset.row9.enum.key6.shiftvalue=\u00EC
    bharosa.authentipad.keypad.german.keyset.row9.enum.key6.image=kp_v01_00EC.png
    bharosa.authentipad.keypad.german.keyset.row9.enum.key6.order=6
     
    bharosa.authentipad.keypad.german.keyset.row9.enum.key7=6
    bharosa.authentipad.keypad.german.keyset.row9.enum.key7.name=\u00ED
    bharosa.authentipad.keypad.german.keyset.row9.enum.key7.description=\u00ED
    bharosa.authentipad.keypad.german.keyset.row9.enum.key7.value=\u00ED
    bharosa.authentipad.keypad.german.keyset.row9.enum.key7.shiftvalue=\u00ED
    bharosa.authentipad.keypad.german.keyset.row9.enum.key7.image=kp_v01_00ED.png
    bharosa.authentipad.keypad.german.keyset.row9.enum.key7.order=7
     
    bharosa.authentipad.keypad.german.keyset.row9.enum.key8=7
    bharosa.authentipad.keypad.german.keyset.row9.enum.key8.name=\u00EE
    bharosa.authentipad.keypad.german.keyset.row9.enum.key8.description=\u00EE
    bharosa.authentipad.keypad.german.keyset.row9.enum.key8.value=\u00EE
    bharosa.authentipad.keypad.german.keyset.row9.enum.key8.shiftvalue=\u00EE
    bharosa.authentipad.keypad.german.keyset.row9.enum.key8.image=kp_v01_00EE.png
    bharosa.authentipad.keypad.german.keyset.row9.enum.key8.order=8
     
    bharosa.authentipad.keypad.german.keyset.row9.enum.key9=8
    bharosa.authentipad.keypad.german.keyset.row9.enum.key9.name=\u00EF
    bharosa.authentipad.keypad.german.keyset.row9.enum.key9.description=\u00EF
    bharosa.authentipad.keypad.german.keyset.row9.enum.key9.value=\u00EF
    bharosa.authentipad.keypad.german.keyset.row9.enum.key9.shiftvalue=\u00EF
    bharosa.authentipad.keypad.german.keyset.row9.enum.key9.image=kp_v01_00EF.png
    bharosa.authentipad.keypad.german.keyset.row9.enum.key9.order=9
     
    bharosa.authentipad.keypad.german.keyset.row9.enum.key10=9
    bharosa.authentipad.keypad.german.keyset.row9.enum.key10.name=\u00F0
    bharosa.authentipad.keypad.german.keyset.row9.enum.key10.description=\u00F0
    bharosa.authentipad.keypad.german.keyset.row9.enum.key10.value=\u00F0
    bharosa.authentipad.keypad.german.keyset.row9.enum.key10.shiftvalue=\u00F0
    bharosa.authentipad.keypad.german.keyset.row9.enum.key10.image=kp_v01_00F0.png
    bharosa.authentipad.keypad.german.keyset.row9.enum.key10.order=10
                                                                      
    bharosa.authentipad.keypad.german.keyset.row9.enum.key11=10
    bharosa.authentipad.keypad.german.keyset.row9.enum.key11.name=\u00F1
    bharosa.authentipad.keypad.german.keyset.row9.enum.key11.description=\u00F1
    bharosa.authentipad.keypad.german.keyset.row9.enum.key11.value=\u00F1
    bharosa.authentipad.keypad.german.keyset.row9.enum.key11.shiftvalue=\u00F1
    bharosa.authentipad.keypad.german.keyset.row9.enum.key11.image=kp_v01_00F1.png
    bharosa.authentipad.keypad.german.keyset.row9.enum.key11.order=11
     
    bharosa.authentipad.keypad.german.keyset.row9.enum.key12=11
    bharosa.authentipad.keypad.german.keyset.row9.enum.key12.name=\u00F2
    bharosa.authentipad.keypad.german.keyset.row9.enum.key12.description=\u00F2
    bharosa.authentipad.keypad.german.keyset.row9.enum.key12.value=\u00F2
    bharosa.authentipad.keypad.german.keyset.row9.enum.key12.shiftvalue=\u00F2
    bharosa.authentipad.keypad.german.keyset.row9.enum.key12.image=kp_v01_00F2.png
    bharosa.authentipad.keypad.german.keyset.row9.enum.key12.order=12
     
    bharosa.authentipad.keypad.german.keyset.row9.enum.key13=12
    bharosa.authentipad.keypad.german.keyset.row9.enum.key13.name=\u00F3
    bharosa.authentipad.keypad.german.keyset.row9.enum.key13.description=\u00F3
    bharosa.authentipad.keypad.german.keyset.row9.enum.key13.value=\u00F3
    bharosa.authentipad.keypad.german.keyset.row9.enum.key13.shiftvalue=\u00F3
    bharosa.authentipad.keypad.german.keyset.row9.enum.key13.image=kp_v01_00F3.png
    bharosa.authentipad.keypad.german.keyset.row9.enum.key13.order=13
     
     
     
    bharosa.authentipad.keypad.german.keyset.row10.enum=German KeyPad Keyset row10
    bharosa.authentipad.keypad.german.keyset.row10.enum.key1=0
    bharosa.authentipad.keypad.german.keyset.row10.enum.key1.name=\u00F4
    bharosa.authentipad.keypad.german.keyset.row10.enum.key1.description=\u00F4
    bharosa.authentipad.keypad.german.keyset.row10.enum.key1.value=\u00F4
    bharosa.authentipad.keypad.german.keyset.row10.enum.key1.shiftvalue=\u00F4
    bharosa.authentipad.keypad.german.keyset.row10.enum.key1.image=kp_v01_00F4.png
    bharosa.authentipad.keypad.german.keyset.row10.enum.key1.order=1
     
    bharosa.authentipad.keypad.german.keyset.row10.enum.key2=1
    bharosa.authentipad.keypad.german.keyset.row10.enum.key2.name=\u00F5
    bharosa.authentipad.keypad.german.keyset.row10.enum.key2.description=\u00F5
    bharosa.authentipad.keypad.german.keyset.row10.enum.key2.value=\u00EF5
    bharosa.authentipad.keypad.german.keyset.row10.enum.key2.shiftvalue=\u00F5
    bharosa.authentipad.keypad.german.keyset.row10.enum.key2.image=kp_v01_00F5.png
    bharosa.authentipad.keypad.german.keyset.row10.enum.key2.order=2
     
    bharosa.authentipad.keypad.german.keyset.row10.enum.key3=2
    bharosa.authentipad.keypad.german.keyset.row10.enum.key3.name=\u00F6
    bharosa.authentipad.keypad.german.keyset.row10.enum.key3.description=\u00F6
    bharosa.authentipad.keypad.german.keyset.row10.enum.key3.value=\u00F6
    bharosa.authentipad.keypad.german.keyset.row10.enum.key3.shiftvalue=\u00F6
    bharosa.authentipad.keypad.german.keyset.row10.enum.key3.image=kp_v01_00F6.png
    bharosa.authentipad.keypad.german.keyset.row10.enum.key3.order=3
     
    bharosa.authentipad.keypad.german.keyset.row10.enum.key4=3
    bharosa.authentipad.keypad.german.keyset.row10.enum.key4.name=\u00F7
    bharosa.authentipad.keypad.german.keyset.row10.enum.key4.description=\u00F7
    bharosa.authentipad.keypad.german.keyset.row10.enum.key4.value=\u00F7
    bharosa.authentipad.keypad.german.keyset.row10.enum.key4.shiftvalue=\u00F7
    bharosa.authentipad.keypad.german.keyset.row10.enum.key4.image=kp_v01_00F7.png
    bharosa.authentipad.keypad.german.keyset.row10.enum.key4.order=4
     
    bharosa.authentipad.keypad.german.keyset.row10.enum.key5=4
    bharosa.authentipad.keypad.german.keyset.row10.enum.key5.name=\u00F8
    bharosa.authentipad.keypad.german.keyset.row10.enum.key5.description=\u00F8
    bharosa.authentipad.keypad.german.keyset.row10.enum.key5.value=\u00F8
    bharosa.authentipad.keypad.german.keyset.row10.enum.key5.shiftvalue=\u00F8
    bharosa.authentipad.keypad.german.keyset.row10.enum.key5.image=kp_v01_00F8.png
    bharosa.authentipad.keypad.german.keyset.row10.enum.key5.order=5
     
    bharosa.authentipad.keypad.german.keyset.row10.enum.key6=5
    bharosa.authentipad.keypad.german.keyset.row10.enum.key6.name=\u00F9
    bharosa.authentipad.keypad.german.keyset.row10.enum.key6.description=\u00F9
    bharosa.authentipad.keypad.german.keyset.row10.enum.key6.value=\u00F9
    bharosa.authentipad.keypad.german.keyset.row10.enum.key6.shiftvalue=\u00F9
    bharosa.authentipad.keypad.german.keyset.row10.enum.key6.image=kp_v01_00F9.png
    bharosa.authentipad.keypad.german.keyset.row10.enum.key6.order=6
     
    bharosa.authentipad.keypad.german.keyset.row10.enum.key7=6
    bharosa.authentipad.keypad.german.keyset.row10.enum.key7.name=\u00FA
    bharosa.authentipad.keypad.german.keyset.row10.enum.key7.description=\u00FA
    bharosa.authentipad.keypad.german.keyset.row10.enum.key7.value=\u00FA
    bharosa.authentipad.keypad.german.keyset.row10.enum.key7.shiftvalue=\u00FA
    bharosa.authentipad.keypad.german.keyset.row10.enum.key7.image=kp_v01_00FA.png
    bharosa.authentipad.keypad.german.keyset.row10.enum.key7.order=7
     
    bharosa.authentipad.keypad.german.keyset.row10.enum.key8=7
    bharosa.authentipad.keypad.german.keyset.row10.enum.key8.name=\u00FB
    bharosa.authentipad.keypad.german.keyset.row10.enum.key8.description=\u00FB
    bharosa.authentipad.keypad.german.keyset.row10.enum.key8.value=\u00FB
    bharosa.authentipad.keypad.german.keyset.row10.enum.key8.shiftvalue=\u00FB
    bharosa.authentipad.keypad.german.keyset.row10.enum.key8.image=kp_v01_00FB.png
    bharosa.authentipad.keypad.german.keyset.row10.enum.key8.order=8
     
    bharosa.authentipad.keypad.german.keyset.row10.enum.key9=8
    bharosa.authentipad.keypad.german.keyset.row10.enum.key9.name=\u00FC
    bharosa.authentipad.keypad.german.keyset.row10.enum.key9.description=\u00FC
    bharosa.authentipad.keypad.german.keyset.row10.enum.key9.value=\u00FC
    bharosa.authentipad.keypad.german.keyset.row10.enum.key9.shiftvalue=\u00FC
    bharosa.authentipad.keypad.german.keyset.row10.enum.key9.image=kp_v01_00FC.png
    bharosa.authentipad.keypad.german.keyset.row10.enum.key9.order=9
     
    bharosa.authentipad.keypad.german.keyset.row10.enum.key10=9
    bharosa.authentipad.keypad.german.keyset.row10.enum.key10.name=\u00FD
    bharosa.authentipad.keypad.german.keyset.row10.enum.key10.description=\u00FD
    bharosa.authentipad.keypad.german.keyset.row10.enum.key10.value=\u00FD
    bharosa.authentipad.keypad.german.keyset.row10.enum.key10.shiftvalue=\u00FD
    bharosa.authentipad.keypad.german.keyset.row10.enum.key10.image=kp_v01_00FD.png
    bharosa.authentipad.keypad.german.keyset.row10.enum.key10.order=10
                                                                      
    bharosa.authentipad.keypad.german.keyset.row10.enum.key11=10
    bharosa.authentipad.keypad.german.keyset.row10.enum.key11.name=\u00FE
    bharosa.authentipad.keypad.german.keyset.row10.enum.key11.description=\u00FE
    bharosa.authentipad.keypad.german.keyset.row10.enum.key11.value=\u00FE
    bharosa.authentipad.keypad.german.keyset.row10.enum.key11.shiftvalue=\u00FE
    bharosa.authentipad.keypad.german.keyset.row10.enum.key11.image=kp_v01_00FE.png
    bharosa.authentipad.keypad.german.keyset.row10.enum.key11.order=11
     
    bharosa.authentipad.keypad.german.keyset.row10.enum.key12=11
    bharosa.authentipad.keypad.german.keyset.row10.enum.key12.name=\u00FF
    bharosa.authentipad.keypad.german.keyset.row10.enum.key12.description=\u00FF
    bharosa.authentipad.keypad.german.keyset.row10.enum.key12.value=\u00FF
    bharosa.authentipad.keypad.german.keyset.row10.enum.key12.shiftvalue=\u00FF
    bharosa.authentipad.keypad.german.keyset.row10.enum.key12.image=kp_v01_00FF.png
    bharosa.authentipad.keypad.german.keyset.row10.enum.key12.order=12
     
    bharosa.authentipad.keypad.german.keyset.row10.enum.key13=12
    bharosa.authentipad.keypad.german.keyset.row10.enum.key13.name=\u00FF
    bharosa.authentipad.keypad.german.keyset.row10.enum.key13.description=\u00FF
    bharosa.authentipad.keypad.german.keyset.row10.enum.key13.value=\u00FF
    bharosa.authentipad.keypad.german.keyset.row10.enum.key13.shiftvalue=\u00FF
    bharosa.authentipad.keypad.german.keyset.row10.enum.key13.image=kp_v01_00FF.png
    bharosa.authentipad.keypad.german.keyset.row10.enum.key13.order=13
    
  5. Add frame and key image files to following directories:

    • Key Image Files: <temp-folder>/WEB-INF/classes/bharosa_properties/alphapad_skins_de.

    • Frame Image Files: <temp-folder>//WEB-INF/classes/bharosa_properties/alphapad_bg.

  6. Repackage the WAR file using the command:

    jar -cvfm oracle.oaam.extensions.war <temp-folder>/META-INF/MANIFEST.MF -C <temp-folder> .
    

    Note:

    Make sure original MANIFEST.MF remains same as that contains shared library information.

  7. Re-deploy the updated oracle.oaam.extensions.war as a shared library with targets as oaam_server and oaam_admin

  8. Restart OAAM Servers and validate your changes by accessing application with browser set to German locale.

20.9 Changing the Limit of Characters for Passwords

To change the character limit for passwords entered in to OAAM server, update the value for the following property in the oaam_cli.properties file:

bharosa.authentipad.textpad.datafield.maxLength

For existing Access Manager and OAAM integration deployments, the value for the property can be updated using the OAAM Administration Console or shared library.

20.10 Scenario

A key-logger is software or hardware aimed at stealing any sensitive credentials you enter on your keyboard. The best way to thwart a key-logger is to use another input method for sensitive information. In addition to removing keyboard input from the equation KeyPad also defends against any attacks aiming to steal the data by using a unique data send every session. XY locations are sent rather than the actual data. Thanks to "jitter" the same data will equal a different set of XY coordinates every time the KeyPad is used.

Social engineering attacks are very hard to combat. Personalization consists of a personal background image and phrase. The timestamp is generated by the server and embedded in the single use image to prevent reuse. Each Authenticator interface is a single JPEG image served up to the end user for a single use. There is no intelligence to be compromised on the client side.

You could secure a web application without relying on the dependability of the password. You can use all other data present when a user makes an access request to evaluate how risky the situation is. As well, you can issue additional credentials for use only in high-risk situations.