fs_crypto_key_gen()

Updated: April 19, 2023

Generate an encryption key from a password

Synopsis:

#include <fs_crypto_api.h>
#include <sys/fs_crypto.h>

int fs_crypto_key_gen( const char *password,
                       int plen,
                       const uint8_t *salt,
                       int slen,
                       uint8_t *key,
                       int klen );

Arguments:

password
The password to encrypt.
plen
The number of bytes in the given password string.
salt
The bytes to use as the salt when creating the key.
slen
The number of bytes in the given salt.
key
An array where the function can store the generated key. This must be FS_CRYPTO_MAX_KEY_SIZE bytes long.
klen
The number of bytes in the key array.

Library:

libfscrypto

Use the -l fscrypto option to qcc to link against this library.

Description:

The fs_crypto_key_gen() function generates an encryption key from a secret password and public salt data. It uses a private implementation of the PKCS #5 PBKDF2 algorithm; you can use a different implementation if your system needs greater security.

Note: In order to use filesystem encryption, download the Encrypted Filesystem package from the QNX Software Center.

Returns:

EOK
Success.
EINVAL
Invalid arguments, or an error occurred in generating the key.

Classification:

QNX Neutrino

Safety:  
Cancellation point Yes
Interrupt handler No
Signal handler No
Thread Yes