---
name: "libnvmf_generate_tls_key_identity_compat-libnvme3"
section: "2"
platform: "linux"
package: "nvme-cli"
version: "3.2-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/libnvmf_generate_tls_key_identity_compat-libnvme3"
---

# libnvmf\_generate\_tls\_key\_identity\_compat-libnvme3(2)

Generate the TLS PSK identity

## NAME

libnvmf\_generate\_tls\_key\_identity\_compat - Generate the TLS PSK identity

## SYNOPSIS

**int libnvmf\_generate\_tls\_key\_identity\_compat** **(struct libnvme\_global\_ctx \*ctx** *,* **const char \*hostnqn** *,* **const char \*subsysnqn** *,* **int version** *,* **enum libnvmf\_hmac\_alg hmac** *,* **unsigned char \*configured\_key** *,* **int key\_len** *,* **char \*\*identity** *);*

## ARGUMENTS

- ctx

  struct libnvme\_global\_ctx object

- hostnqn

  Host NVMe Qualified Name

- subsysnqn

  Subsystem NVMe Qualified Name

- version

  TLS PSK identity version to use

- hmac

  HMAC algorithm

- configured\_key

  Configured PSK to derive the retained PSK from

- key\_len

  Length of *configured\_key*

- identity

  TLS PSK identity to return

## DESCRIPTION

Derives a retained PSK as specified in the NVMe TCP Transport Specification 1.3, section 3.6.1.3, and generates the corresponding TLS PSK identity. This function differs from **libnvmf\_generate\_tls\_key\_identity** in that it uses the original implementation for HKDF-Expand-Label which does not prefix the 'info' and 'label' strings with the length.

It is the responsibility of the caller to free the returned string.

## RETURN

0 on success, negative error code otherwise.
