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

# libfcrypto(3)

Library to support encryption formats

## NAME

**libfcrypto.h** – Library to support encryption formats

## SYNOPSIS

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

Support functions

*const* *char* *\**\

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

Error functions

*void*\

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

*int*\

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

*int*\

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

*int*\

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

*int*\

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

Blowfish context functions

*int*\

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

*int*\

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

*int*\

**libfcrypto\_blowfish\_context\_set\_key**(*libfcrypto\_blowfish\_context\_t \*context*, *const uint8\_t \*key*, *size\_t key\_bit\_size*, *libfcrypto\_error\_t \*\*error*);

*int*\

**libfcrypto\_blowfish\_crypt\_cbc**(*libfcrypto\_blowfish\_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*, *libfcrypto\_error\_t \*\*error*);

*int*\

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

## DESCRIPTION

DES3 context functions *int* **libfcrypto\_des3\_context\_initialize**(*libfcrypto\_des3\_context\_t \*\*context*, *libfcrypto\_error\_t \*\*error*) *int* **libfcrypto\_des3\_context\_free**(*libfcrypto\_des3\_context\_t \*\*context*, *libfcrypto\_error\_t \*\*error*) *int* **libfcrypto\_des3\_context\_set\_key**(*libfcrypto\_des3\_context\_t \*context*, *const uint8\_t \*key*, *size\_t key\_bit\_size*, *libfcrypto\_error\_t \*\*error*) *int* **libfcrypto\_des3\_crypt\_cbc**(*libfcrypto\_des3\_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*, *libfcrypto\_error\_t \*\*error*) *int* **libfcrypto\_des3\_crypt\_ecb**(*libfcrypto\_des3\_context\_t \*context*, *int mode*, *const uint8\_t \*input\_data*, *size\_t input\_data\_size*, *uint8\_t \*output\_data*, *size\_t output\_data\_size*, *libfcrypto\_error\_t \*\*error*)

RC4 context functions *int* **libfcrypto\_rc4\_context\_initialize**(*libfcrypto\_rc4\_context\_t \*\*context*, *libfcrypto\_error\_t \*\*error*) *int* **libfcrypto\_rc4\_context\_free**(*libfcrypto\_rc4\_context\_t \*\*context*, *libfcrypto\_error\_t \*\*error*) *int* **libfcrypto\_rc4\_context\_set\_key**(*libfcrypto\_rc4\_context\_t \*context*, *const uint8\_t \*key*, *size\_t key\_bit\_size*, *libfcrypto\_error\_t \*\*error*) *int* **libfcrypto\_rc4\_crypt**(*libfcrypto\_rc4\_context\_t \*context*, *const uint8\_t \*input\_data*, *size\_t input\_data\_size*, *uint8\_t \*output\_data*, *size\_t output\_data\_size*, *libfcrypto\_error\_t \*\*error*)

Serpent context functions *int* **libfcrypto\_serpent\_context\_initialize**(*libfcrypto\_serpent\_context\_t \*\*context*, *libfcrypto\_error\_t \*\*error*) *int* **libfcrypto\_serpent\_context\_free**(*libfcrypto\_serpent\_context\_t \*\*context*, *libfcrypto\_error\_t \*\*error*) *int* **libfcrypto\_serpent\_context\_set\_key**(*libfcrypto\_serpent\_context\_t \*context*, *const uint8\_t \*key*, *size\_t key\_bit\_size*, *libfcrypto\_error\_t \*\*error*) *int* **libfcrypto\_serpent\_crypt\_cbc**(*libfcrypto\_serpent\_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*, *libfcrypto\_error\_t \*\*error*) *int* **libfcrypto\_serpent\_crypt\_ecb**(*libfcrypto\_serpent\_context\_t \*context*, *int mode*, *const uint8\_t \*input\_data*, *size\_t input\_data\_size*, *uint8\_t \*output\_data*, *size\_t output\_data\_size*, *libfcrypto\_error\_t \*\*error*)

## DESCRIPTION

The **libfcrypto\_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 "libfcrypto.h".

## ENVIRONMENT

None

## FILES

None

## BUGS

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

## AUTHOR

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

## COPYRIGHT

Copyright (C) 2017-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 libfcrypto.h include file
