0 votes
by (120 points)

I am trying to use Cipher TlsCipherSuite.ECDHE_RSA_WITH_AES_256_GCM_SHA384, but get the error: Fatal error 'ProtocolVersion' has been reported by the remote connection end.

When I test the remote end using Postman and only enabling this Cipher, it works.

When I enable logs for the library, I get the following information:

2024-05-27 12:06:53 DEBUG HttpRequest(7)[127209262] Info: Assembly: Rebex.Common R5.9 for .NET Compact Framework 3.5
2024-05-27 12:06:53 DEBUG HttpRequest(7)[127209262] Info: Platform: Windows CE 6.0.0 32-bit; CLR: 3.5.10010.0

2024-05-27 12:06:53 DEBUG HttpRequest(5)[115082114] TLS: Enabled cipher suites: 0x0008000000000000.
2024-05-27 12:06:53 DEBUG HttpRequest(5)[115082114] TLS: Applicable cipher suites: 0x0000000000000000.
2024-05-27 12:06:53 DEBUG HttpRequest(3)[115147174] TLS: Enabled cipher suites: 0x0008000000000000.
2024-05-27 12:06:53 DEBUG HttpRequest(3)[115147174] TLS: Applicable cipher suites: 0x0000000000000000.
2024-05-27 12:06:54 VERBOSE HttpRequest(3)[115147174] TLS: Sent TLS packet:
0000 |16-03-03-00-80-01-00-00 7C-03-03-66-54-77-5D-1F| ........|..fTw].
......
0070 |14-00-12-04-01-04-03-05 01-05-03-06-01-06-03-02| ................
0080 |01-02-03-02-02 | .....
2024-05-27 12:06:54 DEBUG HttpRequest(3)[115147174] TLS: HandshakeMessage:ClientHello was sent.
2024-05-27 12:06:54 VERBOSE HttpRequest(5)[115082114] TLS: Sent TLS packet:
0000 |16-03-03-00-80-01-00-00 7C-03-03-66-54-77-5D-0A| ........|..fTw].
......
0070 |14-00-12-04-01-04-03-05 01-05-03-06-01-06-03-02| ................
0080 |01-02-03-02-02 | .....
2024-05-27 12:06:54 DEBUG HttpRequest(5)[115082114] TLS: HandshakeMessage:ClientHello was sent.
2024-05-27 12:06:55 VERBOSE HttpRequest(5)[115082114] TLS: Received TLS packet:
0000 |15-03-03-00-02-02-46 | ......F
2024-05-27 12:06:55 INFO HttpRequest(5)[115082114] TLS: Fatal Alert:ProtocolVersion was received.
2024-05-27 12:06:56 DEBUG HttpRequest(5)[115082114] TLS: Rebex.Net.TlsException: Fatal error 'ProtocolVersion' has been reported by the remote connection end.
at jdkls.ztdoj.zyvzh(Byte[] p0, Int32 p1, Int32 p2)
at jdkls.yehiv.cwvbj(Byte[] p0, Int32 p1, Int32 p2)
at jdkls.yehiv.rvgxw()

What is causing this "Protocol Error"?
Which ciphers are supported in ".NET Compact Framework" library?

BR Martin

1 Answer

0 votes
by (146k points)

.NET Compact Framework edition of Rebex libraries support the same TLS 1.2 ciphers as the mainstream edition, but ECDHE ciphers require a plugin on .NET CF.

For ECDHE_RSA_WITH_AES_256_GCM_SHA384 cipher, you would have to use either Rebex.Castle.dll (adds support for NIST-P ECDH curves) or Rebex.Curve25519.dll assembly (adds support for Curve25519).

...