summaryrefslogtreecommitdiff
path: root/api/2.5/Crypto.Protocol.KDF-module.html
diff options
context:
space:
mode:
Diffstat (limited to 'api/2.5/Crypto.Protocol.KDF-module.html')
-rw-r--r--api/2.5/Crypto.Protocol.KDF-module.html306
1 files changed, 306 insertions, 0 deletions
diff --git a/api/2.5/Crypto.Protocol.KDF-module.html b/api/2.5/Crypto.Protocol.KDF-module.html
new file mode 100644
index 0000000..54bde18
--- /dev/null
+++ b/api/2.5/Crypto.Protocol.KDF-module.html
@@ -0,0 +1,306 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>Crypto.Protocol.KDF</title>
+ <link rel="stylesheet" href="epydoc.css" type="text/css" />
+ <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+ alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+ <!-- Home link -->
+ <th>&nbsp;&nbsp;&nbsp;<a
+ href="Crypto-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+ <!-- Tree link -->
+ <th>&nbsp;&nbsp;&nbsp;<a
+ href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+ <!-- Index link -->
+ <th>&nbsp;&nbsp;&nbsp;<a
+ href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+ <!-- Help link -->
+ <th>&nbsp;&nbsp;&nbsp;<a
+ href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+ <!-- Project homepage -->
+ <th class="navbar" align="right" width="100%">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr><th class="navbar" align="center"
+ ><a href="http://www.pycrypto.org/">PyCrypto.org</a></th>
+ </tr></table></th>
+ </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+ <tr valign="top">
+ <td width="100%">
+ <span class="breadcrumbs">
+ <a href="Crypto-module.html">Package&nbsp;Crypto</a> ::
+ <a href="Crypto.Protocol-module.html">Package&nbsp;Protocol</a> ::
+ Module&nbsp;KDF
+ </span>
+ </td>
+ <td>
+ <table cellpadding="0" cellspacing="0">
+ <!-- hide/show private -->
+ <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+ onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+ <tr><td align="right"><span class="options"
+ >[<a href="frames.html" target="_top">frames</a
+ >]&nbsp;|&nbsp;<a href="Crypto.Protocol.KDF-module.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module KDF</h1><p class="nomargin-top"></p>
+<p>This file contains a collection of standard key derivation functions.</p>
+<p>A key derivation function derives one or more secondary secret keys from
+one primary secret (a master key or a pass phrase).</p>
+<p>This is typically done to insulate the secondary keys from each other,
+to avoid that leakage of a secondary key compromises the security of the
+master key, or to thwart attacks on pass phrases (e.g. via rainbow tables).</p>
+
+<!-- ==================== FUNCTIONS ==================== -->
+<a name="section-Functions"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Functions</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-Functions"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">&nbsp;</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="Crypto.Protocol.KDF-module.html#PBKDF1" class="summary-sig-name">PBKDF1</a>(<span class="summary-sig-arg">password</span>,
+ <span class="summary-sig-arg">salt</span>,
+ <span class="summary-sig-arg">dkLen</span>,
+ <span class="summary-sig-arg">count</span>=<span class="summary-sig-default">1000</span>,
+ <span class="summary-sig-arg">hashAlgo</span>=<span class="summary-sig-default">&lt;module 'Crypto.Hash.SHA' from '/home/dwon/Projects/pycrypto/b<code class="variable-ellipsis">...</code></span>)</span><br />
+ Derive one key from a password (or passphrase).</td>
+ <td align="right" valign="top">
+
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">&nbsp;</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="Crypto.Protocol.KDF-module.html#PBKDF2" class="summary-sig-name">PBKDF2</a>(<span class="summary-sig-arg">password</span>,
+ <span class="summary-sig-arg">salt</span>,
+ <span class="summary-sig-arg">dkLen</span>=<span class="summary-sig-default">16</span>,
+ <span class="summary-sig-arg">count</span>=<span class="summary-sig-default">1000</span>,
+ <span class="summary-sig-arg">prf</span>=<span class="summary-sig-default">None</span>)</span><br />
+ Derive one or more keys from a password (or passphrase).</td>
+ <td align="right" valign="top">
+
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+</table>
+<!-- ==================== VARIABLES ==================== -->
+<a name="section-Variables"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Variables</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-Variables"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">&nbsp;</span>
+ </td><td class="summary">
+ <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'Crypto.Protocol'"><code class="variable-quote">'</code><code class="variable-string">Crypto.Protocol</code><code class="variable-quote">'</code></code>
+ </td>
+ </tr>
+</table>
+<!-- ==================== FUNCTION DETAILS ==================== -->
+<a name="section-FunctionDetails"></a>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Function Details</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-FunctionDetails"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+</table>
+<a name="PBKDF1"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">PBKDF1</span>(<span class="sig-arg">password</span>,
+ <span class="sig-arg">salt</span>,
+ <span class="sig-arg">dkLen</span>,
+ <span class="sig-arg">count</span>=<span class="sig-default">1000</span>,
+ <span class="sig-arg">hashAlgo</span>=<span class="sig-default">&lt;module 'Crypto.Hash.SHA' from '/home/dwon/Projects/pycrypto/b<code class="variable-ellipsis">...</code></span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ >&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Derive one key from a password (or passphrase).</p>
+<p>This function performs key derivation according an old version of
+the PKCS#5 standard (v1.5).</p>
+<p>This algorithm is called <tt class="rst-docutils literal">PBKDF1</tt>. Even though it is still described
+in the latest version of the PKCS#5 standard (version 2, or RFC2898),
+newer applications should use the more secure and versatile <a href="Crypto.Protocol.KDF-module.html#PBKDF2" class="link">PBKDF2</a> instead.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>password</code></strong> (string) - The secret password or pass phrase to generate the key from.</li>
+ <li><strong class="pname"><code>salt</code></strong> (byte string) - An 8 byte string to use for better protection from dictionary attacks.
+This value does not need to be kept secret, but it should be randomly
+chosen for each derivation.</li>
+ <li><strong class="pname"><code>dkLen</code></strong> (integer) - The length of the desired key. Default is 16 bytes, suitable for instance for <a href="Crypto.Cipher.AES-module.html" class="link">Crypto.Cipher.AES</a>.</li>
+ <li><strong class="pname"><code>count</code></strong> (integer) - The number of iterations to carry out. It's recommended to use at least 1000.</li>
+ <li><strong class="pname"><code>hashAlgo</code></strong> (module) - The hash algorithm to use, as a module or an object from the <a href="Crypto.Hash-module.html" class="link">Crypto.Hash</a> package.
+The digest length must be no shorter than <tt class="rst-docutils literal">dkLen</tt>.</li>
+ </ul></dd>
+ <dt>Returns:</dt>
+ <dd>A byte string of length <code class="link">dkLen</code> that can be used as key.</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="PBKDF2"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">PBKDF2</span>(<span class="sig-arg">password</span>,
+ <span class="sig-arg">salt</span>,
+ <span class="sig-arg">dkLen</span>=<span class="sig-default">16</span>,
+ <span class="sig-arg">count</span>=<span class="sig-default">1000</span>,
+ <span class="sig-arg">prf</span>=<span class="sig-default">None</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ >&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Derive one or more keys from a password (or passphrase).</p>
+<p>This performs key derivation according to the PKCS#5 standard (v2.0),
+by means of the <tt class="rst-docutils literal">PBKDF2</tt> algorithm.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>password</code></strong> (string) - The secret password or pass phrase to generate the key from.</li>
+ <li><strong class="pname"><code>salt</code></strong> (string) - A string to use for better protection from dictionary attacks.
+This value does not need to be kept secret, but it should be randomly
+chosen for each derivation. It is recommended to be at least 8 bytes long.</li>
+ <li><strong class="pname"><code>dkLen</code></strong> (integer) - The cumulative length of the desired keys. Default is 16 bytes, suitable for instance for <a href="Crypto.Cipher.AES-module.html" class="link">Crypto.Cipher.AES</a>.</li>
+ <li><strong class="pname"><code>count</code></strong> (integer) - The number of iterations to carry out. It's recommended to use at least 1000.</li>
+ <li><strong class="pname"><code>prf</code></strong> (callable) - A pseudorandom function. It must be a function that returns a pseudorandom string
+from two parameters: a secret and a salt. If not specified, HMAC-SHA1 is used.</li>
+ </ul></dd>
+ <dt>Returns:</dt>
+ <dd>A byte string of length <code class="link">dkLen</code> that can be used as key material.
+If you wanted multiple keys, just break up this string into segments of the desired length.</dd>
+ </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+ <!-- Home link -->
+ <th>&nbsp;&nbsp;&nbsp;<a
+ href="Crypto-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+ <!-- Tree link -->
+ <th>&nbsp;&nbsp;&nbsp;<a
+ href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+ <!-- Index link -->
+ <th>&nbsp;&nbsp;&nbsp;<a
+ href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+ <!-- Help link -->
+ <th>&nbsp;&nbsp;&nbsp;<a
+ href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+ <!-- Project homepage -->
+ <th class="navbar" align="right" width="100%">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr><th class="navbar" align="center"
+ ><a href="http://www.pycrypto.org/">PyCrypto.org</a></th>
+ </tr></table></th>
+ </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+ <tr>
+ <td align="left" class="footer">
+ Generated by Epydoc 3.0.1 on Fri Jan 13 12:36:10 2012
+ </td>
+ <td align="right" class="footer">
+ <a target="mainFrame" href="http://epydoc.sourceforge.net"
+ >http://epydoc.sourceforge.net</a>
+ </td>
+ </tr>
+</table>
+
+<script type="text/javascript">
+ <!--
+ // Private objects are initially displayed (because if
+ // javascript is turned off then we want them to be
+ // visible); but by default, we want to hide them. So hide
+ // them unless we have a cookie that says to show them.
+ checkCookie();
+ // -->
+</script>
+</body>
+</html>