SSL examples: updates by d-a-v · Pull Request #8643 · esp8266/Arduino (original) (raw)

s/Certificate ciphers/Connection ciphers/?
isn't it related to the protocol itself, where we 'announce' what server should use to initiate secure connection?
non connecting is also a good affirmation it is not something that is always supported when using public internet services. no one stops custom setups though.

referring s_client once again, using ssllabs.com servers

// For apps which want to use less secure but faster ciphers, only
static const uint16_t faster_suites_P[] PROGMEM = {
  BR_TLS_RSA_WITH_AES_256_CBC_SHA256,
  BR_TLS_RSA_WITH_AES_128_CBC_SHA256,
  BR_TLS_RSA_WITH_AES_256_CBC_SHA,
  BR_TLS_RSA_WITH_AES_128_CBC_SHA };
> openssl ciphers -s -tls1_2 | tr ':' '\n' | grep '^AES'
AES256-GCM-SHA384
AES256-CCM
AES128-GCM-SHA256
AES128-CCM
AES256-SHA256
AES128-SHA256
AES256-SHA
AES128-SHA
> openssl s_client -tls1_2 -connect ssllabs.com:443 -cipher 'AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA' -trace
CONNECTED(00000003)
Sent Record
Header:
  Version = TLS 1.0 (0x301)
  Content Type = Handshake (22)
  Length = 125
    ClientHello, Length=121
      client_version=0x303 (TLS 1.2)
      Random:
        gmt_unix_time=0x9429D4C5
        random_bytes (len=28): 313388BB20F9E34F989054514A9ECB4F005ECDDD45440EDBAE9D8029
      session_id (len=0):
      cipher_suites (len=10)
        {0x00, 0x3D} TLS_RSA_WITH_AES_256_CBC_SHA256
        {0x00, 0x3C} TLS_RSA_WITH_AES_128_CBC_SHA256
        {0x00, 0x35} TLS_RSA_WITH_AES_256_CBC_SHA
        {0x00, 0x2F} TLS_RSA_WITH_AES_128_CBC_SHA
        {0x00, 0xFF} TLS_EMPTY_RENEGOTIATION_INFO_SCSV
      compression_methods (len=1)
        No Compression (0x00)
      extensions, length = 70
        extension_type=server_name(0), length=16
          0000 - 00 0e 00 00 0b 73 73 6c-6c 61 62 73 2e 63 6f   .....ssllabs.co
          000f - 6d                                             m
        extension_type=session_ticket(35), length=0
        extension_type=encrypt_then_mac(22), length=0
        extension_type=extended_master_secret(23), length=0
        extension_type=signature_algorithms(13), length=34
          ecdsa_secp256r1_sha256 (0x0403)
          ecdsa_secp384r1_sha384 (0x0503)
          ecdsa_secp521r1_sha512 (0x0603)
          ed25519 (0x0807)
          ed448 (0x0808)
          rsa_pss_pss_sha256 (0x0809)
          rsa_pss_pss_sha384 (0x080a)
          rsa_pss_pss_sha512 (0x080b)
          rsa_pss_rsae_sha256 (0x0804)
          rsa_pss_rsae_sha384 (0x0805)
          rsa_pss_rsae_sha512 (0x0806)
          rsa_pkcs1_sha256 (0x0401)
          rsa_pkcs1_sha384 (0x0501)
          rsa_pkcs1_sha512 (0x0601)
          ecdsa_sha224 (0x0303)
          rsa_pkcs1_sha224 (0x0301)

Received Record
Header:
  Version = TLS 1.2 (0x303)
  Content Type = Alert (21)
  Length = 2
    Level=fatal(2), description=handshake failure(40)

40BC41FAD77F0000:error:0A000410:SSL routines:ssl3_read_bytes:sslv3 alert handshake failure:ssl/record/rec_layer_s3.c:1584:SSL alert number 40
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 7 bytes and written 130 bytes
Verification: OK
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : 0000
    Session-ID:
    Session-ID-ctx:
    Master-Key:
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    Start Time: 1658315928
    Timeout   : 7200 (sec)
    Verify return code: 0 (ok)
    Extended master secret: no
---

(-ciphersuites seems to only force certain things to the front)