]> Cypherpunks repositories - gostls13.git/commitdiff
crypto/x509: expose UnknownAuthorityError.Cert
authorRuss Cox <rsc@golang.org>
Thu, 3 Nov 2016 13:39:32 +0000 (09:39 -0400)
committerRuss Cox <rsc@golang.org>
Thu, 3 Nov 2016 17:26:23 +0000 (17:26 +0000)
This matches exposing CertificateInvalidError.Cert.
and (exposing but not the spelling of) HostnameError.Certificate.

Fixes #13519.

Change-Id: Ifae9a09e063d642c09de3cdee8a728ff06d3a5df
Reviewed-on: https://go-review.googlesource.com/32644
Run-TryBot: Russ Cox <rsc@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
src/crypto/x509/verify.go
src/crypto/x509/verify_test.go

index 6988ad7871fe23b9dd09984390f1a234bdaa7570..0d3de30beca6311d601503fed0f559e618f11cce 100644 (file)
@@ -102,7 +102,7 @@ func (h HostnameError) Error() string {
 
 // UnknownAuthorityError results when the certificate issuer is unknown
 type UnknownAuthorityError struct {
-       cert *Certificate
+       Cert *Certificate
        // hintErr contains an error that may be helpful in determining why an
        // authority wasn't found.
        hintErr error
index 5a7481fea1ddb81cd8aae562226cd8da3e94d917..15c40914444075b47c5857a0bb26b38ed68a48ea 100644 (file)
@@ -290,10 +290,15 @@ func expectUsageError(t *testing.T, i int, err error) (ok bool) {
 }
 
 func expectAuthorityUnknown(t *testing.T, i int, err error) (ok bool) {
-       if _, ok := err.(UnknownAuthorityError); !ok {
+       e, ok := err.(UnknownAuthorityError)
+       if !ok {
                t.Errorf("#%d: error was not UnknownAuthorityError: %s", i, err)
                return false
        }
+       if e.Cert == nil {
+               t.Errorf("#%d: error was UnknownAuthorityError, but missing Cert: %s", i, err)
+               return false
+       }
        return true
 }
 
@@ -1284,7 +1289,7 @@ func TestUnknownAuthorityError(t *testing.T) {
                        t.Errorf("#%d: Unable to parse certificate -> %s", i, err)
                }
                uae := &UnknownAuthorityError{
-                       cert:     c,
+                       Cert:     c,
                        hintErr:  fmt.Errorf("empty"),
                        hintCert: c,
                }