ssl_pining_checking 0.0.3 copy "ssl_pining_checking: ^0.0.3" to clipboard
ssl_pining_checking: ^0.0.3 copied to clipboard

A new Flutter package ssl_pinning_check.

example/example.dart

import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
import 'package:ssl_pining_checking/ssl_pining_checking.dart';

/// 1. Put your cert at assets/certification/client.pem
/// 2. Add to pubspec.yaml:
///      assets:
///        - assets/certification/client.pem
void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return const MaterialApp(home: HomePage());
  }
}

class HomePage extends StatefulWidget {
  const HomePage({super.key});

  @override
  State<HomePage> createState() => _HomePageState();
}

class _HomePageState extends State<HomePage> {
  late http.Client _client;
  String _result = '';

  @override
  void initState() {
    super.initState();
    _initClient();
  }

  Future<void> _initClient() async {
    _client = await SSLPiningCheck(
      certificateFilePath: 'assets/certification/client.pem',
    ).getSSLPiningClient();
  }

  Future<void> _callApi() async {
    final response = await _client.post(
      Uri.parse('https://your-api.example.com/endpoint'),
      headers: <String, String>{
        'Content-Type': 'application/json',
      },
      body: json.encode(<String, String>{'key': 'value'}),
    );
    setState(() {
      _result = 'Status: ${response.statusCode}\nBody: ${response.body}';
    });
  }

  @override
  void dispose() {
    _client.close();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('SSL Pining Example')),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            ElevatedButton(
              onPressed: _callApi,
              child: const Text('Call pinned API'),
            ),
            Padding(
              padding: const EdgeInsets.all(16),
              child: Text(_result),
            ),
          ],
        ),
      ),
    );
  }
}
4
likes
140
points
103
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

A new Flutter package ssl_pinning_check.

Repository (GitHub)
View/report issues

License

MIT (license)

Dependencies

flutter, http

More

Packages that depend on ssl_pining_checking