logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

libfvde.h — Library to access the FileVault Drive Encryption (FVDE) format

Author

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

Bugs

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

Description

       The libfvde_get_version() function is used to retrieve the library version.

Environment

       None

Files

       None

Name

       libfvde.h — Library to access the FileVault Drive Encryption (FVDE) format

Notes

       libfvde can be compiled with wide character support (wchar_t).

       To compile libfvde with wide character support use: ./configure--enable-wide-character-type=yes
        or define: _UNICODE
        or UNICODE
        during compilation.

       LIBFVDE_WIDE_CHARACTER_TYPE
        in libfvde/features.h can be used to determine if libfvde was compiled with wide character support.

Return Values

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

See Also

       the libfvde.h include file

libfvde                                         January 19, 2022                                      libfvde(3)

Synopsis

#include<libfvde.h>

       Support functions

       constchar*libfvde_get_version(void);

       intlibfvde_get_access_flags_read(void);

       intlibfvde_get_codepage(int*codepage, libfvde_error_t**error);

       intlibfvde_set_codepage(intcodepage, libfvde_error_t**error);

       intlibfvde_check_volume_signature(constchar*filename, libfvde_error_t**error);

       Available when compiled with wide character string support:

       intlibfvde_check_volume_signature_wide(constwchar_t*filename, libfvde_error_t**error);

       Available when compiled with libbfio support:

       intlibfvde_check_volume_signature_file_io_handle(libbfio_handle_t*file_io_handle, libfvde_error_t**error);

       Notify functions

       voidlibfvde_notify_set_verbose(intverbose);

       intlibfvde_notify_set_stream(FILE*stream, libfvde_error_t**error);

       intlibfvde_notify_stream_open(constchar*filename, libfvde_error_t**error);

       intlibfvde_notify_stream_close(libfvde_error_t**error);

       Error functions

       voidlibfvde_error_free(libfvde_error_t**error);

       intlibfvde_error_fprint(libfvde_error_t*error, FILE*stream);

       intlibfvde_error_sprint(libfvde_error_t*error, char*string, size_tsize);

       intlibfvde_error_backtrace_fprint(libfvde_error_t*error, FILE*stream);

       intlibfvde_error_backtrace_sprint(libfvde_error_t*error, char*string, size_tsize);

       Volume functions

       intlibfvde_volume_initialize(libfvde_volume_t**volume, libfvde_error_t**error);

       intlibfvde_volume_free(libfvde_volume_t**volume, libfvde_error_t**error);

       intlibfvde_volume_signal_abort(libfvde_volume_t*volume, libfvde_error_t**error);

       intlibfvde_volume_open(libfvde_volume_t*volume,     constchar*filename,    intaccess_flags,
           libfvde_error_t**error);

       intlibfvde_volume_open_physical_volume_files(libfvde_volume_t*volume,   char*constfilenames[],
           intnumber_of_filenames, libfvde_error_t**error);

       intlibfvde_volume_close(libfvde_volume_t*volume, libfvde_error_t**error);

       intlibfvde_volume_read_encrypted_root_plist(libfvde_volume_t*volume,     constchar*filename,
           libfvde_error_t**error);

       intlibfvde_volume_get_volume_group(libfvde_volume_t*volume,    libfvde_volume_group_t**volume_group,
           libfvde_error_t**error);

       Available when compiled with wide character string support:

       intlibfvde_volume_open_wide(libfvde_volume_t*volume,   constwchar_t*filename,   intaccess_flags,
           libfvde_error_t**error);

       intlibfvde_volume_open_physical_volume_files_wide(libfvde_volume_t*volume,  wchar_t*constfilenames[],
           intnumber_of_filenames, libfvde_error_t**error);

       intlibfvde_volume_read_encrypted_root_plist_wide(libfvde_volume_t*volume,   constwchar_t*filename,
           libfvde_error_t**error);

       Available when compiled with libbfio support:

       intlibfvde_volume_open_file_io_handle(libfvde_volume_t*volume,     libbfio_handle_t*file_io_handle,
           intaccess_flags, libfvde_error_t**error);

       intlibfvde_volume_open_physical_volume_files_file_io_pool(libfvde_volume_t*volume,
           libbfio_pool_t*file_io_pool, libfvde_error_t**error);

       intlibfvde_volume_read_encrypted_root_plist_file_io_handle(libfvde_volume_t*volume,
           libbfio_handle_t*file_io_handle, libfvde_error_t**error);

       Volume group functions

       intlibfvde_volume_group_free(libfvde_volume_group_t**volume_group, libfvde_error_t**error);

       intlibfvde_volume_group_get_identifier(libfvde_volume_group_t*volume_group,     uint8_t*uuid_data,
           size_tuuid_data_size, libfvde_error_t**error);

       intlibfvde_volume_group_get_utf8_name_size(libfvde_volume_group_t*volume_group,  size_t*utf8_string_size,
           libfvde_error_t**error);

       intlibfvde_volume_group_get_utf8_name(libfvde_volume_group_t*volume_group,     uint8_t*utf8_string,
           size_tutf8_string_size, libfvde_error_t**error);

       intlibfvde_volume_group_get_utf16_name_size(libfvde_volume_group_t*volume_group, size_t*utf16_string_size,
           libfvde_error_t**error);

       intlibfvde_volume_group_get_utf16_name(libfvde_volume_group_t*volume_group,    uint16_t*utf16_string,
           size_tutf16_string_size, libfvde_error_t**error);

       intlibfvde_volume_group_get_number_of_physical_volumes(libfvde_volume_group_t*volume_group,
           int*number_of_physical_volumes, libfvde_error_t**error);

       intlibfvde_volume_group_get_physical_volume_by_index(libfvde_volume_group_t*volume_group, intvolume_index,
           libfvde_physical_volume_t**physical_volume, libfvde_error_t**error);

       intlibfvde_volume_group_get_number_of_logical_volumes(libfvde_volume_group_t*volume_group,
           int*number_of_logical_volumes, libfvde_error_t**error);

       intlibfvde_volume_group_get_logical_volume_by_index(libfvde_volume_group_t*volume_group, intvolume_index,
           libfvde_logical_volume_t**logical_volume, libfvde_error_t**error);

       Physical volume functions

       intlibfvde_physical_volume_free(libfvde_physical_volume_t**physical_volume, libfvde_error_t**error);

       intlibfvde_physical_volume_get_identifier(libfvde_physical_volume_t*physical_volume,  uint8_t*uuid_data,
           size_tuuid_data_size, libfvde_error_t**error);

       intlibfvde_physical_volume_get_encryption_method(libfvde_physical_volume_t*physical_volume,
           uint32_t*encryption_method, libfvde_error_t**error);

       intlibfvde_physical_volume_get_size(libfvde_physical_volume_t*physical_volume,     size64_t*size,
           libfvde_error_t**error);

       Logical volume functions

       intlibfvde_logical_volume_free(libfvde_logical_volume_t**logical_volume, libfvde_error_t**error);

       intlibfvde_logical_volume_unlock(libfvde_logical_volume_t*logical_volume, libfvde_error_t**error);

       ssize_tlibfvde_logical_volume_read_buffer(libfvde_logical_volume_t*logical_volume,      void*buffer,
           size_tbuffer_size, libfvde_error_t**error);

       ssize_tlibfvde_logical_volume_read_buffer_at_offset(libfvde_logical_volume_t*logical_volume,   void*buffer,
           size_tbuffer_size, off64_toffset, libfvde_error_t**error);

       off64_tlibfvde_logical_volume_seek_offset(libfvde_logical_volume_t*logical_volume, off64_toffset, intwhence,
           libfvde_error_t**error);

       intlibfvde_logical_volume_get_offset(libfvde_logical_volume_t*logical_volume,     off64_t*offset,
           libfvde_error_t**error);

       intlibfvde_logical_volume_get_identifier(libfvde_logical_volume_t*logical_volume,   uint8_t*uuid_data,
           size_tuuid_data_size, libfvde_error_t**error);

       intlibfvde_logical_volume_get_utf8_name_size(libfvde_logical_volume_t*logical_volume,
           size_t*utf8_string_size, libfvde_error_t**error);

       intlibfvde_logical_volume_get_utf8_name(libfvde_logical_volume_t*logical_volume,   uint8_t*utf8_string,
           size_tutf8_string_size, libfvde_error_t**error);

       intlibfvde_logical_volume_get_utf16_name_size(libfvde_logical_volume_t*logical_volume,
           size_t*utf16_string_size, libfvde_error_t**error);

       intlibfvde_logical_volume_get_utf16_name(libfvde_logical_volume_t*logical_volume,  uint16_t*utf16_string,
           size_tutf16_string_size, libfvde_error_t**error);

       intlibfvde_logical_volume_get_size(libfvde_logical_volume_t*logical_volume,      size64_t*size,
           libfvde_error_t**error);

       intlibfvde_logical_volume_is_locked(libfvde_logical_volume_t*logical_volume, libfvde_error_t**error);

       intlibfvde_logical_volume_set_key(libfvde_logical_volume_t*logical_volume,
           constuint8_t*volume_master_key, size_tvolume_master_key_size, libfvde_error_t**error);

       intlibfvde_logical_volume_set_utf8_password(libfvde_logical_volume_t*logical_volume,
           constuint8_t*utf8_string, size_tutf8_string_length, libfvde_error_t**error);

       intlibfvde_logical_volume_set_utf16_password(libfvde_logical_volume_t*logical_volume,
           constuint16_t*utf16_string, size_tutf16_string_length, libfvde_error_t**error);

       intlibfvde_logical_volume_set_utf8_recovery_password(libfvde_logical_volume_t*logical_volume,
           constuint8_t*utf8_string, size_tutf8_string_length, libfvde_error_t**error);

       intlibfvde_logical_volume_set_utf16_recovery_password(libfvde_logical_volume_t*logical_volume,
           constuint16_t*utf16_string, size_tutf16_string_length, libfvde_error_t**error);

       LVF encryption context and EncryptedRoot.plist file functions

       intlibfvde_encryption_context_plist_initialize(libfvde_encryption_context_plist_t**plist,
           libfvde_error_t**error);

       intlibfvde_encryption_context_plist_free(libfvde_encryption_context_plist_t**plist,
           libfvde_error_t**error);

       intlibfvde_encryption_context_plist_get_data_size(libfvde_encryption_context_plist_t*plist,
           size64_t*data_size, libfvde_error_t**error);

       intlibfvde_encryption_context_plist_copy_data(libfvde_encryption_context_plist_t*plist,   uint8_t*data,
           size_tdata_size, libfvde_error_t**error);

       intlibfvde_encryption_context_plist_decrypt(libfvde_encryption_context_plist_t*plist, constuint8_t*key,
           size_tkey_bit_size, libfvde_error_t**error);

       Available when compiled with libbfio support:

       intlibfvde_encryption_context_plist_read_file_io_handle(libfvde_encryption_context_plist_t*plist,
           libbfio_handle_t*file_io_handle, libfvde_error_t**error);

See Also