I made an issue on Gitlab for Sender Keys. Gabriel has mostly finished the back end work. This will also imply that we need unidentified sending/sealed sending in Whisperfish, which greatly reduces the metadata that Signal gets from the Whisperfish client. More privacy, yay!
@direc85 and I are working very hard to get beta.13 out. A long while ago, I opened submissions for a new application icon. Whisperfish has evolved far beyond what was given to us as Whisperfish 0.5 by Andrew, and I think the time is right to pick a winner.
I have picked my four favourite proposals, out of very many submitted.
I think you will appreciate how well they convey āSignalā and Sailfish, without implicating either brand.
You can vote for your favourite here below.
To further help you decide, you can have a look at @gamagās post on Gitlab, which shows these icons in their context on the home screen.
I will close the poll when our glorious 0.6.0-beta.13 hits, or when it becomes obvious on which one the community votes. Weāll need some extra time to get the icon packaged and ready, and you will see it hit the Storeman soonā¢.
Apparently not after the first five minutes of posting a poll. Letās have the likes on your post count towards the voting, then, @pherjung.
Yessss ! (^_^) b
Maybe security-dashes should surround the entire fish - as it continues the essential idea of Signal.
The three dots are awesome ! I even prefer them placed just above the centerline of the fish - as drawn on your sketch ā¦ the fish also looks a bit more streamlined on the sketch.
Thanks for your contribution !
Letās maybe consider the current voting as a round for the concept, and we can have a second round for the exact variant
The picture that @pherjung posts is also one by @baxyz, FYI.
If I might add a sarcastic comment: given that Whisperfish is probably a bit more leaky compared to Signal itself, we might want to cut the dashed line at some place
( concerning your sarcasm )
With so many dashed is looks like the fish is imprisoned (in a fish farm)
If I may chip in with one thought:
I would prefer if the background color remained cyan-like rather than the royal blue.
Reasoning:
- Traditionally, WF has used a cyan-ish icon
- many messaging icons on SFOS are cyan-ish (āMessagesā, āBrowserā)
- Royal blue-ish is used by Twitter, Microsoft, Facebook (and yes, Signal), for some reason everyone thinks blue is the only color in the world.
Letās stay āunlikeā.
Iāve heard the same thought from a friend. Letās consider this voting as a first round on the concept, and then propose a few variants and maybe vote again
Yes, we could try new variants and backgrounds after the vote.
FYI, about the blue color, thatās because humanity is not only one culture and colors definitively depend on the culture; however, the blue color seems to be the most universal.
Just an example: check loyalty #54 in Colours in Cultures ā Information is Beautiful
Or under cavitation ā¦
Hi,
My friend bought a new phone and installed Signal on that. But I canāt receive nor send messages to her anymore on my Whisperfish. On Signal desktop everything works fine and messages that I send show up on Whisperfish. What can I do to fix this?
Here are some logs
[2022-11-24T18:32:28Z TRACE harbour_whisperfish::store::protocol_store] Loading session for ProtocolAddress { name: "censored-uuid-uuid-uuid-12characters", device_id: DeviceId(1) }
[2022-11-24T18:32:28Z TRACE harbour_whisperfish::store::protocol_store] Loading session for ProtocolAddress { name: "+censored_possible_phone_no", device_id: DeviceId(1) }
[2022-11-24T18:32:28Z ERROR harbour_whisperfish::worker::client] Sending typing notification: Error sending message: protocol error: untrusted identity for address censored-uuid-uuid-uuid-12characters.1
[2022-11-24T18:32:33Z INFO harbour_whisperfish::worker::client] ClientActor::SendTypingNotification(1)
[2022-11-24T18:32:33Z TRACE harbour_whisperfish::worker::client] Sending typing notification for session: Session {: censored_ false, is_pinned: true, is_silent: false, is_muted: false, expiring_message_timeout: None, draft: None, type: DirectMessage(Recipient {: censored_ Some("+censored_possible_phone_no"), uuid: Some("censored-uuid-uuid-uuid-12characters"), username: None, email: None, blocked: false,: censored_ None, profile_given_name: None, profile_family_name: None, profile_joined_name: None, signal_profile_avatar: None, profile_sharing: false, last_profile_fetch: Some(2022-11-24T16:42:42.censored_possible_phone_no), unidentified_access_mode: false, storage_service_id: None, storage_proto: None, capabilities: 0, last_gv1_migrate_reminder: None, last_session_reset: None }) }
[2022-11-24T18:32:33Z TRACE harbour_whisperfish::worker::client] Transmitting TypingMessage { timestamp: Some(censored_possible_phone_no), action: Some(Stopped), group_id: None } with timestamp censored_possible_phone_no
[2022-11-24T18:32:33Z TRACE libsignal_service::sender] sending message to default device
[2022-11-24T18:32:33Z TRACE harbour_whisperfish::store::protocol_store] Loading session for ProtocolAddress { name: "censored-uuid-uuid-uuid-12characters", device_id: DeviceId(1) }
[2022-11-24T18:32:33Z TRACE harbour_whisperfish::store::protocol_store] Loading session for ProtocolAddress { name: "+censored_possible_phone_no", device_id: DeviceId(1) }
[2022-11-24T18:32:33Z TRACE libsignal_service::sender] encrypting message for ProtocolAddress { name: "censored-uuid-uuid-uuid-12characters", device_id: DeviceId(1) }
[2022-11-24T18:32:33Z TRACE harbour_whisperfish::store::protocol_store] Loading session for ProtocolAddress { name: "censored-uuid-uuid-uuid-12characters", device_id: DeviceId(1) }
[2022-11-24T18:32:33Z INFO libsignal_service::sender] establishing new session with ProtocolAddress { name: "censored-uuid-uuid-uuid-12characters", device_id: DeviceId(1) }
[2022-11-24T18:32:33Z DEBUG libsignal_service_actix::push_service] HTTP request GET https://chat.signal.org/v2/keys/censored-uuid-uuid-uuid-12characters/*
[2022-11-24T18:32:33Z DEBUG libsignal_service_actix::push_service] AwcPushService::get response:
ClientResponse HTTP/1.1 200 OK
headers:
"content-length": "326"
"date": "Thu, 24 Nov 2022 18:32:33 GMT"
"vary": "Accept-Encoding"
"content-encoding": "gzip"
"connection": "keep-alive"
"x-signal-timestamp": "censored_possible_phone_no"
"content-type": "application/json"
[2022-11-24T18:32:33Z DEBUG libsignal_service_actix::push_service] GET response: "{\"identityKey\":\"BRZF1MgpUcUJpYGQsykBnH/w+43FPRsf2TETa2ROTIZi\",\"devices\":[{\"deviceId\":1,\"registrationId\":5385,\"signedPreKey\":{\"keyId\":censored_possible_phone_no,\"publicKey\":\"BT7/9OcPVJpTandjTjwMEPwHnzrZqcP0JvTOkNFs7eJz\",\"signature\":\"gkJI06axzf/+9Msl3LV9BaMjZeFLdSv5zQQJ7Hu7hkgYTANAersQ3/qGVbma8NGCTkdoTRJDaYYF1Lm1fNwiDA==\"},\"preKey\":{\"keyId\":censored_possible_phone_no,\"publicKey\":\"BWuMSJOME1foKKL1gnzLGiD/+zKRIxrYsQNT68wFre5i\"}}]}"
[2022-11-24T18:32:33Z TRACE harbour_whisperfish::store::protocol_store] Loading session for ProtocolAddress { name: "censored-uuid-uuid-uuid-12characters", device_id: DeviceId(1) }
[2022-11-24T18:32:33Z TRACE harbour_whisperfish::store::protocol_store] Loading session for ProtocolAddress { name: "+censored_possible_phone_no", device_id: DeviceId(1) }
[2022-11-24T18:32:33Z ERROR harbour_whisperfish::worker::client] Sending typing notification: Error sending message: protocol error: untrusted identity for address censored-uuid-uuid-uuid-12characters.1
[2022-11-24T18:32:35Z INFO harbour_whisperfish::worker::client] ClientActor::SendTypingNotification(1)
[2022-11-24T18:32:35Z TRACE harbour_whisperfish::worker::client] Sending typing notification for session: Session {: censored_ false, is_pinned: true, is_silent: false, is_muted: false, expiring_message_timeout: None, draft: None, type: DirectMessage(Recipient {: censored_ Some("+censored_possible_phone_no"), uuid: Some("censored-uuid-uuid-uuid-12characters"), username: None, email: None, blocked: false,: censored_ None, profile_given_name: None, profile_family_name: None, profile_joined_name: None, signal_profile_avatar: None, profile_sharing: false, last_profile_fetch: Some(2022-11-24T16:42:42.censored_possible_phone_no), unidentified_access_mode: false, storage_service_id: None, storage_proto: None, capabilities: 0, last_gv1_migrate_reminder: None, last_session_reset: None }) }
[2022-11-24T18:32:35Z TRACE harbour_whisperfish::worker::client] Transmitting TypingMessage { timestamp: Some(censored_possible_phone_no), action: Some(Stopped), group_id: None } with timestamp censored_possible_phone_no
[2022-11-24T18:32:35Z TRACE libsignal_service::sender] sending message to default device
[2022-11-24T18:32:35Z TRACE harbour_whisperfish::store::protocol_store] Loading session for ProtocolAddress { name: "censored-uuid-uuid-uuid-12characters", device_id: DeviceId(1) }
[2022-11-24T18:32:35Z TRACE harbour_whisperfish::store::protocol_store] Loading session for ProtocolAddress { name: "+censored_possible_phone_no", device_id: DeviceId(1) }
[2022-11-24T18:32:35Z TRACE libsignal_service::sender] encrypting message for ProtocolAddress { name: "censored-uuid-uuid-uuid-12characters", device_id: DeviceId(1) }
[2022-11-24T18:32:35Z TRACE harbour_whisperfish::store::protocol_store] Loading session for ProtocolAddress { name: "censored-uuid-uuid-uuid-12characters", device_id: DeviceId(1) }
[2022-11-24T18:32:35Z INFO libsignal_service::sender] establishing new session with ProtocolAddress { name: "censored-uuid-uuid-uuid-12characters", device_id: DeviceId(1) }
[2022-11-24T18:32:35Z DEBUG libsignal_service_actix::push_service] HTTP request GET https://chat.signal.org/v2/keys/censored-uuid-uuid-uuid-12characters/*
[2022-11-24T18:32:36Z DEBUG libsignal_service_actix::push_service] AwcPushService::get response:
ClientResponse HTTP/1.1 200 OK
headers:
"date": "Thu, 24 Nov 2022 18:32:36 GMT"
"content-length": "326"
"connection": "keep-alive"
"content-type": "application/json"
"x-signal-timestamp": "censored_possible_phone_no"
"content-encoding": "gzip"
"vary": "Accept-Encoding"
[2022-11-24T18:32:36Z DEBUG libsignal_service_actix::push_service] GET response: "{\"identityKey\":\"BRZF1MgpUcUJpYGQsykBnH/w+43FPRsf2TETa2ROTIZi\",\"devices\":[{\"deviceId\":1,\"registrationId\":5385,\"signedPreKey\":{\"keyId\":censored_possible_phone_no,\"publicKey\":\"BT7/9OcPVJpTandjTjwMEPwHnzrZqcP0JvTOkNFs7eJz\",\"signature\":\"gkJI06axzf/+9Msl3LV9BaMjZeFLdSv5zQQJ7Hu7hkgYTANAersQ3/qGVbma8NGCTkdoTRJDaYYF1Lm1fNwiDA==\"},\"preKey\":{\"keyId\":censored_possible_phone_no,\"publicKey\":\"Bf9/Y7A5s5Uxi/25a2dTklZaqJvndTcDHv7GQLqLSzse\"}}]}"
[2022-11-24T18:32:36Z TRACE harbour_whisperfish::store::protocol_store] Loading session for ProtocolAddress { name: "censored-uuid-uuid-uuid-12characters", device_id: DeviceId(1) }
[2022-11-24T18:32:36Z TRACE harbour_whisperfish::store::protocol_store] Loading session for ProtocolAddress { name: "+censored_possible_phone_no", device_id: DeviceId(1) }
[2022-11-24T18:32:36Z ERROR harbour_whisperfish::worker::client] Sending typing notification: Error sending message: protocol error: untrusted identity for address censored-uuid-uuid-uuid-12characters.1
[2022-11-24T18:32:37Z INFO harbour_whisperfish::worker::client] ClientActor::SendTypingNotification(1)
[2022-11-24T18:32:37Z TRACE harbour_whisperfish::worker::client] Sending typing notification for session: Session {: censored_ false, is_pinned: true, is_silent: false, is_muted: false, expiring_message_timeout: None, draft: None, type: DirectMessage(Recipient {: censored_ Some("+censored_possible_phone_no"), uuid: Some("censored-uuid-uuid-uuid-12characters"), username: None, email: None, blocked: false,: censored_ None, profile_given_name: None, profile_family_name: None, profile_joined_name: None, signal_profile_avatar: None, profile_sharing: false, last_profile_fetch: Some(2022-11-24T16:42:42.censored_possible_phone_no), unidentified_access_mode: false, storage_service_id: None, storage_proto: None, capabilities: 0, last_gv1_migrate_reminder: None, last_session_reset: None }) }
[2022-11-24T18:32:37Z TRACE harbour_whisperfish::worker::client] Transmitting TypingMessage { timestamp: Some(censored_possible_phone_no), action: Some(Started), group_id: None } with timestamp censored_possible_phone_no
[2022-11-24T18:32:37Z TRACE libsignal_service::sender] sending message to default device
[2022-11-24T18:32:37Z TRACE harbour_whisperfish::store::protocol_store] Loading session for ProtocolAddress { name: "censored-uuid-uuid-uuid-12characters", device_id: DeviceId(1) }
[2022-11-24T18:32:37Z TRACE harbour_whisperfish::store::protocol_store] Loading session for ProtocolAddress { name: "+censored_possible_phone_no", device_id: DeviceId(1) }
[2022-11-24T18:32:37Z TRACE libsignal_service::sender] encrypting message for ProtocolAddress { name: "censored-uuid-uuid-uuid-12characters", device_id: DeviceId(1) }
[2022-11-24T18:32:37Z TRACE harbour_whisperfish::store::protocol_store] Loading session for ProtocolAddress { name: "censored-uuid-uuid-uuid-12characters", device_id: DeviceId(1) }
[2022-11-24T18:32:37Z INFO libsignal_service::sender] establishing new session with ProtocolAddress { name: "censored-uuid-uuid-uuid-12characters", device_id: DeviceId(1) }
[2022-11-24T18:32:37Z DEBUG libsignal_service_actix::push_service] HTTP request GET https://chat.signal.org/v2/keys/censored-uuid-uuid-uuid-12characters/*
[2022-11-24T18:32:37Z TRACE harbour_whisperfish::actor::messageactor] MessageActor::handle(QueueMessage { recipient: "+censored_possible_phone_no", message: "Test", attachment: "" })
[2022-11-24T18:32:37Z TRACE harbour_whisperfish::store] Called fetch_or_insert_session_by_recipient_id(2)
[2022-11-24T18:32:37Z TRACE harbour_whisperfish::store] Called fetch__session_by_recipient_id(2)
[2022-11-24T18:32:37Z TRACE harbour_whisperfish::store] Called create_message(..) for session 1
[2022-11-24T18:32:37Z TRACE harbour_whisperfish::store] Creating message for timestamp 2022-11-24 18:32:37.955
[2022-11-24T18:32:37Z TRACE harbour_whisperfish::store] Called mark_session_archived(1, false)
[2022-11-24T18:32:37Z TRACE harbour_whisperfish::store] Inserted message id 11874
[2022-11-24T18:32:37Z INFO harbour_whisperfish::worker::client] ClientActor::SendMessage(11874)
[2022-11-24T18:32:37Z TRACE harbour_whisperfish::store] Called fetch_message_by_id(11874)
[2022-11-24T18:32:37Z TRACE harbour_whisperfish::worker::client] Sending for session: Session {: censored_ false, is_pinned: true, is_silent: false, is_muted: false, expiring_message_timeout: None, draft: None, type: DirectMessage(Recipient {: censored_ Some("+censored_possible_phone_no"), uuid: Some("censored-uuid-uuid-uuid-12characters"), username: None, email: None, blocked: false,: censored_ None, profile_given_name: None, profile_family_name: None, profile_joined_name: None, signal_profile_avatar: None, profile_sharing: false, last_profile_fetch: Some(2022-11-24T16:42:42.censored_possible_phone_no), unidentified_access_mode: false, storage_service_id: None, storage_proto: None, capabilities: 0, last_gv1_migrate_reminder: None, last_session_reset: None }) }
[2022-11-24T18:32:37Z TRACE harbour_whisperfish::worker::client] Sending message: Message {: censored_ 1, text: Some("Test"), sender_recipient_id: Some(2), received_timestamp: None, sent_timestamp: None, server_timestamp: 2022-11-24T18:32:37.955, is_read: true, is_outbound: true, flags: 0, expires_in: None, expiry_started: None, schedule_send_time: None, is_bookmarked: false, use_unidentified: false, is_remote_deleted: false, sending_has_failed: false }
[2022-11-24T18:32:37Z TRACE harbour_whisperfish::worker::client] Transmitting DataMessage { body: Some("Test"), attachments: [], group: None, group_v2: None, flags: None, expire_timer: None,: censored_ Some(censored_possible_phone_no), quote: None, contact: [], preview: [], sticker: None, required_protocol_version: Some(0), is_view_once: None, reaction: None, delete: None, body_ranges: [], group_call_update: None, payment: None } with timestamp censored_possible_phone_no
[2022-11-24T18:32:37Z TRACE libsignal_service::sender] sending message to default device
[2022-11-24T18:32:37Z TRACE harbour_whisperfish::store::protocol_store] Loading session for ProtocolAddress { name: "censored-uuid-uuid-uuid-12characters", device_id: DeviceId(1) }
[2022-11-24T18:32:37Z TRACE harbour_whisperfish::store::protocol_store] Loading session for ProtocolAddress { name: "+censored_possible_phone_no", device_id: DeviceId(1) }
[2022-11-24T18:32:37Z TRACE libsignal_service::sender] encrypting message for ProtocolAddress { name: "censored-uuid-uuid-uuid-12characters", device_id: DeviceId(1) }
[2022-11-24T18:32:37Z TRACE harbour_whisperfish::store::protocol_store] Loading session for ProtocolAddress { name: "censored-uuid-uuid-uuid-12characters", device_id: DeviceId(1) }
[2022-11-24T18:32:37Z INFO libsignal_service::sender] establishing new session with ProtocolAddress { name: "censored-uuid-uuid-uuid-12characters", device_id: DeviceId(1) }
[2022-11-24T18:32:37Z DEBUG libsignal_service_actix::push_service] HTTP request GET https://chat.signal.org/v2/keys/censored-uuid-uuid-uuid-12characters/*
[2022-11-24T18:32:38Z DEBUG libsignal_service_actix::push_service] AwcPushService::get response:
ClientResponse HTTP/1.1 413 Payload Too Large
headers:
"date": "Thu, 24 Nov 2022 18:32:38 GMT"
"x-signal-timestamp": "censored_possible_phone_no"
"content-length": "453"
"retry-after": "600"
"connection": "keep-alive"
"cache-control": "must-revalidate,no-cache,no-store"
"content-type": "text/html;charset=iso-8859-1"
[2022-11-24T18:32:38Z TRACE harbour_whisperfish::store] Setting message 11874 to failed
[2022-11-24T18:32:38Z ERROR harbour_whisperfish::worker::client] Sending message: Error sending message: Rate limit exceeded
[2022-11-24T18:32:38Z TRACE harbour_whisperfish::model::message] Mark message 11874 failed'
[2022-11-24T18:32:38Z DEBUG libsignal_service_actix::push_service] AwcPushService::get response:
ClientResponse HTTP/1.1 200 OK
headers:
"connection": "keep-alive"
"date": "Thu, 24 Nov 2022 18:32:38 GMT"
"content-length": "327"
"vary": "Accept-Encoding"
"content-type": "application/json"
"content-encoding": "gzip"
"x-signal-timestamp": "censored_possible_phone_no"
[2022-11-24T18:32:38Z DEBUG libsignal_service_actix::push_service] GET response: "{\"identityKey\":\"BRZF1MgpUcUJpYGQsykBnH/w+43FPRsf2TETa2ROTIZi\",\"devices\":[{\"deviceId\":1,\"registrationId\":5385,\"signedPreKey\":{\"keyId\":censored_possible_phone_no,\"publicKey\":\"BT7/9OcPVJpTandjTjwMEPwHnzrZqcP0JvTOkNFs7eJz\",\"signature\":\"gkJI06axzf/+9Msl3LV9BaMjZeFLdSv5zQQJ7Hu7hkgYTANAersQ3/qGVbma8NGCTkdoTRJDaYYF1Lm1fNwiDA==\"},\"preKey\":{\"keyId\":censored_possible_phone_no,\"publicKey\":\"Bc5RwrSCXxIby6L9z6xgLIb7DQr9PR0h+t+j2mwmz0cu\"}}]}"
[2022-11-24T18:32:38Z TRACE harbour_whisperfish::store::protocol_store] Loading session for ProtocolAddress { name: "censored-uuid-uuid-uuid-12characters", device_id: DeviceId(1) }
[2022-11-24T18:32:38Z TRACE harbour_whisperfish::store::protocol_store] Loading session for ProtocolAddress { name: "+censored_possible_phone_no", device_id: DeviceId(1) }
[2022-11-24T18:32:38Z ERROR harbour_whisperfish::worker::client] Sending typing notification: Error sending message: protocol error: untrusted identity for address censored-uuid-uuid-uuid-12characters.1
[2022-11-24T18:33:06Z TRACE libsignal_service_actix::websocket] Triggering keep-alive
[2022-11-24T18:33:06Z TRACE libsignal_service::messagepipe] Sending request WebSocketRequestMessage { verb: Some("GET"), path: Some("/v1/keepalive"), body: None, headers: [],: censored_
[2022-11-24T18:33:06Z TRACE libsignal_service::messagepipe] request on route.
[2022-11-24T18:33:07Z TRACE libsignal_service::messagepipe] Decoded WebSocketMessage { r#type: Some(Response), request: None, response: Some(WebSocketResponseMessage {: censored_ Some(200), message: Some("OK"), headers: ["Content-Length:0"], body: None }) }
Go into Settings, enable developer mode. Then go to your friends session, swipe right, pull down to Reset identity key
, let it be reset. Then pull down again to reset secure session
. That should fix it in theory, but Iām not sure what the rate limit exceeded error means in this case.
That did the trick. Thanks for the help.
Since a few days back I can only send send messages from whisperfish when connected to wifi. When starting whisperfish while connected to 4G (and not wifi) the whisperfish log say:
QConnmanTechnologyInterface::scanReply() "No carrier"
I can however still receive whisperfish messages and other services like browsing, mail and phone calls works without problems.
I have not done any changes to whisperfish or SFOS installation lately. Running beta 12 on SFOS 4.4.0.72.
Anyone else who has seen this problem?
Thatās interesting. In principle, Qt has no business with the network logic. Could you run Whisperfish in verbose mode, and get me the logs?
Thanks! I didnāt find a way to attach logs in PM so I created an issue:
If this is what I think it is, every Whisperfish user will hit this issue within the next few days. Iām working on something that should resolve some 428 errors, that should also alleviate what you describe. Beta 13 might have to hit sooner than we anticipated