| 
									
										
										
										
											2016-04-26 17:57:11 +01:00
										 |  |  | package test | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import ( | 
					
						
							|  |  |  | 	"os" | 
					
						
							| 
									
										
										
										
											2017-01-10 10:18:34 -05:00
										 |  |  | 	"path/filepath" | 
					
						
							| 
									
										
										
										
											2016-04-26 17:57:11 +01:00
										 |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // TempFile will create a temporary file on disk and returns the name and a cleanup function to remove it later. | 
					
						
							| 
									
										
										
										
											2016-10-02 15:58:01 +01:00
										 |  |  | func TempFile(dir, content string) (string, func(), error) { | 
					
						
							| 
									
										
										
										
											2021-10-13 15:30:31 +08:00
										 |  |  | 	f, err := os.CreateTemp(dir, "go-test-tmpfile") | 
					
						
							| 
									
										
										
										
											2016-04-26 17:57:11 +01:00
										 |  |  | 	if err != nil { | 
					
						
							|  |  |  | 		return "", nil, err | 
					
						
							|  |  |  | 	} | 
					
						
							| 
									
										
										
										
											2021-10-13 15:30:31 +08:00
										 |  |  | 	if err := os.WriteFile(f.Name(), []byte(content), 0644); err != nil { | 
					
						
							| 
									
										
										
										
											2016-04-26 17:57:11 +01:00
										 |  |  | 		return "", nil, err | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 	rmFunc := func() { os.Remove(f.Name()) } | 
					
						
							|  |  |  | 	return f.Name(), rmFunc, nil | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2017-01-10 10:18:34 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | // WritePEMFiles creates a tmp dir with ca.pem, cert.pem, and key.pem and the func to remove it | 
					
						
							|  |  |  | func WritePEMFiles(dir string) (string, func(), error) { | 
					
						
							| 
									
										
										
										
											2021-10-13 15:30:31 +08:00
										 |  |  | 	tempDir, err := os.MkdirTemp(dir, "go-test-pemfiles") | 
					
						
							| 
									
										
										
										
											2017-01-10 10:18:34 -05:00
										 |  |  | 	if err != nil { | 
					
						
							|  |  |  | 		return "", nil, err | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	data := `-----BEGIN CERTIFICATE----- | 
					
						
							|  |  |  | MIIC9zCCAd+gAwIBAgIJALGtqdMzpDemMA0GCSqGSIb3DQEBCwUAMBIxEDAOBgNV | 
					
						
							|  |  |  | BAMMB2t1YmUtY2EwHhcNMTYxMDE5MTU1NDI0WhcNNDQwMzA2MTU1NDI0WjASMRAw | 
					
						
							|  |  |  | DgYDVQQDDAdrdWJlLWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA | 
					
						
							|  |  |  | pa4Wu/WkpJNRr8pMVE6jjwzNUOx5mIyoDr8WILSxVQcEeyVPPmAqbmYXtVZO11p9 | 
					
						
							|  |  |  | jTzoEqF7Kgts3HVYGCk5abqbE14a8Ru/DmV5avU2hJ/NvSjtNi/O+V6SzCbg5yR9 | 
					
						
							|  |  |  | lBR53uADDlzuJEQT9RHq7A5KitFkx4vUcXnjOQCbDogWFoYuOgNEwJPy0Raz3NJc | 
					
						
							|  |  |  | ViVfDqSJ0QHg02kCOMxcGFNRQ9F5aoW7QXZXZXD0tn3wLRlu4+GYyqt8fw5iNdLJ | 
					
						
							|  |  |  | t79yKp8I+vMTmMPz4YKUO+eCl5EY10Qs7wvoG/8QNbjH01BRN3L8iDT2WfxdvjTu | 
					
						
							|  |  |  | 1RjPxFL92i+B7HZO7jGLfQIDAQABo1AwTjAdBgNVHQ4EFgQUZTrg+Xt87tkxDhlB | 
					
						
							|  |  |  | gKk9FdTOW3IwHwYDVR0jBBgwFoAUZTrg+Xt87tkxDhlBgKk9FdTOW3IwDAYDVR0T | 
					
						
							|  |  |  | BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEApB7JFVrZpGSOXNO3W7SlN6OCPXv9 | 
					
						
							|  |  |  | C7rIBc8rwOrzi2mZWcBmWheQrqBo8xHif2rlFNVQxtq3JcQ8kfg/m1fHeQ/Ygzel | 
					
						
							|  |  |  | Z+U1OqozynDySBZdNn9i+kXXgAUCqDPp3hEQWe0os/RRpIwo9yOloBxdiX6S0NIf | 
					
						
							|  |  |  | VB8n8kAynFPkH7pYrGrL1HQgDFCSfa4tUJ3+9sppnCu0pNtq5AdhYx9xFb2sn+8G | 
					
						
							|  |  |  | xGbtCkhVk2VQ+BiCWnjYXJ6ZMzabP7wiOFDP9Pvr2ik22PRItsW/TLfHFXM1jDmc | 
					
						
							|  |  |  | I1rs/VUGKzcJGVIWbHrgjP68CTStGAvKgbsTqw7aLXTSqtPw88N9XVSyRg== | 
					
						
							|  |  |  | -----END CERTIFICATE-----` | 
					
						
							|  |  |  | 	path := filepath.Join(tempDir, "ca.pem") | 
					
						
							| 
									
										
										
										
											2021-10-13 15:30:31 +08:00
										 |  |  | 	if err := os.WriteFile(path, []byte(data), 0644); err != nil { | 
					
						
							| 
									
										
										
										
											2017-01-10 10:18:34 -05:00
										 |  |  | 		return "", nil, err | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 	data = `-----BEGIN CERTIFICATE----- | 
					
						
							|  |  |  | MIICozCCAYsCCQCRlf5BrvPuqjANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdr | 
					
						
							|  |  |  | dWJlLWNhMB4XDTE2MTAxOTE2MDUxOFoXDTE3MTAxOTE2MDUxOFowFTETMBEGA1UE | 
					
						
							|  |  |  | AwwKa3ViZS1hZG1pbjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMTw | 
					
						
							|  |  |  | a7wCFoiCad/N53aURfjrme+KR7FS0yf5Ur9OR/oM3BoS9stYu5Flzr35oL5T6t5G | 
					
						
							|  |  |  | c2ey78mUs/Cs07psnjUdKH55bDpJSdG7zW9mXNyeLwIefFcj/38SS5NBSotmLo8u | 
					
						
							|  |  |  | scJMGXeQpCQtfVuVJSP2bfU5u5d0KTLSg/Cor6UYonqrRB82HbOuuk8Wjaww4VHo | 
					
						
							|  |  |  | nCq7X8o948V6HN5ZibQOgMMo+nf0wORREHBjvwc4W7ewbaTcfoe1VNAo/QnkqxTF | 
					
						
							|  |  |  | ueMb2HxgghArqQSK8b44O05V0zrde25dVnmnte6sPjcV0plqMJ37jViISxsOPUFh | 
					
						
							|  |  |  | /ZW7zbIM/7CMcDekCiECAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAYZE8OxwRR7GR | 
					
						
							|  |  |  | kdd5aIriDwWfcl56cq5ICyx87U8hAZhBxk46a6a901LZPzt3xKyWIFQSRj/NYiQ+ | 
					
						
							|  |  |  | /thjGLZI2lhkVgYtyAD4BNxDiuppQSCbkjY9tLVDdExGttEVN7+UYDWJBHy6X16Y | 
					
						
							|  |  |  | xSG9FE3Dvp9LI89Nq8E3dRh+Q8wu52q9HaQXjS5YtzQOtDFKPBkihXu/c6gEHj4Y | 
					
						
							|  |  |  | bZVk8rFiH8/CvcQxAuvNI3VVCFUKd2LeQtqwYQQ//qoiuA15krTq5Ut9eXJ8zxAw | 
					
						
							|  |  |  | zhDEPP4FhY+Sz+y1yWirphl7A1aZwhXVPcfWIGqpQ3jzNwUeocbH27kuLh+U4hQo | 
					
						
							|  |  |  | qeg10RdFnw== | 
					
						
							|  |  |  | -----END CERTIFICATE-----` | 
					
						
							|  |  |  | 	path = filepath.Join(tempDir, "cert.pem") | 
					
						
							| 
									
										
										
										
											2021-10-13 15:30:31 +08:00
										 |  |  | 	if err = os.WriteFile(path, []byte(data), 0644); err != nil { | 
					
						
							| 
									
										
										
										
											2017-01-10 10:18:34 -05:00
										 |  |  | 		return "", nil, err | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	data = `-----BEGIN RSA PRIVATE KEY----- | 
					
						
							|  |  |  | MIIEpgIBAAKCAQEAxPBrvAIWiIJp383ndpRF+OuZ74pHsVLTJ/lSv05H+gzcGhL2 | 
					
						
							|  |  |  | y1i7kWXOvfmgvlPq3kZzZ7LvyZSz8KzTumyeNR0ofnlsOklJ0bvNb2Zc3J4vAh58 | 
					
						
							|  |  |  | VyP/fxJLk0FKi2Yujy6xwkwZd5CkJC19W5UlI/Zt9Tm7l3QpMtKD8KivpRiieqtE | 
					
						
							|  |  |  | HzYds666TxaNrDDhUeicKrtfyj3jxXoc3lmJtA6Awyj6d/TA5FEQcGO/Bzhbt7Bt | 
					
						
							|  |  |  | pNx+h7VU0Cj9CeSrFMW54xvYfGCCECupBIrxvjg7TlXTOt17bl1Weae17qw+NxXS | 
					
						
							|  |  |  | mWownfuNWIhLGw49QWH9lbvNsgz/sIxwN6QKIQIDAQABAoIBAQDCXq9V7ZGjxWMN | 
					
						
							|  |  |  | OkFaLVkqJg3V91puztoMt+xNV8t+JTcOnOzrIXZuOFbl9PwLHPPP0SSRkm9LOvKl | 
					
						
							|  |  |  | dU26zv0OWureeKSymia7U2mcqyC3tX+bzc7WinbeSYZBnc0e7AjD1EgpBcaU1TLL | 
					
						
							|  |  |  | agIxY3A2oD9CKmrVPhZzTIZf/XztqTYjhvs5I2kBeT0imdYGpXkdndRyGX4I5/JQ | 
					
						
							|  |  |  | fnp3Czj+AW3zX7RvVnXOh4OtIAcfoG9xoNyD5LOSlJkkX0MwTS8pEBeZA+A4nb+C | 
					
						
							|  |  |  | ivjnOSgXWD+liisI+LpBgBbwYZ/E49x5ghZYrJt8QXSk7Bl/+UOyv6XZAm2mev6j | 
					
						
							|  |  |  | RLAZtoABAoGBAP2P+1PoKOwsk+d/AmHqyTCUQm0UG18LOLB/5PyWfXs/6caDmdIe | 
					
						
							|  |  |  | DZWeZWng1jUQLEadmoEw/CBY5+tPfHlzwzMNhT7KwUfIDQCIBoS7dzHYnwrJ3VZh | 
					
						
							|  |  |  | qYA05cuGHAAHqwb6UWz3y6Pa4AEVSHX6CM83CAi9jdWZ1rdZybWG+qYBAoGBAMbV | 
					
						
							|  |  |  | FsR/Ft+tK5ALgXGoG83TlmxzZYuZ1SnNje1OSdCQdMFCJB10gwoaRrw1ICzi40Xk | 
					
						
							|  |  |  | ydJwV1upGz1om9ReDAD1zQM9artmQx6+TVLiVPALuARdZE70+NrA6w3ZvxUgJjdN | 
					
						
							|  |  |  | ngvXUr+8SdvaYUAwFu7BulfJlwXjUS711hHW/KQhAoGBALY41QuV2mLwHlLNie7I | 
					
						
							|  |  |  | hlGtGpe9TXZeYB0nrG6B0CfU5LJPPSotguG1dXhDpm138/nDpZeWlnrAqdsHwpKd | 
					
						
							|  |  |  | yPhVjR51I7XsZLuvBdA50Q03egSM0c4UXXXPjh1XgaPb3uMi3YWMBwL4ducQXoS6 | 
					
						
							|  |  |  | bb5M9C8j2lxZNF+L3VPhbxwBAoGBAIEWDvX7XKpTDxkxnxRfA84ZNGusb5y2fsHp | 
					
						
							|  |  |  | Bd+vGBUj8+kUO8Yzwm9op8vA4ebCVrMl2jGZZd3IaDryE1lIxZpJ+pPD5+tKdQEc | 
					
						
							|  |  |  | o67P6jz+HrYWu+zW9klvPit71qasfKMi7Rza6oo4f+sQWFsH3ZucgpJD+pyD/Ez0 | 
					
						
							|  |  |  | pcpnPRaBAoGBANT/xgHBfIWt4U2rtmRLIIiZxKr+3mGnQdpA1J2BCh+/6AvrEx// | 
					
						
							|  |  |  | E/WObVJXDnBdViu0L9abE9iaTToBVri4cmlDlZagLuKVR+TFTCN/DSlVZTDkqkLI | 
					
						
							|  |  |  | 8chzqtkH6b2b2R73hyRysWjsomys34ma3mEEPTX/aXeAF2MSZ/EWT9yL | 
					
						
							|  |  |  | -----END RSA PRIVATE KEY-----` | 
					
						
							|  |  |  | 	path = filepath.Join(tempDir, "key.pem") | 
					
						
							| 
									
										
										
										
											2021-10-13 15:30:31 +08:00
										 |  |  | 	if err = os.WriteFile(path, []byte(data), 0644); err != nil { | 
					
						
							| 
									
										
										
										
											2017-01-10 10:18:34 -05:00
										 |  |  | 		return "", nil, err | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	rmFunc := func() { os.RemoveAll(tempDir) } | 
					
						
							|  |  |  | 	return tempDir, rmFunc, nil | 
					
						
							|  |  |  | } |