9 Customizing Virtual Authentication Devices

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:

9.1 About Virtual Authentication Devices

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.

9.1.1 Virtual Authentication Device Terminology

This section defines terms used in this chapter.

Table 9-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.


9.1.2 Virtual Authentication Device 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 9-1 Personalization

Description of Figure 9-1 follows
Description of "Figure 9-1 Personalization"

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.

9.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 9-2.

9.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 9-3.

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 9-4.

9.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 9-5.

9.2 Virtual Authentication Device Composition

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

Figure 9-6 Virtual Authentication Device Composition

Description of Figure 9-6 follows
Description of "Figure 9-6 Virtual Authentication Device Composition"

Table 9-2 describes each element in the composition.

Table 9-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.


9.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.

9.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).

9.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.

9.4 Customizing Elements of the Authenticator

Specific elements of the Authenticator interfaces may be customized. Any and all alterations is considered custom development.

9.4.1 Adding Personalized Image

A set of sample background images are shipped with Oracle Adaptive Access Manager. There are 8,423 personalization images for each virtual authentication device. These images are for use in the virtual authentication devices only. For security reasons they should never be available to end users outside the context of the virtual authentication devices. The content, file sizes, and other attributes were optimized for a broad range of user populations and fast download speed. The sample phrase text for each supported language is provided with the package. Any and all alterations to these images or text is considered custom development. If 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. Some issues to be careful of are text, hot spot, and key sizes. It is not recommended that these be made smaller than the provided samples. Also, there must be an identically named version of each image for each virtual authentication device used in your deployment.

Table 9-3 lists the default image property for the virtual authentication devices.

Table 9-3 Default Images for Personalization

Element Property

Default TextPad background graphic

(Can be application specific)

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

Default PinPad background graphic

(Can be application specific)

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

Default QuestionPad background graphic

(Can be application specific)

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

Default KeyPad background graphic

(Can be application specific)

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


Develop Custom Background Images

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.

Add Images to the Correct Directories

Add custom pad related images to oaam_extensions\WEB-INF\classes\bharosa_properties.

If the image exists in the OAAM installation, such as the no logo frame, you do not have to move it to this folder. Only if you are adding a custom file would you need to add it to this folder.

Add Location of Images to client_resource_locale.properties

For the custom background images to display in the VAD, you must add the location of the images to client_resource_locale.properties inside of an OAAM Extension library:

vcrypt.user.image.dirlist.property.name=bharosa.image.dirlist
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

The default value is: ${oracle.oaam.home}/oaam_images.

Add Image Properties to client_resource_locale.properties

The default values for the images are located in the oaam_custom.properties file. To overwrite, the default values, you must add the properties to client_resource_locale.properties inside of an OAAM Extension library. For example:

bharosa.uio.default.DeviceTextPad.default.image = textpad_bg/BG_003.jpg

Save the file in the oaam_extensions\WEB-INF\classes folder.

9.4.2 Changing Authenticator 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.

The frame and key samples are provided in English only. Master files for the virtual authentication device frames and keys along with descriptions of the parts are provided on request. You may create your own custom frame and key images and deploy them using product documentation, but any and all alterations to these images or the properties that correspond to them are considered custom development.

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

Note:

If the default value is in a "resource" file, you must specify the override value in client_resource.properties.

9.4.2.1 TextPad Authenticator Frame Properties

Table 9-1 lists the TextPad Authenticator Properties

Table 9-4 TextPad Authenticator Properties

Feature Property

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)

This property applies to the registration page.

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

User Preferences Frame File

(Can be application specific)

This property applies to the self-service user preferences page.

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


9.4.2.2 PinPad Authenticator Frame Properties

Table 9-1 lists the PinPad Authenticator Properties

Table 9-5 PinPad Authenticator Properties

Feature Property

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


9.4.2.3 QuestionPad Authenticator Frame Properties

Table 9-1 lists the QuestionPad Authenticator Properties

Table 9-6 QuestionPad Authenticator Properties

Feature Property

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)


9.4.2.4 KeyPad Authenticator Frame Properties

Table 9-1 lists the KeyPad Authenticator Properties

Table 9-7 KeyPad Authenticator Properties

Feature Property

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: challengeType 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


9.4.3 Changing Position, Dimensions, and Color for Enter Key, Personalized Phrase, and Time Stamp

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

Table 9-8 Unique Security Features

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


9.4.3.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

9.4.3.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=<
bharosa.authentipad.pinpad.backspace.enable=true

9.4.3.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.

9.4.3.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

9.4.3.5 Configuring Text Size for Apple iPhone

To change the TextPad password and QuestionPad answer font size so that it is optimal for the Apple iPhone, add the properties to the client_resource.properties file:

bharosa.authentipad.textpad.datafield.font.size=12
bharosa.authentipad.questionpad.datafield.font.size=12

9.4.4 Changing Keys Sets

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 9-9 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 9-10 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.


9.4.5 Simple Configuration Example

An example is provided for developing an authenticator.

9.4.5.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 these properties with values to the oaam_custom.properties file.

The frame itself must have some elements, such as:

  • Password entry.

  • Enter or Login button.

  • A space for the personalized phrase.

  • A space for the timestamp.

  • 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.

9.4.5.2 Positioning the Elements

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

9.5 Customization Steps

The process is as follows:

  1. Create a work folder called oaam_extensions.

    The folder can be created anywhere if it is outside the installation folder.

  2. Extract the oracle.oaam.extensions.war file into the work folder.

    In the oaam_extensions folder, you should see the following subfolders:

    • META-INF

    • WEB-INF

    • WEB-INF\lib

    • WEB-INF\classes

  3. Add custom properties to a file named oaam_custom.properties and save it to the oaam_extensions\WEB-INF\classes directory.

    If your oaam_custom.properties is saved in the oaam_extensions\WEB-INF\classes\bharosa_properties, you can leave it in that location. You can use either location.

  4. Add custom resource bundle values to a file named client_resource_locale.properties (where locale is replaced with relevant locale, such as "en") and save it in the oaam_extensions\WEB-INF\classes folder.

    User facing text is also considered resource bundle values and you should add these to the file. There are some additional items in OAAM Server such as image paths and regular expression properties that can be customized based on locale as well.

    For example, bharosa.uio.default.register.DeviceTextPad.frame=textpad_bg/TP_nologo_frame_01.png and bharosa.uio.default.DeviceTextPad.default.image = textpad_bg/BG_003.jpg can be added to this file.

  5. Add custom pad related images to oaam_extensions\WEB-INF\classes\bharosa_properties.

    If the image exists in the OAAM installation, such as the no logo frame, you do not have to move it to this folder. Only if you are adding a custom file would you need to add it to this folder.

  6. Repackage the OAAM Extensions Shared Library, oracle.oaam.extensions.war, from the parent folder of oaam_extensions using the command:

    jar -cvfm oracle.oaam.extensions.war oaam_extensions/META-INF/MANIFEST.MF -C  oaam_extensions/ .
    

    Note:

    Make sure original MANIFEST.MF remains the same as that contains shared library information.
  7. Stop all managed servers if they are running.

  8. Start the WebLogic Administration Server.

  9. Start the Oracle WebLogic Server where Oracle Adaptive Access Manager is deployed and log in to the Oracle WebLogic Administration Console.

  10. Remove the oracle.oaam.extensions.war currently deployed.

  11. Deploy the new oracle.oaam.extensions.war file as a shared library with oaam_server and oaam_admin as target applications.

    You may need to target oaam_ offline as well if it is deployed in the same domain.

  12. Start all managed servers that are to be used.

  13. Test the custom functionality and make sure files added to oracle.oaam.extensions.war are used by Oracle Adaptive Access Manager applications.

9.6 Displaying Virtual Authentication Devices

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

9.6.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");

9.6.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 9-11 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.


9.6.3 Setting Timestamp and Time Zone

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

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

Table 9-12 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.


9.6.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.

9.7 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 Oracle Adaptive Access Manager out-of-the-box, the property to control the virtual authentication device is

bharosa.uio.default.authentipad.is_ada_compliant

9.8 Adding Randomization and Jitter

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 9-7 Randomization and Jitter

Description of Figure 9-7 follows
Description of "Figure 9-7 Randomization and Jitter"

9.8.1 TextPad Randomization and Jitter Properties

The textpad randomization and jitter properties are shown as follows:

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

9.8.2 KeyPad Randomization and Jitter Properties

The keypad randomization and jitter properties are shown as follows:

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

9.8.3 PinPad Randomization and Jitter Properties

The pinpad randomization and jitter properties are shown as follows:

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

9.8.4 QuestionPad Randomization and Jitter Properties

The questionpad randomization and jitter properties are shown as follows:

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

9.9 Changing the Limit of Characters for Passwords

OAAM accepts a limit of 25 characters for passwords. When users logs in to OAAM server for the first time, and the password they enter is more than 25 bytes, they are returned to the username page with an error that their password is invalid.

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

bharosa.authentipad.textpad.datafield.maxLength

To update the character limit using the OAAM Administration Console, proceed as follows:

  1. Log in to the OAAM Administration Console.

  2. In the left pane, click Environment and double-click Properties. The Properties search page is displayed.

  3. Search for property with the name bharosa.authentipad.textpad.datafield.maxLength and change its value.

  4. In cases where the property does not exist, add a new property with the name bharosa.authentipad.textpad.datafield.maxLength and the value.

For information on using the shared library to update properties, use this chapter as a reference.

9.10 Localizing Virtual Authentication Device in OAAM 11g

This section contains the following topics:

9.10.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.

9.10.2 Modifying KeyPad for the German Locale Example

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

  1. Extract 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 oracle.oaam.extensions.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. 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.

9.11 KeyPad 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.