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