> For the complete documentation index, see [llms.txt](https://docs.verifone.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.verifone.com/kld/kld-user-guide/user-guide-p400/verifone-kld-ui-description/reference-sets.md).

# Reference Sets

![](/files/cac656f991ca259eeb4c21bb5a08c256cc9bd824)

* Please refer to [Key Concepts](/kld/kld-user-guide/user-guide-p400/key-concepts.md#reference-set) to understand reference sets.
* Keys must be created or imported before a reference set can be created. Refer to [Keys](/kld/kld-user-guide/user-guide-p400/verifone-kld-ui-description/keys.md).
* The above reference set listing dialog allows the user to manage Reference Sets.
* To create a reference set, click on the Create button. See "Create Reference Set" section below for more information
* To delete a reference set, click on the "X" button to the right.
* To see the reference set information, click on the reference set name. The dialog below shows the reference set list information.

![](/files/ef3f2d38efc78a672bbb920efef84815fe58a93b)

#### Create Reference Set

* A reference contains a subset of keys imported.
* Each key needs a Key Block Header (KBH).
* A reference set is unique to a platform.
* Reference set create dialog

![](/files/18dbc82a5e6ca709f57f3b7c02ed3360c085c0be)

* Enter a reference set name (32 characters maximum)
* Select a platform (Trinity or Neo or Victa)
* Select signer certificate (to sign the key payload sent to the target terminal).
* Use the "Key" button to select the keys want in this reference set. See Key selection dialog below.
* Use the "KBH" button and set the Key block header for each of keys selected using the Keys button. See KBH Setting dialog below.
  * For example, if 3 keys are chosen using "Key" option, the KBH button asks for 3 key block header entries.
  * For individual keys like BDK(sent as IK) and Fixed keys, the KBH is per key. Meaning, each Key will have its own KBH.
  * Master Session Keys are on a Key List. Each Key List can have one or more individual lists. For each list only one KBH is needed. The KBH will guide the user to enter the data.
* Key Selection Dialog

![](/files/7c8c1baf2c8bd8f9fd6b73ded273d26e0716fd3c)

* Selecting the Key Type check box will display the keys or key lists under that Key type. User can choose keys by scrolling the screen and selecting the check boxes
* For example, the above dialog shows DUKPT-BDK (Sent as IK) and Fixed Key Types are selected. User the "DUKPT-BDK" key type, "BDK-200" Key name is chosen. Scrolling the screen down will show the keys selected under Fixed Key Type.
* After selecting the keys, hit the "Select" button confirm the key selections
* Key Block Header (KBH) Setting Dialog
  * The KBH dialogs are shown below.
  * For Trinity Platform, slot number is needed.
  * For Neo and Victa platforms, Key name on the terminal is needed. Sample dialogs for slot number and key name is shown below.
  * For fixed keys user can select Key Usage and the Mode as shown below. D0 for data keys, M0 MAC keys and the corresponding Modes for each key usage.
    * Fixed also supports the concept of "K0" and "K1" if some users want to send this fixed to multiple terminals.
  * For Master Keys, the key usage is fixed "K0" or "K1". The mode can be selected. D for decrypt, E for encrypt and B for both.
  * Key usage "K1" is not currently supported in Trinity Platform.
    * The KLD does not prevent the user from selecting and sending the key with "K1" usage to Trinity platform. It will fail or the terminal will ignore it.
    * The reason for this is, in future, KLD software does not require a change when the terminal starts supporting "K1" keys.
  * For BDK keys Key usage and the Mode is fixed and cannot be changed as shown below. B1 is DUKPT keys and X for Key derivation.

![](/files/8da349e3d2286e7e7372725017c0700ac1a571e5) ![](/files/40e06473d3731414b4b70c4701e1f68eb937a7a1) ![](/files/1bc2d06bf4ca494ee992bde3d114746fdaea664a)

<div><figure><img src="/files/TgGzUqP5eI2dLDd3mEg0" alt=""><figcaption></figcaption></figure> <figure><img src="/files/idqt3igE7zqcdGpsLnqP" alt=""><figcaption></figcaption></figure></div>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.verifone.com/kld/kld-user-guide/user-guide-p400/verifone-kld-ui-description/reference-sets.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
