SSL Pinning Plugin Flutter

Overview

ssl_pinning_plugin

Plugin for check SSL Pinning on request HTTP.

Checks the equality between the known SHA-1 or SHA-256 fingerprint and the SHA-1 or SHA-256 of the target server.

Getting Started

For help getting started with Flutter, view our online documentation.

For help on editing plugin code, view the documentation.

Check

Params

  • serveurUrl : String* required
  • httpMethod : HttpMethod enum [HttpMethod.Get || HttpMethod.Head] (default : HttpMethod.Get) * required
  • headerHttp : Map<String, String>
  • sha : SHA enum [SHA.SHA1 || SHA.SHA256] * required
  • allowedSHAFingerprints : List<String> v
  • timeout : int * required

Usage :

await SslPinningPlugin.check(serverURL: url, httpMethod: HttpMethod.Get, headerHttp : new Map(), sha: SHA.SHA1, allowedSHAFingerprints: new List<String>, timeout : 50);

Return :

  • On success, return String "CONNECTION_SECURE"
  • On error, return String "CONNECTION_INSECURE"

If an exception, return the stacktrace on String value.

Comments
  • MissingPluginException(No implementation found for method close on channel ssl_pinning_plugin)

    MissingPluginException(No implementation found for method close on channel ssl_pinning_plugin)

    New project with main.dart from example doesn't work when check button is pressed for any https site/fingerprint.

    Error returned:

    MissingPluginException(No implementation found for method close on channel ssl_pinning_plugin)

    image

    $ flutter doctor
    Doctor summary (to see all details, run flutter doctor -v):
    [√] Flutter (Channel stable, v1.17.3, on Microsoft Windows [versão
        10.0.18363.900], locale pt-BR)
    
    [√] Android toolchain - develop for Android devices (Android SDK version
        30.0.0-rc2)
    [√] Android Studio (version 4.0)
    [√] VS Code (version 1.37.0)
    [√] Connected device (1 available)
    
    • No issues found!
    
    bug 
    opened by andrewbiller 6
  • Flutter v1.22.1 - Compatibility error

    Flutter v1.22.1 - Compatibility error

    Hi, I am getting below error. can you please assist quickly on this. Thanks in advance.

    Invalid plugin specification ssl_pinning_plugin. Cannot find the flutter.plugin.platforms key in the pubspec.yaml file. An instruction to format the pubspec.yaml can be found here: https://flutter.dev/docs/development/packages-and-plugins/developing-packages#plugin-platforms

    opened by Naveenkumar3506 4
  • error: compiling for iOS 8.0, but module 'CryptoSwift' has a minimum deployment target of iOS 9.0

    error: compiling for iOS 8.0, but module 'CryptoSwift' has a minimum deployment target of iOS 9.0

    Here is the latest version of ssl_pining_plugin.pubspec

    Pod::Spec.new do |s|
      s.name             = 'ssl_pinning_plugin'
      s.dependency 'CryptoSwift'
      s.ios.deployment_target = '8.0'
    end
    

    And according the CHANGELOG of CryptoSwift, the minimum deployment target is iOS9.0.

    Therefore I can't build app successfully.

    Could you please bump s.ios.deployment.target to '9.0' or specify version constraint of CryptoSwift?

    Thanks.

    opened by dokinkon 1
  • Update to v2 android plugin APIs

    Update to v2 android plugin APIs

    Getting the following log output on flutter packages get:

    The plugin `ssl_pinning_plugin` is built using an older version of the Android plugin API which assumes that it's running in a full-Flutter environment. It may have undefined behaviors when Flutter is integrated into an existing app as a module.
    The plugin can be updated to the v2 Android Plugin APIs by following https://flutter.dev/go/android-plugin-migration.
    
    enhancement 
    opened by SebRut 1
  • Dart 2 support

    Dart 2 support

    It looks like version 1.0 version has Dart 2 support, but it doesn't look like it was released to the Pub site: https://pub.dev/packages/ssl_pinning_plugin#-installing-tab-

    Are there plans to release 1.0?

    opened by d-scheck 1
  • Support for SHA-256 Fingerprint

    Support for SHA-256 Fingerprint

    The network_security_config.xml file in Android only supports SHA-256 certificate fingerprints. Can you add a way to use either SHA-1 or SHA-256 fingerprints?

    enhancement good first issue 
    opened by klavergne 1
  • MissingPluginException(No implementation found for method check on channel ssl_pinning_plugin)

    MissingPluginException(No implementation found for method check on channel ssl_pinning_plugin)

    ssl_pinning_plugin: ^1.5.0

    try { var check = await SslPinningPlugin.check(serverURL: endpoint, headerHttp: new Map(), sha: SHA.SHA256, allowedSHAFingerprints: shaList, timeout : 50); return check.contains("CONNECTION_SECURE"); } catch(e) { print("Error $e"); return false; }

    i tried and get error

    in iOS => MissingPluginException(No implementation found for method check on channel ssl_pinning_plugin)

    anybody help me please?

    opened by pratamarama 0
  • ANRs on handleCheckEvent

    ANRs on handleCheckEvent

    I got this log in firebase crashlytics.

    SslPinningPlugin.java com.macif.plugin.sslpinningplugin.SslPinningPlugin.handleCheckEvent

    Triggered ANR - Root blocking

    main (waiting): tid=1 systid=7551 at sun.misc.Unsafe.park(Unsafe.java) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:190) at java.util.concurrent.CompletableFuture$Signaller.block(CompletableFuture.java:1723) at java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3446) at java.util.concurrent.CompletableFuture.waitingGet(CompletableFuture.java:1752) at java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1923) at com.macif.plugin.sslpinningplugin.SslPinningPlugin.handleCheckEvent(SslPinningPlugin.java) at com.macif.plugin.sslpinningplugin.SslPinningPlugin.onMethodCall(SslPinningPlugin.java) at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java) at io.flutter.embedding.engine.dart.DartMessenger.handleMessageFromDart(DartMessenger.java) at io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage(FlutterJNI.java) at android.os.MessageQueue.nativePollOnce(MessageQueue.java) at android.os.MessageQueue.next(MessageQueue.java:339) at android.os.Looper.loop(Looper.java:208) at android.app.ActivityThread.main(ActivityThread.java:8218) at java.lang.reflect.Method.invoke(Method.java) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:626) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1016)

    This happened mostly in android 11 and 12 Screen Shot 2022-03-02 at 11 27 28

    Anyone can help me with this issue? Thank you very much

    opened by NguyenDinhTruong97 1
  • Automatic renew certification

    Automatic renew certification

    We have implement ssl pinning web server https://test.link.com It will automatically renew the certificate in (one year) when certificate expired. is there any way to re new ssl pining in live applications automatically.

    opened by ChanakaWeerasinghe 0
  • works at the emulator but not on the phone

    works at the emulator but not on the phone

    I/System.out( 6497): (HTTPLog)-Static: isSBSettingEnabled false I/System.out( 6497): (HTTPLog)-Static: isSBSettingEnabled false I/System.out( 6497): (HTTPLog)-Static: isSBSettingEnabled false I/System.out( 6497): (HTTPLog)-Static: isSBSettingEnabled false

    opened by ismailatas 0
  • Use StreamSupport (CompletableFuture backport) to fix crash on Android 6

    Use StreamSupport (CompletableFuture backport) to fix crash on Android 6

    This PR is about this issue

    The root cause may be some Android N API and not supporting on Android 6 or older devices.

    I found a CompleteFuture back port => net.sourceforge.streamsupport:android-retrofuture:1.7.3, and trying to fix this issue.

    Please leave some comments no matter you deciding accept this PR or not.

    Thanks for your effort.

    opened by dokinkon 0
  • Fatal Exception: java.lang.NoClassDefFoundError: c.f.a.a.a$c

    Fatal Exception: java.lang.NoClassDefFoundError: c.f.a.a.a$c

    We are facing the crash since yesterday on live application. Please check the logs @us3soap @adsellor

    • Operating system Version: 6.0.1
    • Plugin version: 1.5.0

    Fatal Exception: java.lang.NoClassDefFoundError: c.f.a.a.a$c at com.macif.plugin.sslpinningplugin.SslPinningPlugin.checkConnexion(SslPinningPlugin.java) at com.macif.plugin.sslpinningplugin.SslPinningPlugin.onMethodCall(SslPinningPlugin.java) at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.getStackTrace(MethodChannel.java) at io.flutter.embedding.engine.dart.DartMessenger.handleError(DartMessenger.java) at io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage(FlutterJNI.java) at android.os.MessageQueue.nativePollOnce(MessageQueue.java) at android.os.MessageQueue.next(MessageQueue.java:323) at android.os.Looper.loop(Looper.java:141) at android.app.ActivityThread.main(ActivityThread.java:5603) at java.lang.reflect.Method.invoke(Method.java) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:774) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:652)

    bug 
    opened by 96MayankJain 8
Releases(2.0.0)
Owner
Macif
Macif
A ListView widget capable of pinning a child to the top of the list.

PinnableListView A Flutter ListView widget that allows pinning a ListView child to the top of the list. Demo Getting Started Define the list PinCont

Jan Hrastnik 2 May 17, 2020
This is just the simplyfied Flutter Plugin use for one of the popular flutter plugin for social media login.

social_media_logins Flutter Plugin to login via Social Media Accounts. Available Social Media Logins: Facebook Google Apple Getting Started To use thi

Reymark Esponilla 3 Aug 24, 2022
Permission plugin for Flutter. This plugin provides a cross-platform (iOS, Android) API to request and check permissions.

Flutter permission_handler plugin The Flutter permission_handler plugin is build following the federated plugin architecture. A detailed explanation o

Baseflow 1.7k Dec 31, 2022
Unloc customizations of the Permission plugin for Flutter. This plugin provides an API to request and check permissions.

Flutter Permission handler Plugin A permissions plugin for Flutter. This plugin provides a cross-platform (iOS, Android) API to request and check perm

Unloc 1 Nov 26, 2020
Klutter plugin makes it possible to write a Flutter plugin for both Android and iOS using Kotlin only.

The Klutter Framework makes it possible to write a Flutter plugin for both Android and iOS using Kotlin Multiplatform. Instead of writing platform spe

Gillian 33 Dec 18, 2022
A Flutter step_tracker plugin is collect information from user and display progress through a sequence of steps. this plugin also have privilege for fully customization from user side. like flipkart, amazon, myntra, meesho.

step_tracker plugin A Flutter step_tracker plugin is collect information from user and display progress through a sequence of steps. this plugin also

Roshan nahak 5 Oct 21, 2022
Boris Gautier 1 Jan 31, 2022
A Side Menu plugin for flutter and compatible with liquid ui for flutter

Liquid Shrink Side Menu A Side Menu plugin for flutter and compatible with liquid ui Side Menu Types There are 8 configuration of Liquid shrink side m

Raj Singh 18 Nov 24, 2022
FlutterBoost is a Flutter plugin which enables hybrid integration of Flutter for your existing native apps with minimum efforts

中文文档 中文介绍 Release Note v3.0-preview.17 PS: Before updating the beta version, please read the CHANGELOG to see if there are any BREAKING CHANGE Flutter

Alibaba 6.3k Dec 30, 2022
Flutter Counter is a plugin written in dart for flutter which is really simple and customizeable.

Flutter Counter (iOS & Android) Description Flutter Counter is a plugin written in dart for flutter which is really simple and customizeable. Create i

Salmaan Ahmed 15 Sep 18, 2022
Flutter simple image crop - A simple and easy to use flutter plugin to crop image on iOS and Android

Image Zoom and Cropping plugin for Flutter A simple and easy used flutter plugin to crop image on iOS and Android. Installation Add simple_image_crop

null 97 Dec 14, 2021
Flutter-ffmpeg - FFmpeg plugin for Flutter. Not maintained anymore. Superseded by FFmpegKit.

flutter_ffmpeg FFmpeg plugin for Flutter. Supports iOS and Android. Not maintained anymore, superseded by FFmpegKit. See FlutterFFmpeg to FFmpegKit Mi

Taner Şener 635 Dec 22, 2022
Rave flutter - A Flutter plugin for Flutterwaves's rave.

Rave Flutter A robust Flutter plugin for accepting payment on Rave with Card Nigerian Bank Account ACH Payments Mobile money Francophone Africa Mpesa

Wilberforce Uwadiegwu 30 Oct 6, 2022
A flutter plugin to add login with facebook in your flutter app

Features Login on iOS, Android and Web. Express login on Android. Granted and declined permissions. User information, picture profile and more. Provid

Darwin Morocho 157 Jan 6, 2023
Flutter blue plus - Flutter plugin for connecting and communicationg with Bluetooth Low Energy devices, on Android and iOS

Introduction FlutterBluePlus is a bluetooth plugin for Flutter, a new app SDK to

null 141 Dec 22, 2022
This is a Flutter plugin that takes a JSON string and converts it onto a customizable Flutter Widget.

Colored JSON Convert JSON string into customizable widget. Getting Started ColoredJson is a stateless widget that produces a structured view of JSON s

null 4 May 20, 2022
Flutter plugin to manage home screen widget within flutter app.

Flutter App Widget App Widget / Home Screen widget plugin for flutter app Usage Please see app_widget subdirectory for the usage documentation. Plafor

Alexander Dischberg 6 Dec 16, 2022
Flutter plugin for creating static & dynamic app shortcuts on the home screen.

Flutter Shortcuts Show some ❤️ and ⭐ the repo Why use Flutter Shortcuts? Flutter Shortcuts Plugin is known for : Flutter Shortcuts Fast, performant &

Divyanshu Shekhar 39 Sep 26, 2022