Skip to content

Commit

Permalink
rsa-sigs-on-certificate-verify - better error reporting on server alert
Browse files Browse the repository at this point in the history
since server can abort right after Certificate or CertificateVerify
it doesn't like then and close connection then, we may not be able
to write to the socket, reporting a pipe error when in reality
server did send an Alert message
  • Loading branch information
tomato42 committed Mar 1, 2021
1 parent 1aa4333 commit f31b671
Showing 1 changed file with 9 additions and 4 deletions.
13 changes: 9 additions & 4 deletions scripts/test-rsa-sigs-on-certificate-verify.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,8 @@
ClientKeyExchangeGenerator, ChangeCipherSpecGenerator, \
FinishedGenerator, ApplicationDataGenerator, \
CertificateGenerator, CertificateVerifyGenerator, \
AlertGenerator
AlertGenerator, TCPBufferingEnable, TCPBufferingDisable, \
TCPBufferingFlush
from tlsfuzzer.expect import ExpectServerHello, ExpectCertificate, \
ExpectServerHelloDone, ExpectChangeCipherSpec, ExpectFinished, \
ExpectAlert, ExpectClose, ExpectCertificateRequest, \
Expand All @@ -31,7 +32,7 @@
from tlsfuzzer.utils.lists import natural_sort_keys


version = 3
version = 6


def help_msg():
Expand Down Expand Up @@ -145,11 +146,14 @@ def main():
node = node.add_child(ExpectServerKeyExchange())
node = node.add_child(ExpectCertificateRequest())
node = node.add_child(ExpectServerHelloDone())
node = node.add_child(TCPBufferingEnable())
node = node.add_child(CertificateGenerator(X509CertChain([cert])))
node = node.add_child(ClientKeyExchangeGenerator())
node = node.add_child(CertificateVerifyGenerator(private_key))
node = node.add_child(ChangeCipherSpecGenerator())
node = node.add_child(FinishedGenerator())
node = node.add_child(TCPBufferingDisable())
node = node.add_child(TCPBufferingFlush())
node = node.add_child(ExpectChangeCipherSpec())
node = node.add_child(ExpectFinished())
node = node.add_child(ApplicationDataGenerator(b"GET / HTTP/1.0\n\n"))
Expand Down Expand Up @@ -199,12 +203,15 @@ def main():
node = node.add_child(ExpectServerKeyExchange())
node = node.add_child(ExpectCertificateRequest())
node = node.add_child(ExpectServerHelloDone())
node = node.add_child(TCPBufferingEnable())
node = node.add_child(CertificateGenerator(X509CertChain([cert])))
node = node.add_child(ClientKeyExchangeGenerator())
node = node.add_child(CertificateVerifyGenerator(
private_key, msg_alg=(getattr(HashAlgorithm, md), SignatureAlgorithm.rsa)))
node = node.add_child(ChangeCipherSpecGenerator())
node = node.add_child(FinishedGenerator())
node = node.add_child(TCPBufferingDisable())
node = node.add_child(TCPBufferingFlush())
node = node.add_child(ExpectChangeCipherSpec())
node = node.add_child(ExpectFinished())
node = node.add_child(ApplicationDataGenerator(b"GET / HTTP/1.0\n\n"))
Expand All @@ -227,8 +234,6 @@ def main():
if not num_limit:
num_limit = len(conversations)

print("Certificate Verify test version 5")

sanity_tests = [('sanity', conversations['sanity'])]
if run_only:
if num_limit > len(run_only):
Expand Down

0 comments on commit f31b671

Please sign in to comment.