Files
google-apis-rs/rustls_pemfile/index.html
2024-03-05 21:06:01 +01:00

35 lines
8.4 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!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="rustls-pemfile"><title>rustls_pemfile - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-46f98efaafac5295.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/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-ac92e1bbe349e143.css"><meta name="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="rustls_pemfile" data-themes="" data-resource-suffix="" data-rustdoc-version="1.76.0 (07dca489a 2024-02-04)" data-channel="1.76.0" data-search-js="search-2b6ce74ff89ae146.js" data-settings-js="settings-4313503d2e1961c2.js" ><script src="../static.files/storage-f2adc0d6ca4d09fb.js"></script><script defer src="../crates.js"></script><script defer src="../static.files/main-305769736d49e732.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-feafe1bb7466e4bd.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></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../rustls_pemfile/index.html">rustls_pemfile</a><span class="version">1.0.3</span></h2></div><div class="sidebar-elems"><ul class="block">
<li><a id="all-types" href="all.html">All Items</a></li></ul><section><ul class="block"><li><a href="#enums">Enums</a></li><li><a href="#functions">Functions</a></li></ul></section></div></nav><div class="sidebar-resizer"></div>
<main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><div id="sidebar-button" tabindex="-1"><a href="../rustls_pemfile/all.html" title="show sidebar"></a></div><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" tabindex="-1"><a href="../help.html" title="help">?</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-7b819b6101059cd0.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Crate <a class="mod" href="#">rustls_pemfile</a><button id="copy-path" 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="src" href="../src/rustls_pemfile/lib.rs.html#1-137">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>&#x2212;</span>]</button></span></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><h2 id="rustls-pemfile"><a href="#rustls-pemfile">rustls-pemfile</a></h2>
<p>A basic parser for .pem files containing cryptographic keys and certificates.</p>
<p>The input to this crate is a .pem file containing potentially many sections,
and the output is those sections as alleged DER-encodings. This crate does
not decode the actual DER-encoded keys/certificates.</p>
<h3 id="quick-start"><a href="#quick-start">Quick start</a></h3>
<p>Starting with an <code>io::BufRead</code> containing the file to be read:</p>
<ul>
<li>Use <code>read_all()</code> to ingest the whole file, then work through the contents in-memory, or,</li>
<li>Use <code>read_one()</code> to stream through the file, processing the items as found, or,</li>
<li>Use <code>certs()</code> to extract just the certificates (silently discarding other sections), and
similarly for <code>rsa_private_keys()</code> and <code>pkcs8_private_keys()</code>.</li>
</ul>
<h3 id="example-code"><a href="#example-code">Example code</a></h3>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>std::iter;
<span class="kw">use </span>rustls_pemfile::{Item, read_one};
<span class="comment">// Assume `reader` is any std::io::BufRead implementor
</span><span class="kw">for </span>item <span class="kw">in </span>iter::from_fn(|| read_one(<span class="kw-2">&amp;mut </span>reader).transpose()) {
<span class="kw">match </span>item.unwrap() {
Item::X509Certificate(cert) =&gt; <span class="macro">println!</span>(<span class="string">"certificate {:?}"</span>, cert),
Item::Crl(crl) =&gt; <span class="macro">println!</span>(<span class="string">"certificate revocation list: {:?}"</span>, crl),
Item::RSAKey(key) =&gt; <span class="macro">println!</span>(<span class="string">"rsa pkcs1 key {:?}"</span>, key),
Item::PKCS8Key(key) =&gt; <span class="macro">println!</span>(<span class="string">"pkcs8 key {:?}"</span>, key),
Item::ECKey(key) =&gt; <span class="macro">println!</span>(<span class="string">"sec1 ec key {:?}"</span>, key),
<span class="kw">_ </span>=&gt; <span class="macro">println!</span>(<span class="string">"unhandled item"</span>),
}
}</code></pre></div>
</div></details><h2 id="enums" class="section-header"><a href="#enums">Enums</a></h2><ul class="item-table"><li><div class="item-name"><a class="enum" href="enum.Item.html" title="enum rustls_pemfile::Item">Item</a></div><div class="desc docblock-short">The contents of a single recognised block in a PEM file.</div></li></ul><h2 id="functions" class="section-header"><a href="#functions">Functions</a></h2><ul class="item-table"><li><div class="item-name"><a class="fn" href="fn.certs.html" title="fn rustls_pemfile::certs">certs</a></div><div class="desc docblock-short">Extract all the certificates from <code>rd</code>, and return a vec of byte vecs
containing the der-format contents.</div></li><li><div class="item-name"><a class="fn" href="fn.crls.html" title="fn rustls_pemfile::crls">crls</a></div><div class="desc docblock-short">Extract all the certificate revocation lists (CRLs) from <code>rd</code>, and return a vec of byte vecs
containing the der-format contents.</div></li><li><div class="item-name"><a class="fn" href="fn.ec_private_keys.html" title="fn rustls_pemfile::ec_private_keys">ec_private_keys</a></div><div class="desc docblock-short">Extract all SEC1-encoded EC private keys from <code>rd</code>, and return a vec of
byte vecs containing the der-format contents.</div></li><li><div class="item-name"><a class="fn" href="fn.pkcs8_private_keys.html" title="fn rustls_pemfile::pkcs8_private_keys">pkcs8_private_keys</a></div><div class="desc docblock-short">Extract all PKCS8-encoded private keys from <code>rd</code>, and return a vec of
byte vecs containing the der-format contents.</div></li><li><div class="item-name"><a class="fn" href="fn.read_all.html" title="fn rustls_pemfile::read_all">read_all</a></div><div class="desc docblock-short">Extract and return all PEM sections by reading <code>rd</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.read_one.html" title="fn rustls_pemfile::read_one">read_one</a></div><div class="desc docblock-short">Extract and decode the next PEM section from <code>rd</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.rsa_private_keys.html" title="fn rustls_pemfile::rsa_private_keys">rsa_private_keys</a></div><div class="desc docblock-short">Extract all RSA private keys from <code>rd</code>, and return a vec of byte vecs
containing the der-format contents.</div></li></ul></section></div></main></body></html>