Code
Hub
Workspaces
Following
Trending
Connect
MCP
copy
Create free account
hub
/
github.com/ShilohEye/bitchat-terminal
/ functions
Functions
76 in github.com/ShilohEye/bitchat-terminal
⨍
Functions
76
◇
Types & classes
16
↓ 8 callers
Function
decompress
(data: &[u8])
src/compression.rs:20
↓ 5 callers
Function
create_bitchat_packet
(sender_id_str: &str, msg_type: MessageType, payload: Vec<u8>)
src/main.rs:2780
↓ 4 callers
Method
encrypt
Encrypt data for a specific peer
src/encryption.rs:168
↓ 3 callers
Function
create_bitchat_message_payload_full
(sender: &str, content: &str, channel: Option<&str>, is_private: bool, sender_peer_id: &str)
src/main.rs:2549
↓ 3 callers
Function
create_bitchat_packet_with_recipient
(sender_id_str: &str, recipient_id_str: Option<&str>, msg_type: MessageType, payload: Vec<u8>, signature: Opti
src/main.rs:2792
↓ 3 callers
Method
decrypt
Decrypt data from a specific peer
src/encryption.rs:189
↓ 3 callers
Method
get_combined_public_key_data
Create combined public key data for exchange (96 bytes total)
src/encryption.rs:71
↓ 2 callers
Method
add_channel
(&mut self, channel: &str)
src/terminal_ux.rs:90
↓ 2 callers
Method
add_peer_public_key
Add peer's combined public keys
src/encryption.rs:80
↓ 2 callers
Function
derive_encryption_key
Derive AES key from identity key using HKDF-like approach
src/persistence.rs:104
↓ 2 callers
Function
get_state_file_path
()
src/persistence.rs:49
↓ 1 callers
Method
add_dm
(&mut self, nickname: &str, peer_id: &str)
src/terminal_ux.rs:96
↓ 1 callers
Function
decrypt_password
Decrypt a password using the identity key
src/persistence.rs:135
↓ 1 callers
Method
encrypt_with_key
Encrypt data with a channel key (for password-protected channels)
src/encryption.rs:244
↓ 1 callers
Function
find_peripheral
(adapter: &btleplug::platform::Adapter)
src/main.rs:2360
↓ 1 callers
Function
generate_keys_and_payload
(encryption_service: &EncryptionService)
src/main.rs:2766
↓ 1 callers
Method
get_peer_identity_key
Get peer's persistent identity key for favorites
src/encryption.rs:149
↓ 1 callers
Function
load_state
()
src/persistence.rs:62
↓ 1 callers
Function
parse_bitchat_packet
(data: &[u8])
src/main.rs:2645
↓ 1 callers
Function
save_state
(state: &AppState)
src/persistence.rs:96
↓ 1 callers
Function
send_packet_with_fragmentation
Swift-compatible packet sending with automatic fragmentation
src/main.rs:3017
Method
add_fragment
(&mut self, fragment_id: [u8; 8], index: u16, total: u16, original_type: u8, data: Vec<u8>, sender_id: String)
src/main.rs:220
Function
clear_screen
()
src/terminal_ux.rs:317
Function
compress_if_beneficial
(data: &[u8])
src/compression.rs:7
Function
create_bitchat_message_payload
(sender: &str, content: &str, channel: Option<&str>)
src/main.rs:2536
Function
create_bitchat_message_payload_with_flags
(sender: &str, content: &str, channel: Option<&str>, is_private: bool)
src/main.rs:2543
Function
create_bitchat_packet_with_recipient_and_signature
(sender_id_str: &str, recipient_id_str: &str, msg_type: MessageType, payload: Vec<u8>, signature: Option<Vec<u
src/main.rs:2788
Function
create_bitchat_packet_with_signature
(sender_id_str: &str, msg_type: MessageType, payload: Vec<u8>, signature: Option<Vec<u8>>)
src/main.rs:2784
Function
create_delivery_ack
Create delivery ACK matching iOS format
src/main.rs:2926
Function
create_encrypted_channel_message_payload
( sender: &str, content: &str, channel: &str, channel_key: &[u8; 32], encryption_servic
src/main.rs:2595
Function
create_fragment_packet
(sender_id: &str, fragment: Fragment)
src/main.rs:2971
Function
decompress_raw
(data: &[u8], output_size: usize)
src/compression.rs:27
Method
decrypt_with_key
Decrypt data with a channel key
src/encryption.rs:261
Method
derive_channel_key
Derive channel key from password (matching Swift's PBKDF2 implementation)
src/encryption.rs:232
Method
encrypt_for_peer
Encrypt data specifically for a peer (used for ACKs)
src/encryption.rs:285
Function
encrypt_password
Encrypt a password using the identity key
src/persistence.rs:115
Method
enter_dm_mode
(&mut self, nickname: &str, peer_id: &str)
src/terminal_ux.rs:100
Function
format_message_display
( timestamp: DateTime<Local>, sender: &str, content: &str, is_private: bool, is_channel: b
src/terminal_ux.rs:214
Method
format_prompt
(&self)
src/terminal_ux.rs:29
Function
fragment_id_to_hex
(fragment_id: &[u8; 8])
src/fragmentation.rs:31
Function
fragment_payload
(payload: &[u8], original_msg_type: u8)
src/fragmentation.rs:52
Method
get_channel
(&self)
src/terminal_ux.rs:323
Method
get_conversation_list_with_numbers
(&self)
src/terminal_ux.rs:181
Method
get_dm_target
(&self)
src/terminal_ux.rs:331
Method
get_mode_info
(&self)
src/terminal_ux.rs:133
Method
get_peer_fingerprint
Calculate SHA256 fingerprint of a peer's identity key (first 16 bytes as hex)
src/encryption.rs:155
Method
get_status_line
(&self)
src/terminal_ux.rs:37
Method
has_peer_key
Check if we have a peer's encryption key
src/encryption.rs:279
Function
hex_to_fragment_id
(hex: &str)
src/fragmentation.rs:37
Method
is_private
(&self)
src/terminal_ux.rs:339
Function
main
()
src/main.rs:281
Method
mark_delivered
(&mut self, message_id: &str)
src/main.rs:197
Method
new
()
src/main.rs:186
Method
new
()
src/encryption.rs:44
Method
new
()
src/terminal_ux.rs:20
Method
new
()
src/persistence.rs:34
Function
parse_bitchat_message_payload
(data: &[u8])
src/main.rs:2400
Function
print_help
()
src/terminal_ux.rs:268
Method
remove_channel
(&mut self, channel: &str)
src/terminal_ux.rs:128
Function
send_channel_announce
( peripheral: &Peripheral, cmd_char: &Characteristic, my_peer_id: &str, channel: &str, is_
src/main.rs:3168
Function
should_fragment
Enable fragmentation to match Swift's 500-byte threshold This fixes the issue where messages disappear after a certain length
src/main.rs:3012
Function
should_send_ack
Check if we should send an ACK for this message (matching iOS logic)
src/main.rs:2948
Method
should_send_ack
(&mut self, ack_id: &str)
src/main.rs:201
Method
show_conversation_list
(&self)
src/terminal_ux.rs:141
Method
sign
Sign data using our signing key
src/encryption.rs:212
Method
switch_to_channel
(&mut self, channel: &str)
src/terminal_ux.rs:110
Method
switch_to_channel_silent
(&mut self, channel: &str)
src/terminal_ux.rs:117
Method
switch_to_number
(&mut self, num: usize)
src/terminal_ux.rs:54
Method
switch_to_public
(&mut self)
src/terminal_ux.rs:122
Function
test_channel_key_derivation
()
src/encryption.rs:320
Function
test_key_exchange
()
src/encryption.rs:296
Function
test_message_type_values
()
src/main.rs:3205
Function
test_protocol_constants
()
src/main.rs:3223
Method
track_message
(&mut self, message_id: String, content: String, is_private: bool)
src/main.rs:193
Function
unpad_message
Remove PKCS#7 padding from data
src/main.rs:2377
Method
verify
(&self, signature: &[u8], data: &[u8], peer_id: &str)
src/encryption.rs:219