Ecosyste.ms: OpenCollective

An open API service for software projects hosted on Open Collective.

github.com/katzenpost/mailproxy

POP/SMTP to Katzenpost proxy server library
https://github.com/katzenpost/mailproxy

api: Add `SendMessage` to Proxy, and allow disabling POP3/SMTP.

Part of #11.

a2a2e72e5fc0ae4516048481357fb8d091cb2705 authored almost 7 years ago by David Stainton <[email protected]>
send: Pull in the lambdaP each time a new Document is applied.

There's a slight delay based on minclient's polling frequency, but this
is a lot cleaner (and it...

21b04c3fe1d1feea9faa712e16a30628cb832be9 authored almost 7 years ago by Yawning Angel <[email protected]>
send: Use a Poisson distribution to schedule sends.

The naive implementation of the client cover traffic side of Loopix just
needs to well, send cov...

8b6bdb4ee37e51ec55ae40009896f511ff37ec69 authored almost 7 years ago by Yawning Angel <[email protected]>
account: Fix hang on teardown mid-worker state change.

2cfee4d1c671314bd7d9af38b44bf58fcedf0d83 authored almost 7 years ago by Yawning Angel <[email protected]>
mailproxy: Support connecting to AF_UNIX proxies.

Might as well do this too, though the only upstream proxy provider that
will use this is likely ...

debf76dc1604b759812c5546065cf7f2b5f38776 authored almost 7 years ago by Yawning Angel <[email protected]>
mailproxy: Support an upstream proxy.

The supported protocols are:
* ``, `none` - Direct connection without a proxy.
* `socks5` - ...

fc0313255cd24fb2e9f3a5ac58fae47096db9a2b authored almost 7 years ago by Yawning Angel <[email protected]>
send: Dramatically improve the send scheduler.

The old algorithm was a straight forward stop-and-wait ARQ. The new
algorithm sends the entire ...

35b6d7d15fa7680161cd68fab95b3cbf7ade1df8 authored almost 7 years ago by Yawning Angel <[email protected]>
pkiclient: Wire in the `Deserialize()` method.

I held off on this, but there's no reason why this shouldn't happen now.

b2d4151731cb8e4be6bdfbfcdcb4f35d672f4155 authored almost 7 years ago by Yawning Angel <[email protected]>
pkiclient: Update to the new PKI interface.

5689f434af829009bd613b6f2ef8cb1a0d17730b authored almost 7 years ago by Yawning Angel <[email protected]>
mailproxy: Use `gopkg.in/op/go-logging.v1` as the go-logging import.

c9fab09619344ab9c1a558b8c3105cda01bd8ff6 authored almost 7 years ago by Yawning Angel <[email protected]>
config: Use `ecdh.PrivateKey` for the various per-account keys.

This is better and more obvious when using the package as a library.

Part of #11.

ecc9921b697565d150f1eef7ce9762da5d2a3aa2 authored almost 7 years ago by Yawning Angel <[email protected]>
fixup! recv: Implement a receive timeout (`Debug.ReceiveTimeout`).

d96e6d7cc2d197086a8723eb938b4895e2284f62 authored almost 7 years ago by Yawning Angel <[email protected]>
recv: Implement a receive timeout (`Debug.ReceiveTimeout`).

Disabled by default, the timeout restarts after a given message has made
forward progress, and t...

cc5e55491908620d1f367241c332877a9006ac11 authored almost 7 years ago by Yawning Angel <[email protected]>
recv: BoltDB handles zero length values just fine.

a5a0467ab38db30bc3c8c573fbe561b48cab22bd authored almost 7 years ago by Yawning Angel <[email protected]>
send: Minor cleanups.

96ffcad63269f2f3bdabf69ebcc647dc919911f6 authored almost 7 years ago by Yawning Angel <[email protected]>
config,recv: Add an option for the poll interval (30 sec default).

`Debug.PollingInterval` is now a thing. Tuning this to a sensible
default is left as a matter o...

5b2ae8b7657658a919fdc981fe6b37a346622b3e authored almost 7 years ago by Yawning Angel <[email protected]>
account: Unbreak the build following minclient changes.

8b8c727bbe5384f84ea12c005e9f3c122abc4391 authored almost 7 years ago by Yawning Angel <[email protected]>
send: Generate bounce messages on delivery timeouts.

This can be improved still:

* If the message is making forward progress still, then the bounce...

0a5a32ca67b33d438dc8d8344b9749cecd1a3506 authored almost 7 years ago by Yawning Angel <[email protected]>
send: Send a multipart/report on partial enqueue failures.

If the SMTP server fails to enqueue messages for one or more (but not
all) recipients, a multipa...

f42dd6783b4c2c9f9e087e636266785b1c03784c authored almost 7 years ago by Yawning Angel <[email protected]>
fixup! imf,recv: Generate various multipart/reports on receive failures.

a005686211034c290c0620ddf700bc029f83b2b6 authored almost 7 years ago by Yawning Angel <[email protected]>
imf,recv: Generate various multipart/reports on receive failures.

* Add a multipart/report generator to the imf package.
* Wire it in to the receive side error ...

1e788cda8e4f249a03ad3cfa250f3be2f1644b2c authored almost 7 years ago by Yawning Angel <[email protected]>
send: Add support for sending unreliable mail.

`X-Katzenpost-Unreliable: true` will enable this behavior. Message
fragmentation still happens....

43397e86b58c03ed17027da9cdb913e4b2baae6b authored almost 7 years ago by Yawning Angel <[email protected]>
imf: Change the sender public key header to `X-Katzenpost-Sender`.

The old header was too long, and would get wrapped to be under the
suggested (SHOULD) maximum li...

3471d9412033305da8f6ead34f0b5f09388745e7 authored almost 7 years ago by Yawning Angel <[email protected]>
fixup! send,recv: Store message contents encrypted on disk

Set the non-standard Noise max message size to something rediculously
large. The current fragme...

ce9dfedbbd2e0530a8a4bfd0110ec4f2f1698b43 authored almost 7 years ago by Yawning Angel <[email protected]>
recv: Move the block processing out of the callback context.

Since the minclient behavior is to dispatch another `ReceiveMessage`
command after the callback ...

ca8018b6b63c4a735721cca6798885225a2c91b3 authored almost 7 years ago by Yawning Angel <[email protected]>
send,recv: Store message contents encrypted on disk

This stores message plaintext on disk in a encrypted envelope using
Noise_N encrypted with a per...

2573b352ecc0cc32dcab4b87214d763860f65795 authored almost 7 years ago by Yawning Angel <[email protected]>
config: Remove the `Force[Link,Identity]Key]` options.

In favor of something that is explicitly programatic, because no one
that is not using mailproxy...

794e55beb8586a1ef6d0670d21afe4f2ba263804 authored almost 7 years ago by Yawning Angel <[email protected]>
account: Disable the time syncing stuff beyond warning if excessive.

I need to think about what the best behavior is more before I'm
comfortable using skewed time.

67fc5fa60f7381c12d6c96487abd07c610cf1b70 authored almost 7 years ago by Yawning Angel <[email protected]>
send: Add support for sending over the mixnet.

This makes the SMTP server actually do something. In theory everything
but bounce message gener...

c4ef8823b7a0c0bd890be116cfdb5a858ec9108f authored almost 7 years ago by Yawning Angel <[email protected]>
recv: Use system time instead of skew corrected global time for the db.

59077e0429b663891898676097036ec7c75b2d9a authored about 7 years ago by Yawning Angel <[email protected]>
config: Kill `Debug.CaseSensitiveProviderIdentifiers`, use RFC 5891 instead.

Provider identifiers are now normalized following the IDNA Domain Lookup
Protocol conventions.

...

0c6ec610f8fe9b17c4cf23487b76255e0c1f9a95 authored about 7 years ago by Yawning Angel <[email protected]>
send: Refactor the final smtp event handler into it's own function.

This is somewhat cleaner, and more stuff will happen in here.

Part of #5.

6f61e9fe33698851b15680fe4dd598ff30e2be1a authored about 7 years ago by Yawning Angel <[email protected]>
send: Add a `Message-ID` header if the MUA neglects to add one.

f711c9837c32e6f12223b6c2cbb91eb45b67138c authored about 7 years ago by Yawning Angel <[email protected]>
send: Add the SMTP listener.

This doesn't actually do anything with the mail it accepts (though it
does validate `MAIL FROM`,...

d274f2e7351754c9770328a200055ba832fef5ac authored about 7 years ago by Yawning Angel <[email protected]>
recv: Canonicalize line endings per RFC 7103 Section 6.

f3fb065d0d14537422956b364f704617556b5fed authored about 7 years ago by Yawning Angel <[email protected]>
recv: Remove line length restrictions entirely.

The POP3 code uses textproto's DotWriter so there isn't a limit, and
attempting to enforce one j...

ab2880067089a61f30b84572c018f23d265274ad authored about 7 years ago by Yawning Angel <[email protected]>
imf: Allow 8 bit encoded messages (8BITMIME).

Regardless of what the RFC says, people will expect this to work, so we
should support it.

605d337aedd79a7de0f1e278a1e6ce002c9260c6 authored about 7 years ago by Yawning Angel <[email protected]>
recipient: Add a recipient public key store.

This provides an e-mail address -> ECDH public key store, and associated
thwack commands to set/...

b4d59f4449016042b681e21f1a446cf81fce0caa authored about 7 years ago by Yawning Angel <[email protected]>
config: Use PRECIS for handling username case normalization.

d98f120aa251868872e8ab2e7ff17a1e7c1b4d99 authored about 7 years ago by Yawning Angel <[email protected]>
thwack: Add the config boilerplate, and enable the management interface.

The only command registered so far are `SHUTDOWN` and `QUIT`, but this
appears to work fine.

Pa...

1c9985d16d2a8e390b7149d8ced5e81e0fbf49bf authored about 7 years ago by Yawning Angel <[email protected]>
config: Split the user/provider lower case disable settings.

Accounts can be case sensitive, provider identifiers as a general rule
can not.

c58222083bad9caa48778479405ad0a45c92c351 authored about 7 years ago by Yawning Angel <[email protected]>
recv: Ensure all lines in the message body are not oversized.

This reverts fca35dfc7b2e495beb1bbd12c650a04b26f38b75 in favor of
enforcing a generous 64 KiB li...

743f0c90b378dde5595d780349fb4fb016e2185a authored about 7 years ago by Yawning Angel <[email protected]>
recv: Enforce US-ASCII encoding on incoming messages.

The IMF spec mandates US-ASCII encoding for compliant messages, with the
solution for anything t...

c539abf9a5d373e99da8bf395f814820cb80f52b authored about 7 years ago by Yawning Angel <[email protected]>
recv: Refactor resetting the spool sequence number to it's own function.

There may come a time when someone adds a non-POP3 interface, and this
operation is something th...

031b88d109c0d329b4ec4df140e8059ed427a794 authored about 7 years ago by Yawning Angel <[email protected]>
pop3: Handle passwords containing whitespace.

5adbae37a840a9b6c250e9feaca14389c3c34c30 authored about 7 years ago by Yawning Angel <[email protected]>
pop3: Support "unlimited" line lengths.

There is no guarantee that the body of messages will adhere to the RFC
mandated line limits (998...

fca35dfc7b2e495beb1bbd12c650a04b26f38b75 authored about 7 years ago by Yawning Angel <[email protected]>
recv: Garbage collect the de-duplication cache.

The de-duplication cache is now periodically pruned of entries that are
older than 5 days, at mo...

339a157a7d24a1836ea28c1b038c8c49c86fca11 authored about 7 years ago by Yawning Angel <[email protected]>
recv: Validate the message header restrictions.

f09ce9d39f57bc29a48a8568138918c4f749e384 authored about 7 years ago by Yawning Angel <[email protected]>
Initial import, work in progress.

7d0fe6f48a32c8ad1b2356059e346ac08a78334c authored about 7 years ago by Yawning Angel <[email protected]>