This commit is contained in:
yaleman 2023-03-06 04:13:16 +00:00
parent 7fe118394a
commit 0bdae0bd41
2114 changed files with 4777 additions and 3545 deletions

View file

@ -1 +1 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `PBKDF2_MIN_NIST_COST` constant in crate `kanidm_lib_crypto`."><meta name="keywords" content="rust, rustlang, rust-lang, PBKDF2_MIN_NIST_COST"><title>PBKDF2_MIN_NIST_COST in kanidm_lib_crypto - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-6827029ac823cab7.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../static.files/ayu-8af5e100b21cd173.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-c55e1eb52e1886b4.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc constant"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">&#9776;</button><a class="sidebar-logo" href="../kanidm_lib_crypto/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../kanidm_lib_crypto/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><div class="sidebar-elems"><h2><a href="index.html">In kanidm_lib_crypto</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Constant <a href="index.html">kanidm_lib_crypto</a>::<wbr><a class="constant" href="#">PBKDF2_MIN_NIST_COST</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/kanidm_lib_crypto/lib.rs.html#22">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>&#x2212;</span>]</button></span></div><div class="item-decl"><pre class="rust const"><code>pub const PBKDF2_MIN_NIST_COST: <a class="primitive" href="https://doc.rust-lang.org/1.67.1/std/primitive.usize.html">usize</a> = 10000;</code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="kanidm_lib_crypto" data-themes="" data-resource-suffix="" data-rustdoc-version="1.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `PBKDF2_MIN_NIST_COST` constant in crate `kanidm_lib_crypto`."><meta name="keywords" content="rust, rustlang, rust-lang, PBKDF2_MIN_NIST_COST"><title>PBKDF2_MIN_NIST_COST in kanidm_lib_crypto - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-6827029ac823cab7.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../static.files/ayu-8af5e100b21cd173.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-c55e1eb52e1886b4.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc constant"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">&#9776;</button><a class="sidebar-logo" href="../kanidm_lib_crypto/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../kanidm_lib_crypto/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><div class="sidebar-elems"><h2><a href="index.html">In kanidm_lib_crypto</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Constant <a href="index.html">kanidm_lib_crypto</a>::<wbr><a class="constant" href="#">PBKDF2_MIN_NIST_COST</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/kanidm_lib_crypto/lib.rs.html#25">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>&#x2212;</span>]</button></span></div><div class="item-decl"><pre class="rust const"><code>pub const PBKDF2_MIN_NIST_COST: <a class="primitive" href="https://doc.rust-lang.org/1.67.1/std/primitive.usize.html">usize</a> = 10000;</code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="kanidm_lib_crypto" data-themes="" data-resource-suffix="" data-rustdoc-version="1.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -8,9 +8,9 @@ the auth as the password of B was incorrect. Additionally, while A only needs th
B requires both the password and otp to be valid.</p>
<p>In this way, each Credential provides its own password requirements and policy, and requires
some metadata to support this such as its source and strength etc.</p>
</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Credential" class="impl has-srclink"><a class="srclink rightside" href="../../src/kanidmd_lib/credential/mod.rs.html#371-895">source</a><a href="#impl-Credential" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Credential.html" title="struct kanidmd_lib::credential::Credential">Credential</a></h3></section></summary><div class="impl-items"><section id="method.try_from_repl_v1" class="method has-srclink"><a class="srclink rightside" href="../../src/kanidmd_lib/credential/mod.rs.html#372-449">source</a><h4 class="code-header">pub fn <a href="#method.try_from_repl_v1" class="fn">try_from_repl_v1</a>(rc: &amp;ReplCredV1) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.67.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;(<a class="struct" href="https://doc.rust-lang.org/1.67.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>, Self), <a class="primitive" href="https://doc.rust-lang.org/1.67.1/std/primitive.unit.html">()</a>&gt;</h4></section><details class="rustdoc-toggle method-toggle" open><summary><section id="method.new_password_only" class="method has-srclink"><a class="srclink rightside" href="../../src/kanidmd_lib/credential/mod.rs.html#452-457">source</a><h4 class="code-header">pub fn <a href="#method.new_password_only" class="fn">new_password_only</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;policy: &amp;CryptoPolicy,<br>&nbsp;&nbsp;&nbsp;&nbsp;cleartext: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.67.1/std/primitive.str.html">str</a><br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.67.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;Self, <a class="enum" href="../prelude/enum.OperationError.html" title="enum kanidmd_lib::prelude::OperationError">OperationError</a>&gt;</h4></section></summary><div class="docblock"><p>Create a new credential that contains a CredentialType::Password</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.new_generatedpassword_only" class="method has-srclink"><a class="srclink rightside" href="../../src/kanidmd_lib/credential/mod.rs.html#460-465">source</a><h4 class="code-header">pub fn <a href="#method.new_generatedpassword_only" class="fn">new_generatedpassword_only</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;policy: &amp;CryptoPolicy,<br>&nbsp;&nbsp;&nbsp;&nbsp;cleartext: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.67.1/std/primitive.str.html">str</a><br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.67.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;Self, <a class="enum" href="../prelude/enum.OperationError.html" title="enum kanidmd_lib::prelude::OperationError">OperationError</a>&gt;</h4></section></summary><div class="docblock"><p>Create a new credential that contains a CredentialType::GeneratedPassword</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.set_password" class="method has-srclink"><a class="srclink rightside" href="../../src/kanidmd_lib/credential/mod.rs.html#469-475">source</a><h4 class="code-header">pub fn <a href="#method.set_password" class="fn">set_password</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;policy: &amp;CryptoPolicy,<br>&nbsp;&nbsp;&nbsp;&nbsp;cleartext: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.67.1/std/primitive.str.html">str</a><br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.67.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;Self, <a class="enum" href="../prelude/enum.OperationError.html" title="enum kanidmd_lib::prelude::OperationError">OperationError</a>&gt;</h4></section></summary><div class="docblock"><p>Update the state of the Password on this credential, if a password is present. If possible
</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Credential" class="impl has-srclink"><a class="srclink rightside" href="../../src/kanidmd_lib/credential/mod.rs.html#371-895">source</a><a href="#impl-Credential" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Credential.html" title="struct kanidmd_lib::credential::Credential">Credential</a></h3></section></summary><div class="impl-items"><section id="method.try_from_repl_v1" class="method has-srclink"><a class="srclink rightside" href="../../src/kanidmd_lib/credential/mod.rs.html#372-449">source</a><h4 class="code-header">pub fn <a href="#method.try_from_repl_v1" class="fn">try_from_repl_v1</a>(rc: &amp;ReplCredV1) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.67.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;(<a class="struct" href="https://doc.rust-lang.org/1.67.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>, Self), <a class="primitive" href="https://doc.rust-lang.org/1.67.1/std/primitive.unit.html">()</a>&gt;</h4></section><details class="rustdoc-toggle method-toggle" open><summary><section id="method.new_password_only" class="method has-srclink"><a class="srclink rightside" href="../../src/kanidmd_lib/credential/mod.rs.html#452-457">source</a><h4 class="code-header">pub fn <a href="#method.new_password_only" class="fn">new_password_only</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;policy: &amp;<a class="struct" href="../../kanidm_lib_crypto/struct.CryptoPolicy.html" title="struct kanidm_lib_crypto::CryptoPolicy">CryptoPolicy</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;cleartext: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.67.1/std/primitive.str.html">str</a><br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.67.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;Self, <a class="enum" href="../prelude/enum.OperationError.html" title="enum kanidmd_lib::prelude::OperationError">OperationError</a>&gt;</h4></section></summary><div class="docblock"><p>Create a new credential that contains a CredentialType::Password</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.new_generatedpassword_only" class="method has-srclink"><a class="srclink rightside" href="../../src/kanidmd_lib/credential/mod.rs.html#460-465">source</a><h4 class="code-header">pub fn <a href="#method.new_generatedpassword_only" class="fn">new_generatedpassword_only</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;policy: &amp;<a class="struct" href="../../kanidm_lib_crypto/struct.CryptoPolicy.html" title="struct kanidm_lib_crypto::CryptoPolicy">CryptoPolicy</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;cleartext: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.67.1/std/primitive.str.html">str</a><br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.67.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;Self, <a class="enum" href="../prelude/enum.OperationError.html" title="enum kanidmd_lib::prelude::OperationError">OperationError</a>&gt;</h4></section></summary><div class="docblock"><p>Create a new credential that contains a CredentialType::GeneratedPassword</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.set_password" class="method has-srclink"><a class="srclink rightside" href="../../src/kanidmd_lib/credential/mod.rs.html#469-475">source</a><h4 class="code-header">pub fn <a href="#method.set_password" class="fn">set_password</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;policy: &amp;<a class="struct" href="../../kanidm_lib_crypto/struct.CryptoPolicy.html" title="struct kanidm_lib_crypto::CryptoPolicy">CryptoPolicy</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;cleartext: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.67.1/std/primitive.str.html">str</a><br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.67.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;Self, <a class="enum" href="../prelude/enum.OperationError.html" title="enum kanidmd_lib::prelude::OperationError">OperationError</a>&gt;</h4></section></summary><div class="docblock"><p>Update the state of the Password on this credential, if a password is present. If possible
this will convert the credential to a PasswordMFA in some cases, or fail in others.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.append_securitykey" class="method has-srclink"><a class="srclink rightside" href="../../src/kanidmd_lib/credential/mod.rs.html#480-510">source</a><h4 class="code-header">pub fn <a href="#method.append_securitykey" class="fn">append_securitykey</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;label: <a class="struct" href="https://doc.rust-lang.org/1.67.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;cred: SecurityKey<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.67.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;Self, <a class="enum" href="../prelude/enum.OperationError.html" title="enum kanidmd_lib::prelude::OperationError">OperationError</a>&gt;</h4></section></summary><div class="docblock"><p>Extend this credential with another alternate webauthn credential. This is especially
useful for <code>PasswordMfa</code> where you can have many webauthn credentials and a password

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,4 +1,4 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Oauth2 resource server configurations"><meta name="keywords" content="rust, rustlang, rust-lang, oauth2"><title>kanidmd_lib::idm::oauth2 - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-6827029ac823cab7.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-8af5e100b21cd173.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../../../static.files/main-c55e1eb52e1886b4.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">&#9776;</button><a class="sidebar-logo" href="../../../kanidmd_lib/index.html"><div class="logo-container"><img class="rust-logo" src="../../../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../kanidmd_lib/index.html"><div class="logo-container"><img class="rust-logo" src="../../../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2 class="location"><a href="#">Module oauth2</a></h2><div class="sidebar-elems"><section><ul class="block"><li><a href="#structs">Structs</a></li><li><a href="#enums">Enums</a></li></ul></section></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Module <a href="../../index.html">kanidmd_lib</a>::<wbr><a href="../index.html">idm</a>::<wbr><a class="mod" href="#">oauth2</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/kanidmd_lib/idm/oauth2.rs.html#1-3830">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>&#x2212;</span>]</button></span></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Oauth2 resource server configurations</p>
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Oauth2 resource server configurations"><meta name="keywords" content="rust, rustlang, rust-lang, oauth2"><title>kanidmd_lib::idm::oauth2 - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-6827029ac823cab7.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-8af5e100b21cd173.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../../../static.files/main-c55e1eb52e1886b4.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">&#9776;</button><a class="sidebar-logo" href="../../../kanidmd_lib/index.html"><div class="logo-container"><img class="rust-logo" src="../../../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../kanidmd_lib/index.html"><div class="logo-container"><img class="rust-logo" src="../../../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2 class="location"><a href="#">Module oauth2</a></h2><div class="sidebar-elems"><section><ul class="block"><li><a href="#structs">Structs</a></li><li><a href="#enums">Enums</a></li></ul></section></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Module <a href="../../index.html">kanidmd_lib</a>::<wbr><a href="../index.html">idm</a>::<wbr><a class="mod" href="#">oauth2</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/kanidmd_lib/idm/oauth2.rs.html#1-3843">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>&#x2212;</span>]</button></span></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Oauth2 resource server configurations</p>
<p>This contains the in memory and loaded set of active oauth2 resource server
integrations, which are then able to be used an accessed from the IDM layer
for operations involving oauth2 authentication processing.</p>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,4 +1,4 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Inside an entry, the key-value pairs are stored in these [`Value`] types. The components of the [`Value`] module allow storage and transformation of various types of input into strongly typed values, allows their comparison, filtering and more. It also has the code for serialising these into a form for the backend that can be persistent into the `Backend`."><meta name="keywords" content="rust, rustlang, rust-lang, value"><title>kanidmd_lib::value - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-6827029ac823cab7.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-8af5e100b21cd173.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../../static.files/main-c55e1eb52e1886b4.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">&#9776;</button><a class="sidebar-logo" href="../../kanidmd_lib/index.html"><div class="logo-container"><img class="rust-logo" src="../../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../kanidmd_lib/index.html"><div class="logo-container"><img class="rust-logo" src="../../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2 class="location"><a href="#">Module value</a></h2><div class="sidebar-elems"><section><ul class="block"><li><a href="#structs">Structs</a></li><li><a href="#enums">Enums</a></li></ul></section></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Module <a href="../index.html">kanidmd_lib</a>::<wbr><a class="mod" href="#">value</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/kanidmd_lib/value.rs.html#1-1847">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>&#x2212;</span>]</button></span></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Inside an entry, the key-value pairs are stored in these <a href="enum.Value.html" title="Value"><code>Value</code></a> types. The components of
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Inside an entry, the key-value pairs are stored in these [`Value`] types. The components of the [`Value`] module allow storage and transformation of various types of input into strongly typed values, allows their comparison, filtering and more. It also has the code for serialising these into a form for the backend that can be persistent into the `Backend`."><meta name="keywords" content="rust, rustlang, rust-lang, value"><title>kanidmd_lib::value - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-6827029ac823cab7.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../static.files/ayu-8af5e100b21cd173.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../../static.files/main-c55e1eb52e1886b4.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">&#9776;</button><a class="sidebar-logo" href="../../kanidmd_lib/index.html"><div class="logo-container"><img class="rust-logo" src="../../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../kanidmd_lib/index.html"><div class="logo-container"><img class="rust-logo" src="../../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2 class="location"><a href="#">Module value</a></h2><div class="sidebar-elems"><section><ul class="block"><li><a href="#structs">Structs</a></li><li><a href="#enums">Enums</a></li></ul></section></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Module <a href="../index.html">kanidmd_lib</a>::<wbr><a class="mod" href="#">value</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/kanidmd_lib/value.rs.html#1-1849">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>&#x2212;</span>]</button></span></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Inside an entry, the key-value pairs are stored in these <a href="enum.Value.html" title="Value"><code>Value</code></a> types. The components of
the <a href="enum.Value.html" title="Value"><code>Value</code></a> module allow storage and transformation of various types of input into strongly
typed values, allows their comparison, filtering and more. It also has the code for serialising
these into a form for the backend that can be persistent into the <a href="../be/struct.Backend.html"><code>Backend</code></a>.</p>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1 +1 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `apply_profile` fn in crate `profiles`."><meta name="keywords" content="rust, rustlang, rust-lang, apply_profile"><title>apply_profile in profiles - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-6827029ac823cab7.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../static.files/ayu-8af5e100b21cd173.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-c55e1eb52e1886b4.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">&#9776;</button><a class="sidebar-logo" href="../profiles/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../profiles/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><div class="sidebar-elems"><h2><a href="index.html">In profiles</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Function <a href="index.html">profiles</a>::<wbr><a class="fn" href="#">apply_profile</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/profiles/lib.rs.html#46-76">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>&#x2212;</span>]</button></span></div><div class="item-decl"><pre class="rust fn"><code>pub fn apply_profile()</code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="profiles" data-themes="" data-resource-suffix="" data-rustdoc-version="1.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `apply_profile` fn in crate `profiles`."><meta name="keywords" content="rust, rustlang, rust-lang, apply_profile"><title>apply_profile in profiles - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-6827029ac823cab7.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../static.files/ayu-8af5e100b21cd173.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-c55e1eb52e1886b4.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">&#9776;</button><a class="sidebar-logo" href="../profiles/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../profiles/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><div class="sidebar-elems"><h2><a href="index.html">In profiles</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Function <a href="index.html">profiles</a>::<wbr><a class="fn" href="#">apply_profile</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/profiles/lib.rs.html#47-78">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>&#x2212;</span>]</button></span></div><div class="item-decl"><pre class="rust fn"><code>pub fn apply_profile()</code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="profiles" data-themes="" data-resource-suffix="" data-rustdoc-version="1.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>

View file

@ -1 +1 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `profiles` crate."><meta name="keywords" content="rust, rustlang, rust-lang, profiles"><title>profiles - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-6827029ac823cab7.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../static.files/ayu-8af5e100b21cd173.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../crates.js"></script><script defer src="../static.files/main-c55e1eb52e1886b4.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod crate"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">&#9776;</button><a class="sidebar-logo" href="../profiles/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../profiles/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2 class="location"><a href="#">Crate profiles</a></h2><div class="sidebar-elems"><ul class="block"><li class="version">Version 1.1.0-alpha.12-dev</li><li><a id="all-types" href="all.html">All Items</a></li></ul><section><ul class="block"><li><a href="#functions">Functions</a></li></ul></section></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Crate <a class="mod" href="#">profiles</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/profiles/lib.rs.html#1-76">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>&#x2212;</span>]</button></span></div><h2 id="functions" class="small-section-header"><a href="#functions">Functions</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.apply_profile.html" title="profiles::apply_profile fn">apply_profile</a></div></div></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="profiles" data-themes="" data-resource-suffix="" data-rustdoc-version="1.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `profiles` crate."><meta name="keywords" content="rust, rustlang, rust-lang, profiles"><title>profiles - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-6827029ac823cab7.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../static.files/ayu-8af5e100b21cd173.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="../crates.js"></script><script defer src="../static.files/main-c55e1eb52e1886b4.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod crate"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">&#9776;</button><a class="sidebar-logo" href="../profiles/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../profiles/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2 class="location"><a href="#">Crate profiles</a></h2><div class="sidebar-elems"><ul class="block"><li class="version">Version 1.1.0-alpha.12-dev</li><li><a id="all-types" href="all.html">All Items</a></li></ul><section><ul class="block"><li><a href="#functions">Functions</a></li></ul></section></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Crate <a class="mod" href="#">profiles</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/profiles/lib.rs.html#1-78">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>&#x2212;</span>]</button></span></div><h2 id="functions" class="small-section-header"><a href="#functions">Functions</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.apply_profile.html" title="profiles::apply_profile fn">apply_profile</a></div></div></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="profiles" data-themes="" data-resource-suffix="" data-rustdoc-version="1.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>

File diff suppressed because one or more lines are too long

View file

@ -704,8 +704,21 @@
<a href="#704" id="704">704</a>
<a href="#705" id="705">705</a>
<a href="#706" id="706">706</a>
</pre><pre class="rust"><code><span class="kw">use </span>tracing::{debug, error, warn};
<a href="#707" id="707">707</a>
<a href="#708" id="708">708</a>
<a href="#709" id="709">709</a>
<a href="#710" id="710">710</a>
<a href="#711" id="711">711</a>
<a href="#712" id="712">712</a>
<a href="#713" id="713">713</a>
<a href="#714" id="714">714</a>
<a href="#715" id="715">715</a>
<a href="#716" id="716">716</a>
</pre><pre class="rust"><code><span class="kw">use </span>base64::engine::GeneralPurpose;
<span class="kw">use </span>base64::{alphabet, Engine};
<span class="kw">use </span>tracing::{debug, error, warn};
<span class="kw">use </span>base64::engine::general_purpose;
<span class="kw">use </span>base64urlsafedata::Base64UrlSafeData;
<span class="kw">use </span>rand::Rng;
<span class="kw">use </span>serde::{Deserialize, Serialize};
@ -941,7 +954,7 @@
<span class="string">&quot;pbkdf2_sha256&quot; </span>=&gt; {
<span class="kw">let </span>c = cost.parse::&lt;usize&gt;().map_err(|<span class="kw">_</span>| ())<span class="question-mark">?</span>;
<span class="kw">let </span>s: Vec&lt;<span class="kw">_</span>&gt; = salt.as_bytes().to_vec();
<span class="kw">let </span>h = base64::decode(hash).map_err(|<span class="kw">_</span>| ())<span class="question-mark">?</span>;
<span class="kw">let </span>h = general_purpose::STANDARD.decode(hash).map_err(|<span class="kw">_</span>| ())<span class="question-mark">?</span>;
<span class="kw">if </span>h.len() &lt; PBKDF2_MIN_NIST_KEY_LEN {
<span class="kw">return </span><span class="prelude-val">Err</span>(());
}
@ -961,7 +974,10 @@
}
};
<span class="kw">let </span>h = base64::decode_config(nt_md4, base64::STANDARD_NO_PAD).map_err(|<span class="kw">_</span>| ())<span class="question-mark">?</span>;
<span class="kw">let </span>h = base64::engine::general_purpose::STANDARD_NO_PAD
.decode(nt_md4)
.map_err(|<span class="kw">_</span>| ())<span class="question-mark">?</span>;
<span class="kw">return </span><span class="prelude-val">Ok</span>(Password {
material: Kdf::NT_MD4(h),
});
@ -983,7 +999,9 @@
<span class="comment">// Test 389ds formats
</span><span class="kw">if let </span><span class="prelude-val">Some</span>(ds_ssha512) = value.strip_prefix(<span class="string">&quot;{SSHA512}&quot;</span>) {
<span class="kw">let </span>sh = base64::decode(ds_ssha512).map_err(|<span class="kw">_</span>| ())<span class="question-mark">?</span>;
<span class="kw">let </span>sh = general_purpose::STANDARD
.decode(ds_ssha512)
.map_err(|<span class="kw">_</span>| ())<span class="question-mark">?</span>;
<span class="kw">let </span>(h, s) = sh.split_at(DS_SSHA512_HASH_LEN);
<span class="kw">if </span>s.len() != DS_SSHA512_SALT_LEN {
<span class="kw">return </span><span class="prelude-val">Err</span>(());
@ -1015,16 +1033,18 @@
<span class="kw">let </span>c = cost.parse::&lt;usize&gt;().map_err(|<span class="kw">_</span>| ())<span class="question-mark">?</span>;
<span class="kw">let </span>s = <span class="macro">ab64_to_b64!</span>(salt);
<span class="kw">let </span>s = base64::decode_config(s, base64::STANDARD.decode_allow_trailing_bits(<span class="bool-val">true</span>))
.map_err(|e| {
<span class="macro">error!</span>(<span class="question-mark">?</span>e, <span class="string">&quot;Invalid base64 in oldap pbkdf2-sha1&quot;</span>);
})<span class="question-mark">?</span>;
<span class="kw">let </span>base64_decoder_config = general_purpose::GeneralPurposeConfig::new()
.with_decode_allow_trailing_bits(<span class="bool-val">true</span>);
<span class="kw">let </span>base64_decoder =
GeneralPurpose::new(<span class="kw-2">&amp;</span>alphabet::STANDARD, base64_decoder_config);
<span class="kw">let </span>s = base64_decoder.decode(s).map_err(|e| {
<span class="macro">error!</span>(<span class="question-mark">?</span>e, <span class="string">&quot;Invalid base64 in oldap pbkdf2-sha1&quot;</span>);
})<span class="question-mark">?</span>;
<span class="kw">let </span>h = <span class="macro">ab64_to_b64!</span>(hash);
<span class="kw">let </span>h = base64::decode_config(h, base64::STANDARD.decode_allow_trailing_bits(<span class="bool-val">true</span>))
.map_err(|e| {
<span class="macro">error!</span>(<span class="question-mark">?</span>e, <span class="string">&quot;Invalid base64 in oldap pbkdf2-sha1&quot;</span>);
})<span class="question-mark">?</span>;
<span class="kw">let </span>h = base64_decoder.decode(h).map_err(|e| {
<span class="macro">error!</span>(<span class="question-mark">?</span>e, <span class="string">&quot;Invalid base64 in oldap pbkdf2-sha1&quot;</span>);
})<span class="question-mark">?</span>;
<span class="comment">// This is just sha1 in a trenchcoat.
</span><span class="kw">if </span>value.strip_prefix(<span class="string">&quot;{PBKDF2}&quot;</span>).is_some()

View file

@ -724,6 +724,7 @@
<a href="#724" id="724">724</a>
<a href="#725" id="725">725</a>
<a href="#726" id="726">726</a>
<a href="#727" id="727">727</a>
</pre><pre class="rust"><code><span class="kw">use </span>std::fmt;
<span class="kw">use </span>std::time::Duration;
@ -1386,6 +1387,7 @@
<span class="attr">#[cfg(test)]
</span><span class="kw">mod </span>tests {
<span class="kw">use </span>base64::{engine::general_purpose, Engine <span class="kw">as _</span>};
<span class="kw">use </span>serde::{Deserialize, Serialize};
<span class="kw">use </span>uuid::Uuid;
@ -1433,10 +1435,10 @@
uuid: Uuid::new_v4(),
};
let data = serde_cbor::to_vec(&amp;dbcred).unwrap();
let s = base64::encode(data);
let s = general_purpose::STANDARD.encode(data);
*/
</span><span class="kw">let </span>s = <span class="string">&quot;o2hwYXNzd29yZKFmUEJLREYygwCBAIEAZmNsYWltc4BkdXVpZFAjkHFm4q5M86UcNRi4hBjN&quot;</span>;
<span class="kw">let </span>data = base64::decode(s).unwrap();
<span class="kw">let </span>data = general_purpose::STANDARD.decode(s).unwrap();
<span class="kw">let </span>dbcred: DbCredV1 = serde_cbor::from_slice(data.as_slice()).unwrap();
<span class="comment">// Test converting to the new enum format

View file

@ -3828,6 +3828,19 @@
<a href="#3828" id="3828">3828</a>
<a href="#3829" id="3829">3829</a>
<a href="#3830" id="3830">3830</a>
<a href="#3831" id="3831">3831</a>
<a href="#3832" id="3832">3832</a>
<a href="#3833" id="3833">3833</a>
<a href="#3834" id="3834">3834</a>
<a href="#3835" id="3835">3835</a>
<a href="#3836" id="3836">3836</a>
<a href="#3837" id="3837">3837</a>
<a href="#3838" id="3838">3838</a>
<a href="#3839" id="3839">3839</a>
<a href="#3840" id="3840">3840</a>
<a href="#3841" id="3841">3841</a>
<a href="#3842" id="3842">3842</a>
<a href="#3843" id="3843">3843</a>
</pre><pre class="rust"><code><span class="doccomment">//! Oauth2 resource server configurations
//!
//! This contains the in memory and loaded set of active oauth2 resource server
@ -3840,6 +3853,8 @@
<span class="kw">use </span>std::sync::Arc;
<span class="kw">use </span>std::time::Duration;
<span class="kw">use </span>base64::{engine::general_purpose, Engine <span class="kw">as _</span>};
<span class="kw">use </span>base64urlsafedata::Base64UrlSafeData;
<span class="kw">pub use </span>compact_jwt::{JwkKeySet, OidcToken};
<span class="kw">use </span>compact_jwt::{JwsSigner, OidcClaims, OidcSubject};
@ -5375,7 +5390,8 @@
<span class="kw">fn </span>parse_basic_authz(client_authz: <span class="kw-2">&amp;</span>str) -&gt; <span class="prelude-ty">Result</span>&lt;(String, String), Oauth2Error&gt; {
<span class="comment">// Check the client_authz
</span><span class="kw">let </span>authz = base64::decode(client_authz)
</span><span class="kw">let </span>authz = general_purpose::STANDARD
.decode(client_authz)
.map_err(|<span class="kw">_</span>| {
<span class="macro">admin_error!</span>(<span class="string">&quot;Basic authz invalid base64&quot;</span>);
Oauth2Error::AuthenticationRequired
@ -5446,6 +5462,7 @@
<span class="attr">#[cfg(test)]
</span><span class="kw">mod </span>tests {
<span class="kw">use </span>base64::{engine::general_purpose, Engine <span class="kw">as _</span>};
<span class="kw">use </span>std::convert::TryFrom;
<span class="kw">use </span>std::str::FromStr;
<span class="kw">use </span>std::time::Duration;
@ -6011,7 +6028,8 @@
);
<span class="comment">// * doesn&#39;t have :
</span><span class="kw">let </span>client_authz = <span class="prelude-val">Some</span>(base64::encode(<span class="macro">format!</span>(<span class="string">&quot;test_resource_server {secret}&quot;</span>)));
</span><span class="kw">let </span>client_authz =
<span class="prelude-val">Some</span>(general_purpose::STANDARD.encode(<span class="macro">format!</span>(<span class="string">&quot;test_resource_server {secret}&quot;</span>)));
<span class="macro">assert!</span>(
idms_prox_read
.check_oauth2_token_exchange(client_authz.as_deref(), <span class="kw-2">&amp;</span>token_req, ct)
@ -6020,7 +6038,8 @@
);
<span class="comment">// * invalid client_id
</span><span class="kw">let </span>client_authz = <span class="prelude-val">Some</span>(base64::encode(<span class="macro">format!</span>(<span class="string">&quot;NOT A REAL SERVER:{secret}&quot;</span>)));
</span><span class="kw">let </span>client_authz =
<span class="prelude-val">Some</span>(general_purpose::STANDARD.encode(<span class="macro">format!</span>(<span class="string">&quot;NOT A REAL SERVER:{secret}&quot;</span>)));
<span class="macro">assert!</span>(
idms_prox_read
.check_oauth2_token_exchange(client_authz.as_deref(), <span class="kw-2">&amp;</span>token_req, ct)
@ -6029,7 +6048,7 @@
);
<span class="comment">// * valid client_id, but invalid secret
</span><span class="kw">let </span>client_authz = <span class="prelude-val">Some</span>(base64::encode(<span class="string">&quot;test_resource_server:12345&quot;</span>));
</span><span class="kw">let </span>client_authz = <span class="prelude-val">Some</span>(general_purpose::STANDARD.encode(<span class="string">&quot;test_resource_server:12345&quot;</span>));
<span class="macro">assert!</span>(
idms_prox_read
.check_oauth2_token_exchange(client_authz.as_deref(), <span class="kw-2">&amp;</span>token_req, ct)
@ -6038,7 +6057,8 @@
);
<span class="comment">// ✅ Now the valid client_authz is in place.
</span><span class="kw">let </span>client_authz = <span class="prelude-val">Some</span>(base64::encode(<span class="macro">format!</span>(<span class="string">&quot;test_resource_server:{secret}&quot;</span>)));
</span><span class="kw">let </span>client_authz =
<span class="prelude-val">Some</span>(general_purpose::STANDARD.encode(<span class="macro">format!</span>(<span class="string">&quot;test_resource_server:{secret}&quot;</span>)));
<span class="comment">// * expired exchange code (took too long)
</span><span class="macro">assert!</span>(
idms_prox_read
@ -6121,7 +6141,8 @@
<span class="kw">let </span>ct = Duration::from_secs(TEST_CURRENT_TIME);
<span class="kw">let </span>(secret, uat, ident, <span class="kw">_</span>) =
setup_oauth2_resource_server(idms, ct, <span class="bool-val">true</span>, <span class="bool-val">false</span>, <span class="bool-val">false</span>).<span class="kw">await</span>;
<span class="kw">let </span>client_authz = <span class="prelude-val">Some</span>(base64::encode(<span class="macro">format!</span>(<span class="string">&quot;test_resource_server:{secret}&quot;</span>)));
<span class="kw">let </span>client_authz =
<span class="prelude-val">Some</span>(general_purpose::STANDARD.encode(<span class="macro">format!</span>(<span class="string">&quot;test_resource_server:{secret}&quot;</span>)));
<span class="kw">let </span><span class="kw-2">mut </span>idms_prox_read = idms.proxy_read().<span class="kw">await</span>;
@ -6225,7 +6246,8 @@
</span><span class="kw">let </span>ct = Duration::from_secs(TEST_CURRENT_TIME);
<span class="kw">let </span>(secret, uat, ident, <span class="kw">_</span>) =
setup_oauth2_resource_server(idms, ct, <span class="bool-val">true</span>, <span class="bool-val">false</span>, <span class="bool-val">false</span>).<span class="kw">await</span>;
<span class="kw">let </span>client_authz = <span class="prelude-val">Some</span>(base64::encode(<span class="macro">format!</span>(<span class="string">&quot;test_resource_server:{secret}&quot;</span>)));
<span class="kw">let </span>client_authz =
<span class="prelude-val">Some</span>(general_purpose::STANDARD.encode(<span class="macro">format!</span>(<span class="string">&quot;test_resource_server:{secret}&quot;</span>)));
<span class="kw">let </span><span class="kw-2">mut </span>idms_prox_read = idms.proxy_read().<span class="kw">await</span>;
@ -6303,7 +6325,7 @@
<span class="comment">// First, the revoke needs basic auth. Provide incorrect auth, and we fail.
</span><span class="kw">let </span><span class="kw-2">mut </span>idms_prox_write = idms.proxy_write(ct).<span class="kw">await</span>;
<span class="kw">let </span>bad_client_authz = <span class="prelude-val">Some</span>(base64::encode(<span class="string">&quot;test_resource_server:12345&quot;</span>));
<span class="kw">let </span>bad_client_authz = <span class="prelude-val">Some</span>(general_purpose::STANDARD.encode(<span class="string">&quot;test_resource_server:12345&quot;</span>));
<span class="kw">let </span>revoke_request = TokenRevokeRequest {
token: oauth2_token.access_token.clone(),
token_type_hint: <span class="prelude-val">None</span>,
@ -6387,7 +6409,8 @@
</span><span class="kw">let </span>ct = Duration::from_secs(TEST_CURRENT_TIME);
<span class="kw">let </span>(secret, uat, ident, <span class="kw">_</span>) =
setup_oauth2_resource_server(idms, ct, <span class="bool-val">true</span>, <span class="bool-val">false</span>, <span class="bool-val">false</span>).<span class="kw">await</span>;
<span class="kw">let </span>client_authz = <span class="prelude-val">Some</span>(base64::encode(<span class="macro">format!</span>(<span class="string">&quot;test_resource_server:{secret}&quot;</span>)));
<span class="kw">let </span>client_authz =
<span class="prelude-val">Some</span>(general_purpose::STANDARD.encode(<span class="macro">format!</span>(<span class="string">&quot;test_resource_server:{secret}&quot;</span>)));
<span class="kw">let </span><span class="kw-2">mut </span>idms_prox_read = idms.proxy_read().<span class="kw">await</span>;
@ -6722,7 +6745,8 @@
<span class="kw">let </span>ct = Duration::from_secs(TEST_CURRENT_TIME);
<span class="kw">let </span>(secret, uat, ident, <span class="kw">_</span>) =
setup_oauth2_resource_server(idms, ct, <span class="bool-val">true</span>, <span class="bool-val">false</span>, <span class="bool-val">false</span>).<span class="kw">await</span>;
<span class="kw">let </span>client_authz = <span class="prelude-val">Some</span>(base64::encode(<span class="macro">format!</span>(<span class="string">&quot;test_resource_server:{secret}&quot;</span>)));
<span class="kw">let </span>client_authz =
<span class="prelude-val">Some</span>(general_purpose::STANDARD.encode(<span class="macro">format!</span>(<span class="string">&quot;test_resource_server:{secret}&quot;</span>)));
<span class="kw">let </span><span class="kw-2">mut </span>idms_prox_read = idms.proxy_read().<span class="kw">await</span>;
@ -6854,7 +6878,8 @@
</span><span class="kw">let </span>ct = Duration::from_secs(TEST_CURRENT_TIME);
<span class="kw">let </span>(secret, uat, ident, <span class="kw">_</span>) =
setup_oauth2_resource_server(idms, ct, <span class="bool-val">true</span>, <span class="bool-val">false</span>, <span class="bool-val">true</span>).<span class="kw">await</span>;
<span class="kw">let </span>client_authz = <span class="prelude-val">Some</span>(base64::encode(<span class="macro">format!</span>(<span class="string">&quot;test_resource_server:{secret}&quot;</span>)));
<span class="kw">let </span>client_authz =
<span class="prelude-val">Some</span>(general_purpose::STANDARD.encode(<span class="macro">format!</span>(<span class="string">&quot;test_resource_server:{secret}&quot;</span>)));
<span class="kw">let </span><span class="kw-2">mut </span>idms_prox_read = idms.proxy_read().<span class="kw">await</span>;
@ -6947,7 +6972,8 @@
</span><span class="kw">let </span>ct = Duration::from_secs(TEST_CURRENT_TIME);
<span class="kw">let </span>(secret, uat, ident, <span class="kw">_</span>) =
setup_oauth2_resource_server(idms, ct, <span class="bool-val">true</span>, <span class="bool-val">false</span>, <span class="bool-val">true</span>).<span class="kw">await</span>;
<span class="kw">let </span>client_authz = <span class="prelude-val">Some</span>(base64::encode(<span class="macro">format!</span>(<span class="string">&quot;test_resource_server:{secret}&quot;</span>)));
<span class="kw">let </span>client_authz =
<span class="prelude-val">Some</span>(general_purpose::STANDARD.encode(<span class="macro">format!</span>(<span class="string">&quot;test_resource_server:{secret}&quot;</span>)));
<span class="kw">let </span><span class="kw-2">mut </span>idms_prox_read = idms.proxy_read().<span class="kw">await</span>;

View file

@ -1845,6 +1845,8 @@
<a href="#1845" id="1845">1845</a>
<a href="#1846" id="1846">1846</a>
<a href="#1847" id="1847">1847</a>
<a href="#1848" id="1848">1848</a>
<a href="#1849" id="1849">1849</a>
</pre><pre class="rust"><code><span class="doccomment">//! Inside an entry, the key-value pairs are stored in these [`Value`] types. The components of
//! the [`Value`] module allow storage and transformation of various types of input into strongly
//! typed values, allows their comparison, filtering and more. It also has the code for serialising
@ -1858,6 +1860,8 @@
<span class="kw">use </span>std::str::FromStr;
<span class="kw">use </span>std::time::Duration;
<span class="attr">#[cfg(test)]
</span><span class="kw">use </span>base64::{engine::general_purpose, Engine <span class="kw">as _</span>};
<span class="kw">use </span>compact_jwt::JwsSigner;
<span class="kw">use </span>hashbrown::HashSet;
<span class="kw">use </span>kanidm_proto::v1::ApiTokenPurpose;
@ -3137,7 +3141,7 @@
<span class="attr">#[cfg(test)]
</span><span class="kw">pub fn </span>new_privatebinary_base64(der: <span class="kw-2">&amp;</span>str) -&gt; <span class="self">Self </span>{
<span class="kw">let </span>der = base64::decode(der).unwrap();
<span class="kw">let </span>der = general_purpose::STANDARD.decode(der).unwrap();
Value::PrivateBinary(der)
}

View file

@ -74,8 +74,11 @@
<a href="#74" id="74">74</a>
<a href="#75" id="75">75</a>
<a href="#76" id="76">76</a>
<a href="#77" id="77">77</a>
<a href="#78" id="78">78</a>
</pre><pre class="rust"><code><span class="kw">use </span>std::env;
<span class="kw">use </span>base64::{engine::general_purpose, Engine <span class="kw">as _</span>};
<span class="kw">use </span>serde::Deserialize;
<span class="attr">#[derive(Debug, Deserialize)]
@ -128,7 +131,8 @@
</span><span class="kw">let </span>profile = <span class="macro">env!</span>(<span class="string">&quot;KANIDM_BUILD_PROFILE&quot;</span>);
<span class="kw">let </span>contents = <span class="macro">env!</span>(<span class="string">&quot;KANIDM_BUILD_PROFILE_TOML&quot;</span>);
<span class="kw">let </span>data = base64::decode(contents)
<span class="kw">let </span>data = general_purpose::STANDARD
.decode(contents)
.unwrap_or_else(|<span class="kw">_</span>| <span class="macro">panic!</span>(<span class="string">&quot;Failed to parse profile - {} - {}&quot;</span>, profile, contents));
<span class="kw">let </span>profile_cfg: ProfileConfig = toml::from_slice(<span class="kw-2">&amp;</span>data)

Binary file not shown.

View file

@ -1 +1 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `PBKDF2_MIN_NIST_COST` constant in crate `kanidm_lib_crypto`."><meta name="keywords" content="rust, rustlang, rust-lang, PBKDF2_MIN_NIST_COST"><title>PBKDF2_MIN_NIST_COST in kanidm_lib_crypto - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-6827029ac823cab7.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../static.files/ayu-8af5e100b21cd173.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-c55e1eb52e1886b4.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc constant"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">&#9776;</button><a class="sidebar-logo" href="../kanidm_lib_crypto/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../kanidm_lib_crypto/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><div class="sidebar-elems"><h2><a href="index.html">In kanidm_lib_crypto</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Constant <a href="index.html">kanidm_lib_crypto</a>::<wbr><a class="constant" href="#">PBKDF2_MIN_NIST_COST</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/kanidm_lib_crypto/lib.rs.html#22">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>&#x2212;</span>]</button></span></div><div class="item-decl"><pre class="rust const"><code>pub const PBKDF2_MIN_NIST_COST: <a class="primitive" href="https://doc.rust-lang.org/1.67.1/std/primitive.usize.html">usize</a> = 10000;</code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="kanidm_lib_crypto" data-themes="" data-resource-suffix="" data-rustdoc-version="1.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `PBKDF2_MIN_NIST_COST` constant in crate `kanidm_lib_crypto`."><meta name="keywords" content="rust, rustlang, rust-lang, PBKDF2_MIN_NIST_COST"><title>PBKDF2_MIN_NIST_COST in kanidm_lib_crypto - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-6827029ac823cab7.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../static.files/ayu-8af5e100b21cd173.css"><script id="default-settings" ></script><script src="../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-c55e1eb52e1886b4.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc constant"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">&#9776;</button><a class="sidebar-logo" href="../kanidm_lib_crypto/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../kanidm_lib_crypto/index.html"><div class="logo-container"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><div class="sidebar-elems"><h2><a href="index.html">In kanidm_lib_crypto</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Constant <a href="index.html">kanidm_lib_crypto</a>::<wbr><a class="constant" href="#">PBKDF2_MIN_NIST_COST</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/kanidm_lib_crypto/lib.rs.html#25">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>&#x2212;</span>]</button></span></div><div class="item-decl"><pre class="rust const"><code>pub const PBKDF2_MIN_NIST_COST: <a class="primitive" href="https://doc.rust-lang.org/1.67.1/std/primitive.usize.html">usize</a> = 10000;</code></pre></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="kanidm_lib_crypto" data-themes="" data-resource-suffix="" data-rustdoc-version="1.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>

File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show more