Commit Graph

1655 Commits

Author SHA1 Message Date
Francis Lachapelle
11bbdee143 feat(mail): handle multiple mail identities
If no custom identity exists, initialize the mail identities of the user
with all the user's email addresses (extracted from MailFieldNames).

For this code path to be executed, the user must not have any of the
following defaults keys:

  SOGoMailIdentities
  SOGoMailCustomFullName
  SOGoMailCustomEmail
  SOGoMailReplyTo
  SOGoMailSignature

Fixes #768, fixes #4602
2020-06-26 15:28:33 -04:00
Johannes Kanefendt
5da8f1872b Use zip_error_strerror and zip_discard if available 2020-06-23 18:06:10 +02:00
Francis Lachapelle
7494bb3ae6 fix(preferences): improve handling of forward addresses
Fixes #5053
2020-06-22 17:12:05 -04:00
Ludovic Marcotte
f6a4dfcd04 fix(core): never use zip_error_init_with_code 2020-06-19 12:28:50 -04:00
Ludovic Marcotte
1389dcfe6b fix(core): no need to call zip_discard, it's handled in zip_close 2020-06-19 11:37:36 -04:00
Ludovic Marcotte
67f5e5e490 fix(core): second pass at libzip compat 2020-06-19 11:30:42 -04:00
Ludovic Marcotte
3c4b1af3ba fix(core): initial compat work on libzip 2020-06-19 11:07:07 -04:00
Francis Lachapelle
f8aa338e64 feat(mail): handle multiple mail identities
Fixes #768, fixes #4602
2020-06-18 16:53:42 -04:00
Francis Lachapelle
d39208efa0 fix(core): fix compilation of pkcs5_pbkdf2.c 2020-06-16 11:54:19 -04:00
Extra Fu
0094d65bb9 Merge pull request #276 from the-nic/feat/pbkdf2
feat(core): Add PBKDF2 support
2020-06-12 14:13:23 -04:00
Ludovic Marcotte
0e95de31cf fix(core): fixed linked and packaging for zip->libzip work 2020-06-12 14:09:33 -04:00
Extra Fu
04673e4673 Merge pull request #281 from jkanefendt/use-libzip
Use libzip API instead of zip command line tool for creating zip archives
2020-06-12 14:00:20 -04:00
Francis Lachapelle
cddfac82dd Revert "Revert "Revert "fix(core): added back instance caching for LDAP members"""
This reverts commit 056004bca1.
2020-06-09 15:15:06 -04:00
Francis Lachapelle
cb08abfa67 Revert "fix(core): avoid caching group members per instance"
This reverts commit 0ff0d43e1e.
2020-06-09 15:14:47 -04:00
Nicolas
27840093f5 feat(core): add lookupFields attribute in LDAP source
This field allows for looking up attributes not returned with the
default query, such as operational attributes.

Fixes #568

Co-authored-by: Skrupellos <skruppy@onmars.eu>
2020-06-09 11:52:07 -04:00
Johannes Kanefendt
9534816a21 Fixed some header comments 2020-06-09 13:55:08 +02:00
Johannes Kanefendt
b951c72451 Use libzip API for creating ZIP archives instead of zip command line tool 2020-06-09 13:50:29 +02:00
Ludovic Marcotte
0ff0d43e1e fix(core): avoid caching group members per instance 2020-06-08 10:26:33 -04:00
Ludovic Marcotte
056004bca1 Revert "Revert "fix(core): added back instance caching for LDAP members""
This reverts commit ca5df1a153.
2020-06-08 09:53:44 -04:00
Francis Lachapelle
ca5df1a153 Revert "fix(core): added back instance caching for LDAP members"
This reverts commit b94175cc0c.
2020-06-04 16:13:45 -04:00
Ludovic Marcotte
b94175cc0c fix(core): added back instance caching for LDAP members 2020-06-03 14:53:26 -04:00
Ludovic Marcotte
9f55cdc725 fix(core): added even better debugging for bogus groups 2020-06-03 07:46:57 -04:00
Nicolas Höft
fc863bf63f fix: Fix for failing test in NSString+Utilities
The test in TestNSString+Utilities would otherwise fail:

======================================================================
FAIL: test_countOccurrencesOfString (TestNSString+Utilities.m:46)
----------------------------------------------------------------------
assertion failure

Simply leave the loop early if the substring length is zero to
avoid this issue
2020-06-03 08:17:08 +02:00
Nicolas Höft
2e0fc3ca09 feat(core): Add PBKDF2 support
Extend NSData+Crypto to support PBKDF2 with SHA1 HMAC as dovecot
is using it since v2.3.0.

The format hashed passwords is {PBKDF2}$1$<salt>$<rounds>$<hashed value in hex>

The implementation of pkcs#5 PBKDF2 is taken from openbsd (with minor
adjustments) as OpenSSL and GnuTLS would require quite new versions to
support this hash.
2020-06-03 08:17:08 +02:00
Ludovic Marcotte
42587f7422 fix(core): improved debugging on bogus groups 2020-06-02 15:05:54 -04:00
Ludovic Marcotte
5b6096e32c fix(core): improve debbuging when dealing with groups 2020-05-26 09:25:25 -04:00
Ludovic Marcotte
e37ae5fec5 fix(core): disable ASM version of blowfish on i386 2020-05-21 08:51:56 -04:00
Extra Fu
30c0d8a425 Merge pull request #272 from the-nic/feat/blowfish
Add BLF-CRYPT password scheme support
2020-05-15 19:12:44 -04:00
Nicolas Höft
789b55c274 NSData+Crypto: add password verification function
This will allow for using specific verification, depending on the
scheme.
2020-05-15 22:53:15 +02:00
Ludovic Marcotte
798ad1502c fix(core): adjust syntax for Python > 2 2020-05-15 12:45:20 -04:00
Nicolas Höft
c3a4f4aeb4 fix(core): NSData+String: Simplify generateSalt function
Instead of converting binary data to base64 in order to get printable
data, use a white list of characters allowed and select from those.

This also makes sure we will get the right amount of characters as
requested, not potentially longer strings.
2020-05-15 07:43:38 +02:00
Nicolas Höft
8c612fc0a2 feat(core): Add BLF-CRYPT scheme.
Dovecot promotes the use of BLF-CRYPT as a hashing scheme [1].
However, as not all libc-crypt() implementations support this scheme,
use the implementation added in a previous commit.

Also, update the references to the dovecot implementation and a small
test case for testing the blowfish implementation.

[1] https://doc.dovecot.org/configuration_manual/authentication/password_schemes/

Fixes #4958
2020-05-15 07:43:38 +02:00
Nicolas Höft
562f81f21f fix(core): NSData+String: Dont mix tabs and spaces 2020-05-15 07:43:38 +02:00
Nicolas Höft
3040c275d8 feat(core): Add blowfish implementation from openwall
Using version 1.3, see https://www.openwall.com/crypt/
2020-05-15 07:43:38 +02:00
Nicolas Höft
589cfaa2f4 feat(core): Support smtps and STARTTLS for SMTP
Support uri schemes for SMTP, enabling STARTTLS and SMTPS for SMTP
connections.

The new format for configuration value SMTPServer supports passing a
URI scheme (either smtp:// or smtps://). To support old configurations,
if no scheme is given, smtp:// is assumed.

Fixes #31
2020-05-14 08:47:05 +02:00
Ludovic Marcotte
f78300a12e feat(core): initial Google Authenticator support for 2FA 2020-05-07 07:22:24 -04:00
Francis Lachapelle
7b5c787718 fix(core): LDAP group expansion must use all user sources 2020-05-05 12:18:37 -04:00
Francis Lachapelle
5da7903ce1 chore(tool): fallback to NGImap4ConnectionStringSeparator
When using a master user to update the Sieve scripts through sogo-tool,
we may not be able to detect the IMAP delimiter. Therefore, we must
fallback to the default NGImap4ConnectionStringSeparator.

Fixes #4919
2020-05-05 10:53:02 -04:00
Francis Lachapelle
8f7b2bfbed fix(core): LDAP group expansion must use all user sources 2020-05-04 12:25:16 -04:00
Francis Lachapelle
979e1342c7 docs: fix wrong default values for MailComposeMessageType and LoginModule
Fixes #4992
2020-04-06 15:38:45 -04:00
Extra Fu
62823815a7 Merge pull request #263 from jkanefendt/revise-group-expansion
Revision of the group member expansion interface
2020-04-02 09:52:21 -04:00
Ludovic Marcotte
f0980a9cbd feat(core): Added AES-128-CBC password scheme for SQL authentication.
This allows SOGo to use Plesk's database as an authentication source.
2020-01-06 15:47:47 -05:00
Francis Lachapelle
c1ccbae316 style(obj-c): replace tabs by spaces 2019-12-17 11:15:50 -05:00
Francis Lachapelle
7180b5988d fix(preferences): improve error handling with Sieve server 2019-12-16 14:54:03 -05:00
Johannes Kanefendt
948c89f5bb - Respect the user domain when dealing with groups
- Renamed protocol MembershipAwareSource to SOGoMembershipSource
2019-12-04 10:37:08 +01:00
Francis Lachapelle
3bb40e4024 fix(calendar): adjust invalid dates when importing a vEvent
Fixes #4845
2019-11-27 17:00:28 -05:00
Johannes Kanefendt
278d4ab4cb Return NSDictionary contact entries from [MembershipAwareSource membersForGroupWithUID] instead of SOGoUser objects.
Optimization for user sources that are capable of fetching lists of group members at once, might save a lot of expensive SOGoUser lookups.
2019-11-26 22:20:28 +01:00
Johannes Kanefendt
2e98929900 Removed tight coupling of group membership expansion and LDAPSource.
Any implementation of SOGoSource may now support group expansion by implementing the protocol MembershipAwareSource.
2019-11-26 15:29:02 +01:00
Francis Lachapelle
5b3d84ee24 refactor(preferences): conditionally activate the Sieve script
All the user defaults are now editable through the Preferences module,
even if an external Sieve script is enabled. However, the user can
disable the external Sieve script and force the activation of the
"sogo" Sieve script.
2019-11-15 14:37:35 -05:00
Ludovic Marcotte
2bc24eca82 fix(core): don't disable the current script if we aren't doing anything 2019-11-07 15:27:43 -05:00