mirror of
https://gitlab.com/cryptsetup/cryptsetup.git
synced 2025-12-24 17:20:24 +01:00
Duplicate all dynamically allocated memory passed keyslot context during initialization and make it self contained. Before current patch all pointers passed in keyslot context initialization routines have to remain valid for the duration of the keyslot context. Otherwise memory violation could occur. This patch fixes the issue in backward compatible way so that we do not have to change API for all keyslot contexts. As of now all dynamically allocated memory can be freed right after keyslot context initialization.
195 lines
4.4 KiB
Plaintext
195 lines
4.4 KiB
Plaintext
CRYPTSETUP_2.0 {
|
|
global:
|
|
crypt_init;
|
|
crypt_init_data_device;
|
|
crypt_init_by_name;
|
|
crypt_init_by_name_and_header;
|
|
|
|
crypt_set_log_callback;
|
|
crypt_set_confirm_callback;
|
|
crypt_set_iteration_time;
|
|
crypt_set_uuid;
|
|
crypt_set_label;
|
|
crypt_set_data_device;
|
|
|
|
crypt_set_compatibility;
|
|
crypt_get_compatibility;
|
|
|
|
crypt_memory_lock;
|
|
crypt_metadata_locking;
|
|
crypt_format;
|
|
crypt_convert;
|
|
crypt_load;
|
|
crypt_repair;
|
|
crypt_resize;
|
|
crypt_suspend;
|
|
crypt_resume_by_passphrase;
|
|
crypt_resume_by_keyfile;
|
|
crypt_resume_by_keyfile_offset;
|
|
crypt_resume_by_keyfile_device_offset;
|
|
crypt_resume_by_volume_key;
|
|
crypt_free;
|
|
|
|
crypt_keyslot_add_by_passphrase;
|
|
crypt_keyslot_change_by_passphrase;
|
|
crypt_keyslot_add_by_keyfile;
|
|
crypt_keyslot_add_by_keyfile_offset;
|
|
crypt_keyslot_add_by_keyfile_device_offset;
|
|
crypt_keyslot_add_by_volume_key;
|
|
crypt_keyslot_add_by_key;
|
|
|
|
crypt_keyslot_set_priority;
|
|
crypt_keyslot_get_priority;
|
|
|
|
crypt_token_json_get;
|
|
crypt_token_json_set;
|
|
crypt_token_status;
|
|
crypt_token_luks2_keyring_get;
|
|
crypt_token_luks2_keyring_set;
|
|
crypt_token_assign_keyslot;
|
|
crypt_token_unassign_keyslot;
|
|
crypt_token_is_assigned;
|
|
crypt_token_register;
|
|
|
|
crypt_activate_by_token;
|
|
|
|
crypt_keyslot_destroy;
|
|
crypt_activate_by_passphrase;
|
|
crypt_activate_by_keyfile;
|
|
crypt_activate_by_keyfile_offset;
|
|
crypt_activate_by_keyfile_device_offset;
|
|
crypt_activate_by_volume_key;
|
|
crypt_activate_by_signed_key;
|
|
crypt_activate_by_keyring;
|
|
crypt_deactivate;
|
|
crypt_deactivate_by_name;
|
|
crypt_volume_key_get;
|
|
crypt_volume_key_verify;
|
|
crypt_volume_key_keyring;
|
|
crypt_status;
|
|
crypt_dump;
|
|
crypt_benchmark;
|
|
crypt_benchmark_pbkdf;
|
|
crypt_get_cipher;
|
|
crypt_get_cipher_mode;
|
|
crypt_get_integrity_info;
|
|
crypt_get_uuid;
|
|
crypt_set_data_offset;
|
|
crypt_get_data_offset;
|
|
crypt_get_iv_offset;
|
|
crypt_get_volume_key_size;
|
|
crypt_get_device_name;
|
|
crypt_get_metadata_device_name;
|
|
crypt_get_metadata_size;
|
|
crypt_set_metadata_size;
|
|
crypt_get_verity_info;
|
|
crypt_get_sector_size;
|
|
|
|
crypt_get_type;
|
|
crypt_get_default_type;
|
|
crypt_get_active_device;
|
|
crypt_get_active_integrity_failures;
|
|
crypt_persistent_flags_set;
|
|
crypt_persistent_flags_get;
|
|
|
|
crypt_set_rng_type;
|
|
crypt_get_rng_type;
|
|
crypt_set_pbkdf_type;
|
|
crypt_get_pbkdf_type;
|
|
crypt_get_pbkdf_type_params;
|
|
crypt_get_pbkdf_default;
|
|
|
|
crypt_keyslot_max;
|
|
crypt_keyslot_area;
|
|
crypt_keyslot_status;
|
|
crypt_keyslot_get_key_size;
|
|
crypt_keyslot_set_encryption;
|
|
crypt_keyslot_get_encryption;
|
|
crypt_keyslot_get_pbkdf;
|
|
|
|
crypt_get_dir;
|
|
crypt_set_debug_level;
|
|
crypt_log;
|
|
|
|
crypt_header_backup;
|
|
crypt_header_restore;
|
|
|
|
crypt_keyfile_read;
|
|
crypt_keyfile_device_read;
|
|
|
|
crypt_wipe;
|
|
|
|
crypt_reencrypt_init_by_passphrase;
|
|
crypt_reencrypt_init_by_keyring;
|
|
crypt_reencrypt;
|
|
crypt_reencrypt_status;
|
|
|
|
crypt_safe_alloc;
|
|
crypt_safe_realloc;
|
|
crypt_safe_free;
|
|
crypt_safe_memzero;
|
|
local:
|
|
*;
|
|
};
|
|
|
|
CRYPTSETUP_2.4 {
|
|
global:
|
|
crypt_reencrypt_run;
|
|
crypt_token_max;
|
|
crypt_header_is_detached;
|
|
crypt_logf;
|
|
crypt_activate_by_token_pin;
|
|
crypt_dump_json;
|
|
crypt_format;
|
|
crypt_token_external_disable;
|
|
crypt_token_external_path;
|
|
} CRYPTSETUP_2.0;
|
|
|
|
CRYPTSETUP_2.5 {
|
|
global:
|
|
crypt_get_label;
|
|
crypt_get_subsystem;
|
|
crypt_resume_by_token_pin;
|
|
} CRYPTSETUP_2.4;
|
|
|
|
CRYPTSETUP_2.6 {
|
|
global:
|
|
crypt_keyslot_context_free;
|
|
crypt_keyslot_context_init_by_passphrase;
|
|
crypt_keyslot_context_init_by_keyfile;
|
|
crypt_keyslot_context_init_by_token;
|
|
crypt_keyslot_context_init_by_volume_key;
|
|
crypt_keyslot_context_get_error;
|
|
crypt_keyslot_context_set_pin;
|
|
crypt_keyslot_context_get_type;
|
|
crypt_keyslot_add_by_keyslot_context;
|
|
crypt_volume_key_get_by_keyslot_context;
|
|
} CRYPTSETUP_2.5;
|
|
|
|
CRYPTSETUP_2.7 {
|
|
global:
|
|
crypt_activate_by_keyslot_context;
|
|
crypt_format_luks2_opal;
|
|
crypt_get_hw_encryption_type;
|
|
crypt_get_hw_encryption_key_size;
|
|
crypt_keyslot_context_init_by_keyring;
|
|
crypt_keyslot_context_init_by_vk_in_keyring;
|
|
crypt_keyslot_context_init_by_signed_key;
|
|
crypt_resume_by_keyslot_context;
|
|
crypt_token_set_external_path;
|
|
crypt_set_keyring_to_link;
|
|
crypt_wipe_hw_opal;
|
|
} CRYPTSETUP_2.6;
|
|
|
|
CRYPTSETUP_2.8 {
|
|
global:
|
|
crypt_safe_memcpy;
|
|
crypt_keyslot_context_init_by_passphrase;
|
|
crypt_keyslot_context_init_by_keyfile;
|
|
crypt_keyslot_context_init_by_token;
|
|
crypt_keyslot_context_init_by_volume_key;
|
|
crypt_keyslot_context_init_by_signed_key;
|
|
crypt_keyslot_context_init_by_keyring;
|
|
crypt_keyslot_context_init_by_vk_in_keyring;
|
|
} CRYPTSETUP_2.7;
|