mirror of
https://github.com/datatheorem/TrustKit.git
synced 2026-05-17 12:50:35 +00:00
352 lines
19 KiB
HTML
352 lines
19 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<title>Setting up a Validation Callback Reference</title>
|
|
<link rel="stylesheet" type="text/css" href="css/jazzy.css" />
|
|
<link rel="stylesheet" type="text/css" href="css/highlight.css" />
|
|
<meta charset="utf-8">
|
|
<script src="js/jquery.min.js" defer></script>
|
|
<script src="js/jazzy.js" defer></script>
|
|
|
|
<script src="js/lunr.min.js" defer></script>
|
|
<script src="js/typeahead.jquery.js" defer></script>
|
|
<script src="js/jazzy.search.js" defer></script>
|
|
</head>
|
|
<body>
|
|
|
|
<a name="//apple_ref/objc/Section/Setting up a Validation Callback" class="dashAnchor"></a>
|
|
|
|
<a title="Setting up a Validation Callback Reference"></a>
|
|
|
|
<header class="header">
|
|
<p class="header-col header-col--primary">
|
|
<a class="header-link" href="index.html">
|
|
TrustKit Docs
|
|
</a>
|
|
|
|
</p>
|
|
|
|
<p class="header-col--secondary">
|
|
<form role="search" action="search.json">
|
|
<input type="text" placeholder="Search documentation" data-typeahead>
|
|
</form>
|
|
</p>
|
|
|
|
<p class="header-col header-col--secondary">
|
|
<a class="header-link" href="https://github.com/datatheorem/TrustKit">
|
|
<img class="header-icon" src="img/gh.png"/>
|
|
View on GitHub
|
|
</a>
|
|
</p>
|
|
|
|
</header>
|
|
|
|
<p class="breadcrumbs">
|
|
<a class="breadcrumb" href="index.html">TrustKit Reference</a>
|
|
<img class="carat" src="img/carat.png" />
|
|
Setting up a Validation Callback Reference
|
|
</p>
|
|
|
|
<div class="content-wrapper">
|
|
<nav class="navigation">
|
|
<ul class="nav-groups">
|
|
<li class="nav-group-name">
|
|
<a class="nav-group-name-link" href="Initalizing TrustKit.html">Initalizing TrustKit</a>
|
|
<ul class="nav-group-tasks">
|
|
<li class="nav-group-task">
|
|
<a class="nav-group-task-link" href="Classes/TrustKit.html">TrustKit</a>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li class="nav-group-name">
|
|
<a class="nav-group-name-link" href="Implementing Pinning Validation.html">Implementing Pinning Validation</a>
|
|
<ul class="nav-group-tasks">
|
|
<li class="nav-group-task">
|
|
<a class="nav-group-task-link" href="Classes/TSKPinningValidator.html">TSKPinningValidator</a>
|
|
</li>
|
|
<li class="nav-group-task">
|
|
<a class="nav-group-task-link" href="Enums/TSKTrustDecision.html">TSKTrustDecision</a>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li class="nav-group-name">
|
|
<a class="nav-group-name-link" href="Setting up a Validation Callback.html">Setting up a Validation Callback</a>
|
|
<ul class="nav-group-tasks">
|
|
<li class="nav-group-task">
|
|
<a class="nav-group-task-link" href="Setting up a Validation Callback.html#/c:TSKPinningValidatorCallback.h@T@TSKPinningValidatorCallback">TSKPinningValidatorCallback</a>
|
|
</li>
|
|
<li class="nav-group-task">
|
|
<a class="nav-group-task-link" href="Classes/TSKPinningValidatorResult.html">TSKPinningValidatorResult</a>
|
|
</li>
|
|
<li class="nav-group-task">
|
|
<a class="nav-group-task-link" href="Setting up a Validation Callback.html#/c:TSKPinningValidatorCallback.h@T@TKSDomainPinningPolicy">TKSDomainPinningPolicy</a>
|
|
</li>
|
|
<li class="nav-group-task">
|
|
<a class="nav-group-task-link" href="Enums/TSKTrustEvaluationResult.html">TSKTrustEvaluationResult</a>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li class="nav-group-name">
|
|
<a class="nav-group-name-link" href="Global Configuration Keys.html">Global Configuration Keys</a>
|
|
<ul class="nav-group-tasks">
|
|
<li class="nav-group-task">
|
|
<a class="nav-group-task-link" href="Global Configuration Keys.html#/c:TSKTrustKitConfig.h@T@TSKGlobalConfigurationKey">TSKGlobalConfigurationKey</a>
|
|
</li>
|
|
<li class="nav-group-task">
|
|
<a class="nav-group-task-link" href="Global Configuration Keys.html#/c:@kTSKSwizzleNetworkDelegates">kTSKSwizzleNetworkDelegates</a>
|
|
</li>
|
|
<li class="nav-group-task">
|
|
<a class="nav-group-task-link" href="Global Configuration Keys.html#/c:@kTSKPinnedDomains">kTSKPinnedDomains</a>
|
|
</li>
|
|
<li class="nav-group-task">
|
|
<a class="nav-group-task-link" href="Global Configuration Keys.html#/c:@kTSKIgnorePinningForUserDefinedTrustAnchors">kTSKIgnorePinningForUserDefinedTrustAnchors</a>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li class="nav-group-name">
|
|
<a class="nav-group-name-link" href="Domain Configuration Keys.html">Domain Configuration Keys</a>
|
|
<ul class="nav-group-tasks">
|
|
<li class="nav-group-task">
|
|
<a class="nav-group-task-link" href="Domain Configuration Keys.html#/c:TSKTrustKitConfig.h@T@TSKDomainConfigurationKey">TSKDomainConfigurationKey</a>
|
|
</li>
|
|
<li class="nav-group-task">
|
|
<a class="nav-group-task-link" href="Domain Configuration Keys.html#/c:@kTSKPublicKeyHashes">kTSKPublicKeyHashes</a>
|
|
</li>
|
|
<li class="nav-group-task">
|
|
<a class="nav-group-task-link" href="Domain Configuration Keys.html#/c:@kTSKEnforcePinning">kTSKEnforcePinning</a>
|
|
</li>
|
|
<li class="nav-group-task">
|
|
<a class="nav-group-task-link" href="Domain Configuration Keys.html#/c:@kTSKIncludeSubdomains">kTSKIncludeSubdomains</a>
|
|
</li>
|
|
<li class="nav-group-task">
|
|
<a class="nav-group-task-link" href="Domain Configuration Keys.html#/c:@kTSKExcludeSubdomainFromParentPolicy">kTSKExcludeSubdomainFromParentPolicy</a>
|
|
</li>
|
|
<li class="nav-group-task">
|
|
<a class="nav-group-task-link" href="Domain Configuration Keys.html#/c:@kTSKReportUris">kTSKReportUris</a>
|
|
</li>
|
|
<li class="nav-group-task">
|
|
<a class="nav-group-task-link" href="Domain Configuration Keys.html#/c:@kTSKDisableDefaultReportUri">kTSKDisableDefaultReportUri</a>
|
|
</li>
|
|
<li class="nav-group-task">
|
|
<a class="nav-group-task-link" href="Domain Configuration Keys.html#/c:@kTSKExpirationDate">kTSKExpirationDate</a>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li class="nav-group-name">
|
|
<a class="nav-group-name-link" href="Other Constants.html">Other Constants</a>
|
|
<ul class="nav-group-tasks">
|
|
<li class="nav-group-task">
|
|
<a class="nav-group-task-link" href="Other Constants.html#/c:@TrustKitVersion">TrustKitVersion</a>
|
|
</li>
|
|
<li class="nav-group-task">
|
|
<a class="nav-group-task-link" href="Other Constants.html#/c:@kTSKAlgorithmEcDsaSecp256r1">kTSKAlgorithmEcDsaSecp256r1</a>
|
|
</li>
|
|
<li class="nav-group-task">
|
|
<a class="nav-group-task-link" href="Other Constants.html#/c:@kTSKAlgorithmEcDsaSecp384r1">kTSKAlgorithmEcDsaSecp384r1</a>
|
|
</li>
|
|
<li class="nav-group-task">
|
|
<a class="nav-group-task-link" href="Other Constants.html#/c:@kTSKAlgorithmRsa2048">kTSKAlgorithmRsa2048</a>
|
|
</li>
|
|
<li class="nav-group-task">
|
|
<a class="nav-group-task-link" href="Other Constants.html#/c:@kTSKAlgorithmRsa4096">kTSKAlgorithmRsa4096</a>
|
|
</li>
|
|
<li class="nav-group-task">
|
|
<a class="nav-group-task-link" href="Other Constants.html#/c:@kTSKPublicKeyAlgorithms">kTSKPublicKeyAlgorithms</a>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li class="nav-group-name">
|
|
<a class="nav-group-name-link" href="Other Type Definitions.html">Other Type Definitions</a>
|
|
<ul class="nav-group-tasks">
|
|
<li class="nav-group-task">
|
|
<a class="nav-group-task-link" href="Other Type Definitions.html#/c:TSKTrustKitConfig.h@T@TSKSupportedAlgorithm">TSKSupportedAlgorithm</a>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
</nav>
|
|
<article class="main-content">
|
|
|
|
<section class="section">
|
|
<div class="section-content">
|
|
<h1>Setting up a Validation Callback</h1>
|
|
|
|
</div>
|
|
</section>
|
|
|
|
<section class="section">
|
|
<div class="section-content">
|
|
<div class="task-group">
|
|
<ul class="item-container">
|
|
<li class="item">
|
|
<div>
|
|
<code>
|
|
<a name="/c:TSKPinningValidatorCallback.h@T@TSKPinningValidatorCallback"></a>
|
|
<a name="//apple_ref/objc/Type/TSKPinningValidatorCallback" class="dashAnchor"></a>
|
|
<a class="token" href="#/c:TSKPinningValidatorCallback.h@T@TSKPinningValidatorCallback">TSKPinningValidatorCallback</a>
|
|
</code>
|
|
</div>
|
|
<div class="height-container">
|
|
<div class="pointer-container"></div>
|
|
<section class="section">
|
|
<div class="pointer"></div>
|
|
<div class="abstract">
|
|
<p>A block that can be set in a <code><a href="Classes/TrustKit.html">TrustKit</a></code> instance to be invoked for every request that is going through
|
|
instance’s pinning validation logic.</p>
|
|
|
|
<p>The callback will be invoked every time the validator performs pinning validation against a server’s
|
|
certificate chain; if the server’s hostname is not defined in the pinning policy, no invocations will
|
|
result as no pinning validation was performed.</p>
|
|
|
|
<p>The callback provides the following arguments:</p>
|
|
|
|
<ul>
|
|
<li>The <code><a href="Classes/TSKPinningValidatorResult.html">TSKPinningValidatorResult</a></code> resulting from the validation of the server’s identity.</li>
|
|
<li>The <code>notedHostname</code>, which is the entry within the SSL pinning configuration that was used for the
|
|
server being validated.</li>
|
|
<li>The <code>notedHostname</code>‘s pinning policy, which was used for the server being validated.</li>
|
|
</ul>
|
|
|
|
<p>The callback can be used for advanced features such as performance measurement or customizing the
|
|
reporting mechanism. Hence, most Apps should not have to use this callback. If set, the callback may
|
|
be invoked very frequently and is not a suitable place for expensive tasks.</p>
|
|
|
|
<p>Lastly, the callback is always invoked after the validation has been completed, and therefore
|
|
cannot be used to modify the result of the validation (for example to accept invalid certificates).</p>
|
|
|
|
</div>
|
|
<div class="declaration">
|
|
<h4>Declaration</h4>
|
|
<div class="language">
|
|
<p class="aside-title">Objective-C</p>
|
|
<pre class="highlight objective_c"><code><span class="k">typedef</span> <span class="kt">void</span> <span class="p">(</span><span class="o">^</span><span class="n">TSKPinningValidatorCallback</span><span class="p">)(</span><span class="n"><a href="Classes/TSKPinningValidatorResult.html">TSKPinningValidatorResult</a></span> <span class="o">*</span><span class="n">_Nonnull</span><span class="p">,</span>
|
|
<span class="n">NSString</span> <span class="o">*</span><span class="n">_Nonnull</span><span class="p">,</span>
|
|
<span class="n"><a href="Setting up a Validation Callback.html#/c:TSKPinningValidatorCallback.h@T@TKSDomainPinningPolicy">TKSDomainPinningPolicy</a></span> <span class="o">*</span><span class="n">_Nonnull</span><span class="p">)</span></code></pre>
|
|
|
|
</div>
|
|
<div class="language">
|
|
<p class="aside-title">Swift</p>
|
|
<pre class="highlight swift"><code><span class="kd">typealias</span> <span class="kt">TSKPinningValidatorCallback</span> <span class="o">=</span> <span class="p">(</span><span class="kt"><a href="Classes/TSKPinningValidatorResult.html">TSKPinningValidatorResult</a></span><span class="p">,</span> <span class="kt">String</span><span class="p">,</span> <span class="p">[</span><span class="kt">String</span> <span class="p">:</span> <span class="kt">Any</span><span class="p">])</span> <span class="o">-></span> <span class="kt">Void</span></code></pre>
|
|
|
|
</div>
|
|
</div>
|
|
</section>
|
|
</div>
|
|
</li>
|
|
<li class="item">
|
|
<div>
|
|
<code>
|
|
<a name="/c:TSKPinningValidatorCallback.h@T@TKSDomainPinningPolicy"></a>
|
|
<a name="//apple_ref/objc/Type/TKSDomainPinningPolicy" class="dashAnchor"></a>
|
|
<a class="token" href="#/c:TSKPinningValidatorCallback.h@T@TKSDomainPinningPolicy">TKSDomainPinningPolicy</a>
|
|
</code>
|
|
</div>
|
|
<div class="height-container">
|
|
<div class="pointer-container"></div>
|
|
<section class="section">
|
|
<div class="pointer"></div>
|
|
<div class="abstract">
|
|
<p>The pinning policy set for a specific hostname.</p>
|
|
|
|
</div>
|
|
<div class="declaration">
|
|
<h4>Declaration</h4>
|
|
<div class="language">
|
|
<p class="aside-title">Objective-C</p>
|
|
<pre class="highlight objective_c"><code><span class="k">typedef</span> <span class="n">NSDictionary</span><span class="o"><</span><span class="n"><a href="Domain Configuration Keys.html#/c:TSKTrustKitConfig.h@T@TSKDomainConfigurationKey">TSKDomainConfigurationKey</a></span><span class="p">,</span> <span class="n">id</span><span class="o">></span> <span class="n">TKSDomainPinningPolicy</span></code></pre>
|
|
|
|
</div>
|
|
</div>
|
|
</section>
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div class="task-group">
|
|
<ul class="item-container">
|
|
<li class="item">
|
|
<div>
|
|
<code>
|
|
<a name="/c:objc(cs)TSKPinningValidatorResult"></a>
|
|
<a name="//apple_ref/objc/Class/TSKPinningValidatorResult" class="dashAnchor"></a>
|
|
<a class="token" href="#/c:objc(cs)TSKPinningValidatorResult">TSKPinningValidatorResult</a>
|
|
</code>
|
|
</div>
|
|
<div class="height-container">
|
|
<div class="pointer-container"></div>
|
|
<section class="section">
|
|
<div class="pointer"></div>
|
|
<div class="abstract">
|
|
<p>A <code>TSKPinningValidatorResult</code> instance contains all the details regarding a pinning validation
|
|
performed against a specific server.</p>
|
|
|
|
<a href="Classes/TSKPinningValidatorResult.html" class="slightly-smaller">See more</a>
|
|
</div>
|
|
<div class="declaration">
|
|
<h4>Declaration</h4>
|
|
<div class="language">
|
|
<p class="aside-title">Objective-C</p>
|
|
<pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">TSKPinningValidatorResult</span> <span class="p">:</span> <span class="nc">NSObject</span></code></pre>
|
|
|
|
</div>
|
|
<div class="language">
|
|
<p class="aside-title">Swift</p>
|
|
<pre class="highlight swift"><code><span class="kd">class</span> <span class="kt">TSKPinningValidatorResult</span> <span class="p">:</span> <span class="kt">NSObject</span></code></pre>
|
|
|
|
</div>
|
|
</div>
|
|
</section>
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div class="task-group">
|
|
<ul class="item-container">
|
|
<li class="item">
|
|
<div>
|
|
<code>
|
|
<a name="/c:@E@TSKTrustEvaluationResult"></a>
|
|
<a name="//apple_ref/objc/Enum/TSKTrustEvaluationResult" class="dashAnchor"></a>
|
|
<a class="token" href="#/c:@E@TSKTrustEvaluationResult">TSKTrustEvaluationResult</a>
|
|
</code>
|
|
</div>
|
|
<div class="height-container">
|
|
<div class="pointer-container"></div>
|
|
<section class="section">
|
|
<div class="pointer"></div>
|
|
<div class="abstract">
|
|
<p>Possible return values when verifying a server’s identity against a set of pins.</p>
|
|
|
|
<a href="Enums/TSKTrustEvaluationResult.html" class="slightly-smaller">See more</a>
|
|
</div>
|
|
<div class="declaration">
|
|
<h4>Declaration</h4>
|
|
<div class="language">
|
|
<p class="aside-title">Objective-C</p>
|
|
<pre class="highlight objective_c"><code><span class="k">enum</span> <span class="n">TSKTrustEvaluationResult</span> <span class="p">{}</span></code></pre>
|
|
|
|
</div>
|
|
<div class="language">
|
|
<p class="aside-title">Swift</p>
|
|
<pre class="highlight swift"><code><span class="kd">enum</span> <span class="kt">TSKTrustEvaluationResult</span> <span class="p">:</span> <span class="kt">Int</span></code></pre>
|
|
|
|
</div>
|
|
</div>
|
|
</section>
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
</article>
|
|
</div>
|
|
<section class="footer">
|
|
<p>© 2019 <a class="link" href="https://datatheorem.github.io" target="_blank" rel="external">Data Theorem</a>. All rights reserved. (Last updated: 2019-08-03)</p>
|
|
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.10.0</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
|
|
</section>
|
|
</body>
|
|
</div>
|
|
</html>
|