@@ -70,28 +70,34 @@ vMVH5ygi1fMeQPNg8oWDD+3gP1GmLGMP14kHT/aPyDAHHUMrq7nSgA8SXTC9fihO
7070sygULgtpiSjKgeg9cTvK9yhz7T0c2CxFgyhUnz4v6uZtQTJK2Q==
7171-----END CERTIFICATE-----`
7272
73- func DummyProvider () (Session , error ) {
74- block , _ := pem .Decode ([]byte (dummyPrivKey ))
75- if block == nil || block .Type != "RSA PRIVATE KEY" {
76- return nil , fmt .Errorf ("invalid PEM block" )
73+ func DummyProvider (random io.Reader ) func () (Session , error ) {
74+ return func () (Session , error ) {
75+ block , _ := pem .Decode ([]byte (dummyPrivKey ))
76+ if block == nil || block .Type != "RSA PRIVATE KEY" {
77+ return nil , fmt .Errorf ("invalid PEM block" )
78+ }
79+ key , err := x509 .ParsePKCS1PrivateKey (block .Bytes )
80+ if err != nil {
81+ return nil , fmt .Errorf ("failed to parse dummy private key: %v" , err )
82+ }
83+
84+ certBlock , _ := pem .Decode ([]byte (dummyCert ))
85+ caCert , err := x509 .ParseCertificate (certBlock .Bytes )
86+ if err != nil {
87+ return nil , fmt .Errorf ("failed to parse CA certificate: %v" , err )
88+ }
89+
90+ if random == nil {
91+ random = rand .Reader
92+ }
93+
94+ return & dummySession {
95+ random : random ,
96+ privateKey : key ,
97+ caCert : caCert ,
98+ caCertDER : certBlock .Bytes ,
99+ }, nil
77100 }
78- key , err := x509 .ParsePKCS1PrivateKey (block .Bytes )
79- if err != nil {
80- return nil , fmt .Errorf ("failed to parse dummy private key: %v" , err )
81- }
82-
83- certBlock , _ := pem .Decode ([]byte (dummyCert ))
84- caCert , err := x509 .ParseCertificate (certBlock .Bytes )
85- if err != nil {
86- return nil , fmt .Errorf ("failed to parse CA certificate: %v" , err )
87- }
88-
89- return & dummySession {
90- random : rand .Reader ,
91- privateKey : key ,
92- caCert : caCert ,
93- caCertDER : certBlock .Bytes ,
94- }, nil
95101}
96102
97103type dummySession struct {
0 commit comments