| 
									
										
										
										
											2025-02-04 00:38:39 +01:00
										 |  |  | import * as fs from 'fs'; | 
					
						
							|  |  |  | import * as path from 'path'; | 
					
						
							|  |  |  | import { fileURLToPath } from 'url'; | 
					
						
							|  |  |  | import * as tls from 'tls'; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | const __filename = fileURLToPath(import.meta.url); | 
					
						
							|  |  |  | const __dirname = path.dirname(__filename); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | export interface TestCertificates { | 
					
						
							|  |  |  |   privateKey: string; | 
					
						
							|  |  |  |   publicKey: string; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | export function loadTestCertificates(): TestCertificates { | 
					
						
							|  |  |  |   const certPath = path.join(__dirname, '..', '..', 'assets', 'certs', 'cert.pem'); | 
					
						
							|  |  |  |   const keyPath = path.join(__dirname, '..', '..', 'assets', 'certs', 'key.pem'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   // Read certificates
 | 
					
						
							|  |  |  |   const publicKey = fs.readFileSync(certPath, 'utf8'); | 
					
						
							|  |  |  |   const privateKey = fs.readFileSync(keyPath, 'utf8'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   // Validate certificates
 | 
					
						
							|  |  |  |   try { | 
					
						
							|  |  |  |     // Try to create a secure context with the certificates
 | 
					
						
							|  |  |  |     tls.createSecureContext({ | 
					
						
							|  |  |  |       cert: publicKey, | 
					
						
							|  |  |  |       key: privateKey | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  |   } catch (error) { | 
					
						
							|  |  |  |     throw new Error(`Invalid certificates: ${error.message}`); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   return { | 
					
						
							|  |  |  |     privateKey, | 
					
						
							|  |  |  |     publicKey | 
					
						
							|  |  |  |   }; | 
					
						
							|  |  |  | } |