---
name: "audit_encode_value"
section: "3"
platform: "linux"
package: "audit"
version: "4.2.1-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/audit_encode_value"
---

# audit\_encode\_value(3)

encode bytes as an ASCII hexadecimal string

## NAME

audit\_encode\_value - encode bytes as an ASCII hexadecimal string

## SYNOPSIS

```
#include <libaudit.h>
```

**char \*audit\_encode\_value(char \****final***, const char \****buf***, unsigned int** *size***);**

## DESCRIPTION

**audit\_encode\_value**() encodes *size* bytes from *buf* as an uppercase ASCII hexadecimal string. Each input byte is written as two hexadecimal digits. The input does not have to be NUL-terminated and may contain embedded NUL bytes.

*final* is the caller-provided output buffer. It must be at least *2 \* size + 1* bytes long to hold the encoded value and its terminating NUL byte. *size* is the number of bytes to encode from *buf*, not necessarily the result of [**strlen**(3)](/strlen/3.md).

If *buf* is NULL, **audit\_encode\_value**() writes an empty string to *final*.

e.g.: "foo bar" is encoded as "666F6F20626172". "\\1\\2\\3\\4" is encoded as "01020304".

## RETURN VALUE

Returns *final* on success. If *final* is NULL, NULL is returned.

## SEE ALSO

[**audit\_encode\_nv\_string**(3)](/audit_encode_nv_string/3.md), [**audit\_value\_needs\_encoding**(3)](/audit_value_needs_encoding/3.md).

## AUTHOR

Steve Grubb
