secure_pinning_dio 0.0.2 copy "secure_pinning_dio: ^0.0.2" to clipboard
secure_pinning_dio: ^0.0.2 copied to clipboard

Dio integration for secure_pinning — an Interceptor-shaped facade for pinned TLS validation on Dio traffic.

secure_pinning_dio #

Dio integration for secure_pinning — an Interceptor-shaped facade that configures Dio's IOHttpClientAdapter for pinned TLS validation, built on secure_pinning's pure-Dart pinning engine.

Usage #

import 'package:dio/dio.dart';
import 'package:secure_pinning_dio/secure_pinning_dio.dart';

final dio = Dio(BaseOptions(baseUrl: 'https://api.example.com'));
dio.interceptors.add(
  SecurePinningInterceptor.forHost(
    dio,
    'api.example.com',
    pins: ['hex-spki-hash-1', 'hex-spki-hash-2'], // include a backup pin
  ),
);

final response = await dio.get('/');

For multi-host apps, backup-pin rotation, non-default hash algorithms, or migrating from a leaf-hash-based pinning setup, construct a full SecurePinningConfig instead of using .forHost():

import 'package:dio/dio.dart';
import 'package:secure_pinning_dio/secure_pinning_dio.dart';

final dio = Dio(BaseOptions(baseUrl: 'https://api.example.com'));
dio.interceptors.add(
  SecurePinningInterceptor(
    dio,
    SecurePinningConfig(
      host: 'api.example.com',
      pins: ['hex-spki-hash-1', 'hex-spki-hash-2'],
    ),
  ),
);

SecurePinningInterceptor must be added before any request is made on dio — it installs a pinned IOHttpClientAdapter at construction time. If dio.httpClientAdapter is replaced afterward, pinning is no longer enforced, and every request fails with a SecurePinningConfigurationException explaining why (rather than silently connecting unpinned).

See secure_pinning for the full SecurePinningConfig/PinningMode API and the typed exception hierarchy thrown on a pinning failure.

0
likes
160
points
119
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

Dio integration for secure_pinning — an Interceptor-shaped facade for pinned TLS validation on Dio traffic.

Repository (GitHub)
View/report issues
Contributing

Topics

#security #networking #certificate-pinning #dio

License

Apache-2.0 (license)

Dependencies

dio, flutter, secure_pinning

More

Packages that depend on secure_pinning_dio