configureDio static method
Configure Dio with SSL pinning for the given environment
Implementation
static void configureDio(Dio dio, String environment) {
final sslConfig = SSLPinningConfig.getSSLPinsForEnvironment(environment);
// Configure the HTTP client adapter with custom certificate validation
dio.httpClientAdapter = IOHttpClientAdapter(
createHttpClient: () {
final client = HttpClient();
// Set up certificate validation callback
client.badCertificateCallback = (X509Certificate cert, String host, int port) {
// Only validate for our pinned domains
if (host != sslConfig.domain) {
// For non-pinned domains, use default validation
return false;
}
// Extract and validate the certificate's public key hash
return _validateCertificate(cert, sslConfig.pins, host);
};
return client;
},
);
}