---
name: "mifare_desfire_aes_key_new"
section: "3"
platform: "linux"
package: "libfreefare-doc"
version: "0.4.0-2.3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/mifare_desfire_key"
---

# mifare\_desfire\_aes\_key\_new(3)

Mifare DESFire keys Manipulation Functions

Part of [mifare\_desfire\_key(3)](/mifare_desfire_key/3.md).

## NAME

**mifare\_desfire\_des\_key\_new**, **mifare\_desfire\_3des\_key\_new**, **mifare\_desfire\_3k3des\_key\_new**, **mifare\_desfire\_aes\_key\_new**, **mifare\_desfire\_des\_key\_new\_with\_version**, **mifare\_desfire\_3des\_key\_new\_with\_version**, **mifare\_desfire\_3k3des\_key\_new\_with\_version**, **mifare\_desfire\_aes\_key\_new** **\_with\_version,** **mifare\_desfire\_key\_get\_version**, **mifare\_desfire\_key\_set\_version**, **mifare\_desfire\_key\_free** – Mifare DESFire keys Manipulation Functions

## LIBRARY

Mifare card manipulation library (libfreefare, -lfreefare)

## SYNOPSIS

**#include \<freefare.h\>**

*MifareDESFireKey*\

**mifare\_desfire\_des\_key\_new**(*uint8\_t value\[8\]*);

*MifareDESFireKey*\

**mifare\_desfire\_3des\_key\_new**(*uint8\_t value\[16\]*);

*MifareDESFireKey*\

**mifare\_desfire\_3k3des\_key\_new**(*uint8\_t value\[24\]*);

*MifareDESFireKey*\

**mifare\_desfire\_aes\_key\_new**(*uint8\_t value\[16\]*);

*MifareDESFireKey*\

**mifare\_desfire\_des\_key\_new\_with\_version**(*uint8\_t value\[8\]*);

*MifareDESFireKey*\

**mifare\_desfire\_3des\_key\_new\_with\_version**(*uint8\_t value\[16\]*);

*MifareDESFireKey*\

**mifare\_desfire\_3k3des\_key\_new\_with\_version**(*uint8\_t value\[24\]*);

*MifareDESFireKey*\

**mifare\_desfire\_aes\_key\_new\_with\_version**(*uint8\_t value\[16\]*, *uint8\_t version*);

*uint8\_t*\

**mifare\_desfire\_key\_get\_version**(*MifareDESFireKey key*);

*void*\

**mifare\_desfire\_key\_set\_version**(*MifareDESFireKey key*, *uint8\_t version*);

*void*\

**mifare\_desfire\_key\_free**(*MifareDESFireKey key*);

## DESCRIPTION

The **mifare\_desfire\_key\_\***() family of functions allows management of Mifare DESFire keys.

The **mifare\_desfire\_des\_key\_new**(), **mifare\_desfire\_3des\_key\_new**(), **mifare\_desfire\_3k3des\_key\_new**() and **mifare\_desfire\_ades\_key\_new**() alocate a new key with the provided data *value*. The key version is set to *0*.

The **mifare\_desfire\_des\_key\_new\_with\_version**(), **mifare\_desfire\_3des\_key\_new\_with\_version**(), **mifare\_desfire\_3k3des\_key\_new\_with\_version**() and **mifare\_desfire\_aes\_key\_new\_with\_version**() functions are equivalent to the previous functions except that the key version is read from *value* (DES, 3DES, 3K3DES) or set to *version* (AES).

The version of a *MifareDESFireKey* can be extracted using **mifare\_desfire\_key\_get\_version**() and changed using **mifare\_desfire\_key\_set\_version.**()

The **mifare\_desfire\_key\_free**() has to be called for each *MifareDESFireKey* after usage to reclaim memory.

## RETURN VALUES

Key allocations functions return the allocaed key of *NULL* on failure.

## SEE ALSO

[mifare\_desfire(3)](/mifare_desfire/3.md)

## AUTHORS

Romain Tartiere ⟨romain@il4p.org⟩
