@@ -379,10 +379,17 @@ QSkVdAJg8mHKYGNZ6pIYMFr7RoBLGqMnKLPMYn3VqFvMccPx7A0hKQFJBR/qV8lh
379379f0kGHKQEAFYGJLqJdK4KsGQDKLfZr9fqvXCCAA==
380380-----END CERTIFICATE-----`
381381
382- pemfile , _ := os .CreateTemp ("" , "*.pem" )
382+ pemfile , err := os .CreateTemp ("" , "*.pem" )
383+ if err != nil {
384+ t .Fatalf ("failed to create temporary certificate file: %v" , err )
385+ }
383386 defer os .Remove (pemfile .Name ())
384- pemfile .WriteString (pemCert )
385- pemfile .Close ()
387+ if _ , err := pemfile .WriteString (pemCert ); err != nil {
388+ t .Fatalf ("failed to write certificate to file: %v" , err )
389+ }
390+ if err := pemfile .Close (); err != nil {
391+ t .Fatalf ("failed to close certificate file: %v" , err )
392+ }
386393
387394 // Test 1: encrypt=strict with certificate should skip hostname validation
388395 connStr := "server=differenthostname;encrypt=strict;certificate=" + pemfile .Name ()
@@ -402,11 +409,13 @@ f0kGHKQEAFYGJLqJdK4KsGQDKLfZr9fqvXCCAA==
402409 assert .NotNil (t , config2 .TLSConfig , "Expected TLSConfig to be set" )
403410 assert .False (t , config2 .TLSConfig .InsecureSkipVerify , "Expected InsecureSkipVerify to be false when no certificate is provided" )
404411
405- // Test 3: encrypt=required with certificate should still validate hostname
412+ // Test 3: encrypt=required with certificate should also skip hostname validation
406413 connStr3 := "server=somehost;encrypt=true;certificate=" + pemfile .Name ()
407414 config3 , err := Parse (connStr3 )
408415 assert .Nil (t , err , "Expected no error parsing connection string" )
409416 assert .Equal (t , Encryption (EncryptionRequired ), config3 .Encryption , "Expected EncryptionRequired" )
410417 assert .NotNil (t , config3 .TLSConfig , "Expected TLSConfig to be set" )
411- assert .False (t , config3 .TLSConfig .InsecureSkipVerify , "Expected InsecureSkipVerify to be false for encrypt=true" )
418+ // When a certificate is provided, hostname validation is skipped for any encryption mode
419+ assert .False (t , config3 .TLSConfig .InsecureSkipVerify , "Expected InsecureSkipVerify to be false" )
420+ assert .NotNil (t , config3 .TLSConfig .VerifyConnection , "Expected VerifyConnection callback to be set for encrypt=true with certificate" )
412421}
0 commit comments