MBED TLS Handshake Failure

">The SSL configuration is tls12 only.
=> handshake
=> flush output
<= flush output
client state: 0
=> flush output
<= flush output
client state: 1
=> write client hello
client hello, add ciphersuite: c014, TLS-ECDHE-RSA-WITH-AES-256-CBC-SHA
client hello, add ciphersuite: c027, TLS-ECDHE-RSA-WITH-AES-128-CBC-SHA256
client hello, add ciphersuite: c013, TLS-ECDHE-RSA-WITH-AES-128-CBC-SHA
adding EMPTY_RENEGOTIATION_INFO_SCSV
client hello, got 4 cipher suites
client hello, adding server name extension: vim2025a-dev.teck.avp.lan
client hello, adding supported_groups extension
got supported group(0017)
NamedGroup: ( 17 )
adding signature_algorithms extension
got signature scheme [603]
sent signature scheme [603]
got signature scheme [601]
sent signature scheme [601]
got signature scheme [403]
sent signature scheme [403]
got signature scheme [401]
sent signature scheme [401]
client hello, adding supported_point_formats extension
client hello, adding max_fragment_length extension
client hello, adding encrypt_then_mac extension
client hello, adding extended_master_secret extension
client hello, total extension length: zu
=> write handshake message
=> write record
output record: msgtype = 22, version = [3:3], msglen = 128
<= write record
<= write handshake message
<= write client hello
=> flush output
message length: 133, out_left: 133
<= flush output
client state: 2
=> parse server hello
=> read record
=> fetch input
in_left: 0, nb_want: 5
in_left: 0, nb_want: 5
<= fetch input
input record: msgtype = 22, version = [0x303], msglen = 92
=> fetch input
in_left: 5, nb_want: 97
in_left: 5, nb_want: 97
<= fetch input
handshake message: msglen = 92, type = 2, hslen = 92
<= read record
server hello, current time: 2692192580
server hello, session id len.: zu
no session has been resumed
server hello, chosen ciphersuite: c027
server hello, compress alg.: 0
server hello, chosen ciphersuite: TLS-ECDHE-RSA-WITH-AES-128-CBC-SHA256
server hello, total extension length: zu
found renegotiation extension
found max_fragment_length extension
found supported_point_formats extension
point format selected: 0
<= parse server hello
=> flush output
<= flush output
client state: 3
=> parse certificate
=> read record
=> fetch input
in_left: 0, nb_want: 5
in_left: 0, nb_want: 5
<= fetch input
input record: msgtype = 22, version = [0x303], msglen = 1864
=> fetch input
in_left: 5, nb_want: 1869
in_left: 5, nb_want: 1869
<= fetch input
handshake message: msglen = 1864, type = 11, hslen = 1864
<= read record
Use configuration-specific verification callback
Certificate verification flags clear
<= parse certificate
=> flush output
<= flush output
client state: 4
=> parse server key exchange
=> read record
=> fetch input
in_left: 0, nb_want: 5
in_left: 0, nb_want: 5
<= fetch input
input record: msgtype = 22, version = [0x303], msglen = 333
=> fetch input
in_left: 5, nb_want: 338
in_left: 5, nb_want: 338
<= fetch input
handshake message: msglen = 333, type = 12, hslen = 333
<= read record
ECDH curve: secp256r1
Perform mbedtls-based computation of digest of ServerKeyExchange
<= parse server key exchange
=> flush output
<= flush output
client state: 5
=> parse certificate request
=> read record
=> fetch input
in_left: 0, nb_want: 5
in_left: 0, nb_want: 5
<= fetch input
input record: msgtype = 22, version = [0x303], msglen = 4
=> fetch input
in_left: 5, nb_want: 9
in_left: 5, nb_want: 9
<= fetch input
handshake message: msglen = 4, type = 14, hslen = 4
<= read record
got no certificate request
<= parse certificate request
=> flush output
<= flush output
client state: 6
=> parse server hello done
=> read record
reuse previously read message
<= read record
<= parse server hello done
=> flush output
<= flush output
client state: 7
=> write certificate
<= skip write certificate
=> flush output
<= flush output
client state: 8
=> write client key exchange

=> write handshake message
=> write record
output record: msgtype = 22, version = [3:3], msglen = 70
=> flush output
message length: 75, out_left: 75
<= write record
<= write handshake message
<= write client key exchange
=> flush output
message length: 75, out_left: 75
client state: 9
=> write certificate verify
=> derive keys
ciphersuite = TLS-ECDHE-RSA-WITH-AES-128-CBC-SHA256
keylen: 16, minlen: 64, ivlen: 16, maclen: 32
<= derive keys
<= skip write certificate verify
=> flush output
message length: 75, out_left: 75
client state: 10
=> write change cipher spec
=> write handshake message
=> write record
output record: msgtype = 20, version = [3:3], msglen = 1
=> flush output
message length: 6, out_left: 81
<= write record
<= write handshake message
<= write change cipher spec
=> flush output
message length: 6, out_left: 81
client state: 11
=> write finished
=> calc finished tls
<= calc finished

tching to new transform spec for outbound data
=> write handshake message
=> write record
=> encrypt buf
before encrypt: msglen = 64, including 16 bytes of IV and 16 bytes of padding
<= encrypt buf
output record: msgtype = 22, version = [3:3], msglen = 80
=> flush output
message length: 85, out_left: 166
<= write record
<= write handshake message
<= write finished
=> flush output
message length: 85, out_left: 166
client state: 12
=> parse change cipher spec
=> read record
=> fetch input
in_left: 0, nb_want: 5
in_left: 0, nb_want: 5
<= handshake
=> free
<= free
The SSL configuration is tls12 only.
=> handshake
=> flush output
<= flush output
client state: 0
=> flush output
<= flush output
client state: 1
=> write client hello
client hello, add ciphersuite: c014, TLS-ECDHE-RSA-WITH-AES-256-CBC-SHA
client hello, add ciphersuite: c027, TLS-ECDHE-RSA-WITH-AES-128-CBC-SHA256
client hello, add ciphersuite: c013, TLS-ECDHE-RSA-WITH-AES-128-CBC-SHA
adding EMPTY_RENEGOTIATION_INFO_SCSV
client hello, got 4 cipher suites
client hello, adding server name extension: vim2025a-dev.teck.avp.lan
client hello, adding supported_groups extension
got supported group(0017)
NamedGroup: ( 17 )
adding signature_algorithms extension
got signature scheme [603]
sent signature scheme [603]
got signature scheme [601]
sent signature scheme [601]
got signature scheme [403]
sent signature scheme [403]
got signature scheme [401]
sent signature scheme [401]
client hello, adding supported_point_formats extension
client hello, adding max_fragment_length extension
client hello, adding encrypt_then_mac extension
client hello, adding extended_master_secret extension
client hello, total extension length: zu
=> write handshake message
=> write record
output record: msgtype = 22, version = [3:3], msglen = 128
<= write record
<= write handshake message
<= write client hello
=> flush output
message length: 133, out_left: 133
<= flush output
client state: 2
=> parse server hello
=> read record
=> fetch input
in_left: 0, nb_want: 5
in_left: 0, nb_want: 5
<= fetch input
input record: msgtype = 22, version = [0x303], msglen = 92
=> fetch input
in_left: 5, nb_want: 97
in_left: 5, nb_want: 97
<= fetch input
handshake message: msglen = 92, type = 2, hslen = 92
<= read record
server hello, current time: 1151840081
server hello, session id len.: zu
no session has been resumed
server hello, chosen ciphersuite: c027
server hello, compress alg.: 0
server hello, chosen ciphersuite: TLS-ECDHE-RSA-WITH-AES-128-CBC-SHA256
server hello, total extension length: zu
found renegotiation extension
found max_fragment_length extension
found supported_point_formats extension
point format selected: 0
<= parse server hello
=> flush output
<= flush output
client state: 3
=> parse certificate
=> read record
=> fetch input
in_left: 0, nb_want: 5
in_left: 0, nb_want: 5
<= fetch input
input record: msgtype = 22, version = [0x303], msglen = 1864
=> fetch input
in_left: 5, nb_want: 1869
in_left: 5, nb_want: 1869
<= fetch input
handshake message: msglen = 1864, type = 11, hslen = 1864
<= read record
Use configuration-specific verification callback
Certificate verification flags clear
<= parse certificate
=> flush output
<= flush output
client state: 4
=> parse server key exchange
=> read record
=> fetch input
in_left: 0, nb_want: 5
in_left: 0, nb_want: 5
<= fetch input
input record: msgtype = 22, version = [0x303], msglen = 333
=> fetch input
in_left: 5, nb_want: 338
in_left: 5, nb_want: 338
<= fetch input
handshake message: msglen = 333, type = 12, hslen = 333
<= read record
ECDH curve: secp256r1
Perform mbedtls-based computation of digest of ServerKeyExchange

<= parse server key exchange
=> flush output
<= flush output
client state: 5
=> parse certificate request
=> read record
=> fetch input
in_left: 0, nb_want: 5
in_left: 0, nb_want: 5
<= fetch input
input record: msgtype = 22, version = [0x303], msglen = 4
=> fetch input
in_left: 5, nb_want: 9
in_left: 5, nb_want: 9
<= fetch input
handshake message: msglen = 4, type = 14, hslen = 4
<= read record
got no certificate request
<= parse certificate request
=> flush output
<= flush output
client state: 6
=> parse server hello done
=> read record
reuse previously read message
<= read record
<= parse server hello done
=> flush output
<= flush output
client state: 7
=> write certificate
<= skip write certificate
=> flush output
<= flush output
client state: 8
=> write client key exchange

=> write handshake message
=> write record
output record: msgtype = 22, version = [3:3], msglen = 70
=> flush output
message length: 75, out_left: 75
<= write record
<= write handshake message
<= write client key exchange
=> flush output
message length: 75, out_left: 75
client state: 9
=> write certificate verify
=> derive keys
ciphersuite = TLS-ECDHE-RSA-WITH-AES-128-CBC-SHA256
keylen: 16, minlen: 64, ivlen: 16, maclen: 32
<= derive keys
<= skip write certificate verify
=> flush output
message length: 75, out_left: 75
client state: 10
=> write change cipher spec
=> write handshake message
=> write record
output record: msgtype = 20, version = [3:3], msglen = 1
=> flush output
message length: 6, out_left: 81
<= write record
<= write handshake message
<= write change cipher spec
=> flush output
message length: 6, out_left: 81
client state: 11
=> write finished
=> calc finished tls
<= calc finished
switching to new transform spec for outbound data
=> write handshake message
=> write record
=> encrypt buf
before encrypt: msglen = 64, including 16 bytes of IV and 16 bytes of padding
<= encrypt buf
output record: msgtype = 22, version = [3:3], msglen = 80
=> flush output
message length: 85, out_left: 166
<= write record
<= write handshake message
<= write finished
=> flush output
message length: 85, out_left: 166
client state: 12
=> parse change cipher spec
=> read record
=> fetch input
in_left: 0, nb_want: 5
in_left: 0, nb_want: 5
<= handshake
=> free
<= free
The SSL configuration is tls12 only.
=> handshake
=> flush output
<= flush output
client state: 0
=> flush output
<= flush output
client state: 1
=> write client hello
client hello, add ciphersuite: c014, TLS-ECDHE-RSA-WITH-AES-256-CBC-SHA
client hello, add ciphersuite: c027, TLS-ECDHE-RSA-WITH-AES-128-CBC-SHA256
client hello, add ciphersuite: c013, TLS-ECDHE-RSA-WITH-AES-128-CBC-SHA
adding EMPTY_RENEGOTIATION_INFO_SCSV
client hello, got 4 cipher suites
client hello, adding server name extension: vim2025a-dev.teck.avp.lan
client hello, adding supported_groups extension
got supported group(0017)
NamedGroup: ( 17 )
adding signature_algorithms extension
got signature scheme [603]
sent signature scheme [603]
got signature scheme [601]
sent signature scheme [601]
got signature scheme [403]
sent signature scheme [403]
got signature scheme [401]
sent signature scheme [401]
client hello, adding supported_point_formats extension
client hello, adding max_fragment_length extension
client hello, adding encrypt_then_mac extension
client hello, adding extended_master_secret extension
client hello, total extension length: zu
=> write handshake message
=> write record
output record: msgtype = 22, version = [3:3], msglen = 128
<= write record
<= write handshake message
<= write client hello
=> flush output
message length: 133, out_left: 133
<= flush output
client state: 2
=> parse server hello
=> read record
=> fetch input
in_left: 0, nb_want: 5
in_left: 0, nb_want: 5
<= fetch input
input record: msgtype = 22, version = [0x303], msglen = 92
=> fetch input
in_left: 5, nb_want: 97
in_left: 5, nb_want: 97
<= fetch input
handshake message: msglen = 92, type = 2, hslen = 92
<= read record
server hello, current time: 2120959154
server hello, session id len.: zu
no session has been resumed
server hello, chosen ciphersuite: c027
server hello, compress alg.: 0
server hello, chosen ciphersuite: TLS-ECDHE-RSA-WITH-AES-128-CBC-SHA256
server hello, total extension length: zu
found renegotiation extension
found max_fragment_length extension
found supported_point_formats extension
point format selected: 0
<= parse server hello
=> flush output
<= flush output
client state: 3
=> parse certificate
=> read record
=> fetch input
in_left: 0, nb_want: 5
in_left: 0, nb_want: 5
<= fetch input
input record: msgtype = 22, version = [0x303], msglen = 1864
=> fetch input
in_left: 5, nb_want: 1869
in_left: 5, nb_want: 1869
<= fetch input
handshake message: msglen = 1864, type = 11, hslen = 1864
<= read record
Use configuration-specific verification callback
Certificate verification flags clear
<= parse certificate
=> flush output
<= flush output
client state: 4
=> parse server key exchange
=> read record
=> fetch input
in_left: 0, nb_want: 5
in_left: 0, nb_want: 5
<= fetch input
input record: msgtype = 22, version = [0x303], msglen = 333
=> fetch input
in_left: 5, nb_want: 338
in_left: 5, nb_want: 338
<= fetch input
handshake message: msglen = 333, type = 12, hslen = 333
<= read record
ECDH curve: secp256r1
Perform mbedtls-based computation of digest of ServerKeyExchange
<= parse server key exchange
=> flush output
<= flush output
client state: 5
=> parse certificate request
=> read record
=> fetch input
in_left: 0, nb_want: 5
in_left: 0, nb_want: 5
<= fetch input
input record: msgtype = 22, version = [0x303], msglen = 4
=> fetch input
in_left: 5, nb_want: 9
in_left: 5, nb_want: 9
<= fetch input
handshake message: msglen = 4, type = 14, hslen = 4
<= read record
got no certificate request
<= parse certificate request
=> flush output
<= flush output
client state: 6
=> parse server hello done
=> read record
reuse previously read message
<= read record
<= parse server hello done
=> flush output
<= flush output
client state: 7
=> write certificate
<= skip write certificate
=> flush output
<= flush output
client state: 8
=> write client key exchange

=> write handshake message
=> write record
output record: msgtype = 22, version = [3:3], msglen = 70
=> flush output
message length: 75, out_left: 75
<= write record
<= write handshake message
<= write client key exchange
=> flush output
message length: 75, out_left: 75
client state: 9
=> write certificate verify
=> derive keys
ciphersuite = TLS-ECDHE-RSA-WITH-AES-128-CBC-SHA256
keylen: 16, minlen: 64, ivlen: 16, maclen: 32
<= derive keys
<= skip write certificate verify
=> flush output
message length: 75, out_left: 75
client state: 10
=> write change cipher spec
=> write handshake message
=> write record
output record: msgtype = 20, version = [3:3], msglen = 1
=> flush output
message length: 6, out_left: 81
<= write record
<= write handshake message
<= write change cipher spec
=> flush output
message length: 6, out_left: 81
client state: 11
=> write finished
=> calc finished tls
<= calc finished
switching to new transform spec for outbound data
=> write handshake message
=> write record
=> encrypt buf
before encrypt: msglen = 64, including 16 bytes of IV and 16 bytes of padding
<= encrypt buf
output record: msgtype = 22, version = [3:3], msglen = 80
=> flush output
message length: 85, out_left: 166
<= write record
<= write handshake message
<= write finished
=> flush output
message length: 85, out_left: 166
client state: 12
=> parse change cipher spec
=> read record
=> fetch input
in_left: 0, nb_want: 5
in_left: 0, nb_want: 5
<= handshake
=> free
<= free
The SSL configuration is tls12 only.
=> handshake
=> flush output
<= flush output
client state: 0
=> flush output
<= flush output
client state: 1
=> write client hello
client hello, add ciphersuite: c014, TLS-ECDHE-RSA-WITH-AES-256-CBC-SHA
client hello, add ciphersuite: c027, TLS-ECDHE-RSA-WITH-AES-128-CBC-SHA256
client hello, add ciphersuite: c013, TLS-ECDHE-RSA-WITH-AES-128-CBC-SHA
adding EMPTY_RENEGOTIATION_INFO_SCSV
client hello, got 4 cipher suites
client hello, adding server name extension: vim2025a-dev.teck.avp.lan
client hello, adding supported_groups extension
got supported group(0017)
NamedGroup: ( 17 )
adding signature_algorithms extension
got signature scheme [603]
sent signature scheme [603]
got signature scheme [601]
sent signature scheme [601]
got signature scheme [403]
sent signature scheme [403]
got signature scheme [401]
sent signature scheme [401]
client hello, adding supported_point_formats extension
client hello, adding max_fragment_length extension
client hello, adding encrypt_then_mac extension
client hello, adding extended_master_secret extension
client hello, total extension length: zu
=> write handshake message
=> write record
output record: msgtype = 22, version = [3:3], msglen = 128
<= write record
<= write handshake message
<= write client hello
=> flush output
message length: 133, out_left: 133
<= flush output
client state: 2
=> parse server hello
=> read record
=> fetch input
in_left: 0, nb_want: 5
in_left: 0, nb_want: 5
<= fetch input
input record: msgtype = 22, version = [0x303], msglen = 92
=> fetch input
in_left: 5, nb_want: 97
in_left: 5, nb_want: 97
<= fetch input
handshake message: msglen = 92, type = 2, hslen = 92
<= read record
server hello, current time: 2853653479
server hello, session id len.: zu
no session has been resumed
server hello, chosen ciphersuite: c027
server hello, compress alg.: 0
server hello, chosen ciphersuite: TLS-ECDHE-RSA-WITH-AES-128-CBC-SHA256
server hello, total extension length: zu
found renegotiation extension
found max_fragment_length extension
found supported_point_formats extension
point format selected: 0
<= parse server hello
=> flush output
<= flush output
client state: 3
=> parse certificate
=> read record
=> fetch input
in_left: 0, nb_want: 5
in_left: 0, nb_want: 5
<= fetch input
input record: msgtype = 22, version = [0x303], msglen = 1864
=> fetch input
in_left: 5, nb_want: 1869
in_left: 5, nb_want: 1869
<= fetch input
handshake message: msglen = 1864, type = 11, hslen = 1864
<= read record
Use configuration-specific verification callback
Certificate verification flags clear
<= parse certificate
=> flush output
<= flush output
client state: 4
=> parse server key exchange
=> read record
=> fetch input
in_left: 0, nb_want: 5
in_left: 0, nb_want: 5
<= fetch input
input record: msgtype = 22, version = [0x303], msglen = 333
=> fetch input
in_left: 5, nb_want: 338
in_left: 5, nb_want: 338
<= fetch input
handshake message: msglen = 333, type = 12, hslen = 333
<= read record
ECDH curve: secp256r1
Perform mbedtls-based computation of digest of ServerKeyExchange
<= parse server key exchange
=> flush output
<= flush output
client state: 5
=> parse certificate request
=> read record
=> fetch input
in_left: 0, nb_want: 5
in_left: 0, nb_want: 5
<= fetch input
input record: msgtype = 22, version = [0x303], msglen = 4
=> fetch input
in_left: 5, nb_want: 9
in_left: 5, nb_want: 9
<= fetch input
handshake message: msglen = 4, type = 14, hslen = 4
<= read record
got no certificate request
<= parse certificate request
=> flush output
<= flush output
client state: 6
=> parse server hello done
=> read record
reuse previously read message
<= read record
<= parse server hello done
=> flush output
<= flush output
client state: 7
=> write certificate
<= skip write certificate
=> flush output
<= flush output
client state: 8
=> write client key exchange

=> write handshake message
=> write record
output record: msgtype = 22, version = [3:3], msglen = 70
=> flush output
message length: 75, out_left: 75
<= write record
<= write handshake message
<= write client key exchange
=> flush output
message length: 75, out_left: 75
client state: 9
=> write certificate verify
=> derive keys
ciphersuite = TLS-ECDHE-RSA-WITH-AES-128-CBC-SHA256
keylen: 16, minlen: 64, ivlen: 16, maclen: 32
<= derive keys
<= skip write certificate verify
=> flush output
message length: 75, out_left: 75
client state: 10
=> write change cipher spec
=> write handshake message
=> write record
output record: msgtype = 20, version = [3:3], msglen = 1
=> flush output
message length: 6, out_left: 81
<= write record
<= write handshake message
<= write change cipher spec
=> flush output
message length: 6, out_left: 81
client state: 11
=> write finished
=> calc finished tls
<= calc finished
switching to new transform spec for outbound data
=> write handshake message
=> write record
=> encrypt buf
before encrypt: msglen = 64, including 16 bytes of IV and 16 bytes of padding
<= encrypt buf
output record: msgtype = 22, version = [3:3], msglen = 80
=> flush output
message length: 85, out_left: 166
<= write record
<= write handshake message
<= write finished
=> flush output
message length: 85, out_left: 166
client state: 12
=> parse change cipher spec
=> read record
=> fetch input
in_left: 0, nb_want: 5
in_left: 0, nb_want: 5
<= handshake
=> free
<= free
The SSL configuration is tls12 only.
=> handshake
=> flush output
<= flush output
client state: 0
=> flush output
<= flush output
client state: 1
=> write client hello
client hello, add ciphersuite: c014, TLS-ECDHE-RSA-WITH-AES-256-CBC-SHA
client hello, add ciphersuite: c027, TLS-ECDHE-RSA-WITH-AES-128-CBC-SHA256
client hello, add ciphersuite: c013, TLS-ECDHE-RSA-WITH-AES-128-CBC-SHA
adding EMPTY_RENEGOTIATION_INFO_SCSV
client hello, got 4 cipher suites
client hello, adding server name extension: vim2025a-dev.teck.avp.lan
client hello, adding supported_groups extension
got supported group(0017)
NamedGroup: ( 17 )
adding signature_algorithms extension
got signature scheme [603]
sent signature scheme [603]
got signature scheme [601]
sent signature scheme [601]
got signature scheme [403]
sent signature scheme [403]
got signature scheme [401]
sent signature scheme [401]
client hello, adding supported_point_formats extension
client hello, adding max_fragment_length extension
client hello, adding encrypt_then_mac extension
client hello, adding extended_master_secret extension
client hello, total extension length: zu
=> write handshake message
=> write record
output record: msgtype = 22, version = [3:3], msglen = 128
<= write record
<= write handshake message
<= write client hello
=> flush output
message length: 133, out_left: 133
<= flush output
client state: 2
=> parse server hello
=> read record
=> fetch input
in_left: 0, nb_want: 5
in_left: 0, nb_want: 5
<= fetch input
input record: msgtype = 22, version = [0x303], msglen = 92
=> fetch input
in_left: 5, nb_want: 97
in_left: 5, nb_want: 97
<= fetch input
handshake message: msglen = 92, type = 2, hslen = 92
<= read record
server hello, current time: 1657902234
server hello, session id len.: zu
no session has been resumed
server hello, chosen ciphersuite: c027
server hello, compress alg.: 0
server hello, chosen ciphersuite: TLS-ECDHE-RSA-WITH-AES-128-CBC-SHA256
server hello, total extension length: zu
found renegotiation extension
found max_fragment_length extension
found supported_point_formats extension
point format selected: 0
<= parse server hello
=> flush output
<= flush output
client state: 3
=> parse certificate
=> read record
=> fetch input
in_left: 0, nb_want: 5
in_left: 0, nb_want: 5
<= fetch input
input record: msgtype = 22, version = [0x303], msglen = 1864
=> fetch input
in_left: 5, nb_want: 1869
in_left: 5, nb_want: 1869
<= fetch input
handshake message: msglen = 1864, type = 11, hslen = 1864
<= read record
Use configuration-specific verification callback
Certificate verification flags clear
<= parse certificate
=> flush output
<= flush output
client state: 4
=> parse server key exchange
=> read record
=> fetch input
in_left: 0, nb_want: 5
in_left: 0, nb_want: 5
<= fetch input
input record: msgtype = 22, version = [0x303], msglen = 333
=> fetch input
in_left: 5, nb_want: 338
in_left: 5, nb_want: 338
<= fetch input
handshake message: msglen = 333, type = 12, hslen = 333
<= read record
ECDH curve: secp256r1
Perform mbedtls-based computation of digest of ServerKeyExchange
<= parse server key exchange
=> flush output
<= flush output
client state: 5
=> parse certificate request
=> read record
=> fetch input
in_left: 0, nb_want: 5
in_left: 0, nb_want: 5
<= fetch input
input record: msgtype = 22, version = [0x303], msglen = 4
=> fetch input
in_left: 5, nb_want: 9
in_left: 5, nb_want: 9
<= fetch input
handshake message: msglen = 4, type = 14, hslen = 4
<= read record
got no certificate request
<= parse certificate request
=> flush output
<= flush output
client state: 6
=> parse server hello done
=> read record
reuse previously read message
<= read record
<= parse server hello done
=> flush output
<= flush output
client state: 7
=> write certificate
<= skip write certificate
=> flush output
<= flush output
client state: 8
=> write client key exchange
=> write handshake message
=> write record
output record: msgtype = 22, version = [3:3], msglen = 70
=> flush output
message length: 75, out_left: 75
<= write record
<= write handshake message
<= write client key exchange
=> flush output
message length: 75, out_left: 75
client state: 9
=> write certificate verify
=> derive keys
ciphersuite = TLS-ECDHE-RSA-WITH-AES-128-CBC-SHA256
keylen: 16, minlen: 64, ivlen: 16, maclen: 32
<= derive keys
<= skip write certificate verify
=> flush output
message length: 75, out_left: 75
client state: 10
=> write change cipher spec
=> write handshake message
=> write record
output record: msgtype = 20, version = [3:3], msglen = 1
=> flush output
message length: 6, out_left: 81
<= write record
<= write handshake message
<= write change cipher spec
=> flush output
message length: 6, out_left: 81
client state: 11
=> write finished
=> calc finished tls
<= calc finished
switching to new transform spec for outbound data
=> write handshake message
=> write record
=> encrypt buf
before encrypt: msglen = 64, including 16 bytes of IV and 16 bytes of padding
<= encrypt buf
output record: msgtype = 22, version = [3:3], msglen = 80
=> flush output
message length: 85, out_left: 166
<= write record
<= write handshake message
<= write finished
=> flush output
message length: 85, out_left: 166
client state: 12
=> parse change cipher spec
=> read record
=> fetch input
in_left: 0, nb_want: 5
in_left: 0, nb_want: 5
<= handshake
=> free
<= free"

Hello!

As the above logs show I am finding that an Mbed tls handshake loops from state 0, to 12 (change cipher spec) and I never manage to get to state that finishes the handshake (13).

I’m using a SAM4E16E, basic TLS demo supplied with freertos, and the SAM4E is running at 120MHz. I did have to port it to my own project as the hardware isn’t the same as the development board, and I don’t have a dev board to try it out.

Using the plaintext example, it works perfectly.

I have a few questions:

  • Is it possible for a TLS Connection to be made with an ARM core M4 without a TRNG. I’ve implemented the NV seed method for my entropy, and that bit does seem to work.
  • Ive found that the certificate parsing does not trust a certificate without a parent, why is this?
  • Any pointers as to why the state gets reset? I’m leading down the path that the server closes the connection as it takes to long, but really hoping its something else I’ve not implemented correctly.

Kind regards,
Dyfan