validate static method

String? validate(
  1. CertificatePinningConfig config
)

Returns a validation error string, or null when valid.

Implementation

static String? validate(CertificatePinningConfig config) {
  if (!config.isEnabled) return null;

  if (config.certificatePins.isEmpty) {
    return 'Certificate pinning is enabled but no pins are configured';
  }

  for (var i = 0; i < config.certificatePins.length; i++) {
    final pin = config.certificatePins[i];
    if (!pin.startsWith(_sha256Prefix)) {
      return 'Pin at index $i must start with \'$_sha256Prefix\'';
    }
    final hash = pin.substring(_sha256Prefix.length);
    if (hash.length < 40) {
      return 'Pin at index $i has invalid hash length';
    }
  }

  return null;
}