Components All New MacOS Windows Linux iOS
Examples Mac & Win Server Client Guides Statistic FMM Blog Deprecated Old

MBS FileMaker Plugin Example Databases

CURL Certificate Pinning

All examples are included with download of MBS FileMaker Plugin.

CURL Certificate Pinning.fmp12

Overview
Tables 1
Relationships 0
Layouts 1
Scripts 3
Value Lists 0
Custom Functions 0
Custom Menus 33
File Options
Default custom menu set [Standard FileMaker Menus]
Default theme Minimalist
When opening file
Minimum allowed version 12.0
Login using Account Name; Account= Admin
Allow user to save password On
Require iOS passcode Off
Show Sign-in fields Off
Switch to layout Off
Hide all toolbars Off
Script triggers
OnFirstWindowOpen Off
OnLastWindowClose Off
OnWindowOpen Off
OnWindowClose Off
OnFileAVPlayerChange Off
OnWindowTransaction Off
Thumbnail Settings
Generate Thumbnails On; Temporary

 

Tables

Table Name
Statistics
Comments
Occurrences in Relationship Graph
CURL Test
6 fields defined, 1 record
CURL Test

Fields

Table Name: CURL Test - 6 Fields
Field Name Type Options Comments On Layouts In Relationships In Scripts In Value Lists
Result Normal, Text Auto-Enter:
  • Allow editing
Validation:
  • Only during data entry
Storage:
  • Repetitions: 1
  • Indexing: None
  • Automatically create indexes as needed
  • Index Language: German
      Text Normal, Text Auto-Enter:
      • Allow editing
      Validation:
      • Only during data entry
      Storage:
      • Repetitions: 1
      • Indexing: None
      • Automatically create indexes as needed
      • Index Language: German
            CertInfo Normal, Text Auto-Enter:
            • Allow editing
            Validation:
            • Only during data entry
            Storage:
            • Repetitions: 1
            • Indexing: None
            • Automatically create indexes as needed
            • Index Language: German
                Debug Normal, Text Auto-Enter:
                • Allow editing
                Validation:
                • Only during data entry
                Storage:
                • Repetitions: 1
                • Indexing: None
                • Automatically create indexes as needed
                • Index Language: German
                    URL Normal, Text Auto-Enter:
                    • Allow editing
                    Validation:
                    • Only during data entry
                    Storage:
                    • Repetitions: 1
                    • Indexing: None
                    • Automatically create indexes as needed
                    • Index Language: German
                        Hash Normal, Text Auto-Enter:
                        • Allow editing
                        Validation:
                        • Only during data entry
                        Storage:
                        • Repetitions: 1
                        • Indexing: None
                        • Automatically create indexes as needed
                        • Index Language: German

                            Layout Objects: CURL Test

                            Regular Fields

                            Field Name: CURL Test::Result
                            Field Properties Coordinates Field Format Field Behavior Quick Find
                            • Top: 37 pt
                            • Left: 138 pt
                            • Bottom: 56 pt
                            • Right: 553 pt
                            • Anchoring: Left, Top
                            Field Format:
                            • Edit Box
                            Field Behavior:
                            • Allow field to be entered: In Find mode, In Browse mode
                            • Touch keyboard type: System Default
                            • Go to next field using: Tab key
                            Yes

                            Field Name: CURL Test::CertInfo
                            Field Properties Coordinates Field Format Field Behavior Quick Find
                            • Top: 126 pt
                            • Left: 138 pt
                            • Bottom: 475 pt
                            • Right: 547 pt
                            • Anchoring: Left, Top
                            Field Format:
                            • Edit Box
                            Field Behavior:
                            • Allow field to be entered: In Find mode, In Browse mode
                            • Touch keyboard type: System Default
                            • Go to next field using: Tab key
                            Yes

                            Field Name: CURL Test::URL
                            Field Properties Coordinates Field Format Field Behavior Quick Find
                            • Top: 11 pt
                            • Left: 138 pt
                            • Bottom: 30 pt
                            • Right: 553 pt
                            • Anchoring: Left, Top
                            Field Format:
                            • Edit Box
                            Field Behavior:
                            • Allow field to be entered: In Find mode, In Browse mode
                            • Touch keyboard type: System Default
                            • Go to next field using: Tab key
                            Yes

                            Field Name: CURL Test::Debug
                            Field Properties Coordinates Field Format Field Behavior Quick Find
                            • Top: 127 pt
                            • Left: 553 pt
                            • Bottom: 476 pt
                            • Right: 925 pt
                            • Anchoring: Left, Top
                            Field Format:
                            • Edit Box
                            Field Behavior:
                            • Allow field to be entered: In Find mode, In Browse mode
                            • Touch keyboard type: System Default
                            • Go to next field using: Tab key
                            Yes

                            Field Name: CURL Test::Hash
                            Field Properties Coordinates Field Format Field Behavior Quick Find
                            • Top: 63 pt
                            • Left: 138 pt
                            • Bottom: 82 pt
                            • Right: 553 pt
                            • Anchoring: Left, Top
                            Field Format:
                            • Edit Box
                            Field Behavior:
                            • Allow field to be entered: In Find mode, In Browse mode
                            • Touch keyboard type: Default for Data Type
                            • Go to next field using: Tab key
                            Yes

                            Buttons

                            Button Properties Coordinates Script/Script Step
                              Type:
                            • Text: Connect
                            • Top: 12 pt
                            • Left: 573 pt
                            • Bottom: 37 pt
                            • Right: 706 pt
                            • Anchoring: Left, Top
                            Perform Script [ “Connect” ]

                            Scripts:


                            Script Hierarchy

                            Connect
                            Clear
                            Get Hash

                            Next Script: [Clear]
                            Script Name Connect
                            Run script with full access privileges Off
                            Siri Shortcut Visible Off
                            Include In Menu Yes
                            Layouts that use this script
                            Scripts that use this script
                              Script Definition
                              Script Steps
                              • #Start new session
                              • Set Variable [ $curl; Value:MBS("CURL.New") ]
                              • #Set URL to load (HTTP, HTTPS, FTP, FTPS, SFTP, etc.)
                              • Set Variable [ $result; Value:MBS("CURL.SetOptionURL"; $curl; CURL Test::URL) ]
                              • #query hash information
                              • Set Variable [ $result; Value:MBS("CURL.SetOptionCertInfo"; $curl; 1) ]
                              • #don't download data, just connect
                              • Set Variable [ $result; Value:MBS("CURL.SetOptionNoBody"; $curl; 1) ]
                              • #use this hash for certificate
                              • Set Variable [ $result; Value:MBS( "CURL.SetOptionPinnedPublicKey"; $curl; If(Length(CURL Test::Hash) > 0; CURL Test::Hash; "sha256//xxx" )) ]
                              • #RUN now
                              • Set Field [ CURL Test::Result; MBS("CURL.Perform"; $curl) ]
                              • #Check result
                              • Set Field [ CURL Test::CertInfo; MBS( "CURL.GetCertInfo"; $curl ) ]
                              • Set Field [ CURL Test::Debug; MBS("CURL.GetDebugMessages"; $curl) ]
                              • If [ MBS( "CURL.ErrorCode"; $curl ) = 90 ]
                              • Perform Script [ “Get Hash” ]
                              • End If
                              • #Cleanup
                              • Set Variable [ $result; Value:MBS("CURL.Release"; $curl) ]
                              Fields used in this script
                              Scripts used in this script
                              Layouts used in this script
                                Tables used in this script
                                Table occurrences used by this script
                                Custom Functions used by this script
                                  Custom menu set used by this script

                                    Previous Script: [Connect] Next Script: [Get Hash]
                                    Script Name Clear
                                    Run script with full access privileges Off
                                    Siri Shortcut Visible Off
                                    Include In Menu Yes
                                    Layouts that use this script
                                      Scripts that use this script
                                        Script Definition
                                        Script Steps
                                        • Set Field [ CURL Test::Result; "" ]
                                        • Set Field [ CURL Test::Text; "" ]
                                        • Set Field [ CURL Test::CertInfo; "" ]
                                        • Set Field [ CURL Test::Debug; "" ]
                                        • Set Field [ CURL Test::Hash; "" ]
                                        Fields used in this script
                                        Scripts used in this script
                                          Layouts used in this script
                                            Tables used in this script
                                            Table occurrences used by this script
                                            Custom Functions used by this script
                                              Custom menu set used by this script

                                                Previous Script: [Clear]
                                                Script Name Get Hash
                                                Run script with full access privileges Off
                                                Siri Shortcut Visible Off
                                                Include In Menu Yes
                                                Layouts that use this script
                                                  Scripts that use this script
                                                  Script Definition
                                                  Script Steps
                                                  • Set Variable [ $t; Value:"public key hash: " ]
                                                  • Set Variable [ $p; Value:Position ( CURL Test::Debug ; $t ; 1 ; 1 ) ]
                                                  • If [ $p > 0 ]
                                                  • Set Variable [ $q; Value:Position ( CURL Test::Debug ; ¶ ; $p ; 1 ) ]
                                                  • Set Variable [ $hash; Value:Middle(CURL Test::Debug; $p + Length($t); $q - $p - Length($t)) ]
                                                  • Show Custom Dialog [ Title: "Found new hash"; Message: "Do you like to use this new hash?" & ¶ & ¶ & $hash; Default Button: “No”, Commit: “Yes”; Button 2: “Yes”, Commit: “Yes” ]
                                                  • If [ Get ( LastMessageChoice ) = 2 ]
                                                  • Set Field [ CURL Test::Hash; $hash ]
                                                  • End If
                                                  • End If
                                                  Fields used in this script
                                                  Scripts used in this script
                                                    Layouts used in this script
                                                      Tables used in this script
                                                      Table occurrences used by this script
                                                      Custom Functions used by this script
                                                        Custom menu set used by this script

                                                          Download example: CURL Certificate Pinning

                                                          Used functions: