From 77f7476bf7ac4f7900d086a627be7799f28005f6 Mon Sep 17 00:00:00 2001 From: Marten Seemann Date: Fri, 25 Sep 2020 20:12:25 +0700 Subject: [PATCH] include the error code in the string for CRYPTO_ERRORs --- integrationtests/self/handshake_test.go | 4 ++-- internal/handshake/crypto_setup_test.go | 2 +- internal/qerr/error_codes.go | 2 +- internal/qerr/quic_error_test.go | 12 ++++++------ 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/integrationtests/self/handshake_test.go b/integrationtests/self/handshake_test.go index 699b70a72..0b9c92627 100644 --- a/integrationtests/self/handshake_test.go +++ b/integrationtests/self/handshake_test.go @@ -215,7 +215,7 @@ var _ = Describe("Handshake tests", func() { getTLSClientConfig(), clientConfig, ) - Expect(err).To(MatchError("CRYPTO_ERROR: x509: cannot validate certificate for 127.0.0.1 because it doesn't contain any IP SANs")) + Expect(err).To(MatchError("CRYPTO_ERROR (0x12a): x509: cannot validate certificate for 127.0.0.1 because it doesn't contain any IP SANs")) }) It("fails the handshake if the client fails to provide the requested client cert", func() { @@ -240,7 +240,7 @@ var _ = Describe("Handshake tests", func() { }() Eventually(errChan).Should(Receive(&err)) } - Expect(err).To(MatchError("CRYPTO_ERROR: tls: bad certificate")) + Expect(err).To(MatchError("CRYPTO_ERROR (0x12a): tls: bad certificate")) }) It("uses the ServerName in the tls.Config", func() { diff --git a/internal/handshake/crypto_setup_test.go b/internal/handshake/crypto_setup_test.go index f138710c6..6eebbe8a8 100644 --- a/internal/handshake/crypto_setup_test.go +++ b/internal/handshake/crypto_setup_test.go @@ -105,7 +105,7 @@ var _ = Describe("Crypto Setup TLS", func() { go func() { defer GinkgoRecover() server.RunHandshake() - Expect(sErrChan).To(Receive(MatchError("CRYPTO_ERROR: local error: tls: unexpected message"))) + Expect(sErrChan).To(Receive(MatchError("CRYPTO_ERROR (0x10a): local error: tls: unexpected message"))) close(done) }() diff --git a/internal/qerr/error_codes.go b/internal/qerr/error_codes.go index 87d4d6f5c..114210b74 100644 --- a/internal/qerr/error_codes.go +++ b/internal/qerr/error_codes.go @@ -85,7 +85,7 @@ func (e ErrorCode) String() string { return "AEAD_LIMIT_REACHED" default: if e.isCryptoError() { - return "CRYPTO_ERROR" + return fmt.Sprintf("CRYPTO_ERROR (%#x)", uint16(e)) } return fmt.Sprintf("unknown error code: %#x", uint16(e)) } diff --git a/internal/qerr/quic_error_test.go b/internal/qerr/quic_error_test.go index 4f5d6408d..a984e1867 100644 --- a/internal/qerr/quic_error_test.go +++ b/internal/qerr/quic_error_test.go @@ -38,13 +38,13 @@ var _ = Describe("QUIC Transport Errors", func() { Context("crypto errors", func() { It("has a string representation for errors with a message", func() { - err := NewCryptoError(42, "foobar") - Expect(err.Error()).To(Equal("CRYPTO_ERROR: foobar")) + err := NewCryptoError(0x42, "foobar") + Expect(err.Error()).To(Equal("CRYPTO_ERROR (0x142): foobar")) }) It("has a string representation for errors without a message", func() { - err := NewCryptoError(42, "") - Expect(err.Error()).To(Equal("CRYPTO_ERROR: tls: bad certificate")) + err := NewCryptoError(0x2a, "") + Expect(err.Error()).To(Equal("CRYPTO_ERROR (0x12a): tls: bad certificate")) }) It("says if an error is a crypto error", func() { @@ -76,8 +76,8 @@ var _ = Describe("QUIC Transport Errors", func() { }) It("recognizes crypto errors", func() { - err := ErrorCode(0x100 + 42) - Expect(err.Error()).To(Equal("CRYPTO_ERROR: tls: bad certificate")) + err := ErrorCode(0x100 + 0x2a) + Expect(err.Error()).To(Equal("CRYPTO_ERROR (0x12a): tls: bad certificate")) }) })