Crate libsignal_protocol_sys

Source

Structs§

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

Constants§

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

Functions§

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