Commit Graph

9071 Commits

Author SHA1 Message Date
Hocuri
ef798cd86d fix: Allow to send to chats after failed securejoin again (#6817)
Revert the biggest part of https://github.com/chatmail/core/pull/6722/
in order to fix #6816. Reopens
https://github.com/chatmail/core/issues/6706.

Rationale for reverting instead of fixing is that it's not trivial to
implement "if the chat is encrypted, can_send() returns true": When
sending a message, in order to check whether to encrypt, we load all
peerstates and check whether all of them can be encrypted to
(`should_encrypt()`). We could do this in `can_send()`, but this would
make it quite slow for groups. With multi-transport, the ways of
checking whether to encrypt will be different, so in order not to do
unnecessary work now, this PR just revert parts of
[https://github.com/chatmail/core/pull/6722/](https://github.com/chatmail/core/pull/6817#),
so that we can make things work nicely when multi-transport is merged.

As a quick mitigation, we could increase the timeout from 15s to
something like 1 minute or 1 day: Long enough that usually securejoin
will finish before, but short enough that it's possible to send to old
chats that had a failed securejoin long in the past.
2025-04-23 20:55:50 +00:00
WofWca
9d3450f50c chore: clean up deltachat-jsonrpc dependencies
Move the dev dependencies to `[dev-dependencies]`,
remove the unused `log` dependency.
2025-04-19 15:57:43 +04:00
Hocuri
1db9b77711 fix: Lowercase address in add_transport() (#6805) 2025-04-17 12:19:28 +00:00
Mark Felder
a6713630b9 update 'takes longer' fallback wording again 2025-04-17 11:00:56 +02:00
link2xt
4168985869 chore: update yerpc to 0.6.4 2025-04-16 22:57:07 +00:00
link2xt
1ea8647018 test: test that key of the recipient is gossiped in 1:1 chats
It is needed for multi-device setups.
2025-04-16 12:00:47 +00:00
Hocuri
f311cae5ad fix: Parse login scheme in add_transport_from_qr() (#6802)
fix https://github.com/chatmail/core/issues/6801
2025-04-15 10:23:49 +02:00
Hocuri
7e8e4d2f39 api: Rename add_transport() -> add_or_update_transport() (#6800)
cc @nicodh
2025-04-15 10:19:25 +02:00
Hocuri
1379821b03 refactor: Move logins into SQL table (#6724)
Move all `configured_*` parameters into a new SQL table `transports`.
All `configured_*` parameters are deprecated; the only exception is
`configured_addr`, which is used to store the address of the primary
transport. Currently, there can only ever be one primary transport (i.e.
the `transports` table only ever has one row); this PR is not supposed
to change DC's behavior in any meaningful way.

This is a preparation for mt.

---------

Co-authored-by: l <link2xt@testrun.org>
2025-04-13 19:06:41 +02:00
link2xt
1722cb8851 test: fix mismatch between the contact and the account in securejoin tests 2025-04-13 05:48:58 +00:00
iequidoo
49c300d2ac test: Check headers absense straightforwardly
In the `test` cfg, introduce `MimeMessage::headers_removed` hash set and `header_exists()` function
returning whether the header exists in any part of the parsed message. `get_header()` shouldn't be
used in tests for checking absense of headers because it returns `None` for removed ("ignored")
headers.
2025-04-12 23:24:54 -03:00
link2xt
0e3277bc5a chore(release): prepare for 1.159.1 v1.159.1 2025-04-12 03:13:35 +00:00
link2xt
9f5e608c61 feat: track gossiping per (chat, fingerprint) pair
This change simplifies
updating the gossip timestamps
when we receive a message
because we only need to know
the keys received in Autocrypt-Gossip
header and which chat the message is
assigned to.
We no longer need to iterate
over the member list.

This is a preparation
for PGP contacts
and member lists that contain
key fingerprints rather than
email addresses.

This change also removes encryption preference
from Autocrypt-Gossip header.
It SHOULD NOT be gossiped
according to the Autocrypt specification
and we ignore encryption preference anyway
since 1.157.0.

test_gossip_optimization is removed
because it relied on a per-chat gossip_timestamp.
2025-04-12 02:51:11 +00:00
link2xt
0b82b42128 build: increase MSRV to 1.82.0
This allows using Option::is_none_or()
which is only available since 1.82.0.
2025-04-12 02:51:11 +00:00
link2xt
b4828c251f docs: MimeFactory.member_timestamps has the same order as To: rather than RCPT TO: 2025-04-11 18:35:56 +00:00
link2xt
7a4f0eed23 test: encrypt test_remove_member_bcc 2025-04-11 14:02:09 +00:00
link2xt
54a6b0efcb test: encrypt test_subject_in_group() 2025-04-11 14:02:09 +00:00
iequidoo
9229eae4e0 test: Autocrypt-Gossip header isn't sent in broadcast messages
Follow-up to 175145969c.
2025-04-11 00:39:32 -03:00
link2xt
3e8987b460 test: port test_delete_deltachat_folder to JSON-RPC 2025-04-09 13:28:26 +00:00
link2xt
634cbd14f0 fix: restart I/O when mvbox_move setting is changed
When the setting is enabled,
new IMAP loop should be started.
2025-04-08 23:33:31 +00:00
link2xt
31cf663f8b api(deltachat-rpc-client): add Account.add_transport() 2025-04-08 21:51:54 +00:00
link2xt
175145969c fix: never send Autocrypt-Gossip in broadcast lists
Broadcast lists are encrypted since 1.159.0,
but Autocrypt-Gossip was not disabled.
As Autocrypt-Gossip contains the email address
and the key of the recipient, it should
not be sent to broadcast lists.
2025-04-08 21:50:25 +00:00
link2xt
8db1a01d9a build: update crossbeam-channel from 0.5.14 to 0.5.15
crossbeam-channel 0.5.14 is yanked.
2025-04-08 21:45:12 +00:00
l
b3c5f64315 Merge pull request #6770 from chatmail/missing-chat-deleted-event
improve jsonrpc python bindings
2025-04-08 21:40:49 +00:00
Hocuri
35e717dd49 feat: Improve error message when the user tries to do AEAP (#6786)
The old error message was too confusing.
2025-04-08 23:37:35 +02:00
Hocuri
203e668928 ci: Don't make ruff format quiet (#6785)
Before this PR, it was not possible to see why `ruff format` failed
2025-04-08 15:11:59 +02:00
Hocuri
de38b413f1 doc: Two JsonRPC doc improvements (#6778) 2025-04-08 14:50:12 +02:00
B. Petersen
21010f4de6 add jsonrpc for info_contact_id 2025-04-08 14:29:58 +02:00
link2xt
b03edabb11 chore(release): perpare for 1.159.0 v1.159.0 2025-04-08 02:23:33 +00:00
l
4001d79e4b ci: upgrade Rust from 1.84.1 to 1.86.0 (#6784) 2025-04-07 21:42:10 +00:00
missytake
3513a97a3d fix: ruff complains about import sorting 2025-04-07 23:37:44 +02:00
missytake
072855daef fix: syntax 2025-04-07 22:55:09 +02:00
dependabot[bot]
dc87ba87c9 Merge pull request #6754 from chatmail/dependabot/cargo/serde-1.0.219 2025-04-07 20:11:20 +00:00
dependabot[bot]
2b3f030d6a chore(cargo): bump serde from 1.0.218 to 1.0.219
Bumps [serde](https://github.com/serde-rs/serde) from 1.0.218 to 1.0.219.
- [Release notes](https://github.com/serde-rs/serde/releases)
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.218...v1.0.219)

---
updated-dependencies:
- dependency-name: serde
  dependency-version: 1.0.219
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-07 19:51:39 +00:00
dependabot[bot]
a3bbdf0bec Merge pull request #6751 from chatmail/dependabot/cargo/image-0.25.6 2025-04-07 19:50:34 +00:00
dependabot[bot]
7a7f95f5ef Merge pull request #6739 from chatmail/dependabot/cargo/tempfile-3.19.1 2025-04-07 19:50:14 +00:00
link2xt
746b071be0 chore: update async-imap from 0.10.3 to 0.10.4 2025-04-07 19:07:33 +00:00
link2xt
d307e75b2f chore: update async-smtp from 0.10.0 to 0.10.1 2025-04-07 19:00:58 +00:00
bjoern
de5cbd3de3 move ASM strings to core, point to "Add Second Device" (#6777)
this PR moves now advanced/unsupported ASM strings to core, removing
work from translations, esp. as another hint is added which would
require retranslations. it is better to have that just in english, it is
a nerd feature anyways.

moverover, this PR removes special rendering of ASM in the summary,
which might be confusion, but mainly it is now unneeded, dead code

i'll do another android PR that will point to "Add Second Device"
already on ASM generation EDIT: done at
https://github.com/deltachat/deltachat-android/pull/3726

targets https://github.com/deltachat/deltachat-desktop/issues/4946
2025-04-07 18:44:41 +00:00
link2xt
5210b37601 test: update blob hash in blob::blob_tests::test_selfavatar_outside_blobdir 2025-04-07 18:40:09 +00:00
dependabot[bot]
4ad9fa144d chore(cargo): bump tempfile from 3.14.0 to 3.19.1
Bumps [tempfile](https://github.com/Stebalien/tempfile) from 3.14.0 to 3.19.1.
- [Changelog](https://github.com/Stebalien/tempfile/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Stebalien/tempfile/compare/v3.14.0...v3.19.1)

---
updated-dependencies:
- dependency-name: tempfile
  dependency-version: 3.19.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-07 18:22:12 +00:00
link2xt
a2d5a10f84 chore(cargo): bump fd-lock from 4.0.2 to 4.0.4 2025-04-07 18:21:12 +00:00
dependabot[bot]
b056314fd0 Merge pull request #6734 from chatmail/dependabot/cargo/tokio-1.44.1 2025-04-07 18:17:03 +00:00
B. Petersen
3b35d5e0ea fix: encrypt broadcast lists
it was all the time questionable if not encrypting broadcast lists
rules the issue that recipients may know each other cryptographically.

however, meanwhile with chatmail, unncrypted broadcasts are no longer possible,
and we actively broke workflows eg. from this teacher:
https://support.delta.chat/t/broadcast-funktioniert-nach-update-nicht-meht/3694

this basically reverts commit
7e5907daf2
which was that time added last-minute and without lots discussions :)

let the students get their homework again :)
2025-04-07 20:07:05 +02:00
missytake
5e95a70eca chore: add bug label on bug issue template
Co-authored-by: bjoern <r10s@b44t.com>
2025-04-07 19:26:19 +02:00
missytake
8d1e43b9d3 chore: add issue template 2025-04-07 19:26:19 +02:00
dependabot[bot]
ed2cf0a9d1 chore(cargo): bump tokio from 1.43.0 to 1.44.1
Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.43.0 to 1.44.1.
- [Release notes](https://github.com/tokio-rs/tokio/releases)
- [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.43.0...tokio-1.44.1)

---
updated-dependencies:
- dependency-name: tokio
  dependency-version: 1.44.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-07 16:49:03 +00:00
link2xt
ab0b4cad52 feat: do not consider encrypting to the primary key
Primary key is usually used for certification.
It is possible to make a certification- and encryption-
capable key with RSA, but RFC 9580 says
that implementations SHOULD NOT generate RSA keys.
2025-04-07 15:47:17 +00:00
Hocuri
11469ace78 chore(cargo): bump tokio from 1.43.0 to 1.43.1 (#6780)
For some reason I don't understand, when I update tokio to 1.44.*, cargo
deny complains about openssl.

This is needed to fix CI.
2025-04-07 15:23:17 +00:00
Hocuri
0ab54da2eb refactor: Move vcard code to their own file (#6776)
So that we can directly link to the tests from the new Autocrypt
specification.
2025-04-07 16:48:21 +02:00