Hello BouncyCastle C# devs,

I had an issue with the DTLS part of the BouncyCastle C# Library recently:
When a DTLS handshake fails or is aborted, DtlsServerProtocol.Accept() never
returns and loops endlessly instead, because in
DtlsReliableHandshake.ReceiveMessage() all IOExceptions are caught and
ignored, and TlsFatalAlert() is an IOException as well. This is a pretty
serious issue because it seems it can be triggered from the DTLS client and
it hogs an entire CPU core on the server. This issue has been fixed in the
Java version since release 1.62 in June 2019.

I've already submitted a GitHub Issue
(https://github.com/bcgit/bc-csharp/issues/258) and someone else already
submitted a PR to fix this issue, but there hasn't been a response for about
a week, so I thought maybe this mailing list is a better place for this.

Also, it seems like the DTLS code has had quite a few other changes in the
Java version last year that would be nice-to-have in the C# version as well
(like a DTLS handshake timeout, which I had to implement myself for now).


Best Regards,
Patrick Krämer


Reply via email to