Crate libsignal_protocol_sys Copy item path Source alice_signal_protocol_parameters bob_signal_protocol_parameters ciphertext_message device_consistency_commitment device_consistency_message device_consistency_signature device_consistency_signature_list displayable_fingerprint ec_key_pair ec_private_key ec_public_key ec_public_key_list fingerprint fingerprint_generator group_cipher group_session_builder hkdf_context pre_key_signal_message ratchet_chain_key ratchet_identity_key_pair ratchet_message_keys ratchet_root_key scannable_fingerprint sender_chain_key sender_key_distribution_message sender_key_message sender_key_record sender_key_state sender_message_key session_builder session_cipher session_pre_key session_pre_key_bundle session_record session_record_state_node session_signed_pre_key session_state signal_buffer signal_buffer_list signal_context signal_crypto_provider signal_int_list signal_message signal_protocol_address signal_protocol_identity_key_store signal_protocol_key_helper_pre_key_list_node signal_protocol_pre_key_store signal_protocol_sender_key_name signal_protocol_sender_key_store signal_protocol_session_store signal_protocol_signed_pre_key_store signal_protocol_store_context signal_type_base symmetric_signal_protocol_parameters CIPHERTEXT_CURRENT_VERSION CIPHERTEXT_ENCRYPTED_MESSAGE_OVERHEAD CIPHERTEXT_PREKEY_TYPE CIPHERTEXT_SENDERKEY_DISTRIBUTION_TYPE CIPHERTEXT_SENDERKEY_TYPE CIPHERTEXT_SIGNAL_TYPE CIPHERTEXT_UNSUPPORTED_VERSION CURVE_SIGNATURE_LEN KEY_EXCHANGE_INITIATE_FLAG KEY_EXCHANGE_SIMULTAENOUS_INITIATE_FLAG PRE_KEY_MEDIUM_MAX_VALUE RATCHET_CIPHER_KEY_LENGTH RATCHET_IV_LENGTH RATCHET_MAC_KEY_LENGTH SG_CIPHER_AES_CBC_PKCS5 SG_CIPHER_AES_CTR_NOPADDING SG_ERR_DUPLICATE_MESSAGE SG_ERR_FP_IDENT_MISMATCH SG_ERR_FP_VERSION_MISMATCH SG_ERR_INVAL SG_ERR_INVALID_KEY SG_ERR_INVALID_KEY_ID SG_ERR_INVALID_MAC SG_ERR_INVALID_MESSAGE SG_ERR_INVALID_PROTO_BUF SG_ERR_INVALID_VERSION SG_ERR_LEGACY_MESSAGE SG_ERR_MINIMUM SG_ERR_NOMEM SG_ERR_NO_SESSION SG_ERR_STALE_KEY_EXCHANGE SG_ERR_UNKNOWN SG_ERR_UNTRUSTED_IDENTITY SG_ERR_VRF_SIG_VERIF_FAILED SG_LOG_DEBUG SG_LOG_ERROR SG_LOG_INFO SG_LOG_NOTICE SG_LOG_WARNING SG_SUCCESS alice_signal_protocol_parameters_create ⚠ alice_signal_protocol_parameters_destroy ⚠ bob_signal_protocol_parameters_create ⚠ bob_signal_protocol_parameters_destroy ⚠ ciphertext_message_get_serialized ⚠ ciphertext_message_get_type ⚠ curve_calculate_agreement ⚠ Calculates an ECDH agreement. curve_calculate_signature ⚠ Calculates a Curve25519 signature. curve_calculate_vrf_signature ⚠ Calculates a Unique Curve25519 signature. curve_decode_point ⚠ curve_decode_private_point ⚠ curve_generate_key_pair ⚠ Generates a Curve25519 keypair. curve_generate_private_key ⚠ curve_generate_public_key ⚠ curve_internal_fast_tests ⚠ curve_verify_signature ⚠ Verify a Curve25519 signature. curve_verify_vrf_signature ⚠ Verify a Unique Curve25519 signature. device_consistency_code_generate_for ⚠ device_consistency_commitment_create ⚠ device_consistency_commitment_destroy ⚠ device_consistency_commitment_get_generation ⚠ device_consistency_commitment_get_serialized ⚠ device_consistency_message_create_from_pair ⚠ device_consistency_message_create_from_serialized ⚠ device_consistency_message_destroy ⚠ device_consistency_message_get_serialized ⚠ device_consistency_message_get_signature ⚠ device_consistency_signature_create ⚠ device_consistency_signature_destroy ⚠ device_consistency_signature_get_generation ⚠ device_consistency_signature_get_signature ⚠ device_consistency_signature_get_vrf_output ⚠ device_consistency_signature_list_alloc ⚠ device_consistency_signature_list_at ⚠ device_consistency_signature_list_copy ⚠ device_consistency_signature_list_free ⚠ device_consistency_signature_list_push_back ⚠ device_consistency_signature_list_size ⚠ displayable_fingerprint_create ⚠ displayable_fingerprint_destroy ⚠ displayable_fingerprint_local ⚠ displayable_fingerprint_remote ⚠ displayable_fingerprint_text ⚠ ec_key_pair_create ⚠ ec_key_pair_destroy ⚠ ec_key_pair_get_private ⚠ ec_key_pair_get_public ⚠ ec_private_key_compare ⚠ ec_private_key_destroy ⚠ ec_private_key_serialize ⚠ Serialize the private key into a buffer that can be stored.
The format of this data is compatible with the input format of
curve_decode_private_point(). ec_public_key_compare ⚠ ec_public_key_destroy ⚠ ec_public_key_list_alloc ⚠ Allocate a new ec_public_key list ec_public_key_list_at ⚠ Gets the value of the element at a particular index in the list ec_public_key_list_copy ⚠ Copy an ec_public_key list ec_public_key_list_free ⚠ Free the ec_public_key list
@param list the list to free ec_public_key_list_push_back ⚠ Push a new value onto the end of the list ec_public_key_list_size ⚠ Gets the size of the list. ec_public_key_list_sort ⚠ Sorts the list based on a comparison of the key data. ec_public_key_memcmp ⚠ ec_public_key_serialize ⚠ Serialize the public key into a buffer that can be stored.
The format of this data is compatible with the input format of
curve_decode_point(). fingerprint_create ⚠ fingerprint_destroy ⚠ fingerprint_generator_create_for ⚠ Generate a scannable and displayble fingerprint. fingerprint_generator_create_for_list ⚠ Generate a scannable and displayble fingerprint for a list of keys fingerprint_generator_free ⚠ fingerprint_get_displayable ⚠ fingerprint_get_scannable ⚠ group_cipher_create ⚠ Construct a group cipher for encrypt/decrypt operations. group_cipher_decrypt ⚠ Decrypt a message. group_cipher_encrypt ⚠ Encrypt a message. group_cipher_free ⚠ group_cipher_get_user_data ⚠ Get the optional user data pointer for the group cipher. group_cipher_set_decryption_callback ⚠ Set the callback function that is called during the decrypt process. group_cipher_set_user_data ⚠ Set the optional user data pointer for the group cipher. group_session_builder_create ⚠ Constructs a group session builder. group_session_builder_create_session ⚠ Construct a group session for sending messages. group_session_builder_free ⚠ group_session_builder_process_session ⚠ Construct a group session for receiving messages from senderKeyName. hkdf_compare ⚠ hkdf_create ⚠ hkdf_derive_secrets ⚠ hkdf_destroy ⚠ pre_key_signal_message_copy ⚠ pre_key_signal_message_create ⚠ pre_key_signal_message_deserialize ⚠ pre_key_signal_message_destroy ⚠ pre_key_signal_message_get_base_key ⚠ pre_key_signal_message_get_identity_key ⚠ pre_key_signal_message_get_message_version ⚠ pre_key_signal_message_get_pre_key_id ⚠ pre_key_signal_message_get_registration_id ⚠ pre_key_signal_message_get_signal_message ⚠ pre_key_signal_message_get_signed_pre_key_id ⚠ pre_key_signal_message_has_pre_key_id ⚠ ratchet_chain_key_create ⚠ ratchet_chain_key_create_next ⚠ ratchet_chain_key_destroy ⚠ ratchet_chain_key_get_index ⚠ ratchet_chain_key_get_key ⚠ ratchet_chain_key_get_message_keys ⚠ ratchet_identity_key_pair_create ⚠ ratchet_identity_key_pair_deserialize ⚠ ratchet_identity_key_pair_destroy ⚠ ratchet_identity_key_pair_get_private ⚠ ratchet_identity_key_pair_get_public ⚠ ratchet_identity_key_pair_serialize ⚠ ratchet_root_key_compare ⚠ ratchet_root_key_create ⚠ ratchet_root_key_create_chain ⚠ ratchet_root_key_destroy ⚠ ratchet_root_key_get_key ⚠ ratcheting_session_alice_initialize ⚠ ratcheting_session_bob_initialize ⚠ ratcheting_session_symmetric_initialize ⚠ scannable_fingerprint_compare ⚠ Compare a scanned QR code with what we expect.
@param scannable The local scannable data
@param other_scannable The data from the scanned code
@retval 1 if the scannable codes match
@retval 0 if the scannable codes do not match
@retval SG_ERR_FP_VERSION_MISMATCH if the scanned fingerprint is the
wrong version
@retval SG_ERR_FP_IDENT_MISMATCH if the scanned fingerprint is for the
wrong stable identifier scannable_fingerprint_create ⚠ scannable_fingerprint_deserialize ⚠ scannable_fingerprint_destroy ⚠ scannable_fingerprint_get_local_fingerprint ⚠ scannable_fingerprint_get_local_stable_identifier ⚠ scannable_fingerprint_get_remote_fingerprint ⚠ scannable_fingerprint_get_remote_stable_identifier ⚠ scannable_fingerprint_get_version ⚠ scannable_fingerprint_serialize ⚠ sender_chain_key_create ⚠ sender_chain_key_create_message_key ⚠ sender_chain_key_create_next ⚠ sender_chain_key_destroy ⚠ sender_chain_key_get_iteration ⚠ sender_chain_key_get_seed ⚠ sender_key_distribution_message_copy ⚠ sender_key_distribution_message_create ⚠ sender_key_distribution_message_deserialize ⚠ sender_key_distribution_message_destroy ⚠ sender_key_distribution_message_get_chain_key ⚠ sender_key_distribution_message_get_id ⚠ sender_key_distribution_message_get_iteration ⚠ sender_key_distribution_message_get_signature_key ⚠ sender_key_message_copy ⚠ sender_key_message_create ⚠ sender_key_message_deserialize ⚠ sender_key_message_destroy ⚠ sender_key_message_get_ciphertext ⚠ sender_key_message_get_iteration ⚠ sender_key_message_get_key_id ⚠ sender_key_message_verify_signature ⚠ sender_key_record_add_sender_key_state ⚠ sender_key_record_copy ⚠ sender_key_record_create ⚠ sender_key_record_deserialize ⚠ sender_key_record_destroy ⚠ sender_key_record_get_sender_key_state ⚠ sender_key_record_get_sender_key_state_by_id ⚠ sender_key_record_get_user_record ⚠ sender_key_record_is_empty ⚠ sender_key_record_serialize ⚠ sender_key_record_set_sender_key_state ⚠ sender_key_record_set_user_record ⚠ sender_key_state_add_sender_message_key ⚠ sender_key_state_copy ⚠ sender_key_state_create ⚠ sender_key_state_deserialize ⚠ sender_key_state_destroy ⚠ sender_key_state_get_chain_key ⚠ sender_key_state_get_key_id ⚠ sender_key_state_get_signing_key_private ⚠ sender_key_state_get_signing_key_public ⚠ sender_key_state_has_sender_message_key ⚠ sender_key_state_remove_sender_message_key ⚠ sender_key_state_serialize ⚠ sender_key_state_set_chain_key ⚠ sender_message_key_create ⚠ sender_message_key_destroy ⚠ sender_message_key_get_cipher_key ⚠ sender_message_key_get_iteration ⚠ sender_message_key_get_iv ⚠ sender_message_key_get_seed ⚠ session_builder_create ⚠ Constructs a session builder. session_builder_free ⚠ session_builder_process_pre_key_bundle ⚠ Build a new session from a session_pre_key_bundle retrieved from a
server. session_cipher_create ⚠ Construct a session cipher for encrypt/decrypt operations on a session.
In order to use session_cipher, a session must have already been created
and stored using session_builder. session_cipher_decrypt_pre_key_signal_message ⚠ Decrypt a message. session_cipher_decrypt_signal_message ⚠ Decrypt a message. session_cipher_encrypt ⚠ Encrypt a message. session_cipher_free ⚠ session_cipher_get_remote_registration_id ⚠ Gets the remote registration ID for this session cipher. session_cipher_get_session_version ⚠ Gets the version of the session associated with this session cipher. session_cipher_get_user_data ⚠ Get the optional user data pointer for the session cipher. session_cipher_set_decryption_callback ⚠ Set the callback function that is called during the decrypt process. session_cipher_set_user_data ⚠ Set the optional user data pointer for the session cipher. session_pre_key_bundle_create ⚠ session_pre_key_bundle_destroy ⚠ session_pre_key_bundle_get_device_id ⚠ session_pre_key_bundle_get_identity_key ⚠ session_pre_key_bundle_get_pre_key ⚠ session_pre_key_bundle_get_pre_key_id ⚠ session_pre_key_bundle_get_registration_id ⚠ session_pre_key_bundle_get_signed_pre_key ⚠ session_pre_key_bundle_get_signed_pre_key_id ⚠ session_pre_key_bundle_get_signed_pre_key_signature ⚠ session_pre_key_create ⚠ session_pre_key_deserialize ⚠ session_pre_key_destroy ⚠ session_pre_key_get_id ⚠ session_pre_key_get_key_pair ⚠ session_pre_key_serialize ⚠ session_record_archive_current_state ⚠ Move the current session_state into the list of “previous” session
states,
and replace the current session_state with a fresh reset instance. session_record_copy ⚠ session_record_create ⚠ session_record_deserialize ⚠ session_record_destroy ⚠ session_record_get_previous_states_element ⚠ session_record_get_previous_states_head ⚠ session_record_get_previous_states_next ⚠ session_record_get_previous_states_remove ⚠ Removes the specified node in the previous states list.
@param node the node to remove
@return the node immediately following the removed node, or null if at
the end of the list session_record_get_state ⚠ session_record_get_user_record ⚠ session_record_has_session_state ⚠ session_record_is_fresh ⚠ session_record_promote_state ⚠ session_record_serialize ⚠ session_record_set_state ⚠ session_record_set_user_record ⚠ session_signed_pre_key_create ⚠ session_signed_pre_key_deserialize ⚠ session_signed_pre_key_destroy ⚠ session_signed_pre_key_get_id ⚠ session_signed_pre_key_get_key_pair ⚠ session_signed_pre_key_get_signature ⚠ session_signed_pre_key_get_signature_len ⚠ session_signed_pre_key_get_timestamp ⚠ session_signed_pre_key_serialize ⚠ session_state_add_receiver_chain ⚠ session_state_clear_unacknowledged_pre_key_message ⚠ session_state_copy ⚠ session_state_create ⚠ session_state_deserialize ⚠ session_state_destroy ⚠ session_state_get_alice_base_key ⚠ session_state_get_local_identity_key ⚠ session_state_get_local_registration_id ⚠ session_state_get_needs_refresh ⚠ session_state_get_pending_key_exchange_base_key ⚠ session_state_get_pending_key_exchange_identity_key ⚠ session_state_get_pending_key_exchange_ratchet_key ⚠ session_state_get_pending_key_exchange_sequence ⚠ session_state_get_previous_counter ⚠ session_state_get_receiver_chain_key ⚠ session_state_get_remote_identity_key ⚠ session_state_get_remote_registration_id ⚠ session_state_get_root_key ⚠ session_state_get_sender_chain_key ⚠ session_state_get_sender_ratchet_key ⚠ session_state_get_sender_ratchet_key_pair ⚠ session_state_get_session_version ⚠ session_state_has_message_keys ⚠ session_state_has_pending_key_exchange ⚠ session_state_has_sender_chain ⚠ session_state_has_unacknowledged_pre_key_message ⚠ session_state_remove_message_keys ⚠ session_state_serialize ⚠ session_state_set_alice_base_key ⚠ session_state_set_local_identity_key ⚠ session_state_set_local_registration_id ⚠ session_state_set_message_keys ⚠ session_state_set_needs_refresh ⚠ session_state_set_pending_key_exchange ⚠ session_state_set_previous_counter ⚠ session_state_set_receiver_chain_key ⚠ session_state_set_remote_identity_key ⚠ session_state_set_remote_registration_id ⚠ session_state_set_root_key ⚠ session_state_set_sender_chain ⚠ session_state_set_sender_chain_key ⚠ session_state_set_session_version ⚠ session_state_set_unacknowledged_pre_key_message ⚠ session_state_unacknowledged_pre_key_message_get_base_key ⚠ session_state_unacknowledged_pre_key_message_get_pre_key_id ⚠ session_state_unacknowledged_pre_key_message_get_signed_pre_key_id ⚠ session_state_unacknowledged_pre_key_message_has_pre_key_id ⚠ signal_buffer_alloc ⚠ Allocate a new buffer to store data of the provided length. signal_buffer_append ⚠ Append the provided data to an existing buffer.
Note: The underlying buffer is only expanded by an amount sufficient
to hold the data being appended. There is no additional reserved space
to reduce the need for memory allocations. signal_buffer_bzero_free ⚠ Zero and free the data buffer.
This function should be used when the buffer contains sensitive
data, to make sure the memory is cleared before being freed. signal_buffer_compare ⚠ Compare two buffers. signal_buffer_const_data ⚠ Gets the data pointer for the buffer.
This can be used to read and write data stored in the buffer. signal_buffer_copy ⚠ Create a copy of an existing buffer. signal_buffer_create ⚠ Create a new buffer and copy the provided data into it. signal_buffer_data ⚠ Gets the data pointer for the buffer.
This can be used to read and write data stored in the buffer. signal_buffer_free ⚠ Free the data buffer. signal_buffer_len ⚠ Gets the length of the data stored within the buffer. signal_buffer_list_alloc ⚠ Allocate a new buffer list. signal_buffer_list_at ⚠ Gets the value of the element at a particular index in the list signal_buffer_list_bzero_free ⚠ Free the buffer list, including all the buffers added to it.
This function should be used when the buffer list contains sensitive
data, to make sure the memory is cleared before being freed. signal_buffer_list_copy ⚠ Create a copy of an existing buffer list. signal_buffer_list_free ⚠ Free the buffer list, including all the buffers added to it. signal_buffer_list_push_back ⚠ Push the provided buffer onto the end of the list.
The list will take ownership of the buffer, and free it when the list is
freed. signal_buffer_list_size ⚠ Gets the size of the buffer list. signal_buffer_n_copy ⚠ Create a copy of an existing buffer. signal_context_create ⚠ Create a new instance of the global library context. signal_context_destroy ⚠ signal_context_set_crypto_provider ⚠ Set the crypto provider to be used by the Signal Protocol library. signal_context_set_locking_functions ⚠ Set the locking functions to be used by the Signal Protocol library for
synchronization. signal_context_set_log_function ⚠ Set the log function to be used by the Signal Protocol library for
logging. signal_int_list_alloc ⚠ Allocate a new int list signal_int_list_at ⚠ Gets the value of the element at a particular index in the list signal_int_list_free ⚠ Free the int list
@param list the list to free signal_int_list_push_back ⚠ Push a new value onto the end of the list signal_int_list_size ⚠ Gets the size of the list. signal_message_copy ⚠ signal_message_create ⚠ signal_message_deserialize ⚠ signal_message_destroy ⚠ signal_message_get_body ⚠ signal_message_get_counter ⚠ signal_message_get_message_version ⚠ signal_message_get_sender_ratchet_key ⚠ signal_message_is_legacy ⚠ signal_message_verify_mac ⚠ Verify the MAC on the Signal message. signal_protocol_identity_get_key_pair ⚠ signal_protocol_identity_get_local_registration_id ⚠ signal_protocol_identity_is_trusted_identity ⚠ signal_protocol_identity_save_identity ⚠ signal_protocol_key_helper_generate_identity_key_pair ⚠ Generate an identity key pair. Clients should only do this once,
at install time. signal_protocol_key_helper_generate_pre_keys ⚠ Generate a list of PreKeys. Clients should do this at install time, and
subsequently any time the list of PreKeys stored on the server runs low. signal_protocol_key_helper_generate_registration_id ⚠ Generate a registration ID. Clients should only do this once,
at install time. signal_protocol_key_helper_generate_sender_key ⚠ signal_protocol_key_helper_generate_sender_key_id ⚠ signal_protocol_key_helper_generate_sender_signing_key ⚠ signal_protocol_key_helper_generate_signed_pre_key ⚠ Generate a signed pre key signal_protocol_key_helper_get_random_sequence ⚠ Generate a random number between 0 (inclusive) and the provided maximum
(exclusive). signal_protocol_key_helper_key_list_element ⚠ Get the pre key element for the current node in the key list. signal_protocol_key_helper_key_list_free ⚠ Free the key list. signal_protocol_key_helper_key_list_next ⚠ Get the next element in the key list. signal_protocol_pre_key_contains_key ⚠ signal_protocol_pre_key_load_key ⚠ signal_protocol_pre_key_remove_key ⚠ signal_protocol_pre_key_store_key ⚠ signal_protocol_sender_key_load_key ⚠ signal_protocol_sender_key_store_key ⚠ signal_protocol_session_contains_session ⚠ signal_protocol_session_delete_all_sessions ⚠ signal_protocol_session_delete_session ⚠ signal_protocol_session_get_sub_device_sessions ⚠ signal_protocol_session_load_session ⚠ signal_protocol_session_store_session ⚠ signal_protocol_signed_pre_key_contains_key ⚠ signal_protocol_signed_pre_key_load_key ⚠ signal_protocol_signed_pre_key_remove_key ⚠ signal_protocol_signed_pre_key_store_key ⚠ signal_protocol_store_context_create ⚠ Create a new instance of the Signal Protocol data store interface. signal_protocol_store_context_destroy ⚠ signal_protocol_store_context_set_identity_key_store ⚠ signal_protocol_store_context_set_pre_key_store ⚠ signal_protocol_store_context_set_sender_key_store ⚠ signal_protocol_store_context_set_session_store ⚠ signal_protocol_store_context_set_signed_pre_key_store ⚠ signal_type_ref ⚠ signal_type_unref ⚠ symmetric_signal_protocol_parameters_create ⚠ symmetric_signal_protocol_parameters_destroy ⚠ symmetric_signal_protocol_parameters_get_our_base_key ⚠ symmetric_signal_protocol_parameters_get_our_identity_key ⚠ symmetric_signal_protocol_parameters_get_our_ratchet_key ⚠ symmetric_signal_protocol_parameters_get_their_base_key ⚠ symmetric_signal_protocol_parameters_get_their_identity_key ⚠ symmetric_signal_protocol_parameters_get_their_ratchet_key ⚠