1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262
|
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>CryptoUtils Module — vsmartcard 2017-01-16 documentation</title>
<link rel="stylesheet" href="../../_static/basic.css" type="text/css" />
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../../_static/bootswatch-3.3.4/flatly/bootstrap.min.css" type="text/css" />
<link rel="stylesheet" href="../../_static/bootstrap-sphinx.css" type="text/css" />
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../../',
VERSION: '2017-01-16',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
};
</script>
<script type="text/javascript" src="../../_static/jquery.js"></script>
<script type="text/javascript" src="../../_static/underscore.js"></script>
<script type="text/javascript" src="../../_static/doctools.js"></script>
<script type="text/javascript" src="../../_static/js/jquery-1.11.0.min.js"></script>
<script type="text/javascript" src="../../_static/js/jquery-fix.js"></script>
<script type="text/javascript" src="../../_static/bootstrap-3.3.4/js/bootstrap.min.js"></script>
<script type="text/javascript" src="../../_static/bootstrap-sphinx.js"></script>
<link rel="shortcut icon" href="../../_static/chip.ico"/>
<link rel="top" title="vsmartcard 2017-01-16 documentation" href="../../index.html" />
<link rel="up" title="virtualsmartcard Package" href="virtualsmartcard.html" />
<link rel="next" title="SEutils Module" href="virtualsmartcard.SEutils.html" />
<link rel="prev" title="ConstantDefinitions Module" href="virtualsmartcard.ConstantDefinitions.html" />
<meta charset='utf-8'>
<meta http-equiv='X-UA-Compatible' content='IE=edge,chrome=1'>
<meta name='viewport' content='width=device-width, initial-scale=1.0, maximum-scale=1'>
<meta name="apple-mobile-web-app-capable" content="yes">
</head>
<body>
<script>
// Adjust banner height.
$(function () {
var navHeight = $(".navbar .container").css("height");
$("#gh-banner").css("top", navHeight);
});
</script>
<div id="navbar" class="navbar navbar-default ">
<div class="container">
<div class="navbar-header">
<!-- .btn-navbar is used as the toggle for collapsed navbar content -->
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".nav-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="../../index.html">
vsmartcard</a>
<span class="navbar-text navbar-version pull-left"><b></b></span>
</div>
<div class="collapse navbar-collapse nav-collapse">
<ul class="nav navbar-nav">
<li class="dropdown globaltoc-container">
<a role="button"
id="dLabelGlobalToc"
data-toggle="dropdown"
data-target="#"
href="../../index.html">Site <b class="caret"></b></a>
<ul class="dropdown-menu globaltoc"
role="menu"
aria-labelledby="dLabelGlobalToc"><ul>
<li class="toctree-l1"><a class="reference internal" href="../README.html">Virtual Smart Card</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../remote-reader/README.html">Remote Smart Card Reader</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../ACardEmulator/README.html">Android Smart Card Emulator</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../TCardEmulator/README.html">Tizen Smart Card Emulator</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../pcsc-relay/README.html">PC/SC Relay</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../ccid/README.html">USB CCID Emulator</a></li>
</ul>
<ul class="current">
<li class="toctree-l1 current"><a class="reference internal" href="../api.html">Creating a Virtual Smart Card</a></li>
</ul>
</ul>
</li>
<li class="dropdown">
<a role="button"
id="dLabelLocalToc"
data-toggle="dropdown"
data-target="#"
href="#">Page <b class="caret"></b></a>
<ul class="dropdown-menu localtoc"
role="menu"
aria-labelledby="dLabelLocalToc"><ul>
<li><a class="reference internal" href="#">CryptoUtils Module</a></li>
</ul>
</ul>
</li>
<li>
<a href="virtualsmartcard.ConstantDefinitions.html" title="Previous Chapter: ConstantDefinitions Module"><span class="glyphicon glyphicon-chevron-left visible-sm"></span><span class="hidden-sm hidden-tablet">« ConstantDefiniti...</span>
</a>
</li>
<li>
<a href="virtualsmartcard.SEutils.html" title="Next Chapter: SEutils Module"><span class="glyphicon glyphicon-chevron-right visible-sm"></span><span class="hidden-sm hidden-tablet">SEutils Module »</span>
</a>
</li>
<li class="hidden-sm"></li>
</ul>
<form class="navbar-form navbar-right" action="../../search.html" method="get">
<div class="form-group">
<input type="text" name="q" class="form-control" placeholder="Search" />
</div>
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div>
</div>
<div class="container">
<div class="row">
<div class="col-md-12 content">
<div class="section" id="cryptoutils-module">
<h1>CryptoUtils Module<a class="headerlink" href="#cryptoutils-module" title="Permalink to this headline">¶</a></h1>
<span class="target" id="module-virtualsmartcard.CryptoUtils"></span><dl class="function">
<dt id="virtualsmartcard.CryptoUtils._makesalt">
<tt class="descclassname">virtualsmartcard.CryptoUtils.</tt><tt class="descname">_makesalt</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.CryptoUtils._makesalt" title="Permalink to this definition">¶</a></dt>
<dd><p>Return a 48-bit pseudorandom salt for crypt().</p>
<p>This function is not suitable for generating cryptographic secrets.</p>
</dd></dl>
<dl class="function">
<dt id="virtualsmartcard.CryptoUtils.append_padding">
<tt class="descclassname">virtualsmartcard.CryptoUtils.</tt><tt class="descname">append_padding</tt><big>(</big><em>blocklen</em>, <em>data</em>, <em>padding_class=1</em><big>)</big><a class="headerlink" href="#virtualsmartcard.CryptoUtils.append_padding" title="Permalink to this definition">¶</a></dt>
<dd><p>Append padding to the data.
Length of padding depends on length of data and the block size of the
specified encryption algorithm.
Different types of padding may be selected via the padding_class parameter</p>
</dd></dl>
<dl class="function">
<dt id="virtualsmartcard.CryptoUtils.calculate_MAC">
<tt class="descclassname">virtualsmartcard.CryptoUtils.</tt><tt class="descname">calculate_MAC</tt><big>(</big><em>session_key</em>, <em>message</em>, <em>iv='\x00\x00\x00\x00\x00\x00\x00\x00'</em><big>)</big><a class="headerlink" href="#virtualsmartcard.CryptoUtils.calculate_MAC" title="Permalink to this definition">¶</a></dt>
<dd><p>Cyberflex MAC is the last Block of the input encrypted with DES3-CBC</p>
</dd></dl>
<dl class="function">
<dt id="virtualsmartcard.CryptoUtils.cipher">
<tt class="descclassname">virtualsmartcard.CryptoUtils.</tt><tt class="descname">cipher</tt><big>(</big><em>do_encrypt</em>, <em>cipherspec</em>, <em>key</em>, <em>data</em>, <em>iv=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.CryptoUtils.cipher" title="Permalink to this definition">¶</a></dt>
<dd><p>Do a cryptographic operation.
operation = do_encrypt ? encrypt : decrypt,
cipherspec must be of the form “cipher-mode”, or “cipher”</p>
</dd></dl>
<dl class="function">
<dt id="virtualsmartcard.CryptoUtils.crypto_checksum">
<tt class="descclassname">virtualsmartcard.CryptoUtils.</tt><tt class="descname">crypto_checksum</tt><big>(</big><em>algo</em>, <em>key</em>, <em>data</em>, <em>iv=None</em>, <em>ssc=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.CryptoUtils.crypto_checksum" title="Permalink to this definition">¶</a></dt>
<dd><p>Compute various types of cryptographic checksums.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
<li><strong>algo</strong> – A string specifying the algorithm to use. Currently supported
algorithms are “MAX” “HMAC” and “CC” (Meaning a cryptographic
checksum as used by the ICAO passports)</li>
<li><strong>key</strong> – They key used to computed the cryptographic checksum</li>
<li><strong>data</strong> – The data for which to calculate the checksum</li>
<li><strong>iv</strong> – Optional. An initialization vector. Only used by the “MAC” algorithm</li>
<li><strong>ssc</strong> – Optional. A send sequence counter to be prepended to the data.
Only used by the “CC” algorithm</li>
</ul>
</td>
</tr>
</tbody>
</table>
</dd></dl>
<dl class="function">
<dt id="virtualsmartcard.CryptoUtils.decrypt">
<tt class="descclassname">virtualsmartcard.CryptoUtils.</tt><tt class="descname">decrypt</tt><big>(</big><em>cipherspec</em>, <em>key</em>, <em>data</em>, <em>iv=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.CryptoUtils.decrypt" title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>
<dl class="function">
<dt id="virtualsmartcard.CryptoUtils.encrypt">
<tt class="descclassname">virtualsmartcard.CryptoUtils.</tt><tt class="descname">encrypt</tt><big>(</big><em>cipherspec</em>, <em>key</em>, <em>data</em>, <em>iv=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.CryptoUtils.encrypt" title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>
<dl class="function">
<dt id="virtualsmartcard.CryptoUtils.get_cipher">
<tt class="descclassname">virtualsmartcard.CryptoUtils.</tt><tt class="descname">get_cipher</tt><big>(</big><em>cipherspec</em>, <em>key</em>, <em>iv=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.CryptoUtils.get_cipher" title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>
<dl class="function">
<dt id="virtualsmartcard.CryptoUtils.get_cipher_blocklen">
<tt class="descclassname">virtualsmartcard.CryptoUtils.</tt><tt class="descname">get_cipher_blocklen</tt><big>(</big><em>cipherspec</em><big>)</big><a class="headerlink" href="#virtualsmartcard.CryptoUtils.get_cipher_blocklen" title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>
<dl class="function">
<dt id="virtualsmartcard.CryptoUtils.get_cipher_keylen">
<tt class="descclassname">virtualsmartcard.CryptoUtils.</tt><tt class="descname">get_cipher_keylen</tt><big>(</big><em>cipherspec</em><big>)</big><a class="headerlink" href="#virtualsmartcard.CryptoUtils.get_cipher_keylen" title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>
<dl class="function">
<dt id="virtualsmartcard.CryptoUtils.hash">
<tt class="descclassname">virtualsmartcard.CryptoUtils.</tt><tt class="descname">hash</tt><big>(</big><em>hashmethod</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.CryptoUtils.hash" title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>
<dl class="function">
<dt id="virtualsmartcard.CryptoUtils.operation_on_string">
<tt class="descclassname">virtualsmartcard.CryptoUtils.</tt><tt class="descname">operation_on_string</tt><big>(</big><em>string1</em>, <em>string2</em>, <em>op</em><big>)</big><a class="headerlink" href="#virtualsmartcard.CryptoUtils.operation_on_string" title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>
<dl class="function">
<dt id="virtualsmartcard.CryptoUtils.strip_padding">
<tt class="descclassname">virtualsmartcard.CryptoUtils.</tt><tt class="descname">strip_padding</tt><big>(</big><em>blocklen</em>, <em>data</em>, <em>padding_class=1</em><big>)</big><a class="headerlink" href="#virtualsmartcard.CryptoUtils.strip_padding" title="Permalink to this definition">¶</a></dt>
<dd><p>Strip the padding of decrypted data. Returns data without padding</p>
</dd></dl>
</div>
</div>
</div>
</div>
<footer class="footer">
<div class="container">
<p class="pull-right">
<a href="#">Back to top</a>
</p>
<p>
© Copyright 2009-2017 by Dominik Oepen and Frank Morgner.<br/>
</p>
</div>
</footer>
</body>
</html>
|