21 Developing a Virtual Authentication Device

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

Note:

These samples are provided in English only.

This chapter contains the following sections:

21.1 What is a Virtual Authentication Device?

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

21.1.1 Virtual Authentication Device Terminology

This section defines terms used in this chapter.

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


21.1.2 Virtual Authentication Types

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

Figure 21-1 Personalization

KeyPad personalization is shown.

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

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

Figure 21-2 TextPad

This is an illustration of a TextPad

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

Figure 21-3 PinPad

This is an illustration of a PinPad

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

Figure 21-4 KeyPad

This is an illustration of a KeyPad

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

Figure 21-5 QuestionPad

This is an illustration of a QuestionPad

21.1.3 Virtual Authentication Device Configuration Files and Properties

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

21.1.3.1 Files Used in Virtual Authentication Device Configuration

Virtual authentication devices uses the following files:

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

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

Note:

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

21.1.3.2 Virtual Authentication Device Property Construction

Properties are constructed in the following manner.

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

For example:

bharosa.authentipad.textpad.datafield.x=100

The pad type values are:

  • textpad

  • keypad

  • pinpad

  • questionpad

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

21.1.3.3 Randomization and Jitter Properties

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

Figure 21-6 Randomization and Jitter

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

21.2 What Elements of the Authenticator Can Be Customized?

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

21.2.1 Virtual Authentication Device Composition

A virtual authentication device is composed of many elements. Table 21-2 describes each element in the composition.

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


21.2.2 Personalized Image

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

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

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

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

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

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

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

    bharosa.image.dirlist=<absolute_folder_path_where_oaam_images_are_available>
    

    For example:

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

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

21.2.3 Frames

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

The frame may be altered only in the following ways:

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

  • Colors of the buttons on the frame may be altered

  • Branding may be altered

21.2.3.1 TextPad Authenticator Image and Frame Properties

Table 21-1 lists the TextPad Authenticator Properties

Table 21-3 TextPad Authenticator Properties

Feature Property

Default background graphic

(Can be application specific)

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

Password Frame File

(Can be application specific)

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

Challenge Frame File

(Can be application specific)

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

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

Registration Frame File

(Can be application specific)

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

User Preferences Frame File

(Can be application specific)

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


21.2.3.2 PinPad Authenticator Image and Frame Properties

Table 21-1 lists the PinPad Authenticator Properties

Table 21-4 PinPad Authenticator Properties

Feature Property

Default background graphic

(Can be application specific)

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

Password Frame File

(Can be application specific)

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

Challenge Frame File

(Can be application specific)

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

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

Registration Frame File

(Can be application specific)

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

User Preferences Frame File

(Can be application specific)

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


21.2.3.3 QuestionPad Authenticator Image and Frame Properties

Table 21-1 lists the QuestionPad Authenticator Properties

Table 21-5 QuestionPad Authenticator Properties

Feature Property

Default background graphic

(Can be application specific)

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

Challenge Frame File

(Can be application specific)

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

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


21.2.3.4 KeyPad Authenticator Image and Frame Properties

Table 21-1 lists the KeyPad Authenticator Properties

Table 21-6 KeyPad Authenticator Properties

Feature Property

Default background graphic

(Can be application specific)

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

Password Frame File

(Can be application specific)

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

Challenge Frame File

(Can be application specific)

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

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

Registration Frame File (

(Can be application specific)

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

User Preferences Frame File

(Can be application specific)

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


21.2.4 Enter Key, Personalized Phrase, and Time Stamp Positioning

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

Visual Element Description
Enter Key Hotspot The link area which allows user to submit data entered in the authentication device
Phrase The personalized phrase assigned to the user at the time of registration. The phrase allows the user to ensure they are on their intended website
Timestamp The timestamp of when the image was generated, allowing the user to ensure the authentication device is current

21.2.4.1 TextPad Visual Elements

This section provides information on the visual elements of TextPad.

Phrase (Caption)

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

Timestamp

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

Enter Key Hotspot

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

21.2.4.2 PinPad Visual Elements

This section provides information on the visual elements of PinPad.

Phrase (Caption)

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

Timestamp

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

Enter Key Hotspot

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

Backspace Key Hotspot

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

21.2.4.3 QuestionPad Visual Elements

This section provides information on the visual elements of QuestionPad.

Note:

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

Phrase (Caption)

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

Timestamp

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

Question Text

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

Enter Key Hotspot

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

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

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

bharosa.authentipad.questionpad.datafield.input.type

Valid values are text and password.

21.2.4.4 KeyPad Visual Elements

This section provides information on the visual elements of KeyPad.

Phrase (Caption)

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

Timestamp

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

Enter Key Hotspot

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

Backspace Key Hotspot

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

Caps States

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

21.2.5 KeysSets

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

KeySets are defined by a series user defined enums.

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

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

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

Each row is made of the following properties:

Table 21-7 Properties of Rows

Property Description

name

Name of the row.

description

Description of the row.

keys

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

order

The order the key resides in the row of keys.


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

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

Each key is made of the following properties:

Table 21-8 Properties of Each Key

Property Description

name

Name of the key.

description

Description of the key.

value

The character value the key represents when clicked.

shiftvalue

The character value the key represents when in caps mode.

image

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

order

The order the key resides in the row of keys.


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

21.4 Simple Configuration Example

An example is provided for developing an authenticator.

21.4.1 Designing the Frame

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

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

The frame itself must have some elements.

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

  • An enter or login button.

  • A space for the personalized phrase.

  • A space for the timestamp string.

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

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

21.4.2 Positioning the Elements

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

21.5 Displaying Virtual Authentication Devices

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

21.5.1 Setting Up Before Calling the get<pad_type> Method

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

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

21.5.2 Getting the Virtual Authentication Device

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

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

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

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

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

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

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

Each method takes the same set of parameters:

Table 21-9 Virtual Authentication Device: Method Parameters

Parameter Description

String padName

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

String frameFile

Image path to use for the frame.

String backgroundFile

Image path to use for the background image.

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

VCryptLocalizedString captionText

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

  • VCryptLocalizedString(String, VCryptLocale)

  • VCryptLocalizedString(String, Locale)

  • VCryptLocalizedString(String)

boolean isADACompliant

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

boolean hasJS

Flag to designate if the user has JavaScript enabled.

boolean hasImages

Flag to designate if the user has images enabled.


21.5.3 Setting Timestamp and Time Zone

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

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

Table 21-10 Virtual Authentication Devices: Setting Additional Fields

Parameter Description

authentiPad.setTimeStamp(Date timeStamp)

Sets the timestamp to display on the virtual authentication device.

authentiPad.setTimeZone(TimeZone timeZone)

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

authentiPad.setDisplayOnly(boolean displayOnly)

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

authentiPad.setQuestionText(VCryptLocalizedString questionText)

Used to display question on a QuestionPad.


21.5.4 Displaying Virtual Authentication Devices

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

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

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

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

21.6 Enabling Accessible Versions of Authenticators

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

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

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

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

desertref.authentipad.isADACompliant

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

bharosa.uio.default.authentipad.is_ada_compliant

21.7 Localizing Virtual Authentication Device in OAAM 11g

This section contains the following topics:

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

21.7.2 Example Using German Locale

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

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

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

  3. Add these in client_resource_de.properties

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

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

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

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

  6. Repackage the WAR file using the command:

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

    Note:

    Make sure original MANIFEST.MF remains same as that contains shared library information.
  7. Re-deploy the updated oracle.oaam.extensions.war as a shared library with targets as oaam_server and oaam_admin

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

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