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
Tables1
Relationships0
Layouts1
Scripts3
Value Lists0
Custom Functions0
Custom Menus33
File Options
Default custom menu set[Standard FileMaker Menus]
When opening file
Minimum allowed version12.0
Login usingAccount Name; Account= Admin
Allow user to save passwordOff
Require iOS passcodeOff
Switch to layoutOff
Hide all toolbarsOff
Script triggers
OnFirstWindowOpenOff
OnLastWindowCloseOff
OnWindowOpenOff
OnWindowCloseOff
OnFileAVPlayerChangeOff
Thumbnail Settings
Generate ThumbnailsOn; Temporary

 

Tables

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

Fields

Table Name: CURL Test - 6 Fields
Field NameTypeOptionsCommentsOn LayoutsIn RelationshipsIn ScriptsIn Value Lists
ResultNormal, TextAuto-Enter:
  • Allow editing
Validation:
  • Only during data entry
Storage:
  • Repetitions: 1
  • Indexing: None
  • Automatically create indexes as needed
  • Index Language: German
      TextNormal, TextAuto-Enter:
      • Allow editing
      Validation:
      • Only during data entry
      Storage:
      • Repetitions: 1
      • Indexing: None
      • Automatically create indexes as needed
      • Index Language: German
            CertInfoNormal, TextAuto-Enter:
            • Allow editing
            Validation:
            • Only during data entry
            Storage:
            • Repetitions: 1
            • Indexing: None
            • Automatically create indexes as needed
            • Index Language: German
                DebugNormal, TextAuto-Enter:
                • Allow editing
                Validation:
                • Only during data entry
                Storage:
                • Repetitions: 1
                • Indexing: None
                • Automatically create indexes as needed
                • Index Language: German
                    URLNormal, TextAuto-Enter:
                    • Allow editing
                    Validation:
                    • Only during data entry
                    Storage:
                    • Repetitions: 1
                    • Indexing: None
                    • Automatically create indexes as needed
                    • Index Language: German
                        HashNormal, TextAuto-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 PropertiesCoordinatesField FormatField BehaviorQuick 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 PropertiesCoordinatesField FormatField BehaviorQuick 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 PropertiesCoordinatesField FormatField BehaviorQuick 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 PropertiesCoordinatesField FormatField BehaviorQuick 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 PropertiesCoordinatesField FormatField BehaviorQuick 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 PropertiesCoordinatesScript/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 NameConnect
                            Run script with full access privilegesOff
                            Include In MenuYes
                            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 NameClear
                                    Run script with full access privilegesOff
                                    Include In MenuYes
                                    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 NameGet Hash
                                                Run script with full access privilegesOff
                                                Include In MenuYes
                                                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: