---
name: "libcaes"
section: "3"
platform: "linux"
package: "libcaes-dev"
version: "0~20240413-1+b2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/libcaes"
---

# libcaes(3)

Library to support cross-platform AES encryption

## NAME

**libcaes.h** – Library to support cross-platform AES encryption

## SYNOPSIS

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

Support functions

*const* *char* *\**\

**libcaes\_get\_version**(*void*);

Error functions

*void*\

**libcaes\_error\_free**(*libcaes\_error\_t \*\*error*);

*int*\

**libcaes\_error\_fprint**(*libcaes\_error\_t \*error*, *FILE \*stream*);

*int*\

**libcaes\_error\_sprint**(*libcaes\_error\_t \*error*, *char \*string*, *size\_t size*);

*int*\

**libcaes\_error\_backtrace\_fprint**(*libcaes\_error\_t \*error*, *FILE \*stream*);

*int*\

**libcaes\_error\_backtrace\_sprint**(*libcaes\_error\_t \*error*, *char \*string*, *size\_t size*);

Context functions

*int*\

**libcaes\_context\_initialize**(*libcaes\_context\_t \*\*context*, *libcaes\_error\_t \*\*error*);

*int*\

**libcaes\_context\_free**(*libcaes\_context\_t \*\*context*, *libcaes\_error\_t \*\*error*);

*int*\

**libcaes\_context\_set\_key**(*libcaes\_context\_t \*context*, *int mode*, *const uint8\_t \*key*, *size\_t key\_bit\_size*, *libcaes\_error\_t \*\*error*);

*int*\

**libcaes\_crypt\_cbc**(*libcaes\_context\_t \*context*, *int mode*, *const uint8\_t \*initialization\_vector*, *size\_t initialization\_vector\_size*, *const uint8\_t \*input\_data*, *size\_t input\_data\_size*, *uint8\_t \*output\_data*, *size\_t output\_data\_size*, *libcaes\_error\_t \*\*error*);

*int*\

**libcaes\_crypt\_ccm**(*libcaes\_context\_t \*context*, *int mode*, *const uint8\_t \*nonce*, *size\_t nonce\_size*, *const uint8\_t \*input\_data*, *size\_t input\_data\_size*, *uint8\_t \*output\_data*, *size\_t output\_data\_size*, *libcaes\_error\_t \*\*error*);

*int*\

**libcaes\_crypt\_ecb**(*libcaes\_context\_t \*context*, *int mode*, *const uint8\_t \*input\_data*, *size\_t input\_data\_size*, *uint8\_t \*output\_data*, *size\_t output\_data\_size*, *libcaes\_error\_t \*\*error*);

Tweaked context functions

*int*\

**libcaes\_tweaked\_context\_initialize**(*libcaes\_tweaked\_context\_t \*\*tweaked\_context*, *libcaes\_error\_t \*\*error*);

*int*\

**libcaes\_tweaked\_context\_free**(*libcaes\_tweaked\_context\_t \*\*tweaked\_context*, *libcaes\_error\_t \*\*error*);

*int*\

**libcaes\_tweaked\_context\_set\_keys**(*libcaes\_tweaked\_context\_t \*tweaked\_context*, *int mode*, *const uint8\_t \*key*, *size\_t key\_bit\_size*, *const uint8\_t \*tweak\_key*, *size\_t tweak\_key\_bit\_size*, *libcaes\_error\_t \*\*error*);

*int*\

**libcaes\_crypt\_xts**(*libcaes\_tweaked\_context\_t \*tweaked\_context*, *int mode*, *const uint8\_t \*tweak\_value*, *size\_t tweak\_value\_size*, *const uint8\_t \*input\_data*, *size\_t input\_data\_size*, *uint8\_t \*output\_data*, *size\_t output\_data\_size*, *libcaes\_error\_t \*\*error*);

## DESCRIPTION

The **libcaes\_get\_version**() function is used to retrieve the library version.

## RETURN VALUES

Most of the functions return NULL or -1 on error, dependent on the return type. For the actual return values see "libcaes.h".

## ENVIRONMENT

None

## FILES

None

## BUGS

Please report bugs of any kind on the project issue tracker: https://github.com/libyal/libcaes/issues

## AUTHOR

These man pages are generated from "libcaes.h".

## COPYRIGHT

Copyright (C) 2011-2024, Joachim Metz \<joachim.metz@gmail.com\>.

This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

## SEE ALSO

the libcaes.h include file
