added documentation about TCardEmulator
rebuilt docs with 'pdf2svg' for tizk images
@@ -19,7 +19,9 @@ The Android Smart Card Emulator allows the emulation of a contact-less smart car
|
||||
The emulator uses Android's |HCE| to fetch APDUs from a contact-less reader.
|
||||
The app allows to process the Command APDUs either by delegating them to a
|
||||
remote virtual smart card or by a built-in Java Card simulator. The response
|
||||
APDUs are then returned to the smart card reader.
|
||||
APDUs are then returned to the smart card reader. Together with
|
||||
:ref:`tcardemulator` it is also possible to use a smartwatch as communication
|
||||
device instead of the phone.
|
||||
|
||||
With the built-in Java Card runtime of jCardSim_ the app includes the following
|
||||
Applets:
|
||||
@@ -48,11 +50,11 @@ a simple interface through a socket communication.
|
||||
:stringsubst:
|
||||
:libs: arrows, calc, fit, patterns, plotmarks, shapes.geometric, shapes.misc, shapes.symbols, shapes.arrows, shapes.callouts, shapes.multipart, shapes.gates.logic.US, shapes.gates.logic.IEC, er, automata, backgrounds, chains, topaths, trees, petri, mindmap, matrix, calendar, folding, fadings, through, positioning, scopes, decorations.fractals, decorations.shapes, decorations.text, decorations.pathmorphing, decorations.pathreplacing, decorations.footprints, decorations.markings, shadows
|
||||
|
||||
\input{%(wd)s/bilder/tikzstyles.tex}
|
||||
\node (reader) {\includegraphics[width=3cm]{%(wd)s/bilder/my_cardreader.pdf}};
|
||||
\input{$wd/bilder/tikzstyles.tex}
|
||||
\node (reader) {\includegraphics[width=3cm]{$wd/bilder/my_cardreader.pdf}};
|
||||
\node [below=0cm of reader, kleiner] {Contact-less Reader};
|
||||
\node (phone) [right=1cm of reader] {\includegraphics[width=3cm]{%(wd)s/bilder/smartphone.pdf}};
|
||||
\node (app) [at=(phone.center)] {\includegraphics[width=2.8cm, height=4.9cm]{%(wd)s/bilder/ACardEmulator.png}};
|
||||
\node (phone) [right=1cm of reader] {\includegraphics[width=3cm]{$wd/bilder/smartphone.pdf}};
|
||||
\node (app) [at=(phone.center)] {\includegraphics[width=2.8cm, height=4.9cm]{$wd/bilder/ACardEmulator.png}};
|
||||
|
||||
\begin{pgfonlayer}{background}
|
||||
\draw [rfid] (reader.center) -- (phone.west) ;
|
||||
@@ -62,34 +64,34 @@ a simple interface through a socket communication.
|
||||
:stringsubst:
|
||||
:libs: arrows, calc, fit, patterns, plotmarks, shapes.geometric, shapes.misc, shapes.symbols, shapes.arrows, shapes.callouts, shapes.multipart, shapes.gates.logic.US, shapes.gates.logic.IEC, er, automata, backgrounds, chains, topaths, trees, petri, mindmap, matrix, calendar, folding, fadings, through, positioning, scopes, decorations.fractals, decorations.shapes, decorations.text, decorations.pathmorphing, decorations.pathreplacing, decorations.footprints, decorations.markings, shadows
|
||||
|
||||
\input{%(wd)s/bilder/tikzstyles.tex}
|
||||
\node (reader) {\includegraphics[width=3cm]{%(wd)s/bilder/my_cardreader.pdf}};
|
||||
\input{$wd/bilder/tikzstyles.tex}
|
||||
\node (reader) {\includegraphics[width=3cm]{$wd/bilder/my_cardreader.pdf}};
|
||||
\node [below=0cm of reader, kleiner] {Contact-less Reader};
|
||||
\node (phone) [right=1cm of reader] {\includegraphics[width=3cm]{%(wd)s/bilder/smartphone.pdf}};
|
||||
\node (app) [at=(phone.center)] {\includegraphics[width=2.8cm, height=4.9cm]{%(wd)s/bilder/ACardEmulator.png}};
|
||||
\node (phone) [right=1cm of reader] {\includegraphics[width=3cm]{$wd/bilder/smartphone.pdf}};
|
||||
\node (app) [at=(phone.center)] {\includegraphics[width=2.8cm, height=4.9cm]{$wd/bilder/ACardEmulator.png}};
|
||||
\node (vicc) [aktivbox, right=2cm of phone, kleiner] {\texttt{vicc --reversed}};
|
||||
|
||||
\begin{pgfonlayer}{background}
|
||||
\draw [rfid] (reader.center) -- (phone.west) ;
|
||||
\path[linie] (phone) edge node {\includegraphics[width=1.5cm]{%(wd)s/bilder/simplecloud.pdf}} (vicc) ;
|
||||
\path[linie] (phone) edge node {\includegraphics[width=1.5cm]{$wd/bilder/simplecloud.pdf}} (vicc) ;
|
||||
\end{pgfonlayer}
|
||||
|
||||
.. tikz:: Relaying a contact-based smart card with pcsc-relay
|
||||
:stringsubst:
|
||||
:libs: arrows, calc, fit, patterns, plotmarks, shapes.geometric, shapes.misc, shapes.symbols, shapes.arrows, shapes.callouts, shapes.multipart, shapes.gates.logic.US, shapes.gates.logic.IEC, er, automata, backgrounds, chains, topaths, trees, petri, mindmap, matrix, calendar, folding, fadings, through, positioning, scopes, decorations.fractals, decorations.shapes, decorations.text, decorations.pathmorphing, decorations.pathreplacing, decorations.footprints, decorations.markings, shadows
|
||||
|
||||
\input{%(wd)s/bilder/tikzstyles.tex}
|
||||
\node (reader) {\includegraphics[width=3cm]{%(wd)s/bilder/my_cardreader.pdf}};
|
||||
\input{$wd/bilder/tikzstyles.tex}
|
||||
\node (reader) {\includegraphics[width=3cm]{$wd/bilder/my_cardreader.pdf}};
|
||||
\node [below=0cm of reader, kleiner] {Contact-less Reader};
|
||||
\node (phone) [right=1cm of reader] {\includegraphics[width=3cm]{%(wd)s/bilder/smartphone.pdf}};
|
||||
\node (app) [at=(phone.center)] {\includegraphics[width=2.8cm, height=4.9cm]{%(wd)s/bilder/ACardEmulator.png}};
|
||||
\node (phone) [right=1cm of reader] {\includegraphics[width=3cm]{$wd/bilder/smartphone.pdf}};
|
||||
\node (app) [at=(phone.center)] {\includegraphics[width=2.8cm, height=4.9cm]{$wd/bilder/ACardEmulator.png}};
|
||||
\node (pcsc-relay) [aktivbox, right=2cm of phone, kleiner] {\texttt{pcsc-relay --emulator=vpcd}};
|
||||
\node (card) [below=.5cm of pcsc-relay)] {\includegraphics[width=0.8cm]{%(wd)s/bilder/smartcard.pdf}};
|
||||
\node (reader2) [below=1cm of pcsc-relay] {\includegraphics[width=1.3cm]{%(wd)s/bilder/my_cardreader.pdf}};
|
||||
\node (card) [below=.5cm of pcsc-relay)] {\includegraphics[width=0.8cm]{$wd/bilder/smartcard.pdf}};
|
||||
\node (reader2) [below=1cm of pcsc-relay] {\includegraphics[width=1.3cm]{$wd/bilder/my_cardreader.pdf}};
|
||||
|
||||
\begin{pgfonlayer}{background}
|
||||
\draw [rfid] (reader.center) -- (phone.west) ;
|
||||
\path[linie] (phone) edge node {\includegraphics[width=1.5cm]{%(wd)s/bilder/simplecloud.pdf}} (pcsc-relay) ;
|
||||
\path[linie] (phone) edge node {\includegraphics[width=1.5cm]{$wd/bilder/simplecloud.pdf}} (pcsc-relay) ;
|
||||
\path[linie] (pcsc-relay) edge (reader2) ;
|
||||
\end{pgfonlayer}
|
||||
|
||||
|
||||
11
TCardEmulator/README.md
Normal file
@@ -0,0 +1,11 @@
|
||||
#Tizen Smart Card Emulator
|
||||
|
||||
The Tizen Smart Card Emulator allows the emulation of a contact-less smart
|
||||
card. The emulator uses Tizen's HCE to fetch APDUs from a contact-less reader.
|
||||
The headless Tizen service delegates the Command APDUs via Samsung's Accessory
|
||||
Protocol to the [Android Smart Card
|
||||
Emulator](http://frankmorgner.github.io/vsmartcard/ACardEmulator/README.html).
|
||||
The android app processes the commands and sends responses back to the
|
||||
contact-less reader via the Tizen Smart Card Emulator.
|
||||
|
||||
Please refer to [our project's website](http://frankmorgner.github.io/vsmartcard/TCardEmulator/README.html) for more information.
|
||||
70
TCardEmulator/doc/README.txt
Normal file
@@ -0,0 +1,70 @@
|
||||
.. highlight:: sh
|
||||
|
||||
.. |HCE| replace:: :abbr:`HCE (host card emulation)`
|
||||
|
||||
.. _tcardemulator:
|
||||
|
||||
################################################################################
|
||||
Tizen Smart Card Emulator
|
||||
################################################################################
|
||||
|
||||
.. sidebar:: Use a Tizen smartwatch as contact-less smart card
|
||||
|
||||
:License:
|
||||
GPL version 3
|
||||
:Tested Platform:
|
||||
Tizen (Samsung Gear S2)
|
||||
|
||||
The Tizen Smart Card Emulator allows the emulation of a contact-less smart card.
|
||||
The emulator uses Tizen's |HCE| to fetch APDUs from a contact-less reader.
|
||||
The headless Tizen service delegates the Command APDUs via Samsung's Accessory
|
||||
Protocol to the :ref:`acardemulator`. The android app processes the commands and
|
||||
sends responses back to the contact-less reader via the Tizen Smart Card
|
||||
Emulator.
|
||||
|
||||
You may also attach your own simulation by using the Samsung Accessory Protocol
|
||||
for communicating with the tizen service.
|
||||
|
||||
.. tikz:: Simulate a contact-less smart card with Android Smart Card Emulator
|
||||
:stringsubst:
|
||||
:libs: arrows, calc, fit, patterns, plotmarks, shapes.geometric, shapes.misc, shapes.symbols, shapes.arrows, shapes.callouts, shapes.multipart, shapes.gates.logic.US, shapes.gates.logic.IEC, er, automata, backgrounds, chains, topaths, trees, petri, mindmap, matrix, calendar, folding, fadings, through, positioning, scopes, decorations.fractals, decorations.shapes, decorations.text, decorations.pathmorphing, decorations.pathreplacing, decorations.footprints, decorations.markings, shadows
|
||||
|
||||
\input{$wd/bilder/tikzstyles.tex}
|
||||
\node (reader) {\includegraphics[width=3cm]{$wd/bilder/my_cardreader.pdf}};
|
||||
\node [below=0cm of reader, kleiner] {Contact-less Reader};
|
||||
\node (gears2) [right=1cm of reader] {\includegraphics[width=3cm]{$wd/bilder/gears2.jpg}};
|
||||
\node (phone) [right=-.5cm of gears2] {\includegraphics[width=3cm]{$wd/bilder/smartphone.pdf}};
|
||||
\node (app) [at=(phone.center)] {\includegraphics[width=2.8cm, height=4.9cm]{$wd/bilder/ACardEmulator.png}};
|
||||
|
||||
\begin{pgfonlayer}{background}
|
||||
\draw [rfid] (reader.center) -- (gears2.west) ;
|
||||
\end{pgfonlayer}
|
||||
|
||||
|
||||
********************
|
||||
Download and Install
|
||||
********************
|
||||
|
||||
To manually compile the app you need to fetch the sources and initialize the
|
||||
submodules::
|
||||
|
||||
git clone https://github.com/frankmorgner/vsmartcard.git
|
||||
|
||||
We use `Tizen SDK`_ to build and deploy the application. Use
|
||||
:menuselection:`Import...` to select :menuselection:`Tizen --> Tizen Project`.
|
||||
In the next dialog choose :file:`Tizen/TCardEmulator`. To be able to build and
|
||||
install the Tizen service on the smartwatch, you need to `install the
|
||||
appropriate SDK extensions and register as app developer`_.
|
||||
|
||||
|
||||
.. include:: questions.txt
|
||||
|
||||
|
||||
********************
|
||||
Notes and References
|
||||
********************
|
||||
|
||||
.. target-notes::
|
||||
|
||||
.. _Tizen SDK: https://developer.tizen.org/development/tools/download
|
||||
.. _`install the appropriate SDK extensions and register as app developer`: https://developer.tizen.org/community/tip-tech/tizen-sdk-install-guide-certificate-extensions-included
|
||||
6
TCardEmulator/doc/questions.txt
Normal file
@@ -0,0 +1,6 @@
|
||||
********
|
||||
Question
|
||||
********
|
||||
|
||||
Do you have questions, suggestions or contributions? Feedback of any kind is
|
||||
more than welcome! Please use our `project trackers <https://github.com/frankmorgner/vsmartcard/issues>`_.
|
||||
@@ -24,34 +24,34 @@ also |PACE| can be performed by the emulator.
|
||||
:stringsubst:
|
||||
:libs: arrows, calc, fit, patterns, plotmarks, shapes.geometric, shapes.misc, shapes.symbols, shapes.arrows, shapes.callouts, shapes.multipart, shapes.gates.logic.US, shapes.gates.logic.IEC, er, automata, backgrounds, chains, topaths, trees, petri, mindmap, matrix, calendar, folding, fadings, through, positioning, scopes, decorations.fractals, decorations.shapes, decorations.text, decorations.pathmorphing, decorations.pathreplacing, decorations.footprints, decorations.markings, shadows
|
||||
|
||||
\input{%(wd)s/bilder/tikzstyles.tex}
|
||||
\input{$wd/bilder/tikzstyles.tex}
|
||||
\tikzstyle{bla}=[kleiner, text width=.45\textwidth]
|
||||
|
||||
\node (reader)
|
||||
{\includegraphics[width=1cm]{%(wd)s/bilder/my_cardreader.pdf}};
|
||||
{\includegraphics[width=1cm]{$wd/bilder/my_cardreader.pdf}};
|
||||
\node (readertext) [right=0of reader, bla]
|
||||
{Smartphone provides smart card reader via USB};
|
||||
\node (display) [below=0of reader]
|
||||
{\includegraphics[width=1cm]{%(wd)s/bilder/display.pdf}};
|
||||
{\includegraphics[width=1cm]{$wd/bilder/display.pdf}};
|
||||
\node (displaytext) [right=0of display, bla]
|
||||
{Secure display of service provider and purpose of transaction};
|
||||
\node (keyboard) [below=0of display]
|
||||
{\includegraphics[width=1cm]{%(wd)s/bilder/keyboard.pdf}};
|
||||
{\includegraphics[width=1cm]{$wd/bilder/keyboard.pdf}};
|
||||
\node (keyboardtext) [right=0of keyboard, bla]
|
||||
{Secure PIN Entry};
|
||||
\node (firewall) [below=0of keyboard]
|
||||
{\includegraphics[width=1cm]{%(wd)s/bilder/Firewall.pdf}};
|
||||
{\includegraphics[width=1cm]{$wd/bilder/Firewall.pdf}};
|
||||
\node (firewalltext) [right=0of firewall, bla]
|
||||
{Verification of terminal authentication and sanitiy checks};
|
||||
|
||||
\node (features) [fit=(display) (keyboard) (reader) (firewall)] {};
|
||||
|
||||
\node (moko) [left=0of features.west] {\includegraphics[height=4cm]{%(wd)s/bilder/phone-fic-neo-freerunner.pdf}};
|
||||
\node (moko) [left=0of features.west] {\includegraphics[height=4cm]{$wd/bilder/phone-fic-neo-freerunner.pdf}};
|
||||
|
||||
\node (epa) [left=1.5of moko, yshift=-2cm]
|
||||
{\includegraphics[width=3cm]{%(wd)s/bilder/nPA_VS.png}};
|
||||
{\includegraphics[width=3cm]{$wd/bilder/nPA_VS.png}};
|
||||
\node (pc) [left=1.5of moko, yshift=1.5cm]
|
||||
{\includegraphics[width=3cm]{%(wd)s/bilder/computer-tango.pdf}};
|
||||
{\includegraphics[width=3cm]{$wd/bilder/computer-tango.pdf}};
|
||||
|
||||
\begin{pgfonlayer}{background}
|
||||
|
||||
@@ -116,7 +116,7 @@ tools.
|
||||
:stringsubst:
|
||||
:libs: arrows, calc, fit, patterns, plotmarks, shapes.geometric, shapes.misc, shapes.symbols, shapes.arrows, shapes.callouts, shapes.multipart, shapes.gates.logic.US, shapes.gates.logic.IEC, er, automata, backgrounds, chains, topaths, trees, petri, mindmap, matrix, calendar, folding, fadings, through, positioning, scopes, decorations.fractals, decorations.shapes, decorations.text, decorations.pathmorphing, decorations.pathreplacing, decorations.footprints, decorations.markings, shadows
|
||||
|
||||
\input{%(wd)s/bilder/tikzstyles.tex}
|
||||
\input{$wd/bilder/tikzstyles.tex}
|
||||
\tikzstyle{schicht}=[text width=5cm, align=right]
|
||||
\tikzstyle{fade down}=[path fading=south, color=huslateblue]
|
||||
|
||||
@@ -182,7 +182,7 @@ modern Windows and Unix-like systems by default.
|
||||
:stringsubst:
|
||||
:libs: arrows, calc, fit, patterns, plotmarks, shapes.geometric, shapes.misc, shapes.symbols, shapes.arrows, shapes.callouts, shapes.multipart, shapes.gates.logic.US, shapes.gates.logic.IEC, er, automata, backgrounds, chains, topaths, trees, petri, mindmap, matrix, calendar, folding, fadings, through, positioning, scopes, decorations.fractals, decorations.shapes, decorations.text, decorations.pathmorphing, decorations.pathreplacing, decorations.footprints, decorations.markings, shadows
|
||||
|
||||
\input{%(wd)s/bilder/tikzstyles.tex}
|
||||
\input{$wd/bilder/tikzstyles.tex}
|
||||
\tikzstyle{keks}=[to path={-- ++(.1,0) |- (\tikztotarget)}]
|
||||
|
||||
\tikzstyle{bla}=[shape=rectangle split, rectangle split parts=2,
|
||||
@@ -194,13 +194,13 @@ modern Windows and Unix-like systems by default.
|
||||
|
||||
\node (basis) [below=3of ccid-emulator]
|
||||
{\includegraphics[keepaspectratio, height=2cm,
|
||||
width=2cm]{%(wd)s/bilder/moko/basisleser_plain_klein.png}};
|
||||
width=2cm]{$wd/bilder/moko/basisleser_plain_klein.png}};
|
||||
\node (basisbeschreibung) [below=0cm of basis, kleiner, text width=2cm]
|
||||
{Reiner SCT RFID basis};
|
||||
|
||||
\node (npa) [left=1.5of basis]
|
||||
{\includegraphics[keepaspectratio, height=3cm,
|
||||
width=3cm]{%(wd)s/bilder/nPA_VS.png}};
|
||||
width=3cm]{$wd/bilder/nPA_VS.png}};
|
||||
\node (npabeschreibung) [below=0cm of npa, kleiner]
|
||||
{German identity card};
|
||||
|
||||
@@ -240,14 +240,14 @@ modern Windows and Unix-like systems by default.
|
||||
(funktionenchat) (funktionenpace), box, inner sep=.5cm] {};
|
||||
\node (boxbild) at (box.north west)
|
||||
{\includegraphics[keepaspectratio, height=1.5cm,
|
||||
width=1.5cm]{%(wd)s/bilder/moko/moko_reader.png}};
|
||||
width=1.5cm]{$wd/bilder/moko/moko_reader.png}};
|
||||
\node [right=0cm of boxbild.east, yshift=.3cm]
|
||||
{Openmoko Neo FreeRunner};
|
||||
\end{pgfonlayer}
|
||||
|
||||
\node (a) [above=1of npa]
|
||||
{\includegraphics[keepaspectratio, height=3cm,
|
||||
width=3cm]{%(wd)s/bilder/computer-tango.pdf}};
|
||||
width=3cm]{$wd/bilder/computer-tango.pdf}};
|
||||
|
||||
|
||||
\begin{pgfonlayer}{background}
|
||||
|
||||
1
doc/TCardEmulator
Symbolic link
@@ -0,0 +1 @@
|
||||
../TCardEmulator/doc
|
||||
BIN
doc/bilder/gears2.jpg
Normal file
|
After Width: | Height: | Size: 66 KiB |
@@ -34,6 +34,7 @@ needs_sphinx = '1.1'
|
||||
# Add any Sphinx extension module names here, as strings. They can be extensions
|
||||
# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
|
||||
extensions = ["sphinx.ext.autosummary", "sphinxcontrib.programoutput", "sphinx.ext.inheritance_diagram", "sphinxcontrib.tikz", 'sphinxcontrib.bibtex']
|
||||
tikz_proc_suite = 'pdf2svg'
|
||||
|
||||
# Add any paths that contain templates here, relative to this directory.
|
||||
templates_path = ['_templates']
|
||||
|
||||
@@ -14,7 +14,7 @@ or smart cards themselves.
|
||||
:stringsubst:
|
||||
:libs: arrows, calc, fit, patterns, plotmarks, shapes.geometric, shapes.misc, shapes.symbols, shapes.arrows, shapes.callouts, shapes.multipart, shapes.gates.logic.US, shapes.gates.logic.IEC, er, automata, backgrounds, chains, topaths, trees, petri, mindmap, matrix, calendar, folding, fadings, through, positioning, scopes, decorations.fractals, decorations.shapes, decorations.text, decorations.pathmorphing, decorations.pathreplacing, decorations.footprints, decorations.markings, shadows
|
||||
|
||||
\input{%(wd)s/bilder/tikzstyles.tex}
|
||||
\input{$wd/bilder/tikzstyles.tex}
|
||||
\tikzstyle{bla}=[box, klein, rounded rectangle, inner sep=.3cm]
|
||||
\node (a) {};
|
||||
|
||||
@@ -48,6 +48,7 @@ Currently the following projects are part of |vsmartcard|:
|
||||
virtualsmartcard/README
|
||||
remote-reader/README
|
||||
ACardEmulator/README
|
||||
TCardEmulator/README
|
||||
pcsc-relay/README
|
||||
ccid/README
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Sphinx build info version 1
|
||||
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
|
||||
config: e41957cb4064e6fc047d6ae872662714
|
||||
config: 8e5f2a4bcebac1b2d77d5116e3094531
|
||||
tags: 645f666f9bcd5a90fca523b33c5a78b7
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>Android Smart Card Emulator — vsmartcard 2017-01-08 documentation</title>
|
||||
<title>Android Smart Card Emulator — 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" />
|
||||
@@ -15,7 +15,7 @@
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: '../',
|
||||
VERSION: '2017-01-08',
|
||||
VERSION: '2017-01-16',
|
||||
COLLAPSE_INDEX: false,
|
||||
FILE_SUFFIX: '.html',
|
||||
HAS_SOURCE: true
|
||||
@@ -29,8 +29,8 @@
|
||||
<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-08 documentation" href="../index.html" />
|
||||
<link rel="next" title="PC/SC Relay" href="../pcsc-relay/README.html" />
|
||||
<link rel="top" title="vsmartcard 2017-01-16 documentation" href="../index.html" />
|
||||
<link rel="next" title="Tizen Smart Card Emulator" href="../TCardEmulator/README.html" />
|
||||
<link rel="prev" title="Remote Smart Card Reader" href="../remote-reader/README.html" />
|
||||
<meta charset='utf-8'>
|
||||
<meta http-equiv='X-UA-Compatible' content='IE=edge,chrome=1'>
|
||||
@@ -38,7 +38,7 @@
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
|
||||
</head>
|
||||
<body role="document">
|
||||
<body>
|
||||
|
||||
<a href="https://github.com/frankmorgner/vsmartcard"
|
||||
class="visible-desktop hidden-xs"><img
|
||||
@@ -85,6 +85,7 @@
|
||||
<li class="toctree-l1"><a class="reference internal" href="../virtualsmartcard/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 current"><a class="current reference internal" href="">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>
|
||||
@@ -122,7 +123,7 @@
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="../pcsc-relay/README.html" title="Next Chapter: PC/SC Relay"><span class="glyphicon glyphicon-chevron-right visible-sm"></span><span class="hidden-sm hidden-tablet">PC/SC Relay »</span>
|
||||
<a href="../TCardEmulator/README.html" title="Next Chapter: Tizen Smart Card Emulator"><span class="glyphicon glyphicon-chevron-right visible-sm"></span><span class="hidden-sm hidden-tablet">Tizen Smart Card... »</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -172,63 +173,65 @@
|
||||
The emulator uses Android’s <abbr title="host card emulation">HCE</abbr> to fetch APDUs from a contact-less reader.
|
||||
The app allows to process the Command APDUs either by delegating them to a
|
||||
remote virtual smart card or by a built-in Java Card simulator. The response
|
||||
APDUs are then returned to the smart card reader.</p>
|
||||
APDUs are then returned to the smart card reader. Together with
|
||||
<a class="reference internal" href="../TCardEmulator/README.html#tcardemulator"><em>Tizen Smart Card Emulator</em></a> it is also possible to use a smartwatch as communication
|
||||
device instead of the phone.</p>
|
||||
<p>With the built-in Java Card runtime of <a class="reference external" href="http://www.jcardsim.org/">jCardSim</a> <a class="footnote-reference" href="#id1" id="id2">[1]</a> the app includes the following
|
||||
Applets:</p>
|
||||
<ul class="simple">
|
||||
<li><a class="reference external" href="https://github.com/licel/jcardsim/blob/master/src/main/java/com/licel/jcardsim/samples/HelloWorldApplet.java">Hello World Applet</a> <a class="footnote-reference" href="#id3" id="id4">[2]</a> (application identifier <code class="docutils literal"><span class="pre">F000000001</span></code>)</li>
|
||||
<li><a class="reference external" href="https://developers.yubico.com/ykneo-openpgp/">OpenPGP Applet</a> <a class="footnote-reference" href="#id5" id="id6">[3]</a> (application identifier <code class="docutils literal"><span class="pre">D2760001240102000000000000010000</span></code>)</li>
|
||||
<li><a class="reference external" href="https://developers.yubico.com/ykneo-oath/">OATH Applet</a> <a class="footnote-reference" href="#id7" id="id8">[4]</a> (application identifier <code class="docutils literal"><span class="pre">A000000527210101</span></code>)</li>
|
||||
<li><a class="reference external" href="http://www.pwendland.net/IsoApplet/">ISO Applet</a> <a class="footnote-reference" href="#id9" id="id10">[5]</a> (application identifier <code class="docutils literal"><span class="pre">F276A288BCFBA69D34F31001</span></code>)</li>
|
||||
<li><a class="reference external" href="https://github.com/vletoux/GidsApplet">GIDS Applet</a> <a class="footnote-reference" href="#id11" id="id12">[6]</a> (application identifier <code class="docutils literal"><span class="pre">A000000397425446590201</span></code>)</li>
|
||||
<li><a class="reference external" href="https://github.com/licel/jcardsim/blob/master/src/main/java/com/licel/jcardsim/samples/HelloWorldApplet.java">Hello World Applet</a> <a class="footnote-reference" href="#id3" id="id4">[2]</a> (application identifier <tt class="docutils literal"><span class="pre">F000000001</span></tt>)</li>
|
||||
<li><a class="reference external" href="https://developers.yubico.com/ykneo-openpgp/">OpenPGP Applet</a> <a class="footnote-reference" href="#id5" id="id6">[3]</a> (application identifier <tt class="docutils literal"><span class="pre">D2760001240102000000000000010000</span></tt>)</li>
|
||||
<li><a class="reference external" href="https://developers.yubico.com/ykneo-oath/">OATH Applet</a> <a class="footnote-reference" href="#id7" id="id8">[4]</a> (application identifier <tt class="docutils literal"><span class="pre">A000000527210101</span></tt>)</li>
|
||||
<li><a class="reference external" href="http://www.pwendland.net/IsoApplet/">ISO Applet</a> <a class="footnote-reference" href="#id9" id="id10">[5]</a> (application identifier <tt class="docutils literal"><span class="pre">F276A288BCFBA69D34F31001</span></tt>)</li>
|
||||
<li><a class="reference external" href="https://github.com/vletoux/GidsApplet">GIDS Applet</a> <a class="footnote-reference" href="#id11" id="id12">[6]</a> (application identifier <tt class="docutils literal"><span class="pre">A000000397425446590201</span></tt>)</li>
|
||||
</ul>
|
||||
<p>The remote interface can be used together with the <a class="reference internal" href="../virtualsmartcard/README.html#vicc"><span>Virtual Smart Card</span></a>, which allows
|
||||
<p>The remote interface can be used together with the <a class="reference internal" href="../virtualsmartcard/README.html#vicc"><em>Virtual Smart Card</em></a>, which allows
|
||||
emulating the following cards:</p>
|
||||
<ul class="simple">
|
||||
<li>Generic ISO-7816 smart card</li>
|
||||
<li>German electronic identity card (nPA)</li>
|
||||
<li>Electronic passport</li>
|
||||
</ul>
|
||||
<p>The remote interface can also be used together with the <a class="reference internal" href="../pcsc-relay/README.html#pcsc-relay"><span>PC/SC Relay</span></a>,
|
||||
<p>The remote interface can also be used together with the <a class="reference internal" href="../pcsc-relay/README.html#pcsc-relay"><em>PC/SC Relay</em></a>,
|
||||
which allows emulating a contactless card from an existing contact-based card
|
||||
(by relaying the commands from PC/SC to the phone).</p>
|
||||
<p>You may also attach your own simulation to the remote interface by implementing
|
||||
a simple interface through a socket communication.</p>
|
||||
<div class="figure">
|
||||
<p><img src="../_images/tikz-069feb98fbb6c2bcacad0fa341edc5ceaba0a732.png" alt="\input{%(wd)s/bilder/tikzstyles.tex}
|
||||
\node (reader) {\includegraphics[width=3cm]{%(wd)s/bilder/my_cardreader.pdf}};
|
||||
<p><img src="../_images/tikz-f7010fa8209b3752026a52619d57bbebb8fa2bcd.svg" alt="\input{$wd/bilder/tikzstyles.tex}
|
||||
\node (reader) {\includegraphics[width=3cm]{$wd/bilder/my_cardreader.pdf}};
|
||||
\node [below=0cm of reader, kleiner] {Contact-less Reader};
|
||||
\node (phone) [right=1cm of reader] {\includegraphics[width=3cm]{%(wd)s/bilder/smartphone.pdf}};
|
||||
\node (app) [at=(phone.center)] {\includegraphics[width=2.8cm, height=4.9cm]{%(wd)s/bilder/ACardEmulator.png}};
|
||||
\node (phone) [right=1cm of reader] {\includegraphics[width=3cm]{$wd/bilder/smartphone.pdf}};
|
||||
\node (app) [at=(phone.center)] {\includegraphics[width=2.8cm, height=4.9cm]{$wd/bilder/ACardEmulator.png}};
|
||||
|
||||
\begin{pgfonlayer}{background}
|
||||
\draw [rfid] (reader.center) -- (phone.west) ;
|
||||
\end{pgfonlayer}" /></p>
|
||||
<p class="caption">Simulate a contact-less Java Card with Android Smart Card Emulator</p></div><div class="figure">
|
||||
<p><img src="../_images/tikz-ad80edcb712885aba11512084ac22ff832c4ebbb.png" alt="\input{%(wd)s/bilder/tikzstyles.tex}
|
||||
\node (reader) {\includegraphics[width=3cm]{%(wd)s/bilder/my_cardreader.pdf}};
|
||||
<p><img src="../_images/tikz-ae1e764f23cec8b5d67952bc6d8bbe66280e80d1.svg" alt="\input{$wd/bilder/tikzstyles.tex}
|
||||
\node (reader) {\includegraphics[width=3cm]{$wd/bilder/my_cardreader.pdf}};
|
||||
\node [below=0cm of reader, kleiner] {Contact-less Reader};
|
||||
\node (phone) [right=1cm of reader] {\includegraphics[width=3cm]{%(wd)s/bilder/smartphone.pdf}};
|
||||
\node (app) [at=(phone.center)] {\includegraphics[width=2.8cm, height=4.9cm]{%(wd)s/bilder/ACardEmulator.png}};
|
||||
\node (phone) [right=1cm of reader] {\includegraphics[width=3cm]{$wd/bilder/smartphone.pdf}};
|
||||
\node (app) [at=(phone.center)] {\includegraphics[width=2.8cm, height=4.9cm]{$wd/bilder/ACardEmulator.png}};
|
||||
\node (vicc) [aktivbox, right=2cm of phone, kleiner] {\texttt{vicc --reversed}};
|
||||
|
||||
\begin{pgfonlayer}{background}
|
||||
\draw [rfid] (reader.center) -- (phone.west) ;
|
||||
\path[linie] (phone) edge node {\includegraphics[width=1.5cm]{%(wd)s/bilder/simplecloud.pdf}} (vicc) ;
|
||||
\path[linie] (phone) edge node {\includegraphics[width=1.5cm]{$wd/bilder/simplecloud.pdf}} (vicc) ;
|
||||
\end{pgfonlayer}" /></p>
|
||||
<p class="caption">Simulate a contact-less smart card with a remote virtual smart card</p></div><div class="figure">
|
||||
<p><img src="../_images/tikz-2623a4f0b37e685e9d3fa97479f3e06798f21da2.png" alt="\input{%(wd)s/bilder/tikzstyles.tex}
|
||||
\node (reader) {\includegraphics[width=3cm]{%(wd)s/bilder/my_cardreader.pdf}};
|
||||
<p><img src="../_images/tikz-30c9c7049675e5b06e8364c63b0718d51986e380.svg" alt="\input{$wd/bilder/tikzstyles.tex}
|
||||
\node (reader) {\includegraphics[width=3cm]{$wd/bilder/my_cardreader.pdf}};
|
||||
\node [below=0cm of reader, kleiner] {Contact-less Reader};
|
||||
\node (phone) [right=1cm of reader] {\includegraphics[width=3cm]{%(wd)s/bilder/smartphone.pdf}};
|
||||
\node (app) [at=(phone.center)] {\includegraphics[width=2.8cm, height=4.9cm]{%(wd)s/bilder/ACardEmulator.png}};
|
||||
\node (phone) [right=1cm of reader] {\includegraphics[width=3cm]{$wd/bilder/smartphone.pdf}};
|
||||
\node (app) [at=(phone.center)] {\includegraphics[width=2.8cm, height=4.9cm]{$wd/bilder/ACardEmulator.png}};
|
||||
\node (pcsc-relay) [aktivbox, right=2cm of phone, kleiner] {\texttt{pcsc-relay --emulator=vpcd}};
|
||||
\node (card) [below=.5cm of pcsc-relay)] {\includegraphics[width=0.8cm]{%(wd)s/bilder/smartcard.pdf}};
|
||||
\node (reader2) [below=1cm of pcsc-relay] {\includegraphics[width=1.3cm]{%(wd)s/bilder/my_cardreader.pdf}};
|
||||
\node (card) [below=.5cm of pcsc-relay)] {\includegraphics[width=0.8cm]{$wd/bilder/smartcard.pdf}};
|
||||
\node (reader2) [below=1cm of pcsc-relay] {\includegraphics[width=1.3cm]{$wd/bilder/my_cardreader.pdf}};
|
||||
|
||||
\begin{pgfonlayer}{background}
|
||||
\draw [rfid] (reader.center) -- (phone.west) ;
|
||||
\path[linie] (phone) edge node {\includegraphics[width=1.5cm]{%(wd)s/bilder/simplecloud.pdf}} (pcsc-relay) ;
|
||||
\path[linie] (phone) edge node {\includegraphics[width=1.5cm]{$wd/bilder/simplecloud.pdf}} (pcsc-relay) ;
|
||||
\path[linie] (pcsc-relay) edge (reader2) ;
|
||||
\end{pgfonlayer}" /></p>
|
||||
<p class="caption">Relaying a contact-based smart card with pcsc-relay</p></div><p>The Android Smart Card Emulator has the following dependencies:</p>
|
||||
@@ -238,7 +241,7 @@ a simple interface through a socket communication.</p>
|
||||
<li>permissions for a data connection (communication with Virtual Smart Card) and
|
||||
for using NFC (communication to the reader); scanning the configuration via
|
||||
QR code requires permission to access the camera</li>
|
||||
<li>Virtual Smart Card <a class="reference internal" href="../virtualsmartcard/README.html#vicc-install"><span>installed on the host computer</span></a> for
|
||||
<li>Virtual Smart Card <a class="reference internal" href="../virtualsmartcard/README.html#vicc-install"><em>installed on the host computer</em></a> for
|
||||
using the remote interface</li>
|
||||
</ul>
|
||||
<p>Please note that the currently emulated applets are verifying the PIN by
|
||||
@@ -259,8 +262,8 @@ git submodule update
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>We use <a class="reference external" href="http://developer.android.com/sdk/installing/studio.html">Android Studio</a> <a class="footnote-reference" href="#id17" id="id18">[9]</a> to build and deploy the application. Use
|
||||
<span class="menuselection">File ‣ Open</span> to select <code class="file docutils literal"><span class="pre">vsmartcard/ACardEmulator</span></code>.
|
||||
Attach your smartphone and choose <span class="menuselection">Run ‣ Run ‘app’</span>.</p>
|
||||
<em class="menuselection">File ‣ Open</em> to select <tt class="file docutils literal"><span class="pre">vsmartcard/ACardEmulator</span></tt>.
|
||||
Attach your smartphone and choose <em class="menuselection">Run ‣ Run ‘app’</em>.</p>
|
||||
</div>
|
||||
<div class="section" id="question">
|
||||
<h2>Question<a class="headerlink" href="#question" title="Permalink to this headline">¶</a></h2>
|
||||
|
||||
243
docs/TCardEmulator/README.html
Normal file
@@ -0,0 +1,243 @@
|
||||
<!DOCTYPE html>
|
||||
|
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>Tizen Smart Card Emulator — 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="next" title="PC/SC Relay" href="../pcsc-relay/README.html" />
|
||||
<link rel="prev" title="Android Smart Card Emulator" href="../ACardEmulator/README.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>
|
||||
|
||||
<a href="https://github.com/frankmorgner/vsmartcard"
|
||||
class="visible-desktop hidden-xs"><img
|
||||
id="gh-banner"
|
||||
style="position: absolute; top: 50px; right: 0; border: 0;"
|
||||
src="https://s3.amazonaws.com/github/ribbons/forkme_right_white_ffffff.png"
|
||||
alt="Fork me on GitHub"></a>
|
||||
<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 class="current">
|
||||
<li class="toctree-l1"><a class="reference internal" href="../virtualsmartcard/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 current"><a class="current reference internal" href="">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>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../virtualsmartcard/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="#">Tizen Smart Card Emulator</a><ul>
|
||||
<li><a class="reference internal" href="#download-and-install">Download and Install</a></li>
|
||||
<li><a class="reference internal" href="#question">Question</a></li>
|
||||
<li><a class="reference internal" href="#notes-and-references">Notes and References</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li>
|
||||
<a href="../ACardEmulator/README.html" title="Previous Chapter: Android Smart Card Emulator"><span class="glyphicon glyphicon-chevron-left visible-sm"></span><span class="hidden-sm hidden-tablet">« Android Smart Ca...</span>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="../pcsc-relay/README.html" title="Next Chapter: PC/SC Relay"><span class="glyphicon glyphicon-chevron-right visible-sm"></span><span class="hidden-sm hidden-tablet">PC/SC Relay »</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="tizen-smart-card-emulator">
|
||||
<span id="tcardemulator"></span><h1>Tizen Smart Card Emulator<a class="headerlink" href="#tizen-smart-card-emulator" title="Permalink to this headline">¶</a></h1>
|
||||
<div class="sidebar">
|
||||
<p class="first sidebar-title">Use a Tizen smartwatch as contact-less smart card</p>
|
||||
<table class="last 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">License:</th><td class="field-body">GPL version 3</td>
|
||||
</tr>
|
||||
<tr class="field-even field"><th class="field-name" colspan="2">Tested Platform:</th></tr>
|
||||
<tr class="field-even field"><td> </td><td class="field-body">Tizen (Samsung Gear S2)</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<p>The Tizen Smart Card Emulator allows the emulation of a contact-less smart card.
|
||||
The emulator uses Tizen’s <abbr title="host card emulation">HCE</abbr> to fetch APDUs from a contact-less reader.
|
||||
The headless Tizen service delegates the Command APDUs via Samsung’s Accessory
|
||||
Protocol to the <a class="reference internal" href="../ACardEmulator/README.html#acardemulator"><em>Android Smart Card Emulator</em></a>. The android app processes the commands and
|
||||
sends responses back to the contact-less reader via the Tizen Smart Card
|
||||
Emulator.</p>
|
||||
<p>You may also attach your own simulation by using the Samsung Accessory Protocol
|
||||
for communicating with the tizen service.</p>
|
||||
<div class="figure">
|
||||
<p><img src="../_images/tikz-b87c5ab6092153f7f845370e9964b266e5d97f55.svg" alt="\input{$wd/bilder/tikzstyles.tex}
|
||||
\node (reader) {\includegraphics[width=3cm]{$wd/bilder/my_cardreader.pdf}};
|
||||
\node [below=0cm of reader, kleiner] {Contact-less Reader};
|
||||
\node (gears2) [right=1cm of reader] {\includegraphics[width=3cm]{$wd/bilder/gears2.jpg}};
|
||||
\node (phone) [right=-.5cm of gears2] {\includegraphics[width=3cm]{$wd/bilder/smartphone.pdf}};
|
||||
\node (app) [at=(phone.center)] {\includegraphics[width=2.8cm, height=4.9cm]{$wd/bilder/ACardEmulator.png}};
|
||||
|
||||
\begin{pgfonlayer}{background}
|
||||
\draw [rfid] (reader.center) -- (gears2.west) ;
|
||||
\end{pgfonlayer}" /></p>
|
||||
<p class="caption">Simulate a contact-less smart card with Android Smart Card Emulator</p></div><div class="section" id="download-and-install">
|
||||
<h2>Download and Install<a class="headerlink" href="#download-and-install" title="Permalink to this headline">¶</a></h2>
|
||||
<p>To manually compile the app you need to fetch the sources and initialize the
|
||||
submodules:</p>
|
||||
<div class="highlight-sh"><div class="highlight"><pre>git clone https://github.com/frankmorgner/vsmartcard.git
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>We use <a class="reference external" href="https://developer.tizen.org/development/tools/download">Tizen SDK</a> <a class="footnote-reference" href="#id1" id="id2">[1]</a> to build and deploy the application. Use
|
||||
<em class="menuselection">Import...</em> to select <em class="menuselection">Tizen ‣ Tizen Project</em>.
|
||||
In the next dialog choose <tt class="file docutils literal"><span class="pre">Tizen/TCardEmulator</span></tt>. To be able to build and
|
||||
install the Tizen service on the smartwatch, you need to <a class="reference external" href="https://developer.tizen.org/community/tip-tech/tizen-sdk-install-guide-certificate-extensions-included">install the
|
||||
appropriate SDK extensions and register as app developer</a> <a class="footnote-reference" href="#id3" id="id4">[2]</a>.</p>
|
||||
</div>
|
||||
<div class="section" id="question">
|
||||
<h2>Question<a class="headerlink" href="#question" title="Permalink to this headline">¶</a></h2>
|
||||
<p>Do you have questions, suggestions or contributions? Feedback of any kind is
|
||||
more than welcome! Please use our <a class="reference external" href="https://github.com/frankmorgner/vsmartcard/issues">project trackers</a>.</p>
|
||||
</div>
|
||||
<div class="section" id="notes-and-references">
|
||||
<h2>Notes and References<a class="headerlink" href="#notes-and-references" title="Permalink to this headline">¶</a></h2>
|
||||
<table class="docutils footnote" frame="void" id="id1" rules="none">
|
||||
<colgroup><col class="label" /><col /></colgroup>
|
||||
<tbody valign="top">
|
||||
<tr><td class="label"><a class="fn-backref" href="#id2">[1]</a></td><td><a class="reference external" href="https://developer.tizen.org/development/tools/download">https://developer.tizen.org/development/tools/download</a></td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table class="docutils footnote" frame="void" id="id3" rules="none">
|
||||
<colgroup><col class="label" /><col /></colgroup>
|
||||
<tbody valign="top">
|
||||
<tr><td class="label"><a class="fn-backref" href="#id4">[2]</a></td><td><a class="reference external" href="https://developer.tizen.org/community/tip-tech/tizen-sdk-install-guide-certificate-extensions-included">https://developer.tizen.org/community/tip-tech/tizen-sdk-install-guide-certificate-extensions-included</a></td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</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>
|
||||
834
docs/_images/tikz-0405e52eb98193c32482e91a30737e1e9684bad0.svg
Normal file
|
After Width: | Height: | Size: 4.6 MiB |
|
Before Width: | Height: | Size: 113 KiB |
|
Before Width: | Height: | Size: 46 KiB |
406
docs/_images/tikz-115ce7f91e19ed28b7af35a9f18aa096148209ea.svg
Normal file
@@ -0,0 +1,406 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="455.982pt" height="67.206pt" viewBox="0 0 455.982 67.206" version="1.1">
|
||||
<defs>
|
||||
<g>
|
||||
<symbol overflow="visible" id="glyph0-0">
|
||||
<path style="stroke:none;" d=""/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-1">
|
||||
<path style="stroke:none;" d="M 2.421875 2.65625 C 2.578125 2.65625 2.890625 2.65625 2.890625 2.3125 C 2.890625 1.953125 2.578125 1.953125 2.421875 1.953125 L 1.921875 1.953125 L 1.921875 -0.59375 C 2.21875 -0.28125 2.65625 0.078125 3.328125 0.078125 C 4.59375 0.078125 5.703125 -1.0625 5.703125 -2.578125 C 5.703125 -4.046875 4.703125 -5.21875 3.453125 -5.21875 C 2.578125 -5.21875 2.03125 -4.703125 1.921875 -4.578125 C 1.921875 -4.96875 1.921875 -5.15625 1.453125 -5.15625 L 0.65625 -5.15625 C 0.484375 -5.15625 0.171875 -5.15625 0.171875 -4.8125 C 0.171875 -4.453125 0.484375 -4.453125 0.65625 -4.453125 L 1.140625 -4.453125 L 1.140625 1.953125 L 0.65625 1.953125 C 0.484375 1.953125 0.171875 1.953125 0.171875 2.3125 C 0.171875 2.65625 0.484375 2.65625 0.65625 2.65625 Z M 1.921875 -3.171875 C 1.921875 -3.859375 2.59375 -4.53125 3.375 -4.53125 C 4.234375 -4.53125 4.921875 -3.65625 4.921875 -2.578125 C 4.921875 -1.4375 4.109375 -0.625 3.265625 -0.625 C 2.359375 -0.625 1.921875 -1.640625 1.921875 -2.234375 Z M 1.921875 -3.171875 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-2">
|
||||
<path style="stroke:none;" d="M 5.453125 -1.296875 C 5.453125 -1.609375 5.15625 -1.609375 5.0625 -1.609375 C 4.78125 -1.609375 4.734375 -1.515625 4.671875 -1.34375 C 4.40625 -0.6875 3.828125 -0.625 3.53125 -0.625 C 2.515625 -0.625 1.65625 -1.46875 1.65625 -2.578125 C 1.65625 -3.1875 2.015625 -4.5625 3.578125 -4.5625 C 3.890625 -4.5625 4.140625 -4.546875 4.25 -4.53125 C 4.34375 -4.5 4.34375 -4.5 4.34375 -4.4375 C 4.390625 -3.9375 4.75 -3.9375 4.828125 -3.9375 C 5.09375 -3.9375 5.3125 -4.109375 5.3125 -4.4375 C 5.3125 -5.265625 4.109375 -5.265625 3.578125 -5.265625 C 1.546875 -5.265625 0.890625 -3.578125 0.890625 -2.578125 C 0.890625 -1.125 2 0.078125 3.4375 0.078125 C 5.03125 0.078125 5.453125 -1.109375 5.453125 -1.296875 Z M 5.453125 -1.296875 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-3">
|
||||
<path style="stroke:none;" d="M 5.015625 -4.8125 C 5.015625 -5 5.015625 -5.265625 4.6875 -5.265625 C 4.40625 -5.265625 4.328125 -4.984375 4.328125 -4.96875 C 3.84375 -5.265625 3.296875 -5.265625 3.0625 -5.265625 C 1.109375 -5.265625 0.84375 -4.265625 0.84375 -3.859375 C 0.84375 -3.375 1.140625 -3.03125 1.546875 -2.8125 C 1.921875 -2.59375 2.265625 -2.53125 3.25 -2.375 C 3.71875 -2.296875 4.671875 -2.140625 4.671875 -1.484375 C 4.671875 -1.046875 4.265625 -0.625 3.15625 -0.625 C 2.390625 -0.625 1.890625 -0.921875 1.640625 -1.78125 C 1.578125 -1.953125 1.546875 -2.078125 1.25 -2.078125 C 0.84375 -2.078125 0.84375 -1.859375 0.84375 -1.609375 L 0.84375 -0.375 C 0.84375 -0.1875 0.84375 0.078125 1.1875 0.078125 C 1.328125 0.078125 1.4375 0.078125 1.609375 -0.421875 C 2.15625 0.03125 2.78125 0.078125 3.15625 0.078125 C 5.359375 0.078125 5.359375 -1.359375 5.359375 -1.484375 C 5.359375 -2.71875 3.890625 -2.96875 3.3125 -3.0625 C 2.265625 -3.234375 1.546875 -3.359375 1.546875 -3.859375 C 1.546875 -4.1875 1.90625 -4.5625 3.03125 -4.5625 C 4.171875 -4.5625 4.21875 -4.03125 4.25 -3.71875 C 4.265625 -3.484375 4.484375 -3.4375 4.625 -3.4375 C 5.015625 -3.4375 5.015625 -3.65625 5.015625 -3.890625 Z M 5.015625 -4.8125 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-4">
|
||||
<path style="stroke:none;" d="M 4.953125 -3.265625 C 5.109375 -3.265625 5.484375 -3.265625 5.484375 -3.640625 C 5.484375 -4.046875 5.109375 -4.046875 4.953125 -4.046875 L 1.1875 -4.046875 C 1.046875 -4.046875 0.65625 -4.046875 0.65625 -3.65625 C 0.65625 -3.265625 1.03125 -3.265625 1.1875 -3.265625 Z M 4.953125 -3.265625 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-5">
|
||||
<path style="stroke:none;" d="M 2.578125 -2.265625 C 2.578125 -3.6875 3.578125 -4.53125 4.609375 -4.53125 C 4.65625 -4.53125 4.734375 -4.53125 4.796875 -4.515625 C 4.828125 -4.09375 5.15625 -4.046875 5.25 -4.046875 C 5.515625 -4.046875 5.71875 -4.25 5.71875 -4.515625 C 5.71875 -5.03125 5.21875 -5.21875 4.609375 -5.21875 C 3.8125 -5.21875 3.125 -4.859375 2.578125 -4.203125 L 2.578125 -4.65625 C 2.578125 -5.03125 2.515625 -5.15625 2.109375 -5.15625 L 0.890625 -5.15625 C 0.734375 -5.15625 0.421875 -5.15625 0.421875 -4.8125 C 0.421875 -4.453125 0.734375 -4.453125 0.890625 -4.453125 L 1.8125 -4.453125 L 1.8125 -0.6875 L 0.890625 -0.6875 C 0.734375 -0.6875 0.421875 -0.6875 0.421875 -0.34375 C 0.421875 0 0.734375 0 0.890625 0 L 3.84375 0 C 4 0 4.3125 0 4.3125 -0.34375 C 4.3125 -0.6875 4 -0.6875 3.84375 -0.6875 L 2.578125 -0.6875 Z M 2.578125 -2.265625 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-6">
|
||||
<path style="stroke:none;" d="M 4.96875 -2.296875 C 5.21875 -2.296875 5.453125 -2.296875 5.453125 -2.734375 C 5.453125 -4.140625 4.65625 -5.265625 3.171875 -5.265625 C 1.78125 -5.265625 0.671875 -4.0625 0.671875 -2.609375 C 0.671875 -1.09375 1.875 0.078125 3.34375 0.078125 C 4.890625 0.078125 5.453125 -0.984375 5.453125 -1.296875 C 5.453125 -1.375 5.421875 -1.640625 5.0625 -1.640625 C 4.828125 -1.640625 4.75 -1.546875 4.6875 -1.375 C 4.390625 -0.6875 3.609375 -0.625 3.375 -0.625 C 2.390625 -0.625 1.609375 -1.375 1.46875 -2.296875 Z M 1.484375 -2.953125 C 1.640625 -3.96875 2.421875 -4.5625 3.171875 -4.5625 C 4.359375 -4.5625 4.609375 -3.546875 4.65625 -2.953125 Z M 1.484375 -2.953125 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-7">
|
||||
<path style="stroke:none;" d="M 3.46875 -6.8125 C 3.46875 -7.1875 3.390625 -7.296875 2.984375 -7.296875 L 1.234375 -7.296875 C 1.0625 -7.296875 0.75 -7.296875 0.75 -6.953125 C 0.75 -6.609375 1.0625 -6.609375 1.234375 -6.609375 L 2.6875 -6.609375 L 2.6875 -0.6875 L 1.234375 -0.6875 C 1.0625 -0.6875 0.75 -0.6875 0.75 -0.34375 C 0.75 0 1.0625 0 1.234375 0 L 4.921875 0 C 5.09375 0 5.40625 0 5.40625 -0.34375 C 5.40625 -0.6875 5.09375 -0.6875 4.921875 -0.6875 L 3.46875 -0.6875 Z M 3.46875 -6.8125 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-8">
|
||||
<path style="stroke:none;" d="M 4.953125 -3.390625 C 4.953125 -4.296875 4.265625 -5.265625 2.65625 -5.265625 C 2.15625 -5.265625 0.984375 -5.265625 0.984375 -4.4375 C 0.984375 -4.109375 1.21875 -3.9375 1.484375 -3.9375 C 1.546875 -3.9375 1.953125 -3.953125 1.953125 -4.453125 C 1.953125 -4.515625 1.96875 -4.53125 2.21875 -4.546875 C 2.359375 -4.5625 2.515625 -4.5625 2.671875 -4.5625 C 2.9375 -4.5625 3.34375 -4.5625 3.734375 -4.265625 C 4.171875 -3.9375 4.171875 -3.59375 4.171875 -3.25 C 3.46875 -3.234375 2.765625 -3.171875 2.03125 -2.9375 C 1.4375 -2.734375 0.671875 -2.3125 0.671875 -1.5 C 0.671875 -0.640625 1.421875 0.078125 2.53125 0.078125 C 2.921875 0.078125 3.65625 0.015625 4.28125 -0.421875 C 4.515625 -0.03125 5.109375 0 5.5625 0 C 5.859375 0 6.140625 0 6.140625 -0.34375 C 6.140625 -0.6875 5.828125 -0.6875 5.671875 -0.6875 C 5.359375 -0.6875 5.109375 -0.71875 4.953125 -0.78125 Z M 4.171875 -1.578125 C 4.171875 -1.296875 4.171875 -1.046875 3.6875 -0.828125 C 3.265625 -0.625 2.703125 -0.625 2.671875 -0.625 C 1.953125 -0.625 1.453125 -1 1.453125 -1.5 C 1.453125 -2.203125 2.71875 -2.609375 4.171875 -2.609375 Z M 4.171875 -1.578125 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-9">
|
||||
<path style="stroke:none;" d="M 5.0625 -4.453125 L 5.375 -4.453125 C 5.546875 -4.453125 5.875 -4.453125 5.875 -4.8125 C 5.875 -5.15625 5.546875 -5.15625 5.375 -5.15625 L 4.0625 -5.15625 C 3.890625 -5.15625 3.578125 -5.15625 3.578125 -4.8125 C 3.578125 -4.453125 3.890625 -4.453125 4.0625 -4.453125 L 4.359375 -4.453125 C 4.03125 -3.484375 3.34375 -1.484375 3.171875 -0.796875 C 3.109375 -1.0625 3.0625 -1.1875 2.9375 -1.515625 L 1.828125 -4.453125 L 2.109375 -4.453125 C 2.265625 -4.453125 2.59375 -4.453125 2.59375 -4.8125 C 2.59375 -5.15625 2.265625 -5.15625 2.109375 -5.15625 L 0.78125 -5.15625 C 0.625 -5.15625 0.296875 -5.15625 0.296875 -4.8125 C 0.296875 -4.453125 0.625 -4.453125 0.78125 -4.453125 L 1.109375 -4.453125 L 2.78125 -0.15625 C 2.828125 -0.03125 2.828125 -0.015625 2.828125 0 C 2.828125 0.03125 2.515625 1.0625 2.34375 1.40625 C 2.265625 1.515625 1.96875 2.078125 1.40625 2.015625 C 1.40625 1.984375 1.453125 1.90625 1.453125 1.78125 C 1.453125 1.5 1.25 1.3125 0.984375 1.3125 C 0.6875 1.3125 0.5 1.515625 0.5 1.796875 C 0.5 2.25 0.890625 2.71875 1.484375 2.71875 C 2.640625 2.71875 3.15625 1.1875 3.1875 1.09375 Z M 5.0625 -4.453125 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph1-0">
|
||||
<path style="stroke:none;" d=""/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph1-1">
|
||||
<path style="stroke:none;" d="M 5.796875 -2.578125 L 5.546875 -2.578125 C 5.4375 -1.5625 5.296875 -0.3125 3.546875 -0.3125 L 2.734375 -0.3125 C 2.265625 -0.3125 2.25 -0.375 2.25 -0.703125 L 2.25 -6.015625 C 2.25 -6.359375 2.25 -6.5 3.1875 -6.5 L 3.515625 -6.5 L 3.515625 -6.8125 C 3.15625 -6.78125 2.25 -6.78125 1.84375 -6.78125 C 1.453125 -6.78125 0.671875 -6.78125 0.328125 -6.8125 L 0.328125 -6.5 L 0.5625 -6.5 C 1.328125 -6.5 1.359375 -6.390625 1.359375 -6.03125 L 1.359375 -0.78125 C 1.359375 -0.421875 1.328125 -0.3125 0.5625 -0.3125 L 0.328125 -0.3125 L 0.328125 0 L 5.515625 0 Z M 5.796875 -2.578125 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph1-2">
|
||||
<path style="stroke:none;" d="M 1.765625 -4.40625 L 0.375 -4.296875 L 0.375 -3.984375 C 1.015625 -3.984375 1.109375 -3.921875 1.109375 -3.4375 L 1.109375 -0.75 C 1.109375 -0.3125 1 -0.3125 0.328125 -0.3125 L 0.328125 0 C 0.640625 -0.015625 1.1875 -0.03125 1.421875 -0.03125 C 1.78125 -0.03125 2.125 -0.015625 2.46875 0 L 2.46875 -0.3125 C 1.796875 -0.3125 1.765625 -0.359375 1.765625 -0.75 Z M 1.796875 -6.140625 C 1.796875 -6.453125 1.5625 -6.671875 1.28125 -6.671875 C 0.96875 -6.671875 0.75 -6.40625 0.75 -6.140625 C 0.75 -5.875 0.96875 -5.609375 1.28125 -5.609375 C 1.5625 -5.609375 1.796875 -5.828125 1.796875 -6.140625 Z M 1.796875 -6.140625 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph1-3">
|
||||
<path style="stroke:none;" d="M 1.71875 -3.765625 L 1.71875 -6.921875 L 0.28125 -6.8125 L 0.28125 -6.5 C 0.984375 -6.5 1.0625 -6.4375 1.0625 -5.9375 L 1.0625 0 L 1.3125 0 C 1.3125 -0.015625 1.390625 -0.15625 1.671875 -0.625 C 1.8125 -0.390625 2.234375 0.109375 2.96875 0.109375 C 4.15625 0.109375 5.1875 -0.875 5.1875 -2.15625 C 5.1875 -3.421875 4.21875 -4.40625 3.078125 -4.40625 C 2.296875 -4.40625 1.875 -3.9375 1.71875 -3.765625 Z M 1.75 -1.140625 L 1.75 -3.1875 C 1.75 -3.375 1.75 -3.390625 1.859375 -3.546875 C 2.25 -4.109375 2.796875 -4.1875 3.03125 -4.1875 C 3.484375 -4.1875 3.84375 -3.921875 4.078125 -3.546875 C 4.34375 -3.140625 4.359375 -2.578125 4.359375 -2.15625 C 4.359375 -1.796875 4.34375 -1.203125 4.0625 -0.75 C 3.84375 -0.4375 3.46875 -0.109375 2.9375 -0.109375 C 2.484375 -0.109375 2.125 -0.34375 1.890625 -0.71875 C 1.75 -0.921875 1.75 -0.953125 1.75 -1.140625 Z M 1.75 -1.140625 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph1-4">
|
||||
<path style="stroke:none;" d="M 1.09375 -3.421875 L 1.09375 -0.75 C 1.09375 -0.3125 0.984375 -0.3125 0.3125 -0.3125 L 0.3125 0 C 0.671875 -0.015625 1.171875 -0.03125 1.453125 -0.03125 C 1.703125 -0.03125 2.21875 -0.015625 2.5625 0 L 2.5625 -0.3125 C 1.890625 -0.3125 1.78125 -0.3125 1.78125 -0.75 L 1.78125 -2.59375 C 1.78125 -3.625 2.5 -4.1875 3.125 -4.1875 C 3.765625 -4.1875 3.875 -3.65625 3.875 -3.078125 L 3.875 -0.75 C 3.875 -0.3125 3.765625 -0.3125 3.09375 -0.3125 L 3.09375 0 C 3.4375 -0.015625 3.953125 -0.03125 4.21875 -0.03125 C 4.46875 -0.03125 5 -0.015625 5.328125 0 L 5.328125 -0.3125 C 4.8125 -0.3125 4.5625 -0.3125 4.5625 -0.609375 L 4.5625 -2.515625 C 4.5625 -3.375 4.5625 -3.671875 4.25 -4.03125 C 4.109375 -4.203125 3.78125 -4.40625 3.203125 -4.40625 C 2.46875 -4.40625 2 -3.984375 1.71875 -3.359375 L 1.71875 -4.40625 L 0.3125 -4.296875 L 0.3125 -3.984375 C 1.015625 -3.984375 1.09375 -3.921875 1.09375 -3.421875 Z M 1.09375 -3.421875 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph1-5">
|
||||
<path style="stroke:none;" d="M 1.75 -4.296875 L 1.75 -5.453125 C 1.75 -6.328125 2.21875 -6.8125 2.65625 -6.8125 C 2.6875 -6.8125 2.84375 -6.8125 2.984375 -6.734375 C 2.875 -6.703125 2.6875 -6.5625 2.6875 -6.3125 C 2.6875 -6.09375 2.84375 -5.890625 3.125 -5.890625 C 3.40625 -5.890625 3.5625 -6.09375 3.5625 -6.328125 C 3.5625 -6.703125 3.1875 -7.03125 2.65625 -7.03125 C 1.96875 -7.03125 1.109375 -6.5 1.109375 -5.4375 L 1.109375 -4.296875 L 0.328125 -4.296875 L 0.328125 -3.984375 L 1.109375 -3.984375 L 1.109375 -0.75 C 1.109375 -0.3125 1 -0.3125 0.34375 -0.3125 L 0.34375 0 C 0.734375 -0.015625 1.203125 -0.03125 1.46875 -0.03125 C 1.875 -0.03125 2.34375 -0.03125 2.734375 0 L 2.734375 -0.3125 L 2.53125 -0.3125 C 1.796875 -0.3125 1.78125 -0.421875 1.78125 -0.78125 L 1.78125 -3.984375 L 2.90625 -3.984375 L 2.90625 -4.296875 Z M 1.75 -4.296875 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph1-6">
|
||||
<path style="stroke:none;" d="M 1.171875 -2.171875 C 1.171875 -3.796875 1.984375 -4.21875 2.515625 -4.21875 C 2.609375 -4.21875 3.234375 -4.203125 3.578125 -3.84375 C 3.171875 -3.8125 3.109375 -3.515625 3.109375 -3.390625 C 3.109375 -3.125 3.296875 -2.9375 3.5625 -2.9375 C 3.828125 -2.9375 4.03125 -3.09375 4.03125 -3.40625 C 4.03125 -4.078125 3.265625 -4.46875 2.5 -4.46875 C 1.25 -4.46875 0.34375 -3.390625 0.34375 -2.15625 C 0.34375 -0.875 1.328125 0.109375 2.484375 0.109375 C 3.8125 0.109375 4.140625 -1.09375 4.140625 -1.1875 C 4.140625 -1.28125 4.03125 -1.28125 4 -1.28125 C 3.921875 -1.28125 3.890625 -1.25 3.875 -1.1875 C 3.59375 -0.265625 2.9375 -0.140625 2.578125 -0.140625 C 2.046875 -0.140625 1.171875 -0.5625 1.171875 -2.171875 Z M 1.171875 -2.171875 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph1-7">
|
||||
<path style="stroke:none;" d="M 0.34375 -6.8125 L 0.34375 -6.5 L 0.59375 -6.5 C 1.359375 -6.5 1.375 -6.390625 1.375 -6.03125 L 1.375 -0.78125 C 1.375 -0.421875 1.359375 -0.3125 0.59375 -0.3125 L 0.34375 -0.3125 L 0.34375 0 L 4 0 C 5.671875 0 7.046875 -1.46875 7.046875 -3.34375 C 7.046875 -5.25 5.703125 -6.8125 4 -6.8125 Z M 2.71875 -0.3125 C 2.25 -0.3125 2.234375 -0.375 2.234375 -0.703125 L 2.234375 -6.09375 C 2.234375 -6.4375 2.25 -6.5 2.71875 -6.5 L 3.71875 -6.5 C 4.34375 -6.5 5.03125 -6.28125 5.53125 -5.578125 C 5.96875 -4.984375 6.046875 -4.125 6.046875 -3.34375 C 6.046875 -2.25 5.859375 -1.640625 5.5 -1.15625 C 5.296875 -0.890625 4.734375 -0.3125 3.734375 -0.3125 Z M 2.71875 -0.3125 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph1-8">
|
||||
<path style="stroke:none;" d="M 1.109375 -2.515625 C 1.171875 -4 2.015625 -4.25 2.359375 -4.25 C 3.375 -4.25 3.484375 -2.90625 3.484375 -2.515625 Z M 1.109375 -2.296875 L 3.890625 -2.296875 C 4.109375 -2.296875 4.140625 -2.296875 4.140625 -2.515625 C 4.140625 -3.5 3.59375 -4.46875 2.359375 -4.46875 C 1.203125 -4.46875 0.28125 -3.4375 0.28125 -2.1875 C 0.28125 -0.859375 1.328125 0.109375 2.46875 0.109375 C 3.6875 0.109375 4.140625 -1 4.140625 -1.1875 C 4.140625 -1.28125 4.0625 -1.3125 4 -1.3125 C 3.921875 -1.3125 3.890625 -1.25 3.875 -1.171875 C 3.53125 -0.140625 2.625 -0.140625 2.53125 -0.140625 C 2.03125 -0.140625 1.640625 -0.4375 1.40625 -0.8125 C 1.109375 -1.28125 1.109375 -1.9375 1.109375 -2.296875 Z M 1.109375 -2.296875 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph1-9">
|
||||
<path style="stroke:none;" d="M 4.140625 -3.3125 C 4.234375 -3.546875 4.40625 -3.984375 5.0625 -3.984375 L 5.0625 -4.296875 C 4.828125 -4.28125 4.546875 -4.265625 4.3125 -4.265625 C 4.078125 -4.265625 3.625 -4.28125 3.453125 -4.296875 L 3.453125 -3.984375 C 3.8125 -3.984375 3.921875 -3.75 3.921875 -3.5625 C 3.921875 -3.46875 3.90625 -3.421875 3.875 -3.3125 L 2.84375 -0.78125 L 1.734375 -3.5625 C 1.671875 -3.6875 1.671875 -3.703125 1.671875 -3.734375 C 1.671875 -3.984375 2.0625 -3.984375 2.25 -3.984375 L 2.25 -4.296875 C 1.9375 -4.28125 1.390625 -4.265625 1.15625 -4.265625 C 0.890625 -4.265625 0.484375 -4.28125 0.1875 -4.296875 L 0.1875 -3.984375 C 0.8125 -3.984375 0.859375 -3.921875 0.984375 -3.625 L 2.421875 -0.078125 C 2.484375 0.0625 2.5 0.109375 2.625 0.109375 C 2.765625 0.109375 2.796875 0.015625 2.84375 -0.078125 Z M 4.140625 -3.3125 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph1-10">
|
||||
<path style="stroke:none;" d="M 2.078125 -1.9375 C 2.296875 -1.890625 3.109375 -1.734375 3.109375 -1.015625 C 3.109375 -0.515625 2.765625 -0.109375 1.984375 -0.109375 C 1.140625 -0.109375 0.78125 -0.671875 0.59375 -1.53125 C 0.5625 -1.65625 0.5625 -1.6875 0.453125 -1.6875 C 0.328125 -1.6875 0.328125 -1.625 0.328125 -1.453125 L 0.328125 -0.125 C 0.328125 0.046875 0.328125 0.109375 0.4375 0.109375 C 0.484375 0.109375 0.5 0.09375 0.6875 -0.09375 C 0.703125 -0.109375 0.703125 -0.125 0.890625 -0.3125 C 1.328125 0.09375 1.78125 0.109375 1.984375 0.109375 C 3.125 0.109375 3.59375 -0.5625 3.59375 -1.28125 C 3.59375 -1.796875 3.296875 -2.109375 3.171875 -2.21875 C 2.84375 -2.546875 2.453125 -2.625 2.03125 -2.703125 C 1.46875 -2.8125 0.8125 -2.9375 0.8125 -3.515625 C 0.8125 -3.875 1.0625 -4.28125 1.921875 -4.28125 C 3.015625 -4.28125 3.078125 -3.375 3.09375 -3.078125 C 3.09375 -2.984375 3.1875 -2.984375 3.203125 -2.984375 C 3.34375 -2.984375 3.34375 -3.03125 3.34375 -3.21875 L 3.34375 -4.234375 C 3.34375 -4.390625 3.34375 -4.46875 3.234375 -4.46875 C 3.1875 -4.46875 3.15625 -4.46875 3.03125 -4.34375 C 3 -4.3125 2.90625 -4.21875 2.859375 -4.1875 C 2.484375 -4.46875 2.078125 -4.46875 1.921875 -4.46875 C 0.703125 -4.46875 0.328125 -3.796875 0.328125 -3.234375 C 0.328125 -2.890625 0.484375 -2.609375 0.75 -2.390625 C 1.078125 -2.140625 1.359375 -2.078125 2.078125 -1.9375 Z M 2.078125 -1.9375 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph1-11">
|
||||
<path style="stroke:none;" d="M 7.1875 -3.375 C 7.1875 -5.40625 5.6875 -7.03125 3.875 -7.03125 C 2.078125 -7.03125 0.5625 -5.4375 0.5625 -3.375 C 0.5625 -1.328125 2.09375 0.21875 3.875 0.21875 C 5.6875 0.21875 7.1875 -1.359375 7.1875 -3.375 Z M 3.875 -0.046875 C 2.921875 -0.046875 1.578125 -0.921875 1.578125 -3.515625 C 1.578125 -6.09375 3.046875 -6.78125 3.875 -6.78125 C 4.734375 -6.78125 6.15625 -6.078125 6.15625 -3.515625 C 6.15625 -0.875 4.796875 -0.046875 3.875 -0.046875 Z M 3.875 -0.046875 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph1-12">
|
||||
<path style="stroke:none;" d="M 1.71875 -3.75 L 1.71875 -4.40625 L 0.28125 -4.296875 L 0.28125 -3.984375 C 0.984375 -3.984375 1.0625 -3.921875 1.0625 -3.484375 L 1.0625 1.171875 C 1.0625 1.625 0.953125 1.625 0.28125 1.625 L 0.28125 1.9375 C 0.625 1.921875 1.140625 1.90625 1.390625 1.90625 C 1.671875 1.90625 2.171875 1.921875 2.515625 1.9375 L 2.515625 1.625 C 1.859375 1.625 1.75 1.625 1.75 1.171875 L 1.75 -0.59375 C 1.796875 -0.421875 2.21875 0.109375 2.96875 0.109375 C 4.15625 0.109375 5.1875 -0.875 5.1875 -2.15625 C 5.1875 -3.421875 4.234375 -4.40625 3.109375 -4.40625 C 2.328125 -4.40625 1.90625 -3.96875 1.71875 -3.75 Z M 1.75 -1.140625 L 1.75 -3.359375 C 2.03125 -3.875 2.515625 -4.15625 3.03125 -4.15625 C 3.765625 -4.15625 4.359375 -3.28125 4.359375 -2.15625 C 4.359375 -0.953125 3.671875 -0.109375 2.9375 -0.109375 C 2.53125 -0.109375 2.15625 -0.3125 1.890625 -0.71875 C 1.75 -0.921875 1.75 -0.9375 1.75 -1.140625 Z M 1.75 -1.140625 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph1-13">
|
||||
<path style="stroke:none;" d="M 2.265625 -3.15625 L 3.953125 -3.15625 C 5.140625 -3.15625 6.21875 -3.953125 6.21875 -4.953125 C 6.21875 -5.9375 5.234375 -6.8125 3.875 -6.8125 L 0.34375 -6.8125 L 0.34375 -6.5 L 0.59375 -6.5 C 1.359375 -6.5 1.375 -6.390625 1.375 -6.03125 L 1.375 -0.78125 C 1.375 -0.421875 1.359375 -0.3125 0.59375 -0.3125 L 0.34375 -0.3125 L 0.34375 0 C 0.703125 -0.03125 1.4375 -0.03125 1.8125 -0.03125 C 2.1875 -0.03125 2.9375 -0.03125 3.296875 0 L 3.296875 -0.3125 L 3.046875 -0.3125 C 2.28125 -0.3125 2.265625 -0.421875 2.265625 -0.78125 Z M 2.234375 -3.40625 L 2.234375 -6.09375 C 2.234375 -6.4375 2.25 -6.5 2.71875 -6.5 L 3.609375 -6.5 C 5.1875 -6.5 5.1875 -5.4375 5.1875 -4.953125 C 5.1875 -4.484375 5.1875 -3.40625 3.609375 -3.40625 Z M 2.234375 -3.40625 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph1-14">
|
||||
<path style="stroke:none;" d="M 2.25 -6.03125 C 2.25 -6.390625 2.265625 -6.5 3.0625 -6.5 L 3.3125 -6.5 L 3.3125 -6.8125 C 2.96875 -6.78125 2.1875 -6.78125 1.796875 -6.78125 C 1.421875 -6.78125 0.625 -6.78125 0.28125 -6.8125 L 0.28125 -6.5 L 0.53125 -6.5 C 1.328125 -6.5 1.359375 -6.390625 1.359375 -6.03125 L 1.359375 -0.78125 C 1.359375 -0.421875 1.328125 -0.3125 0.53125 -0.3125 L 0.28125 -0.3125 L 0.28125 0 C 0.625 -0.03125 1.421875 -0.03125 1.796875 -0.03125 C 2.1875 -0.03125 2.96875 -0.03125 3.3125 0 L 3.3125 -0.3125 L 3.0625 -0.3125 C 2.265625 -0.3125 2.25 -0.421875 2.25 -0.78125 Z M 2.25 -6.03125 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph1-15">
|
||||
<path style="stroke:none;" d="M 0.5625 -3.40625 C 0.5625 -1.34375 2.171875 0.21875 4.03125 0.21875 C 5.65625 0.21875 6.625 -1.171875 6.625 -2.328125 C 6.625 -2.421875 6.625 -2.5 6.5 -2.5 C 6.390625 -2.5 6.390625 -2.4375 6.375 -2.328125 C 6.296875 -0.90625 5.234375 -0.09375 4.140625 -0.09375 C 3.53125 -0.09375 1.578125 -0.421875 1.578125 -3.40625 C 1.578125 -6.375 3.53125 -6.71875 4.140625 -6.71875 C 5.21875 -6.71875 6.109375 -5.8125 6.3125 -4.359375 C 6.328125 -4.21875 6.328125 -4.1875 6.46875 -4.1875 C 6.625 -4.1875 6.625 -4.21875 6.625 -4.421875 L 6.625 -6.78125 C 6.625 -6.953125 6.625 -7.03125 6.515625 -7.03125 C 6.484375 -7.03125 6.4375 -7.03125 6.359375 -6.90625 L 5.859375 -6.171875 C 5.5 -6.53125 4.984375 -7.03125 4.03125 -7.03125 C 2.15625 -7.03125 0.5625 -5.4375 0.5625 -3.40625 Z M 0.5625 -3.40625 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph1-16">
|
||||
<path style="stroke:none;" d="M 6.1875 -5.828125 C 6.328125 -6.203125 6.59375 -6.484375 7.28125 -6.5 L 7.28125 -6.8125 C 6.96875 -6.78125 6.5625 -6.78125 6.3125 -6.78125 C 6.015625 -6.78125 5.4375 -6.796875 5.171875 -6.8125 L 5.171875 -6.5 C 5.6875 -6.484375 5.90625 -6.234375 5.90625 -6 C 5.90625 -5.921875 5.875 -5.859375 5.859375 -5.796875 L 4.03125 -1 L 2.125 -6.03125 C 2.0625 -6.171875 2.0625 -6.1875 2.0625 -6.203125 C 2.0625 -6.5 2.625 -6.5 2.875 -6.5 L 2.875 -6.8125 C 2.515625 -6.78125 1.828125 -6.78125 1.453125 -6.78125 C 0.984375 -6.78125 0.546875 -6.796875 0.1875 -6.8125 L 0.1875 -6.5 C 0.84375 -6.5 1.03125 -6.5 1.171875 -6.125 L 3.484375 0 C 3.546875 0.1875 3.59375 0.21875 3.734375 0.21875 C 3.890625 0.21875 3.921875 0.171875 3.96875 0.03125 Z M 6.1875 -5.828125 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph1-17">
|
||||
<path style="stroke:none;" d="M 1.671875 -3.3125 L 1.671875 -4.40625 L 0.28125 -4.296875 L 0.28125 -3.984375 C 0.984375 -3.984375 1.0625 -3.921875 1.0625 -3.421875 L 1.0625 -0.75 C 1.0625 -0.3125 0.953125 -0.3125 0.28125 -0.3125 L 0.28125 0 C 0.671875 -0.015625 1.140625 -0.03125 1.421875 -0.03125 C 1.8125 -0.03125 2.28125 -0.03125 2.6875 0 L 2.6875 -0.3125 L 2.46875 -0.3125 C 1.734375 -0.3125 1.71875 -0.421875 1.71875 -0.78125 L 1.71875 -2.3125 C 1.71875 -3.296875 2.140625 -4.1875 2.890625 -4.1875 C 2.953125 -4.1875 2.984375 -4.1875 3 -4.171875 C 2.96875 -4.171875 2.765625 -4.046875 2.765625 -3.78125 C 2.765625 -3.515625 2.984375 -3.359375 3.203125 -3.359375 C 3.375 -3.359375 3.625 -3.484375 3.625 -3.796875 C 3.625 -4.109375 3.3125 -4.40625 2.890625 -4.40625 C 2.15625 -4.40625 1.796875 -3.734375 1.671875 -3.3125 Z M 1.671875 -3.3125 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph1-18">
|
||||
<path style="stroke:none;" d="M 1.71875 -3.984375 L 3.15625 -3.984375 L 3.15625 -4.296875 L 1.71875 -4.296875 L 1.71875 -6.125 L 1.46875 -6.125 C 1.46875 -5.3125 1.171875 -4.25 0.1875 -4.203125 L 0.1875 -3.984375 L 1.03125 -3.984375 L 1.03125 -1.234375 C 1.03125 -0.015625 1.96875 0.109375 2.328125 0.109375 C 3.03125 0.109375 3.3125 -0.59375 3.3125 -1.234375 L 3.3125 -1.796875 L 3.0625 -1.796875 L 3.0625 -1.25 C 3.0625 -0.515625 2.765625 -0.140625 2.390625 -0.140625 C 1.71875 -0.140625 1.71875 -1.046875 1.71875 -1.21875 Z M 1.71875 -3.984375 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph1-19">
|
||||
<path style="stroke:none;" d="M 3.890625 -0.78125 L 3.890625 0.109375 L 5.328125 0 L 5.328125 -0.3125 C 4.640625 -0.3125 4.5625 -0.375 4.5625 -0.875 L 4.5625 -4.40625 L 3.09375 -4.296875 L 3.09375 -3.984375 C 3.78125 -3.984375 3.875 -3.921875 3.875 -3.421875 L 3.875 -1.65625 C 3.875 -0.78125 3.390625 -0.109375 2.65625 -0.109375 C 1.828125 -0.109375 1.78125 -0.578125 1.78125 -1.09375 L 1.78125 -4.40625 L 0.3125 -4.296875 L 0.3125 -3.984375 C 1.09375 -3.984375 1.09375 -3.953125 1.09375 -3.078125 L 1.09375 -1.578125 C 1.09375 -0.796875 1.09375 0.109375 2.609375 0.109375 C 3.171875 0.109375 3.609375 -0.171875 3.890625 -0.78125 Z M 3.890625 -0.78125 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph1-20">
|
||||
<path style="stroke:none;" d="M 3.3125 -0.75 C 3.359375 -0.359375 3.625 0.0625 4.09375 0.0625 C 4.3125 0.0625 4.921875 -0.078125 4.921875 -0.890625 L 4.921875 -1.453125 L 4.671875 -1.453125 L 4.671875 -0.890625 C 4.671875 -0.3125 4.421875 -0.25 4.3125 -0.25 C 3.984375 -0.25 3.9375 -0.703125 3.9375 -0.75 L 3.9375 -2.734375 C 3.9375 -3.15625 3.9375 -3.546875 3.578125 -3.921875 C 3.1875 -4.3125 2.6875 -4.46875 2.21875 -4.46875 C 1.390625 -4.46875 0.703125 -4 0.703125 -3.34375 C 0.703125 -3.046875 0.90625 -2.875 1.171875 -2.875 C 1.453125 -2.875 1.625 -3.078125 1.625 -3.328125 C 1.625 -3.453125 1.578125 -3.78125 1.109375 -3.78125 C 1.390625 -4.140625 1.875 -4.25 2.1875 -4.25 C 2.6875 -4.25 3.25 -3.859375 3.25 -2.96875 L 3.25 -2.609375 C 2.734375 -2.578125 2.046875 -2.546875 1.421875 -2.25 C 0.671875 -1.90625 0.421875 -1.390625 0.421875 -0.953125 C 0.421875 -0.140625 1.390625 0.109375 2.015625 0.109375 C 2.671875 0.109375 3.125 -0.296875 3.3125 -0.75 Z M 3.25 -2.390625 L 3.25 -1.390625 C 3.25 -0.453125 2.53125 -0.109375 2.078125 -0.109375 C 1.59375 -0.109375 1.1875 -0.453125 1.1875 -0.953125 C 1.1875 -1.5 1.609375 -2.328125 3.25 -2.390625 Z M 3.25 -2.390625 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph1-21">
|
||||
<path style="stroke:none;" d="M 1.765625 -6.921875 L 0.328125 -6.8125 L 0.328125 -6.5 C 1.03125 -6.5 1.109375 -6.4375 1.109375 -5.9375 L 1.109375 -0.75 C 1.109375 -0.3125 1 -0.3125 0.328125 -0.3125 L 0.328125 0 C 0.65625 -0.015625 1.1875 -0.03125 1.4375 -0.03125 C 1.6875 -0.03125 2.171875 -0.015625 2.546875 0 L 2.546875 -0.3125 C 1.875 -0.3125 1.765625 -0.3125 1.765625 -0.75 Z M 1.765625 -6.921875 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph1-22">
|
||||
<path style="stroke:none;" d="M 3.484375 -3.875 L 2.203125 -4.171875 C 1.578125 -4.328125 1.203125 -4.859375 1.203125 -5.4375 C 1.203125 -6.140625 1.734375 -6.75 2.515625 -6.75 C 4.171875 -6.75 4.390625 -5.109375 4.453125 -4.671875 C 4.46875 -4.609375 4.46875 -4.546875 4.578125 -4.546875 C 4.703125 -4.546875 4.703125 -4.59375 4.703125 -4.78125 L 4.703125 -6.78125 C 4.703125 -6.953125 4.703125 -7.03125 4.59375 -7.03125 C 4.53125 -7.03125 4.515625 -7.015625 4.453125 -6.890625 L 4.09375 -6.328125 C 3.796875 -6.625 3.390625 -7.03125 2.5 -7.03125 C 1.390625 -7.03125 0.5625 -6.15625 0.5625 -5.09375 C 0.5625 -4.265625 1.09375 -3.53125 1.859375 -3.265625 C 1.96875 -3.234375 2.484375 -3.109375 3.1875 -2.9375 C 3.453125 -2.875 3.75 -2.796875 4.03125 -2.4375 C 4.234375 -2.171875 4.34375 -1.84375 4.34375 -1.515625 C 4.34375 -0.8125 3.84375 -0.09375 3 -0.09375 C 2.71875 -0.09375 1.953125 -0.140625 1.421875 -0.625 C 0.84375 -1.171875 0.8125 -1.796875 0.8125 -2.15625 C 0.796875 -2.265625 0.71875 -2.265625 0.6875 -2.265625 C 0.5625 -2.265625 0.5625 -2.1875 0.5625 -2.015625 L 0.5625 -0.015625 C 0.5625 0.15625 0.5625 0.21875 0.671875 0.21875 C 0.734375 0.21875 0.75 0.203125 0.8125 0.09375 C 0.8125 0.078125 0.84375 0.046875 1.171875 -0.484375 C 1.484375 -0.140625 2.125 0.21875 3.015625 0.21875 C 4.171875 0.21875 4.96875 -0.75 4.96875 -1.859375 C 4.96875 -2.84375 4.3125 -3.671875 3.484375 -3.875 Z M 3.484375 -3.875 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph1-23">
|
||||
<path style="stroke:none;" d="M 1.09375 -3.421875 L 1.09375 -0.75 C 1.09375 -0.3125 0.984375 -0.3125 0.3125 -0.3125 L 0.3125 0 C 0.671875 -0.015625 1.171875 -0.03125 1.453125 -0.03125 C 1.703125 -0.03125 2.21875 -0.015625 2.5625 0 L 2.5625 -0.3125 C 1.890625 -0.3125 1.78125 -0.3125 1.78125 -0.75 L 1.78125 -2.59375 C 1.78125 -3.625 2.5 -4.1875 3.125 -4.1875 C 3.765625 -4.1875 3.875 -3.65625 3.875 -3.078125 L 3.875 -0.75 C 3.875 -0.3125 3.765625 -0.3125 3.09375 -0.3125 L 3.09375 0 C 3.4375 -0.015625 3.953125 -0.03125 4.21875 -0.03125 C 4.46875 -0.03125 5 -0.015625 5.328125 0 L 5.328125 -0.3125 C 4.671875 -0.3125 4.5625 -0.3125 4.5625 -0.75 L 4.5625 -2.59375 C 4.5625 -3.625 5.265625 -4.1875 5.90625 -4.1875 C 6.53125 -4.1875 6.640625 -3.65625 6.640625 -3.078125 L 6.640625 -0.75 C 6.640625 -0.3125 6.53125 -0.3125 5.859375 -0.3125 L 5.859375 0 C 6.203125 -0.015625 6.71875 -0.03125 6.984375 -0.03125 C 7.25 -0.03125 7.765625 -0.015625 8.109375 0 L 8.109375 -0.3125 C 7.59375 -0.3125 7.34375 -0.3125 7.328125 -0.609375 L 7.328125 -2.515625 C 7.328125 -3.375 7.328125 -3.671875 7.015625 -4.03125 C 6.875 -4.203125 6.546875 -4.40625 5.96875 -4.40625 C 5.140625 -4.40625 4.6875 -3.8125 4.53125 -3.421875 C 4.390625 -4.296875 3.65625 -4.40625 3.203125 -4.40625 C 2.46875 -4.40625 2 -3.984375 1.71875 -3.359375 L 1.71875 -4.40625 L 0.3125 -4.296875 L 0.3125 -3.984375 C 1.015625 -3.984375 1.09375 -3.921875 1.09375 -3.421875 Z M 1.09375 -3.421875 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph1-24">
|
||||
<path style="stroke:none;" d="M 3.78125 -0.546875 L 3.78125 0.109375 L 5.25 0 L 5.25 -0.3125 C 4.5625 -0.3125 4.46875 -0.375 4.46875 -0.875 L 4.46875 -6.921875 L 3.046875 -6.8125 L 3.046875 -6.5 C 3.734375 -6.5 3.8125 -6.4375 3.8125 -5.9375 L 3.8125 -3.78125 C 3.53125 -4.140625 3.09375 -4.40625 2.5625 -4.40625 C 1.390625 -4.40625 0.34375 -3.421875 0.34375 -2.140625 C 0.34375 -0.875 1.3125 0.109375 2.453125 0.109375 C 3.09375 0.109375 3.53125 -0.234375 3.78125 -0.546875 Z M 3.78125 -3.21875 L 3.78125 -1.171875 C 3.78125 -1 3.78125 -0.984375 3.671875 -0.8125 C 3.375 -0.328125 2.9375 -0.109375 2.5 -0.109375 C 2.046875 -0.109375 1.6875 -0.375 1.453125 -0.75 C 1.203125 -1.15625 1.171875 -1.71875 1.171875 -2.140625 C 1.171875 -2.5 1.1875 -3.09375 1.46875 -3.546875 C 1.6875 -3.859375 2.0625 -4.1875 2.609375 -4.1875 C 2.953125 -4.1875 3.375 -4.03125 3.671875 -3.59375 C 3.78125 -3.421875 3.78125 -3.40625 3.78125 -3.21875 Z M 3.78125 -3.21875 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph1-25">
|
||||
<path style="stroke:none;" d="M 2.234375 -3.515625 L 2.234375 -6.09375 C 2.234375 -6.328125 2.234375 -6.453125 2.453125 -6.484375 C 2.546875 -6.5 2.84375 -6.5 3.046875 -6.5 C 3.9375 -6.5 5.046875 -6.453125 5.046875 -5.015625 C 5.046875 -4.328125 4.8125 -3.515625 3.34375 -3.515625 Z M 4.34375 -3.390625 C 5.296875 -3.625 6.078125 -4.234375 6.078125 -5.015625 C 6.078125 -5.96875 4.9375 -6.8125 3.484375 -6.8125 L 0.34375 -6.8125 L 0.34375 -6.5 L 0.59375 -6.5 C 1.359375 -6.5 1.375 -6.390625 1.375 -6.03125 L 1.375 -0.78125 C 1.375 -0.421875 1.359375 -0.3125 0.59375 -0.3125 L 0.34375 -0.3125 L 0.34375 0 C 0.703125 -0.03125 1.421875 -0.03125 1.796875 -0.03125 C 2.1875 -0.03125 2.90625 -0.03125 3.265625 0 L 3.265625 -0.3125 L 3.015625 -0.3125 C 2.25 -0.3125 2.234375 -0.421875 2.234375 -0.78125 L 2.234375 -3.296875 L 3.375 -3.296875 C 3.53125 -3.296875 3.953125 -3.296875 4.3125 -2.953125 C 4.6875 -2.609375 4.6875 -2.296875 4.6875 -1.625 C 4.6875 -0.984375 4.6875 -0.578125 5.09375 -0.203125 C 5.5 0.15625 6.046875 0.21875 6.34375 0.21875 C 7.125 0.21875 7.296875 -0.59375 7.296875 -0.875 C 7.296875 -0.9375 7.296875 -1.046875 7.171875 -1.046875 C 7.0625 -1.046875 7.0625 -0.953125 7.046875 -0.890625 C 6.984375 -0.171875 6.640625 0 6.390625 0 C 5.90625 0 5.828125 -0.515625 5.6875 -1.4375 L 5.546875 -2.234375 C 5.375 -2.875 4.890625 -3.203125 4.34375 -3.390625 Z M 4.34375 -3.390625 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph1-26">
|
||||
<path style="stroke:none;" d="M 3.96875 -6.9375 C 3.921875 -7.0625 3.890625 -7.140625 3.734375 -7.140625 C 3.578125 -7.140625 3.546875 -7.078125 3.5 -6.9375 L 1.4375 -0.984375 C 1.25 -0.46875 0.859375 -0.3125 0.3125 -0.3125 L 0.3125 0 C 0.546875 -0.015625 0.984375 -0.03125 1.328125 -0.03125 C 1.640625 -0.03125 2.15625 -0.015625 2.484375 0 L 2.484375 -0.3125 C 1.984375 -0.3125 1.734375 -0.5625 1.734375 -0.8125 C 1.734375 -0.84375 1.75 -0.953125 1.75 -0.96875 L 2.21875 -2.265625 L 4.671875 -2.265625 L 5.203125 -0.75 C 5.21875 -0.703125 5.234375 -0.640625 5.234375 -0.609375 C 5.234375 -0.3125 4.671875 -0.3125 4.40625 -0.3125 L 4.40625 0 C 4.765625 -0.03125 5.46875 -0.03125 5.84375 -0.03125 C 6.265625 -0.03125 6.734375 -0.015625 7.140625 0 L 7.140625 -0.3125 L 6.96875 -0.3125 C 6.375 -0.3125 6.234375 -0.375 6.125 -0.703125 Z M 3.4375 -5.828125 L 4.5625 -2.578125 L 2.328125 -2.578125 Z M 3.4375 -5.828125 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph1-27">
|
||||
<path style="stroke:none;" d="M 4.6875 -2.140625 C 4.6875 -3.40625 3.703125 -4.46875 2.5 -4.46875 C 1.25 -4.46875 0.28125 -3.375 0.28125 -2.140625 C 0.28125 -0.84375 1.3125 0.109375 2.484375 0.109375 C 3.6875 0.109375 4.6875 -0.875 4.6875 -2.140625 Z M 2.5 -0.140625 C 2.0625 -0.140625 1.625 -0.34375 1.359375 -0.8125 C 1.109375 -1.25 1.109375 -1.859375 1.109375 -2.21875 C 1.109375 -2.609375 1.109375 -3.140625 1.34375 -3.578125 C 1.609375 -4.03125 2.078125 -4.25 2.484375 -4.25 C 2.921875 -4.25 3.34375 -4.03125 3.609375 -3.59375 C 3.875 -3.171875 3.875 -2.59375 3.875 -2.21875 C 3.875 -1.859375 3.875 -1.3125 3.65625 -0.875 C 3.421875 -0.421875 2.984375 -0.140625 2.5 -0.140625 Z M 2.5 -0.140625 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph1-28">
|
||||
<path style="stroke:none;" d="M 1.359375 -0.78125 C 1.359375 -0.421875 1.328125 -0.3125 0.5625 -0.3125 L 0.328125 -0.3125 L 0.328125 0 L 6.078125 0 L 6.5 -2.578125 L 6.25 -2.578125 C 6 -1.03125 5.765625 -0.3125 4.0625 -0.3125 L 2.734375 -0.3125 C 2.265625 -0.3125 2.25 -0.375 2.25 -0.703125 L 2.25 -3.375 L 3.140625 -3.375 C 4.109375 -3.375 4.21875 -3.046875 4.21875 -2.203125 L 4.46875 -2.203125 L 4.46875 -4.84375 L 4.21875 -4.84375 C 4.21875 -3.984375 4.109375 -3.671875 3.140625 -3.671875 L 2.25 -3.671875 L 2.25 -6.078125 C 2.25 -6.40625 2.265625 -6.46875 2.734375 -6.46875 L 4.015625 -6.46875 C 5.546875 -6.46875 5.8125 -5.921875 5.96875 -4.53125 L 6.21875 -4.53125 L 5.9375 -6.78125 L 0.328125 -6.78125 L 0.328125 -6.46875 L 0.5625 -6.46875 C 1.328125 -6.46875 1.359375 -6.359375 1.359375 -6 Z M 1.359375 -0.78125 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph1-29">
|
||||
<path style="stroke:none;" d="M 2.75 -1.859375 L 2.75 -2.4375 L 0.109375 -2.4375 L 0.109375 -1.859375 Z M 2.75 -1.859375 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph1-30">
|
||||
<path style="stroke:none;" d="M 5.796875 -2.296875 C 5.796875 -0.890625 4.828125 -0.09375 3.890625 -0.09375 C 3.421875 -0.09375 2.25 -0.34375 2.25 -2.234375 L 2.25 -6.03125 C 2.25 -6.390625 2.265625 -6.5 3.03125 -6.5 L 3.265625 -6.5 L 3.265625 -6.8125 C 2.921875 -6.78125 2.1875 -6.78125 1.796875 -6.78125 C 1.421875 -6.78125 0.671875 -6.78125 0.328125 -6.8125 L 0.328125 -6.5 L 0.5625 -6.5 C 1.328125 -6.5 1.359375 -6.390625 1.359375 -6.03125 L 1.359375 -2.265625 C 1.359375 -0.875 2.515625 0.21875 3.875 0.21875 C 5.015625 0.21875 5.90625 -0.703125 6.078125 -1.84375 C 6.109375 -2.046875 6.109375 -2.140625 6.109375 -2.53125 L 6.109375 -5.71875 C 6.109375 -6.046875 6.109375 -6.5 7.140625 -6.5 L 7.140625 -6.8125 C 6.78125 -6.796875 6.296875 -6.78125 5.96875 -6.78125 C 5.609375 -6.78125 5.140625 -6.796875 4.78125 -6.8125 L 4.78125 -6.5 C 5.796875 -6.5 5.796875 -6.03125 5.796875 -5.765625 Z M 5.796875 -2.296875 "/>
|
||||
</symbol>
|
||||
</g>
|
||||
<clipPath id="clip1">
|
||||
<path d="M 0 0 L 423 0 L 423 67.207031 L 0 67.207031 Z M 0 0 "/>
|
||||
</clipPath>
|
||||
<clipPath id="clip2">
|
||||
<path d="M 21 0 L 455.980469 0 L 455.980469 67.207031 L 21 67.207031 Z M 21 0 "/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
<g id="surface1">
|
||||
<g clip-path="url(#clip1)" clip-rule="nonzero">
|
||||
<path style="fill:none;stroke-width:14.17339;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(76.96991%,79.873657%,90.252686%);stroke-opacity:1;stroke-miterlimit:10;" d="M -0.0013125 0.248 C -36.997406 0.248 -54.556 25.513625 -91.556 25.513625 " transform="matrix(1,0,0,-1,221.681,32.873)"/>
|
||||
<path style="fill:none;stroke-width:14.17339;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(76.96991%,79.873657%,90.252686%);stroke-opacity:1;stroke-miterlimit:10;" d="M -0.0013125 0.248 C -35.981781 0.248 -55.571625 8.505813 -91.556 8.505813 " transform="matrix(1,0,0,-1,221.681,32.873)"/>
|
||||
<path style="fill:none;stroke-width:14.17339;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(76.96991%,79.873657%,90.252686%);stroke-opacity:1;stroke-miterlimit:10;" d="M -0.0013125 0.248 C -35.981781 0.248 -55.571625 -8.505906 -91.556 -8.505906 " transform="matrix(1,0,0,-1,221.681,32.873)"/>
|
||||
<path style="fill:none;stroke-width:14.17339;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(76.96991%,79.873657%,90.252686%);stroke-opacity:1;stroke-miterlimit:10;" d="M -0.0013125 0.248 C -37.14975 0.248 -54.403656 -25.513719 -91.556 -25.513719 " transform="matrix(1,0,0,-1,221.681,32.873)"/>
|
||||
</g>
|
||||
<g clip-path="url(#clip2)" clip-rule="nonzero">
|
||||
<path style="fill:none;stroke-width:14.17339;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(76.96991%,79.873657%,90.252686%);stroke-opacity:1;stroke-miterlimit:10;" d="M -0.0013125 0.248 C 36.998687 0.248 54.553375 25.513625 91.553375 25.513625 " transform="matrix(1,0,0,-1,221.681,32.873)"/>
|
||||
<path style="fill:none;stroke-width:14.17339;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(76.96991%,79.873657%,90.252686%);stroke-opacity:1;stroke-miterlimit:10;" d="M -0.0013125 0.248 C 35.983062 0.248 55.569 8.505813 91.553375 8.505813 " transform="matrix(1,0,0,-1,221.681,32.873)"/>
|
||||
<path style="fill:none;stroke-width:14.17339;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(76.96991%,79.873657%,90.252686%);stroke-opacity:1;stroke-miterlimit:10;" d="M -0.0013125 0.248 C 35.983062 0.248 55.569 -8.505906 91.553375 -8.505906 " transform="matrix(1,0,0,-1,221.681,32.873)"/>
|
||||
<path style="fill:none;stroke-width:14.17339;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(76.96991%,79.873657%,90.252686%);stroke-opacity:1;stroke-miterlimit:10;" d="M -0.0013125 0.248 C 37.151031 0.248 54.404937 -25.513719 91.553375 -25.513719 " transform="matrix(1,0,0,-1,221.681,32.873)"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph0-1" x="190.922" y="35.197"/>
|
||||
<use xlink:href="#glyph0-2" x="197.074146" y="35.197"/>
|
||||
<use xlink:href="#glyph0-3" x="203.226292" y="35.197"/>
|
||||
<use xlink:href="#glyph0-2" x="209.378438" y="35.197"/>
|
||||
<use xlink:href="#glyph0-4" x="215.530584" y="35.197"/>
|
||||
<use xlink:href="#glyph0-5" x="221.68273" y="35.197"/>
|
||||
<use xlink:href="#glyph0-6" x="227.834876" y="35.197"/>
|
||||
<use xlink:href="#glyph0-7" x="233.987021" y="35.197"/>
|
||||
<use xlink:href="#glyph0-8" x="240.139167" y="35.197"/>
|
||||
<use xlink:href="#glyph0-9" x="246.291313" y="35.197"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph1-1" x="317.336" y="10.82"/>
|
||||
<use xlink:href="#glyph1-2" x="323.562625" y="10.82"/>
|
||||
<use xlink:href="#glyph1-3" x="326.330235" y="10.82"/>
|
||||
<use xlink:href="#glyph1-4" x="331.865456" y="10.82"/>
|
||||
<use xlink:href="#glyph1-5" x="337.400676" y="10.82"/>
|
||||
<use xlink:href="#glyph1-6" x="340.445247" y="10.82"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph1-7" x="348.190172" y="10.82"/>
|
||||
<use xlink:href="#glyph1-8" x="355.800602" y="10.82"/>
|
||||
<use xlink:href="#glyph1-9" x="360.227982" y="10.82"/>
|
||||
<use xlink:href="#glyph1-2" x="365.486242" y="10.82"/>
|
||||
<use xlink:href="#glyph1-6" x="368.253852" y="10.82"/>
|
||||
<use xlink:href="#glyph1-8" x="372.681232" y="10.82"/>
|
||||
<use xlink:href="#glyph1-10" x="377.108611" y="10.82"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph1-11" x="317.336" y="26.804"/>
|
||||
<use xlink:href="#glyph1-12" x="325.08491" y="26.804"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph1-8" x="330.899084" y="26.804"/>
|
||||
<use xlink:href="#glyph1-4" x="335.326463" y="26.804"/>
|
||||
<use xlink:href="#glyph1-13" x="340.861684" y="26.804"/>
|
||||
<use xlink:href="#glyph1-14" x="347.642229" y="26.804"/>
|
||||
<use xlink:href="#glyph1-15" x="351.239724" y="26.804"/>
|
||||
<use xlink:href="#glyph1-15" x="358.434714" y="26.804"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph1-16" x="317.336" y="44.836"/>
|
||||
<use xlink:href="#glyph1-2" x="324.80795" y="44.836"/>
|
||||
<use xlink:href="#glyph1-17" x="327.57556" y="44.836"/>
|
||||
<use xlink:href="#glyph1-18" x="331.477911" y="44.836"/>
|
||||
<use xlink:href="#glyph1-19" x="335.352366" y="44.836"/>
|
||||
<use xlink:href="#glyph1-20" x="340.887586" y="44.836"/>
|
||||
<use xlink:href="#glyph1-21" x="345.868886" y="44.836"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph1-22" x="351.954042" y="44.836"/>
|
||||
<use xlink:href="#glyph1-23" x="357.489263" y="44.836"/>
|
||||
<use xlink:href="#glyph1-20" x="365.791098" y="44.836"/>
|
||||
<use xlink:href="#glyph1-17" x="370.772398" y="44.836"/>
|
||||
<use xlink:href="#glyph1-18" x="374.674748" y="44.836"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph1-15" x="381.866749" y="44.836"/>
|
||||
<use xlink:href="#glyph1-20" x="389.061739" y="44.836"/>
|
||||
<use xlink:href="#glyph1-17" x="394.043039" y="44.836"/>
|
||||
<use xlink:href="#glyph1-24" x="397.945389" y="44.836"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph1-25" x="406.808118" y="44.836"/>
|
||||
<use xlink:href="#glyph1-8" x="414.141588" y="44.836"/>
|
||||
<use xlink:href="#glyph1-20" x="418.568967" y="44.836"/>
|
||||
<use xlink:href="#glyph1-24" x="423.550267" y="44.836"/>
|
||||
<use xlink:href="#glyph1-8" x="429.085488" y="44.836"/>
|
||||
<use xlink:href="#glyph1-17" x="433.512867" y="44.836"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph1-26" x="317.336" y="61.843"/>
|
||||
<use xlink:href="#glyph1-4" x="324.80795" y="61.843"/>
|
||||
<use xlink:href="#glyph1-24" x="330.343171" y="61.843"/>
|
||||
<use xlink:href="#glyph1-17" x="335.878391" y="61.843"/>
|
||||
<use xlink:href="#glyph1-27" x="339.780742" y="61.843"/>
|
||||
<use xlink:href="#glyph1-2" x="344.762042" y="61.843"/>
|
||||
<use xlink:href="#glyph1-24" x="347.529652" y="61.843"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph1-22" x="356.382418" y="61.843"/>
|
||||
<use xlink:href="#glyph1-23" x="361.917639" y="61.843"/>
|
||||
<use xlink:href="#glyph1-20" x="370.219473" y="61.843"/>
|
||||
<use xlink:href="#glyph1-17" x="375.200773" y="61.843"/>
|
||||
<use xlink:href="#glyph1-18" x="379.103124" y="61.843"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph1-15" x="386.295125" y="61.843"/>
|
||||
<use xlink:href="#glyph1-20" x="393.490114" y="61.843"/>
|
||||
<use xlink:href="#glyph1-17" x="398.471414" y="61.843"/>
|
||||
<use xlink:href="#glyph1-24" x="402.373765" y="61.843"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph1-28" x="411.236494" y="61.843"/>
|
||||
<use xlink:href="#glyph1-23" x="418.017039" y="61.843"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph1-19" x="426.039921" y="61.843"/>
|
||||
<use xlink:href="#glyph1-21" x="431.575142" y="61.843"/>
|
||||
<use xlink:href="#glyph1-20" x="434.342752" y="61.843"/>
|
||||
<use xlink:href="#glyph1-18" x="439.324052" y="61.843"/>
|
||||
<use xlink:href="#glyph1-27" x="443.198507" y="61.843"/>
|
||||
<use xlink:href="#glyph1-17" x="448.179807" y="61.843"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph1-15" x="8.855" y="10.82"/>
|
||||
<use xlink:href="#glyph1-27" x="16.04999" y="10.82"/>
|
||||
<use xlink:href="#glyph1-4" x="21.03129" y="10.82"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph1-18" x="26.287557" y="10.82"/>
|
||||
<use xlink:href="#glyph1-20" x="30.162013" y="10.82"/>
|
||||
<use xlink:href="#glyph1-6" x="35.143313" y="10.82"/>
|
||||
<use xlink:href="#glyph1-18" x="39.570692" y="10.82"/>
|
||||
<use xlink:href="#glyph1-29" x="43.445147" y="10.82"/>
|
||||
<use xlink:href="#glyph1-3" x="46.765682" y="10.82"/>
|
||||
<use xlink:href="#glyph1-20" x="52.300902" y="10.82"/>
|
||||
<use xlink:href="#glyph1-10" x="57.282202" y="10.82"/>
|
||||
<use xlink:href="#glyph1-8" x="61.211452" y="10.82"/>
|
||||
<use xlink:href="#glyph1-24" x="65.638831" y="10.82"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph1-22" x="74.50156" y="10.82"/>
|
||||
<use xlink:href="#glyph1-23" x="80.036781" y="10.82"/>
|
||||
<use xlink:href="#glyph1-20" x="88.338615" y="10.82"/>
|
||||
<use xlink:href="#glyph1-17" x="93.319915" y="10.82"/>
|
||||
<use xlink:href="#glyph1-18" x="97.222266" y="10.82"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph1-15" x="104.414267" y="10.82"/>
|
||||
<use xlink:href="#glyph1-20" x="111.609256" y="10.82"/>
|
||||
<use xlink:href="#glyph1-17" x="116.590556" y="10.82"/>
|
||||
<use xlink:href="#glyph1-24" x="120.492907" y="10.82"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph1-15" x="18.209" y="27.828"/>
|
||||
<use xlink:href="#glyph1-27" x="25.40399" y="27.828"/>
|
||||
<use xlink:href="#glyph1-4" x="30.38529" y="27.828"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph1-18" x="35.641557" y="27.828"/>
|
||||
<use xlink:href="#glyph1-20" x="39.516013" y="27.828"/>
|
||||
<use xlink:href="#glyph1-6" x="44.497313" y="27.828"/>
|
||||
<use xlink:href="#glyph1-18" x="48.924692" y="27.828"/>
|
||||
<use xlink:href="#glyph1-29" x="52.799147" y="27.828"/>
|
||||
<use xlink:href="#glyph1-21" x="56.119682" y="27.828"/>
|
||||
<use xlink:href="#glyph1-8" x="58.887292" y="27.828"/>
|
||||
<use xlink:href="#glyph1-10" x="63.314672" y="27.828"/>
|
||||
<use xlink:href="#glyph1-10" x="67.243921" y="27.828"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph1-22" x="74.500679" y="27.828"/>
|
||||
<use xlink:href="#glyph1-23" x="80.035899" y="27.828"/>
|
||||
<use xlink:href="#glyph1-20" x="88.337734" y="27.828"/>
|
||||
<use xlink:href="#glyph1-17" x="93.319034" y="27.828"/>
|
||||
<use xlink:href="#glyph1-18" x="97.221384" y="27.828"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph1-15" x="104.413385" y="27.828"/>
|
||||
<use xlink:href="#glyph1-20" x="111.608375" y="27.828"/>
|
||||
<use xlink:href="#glyph1-17" x="116.589675" y="27.828"/>
|
||||
<use xlink:href="#glyph1-24" x="120.492025" y="27.828"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph1-25" x="3.902" y="61.843"/>
|
||||
<use xlink:href="#glyph1-8" x="11.23547" y="61.843"/>
|
||||
<use xlink:href="#glyph1-23" x="15.662849" y="61.843"/>
|
||||
<use xlink:href="#glyph1-27" x="23.964684" y="61.843"/>
|
||||
<use xlink:href="#glyph1-18" x="28.945984" y="61.843"/>
|
||||
<use xlink:href="#glyph1-8" x="32.820439" y="61.843"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph1-22" x="40.565364" y="61.843"/>
|
||||
<use xlink:href="#glyph1-23" x="46.100585" y="61.843"/>
|
||||
<use xlink:href="#glyph1-20" x="54.402419" y="61.843"/>
|
||||
<use xlink:href="#glyph1-17" x="59.383719" y="61.843"/>
|
||||
<use xlink:href="#glyph1-18" x="63.28607" y="61.843"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph1-15" x="70.488033" y="61.843"/>
|
||||
<use xlink:href="#glyph1-20" x="77.683023" y="61.843"/>
|
||||
<use xlink:href="#glyph1-17" x="82.664323" y="61.843"/>
|
||||
<use xlink:href="#glyph1-24" x="86.566674" y="61.843"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph1-25" x="95.41944" y="61.843"/>
|
||||
<use xlink:href="#glyph1-8" x="102.75291" y="61.843"/>
|
||||
<use xlink:href="#glyph1-20" x="107.180289" y="61.843"/>
|
||||
<use xlink:href="#glyph1-24" x="112.161589" y="61.843"/>
|
||||
<use xlink:href="#glyph1-8" x="117.69681" y="61.843"/>
|
||||
<use xlink:href="#glyph1-17" x="122.124189" y="61.843"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph1-16" x="39.878" y="44.836"/>
|
||||
<use xlink:href="#glyph1-2" x="47.34995" y="44.836"/>
|
||||
<use xlink:href="#glyph1-17" x="50.11756" y="44.836"/>
|
||||
<use xlink:href="#glyph1-18" x="54.019911" y="44.836"/>
|
||||
<use xlink:href="#glyph1-19" x="57.894366" y="44.836"/>
|
||||
<use xlink:href="#glyph1-20" x="63.429586" y="44.836"/>
|
||||
<use xlink:href="#glyph1-21" x="68.410886" y="44.836"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph1-22" x="74.496042" y="44.836"/>
|
||||
<use xlink:href="#glyph1-23" x="80.031263" y="44.836"/>
|
||||
<use xlink:href="#glyph1-20" x="88.333098" y="44.836"/>
|
||||
<use xlink:href="#glyph1-17" x="93.314398" y="44.836"/>
|
||||
<use xlink:href="#glyph1-18" x="97.216748" y="44.836"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph1-15" x="104.408749" y="44.836"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph1-20" x="111.613701" y="44.836"/>
|
||||
<use xlink:href="#glyph1-17" x="116.595001" y="44.836"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph1-24" x="120.487389" y="44.836"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph1-15" x="216.953" y="11.186"/>
|
||||
<use xlink:href="#glyph1-27" x="224.14799" y="11.186"/>
|
||||
<use xlink:href="#glyph1-23" x="229.12929" y="11.186"/>
|
||||
<use xlink:href="#glyph1-23" x="237.431124" y="11.186"/>
|
||||
<use xlink:href="#glyph1-20" x="245.732959" y="11.186"/>
|
||||
<use xlink:href="#glyph1-4" x="250.714259" y="11.186"/>
|
||||
<use xlink:href="#glyph1-24" x="256.249479" y="11.186"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph1-26" x="265.102246" y="11.186"/>
|
||||
<use xlink:href="#glyph1-13" x="272.574196" y="11.186"/>
|
||||
<use xlink:href="#glyph1-7" x="279.354741" y="11.186"/>
|
||||
<use xlink:href="#glyph1-30" x="286.965172" y="11.186"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph1-25" x="151.15" y="61.367"/>
|
||||
<use xlink:href="#glyph1-8" x="158.48347" y="61.367"/>
|
||||
<use xlink:href="#glyph1-10" x="162.910849" y="61.367"/>
|
||||
<use xlink:href="#glyph1-12" x="166.840099" y="61.367"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph1-27" x="172.654272" y="61.367"/>
|
||||
<use xlink:href="#glyph1-4" x="177.635572" y="61.367"/>
|
||||
<use xlink:href="#glyph1-10" x="183.170793" y="61.367"/>
|
||||
<use xlink:href="#glyph1-8" x="187.100042" y="61.367"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph1-26" x="194.844967" y="61.367"/>
|
||||
<use xlink:href="#glyph1-13" x="202.316917" y="61.367"/>
|
||||
<use xlink:href="#glyph1-7" x="209.097463" y="61.367"/>
|
||||
<use xlink:href="#glyph1-30" x="216.707893" y="61.367"/>
|
||||
</g>
|
||||
<path style="fill:none;stroke-width:1.99255;stroke-linecap:round;stroke-linejoin:miter;stroke:rgb(8.657837%,31.404114%,58.695984%);stroke-opacity:1;stroke-miterlimit:10;" d="M 6.60025 -26.060594 L 32.197906 -26.060594 " transform="matrix(1,0,0,-1,221.681,32.873)"/>
|
||||
<path style="fill-rule:nonzero;fill:rgb(8.657837%,31.404114%,58.695984%);fill-opacity:1;stroke-width:1.99255;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(8.657837%,31.404114%,58.695984%);stroke-opacity:1;stroke-miterlimit:10;" d="M 1.753602 -0.00084375 C -0.437804 0.436656 -2.62921 1.315563 -5.262023 2.850719 C -2.62921 0.878063 -2.62921 -0.875844 -5.262023 -2.8485 C -2.62921 -1.313344 -0.437804 -0.438344 1.753602 -0.00084375 Z M 1.753602 -0.00084375 " transform="matrix(1,0,0,-1,253.87921,58.93275)"/>
|
||||
<path style="fill:none;stroke-width:1.99255;stroke-linecap:round;stroke-linejoin:miter;stroke:rgb(8.657837%,31.404114%,58.695984%);stroke-opacity:1;stroke-miterlimit:10;" d="M -8.829438 25.146438 L -34.427094 25.146438 " transform="matrix(1,0,0,-1,221.681,32.873)"/>
|
||||
<path style="fill-rule:nonzero;fill:rgb(8.657837%,31.404114%,58.695984%);fill-opacity:1;stroke-width:1.99255;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(8.657837%,31.404114%,58.695984%);stroke-opacity:1;stroke-miterlimit:10;" d="M 1.75497 0.0000725 C -0.436436 0.437572 -2.631749 1.316479 -5.260655 2.847729 C -2.631749 0.875072 -2.631749 -0.874928 -5.260655 -2.847584 C -2.631749 -1.316334 -0.436436 -0.437428 1.75497 0.0000725 Z M 1.75497 0.0000725 " transform="matrix(-1,0,0,1,187.25497,7.72649)"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 51 KiB |
7746
docs/_images/tikz-1281452b980f69540bc7520179e10f3ccc59fe36.svg
Normal file
|
After Width: | Height: | Size: 2.6 MiB |
|
Before Width: | Height: | Size: 86 KiB |
|
Before Width: | Height: | Size: 61 KiB |
271
docs/_images/tikz-2debc244e414ed09dc8909102139ca8f37bae82b.svg
Normal file
@@ -0,0 +1,271 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="229.655pt" height="81.398pt" viewBox="0 0 229.655 81.398" version="1.1">
|
||||
<defs>
|
||||
<g>
|
||||
<symbol overflow="visible" id="glyph0-0">
|
||||
<path style="stroke:none;" d=""/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-1">
|
||||
<path style="stroke:none;" d="M 6.34375 -2.515625 C 6.34375 -0.96875 5.296875 -0.09375 4.25 -0.09375 C 3.734375 -0.09375 2.453125 -0.375 2.453125 -2.4375 L 2.453125 -6.59375 C 2.453125 -6.984375 2.46875 -7.109375 3.3125 -7.109375 L 3.578125 -7.109375 L 3.578125 -7.453125 C 3.203125 -7.421875 2.390625 -7.421875 1.96875 -7.421875 C 1.5625 -7.421875 0.734375 -7.421875 0.359375 -7.453125 L 0.359375 -7.109375 L 0.625 -7.109375 C 1.46875 -7.109375 1.484375 -6.984375 1.484375 -6.59375 L 1.484375 -2.484375 C 1.484375 -0.953125 2.75 0.234375 4.234375 0.234375 C 5.484375 0.234375 6.46875 -0.78125 6.65625 -2.015625 C 6.6875 -2.234375 6.6875 -2.328125 6.6875 -2.765625 L 6.6875 -6.265625 C 6.6875 -6.625 6.6875 -7.109375 7.8125 -7.109375 L 7.8125 -7.453125 C 7.421875 -7.4375 6.890625 -7.421875 6.515625 -7.421875 C 6.140625 -7.421875 5.609375 -7.4375 5.21875 -7.453125 L 5.21875 -7.109375 C 6.34375 -7.109375 6.34375 -6.59375 6.34375 -6.296875 Z M 6.34375 -2.515625 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-2">
|
||||
<path style="stroke:none;" d="M 3.8125 -4.234375 L 2.40625 -4.5625 C 1.734375 -4.734375 1.3125 -5.328125 1.3125 -5.953125 C 1.3125 -6.71875 1.890625 -7.390625 2.75 -7.390625 C 4.5625 -7.390625 4.8125 -5.59375 4.875 -5.109375 C 4.890625 -5.03125 4.890625 -4.96875 5 -4.96875 C 5.140625 -4.96875 5.140625 -5.03125 5.140625 -5.234375 L 5.140625 -7.421875 C 5.140625 -7.609375 5.140625 -7.6875 5.03125 -7.6875 C 4.953125 -7.6875 4.9375 -7.671875 4.859375 -7.546875 L 4.484375 -6.921875 C 4.15625 -7.234375 3.703125 -7.6875 2.734375 -7.6875 C 1.53125 -7.6875 0.609375 -6.734375 0.609375 -5.578125 C 0.609375 -4.671875 1.1875 -3.875 2.046875 -3.578125 C 2.15625 -3.53125 2.71875 -3.40625 3.484375 -3.21875 C 3.78125 -3.140625 4.09375 -3.0625 4.40625 -2.65625 C 4.640625 -2.375 4.75 -2.015625 4.75 -1.65625 C 4.75 -0.890625 4.203125 -0.09375 3.28125 -0.09375 C 2.96875 -0.09375 2.140625 -0.15625 1.5625 -0.6875 C 0.921875 -1.28125 0.890625 -1.96875 0.890625 -2.359375 C 0.875 -2.46875 0.78125 -2.46875 0.75 -2.46875 C 0.609375 -2.46875 0.609375 -2.40625 0.609375 -2.203125 L 0.609375 -0.015625 C 0.609375 0.15625 0.609375 0.234375 0.734375 0.234375 C 0.8125 0.234375 0.8125 0.21875 0.890625 0.09375 C 0.890625 0.09375 0.921875 0.046875 1.28125 -0.53125 C 1.625 -0.15625 2.328125 0.234375 3.296875 0.234375 C 4.5625 0.234375 5.4375 -0.828125 5.4375 -2.03125 C 5.4375 -3.125 4.71875 -4.015625 3.8125 -4.234375 Z M 3.8125 -4.234375 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-3">
|
||||
<path style="stroke:none;" d="M 2.421875 -3.984375 L 2.421875 -6.671875 C 2.421875 -7.03125 2.4375 -7.109375 2.953125 -7.109375 L 4.3125 -7.109375 C 5.359375 -7.109375 5.75 -6.1875 5.75 -5.609375 C 5.75 -4.90625 5.21875 -3.984375 4 -3.984375 Z M 5 -3.890625 C 6.046875 -4.09375 6.8125 -4.796875 6.8125 -5.609375 C 6.8125 -6.546875 5.796875 -7.453125 4.390625 -7.453125 L 0.390625 -7.453125 L 0.390625 -7.109375 L 0.65625 -7.109375 C 1.5 -7.109375 1.515625 -6.984375 1.515625 -6.59375 L 1.515625 -0.84375 C 1.515625 -0.453125 1.5 -0.34375 0.65625 -0.34375 L 0.390625 -0.34375 L 0.390625 0 L 4.671875 0 C 6.125 0 7.09375 -0.96875 7.09375 -2 C 7.09375 -2.9375 6.203125 -3.765625 5 -3.890625 Z M 4.3125 -0.34375 L 2.953125 -0.34375 C 2.4375 -0.34375 2.421875 -0.421875 2.421875 -0.78125 L 2.421875 -3.75 L 4.46875 -3.75 C 5.546875 -3.75 6.015625 -2.734375 6.015625 -2 C 6.015625 -1.234375 5.4375 -0.34375 4.3125 -0.34375 Z M 4.3125 -0.34375 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-4">
|
||||
<path style="stroke:none;" d="M 7.265625 -7.390625 L 0.59375 -7.390625 L 0.390625 -4.921875 L 0.671875 -4.921875 C 0.8125 -6.6875 0.984375 -7.046875 2.625 -7.046875 C 2.828125 -7.046875 3.109375 -7.046875 3.21875 -7.03125 C 3.453125 -6.984375 3.453125 -6.859375 3.453125 -6.609375 L 3.453125 -0.859375 C 3.453125 -0.484375 3.453125 -0.34375 2.296875 -0.34375 L 1.859375 -0.34375 L 1.859375 0 C 2.3125 -0.03125 3.421875 -0.03125 3.921875 -0.03125 C 4.421875 -0.03125 5.546875 -0.03125 6 0 L 6 -0.34375 L 5.5625 -0.34375 C 4.421875 -0.34375 4.421875 -0.484375 4.421875 -0.859375 L 4.421875 -6.609375 C 4.421875 -6.828125 4.421875 -6.984375 4.609375 -7.03125 C 4.734375 -7.046875 5.03125 -7.046875 5.234375 -7.046875 C 6.875 -7.046875 7.046875 -6.6875 7.203125 -4.921875 L 7.46875 -4.921875 Z M 7.265625 -7.390625 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-5">
|
||||
<path style="stroke:none;" d="M 1.21875 -2.75 C 1.28125 -4.375 2.203125 -4.640625 2.578125 -4.640625 C 3.703125 -4.640625 3.8125 -3.171875 3.8125 -2.75 Z M 1.203125 -2.515625 L 4.25 -2.515625 C 4.5 -2.515625 4.53125 -2.515625 4.53125 -2.75 C 4.53125 -3.828125 3.9375 -4.890625 2.578125 -4.890625 C 1.3125 -4.890625 0.3125 -3.765625 0.3125 -2.40625 C 0.3125 -0.9375 1.453125 0.125 2.703125 0.125 C 4.03125 0.125 4.53125 -1.09375 4.53125 -1.296875 C 4.53125 -1.40625 4.4375 -1.421875 4.390625 -1.421875 C 4.28125 -1.421875 4.265625 -1.359375 4.25 -1.28125 C 3.859375 -0.15625 2.875 -0.15625 2.765625 -0.15625 C 2.21875 -0.15625 1.78125 -0.484375 1.53125 -0.890625 C 1.203125 -1.40625 1.203125 -2.125 1.203125 -2.515625 Z M 1.203125 -2.515625 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-6">
|
||||
<path style="stroke:none;" d="M 1.828125 -3.625 L 1.828125 -4.828125 L 0.3125 -4.703125 L 0.3125 -4.359375 C 1.0625 -4.359375 1.15625 -4.28125 1.15625 -3.75 L 1.15625 -0.828125 C 1.15625 -0.34375 1.03125 -0.34375 0.3125 -0.34375 L 0.3125 0 C 0.734375 -0.015625 1.25 -0.03125 1.546875 -0.03125 C 1.984375 -0.03125 2.5 -0.03125 2.9375 0 L 2.9375 -0.34375 L 2.703125 -0.34375 C 1.890625 -0.34375 1.875 -0.453125 1.875 -0.84375 L 1.875 -2.53125 C 1.875 -3.609375 2.328125 -4.578125 3.15625 -4.578125 C 3.234375 -4.578125 3.265625 -4.578125 3.28125 -4.5625 C 3.25 -4.5625 3.03125 -4.421875 3.03125 -4.140625 C 3.03125 -3.84375 3.265625 -3.671875 3.5 -3.671875 C 3.703125 -3.671875 3.96875 -3.8125 3.96875 -4.15625 C 3.96875 -4.5 3.625 -4.828125 3.15625 -4.828125 C 2.359375 -4.828125 1.96875 -4.09375 1.828125 -3.625 Z M 1.828125 -3.625 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-7">
|
||||
<path style="stroke:none;" d="M 1.203125 -3.75 L 1.203125 -0.828125 C 1.203125 -0.34375 1.078125 -0.34375 0.34375 -0.34375 L 0.34375 0 C 0.734375 -0.015625 1.28125 -0.03125 1.578125 -0.03125 C 1.859375 -0.03125 2.4375 -0.015625 2.796875 0 L 2.796875 -0.34375 C 2.078125 -0.34375 1.953125 -0.34375 1.953125 -0.828125 L 1.953125 -2.828125 C 1.953125 -3.96875 2.71875 -4.578125 3.421875 -4.578125 C 4.109375 -4.578125 4.234375 -3.984375 4.234375 -3.375 L 4.234375 -0.828125 C 4.234375 -0.34375 4.109375 -0.34375 3.375 -0.34375 L 3.375 0 C 3.765625 -0.015625 4.3125 -0.03125 4.609375 -0.03125 C 4.890625 -0.03125 5.46875 -0.015625 5.828125 0 L 5.828125 -0.34375 C 5.109375 -0.34375 4.984375 -0.34375 4.984375 -0.828125 L 4.984375 -2.828125 C 4.984375 -3.96875 5.765625 -4.578125 6.453125 -4.578125 C 7.140625 -4.578125 7.265625 -3.984375 7.265625 -3.375 L 7.265625 -0.828125 C 7.265625 -0.34375 7.140625 -0.34375 6.40625 -0.34375 L 6.40625 0 C 6.796875 -0.015625 7.34375 -0.03125 7.640625 -0.03125 C 7.921875 -0.03125 8.5 -0.015625 8.859375 0 L 8.859375 -0.34375 C 8.296875 -0.34375 8.03125 -0.34375 8.015625 -0.671875 L 8.015625 -2.75 C 8.015625 -3.6875 8.015625 -4.03125 7.671875 -4.421875 C 7.53125 -4.609375 7.171875 -4.828125 6.53125 -4.828125 C 5.609375 -4.828125 5.140625 -4.171875 4.953125 -3.75 C 4.796875 -4.703125 3.984375 -4.828125 3.5 -4.828125 C 2.703125 -4.828125 2.1875 -4.359375 1.890625 -3.671875 L 1.890625 -4.828125 L 0.34375 -4.703125 L 0.34375 -4.359375 C 1.109375 -4.359375 1.203125 -4.28125 1.203125 -3.75 Z M 1.203125 -3.75 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-8">
|
||||
<path style="stroke:none;" d="M 1.9375 -4.828125 L 0.40625 -4.703125 L 0.40625 -4.359375 C 1.109375 -4.359375 1.203125 -4.296875 1.203125 -3.765625 L 1.203125 -0.828125 C 1.203125 -0.34375 1.09375 -0.34375 0.359375 -0.34375 L 0.359375 0 C 0.703125 -0.015625 1.296875 -0.03125 1.5625 -0.03125 C 1.9375 -0.03125 2.328125 -0.015625 2.6875 0 L 2.6875 -0.34375 C 1.96875 -0.34375 1.9375 -0.390625 1.9375 -0.8125 Z M 1.96875 -6.71875 C 1.96875 -7.0625 1.703125 -7.296875 1.390625 -7.296875 C 1.0625 -7.296875 0.8125 -7 0.8125 -6.71875 C 0.8125 -6.421875 1.0625 -6.140625 1.390625 -6.140625 C 1.703125 -6.140625 1.96875 -6.375 1.96875 -6.71875 Z M 1.96875 -6.71875 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-9">
|
||||
<path style="stroke:none;" d="M 1.203125 -3.75 L 1.203125 -0.828125 C 1.203125 -0.34375 1.078125 -0.34375 0.34375 -0.34375 L 0.34375 0 C 0.734375 -0.015625 1.28125 -0.03125 1.578125 -0.03125 C 1.859375 -0.03125 2.4375 -0.015625 2.796875 0 L 2.796875 -0.34375 C 2.078125 -0.34375 1.953125 -0.34375 1.953125 -0.828125 L 1.953125 -2.828125 C 1.953125 -3.96875 2.71875 -4.578125 3.421875 -4.578125 C 4.109375 -4.578125 4.234375 -3.984375 4.234375 -3.375 L 4.234375 -0.828125 C 4.234375 -0.34375 4.109375 -0.34375 3.375 -0.34375 L 3.375 0 C 3.765625 -0.015625 4.3125 -0.03125 4.609375 -0.03125 C 4.890625 -0.03125 5.46875 -0.015625 5.828125 0 L 5.828125 -0.34375 C 5.265625 -0.34375 5 -0.34375 4.984375 -0.671875 L 4.984375 -2.75 C 4.984375 -3.6875 4.984375 -4.03125 4.640625 -4.421875 C 4.5 -4.609375 4.140625 -4.828125 3.5 -4.828125 C 2.703125 -4.828125 2.1875 -4.359375 1.890625 -3.671875 L 1.890625 -4.828125 L 0.34375 -4.703125 L 0.34375 -4.359375 C 1.109375 -4.359375 1.203125 -4.28125 1.203125 -3.75 Z M 1.203125 -3.75 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-10">
|
||||
<path style="stroke:none;" d="M 3.625 -0.828125 C 3.671875 -0.390625 3.96875 0.0625 4.484375 0.0625 C 4.71875 0.0625 5.375 -0.09375 5.375 -0.96875 L 5.375 -1.578125 L 5.109375 -1.578125 L 5.109375 -0.96875 C 5.109375 -0.34375 4.828125 -0.265625 4.71875 -0.265625 C 4.359375 -0.265625 4.3125 -0.765625 4.3125 -0.8125 L 4.3125 -3 C 4.3125 -3.453125 4.3125 -3.875 3.921875 -4.28125 C 3.484375 -4.71875 2.9375 -4.890625 2.421875 -4.890625 C 1.53125 -4.890625 0.78125 -4.375 0.78125 -3.65625 C 0.78125 -3.328125 1 -3.140625 1.28125 -3.140625 C 1.578125 -3.140625 1.78125 -3.359375 1.78125 -3.640625 C 1.78125 -3.78125 1.71875 -4.140625 1.21875 -4.140625 C 1.515625 -4.53125 2.046875 -4.640625 2.40625 -4.640625 C 2.9375 -4.640625 3.5625 -4.21875 3.5625 -3.25 L 3.5625 -2.84375 C 3 -2.8125 2.234375 -2.78125 1.546875 -2.453125 C 0.734375 -2.078125 0.453125 -1.515625 0.453125 -1.03125 C 0.453125 -0.15625 1.515625 0.125 2.203125 0.125 C 2.921875 0.125 3.421875 -0.3125 3.625 -0.828125 Z M 3.5625 -2.625 L 3.5625 -1.53125 C 3.5625 -0.484375 2.765625 -0.125 2.28125 -0.125 C 1.75 -0.125 1.296875 -0.5 1.296875 -1.046875 C 1.296875 -1.640625 1.75 -2.546875 3.5625 -2.625 Z M 3.5625 -2.625 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-11">
|
||||
<path style="stroke:none;" d="M 1.9375 -7.5625 L 0.359375 -7.453125 L 0.359375 -7.109375 C 1.125 -7.109375 1.203125 -7.03125 1.203125 -6.5 L 1.203125 -0.828125 C 1.203125 -0.34375 1.09375 -0.34375 0.359375 -0.34375 L 0.359375 0 C 0.71875 -0.015625 1.296875 -0.03125 1.578125 -0.03125 C 1.84375 -0.03125 2.375 -0.015625 2.78125 0 L 2.78125 -0.34375 C 2.046875 -0.34375 1.9375 -0.34375 1.9375 -0.828125 Z M 1.9375 -7.5625 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-12">
|
||||
<path style="stroke:none;" d="M 2.53125 -7.3125 C 2.4375 -7.4375 2.421875 -7.453125 2.21875 -7.453125 L 0.359375 -7.453125 L 0.359375 -7.109375 L 0.671875 -7.109375 C 0.84375 -7.109375 1.0625 -7.09375 1.21875 -7.09375 C 1.46875 -7.0625 1.484375 -7.046875 1.484375 -6.84375 L 1.484375 -1.140625 C 1.484375 -0.84375 1.484375 -0.34375 0.359375 -0.34375 L 0.359375 0 C 0.734375 -0.015625 1.28125 -0.03125 1.640625 -0.03125 C 2 -0.03125 2.53125 -0.015625 2.90625 0 L 2.90625 -0.34375 C 1.78125 -0.34375 1.78125 -0.84375 1.78125 -1.140625 L 1.78125 -6.8125 C 1.84375 -6.765625 1.859375 -6.75 1.890625 -6.6875 L 6.34375 -0.140625 C 6.453125 -0.015625 6.453125 0 6.53125 0 C 6.6875 0 6.6875 -0.078125 6.6875 -0.28125 L 6.6875 -6.296875 C 6.6875 -6.59375 6.6875 -7.109375 7.8125 -7.109375 L 7.8125 -7.453125 C 7.421875 -7.4375 6.890625 -7.421875 6.53125 -7.421875 C 6.171875 -7.421875 5.640625 -7.4375 5.25 -7.453125 L 5.25 -7.109375 C 6.375 -7.109375 6.375 -6.59375 6.375 -6.296875 L 6.375 -1.640625 Z M 2.53125 -7.3125 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-13">
|
||||
<path style="stroke:none;" d="M 6.34375 -7.421875 L 0.359375 -7.421875 L 0.359375 -7.078125 L 0.625 -7.078125 C 1.46875 -7.078125 1.484375 -6.953125 1.484375 -6.5625 L 1.484375 -0.84375 C 1.484375 -0.453125 1.46875 -0.34375 0.625 -0.34375 L 0.359375 -0.34375 L 0.359375 0 C 0.734375 -0.03125 1.59375 -0.03125 2.015625 -0.03125 C 2.46875 -0.03125 3.453125 -0.03125 3.84375 0 L 3.84375 -0.34375 L 3.484375 -0.34375 C 2.453125 -0.34375 2.453125 -0.484375 2.453125 -0.859375 L 2.453125 -3.546875 L 3.390625 -3.546875 C 4.4375 -3.546875 4.546875 -3.203125 4.546875 -2.265625 L 4.828125 -2.265625 L 4.828125 -5.15625 L 4.546875 -5.15625 C 4.546875 -4.25 4.4375 -3.875 3.390625 -3.875 L 2.453125 -3.875 L 2.453125 -6.640625 C 2.453125 -7 2.46875 -7.078125 2.984375 -7.078125 L 4.296875 -7.078125 C 5.9375 -7.078125 6.203125 -6.46875 6.375 -4.96875 L 6.65625 -4.96875 Z M 6.34375 -7.421875 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-14">
|
||||
<path style="stroke:none;" d="M 0.609375 -3.734375 C 0.609375 -1.46875 2.375 0.234375 4.40625 0.234375 C 6.1875 0.234375 7.25 -1.28125 7.25 -2.546875 C 7.25 -2.65625 7.25 -2.71875 7.109375 -2.71875 C 6.984375 -2.71875 6.984375 -2.65625 6.984375 -2.546875 C 6.890625 -1 5.71875 -0.09375 4.53125 -0.09375 C 3.875 -0.09375 1.734375 -0.46875 1.734375 -3.71875 C 1.734375 -6.984375 3.859375 -7.34375 4.53125 -7.34375 C 5.71875 -7.34375 6.6875 -6.359375 6.90625 -4.765625 C 6.921875 -4.609375 6.921875 -4.578125 7.078125 -4.578125 C 7.25 -4.578125 7.25 -4.609375 7.25 -4.84375 L 7.25 -7.421875 C 7.25 -7.609375 7.25 -7.6875 7.125 -7.6875 C 7.09375 -7.6875 7.046875 -7.6875 6.953125 -7.5625 L 6.40625 -6.75 C 6.015625 -7.140625 5.453125 -7.6875 4.40625 -7.6875 C 2.359375 -7.6875 0.609375 -5.953125 0.609375 -3.734375 Z M 0.609375 -3.734375 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-15">
|
||||
<path style="stroke:none;" d="M 2.4375 -3.84375 L 2.4375 -6.671875 C 2.4375 -6.921875 2.4375 -7.0625 2.6875 -7.09375 C 2.796875 -7.109375 3.109375 -7.109375 3.328125 -7.109375 C 4.3125 -7.109375 5.53125 -7.0625 5.53125 -5.484375 C 5.53125 -4.734375 5.265625 -3.84375 3.65625 -3.84375 Z M 4.75 -3.703125 C 5.796875 -3.96875 6.65625 -4.640625 6.65625 -5.484375 C 6.65625 -6.53125 5.40625 -7.453125 3.8125 -7.453125 L 0.375 -7.453125 L 0.375 -7.109375 L 0.640625 -7.109375 C 1.484375 -7.109375 1.5 -6.984375 1.5 -6.59375 L 1.5 -0.84375 C 1.5 -0.453125 1.484375 -0.34375 0.640625 -0.34375 L 0.375 -0.34375 L 0.375 0 C 0.78125 -0.03125 1.546875 -0.03125 1.96875 -0.03125 C 2.40625 -0.03125 3.171875 -0.03125 3.5625 0 L 3.5625 -0.34375 L 3.296875 -0.34375 C 2.46875 -0.34375 2.4375 -0.453125 2.4375 -0.84375 L 2.4375 -3.609375 L 3.703125 -3.609375 C 3.875 -3.609375 4.328125 -3.609375 4.71875 -3.234375 C 5.125 -2.84375 5.125 -2.515625 5.125 -1.78125 C 5.125 -1.0625 5.125 -0.625 5.578125 -0.21875 C 6.015625 0.171875 6.625 0.234375 6.953125 0.234375 C 7.796875 0.234375 7.984375 -0.65625 7.984375 -0.953125 C 7.984375 -1.03125 7.984375 -1.140625 7.84375 -1.140625 C 7.71875 -1.140625 7.71875 -1.046875 7.703125 -0.96875 C 7.640625 -0.203125 7.265625 0 6.984375 0 C 6.453125 0 6.375 -0.5625 6.21875 -1.578125 L 6.078125 -2.4375 C 5.875 -3.140625 5.34375 -3.5 4.75 -3.703125 Z M 4.75 -3.703125 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-16">
|
||||
<path style="stroke:none;" d="M 1.890625 -4.359375 L 3.453125 -4.359375 L 3.453125 -4.703125 L 1.890625 -4.703125 L 1.890625 -6.703125 L 1.609375 -6.703125 C 1.609375 -5.8125 1.28125 -4.640625 0.203125 -4.609375 L 0.203125 -4.359375 L 1.140625 -4.359375 L 1.140625 -1.359375 C 1.140625 -0.015625 2.15625 0.125 2.546875 0.125 C 3.3125 0.125 3.625 -0.65625 3.625 -1.359375 L 3.625 -1.96875 L 3.34375 -1.96875 L 3.34375 -1.375 C 3.34375 -0.5625 3.015625 -0.15625 2.625 -0.15625 C 1.890625 -0.15625 1.890625 -1.140625 1.890625 -1.328125 Z M 1.890625 -4.359375 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-17">
|
||||
<path style="stroke:none;" d="M 4.140625 -0.59375 L 4.140625 0.125 L 5.75 0 L 5.75 -0.34375 C 4.984375 -0.34375 4.890625 -0.421875 4.890625 -0.953125 L 4.890625 -7.5625 L 3.328125 -7.453125 L 3.328125 -7.109375 C 4.09375 -7.109375 4.171875 -7.03125 4.171875 -6.5 L 4.171875 -4.140625 C 3.859375 -4.53125 3.390625 -4.828125 2.796875 -4.828125 C 1.515625 -4.828125 0.375 -3.75 0.375 -2.34375 C 0.375 -0.953125 1.4375 0.125 2.6875 0.125 C 3.375 0.125 3.875 -0.25 4.140625 -0.59375 Z M 4.140625 -3.515625 L 4.140625 -1.28125 C 4.140625 -1.09375 4.140625 -1.0625 4.03125 -0.890625 C 3.703125 -0.359375 3.203125 -0.125 2.734375 -0.125 C 2.25 -0.125 1.859375 -0.40625 1.59375 -0.8125 C 1.3125 -1.265625 1.28125 -1.890625 1.28125 -2.328125 C 1.28125 -2.734375 1.296875 -3.390625 1.609375 -3.875 C 1.84375 -4.21875 2.25 -4.578125 2.84375 -4.578125 C 3.234375 -4.578125 3.6875 -4.421875 4.03125 -3.921875 C 4.140625 -3.734375 4.140625 -3.71875 4.140625 -3.515625 Z M 4.140625 -3.515625 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-18">
|
||||
<path style="stroke:none;" d="M 6.765625 -6.375 C 6.921875 -6.78125 7.21875 -7.09375 7.96875 -7.109375 L 7.96875 -7.453125 C 7.625 -7.421875 7.1875 -7.421875 6.90625 -7.421875 C 6.578125 -7.421875 5.9375 -7.4375 5.65625 -7.453125 L 5.65625 -7.109375 C 6.234375 -7.09375 6.453125 -6.8125 6.453125 -6.5625 C 6.453125 -6.484375 6.421875 -6.40625 6.40625 -6.34375 L 4.40625 -1.09375 L 2.328125 -6.59375 C 2.25 -6.75 2.25 -6.765625 2.25 -6.796875 C 2.25 -7.109375 2.875 -7.109375 3.15625 -7.109375 L 3.15625 -7.453125 C 2.765625 -7.421875 2 -7.421875 1.59375 -7.421875 C 1.0625 -7.421875 0.59375 -7.4375 0.203125 -7.453125 L 0.203125 -7.109375 C 0.921875 -7.109375 1.125 -7.109375 1.28125 -6.703125 L 3.8125 0 C 3.875 0.203125 3.9375 0.234375 4.078125 0.234375 C 4.265625 0.234375 4.28125 0.1875 4.34375 0.03125 Z M 6.765625 -6.375 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-19">
|
||||
<path style="stroke:none;" d="M 4.265625 -0.859375 L 4.265625 0.125 L 5.828125 0 L 5.828125 -0.34375 C 5.078125 -0.34375 4.984375 -0.421875 4.984375 -0.953125 L 4.984375 -4.828125 L 3.375 -4.703125 L 3.375 -4.359375 C 4.140625 -4.359375 4.234375 -4.28125 4.234375 -3.75 L 4.234375 -1.8125 C 4.234375 -0.859375 3.703125 -0.125 2.90625 -0.125 C 2 -0.125 1.953125 -0.625 1.953125 -1.203125 L 1.953125 -4.828125 L 0.34375 -4.703125 L 0.34375 -4.359375 C 1.203125 -4.359375 1.203125 -4.328125 1.203125 -3.359375 L 1.203125 -1.71875 C 1.203125 -0.875 1.203125 0.125 2.859375 0.125 C 3.46875 0.125 3.953125 -0.1875 4.265625 -0.859375 Z M 4.265625 -0.859375 "/>
|
||||
</symbol>
|
||||
</g>
|
||||
<clipPath id="clip1">
|
||||
<path d="M 1 1 L 89 1 L 89 26 L 1 26 Z M 1 1 "/>
|
||||
</clipPath>
|
||||
<clipPath id="clip2">
|
||||
<path d="M 49.175781 0.996094 L 72.195312 0.996094 C 74.398438 0.996094 77.964844 0.996094 80.167969 0.996094 C 82.972656 0.996094 88.472656 6.5 88.472656 13.289062 C 88.472656 20.078125 82.972656 25.578125 80.167969 25.578125 C 77.964844 25.578125 74.398438 25.578125 72.195312 25.578125 L 18.183594 25.578125 C 15.980469 25.578125 12.414062 25.578125 10.210938 25.578125 C 7.40625 25.578125 1.90625 20.078125 1.90625 13.289062 C 1.90625 6.5 7.40625 0.996094 10.210938 0.996094 C 12.414062 0.996094 15.980469 0.996094 18.183594 0.996094 L 41.203125 0.996094 C 43.40625 0.996094 46.972656 0.996094 49.175781 0.996094 Z M 49.175781 0.996094 "/>
|
||||
</clipPath>
|
||||
<linearGradient id="linear0" gradientUnits="userSpaceOnUse" x1="0" y1="25.002461" x2="0" y2="74.99756" gradientTransform="matrix(1.7316,0,0,-0.49173,-41.39066,37.87421)">
|
||||
<stop offset="0" style="stop-color:rgb(96.998596%,97.999573%,97.999573%);stop-opacity:1;"/>
|
||||
<stop offset="0.125" style="stop-color:rgb(97.148132%,98.098755%,98.098755%);stop-opacity:1;"/>
|
||||
<stop offset="0.25" style="stop-color:rgb(97.44873%,98.298645%,98.298645%);stop-opacity:1;"/>
|
||||
<stop offset="0.375" style="stop-color:rgb(97.749329%,98.498535%,98.498535%);stop-opacity:1;"/>
|
||||
<stop offset="0.5" style="stop-color:rgb(98.048401%,98.698425%,98.698425%);stop-opacity:1;"/>
|
||||
<stop offset="0.625" style="stop-color:rgb(98.348999%,98.898315%,98.898315%);stop-opacity:1;"/>
|
||||
<stop offset="0.75" style="stop-color:rgb(98.648071%,99.098206%,99.098206%);stop-opacity:1;"/>
|
||||
<stop offset="0.875" style="stop-color:rgb(98.948669%,99.298096%,99.298096%);stop-opacity:1;"/>
|
||||
<stop offset="1" style="stop-color:rgb(99.249268%,99.497986%,99.497986%);stop-opacity:1;"/>
|
||||
</linearGradient>
|
||||
<clipPath id="clip3">
|
||||
<path d="M 3 58 L 92 58 L 92 81.398438 L 3 81.398438 Z M 3 58 "/>
|
||||
</clipPath>
|
||||
<clipPath id="clip4">
|
||||
<path d="M 0 56 L 89 56 L 89 80 L 0 80 Z M 0 56 "/>
|
||||
</clipPath>
|
||||
<clipPath id="clip5">
|
||||
<path d="M 48.71875 55.816406 L 72.195312 55.816406 C 74.398438 55.816406 77.964844 55.816406 80.167969 55.816406 C 82.972656 55.816406 88.472656 61.320312 88.472656 68.109375 C 88.472656 74.898438 82.972656 80.402344 80.167969 80.402344 C 77.964844 80.402344 74.398438 80.402344 72.195312 80.402344 L 17.273438 80.402344 C 15.070312 80.402344 11.503906 80.402344 9.300781 80.402344 C 6.5 80.402344 0.996094 74.898438 0.996094 68.109375 C 0.996094 61.320312 6.5 55.816406 9.300781 55.816406 C 11.503906 55.816406 15.070312 55.816406 17.273438 55.816406 L 40.75 55.816406 C 42.949219 55.816406 46.519531 55.816406 48.71875 55.816406 Z M 48.71875 55.816406 "/>
|
||||
</clipPath>
|
||||
<linearGradient id="linear1" gradientUnits="userSpaceOnUse" x1="0" y1="25.00244" x2="0" y2="74.997539" gradientTransform="matrix(1.74977,0,0,-0.49173,-42.7537,92.69679)">
|
||||
<stop offset="0" style="stop-color:rgb(96.998596%,97.999573%,97.999573%);stop-opacity:1;"/>
|
||||
<stop offset="0.125" style="stop-color:rgb(97.148132%,98.098755%,98.098755%);stop-opacity:1;"/>
|
||||
<stop offset="0.25" style="stop-color:rgb(97.44873%,98.298645%,98.298645%);stop-opacity:1;"/>
|
||||
<stop offset="0.375" style="stop-color:rgb(97.749329%,98.498535%,98.498535%);stop-opacity:1;"/>
|
||||
<stop offset="0.5" style="stop-color:rgb(98.048401%,98.698425%,98.698425%);stop-opacity:1;"/>
|
||||
<stop offset="0.625" style="stop-color:rgb(98.348999%,98.898315%,98.898315%);stop-opacity:1;"/>
|
||||
<stop offset="0.75" style="stop-color:rgb(98.648071%,99.098206%,99.098206%);stop-opacity:1;"/>
|
||||
<stop offset="0.875" style="stop-color:rgb(98.948669%,99.298096%,99.298096%);stop-opacity:1;"/>
|
||||
<stop offset="1" style="stop-color:rgb(99.249268%,99.497986%,99.497986%);stop-opacity:1;"/>
|
||||
</linearGradient>
|
||||
<clipPath id="clip6">
|
||||
<path d="M 0 27 L 117 27 L 117 81.398438 L 0 81.398438 Z M 0 27 "/>
|
||||
</clipPath>
|
||||
<clipPath id="clip7">
|
||||
<path d="M 106 1 L 216 1 L 216 26 L 106 26 Z M 106 1 "/>
|
||||
</clipPath>
|
||||
<clipPath id="clip8">
|
||||
<path d="M 169.921875 0.996094 L 199.476562 0.996094 C 201.675781 0.996094 205.242188 0.996094 207.445312 0.996094 C 210.25 0.996094 215.753906 6.5 215.753906 13.289062 C 215.753906 20.078125 210.25 25.578125 207.445312 25.578125 C 205.242188 25.578125 201.675781 25.578125 199.476562 25.578125 L 108.414062 25.578125 C 106.210938 25.578125 106.210938 25.578125 108.414062 25.578125 C 111.214844 25.578125 116.71875 20.078125 116.71875 13.289062 C 116.71875 6.5 111.214844 0.996094 108.414062 0.996094 C 106.210938 0.996094 106.210938 0.996094 108.414062 0.996094 L 161.953125 0.996094 C 164.152344 0.996094 167.722656 0.996094 169.921875 0.996094 Z M 169.921875 0.996094 "/>
|
||||
</clipPath>
|
||||
<linearGradient id="linear2" gradientUnits="userSpaceOnUse" x1="0" y1="25.002461" x2="0" y2="74.99756" gradientTransform="matrix(2.22675,0,0,-0.49173,48.75246,37.87421)">
|
||||
<stop offset="0" style="stop-color:rgb(96.998596%,97.999573%,97.999573%);stop-opacity:1;"/>
|
||||
<stop offset="0.125" style="stop-color:rgb(97.148132%,98.098755%,98.098755%);stop-opacity:1;"/>
|
||||
<stop offset="0.25" style="stop-color:rgb(97.44873%,98.298645%,98.298645%);stop-opacity:1;"/>
|
||||
<stop offset="0.375" style="stop-color:rgb(97.749329%,98.498535%,98.498535%);stop-opacity:1;"/>
|
||||
<stop offset="0.5" style="stop-color:rgb(98.048401%,98.698425%,98.698425%);stop-opacity:1;"/>
|
||||
<stop offset="0.625" style="stop-color:rgb(98.348999%,98.898315%,98.898315%);stop-opacity:1;"/>
|
||||
<stop offset="0.75" style="stop-color:rgb(98.648071%,99.098206%,99.098206%);stop-opacity:1;"/>
|
||||
<stop offset="0.875" style="stop-color:rgb(98.948669%,99.298096%,99.298096%);stop-opacity:1;"/>
|
||||
<stop offset="1" style="stop-color:rgb(99.249268%,99.497986%,99.497986%);stop-opacity:1;"/>
|
||||
</linearGradient>
|
||||
<clipPath id="clip9">
|
||||
<path d="M 78 0 L 229.65625 0 L 229.65625 54 L 78 54 Z M 78 0 "/>
|
||||
</clipPath>
|
||||
<clipPath id="clip10">
|
||||
<path d="M 109 58 L 229.65625 58 L 229.65625 81.398438 L 109 81.398438 Z M 109 58 "/>
|
||||
</clipPath>
|
||||
<clipPath id="clip11">
|
||||
<path d="M 106 56 L 229 56 L 229 80 L 106 80 Z M 106 56 "/>
|
||||
</clipPath>
|
||||
<clipPath id="clip12">
|
||||
<path d="M 176.375 55.816406 L 212.382812 55.816406 C 214.585938 55.816406 218.152344 55.816406 220.355469 55.816406 C 223.15625 55.816406 228.660156 61.320312 228.660156 68.109375 C 228.660156 74.898438 223.15625 80.402344 220.355469 80.402344 C 218.152344 80.402344 214.585938 80.402344 212.382812 80.402344 L 108.414062 80.402344 C 106.210938 80.402344 106.210938 80.402344 108.414062 80.402344 C 111.214844 80.402344 116.71875 74.898438 116.71875 68.109375 C 116.71875 61.320312 111.214844 55.816406 108.414062 55.816406 C 106.210938 55.816406 106.210938 55.816406 108.414062 55.816406 L 168.40625 55.816406 C 170.605469 55.816406 174.175781 55.816406 176.375 55.816406 Z M 176.375 55.816406 "/>
|
||||
</clipPath>
|
||||
<linearGradient id="linear3" gradientUnits="userSpaceOnUse" x1="0" y1="25.00244" x2="0" y2="74.997539" gradientTransform="matrix(2.48497,0,0,-0.49173,42.29611,92.69679)">
|
||||
<stop offset="0" style="stop-color:rgb(96.998596%,97.999573%,97.999573%);stop-opacity:1;"/>
|
||||
<stop offset="0.125" style="stop-color:rgb(97.148132%,98.098755%,98.098755%);stop-opacity:1;"/>
|
||||
<stop offset="0.25" style="stop-color:rgb(97.44873%,98.298645%,98.298645%);stop-opacity:1;"/>
|
||||
<stop offset="0.375" style="stop-color:rgb(97.749329%,98.498535%,98.498535%);stop-opacity:1;"/>
|
||||
<stop offset="0.5" style="stop-color:rgb(98.048401%,98.698425%,98.698425%);stop-opacity:1;"/>
|
||||
<stop offset="0.625" style="stop-color:rgb(98.348999%,98.898315%,98.898315%);stop-opacity:1;"/>
|
||||
<stop offset="0.75" style="stop-color:rgb(98.648071%,99.098206%,99.098206%);stop-opacity:1;"/>
|
||||
<stop offset="0.875" style="stop-color:rgb(98.948669%,99.298096%,99.298096%);stop-opacity:1;"/>
|
||||
<stop offset="1" style="stop-color:rgb(99.249268%,99.497986%,99.497986%);stop-opacity:1;"/>
|
||||
</linearGradient>
|
||||
<clipPath id="clip13">
|
||||
<path d="M 78 27 L 229.65625 27 L 229.65625 81.398438 L 78 81.398438 Z M 78 27 "/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
<g id="surface1">
|
||||
<path style="fill:none;stroke-width:22.67754;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(76.96991%,79.873657%,90.252686%);stroke-opacity:1;stroke-miterlimit:10;" d="M -0.0003125 2.574 C -20.097969 2.574 -25.019844 27.409937 -45.1175 27.409937 " transform="matrix(1,0,0,-1,90.305,40.699)"/>
|
||||
<path style="fill:none;stroke-width:22.67754;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(76.96991%,79.873657%,90.252686%);stroke-opacity:1;stroke-miterlimit:10;" d="M -0.0003125 2.574 C -21.2425 2.574 -24.328437 -27.410375 -45.570625 -27.410375 " transform="matrix(1,0,0,-1,90.305,40.699)"/>
|
||||
<path style="fill:none;stroke-width:22.67754;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(76.96991%,79.873657%,90.252686%);stroke-opacity:1;stroke-miterlimit:10;" d="M -0.0003125 2.574 C 31.066094 2.574 44.566094 27.409937 75.6325 27.409937 " transform="matrix(1,0,0,-1,90.305,40.699)"/>
|
||||
<path style="fill:none;stroke-width:22.67754;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(76.96991%,79.873657%,90.252686%);stroke-opacity:1;stroke-miterlimit:10;" d="M -0.0003125 2.574 C 34.136406 2.574 47.948906 -27.410375 82.085625 -27.410375 " transform="matrix(1,0,0,-1,90.305,40.699)"/>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(50%,50%,50%);fill-opacity:0.15;" d="M 51.75 3.570312 L 74.769531 3.570312 C 76.972656 3.570312 80.539062 3.570312 82.742188 3.570312 C 85.542969 3.570312 91.046875 9.074219 91.046875 15.863281 C 91.046875 22.648438 85.542969 28.152344 82.742188 28.152344 C 80.539062 28.152344 76.972656 28.152344 74.769531 28.152344 L 20.753906 28.152344 C 18.554688 28.152344 14.984375 28.152344 12.785156 28.152344 C 9.980469 28.152344 4.476562 22.648438 4.476562 15.863281 C 4.476562 9.074219 9.980469 3.570312 12.785156 3.570312 C 14.984375 3.570312 18.554688 3.570312 20.753906 3.570312 L 43.777344 3.570312 C 45.980469 3.570312 49.546875 3.570312 51.75 3.570312 Z M 51.75 3.570312 "/>
|
||||
<g clip-path="url(#clip1)" clip-rule="nonzero">
|
||||
<g clip-path="url(#clip2)" clip-rule="nonzero">
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:url(#linear0);" d="M 1.90625 25.578125 L 1.90625 0.996094 L 88.472656 0.996094 L 88.472656 25.578125 Z M 1.90625 25.578125 "/>
|
||||
</g>
|
||||
</g>
|
||||
<path style="fill:none;stroke-width:1.99255;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(74.472046%,79.733276%,82.038879%);stroke-opacity:1;stroke-miterlimit:10;" d="M -41.129219 39.702906 L -18.109687 39.702906 C -15.906562 39.702906 -12.340156 39.702906 -10.137031 39.702906 C -7.332344 39.702906 -1.832344 34.199 -1.832344 27.409937 C -1.832344 20.620875 -7.332344 15.120875 -10.137031 15.120875 C -12.340156 15.120875 -15.906562 15.120875 -18.109687 15.120875 L -72.121406 15.120875 C -74.324531 15.120875 -77.890937 15.120875 -80.094062 15.120875 C -82.89875 15.120875 -88.39875 20.620875 -88.39875 27.409937 C -88.39875 34.199 -82.89875 39.702906 -80.094062 39.702906 C -77.890937 39.702906 -74.324531 39.702906 -72.121406 39.702906 L -49.101875 39.702906 C -46.89875 39.702906 -43.332344 39.702906 -41.129219 39.702906 Z M -41.129219 39.702906 " transform="matrix(1,0,0,-1,90.305,40.699)"/>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph0-1" x="11.008" y="17.076"/>
|
||||
<use xlink:href="#glyph0-2" x="19.189825" y="17.076"/>
|
||||
<use xlink:href="#glyph0-3" x="25.250921" y="17.076"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph0-4" x="36.610567" y="17.076"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph0-5" x="43.583664" y="17.076"/>
|
||||
<use xlink:href="#glyph0-6" x="48.431668" y="17.076"/>
|
||||
<use xlink:href="#glyph0-7" x="52.704762" y="17.076"/>
|
||||
<use xlink:href="#glyph0-8" x="61.795315" y="17.076"/>
|
||||
<use xlink:href="#glyph0-9" x="64.825863" y="17.076"/>
|
||||
<use xlink:href="#glyph0-10" x="70.886959" y="17.076"/>
|
||||
<use xlink:href="#glyph0-11" x="76.341509" y="17.076"/>
|
||||
</g>
|
||||
<g clip-path="url(#clip3)" clip-rule="nonzero">
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(50%,50%,50%);fill-opacity:0.15;" d="M 51.292969 58.390625 L 74.769531 58.390625 C 76.972656 58.390625 80.539062 58.390625 82.742188 58.390625 C 85.542969 58.390625 91.046875 63.894531 91.046875 70.683594 C 91.046875 77.472656 85.542969 82.976562 82.742188 82.976562 C 80.539062 82.976562 76.972656 82.976562 74.769531 82.976562 L 19.847656 82.976562 C 17.644531 82.976562 14.078125 82.976562 11.875 82.976562 C 9.074219 82.976562 3.570312 77.472656 3.570312 70.683594 C 3.570312 63.894531 9.074219 58.390625 11.875 58.390625 C 14.078125 58.390625 17.644531 58.390625 19.847656 58.390625 L 43.324219 58.390625 C 45.523438 58.390625 49.09375 58.390625 51.292969 58.390625 Z M 51.292969 58.390625 "/>
|
||||
</g>
|
||||
<g clip-path="url(#clip4)" clip-rule="nonzero">
|
||||
<g clip-path="url(#clip5)" clip-rule="nonzero">
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:url(#linear1);" d="M 0.996094 80.402344 L 0.996094 55.816406 L 88.472656 55.816406 L 88.472656 80.402344 Z M 0.996094 80.402344 "/>
|
||||
</g>
|
||||
</g>
|
||||
<g clip-path="url(#clip6)" clip-rule="nonzero">
|
||||
<path style="fill:none;stroke-width:1.99255;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(74.472046%,79.733276%,82.038879%);stroke-opacity:1;stroke-miterlimit:10;" d="M -41.58625 -15.117406 L -18.109687 -15.117406 C -15.906562 -15.117406 -12.340156 -15.117406 -10.137031 -15.117406 C -7.332344 -15.117406 -1.832344 -20.621313 -1.832344 -27.410375 C -1.832344 -34.199438 -7.332344 -39.703344 -10.137031 -39.703344 C -12.340156 -39.703344 -15.906562 -39.703344 -18.109687 -39.703344 L -73.031562 -39.703344 C -75.234687 -39.703344 -78.801094 -39.703344 -81.004219 -39.703344 C -83.805 -39.703344 -89.308906 -34.199438 -89.308906 -27.410375 C -89.308906 -20.621313 -83.805 -15.117406 -81.004219 -15.117406 C -78.801094 -15.117406 -75.234687 -15.117406 -73.031562 -15.117406 L -49.555 -15.117406 C -47.355781 -15.117406 -43.785469 -15.117406 -41.58625 -15.117406 Z M -41.58625 -15.117406 " transform="matrix(1,0,0,-1,90.305,40.699)"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph0-12" x="10.099" y="71.898"/>
|
||||
<use xlink:href="#glyph0-13" x="18.280825" y="71.898"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph0-14" x="25.096831" y="71.898"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph0-4" x="36.619022" y="71.898"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph0-5" x="43.58121" y="71.898"/>
|
||||
<use xlink:href="#glyph0-6" x="48.429214" y="71.898"/>
|
||||
<use xlink:href="#glyph0-7" x="52.702308" y="71.898"/>
|
||||
<use xlink:href="#glyph0-8" x="61.792861" y="71.898"/>
|
||||
<use xlink:href="#glyph0-9" x="64.823409" y="71.898"/>
|
||||
<use xlink:href="#glyph0-10" x="70.884505" y="71.898"/>
|
||||
<use xlink:href="#glyph0-11" x="76.339055" y="71.898"/>
|
||||
</g>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(50%,50%,50%);fill-opacity:0.15;" d="M 172.496094 3.570312 L 202.046875 3.570312 C 204.25 3.570312 207.816406 3.570312 210.019531 3.570312 C 212.824219 3.570312 218.324219 9.074219 218.324219 15.863281 C 218.324219 22.648438 212.824219 28.152344 210.019531 28.152344 C 207.816406 28.152344 204.25 28.152344 202.046875 28.152344 L 110.988281 28.152344 C 108.785156 28.152344 108.785156 28.152344 110.988281 28.152344 C 113.789062 28.152344 119.292969 22.648438 119.292969 15.863281 C 119.292969 9.074219 113.789062 3.570312 110.988281 3.570312 C 108.785156 3.570312 108.785156 3.570312 110.988281 3.570312 L 164.527344 3.570312 C 166.726562 3.570312 170.292969 3.570312 172.496094 3.570312 Z M 172.496094 3.570312 "/>
|
||||
<g clip-path="url(#clip7)" clip-rule="nonzero">
|
||||
<g clip-path="url(#clip8)" clip-rule="nonzero">
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:url(#linear2);" d="M 106.210938 25.578125 L 106.210938 0.996094 L 215.753906 0.996094 L 215.753906 25.578125 Z M 106.210938 25.578125 "/>
|
||||
</g>
|
||||
</g>
|
||||
<g clip-path="url(#clip9)" clip-rule="nonzero">
|
||||
<path style="fill:none;stroke-width:1.99255;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(74.472046%,79.733276%,82.038879%);stroke-opacity:1;stroke-miterlimit:10;" d="M 79.616875 39.702906 L 109.171563 39.702906 C 111.370781 39.702906 114.937188 39.702906 117.140313 39.702906 C 119.945 39.702906 125.448906 34.199 125.448906 27.409937 C 125.448906 20.620875 119.945 15.120875 117.140313 15.120875 C 114.937188 15.120875 111.370781 15.120875 109.171563 15.120875 L 18.109063 15.120875 C 15.905938 15.120875 15.905938 15.120875 18.109063 15.120875 C 20.909844 15.120875 26.41375 20.620875 26.41375 27.409937 C 26.41375 34.199 20.909844 39.702906 18.109063 39.702906 C 15.905938 39.702906 15.905938 39.702906 18.109063 39.702906 L 71.648125 39.702906 C 73.847344 39.702906 77.417656 39.702906 79.616875 39.702906 Z M 79.616875 39.702906 " transform="matrix(1,0,0,-1,90.305,40.699)"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph0-15" x="125.223" y="17.076"/>
|
||||
<use xlink:href="#glyph0-5" x="133.253189" y="17.076"/>
|
||||
<use xlink:href="#glyph0-10" x="138.101193" y="17.076"/>
|
||||
<use xlink:href="#glyph0-11" x="143.555743" y="17.076"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph0-2" x="150.219021" y="17.076"/>
|
||||
<use xlink:href="#glyph0-7" x="156.280117" y="17.076"/>
|
||||
<use xlink:href="#glyph0-10" x="165.37067" y="17.076"/>
|
||||
<use xlink:href="#glyph0-6" x="170.82522" y="17.076"/>
|
||||
<use xlink:href="#glyph0-16" x="175.098314" y="17.076"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph0-14" x="182.984503" y="17.076"/>
|
||||
<use xlink:href="#glyph0-10" x="190.863055" y="17.076"/>
|
||||
<use xlink:href="#glyph0-6" x="196.317605" y="17.076"/>
|
||||
<use xlink:href="#glyph0-17" x="200.590699" y="17.076"/>
|
||||
</g>
|
||||
<g clip-path="url(#clip10)" clip-rule="nonzero">
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(50%,50%,50%);fill-opacity:0.15;" d="M 178.949219 58.390625 L 214.957031 58.390625 C 217.160156 58.390625 220.726562 58.390625 222.929688 58.390625 C 225.730469 58.390625 231.234375 63.894531 231.234375 70.683594 C 231.234375 77.472656 225.730469 82.976562 222.929688 82.976562 C 220.726562 82.976562 217.160156 82.976562 214.957031 82.976562 L 110.988281 82.976562 C 108.785156 82.976562 108.785156 82.976562 110.988281 82.976562 C 113.789062 82.976562 119.292969 77.472656 119.292969 70.683594 C 119.292969 63.894531 113.789062 58.390625 110.988281 58.390625 C 108.785156 58.390625 108.785156 58.390625 110.988281 58.390625 L 170.980469 58.390625 C 173.179688 58.390625 176.75 58.390625 178.949219 58.390625 Z M 178.949219 58.390625 "/>
|
||||
</g>
|
||||
<g clip-path="url(#clip11)" clip-rule="nonzero">
|
||||
<g clip-path="url(#clip12)" clip-rule="nonzero">
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:url(#linear3);" d="M 106.210938 80.402344 L 106.210938 55.816406 L 228.660156 55.816406 L 228.660156 80.402344 Z M 106.210938 80.402344 "/>
|
||||
</g>
|
||||
</g>
|
||||
<g clip-path="url(#clip13)" clip-rule="nonzero">
|
||||
<path style="fill:none;stroke-width:1.99255;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(74.472046%,79.733276%,82.038879%);stroke-opacity:1;stroke-miterlimit:10;" d="M 86.07 -15.117406 L 122.077813 -15.117406 C 124.280938 -15.117406 127.847344 -15.117406 130.050469 -15.117406 C 132.85125 -15.117406 138.355156 -20.621313 138.355156 -27.410375 C 138.355156 -34.199438 132.85125 -39.703344 130.050469 -39.703344 C 127.847344 -39.703344 124.280938 -39.703344 122.077813 -39.703344 L 18.109063 -39.703344 C 15.905938 -39.703344 15.905938 -39.703344 18.109063 -39.703344 C 20.909844 -39.703344 26.41375 -34.199438 26.41375 -27.410375 C 26.41375 -20.621313 20.909844 -15.117406 18.109063 -15.117406 C 15.905938 -15.117406 15.905938 -15.117406 18.109063 -15.117406 L 78.10125 -15.117406 C 80.300469 -15.117406 83.870781 -15.117406 86.07 -15.117406 Z M 86.07 -15.117406 " transform="matrix(1,0,0,-1,90.305,40.699)"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph0-18" x="125.223" y="71.898"/>
|
||||
<use xlink:href="#glyph0-8" x="133.404825" y="71.898"/>
|
||||
<use xlink:href="#glyph0-6" x="136.435373" y="71.898"/>
|
||||
<use xlink:href="#glyph0-16" x="140.708467" y="71.898"/>
|
||||
<use xlink:href="#glyph0-19" x="144.951016" y="71.898"/>
|
||||
<use xlink:href="#glyph0-10" x="151.012112" y="71.898"/>
|
||||
<use xlink:href="#glyph0-11" x="156.466662" y="71.898"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph0-2" x="163.129941" y="71.898"/>
|
||||
<use xlink:href="#glyph0-7" x="169.191037" y="71.898"/>
|
||||
<use xlink:href="#glyph0-10" x="178.28159" y="71.898"/>
|
||||
<use xlink:href="#glyph0-6" x="183.73614" y="71.898"/>
|
||||
<use xlink:href="#glyph0-16" x="188.009234" y="71.898"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph0-14" x="195.895423" y="71.898"/>
|
||||
<use xlink:href="#glyph0-10" x="203.773975" y="71.898"/>
|
||||
<use xlink:href="#glyph0-6" x="209.228525" y="71.898"/>
|
||||
<use xlink:href="#glyph0-17" x="213.501619" y="71.898"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 39 KiB |
3562
docs/_images/tikz-30c9c7049675e5b06e8364c63b0718d51986e380.svg
Normal file
|
After Width: | Height: | Size: 785 KiB |
|
Before Width: | Height: | Size: 52 KiB |
631
docs/_images/tikz-5b402031da401947efbeae7481d47bd35196791d.svg
Normal file
@@ -0,0 +1,631 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="406.869pt" height="187.709pt" viewBox="0 0 406.869 187.709" version="1.1">
|
||||
<defs>
|
||||
<g>
|
||||
<symbol overflow="visible" id="glyph0-0">
|
||||
<path style="stroke:none;" d=""/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-1">
|
||||
<path style="stroke:none;" d="M 5.796875 -2.578125 L 5.546875 -2.578125 C 5.4375 -1.5625 5.296875 -0.3125 3.546875 -0.3125 L 2.734375 -0.3125 C 2.265625 -0.3125 2.25 -0.375 2.25 -0.703125 L 2.25 -6.015625 C 2.25 -6.359375 2.25 -6.5 3.1875 -6.5 L 3.515625 -6.5 L 3.515625 -6.8125 C 3.15625 -6.78125 2.25 -6.78125 1.84375 -6.78125 C 1.453125 -6.78125 0.671875 -6.78125 0.328125 -6.8125 L 0.328125 -6.5 L 0.5625 -6.5 C 1.328125 -6.5 1.359375 -6.390625 1.359375 -6.03125 L 1.359375 -0.78125 C 1.359375 -0.421875 1.328125 -0.3125 0.5625 -0.3125 L 0.328125 -0.3125 L 0.328125 0 L 5.515625 0 Z M 5.796875 -2.578125 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-2">
|
||||
<path style="stroke:none;" d="M 1.765625 -4.40625 L 0.375 -4.296875 L 0.375 -3.984375 C 1.015625 -3.984375 1.109375 -3.921875 1.109375 -3.4375 L 1.109375 -0.75 C 1.109375 -0.3125 1 -0.3125 0.328125 -0.3125 L 0.328125 0 C 0.640625 -0.015625 1.1875 -0.03125 1.421875 -0.03125 C 1.78125 -0.03125 2.125 -0.015625 2.46875 0 L 2.46875 -0.3125 C 1.796875 -0.3125 1.765625 -0.359375 1.765625 -0.75 Z M 1.796875 -6.140625 C 1.796875 -6.453125 1.5625 -6.671875 1.28125 -6.671875 C 0.96875 -6.671875 0.75 -6.40625 0.75 -6.140625 C 0.75 -5.875 0.96875 -5.609375 1.28125 -5.609375 C 1.5625 -5.609375 1.796875 -5.828125 1.796875 -6.140625 Z M 1.796875 -6.140625 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-3">
|
||||
<path style="stroke:none;" d="M 1.09375 -3.421875 L 1.09375 -0.75 C 1.09375 -0.3125 0.984375 -0.3125 0.3125 -0.3125 L 0.3125 0 C 0.671875 -0.015625 1.171875 -0.03125 1.453125 -0.03125 C 1.703125 -0.03125 2.21875 -0.015625 2.5625 0 L 2.5625 -0.3125 C 1.890625 -0.3125 1.78125 -0.3125 1.78125 -0.75 L 1.78125 -2.59375 C 1.78125 -3.625 2.5 -4.1875 3.125 -4.1875 C 3.765625 -4.1875 3.875 -3.65625 3.875 -3.078125 L 3.875 -0.75 C 3.875 -0.3125 3.765625 -0.3125 3.09375 -0.3125 L 3.09375 0 C 3.4375 -0.015625 3.953125 -0.03125 4.21875 -0.03125 C 4.46875 -0.03125 5 -0.015625 5.328125 0 L 5.328125 -0.3125 C 4.8125 -0.3125 4.5625 -0.3125 4.5625 -0.609375 L 4.5625 -2.515625 C 4.5625 -3.375 4.5625 -3.671875 4.25 -4.03125 C 4.109375 -4.203125 3.78125 -4.40625 3.203125 -4.40625 C 2.46875 -4.40625 2 -3.984375 1.71875 -3.359375 L 1.71875 -4.40625 L 0.3125 -4.296875 L 0.3125 -3.984375 C 1.015625 -3.984375 1.09375 -3.921875 1.09375 -3.421875 Z M 1.09375 -3.421875 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-4">
|
||||
<path style="stroke:none;" d="M 3.890625 -0.78125 L 3.890625 0.109375 L 5.328125 0 L 5.328125 -0.3125 C 4.640625 -0.3125 4.5625 -0.375 4.5625 -0.875 L 4.5625 -4.40625 L 3.09375 -4.296875 L 3.09375 -3.984375 C 3.78125 -3.984375 3.875 -3.921875 3.875 -3.421875 L 3.875 -1.65625 C 3.875 -0.78125 3.390625 -0.109375 2.65625 -0.109375 C 1.828125 -0.109375 1.78125 -0.578125 1.78125 -1.09375 L 1.78125 -4.40625 L 0.3125 -4.296875 L 0.3125 -3.984375 C 1.09375 -3.984375 1.09375 -3.953125 1.09375 -3.078125 L 1.09375 -1.578125 C 1.09375 -0.796875 1.09375 0.109375 2.609375 0.109375 C 3.171875 0.109375 3.609375 -0.171875 3.890625 -0.78125 Z M 3.890625 -0.78125 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-5">
|
||||
<path style="stroke:none;" d="M 2.859375 -2.34375 C 3.15625 -2.71875 3.53125 -3.203125 3.78125 -3.46875 C 4.09375 -3.828125 4.5 -3.984375 4.96875 -3.984375 L 4.96875 -4.296875 C 4.703125 -4.28125 4.40625 -4.265625 4.140625 -4.265625 C 3.84375 -4.265625 3.3125 -4.28125 3.1875 -4.296875 L 3.1875 -3.984375 C 3.40625 -3.96875 3.484375 -3.84375 3.484375 -3.671875 C 3.484375 -3.515625 3.375 -3.390625 3.328125 -3.328125 L 2.71875 -2.546875 L 1.9375 -3.5625 C 1.84375 -3.65625 1.84375 -3.671875 1.84375 -3.734375 C 1.84375 -3.890625 2 -3.984375 2.1875 -3.984375 L 2.1875 -4.296875 C 1.9375 -4.28125 1.28125 -4.265625 1.109375 -4.265625 C 0.90625 -4.265625 0.4375 -4.28125 0.171875 -4.296875 L 0.171875 -3.984375 C 0.875 -3.984375 0.875 -3.984375 1.34375 -3.375 L 2.328125 -2.09375 L 1.390625 -0.90625 C 0.921875 -0.328125 0.328125 -0.3125 0.125 -0.3125 L 0.125 0 C 0.375 -0.015625 0.6875 -0.03125 0.953125 -0.03125 C 1.234375 -0.03125 1.65625 -0.015625 1.890625 0 L 1.890625 -0.3125 C 1.671875 -0.34375 1.609375 -0.46875 1.609375 -0.625 C 1.609375 -0.84375 1.890625 -1.171875 2.5 -1.890625 L 3.265625 -0.890625 C 3.34375 -0.78125 3.46875 -0.625 3.46875 -0.5625 C 3.46875 -0.46875 3.375 -0.3125 3.109375 -0.3125 L 3.109375 0 C 3.40625 -0.015625 3.96875 -0.03125 4.1875 -0.03125 C 4.453125 -0.03125 4.84375 -0.015625 5.140625 0 L 5.140625 -0.3125 C 4.609375 -0.3125 4.421875 -0.328125 4.203125 -0.625 Z M 2.859375 -2.34375 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-6">
|
||||
<path style="stroke:none;" d="M 3.984375 -4.171875 L 5.78125 -5.90625 C 5.859375 -5.984375 6.390625 -6.484375 7.203125 -6.5 L 7.203125 -6.8125 C 6.9375 -6.78125 6.625 -6.78125 6.34375 -6.78125 C 5.984375 -6.78125 5.421875 -6.78125 5.078125 -6.8125 L 5.078125 -6.5 C 5.484375 -6.484375 5.546875 -6.265625 5.546875 -6.171875 C 5.546875 -6.015625 5.4375 -5.90625 5.359375 -5.84375 L 2.25 -2.859375 L 2.25 -6.03125 C 2.25 -6.390625 2.265625 -6.5 3.03125 -6.5 L 3.265625 -6.5 L 3.265625 -6.8125 C 2.921875 -6.78125 2.1875 -6.78125 1.796875 -6.78125 C 1.421875 -6.78125 0.671875 -6.78125 0.328125 -6.8125 L 0.328125 -6.5 L 0.5625 -6.5 C 1.328125 -6.5 1.359375 -6.390625 1.359375 -6.03125 L 1.359375 -0.78125 C 1.359375 -0.421875 1.328125 -0.3125 0.5625 -0.3125 L 0.328125 -0.3125 L 0.328125 0 C 0.671875 -0.03125 1.421875 -0.03125 1.796875 -0.03125 C 2.171875 -0.03125 2.921875 -0.03125 3.265625 0 L 3.265625 -0.3125 L 3.03125 -0.3125 C 2.265625 -0.3125 2.25 -0.421875 2.25 -0.78125 L 2.25 -2.515625 L 3.40625 -3.625 L 5.203125 -0.953125 C 5.265625 -0.859375 5.359375 -0.734375 5.359375 -0.609375 C 5.359375 -0.3125 4.96875 -0.3125 4.765625 -0.3125 L 4.765625 0 C 5.109375 -0.03125 5.8125 -0.03125 6.1875 -0.03125 C 6.546875 -0.03125 6.921875 -0.015625 7.34375 0 L 7.34375 -0.3125 C 6.796875 -0.3125 6.59375 -0.34375 6.296875 -0.78125 Z M 3.984375 -4.171875 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-7">
|
||||
<path style="stroke:none;" d="M 1.109375 -2.515625 C 1.171875 -4 2.015625 -4.25 2.359375 -4.25 C 3.375 -4.25 3.484375 -2.90625 3.484375 -2.515625 Z M 1.109375 -2.296875 L 3.890625 -2.296875 C 4.109375 -2.296875 4.140625 -2.296875 4.140625 -2.515625 C 4.140625 -3.5 3.59375 -4.46875 2.359375 -4.46875 C 1.203125 -4.46875 0.28125 -3.4375 0.28125 -2.1875 C 0.28125 -0.859375 1.328125 0.109375 2.46875 0.109375 C 3.6875 0.109375 4.140625 -1 4.140625 -1.1875 C 4.140625 -1.28125 4.0625 -1.3125 4 -1.3125 C 3.921875 -1.3125 3.890625 -1.25 3.875 -1.171875 C 3.53125 -0.140625 2.625 -0.140625 2.53125 -0.140625 C 2.03125 -0.140625 1.640625 -0.4375 1.40625 -0.8125 C 1.109375 -1.28125 1.109375 -1.9375 1.109375 -2.296875 Z M 1.109375 -2.296875 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-8">
|
||||
<path style="stroke:none;" d="M 1.671875 -3.3125 L 1.671875 -4.40625 L 0.28125 -4.296875 L 0.28125 -3.984375 C 0.984375 -3.984375 1.0625 -3.921875 1.0625 -3.421875 L 1.0625 -0.75 C 1.0625 -0.3125 0.953125 -0.3125 0.28125 -0.3125 L 0.28125 0 C 0.671875 -0.015625 1.140625 -0.03125 1.421875 -0.03125 C 1.8125 -0.03125 2.28125 -0.03125 2.6875 0 L 2.6875 -0.3125 L 2.46875 -0.3125 C 1.734375 -0.3125 1.71875 -0.421875 1.71875 -0.78125 L 1.71875 -2.3125 C 1.71875 -3.296875 2.140625 -4.1875 2.890625 -4.1875 C 2.953125 -4.1875 2.984375 -4.1875 3 -4.171875 C 2.96875 -4.171875 2.765625 -4.046875 2.765625 -3.78125 C 2.765625 -3.515625 2.984375 -3.359375 3.203125 -3.359375 C 3.375 -3.359375 3.625 -3.484375 3.625 -3.796875 C 3.625 -4.109375 3.3125 -4.40625 2.890625 -4.40625 C 2.15625 -4.40625 1.796875 -3.734375 1.671875 -3.3125 Z M 1.671875 -3.3125 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-9">
|
||||
<path style="stroke:none;" d="M 1.765625 -6.921875 L 0.328125 -6.8125 L 0.328125 -6.5 C 1.03125 -6.5 1.109375 -6.4375 1.109375 -5.9375 L 1.109375 -0.75 C 1.109375 -0.3125 1 -0.3125 0.328125 -0.3125 L 0.328125 0 C 0.65625 -0.015625 1.1875 -0.03125 1.4375 -0.03125 C 1.6875 -0.03125 2.171875 -0.015625 2.546875 0 L 2.546875 -0.3125 C 1.875 -0.3125 1.765625 -0.3125 1.765625 -0.75 Z M 1.765625 -6.921875 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-10">
|
||||
<path style="stroke:none;" d="M 3.484375 -3.875 L 2.203125 -4.171875 C 1.578125 -4.328125 1.203125 -4.859375 1.203125 -5.4375 C 1.203125 -6.140625 1.734375 -6.75 2.515625 -6.75 C 4.171875 -6.75 4.390625 -5.109375 4.453125 -4.671875 C 4.46875 -4.609375 4.46875 -4.546875 4.578125 -4.546875 C 4.703125 -4.546875 4.703125 -4.59375 4.703125 -4.78125 L 4.703125 -6.78125 C 4.703125 -6.953125 4.703125 -7.03125 4.59375 -7.03125 C 4.53125 -7.03125 4.515625 -7.015625 4.453125 -6.890625 L 4.09375 -6.328125 C 3.796875 -6.625 3.390625 -7.03125 2.5 -7.03125 C 1.390625 -7.03125 0.5625 -6.15625 0.5625 -5.09375 C 0.5625 -4.265625 1.09375 -3.53125 1.859375 -3.265625 C 1.96875 -3.234375 2.484375 -3.109375 3.1875 -2.9375 C 3.453125 -2.875 3.75 -2.796875 4.03125 -2.4375 C 4.234375 -2.171875 4.34375 -1.84375 4.34375 -1.515625 C 4.34375 -0.8125 3.84375 -0.09375 3 -0.09375 C 2.71875 -0.09375 1.953125 -0.140625 1.421875 -0.625 C 0.84375 -1.171875 0.8125 -1.796875 0.8125 -2.15625 C 0.796875 -2.265625 0.71875 -2.265625 0.6875 -2.265625 C 0.5625 -2.265625 0.5625 -2.1875 0.5625 -2.015625 L 0.5625 -0.015625 C 0.5625 0.15625 0.5625 0.21875 0.671875 0.21875 C 0.734375 0.21875 0.75 0.203125 0.8125 0.09375 C 0.8125 0.078125 0.84375 0.046875 1.171875 -0.484375 C 1.484375 -0.140625 2.125 0.21875 3.015625 0.21875 C 4.171875 0.21875 4.96875 -0.75 4.96875 -1.859375 C 4.96875 -2.84375 4.3125 -3.671875 3.484375 -3.875 Z M 3.484375 -3.875 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-11">
|
||||
<path style="stroke:none;" d="M 2.890625 -3.515625 C 3.703125 -3.78125 4.28125 -4.46875 4.28125 -5.265625 C 4.28125 -6.078125 3.40625 -6.640625 2.453125 -6.640625 C 1.453125 -6.640625 0.6875 -6.046875 0.6875 -5.28125 C 0.6875 -4.953125 0.90625 -4.765625 1.203125 -4.765625 C 1.5 -4.765625 1.703125 -4.984375 1.703125 -5.28125 C 1.703125 -5.765625 1.234375 -5.765625 1.09375 -5.765625 C 1.390625 -6.265625 2.046875 -6.390625 2.40625 -6.390625 C 2.828125 -6.390625 3.375 -6.171875 3.375 -5.28125 C 3.375 -5.15625 3.34375 -4.578125 3.09375 -4.140625 C 2.796875 -3.65625 2.453125 -3.625 2.203125 -3.625 C 2.125 -3.609375 1.890625 -3.59375 1.8125 -3.59375 C 1.734375 -3.578125 1.671875 -3.5625 1.671875 -3.46875 C 1.671875 -3.359375 1.734375 -3.359375 1.90625 -3.359375 L 2.34375 -3.359375 C 3.15625 -3.359375 3.53125 -2.6875 3.53125 -1.703125 C 3.53125 -0.34375 2.84375 -0.0625 2.40625 -0.0625 C 1.96875 -0.0625 1.21875 -0.234375 0.875 -0.8125 C 1.21875 -0.765625 1.53125 -0.984375 1.53125 -1.359375 C 1.53125 -1.71875 1.265625 -1.921875 0.984375 -1.921875 C 0.734375 -1.921875 0.421875 -1.78125 0.421875 -1.34375 C 0.421875 -0.4375 1.34375 0.21875 2.4375 0.21875 C 3.65625 0.21875 4.5625 -0.6875 4.5625 -1.703125 C 4.5625 -2.515625 3.921875 -3.296875 2.890625 -3.515625 Z M 2.890625 -3.515625 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-12">
|
||||
<path style="stroke:none;" d="M 0.5625 -3.40625 C 0.5625 -1.34375 2.171875 0.21875 4.03125 0.21875 C 5.65625 0.21875 6.625 -1.171875 6.625 -2.328125 C 6.625 -2.421875 6.625 -2.5 6.5 -2.5 C 6.390625 -2.5 6.390625 -2.4375 6.375 -2.328125 C 6.296875 -0.90625 5.234375 -0.09375 4.140625 -0.09375 C 3.53125 -0.09375 1.578125 -0.421875 1.578125 -3.40625 C 1.578125 -6.375 3.53125 -6.71875 4.140625 -6.71875 C 5.21875 -6.71875 6.109375 -5.8125 6.3125 -4.359375 C 6.328125 -4.21875 6.328125 -4.1875 6.46875 -4.1875 C 6.625 -4.1875 6.625 -4.21875 6.625 -4.421875 L 6.625 -6.78125 C 6.625 -6.953125 6.625 -7.03125 6.515625 -7.03125 C 6.484375 -7.03125 6.4375 -7.03125 6.359375 -6.90625 L 5.859375 -6.171875 C 5.5 -6.53125 4.984375 -7.03125 4.03125 -7.03125 C 2.15625 -7.03125 0.5625 -5.4375 0.5625 -3.40625 Z M 0.5625 -3.40625 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-13">
|
||||
<path style="stroke:none;" d="M 1.265625 -0.765625 L 2.328125 -1.796875 C 3.875 -3.171875 4.46875 -3.703125 4.46875 -4.703125 C 4.46875 -5.84375 3.578125 -6.640625 2.359375 -6.640625 C 1.234375 -6.640625 0.5 -5.71875 0.5 -4.828125 C 0.5 -4.28125 1 -4.28125 1.03125 -4.28125 C 1.203125 -4.28125 1.546875 -4.390625 1.546875 -4.8125 C 1.546875 -5.0625 1.359375 -5.328125 1.015625 -5.328125 C 0.9375 -5.328125 0.921875 -5.328125 0.890625 -5.3125 C 1.109375 -5.96875 1.65625 -6.328125 2.234375 -6.328125 C 3.140625 -6.328125 3.5625 -5.515625 3.5625 -4.703125 C 3.5625 -3.90625 3.078125 -3.125 2.515625 -2.5 L 0.609375 -0.375 C 0.5 -0.265625 0.5 -0.234375 0.5 0 L 4.203125 0 L 4.46875 -1.734375 L 4.234375 -1.734375 C 4.171875 -1.4375 4.109375 -1 4 -0.84375 C 3.9375 -0.765625 3.28125 -0.765625 3.0625 -0.765625 Z M 1.265625 -0.765625 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-14">
|
||||
<path style="stroke:none;" d="M 2.9375 -1.640625 L 2.9375 -0.78125 C 2.9375 -0.421875 2.90625 -0.3125 2.171875 -0.3125 L 1.96875 -0.3125 L 1.96875 0 C 2.375 -0.03125 2.890625 -0.03125 3.3125 -0.03125 C 3.734375 -0.03125 4.25 -0.03125 4.671875 0 L 4.671875 -0.3125 L 4.453125 -0.3125 C 3.71875 -0.3125 3.703125 -0.421875 3.703125 -0.78125 L 3.703125 -1.640625 L 4.6875 -1.640625 L 4.6875 -1.953125 L 3.703125 -1.953125 L 3.703125 -6.484375 C 3.703125 -6.6875 3.703125 -6.75 3.53125 -6.75 C 3.453125 -6.75 3.421875 -6.75 3.34375 -6.625 L 0.28125 -1.953125 L 0.28125 -1.640625 Z M 2.984375 -1.953125 L 0.5625 -1.953125 L 2.984375 -5.671875 Z M 2.984375 -1.953125 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-15">
|
||||
<path style="stroke:none;" d="M 4.6875 -2.140625 C 4.6875 -3.40625 3.703125 -4.46875 2.5 -4.46875 C 1.25 -4.46875 0.28125 -3.375 0.28125 -2.140625 C 0.28125 -0.84375 1.3125 0.109375 2.484375 0.109375 C 3.6875 0.109375 4.6875 -0.875 4.6875 -2.140625 Z M 2.5 -0.140625 C 2.0625 -0.140625 1.625 -0.34375 1.359375 -0.8125 C 1.109375 -1.25 1.109375 -1.859375 1.109375 -2.21875 C 1.109375 -2.609375 1.109375 -3.140625 1.34375 -3.578125 C 1.609375 -4.03125 2.078125 -4.25 2.484375 -4.25 C 2.921875 -4.25 3.34375 -4.03125 3.609375 -3.59375 C 3.875 -3.171875 3.875 -2.59375 3.875 -2.21875 C 3.875 -1.859375 3.875 -1.3125 3.65625 -0.875 C 3.421875 -0.421875 2.984375 -0.140625 2.5 -0.140625 Z M 2.5 -0.140625 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-16">
|
||||
<path style="stroke:none;" d="M 1.71875 -3.984375 L 3.15625 -3.984375 L 3.15625 -4.296875 L 1.71875 -4.296875 L 1.71875 -6.125 L 1.46875 -6.125 C 1.46875 -5.3125 1.171875 -4.25 0.1875 -4.203125 L 0.1875 -3.984375 L 1.03125 -3.984375 L 1.03125 -1.234375 C 1.03125 -0.015625 1.96875 0.109375 2.328125 0.109375 C 3.03125 0.109375 3.3125 -0.59375 3.3125 -1.234375 L 3.3125 -1.796875 L 3.0625 -1.796875 L 3.0625 -1.25 C 3.0625 -0.515625 2.765625 -0.140625 2.390625 -0.140625 C 1.71875 -0.140625 1.71875 -1.046875 1.71875 -1.21875 Z M 1.71875 -3.984375 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-17">
|
||||
<path style="stroke:none;" d="M 0.34375 -6.8125 L 0.34375 -6.5 L 0.59375 -6.5 C 1.359375 -6.5 1.375 -6.390625 1.375 -6.03125 L 1.375 -0.78125 C 1.375 -0.421875 1.359375 -0.3125 0.59375 -0.3125 L 0.34375 -0.3125 L 0.34375 0 L 4 0 C 5.671875 0 7.046875 -1.46875 7.046875 -3.34375 C 7.046875 -5.25 5.703125 -6.8125 4 -6.8125 Z M 2.71875 -0.3125 C 2.25 -0.3125 2.234375 -0.375 2.234375 -0.703125 L 2.234375 -6.09375 C 2.234375 -6.4375 2.25 -6.5 2.71875 -6.5 L 3.71875 -6.5 C 4.34375 -6.5 5.03125 -6.28125 5.53125 -5.578125 C 5.96875 -4.984375 6.046875 -4.125 6.046875 -3.34375 C 6.046875 -2.25 5.859375 -1.640625 5.5 -1.15625 C 5.296875 -0.890625 4.734375 -0.3125 3.734375 -0.3125 Z M 2.71875 -0.3125 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-18">
|
||||
<path style="stroke:none;" d="M 4.140625 -3.3125 C 4.234375 -3.546875 4.40625 -3.984375 5.0625 -3.984375 L 5.0625 -4.296875 C 4.828125 -4.28125 4.546875 -4.265625 4.3125 -4.265625 C 4.078125 -4.265625 3.625 -4.28125 3.453125 -4.296875 L 3.453125 -3.984375 C 3.8125 -3.984375 3.921875 -3.75 3.921875 -3.5625 C 3.921875 -3.46875 3.90625 -3.421875 3.875 -3.3125 L 2.84375 -0.78125 L 1.734375 -3.5625 C 1.671875 -3.6875 1.671875 -3.703125 1.671875 -3.734375 C 1.671875 -3.984375 2.0625 -3.984375 2.25 -3.984375 L 2.25 -4.296875 C 1.9375 -4.28125 1.390625 -4.265625 1.15625 -4.265625 C 0.890625 -4.265625 0.484375 -4.28125 0.1875 -4.296875 L 0.1875 -3.984375 C 0.8125 -3.984375 0.859375 -3.921875 0.984375 -3.625 L 2.421875 -0.078125 C 2.484375 0.0625 2.5 0.109375 2.625 0.109375 C 2.765625 0.109375 2.796875 0.015625 2.84375 -0.078125 Z M 4.140625 -3.3125 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-19">
|
||||
<path style="stroke:none;" d="M 5.90625 -0.625 C 6.046875 -0.40625 6.4375 -0.015625 6.546875 -0.015625 C 6.640625 -0.015625 6.640625 -0.09375 6.640625 -0.234375 L 6.640625 -1.96875 C 6.640625 -2.359375 6.671875 -2.40625 7.328125 -2.40625 L 7.328125 -2.71875 C 6.953125 -2.71875 6.40625 -2.6875 6.109375 -2.6875 C 5.71875 -2.6875 4.859375 -2.6875 4.5 -2.71875 L 4.5 -2.40625 L 4.828125 -2.40625 C 5.71875 -2.40625 5.75 -2.296875 5.75 -1.9375 L 5.75 -1.296875 C 5.75 -0.171875 4.484375 -0.09375 4.203125 -0.09375 C 3.5625 -0.09375 1.578125 -0.4375 1.578125 -3.40625 C 1.578125 -6.390625 3.546875 -6.71875 4.140625 -6.71875 C 5.21875 -6.71875 6.125 -5.828125 6.3125 -4.359375 C 6.34375 -4.21875 6.34375 -4.1875 6.484375 -4.1875 C 6.640625 -4.1875 6.640625 -4.21875 6.640625 -4.421875 L 6.640625 -6.78125 C 6.640625 -6.953125 6.640625 -7.03125 6.53125 -7.03125 C 6.484375 -7.03125 6.453125 -7.03125 6.375 -6.90625 L 5.875 -6.171875 C 5.546875 -6.484375 5.015625 -7.03125 4.03125 -7.03125 C 2.171875 -7.03125 0.5625 -5.453125 0.5625 -3.40625 C 0.5625 -1.359375 2.15625 0.21875 4.046875 0.21875 C 4.78125 0.21875 5.578125 -0.046875 5.90625 -0.625 Z M 5.90625 -0.625 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-20">
|
||||
<path style="stroke:none;" d="M 3.3125 -0.75 C 3.359375 -0.359375 3.625 0.0625 4.09375 0.0625 C 4.3125 0.0625 4.921875 -0.078125 4.921875 -0.890625 L 4.921875 -1.453125 L 4.671875 -1.453125 L 4.671875 -0.890625 C 4.671875 -0.3125 4.421875 -0.25 4.3125 -0.25 C 3.984375 -0.25 3.9375 -0.703125 3.9375 -0.75 L 3.9375 -2.734375 C 3.9375 -3.15625 3.9375 -3.546875 3.578125 -3.921875 C 3.1875 -4.3125 2.6875 -4.46875 2.21875 -4.46875 C 1.390625 -4.46875 0.703125 -4 0.703125 -3.34375 C 0.703125 -3.046875 0.90625 -2.875 1.171875 -2.875 C 1.453125 -2.875 1.625 -3.078125 1.625 -3.328125 C 1.625 -3.453125 1.578125 -3.78125 1.109375 -3.78125 C 1.390625 -4.140625 1.875 -4.25 2.1875 -4.25 C 2.6875 -4.25 3.25 -3.859375 3.25 -2.96875 L 3.25 -2.609375 C 2.734375 -2.578125 2.046875 -2.546875 1.421875 -2.25 C 0.671875 -1.90625 0.421875 -1.390625 0.421875 -0.953125 C 0.421875 -0.140625 1.390625 0.109375 2.015625 0.109375 C 2.671875 0.109375 3.125 -0.296875 3.3125 -0.75 Z M 3.25 -2.390625 L 3.25 -1.390625 C 3.25 -0.453125 2.53125 -0.109375 2.078125 -0.109375 C 1.59375 -0.109375 1.1875 -0.453125 1.1875 -0.953125 C 1.1875 -1.5 1.609375 -2.328125 3.25 -2.390625 Z M 3.25 -2.390625 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-21">
|
||||
<path style="stroke:none;" d="M 3.78125 -0.546875 L 3.78125 0.109375 L 5.25 0 L 5.25 -0.3125 C 4.5625 -0.3125 4.46875 -0.375 4.46875 -0.875 L 4.46875 -6.921875 L 3.046875 -6.8125 L 3.046875 -6.5 C 3.734375 -6.5 3.8125 -6.4375 3.8125 -5.9375 L 3.8125 -3.78125 C 3.53125 -4.140625 3.09375 -4.40625 2.5625 -4.40625 C 1.390625 -4.40625 0.34375 -3.421875 0.34375 -2.140625 C 0.34375 -0.875 1.3125 0.109375 2.453125 0.109375 C 3.09375 0.109375 3.53125 -0.234375 3.78125 -0.546875 Z M 3.78125 -3.21875 L 3.78125 -1.171875 C 3.78125 -1 3.78125 -0.984375 3.671875 -0.8125 C 3.375 -0.328125 2.9375 -0.109375 2.5 -0.109375 C 2.046875 -0.109375 1.6875 -0.375 1.453125 -0.75 C 1.203125 -1.15625 1.171875 -1.71875 1.171875 -2.140625 C 1.171875 -2.5 1.1875 -3.09375 1.46875 -3.546875 C 1.6875 -3.859375 2.0625 -4.1875 2.609375 -4.1875 C 2.953125 -4.1875 3.375 -4.03125 3.671875 -3.59375 C 3.78125 -3.421875 3.78125 -3.40625 3.78125 -3.21875 Z M 3.78125 -3.21875 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-22">
|
||||
<path style="stroke:none;" d="M 2.21875 -1.71875 C 1.34375 -1.71875 1.34375 -2.71875 1.34375 -2.9375 C 1.34375 -3.203125 1.359375 -3.53125 1.5 -3.78125 C 1.578125 -3.890625 1.8125 -4.171875 2.21875 -4.171875 C 3.078125 -4.171875 3.078125 -3.1875 3.078125 -2.953125 C 3.078125 -2.6875 3.078125 -2.359375 2.921875 -2.109375 C 2.84375 -2 2.609375 -1.71875 2.21875 -1.71875 Z M 1.0625 -1.328125 C 1.0625 -1.359375 1.0625 -1.59375 1.21875 -1.796875 C 1.609375 -1.515625 2.03125 -1.484375 2.21875 -1.484375 C 3.140625 -1.484375 3.828125 -2.171875 3.828125 -2.9375 C 3.828125 -3.3125 3.671875 -3.671875 3.421875 -3.90625 C 3.78125 -4.25 4.140625 -4.296875 4.3125 -4.296875 C 4.34375 -4.296875 4.390625 -4.296875 4.421875 -4.28125 C 4.3125 -4.25 4.25 -4.140625 4.25 -4.015625 C 4.25 -3.84375 4.390625 -3.734375 4.546875 -3.734375 C 4.640625 -3.734375 4.828125 -3.796875 4.828125 -4.03125 C 4.828125 -4.203125 4.71875 -4.515625 4.328125 -4.515625 C 4.125 -4.515625 3.6875 -4.453125 3.265625 -4.046875 C 2.84375 -4.375 2.4375 -4.40625 2.21875 -4.40625 C 1.28125 -4.40625 0.59375 -3.71875 0.59375 -2.953125 C 0.59375 -2.515625 0.8125 -2.140625 1.0625 -1.921875 C 0.9375 -1.78125 0.75 -1.453125 0.75 -1.09375 C 0.75 -0.78125 0.890625 -0.40625 1.203125 -0.203125 C 0.59375 -0.046875 0.28125 0.390625 0.28125 0.78125 C 0.28125 1.5 1.265625 2.046875 2.484375 2.046875 C 3.65625 2.046875 4.6875 1.546875 4.6875 0.765625 C 4.6875 0.421875 4.5625 -0.09375 4.046875 -0.375 C 3.515625 -0.640625 2.9375 -0.640625 2.328125 -0.640625 C 2.078125 -0.640625 1.65625 -0.640625 1.578125 -0.65625 C 1.265625 -0.703125 1.0625 -1 1.0625 -1.328125 Z M 2.5 1.828125 C 1.484375 1.828125 0.796875 1.3125 0.796875 0.78125 C 0.796875 0.328125 1.171875 -0.046875 1.609375 -0.0625 L 2.203125 -0.0625 C 3.0625 -0.0625 4.171875 -0.0625 4.171875 0.78125 C 4.171875 1.328125 3.46875 1.828125 2.5 1.828125 Z M 2.5 1.828125 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-23">
|
||||
<path style="stroke:none;" d="M 5.796875 -6.78125 L 0.328125 -6.78125 L 0.328125 -6.46875 L 0.5625 -6.46875 C 1.328125 -6.46875 1.359375 -6.359375 1.359375 -6 L 1.359375 -0.78125 C 1.359375 -0.421875 1.328125 -0.3125 0.5625 -0.3125 L 0.328125 -0.3125 L 0.328125 0 C 0.671875 -0.03125 1.453125 -0.03125 1.84375 -0.03125 C 2.25 -0.03125 3.15625 -0.03125 3.515625 0 L 3.515625 -0.3125 L 3.1875 -0.3125 C 2.25 -0.3125 2.25 -0.4375 2.25 -0.78125 L 2.25 -3.234375 L 3.09375 -3.234375 C 4.0625 -3.234375 4.15625 -2.921875 4.15625 -2.078125 L 4.40625 -2.078125 L 4.40625 -4.71875 L 4.15625 -4.71875 C 4.15625 -3.875 4.0625 -3.546875 3.09375 -3.546875 L 2.25 -3.546875 L 2.25 -6.078125 C 2.25 -6.40625 2.265625 -6.46875 2.734375 -6.46875 L 3.921875 -6.46875 C 5.421875 -6.46875 5.671875 -5.90625 5.828125 -4.53125 L 6.078125 -4.53125 Z M 5.796875 -6.78125 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-24">
|
||||
<path style="stroke:none;" d="M 7.1875 -3.375 C 7.1875 -5.40625 5.6875 -7.03125 3.875 -7.03125 C 2.078125 -7.03125 0.5625 -5.4375 0.5625 -3.375 C 0.5625 -1.328125 2.09375 0.21875 3.875 0.21875 C 5.6875 0.21875 7.1875 -1.359375 7.1875 -3.375 Z M 3.875 -0.046875 C 2.921875 -0.046875 1.578125 -0.921875 1.578125 -3.515625 C 1.578125 -6.09375 3.046875 -6.78125 3.875 -6.78125 C 4.734375 -6.78125 6.15625 -6.078125 6.15625 -3.515625 C 6.15625 -0.875 4.796875 -0.046875 3.875 -0.046875 Z M 3.875 -0.046875 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-25">
|
||||
<path style="stroke:none;" d="M 1.71875 -3.75 L 1.71875 -4.40625 L 0.28125 -4.296875 L 0.28125 -3.984375 C 0.984375 -3.984375 1.0625 -3.921875 1.0625 -3.484375 L 1.0625 1.171875 C 1.0625 1.625 0.953125 1.625 0.28125 1.625 L 0.28125 1.9375 C 0.625 1.921875 1.140625 1.90625 1.390625 1.90625 C 1.671875 1.90625 2.171875 1.921875 2.515625 1.9375 L 2.515625 1.625 C 1.859375 1.625 1.75 1.625 1.75 1.171875 L 1.75 -0.59375 C 1.796875 -0.421875 2.21875 0.109375 2.96875 0.109375 C 4.15625 0.109375 5.1875 -0.875 5.1875 -2.15625 C 5.1875 -3.421875 4.234375 -4.40625 3.109375 -4.40625 C 2.328125 -4.40625 1.90625 -3.96875 1.71875 -3.75 Z M 1.75 -1.140625 L 1.75 -3.359375 C 2.03125 -3.875 2.515625 -4.15625 3.03125 -4.15625 C 3.765625 -4.15625 4.359375 -3.28125 4.359375 -2.15625 C 4.359375 -0.953125 3.671875 -0.109375 2.9375 -0.109375 C 2.53125 -0.109375 2.15625 -0.3125 1.890625 -0.71875 C 1.75 -0.921875 1.75 -0.9375 1.75 -1.140625 Z M 1.75 -1.140625 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph1-0">
|
||||
<path style="stroke:none;" d=""/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph1-1">
|
||||
<path style="stroke:none;" d="M 7.796875 -8.140625 C 7.796875 -8.359375 7.796875 -8.421875 7.671875 -8.421875 C 7.609375 -8.421875 7.59375 -8.390625 7.515625 -8.265625 L 6.9375 -7.328125 C 6.390625 -8 5.578125 -8.421875 4.71875 -8.421875 C 2.53125 -8.421875 0.640625 -6.53125 0.640625 -4.09375 C 0.640625 -1.609375 2.5625 0.25 4.71875 0.25 C 6.6875 0.25 7.796875 -1.453125 7.796875 -2.765625 C 7.796875 -2.90625 7.796875 -2.96875 7.65625 -2.96875 C 7.546875 -2.96875 7.53125 -2.921875 7.53125 -2.828125 C 7.421875 -0.9375 6.03125 -0.09375 4.875 -0.09375 C 4.046875 -0.09375 1.75 -0.59375 1.75 -4.09375 C 1.75 -7.546875 4 -8.0625 4.859375 -8.0625 C 6.125 -8.0625 7.21875 -7 7.453125 -5.21875 C 7.484375 -5.0625 7.484375 -5.03125 7.625 -5.03125 C 7.796875 -5.03125 7.796875 -5.0625 7.796875 -5.3125 Z M 7.796875 -8.140625 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph1-2">
|
||||
<path style="stroke:none;" d="M 2.59375 -7.25 C 2.59375 -7.703125 2.625 -7.8125 3.53125 -7.8125 L 3.796875 -7.8125 L 3.796875 -8.15625 C 3.5 -8.140625 2.46875 -8.140625 2.109375 -8.140625 C 1.75 -8.140625 0.71875 -8.140625 0.4375 -8.15625 L 0.4375 -7.8125 L 0.6875 -7.8125 C 1.59375 -7.8125 1.625 -7.703125 1.625 -7.25 L 1.625 -0.90625 C 1.625 -0.46875 1.59375 -0.34375 0.6875 -0.34375 L 0.4375 -0.34375 L 0.4375 0 C 0.71875 -0.03125 1.75 -0.03125 2.109375 -0.03125 C 2.46875 -0.03125 3.5 -0.03125 3.796875 0 L 3.796875 -0.34375 L 3.53125 -0.34375 C 2.625 -0.34375 2.59375 -0.46875 2.59375 -0.90625 Z M 2.59375 -7.25 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph1-3">
|
||||
<path style="stroke:none;" d="M 0.5 -8.15625 L 0.5 -7.8125 L 0.734375 -7.8125 C 1.609375 -7.8125 1.640625 -7.703125 1.640625 -7.25 L 1.640625 -0.90625 C 1.640625 -0.46875 1.609375 -0.34375 0.734375 -0.34375 L 0.5 -0.34375 L 0.5 0 L 4.6875 0 C 6.6875 0 8.28125 -1.796875 8.28125 -4 C 8.28125 -6.3125 6.671875 -8.15625 4.6875 -8.15625 Z M 3.125 -0.34375 C 2.609375 -0.34375 2.578125 -0.4375 2.578125 -0.828125 L 2.578125 -7.34375 C 2.578125 -7.734375 2.609375 -7.8125 3.125 -7.8125 L 4.390625 -7.8125 C 5.375 -7.8125 6.171875 -7.34375 6.65625 -6.546875 C 7.203125 -5.703125 7.203125 -4.5 7.203125 -4.015625 C 7.203125 -3.34375 7.1875 -2.21875 6.5 -1.34375 C 6.109375 -0.84375 5.390625 -0.34375 4.390625 -0.34375 Z M 3.125 -0.34375 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph1-4">
|
||||
<path style="stroke:none;" d="M 7.625 -3.0625 L 7.359375 -3.0625 C 7.078125 -1.1875 6.796875 -0.34375 4.765625 -0.34375 L 3.140625 -0.34375 C 2.625 -0.34375 2.59375 -0.4375 2.59375 -0.828125 L 2.59375 -4.046875 L 3.6875 -4.046875 C 4.828125 -4.046875 4.953125 -3.6875 4.953125 -2.65625 L 5.21875 -2.65625 L 5.21875 -5.796875 L 4.953125 -5.796875 C 4.953125 -4.765625 4.828125 -4.40625 3.6875 -4.40625 L 2.59375 -4.40625 L 2.59375 -7.3125 C 2.59375 -7.703125 2.625 -7.796875 3.140625 -7.796875 L 4.734375 -7.796875 C 6.484375 -7.796875 6.859375 -7.203125 7.046875 -5.46875 L 7.296875 -5.46875 L 7 -8.140625 L 0.484375 -8.140625 L 0.484375 -7.796875 L 0.734375 -7.796875 C 1.59375 -7.796875 1.625 -7.671875 1.625 -7.234375 L 1.625 -0.90625 C 1.625 -0.46875 1.59375 -0.34375 0.734375 -0.34375 L 0.484375 -0.34375 L 0.484375 0 L 7.140625 0 Z M 7.625 -3.0625 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph1-5">
|
||||
<path style="stroke:none;" d="M 8.578125 -2.90625 C 8.578125 -4.015625 8.578125 -4.34375 8.296875 -4.734375 C 7.953125 -5.203125 7.390625 -5.265625 6.984375 -5.265625 C 5.984375 -5.265625 5.484375 -4.546875 5.296875 -4.09375 C 5.125 -5.015625 4.484375 -5.265625 3.734375 -5.265625 C 2.5625 -5.265625 2.109375 -4.28125 2.015625 -4.046875 L 2.015625 -5.265625 L 0.375 -5.140625 L 0.375 -4.796875 C 1.1875 -4.796875 1.296875 -4.703125 1.296875 -4.125 L 1.296875 -0.890625 C 1.296875 -0.34375 1.15625 -0.34375 0.375 -0.34375 L 0.375 0 C 0.6875 -0.03125 1.34375 -0.03125 1.671875 -0.03125 C 2.015625 -0.03125 2.671875 -0.03125 2.96875 0 L 2.96875 -0.34375 C 2.21875 -0.34375 2.0625 -0.34375 2.0625 -0.890625 L 2.0625 -3.109375 C 2.0625 -4.359375 2.890625 -5.03125 3.640625 -5.03125 C 4.375 -5.03125 4.546875 -4.421875 4.546875 -3.6875 L 4.546875 -0.890625 C 4.546875 -0.34375 4.40625 -0.34375 3.640625 -0.34375 L 3.640625 0 C 3.9375 -0.03125 4.59375 -0.03125 4.921875 -0.03125 C 5.265625 -0.03125 5.921875 -0.03125 6.234375 0 L 6.234375 -0.34375 C 5.46875 -0.34375 5.3125 -0.34375 5.3125 -0.890625 L 5.3125 -3.109375 C 5.3125 -4.359375 6.140625 -5.03125 6.890625 -5.03125 C 7.625 -5.03125 7.796875 -4.421875 7.796875 -3.6875 L 7.796875 -0.890625 C 7.796875 -0.34375 7.65625 -0.34375 6.890625 -0.34375 L 6.890625 0 C 7.203125 -0.03125 7.84375 -0.03125 8.171875 -0.03125 C 8.515625 -0.03125 9.171875 -0.03125 9.484375 0 L 9.484375 -0.34375 C 8.875 -0.34375 8.578125 -0.34375 8.578125 -0.703125 Z M 8.578125 -2.90625 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph1-6">
|
||||
<path style="stroke:none;" d="M 3.640625 -5.140625 L 3.640625 -4.796875 C 4.453125 -4.796875 4.546875 -4.703125 4.546875 -4.125 L 4.546875 -1.984375 C 4.546875 -0.96875 4 -0.125 3.109375 -0.125 C 2.125 -0.125 2.0625 -0.6875 2.0625 -1.3125 L 2.0625 -5.265625 L 0.375 -5.140625 L 0.375 -4.796875 C 1.296875 -4.796875 1.296875 -4.75 1.296875 -3.6875 L 1.296875 -1.90625 C 1.296875 -1.15625 1.296875 -0.734375 1.65625 -0.328125 C 1.9375 -0.03125 2.421875 0.125 3.03125 0.125 C 3.234375 0.125 3.625 0.125 4.03125 -0.234375 C 4.375 -0.5 4.5625 -0.953125 4.5625 -0.953125 L 4.5625 0.125 L 6.234375 0 L 6.234375 -0.34375 C 5.421875 -0.34375 5.3125 -0.4375 5.3125 -1.015625 L 5.3125 -5.265625 Z M 3.640625 -5.140625 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph1-7">
|
||||
<path style="stroke:none;" d="M 2.0625 -8.296875 L 0.390625 -8.15625 L 0.390625 -7.8125 C 1.203125 -7.8125 1.296875 -7.734375 1.296875 -7.140625 L 1.296875 -0.890625 C 1.296875 -0.34375 1.171875 -0.34375 0.390625 -0.34375 L 0.390625 0 C 0.734375 -0.03125 1.3125 -0.03125 1.671875 -0.03125 C 2.03125 -0.03125 2.625 -0.03125 2.96875 0 L 2.96875 -0.34375 C 2.203125 -0.34375 2.0625 -0.34375 2.0625 -0.890625 Z M 2.0625 -8.296875 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph1-8">
|
||||
<path style="stroke:none;" d="M 4.609375 -3.1875 C 4.609375 -3.84375 4.609375 -4.3125 4.09375 -4.78125 C 3.671875 -5.15625 3.125 -5.328125 2.609375 -5.328125 C 1.625 -5.328125 0.875 -4.6875 0.875 -3.90625 C 0.875 -3.5625 1.09375 -3.390625 1.375 -3.390625 C 1.65625 -3.390625 1.859375 -3.59375 1.859375 -3.890625 C 1.859375 -4.375 1.4375 -4.375 1.25 -4.375 C 1.53125 -4.875 2.109375 -5.09375 2.578125 -5.09375 C 3.125 -5.09375 3.84375 -4.640625 3.84375 -3.5625 L 3.84375 -3.078125 C 1.4375 -3.046875 0.53125 -2.046875 0.53125 -1.125 C 0.53125 -0.171875 1.625 0.125 2.359375 0.125 C 3.140625 0.125 3.6875 -0.359375 3.90625 -0.9375 C 3.953125 -0.375 4.328125 0.0625 4.84375 0.0625 C 5.09375 0.0625 5.78125 -0.109375 5.78125 -1.0625 L 5.78125 -1.734375 L 5.515625 -1.734375 L 5.515625 -1.0625 C 5.515625 -0.375 5.234375 -0.28125 5.0625 -0.28125 C 4.609375 -0.28125 4.609375 -0.921875 4.609375 -1.09375 Z M 3.84375 -1.6875 C 3.84375 -0.515625 2.96875 -0.125 2.453125 -0.125 C 1.859375 -0.125 1.375 -0.546875 1.375 -1.125 C 1.375 -2.703125 3.40625 -2.84375 3.84375 -2.875 Z M 3.84375 -1.6875 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph1-9">
|
||||
<path style="stroke:none;" d="M 2.015625 -4.8125 L 3.6875 -4.8125 L 3.6875 -5.15625 L 2.015625 -5.15625 L 2.015625 -7.34375 L 1.75 -7.34375 C 1.734375 -6.234375 1.296875 -5.078125 0.21875 -5.046875 L 0.21875 -4.8125 L 1.234375 -4.8125 L 1.234375 -1.484375 C 1.234375 -0.15625 2.109375 0.125 2.75 0.125 C 3.5 0.125 3.890625 -0.625 3.890625 -1.484375 L 3.890625 -2.15625 L 3.640625 -2.15625 L 3.640625 -1.5 C 3.640625 -0.640625 3.28125 -0.140625 2.828125 -0.140625 C 2.015625 -0.140625 2.015625 -1.25 2.015625 -1.453125 Z M 2.015625 -4.8125 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph1-10">
|
||||
<path style="stroke:none;" d="M 5.484375 -2.5625 C 5.484375 -4.09375 4.3125 -5.328125 2.921875 -5.328125 C 1.5 -5.328125 0.359375 -4.0625 0.359375 -2.5625 C 0.359375 -1.03125 1.546875 0.125 2.921875 0.125 C 4.328125 0.125 5.484375 -1.046875 5.484375 -2.5625 Z M 2.921875 -0.140625 C 2.484375 -0.140625 1.953125 -0.328125 1.609375 -0.921875 C 1.28125 -1.453125 1.265625 -2.15625 1.265625 -2.671875 C 1.265625 -3.125 1.265625 -3.84375 1.640625 -4.390625 C 1.96875 -4.90625 2.5 -5.09375 2.921875 -5.09375 C 3.375 -5.09375 3.890625 -4.875 4.203125 -4.40625 C 4.578125 -3.859375 4.578125 -3.109375 4.578125 -2.671875 C 4.578125 -2.25 4.578125 -1.5 4.265625 -0.9375 C 3.9375 -0.375 3.375 -0.140625 2.921875 -0.140625 Z M 2.921875 -0.140625 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph1-11">
|
||||
<path style="stroke:none;" d="M 2 -2.78125 C 2 -3.9375 2.46875 -5.03125 3.390625 -5.03125 C 3.484375 -5.03125 3.515625 -5.03125 3.5625 -5.015625 C 3.46875 -4.96875 3.28125 -4.90625 3.28125 -4.578125 C 3.28125 -4.234375 3.546875 -4.09375 3.734375 -4.09375 C 3.984375 -4.09375 4.21875 -4.25 4.21875 -4.578125 C 4.21875 -4.9375 3.890625 -5.265625 3.375 -5.265625 C 2.359375 -5.265625 2.015625 -4.171875 1.953125 -3.9375 L 1.9375 -3.9375 L 1.9375 -5.265625 L 0.328125 -5.140625 L 0.328125 -4.796875 C 1.140625 -4.796875 1.25 -4.703125 1.25 -4.125 L 1.25 -0.890625 C 1.25 -0.34375 1.109375 -0.34375 0.328125 -0.34375 L 0.328125 0 C 0.671875 -0.03125 1.328125 -0.03125 1.6875 -0.03125 C 2.015625 -0.03125 2.859375 -0.03125 3.125 0 L 3.125 -0.34375 L 2.890625 -0.34375 C 2.015625 -0.34375 2 -0.484375 2 -0.90625 Z M 2 -2.78125 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph2-0">
|
||||
<path style="stroke:none;" d=""/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph2-1">
|
||||
<path style="stroke:none;" d="M 5 -4.65625 C 5 -5.03125 4.921875 -5.15625 4.515625 -5.15625 L 3.734375 -5.15625 C 3.5625 -5.15625 3.25 -5.15625 3.25 -4.8125 C 3.25 -4.453125 3.5625 -4.453125 3.734375 -4.453125 L 4.21875 -4.453125 L 4.21875 -1.859375 C 4.21875 -0.890625 3.40625 -0.625 2.875 -0.625 C 1.921875 -0.625 1.921875 -1.046875 1.921875 -1.421875 L 1.921875 -4.65625 C 1.921875 -5.03125 1.859375 -5.15625 1.453125 -5.15625 L 0.65625 -5.15625 C 0.484375 -5.15625 0.171875 -5.15625 0.171875 -4.8125 C 0.171875 -4.453125 0.484375 -4.453125 0.65625 -4.453125 L 1.140625 -4.453125 L 1.140625 -1.359375 C 1.140625 -0.265625 1.859375 0.078125 2.78125 0.078125 C 3.515625 0.078125 3.96875 -0.234375 4.203125 -0.4375 C 4.203125 0 4.5 0 4.703125 0 L 5.484375 0 C 5.65625 0 5.96875 0 5.96875 -0.34375 C 5.96875 -0.6875 5.65625 -0.6875 5.484375 -0.6875 L 5 -0.6875 Z M 5 -4.65625 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph2-2">
|
||||
<path style="stroke:none;" d="M 5.015625 -4.8125 C 5.015625 -5 5.015625 -5.265625 4.6875 -5.265625 C 4.40625 -5.265625 4.328125 -4.984375 4.328125 -4.96875 C 3.84375 -5.265625 3.296875 -5.265625 3.0625 -5.265625 C 1.109375 -5.265625 0.84375 -4.265625 0.84375 -3.859375 C 0.84375 -3.375 1.140625 -3.03125 1.546875 -2.8125 C 1.921875 -2.59375 2.265625 -2.53125 3.25 -2.375 C 3.71875 -2.296875 4.671875 -2.140625 4.671875 -1.484375 C 4.671875 -1.046875 4.265625 -0.625 3.15625 -0.625 C 2.390625 -0.625 1.890625 -0.921875 1.640625 -1.78125 C 1.578125 -1.953125 1.546875 -2.078125 1.25 -2.078125 C 0.84375 -2.078125 0.84375 -1.859375 0.84375 -1.609375 L 0.84375 -0.375 C 0.84375 -0.1875 0.84375 0.078125 1.1875 0.078125 C 1.328125 0.078125 1.4375 0.078125 1.609375 -0.421875 C 2.15625 0.03125 2.78125 0.078125 3.15625 0.078125 C 5.359375 0.078125 5.359375 -1.359375 5.359375 -1.484375 C 5.359375 -2.71875 3.890625 -2.96875 3.3125 -3.0625 C 2.265625 -3.234375 1.546875 -3.359375 1.546875 -3.859375 C 1.546875 -4.1875 1.90625 -4.5625 3.03125 -4.5625 C 4.171875 -4.5625 4.21875 -4.03125 4.25 -3.71875 C 4.265625 -3.484375 4.484375 -3.4375 4.625 -3.4375 C 5.015625 -3.4375 5.015625 -3.65625 5.015625 -3.890625 Z M 5.015625 -4.8125 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph2-3">
|
||||
<path style="stroke:none;" d="M 1.921875 -6.8125 C 1.921875 -7.1875 1.859375 -7.296875 1.453125 -7.296875 L 0.65625 -7.296875 C 0.484375 -7.296875 0.171875 -7.296875 0.171875 -6.953125 C 0.171875 -6.609375 0.484375 -6.609375 0.65625 -6.609375 L 1.140625 -6.609375 L 1.140625 -0.484375 C 1.140625 -0.28125 1.140625 0 1.546875 0 C 1.921875 0 1.921875 -0.25 1.921875 -0.59375 C 2.21875 -0.28125 2.65625 0.078125 3.328125 0.078125 C 4.59375 0.078125 5.703125 -1.0625 5.703125 -2.578125 C 5.703125 -4.046875 4.703125 -5.21875 3.453125 -5.21875 C 2.578125 -5.21875 2.03125 -4.703125 1.921875 -4.578125 Z M 1.921875 -3.171875 C 1.921875 -3.859375 2.59375 -4.53125 3.375 -4.53125 C 4.234375 -4.53125 4.921875 -3.65625 4.921875 -2.578125 C 4.921875 -1.4375 4.109375 -0.625 3.265625 -0.625 C 2.359375 -0.625 1.921875 -1.640625 1.921875 -2.234375 Z M 1.921875 -3.171875 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph2-4">
|
||||
<path style="stroke:none;" d="M 5.453125 -1.296875 C 5.453125 -1.609375 5.15625 -1.609375 5.0625 -1.609375 C 4.78125 -1.609375 4.734375 -1.515625 4.671875 -1.34375 C 4.40625 -0.6875 3.828125 -0.625 3.53125 -0.625 C 2.515625 -0.625 1.65625 -1.46875 1.65625 -2.578125 C 1.65625 -3.1875 2.015625 -4.5625 3.578125 -4.5625 C 3.890625 -4.5625 4.140625 -4.546875 4.25 -4.53125 C 4.34375 -4.5 4.34375 -4.5 4.34375 -4.4375 C 4.390625 -3.9375 4.75 -3.9375 4.828125 -3.9375 C 5.09375 -3.9375 5.3125 -4.109375 5.3125 -4.4375 C 5.3125 -5.265625 4.109375 -5.265625 3.578125 -5.265625 C 1.546875 -5.265625 0.890625 -3.578125 0.890625 -2.578125 C 0.890625 -1.125 2 0.078125 3.4375 0.078125 C 5.03125 0.078125 5.453125 -1.109375 5.453125 -1.296875 Z M 5.453125 -1.296875 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph2-5">
|
||||
<path style="stroke:none;" d="M 3.609375 -6.78125 C 3.609375 -7.078125 3.375 -7.3125 3.078125 -7.3125 C 2.765625 -7.3125 2.53125 -7.078125 2.53125 -6.78125 C 2.53125 -6.484375 2.765625 -6.234375 3.078125 -6.234375 C 3.375 -6.234375 3.609375 -6.484375 3.609375 -6.78125 Z M 1.546875 -5.15625 C 1.390625 -5.15625 1.078125 -5.15625 1.078125 -4.8125 C 1.078125 -4.453125 1.390625 -4.453125 1.546875 -4.453125 L 2.828125 -4.453125 L 2.828125 -0.6875 L 1.46875 -0.6875 C 1.296875 -0.6875 0.984375 -0.6875 0.984375 -0.34375 C 0.984375 0 1.296875 0 1.46875 0 L 4.796875 0 C 4.953125 0 5.265625 0 5.265625 -0.34375 C 5.265625 -0.6875 4.953125 -0.6875 4.796875 -0.6875 L 3.609375 -0.6875 L 3.609375 -4.65625 C 3.609375 -5.03125 3.53125 -5.15625 3.125 -5.15625 Z M 1.546875 -5.15625 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph2-6">
|
||||
<path style="stroke:none;" d="M 5 -6.8125 C 5 -7.1875 4.921875 -7.296875 4.515625 -7.296875 L 3.734375 -7.296875 C 3.5625 -7.296875 3.25 -7.296875 3.25 -6.953125 C 3.25 -6.609375 3.5625 -6.609375 3.734375 -6.609375 L 4.21875 -6.609375 L 4.21875 -4.625 C 4.03125 -4.8125 3.53125 -5.21875 2.8125 -5.21875 C 1.546875 -5.21875 0.4375 -4.078125 0.4375 -2.5625 C 0.4375 -1.09375 1.46875 0.078125 2.703125 0.078125 C 3.484375 0.078125 4 -0.390625 4.21875 -0.65625 C 4.21875 -0.15625 4.21875 0 4.703125 0 L 5.484375 0 C 5.65625 0 5.96875 0 5.96875 -0.34375 C 5.96875 -0.6875 5.65625 -0.6875 5.484375 -0.6875 L 5 -0.6875 Z M 4.21875 -2.265625 C 4.21875 -1.609375 3.671875 -0.625 2.765625 -0.625 C 1.90625 -0.625 1.21875 -1.5 1.21875 -2.5625 C 1.21875 -3.71875 2.03125 -4.53125 2.875 -4.53125 C 3.65625 -4.53125 4.21875 -3.828125 4.21875 -3.203125 Z M 4.21875 -2.265625 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph3-0">
|
||||
<path style="stroke:none;" d=""/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph3-1">
|
||||
<path style="stroke:none;" d="M 0.375 -7.453125 L 0.375 -7.109375 L 0.640625 -7.109375 C 1.484375 -7.109375 1.5 -6.984375 1.5 -6.59375 L 1.5 -0.84375 C 1.5 -0.453125 1.484375 -0.34375 0.640625 -0.34375 L 0.375 -0.34375 L 0.375 0 L 4.375 0 C 6.203125 0 7.703125 -1.609375 7.703125 -3.671875 C 7.703125 -5.734375 6.234375 -7.453125 4.375 -7.453125 Z M 2.984375 -0.34375 C 2.46875 -0.34375 2.4375 -0.421875 2.4375 -0.78125 L 2.4375 -6.671875 C 2.4375 -7.03125 2.46875 -7.109375 2.984375 -7.109375 L 4.0625 -7.109375 C 4.75 -7.109375 5.5 -6.875 6.046875 -6.09375 C 6.515625 -5.453125 6.625 -4.515625 6.625 -3.671875 C 6.625 -2.453125 6.40625 -1.796875 6.015625 -1.265625 C 5.796875 -0.96875 5.1875 -0.34375 4.078125 -0.34375 Z M 2.984375 -0.34375 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph3-2">
|
||||
<path style="stroke:none;" d="M 1.828125 -3.625 L 1.828125 -4.828125 L 0.3125 -4.703125 L 0.3125 -4.359375 C 1.0625 -4.359375 1.15625 -4.28125 1.15625 -3.75 L 1.15625 -0.828125 C 1.15625 -0.34375 1.03125 -0.34375 0.3125 -0.34375 L 0.3125 0 C 0.734375 -0.015625 1.25 -0.03125 1.546875 -0.03125 C 1.984375 -0.03125 2.5 -0.03125 2.9375 0 L 2.9375 -0.34375 L 2.703125 -0.34375 C 1.890625 -0.34375 1.875 -0.453125 1.875 -0.84375 L 1.875 -2.53125 C 1.875 -3.609375 2.328125 -4.578125 3.15625 -4.578125 C 3.234375 -4.578125 3.265625 -4.578125 3.28125 -4.5625 C 3.25 -4.5625 3.03125 -4.421875 3.03125 -4.140625 C 3.03125 -3.84375 3.265625 -3.671875 3.5 -3.671875 C 3.703125 -3.671875 3.96875 -3.8125 3.96875 -4.15625 C 3.96875 -4.5 3.625 -4.828125 3.15625 -4.828125 C 2.359375 -4.828125 1.96875 -4.09375 1.828125 -3.625 Z M 1.828125 -3.625 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph3-3">
|
||||
<path style="stroke:none;" d="M 1.9375 -4.828125 L 0.40625 -4.703125 L 0.40625 -4.359375 C 1.109375 -4.359375 1.203125 -4.296875 1.203125 -3.765625 L 1.203125 -0.828125 C 1.203125 -0.34375 1.09375 -0.34375 0.359375 -0.34375 L 0.359375 0 C 0.703125 -0.015625 1.296875 -0.03125 1.5625 -0.03125 C 1.9375 -0.03125 2.328125 -0.015625 2.6875 0 L 2.6875 -0.34375 C 1.96875 -0.34375 1.9375 -0.390625 1.9375 -0.8125 Z M 1.96875 -6.71875 C 1.96875 -7.0625 1.703125 -7.296875 1.390625 -7.296875 C 1.0625 -7.296875 0.8125 -7 0.8125 -6.71875 C 0.8125 -6.421875 1.0625 -6.140625 1.390625 -6.140625 C 1.703125 -6.140625 1.96875 -6.375 1.96875 -6.71875 Z M 1.96875 -6.71875 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph3-4">
|
||||
<path style="stroke:none;" d="M 4.53125 -3.625 C 4.640625 -3.875 4.828125 -4.359375 5.546875 -4.359375 L 5.546875 -4.703125 C 5.296875 -4.671875 4.96875 -4.671875 4.71875 -4.671875 C 4.453125 -4.671875 3.953125 -4.6875 3.78125 -4.703125 L 3.78125 -4.359375 C 4.171875 -4.359375 4.296875 -4.09375 4.296875 -3.890625 C 4.296875 -3.796875 4.28125 -3.75 4.234375 -3.625 L 3.125 -0.84375 L 1.890625 -3.890625 C 1.828125 -4.03125 1.828125 -4.0625 1.828125 -4.078125 C 1.828125 -4.359375 2.25 -4.359375 2.453125 -4.359375 L 2.453125 -4.703125 C 2.125 -4.6875 1.515625 -4.671875 1.265625 -4.671875 C 0.96875 -4.671875 0.53125 -4.671875 0.203125 -4.703125 L 0.203125 -4.359375 C 0.890625 -4.359375 0.9375 -4.296875 1.078125 -3.953125 L 2.65625 -0.09375 C 2.71875 0.0625 2.734375 0.125 2.875 0.125 C 3.015625 0.125 3.0625 0.015625 3.109375 -0.09375 Z M 4.53125 -3.625 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph3-5">
|
||||
<path style="stroke:none;" d="M 1.21875 -2.75 C 1.28125 -4.375 2.203125 -4.640625 2.578125 -4.640625 C 3.703125 -4.640625 3.8125 -3.171875 3.8125 -2.75 Z M 1.203125 -2.515625 L 4.25 -2.515625 C 4.5 -2.515625 4.53125 -2.515625 4.53125 -2.75 C 4.53125 -3.828125 3.9375 -4.890625 2.578125 -4.890625 C 1.3125 -4.890625 0.3125 -3.765625 0.3125 -2.40625 C 0.3125 -0.9375 1.453125 0.125 2.703125 0.125 C 4.03125 0.125 4.53125 -1.09375 4.53125 -1.296875 C 4.53125 -1.40625 4.4375 -1.421875 4.390625 -1.421875 C 4.28125 -1.421875 4.265625 -1.359375 4.25 -1.28125 C 3.859375 -0.15625 2.875 -0.15625 2.765625 -0.15625 C 2.21875 -0.15625 1.78125 -0.484375 1.53125 -0.890625 C 1.203125 -1.40625 1.203125 -2.125 1.203125 -2.515625 Z M 1.203125 -2.515625 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph3-6">
|
||||
<path style="stroke:none;" d="M 1.90625 -4.703125 L 1.90625 -5.96875 C 1.90625 -6.921875 2.4375 -7.453125 2.90625 -7.453125 C 2.9375 -7.453125 3.109375 -7.453125 3.265625 -7.375 C 3.140625 -7.328125 2.9375 -7.1875 2.9375 -6.921875 C 2.9375 -6.65625 3.125 -6.453125 3.40625 -6.453125 C 3.734375 -6.453125 3.890625 -6.65625 3.890625 -6.921875 C 3.890625 -7.328125 3.484375 -7.6875 2.90625 -7.6875 C 2.15625 -7.6875 1.21875 -7.109375 1.21875 -5.953125 L 1.21875 -4.703125 L 0.359375 -4.703125 L 0.359375 -4.359375 L 1.21875 -4.359375 L 1.21875 -0.828125 C 1.21875 -0.34375 1.09375 -0.34375 0.375 -0.34375 L 0.375 0 C 0.796875 -0.015625 1.3125 -0.03125 1.609375 -0.03125 C 2.046875 -0.03125 2.5625 -0.03125 3 0 L 3 -0.34375 L 2.765625 -0.34375 C 1.96875 -0.34375 1.9375 -0.453125 1.9375 -0.84375 L 1.9375 -4.359375 L 3.1875 -4.359375 L 3.1875 -4.703125 Z M 1.90625 -4.703125 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph3-7">
|
||||
<path style="stroke:none;" d="M 5.140625 -2.328125 C 5.140625 -3.734375 4.046875 -4.890625 2.71875 -4.890625 C 1.359375 -4.890625 0.3125 -3.703125 0.3125 -2.328125 C 0.3125 -0.921875 1.4375 0.125 2.71875 0.125 C 4.03125 0.125 5.140625 -0.953125 5.140625 -2.328125 Z M 2.71875 -0.15625 C 2.25 -0.15625 1.78125 -0.375 1.484375 -0.890625 C 1.203125 -1.359375 1.203125 -2.03125 1.203125 -2.421875 C 1.203125 -2.84375 1.203125 -3.4375 1.46875 -3.921875 C 1.765625 -4.421875 2.28125 -4.640625 2.71875 -4.640625 C 3.203125 -4.640625 3.671875 -4.40625 3.953125 -3.9375 C 4.234375 -3.46875 4.234375 -2.828125 4.234375 -2.421875 C 4.234375 -2.03125 4.234375 -1.4375 3.984375 -0.953125 C 3.75 -0.46875 3.265625 -0.15625 2.71875 -0.15625 Z M 2.71875 -0.15625 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph3-8">
|
||||
<path style="stroke:none;" d="M 6.34375 -2.515625 C 6.34375 -0.96875 5.296875 -0.09375 4.25 -0.09375 C 3.734375 -0.09375 2.453125 -0.375 2.453125 -2.4375 L 2.453125 -6.59375 C 2.453125 -6.984375 2.46875 -7.109375 3.3125 -7.109375 L 3.578125 -7.109375 L 3.578125 -7.453125 C 3.203125 -7.421875 2.390625 -7.421875 1.96875 -7.421875 C 1.5625 -7.421875 0.734375 -7.421875 0.359375 -7.453125 L 0.359375 -7.109375 L 0.625 -7.109375 C 1.46875 -7.109375 1.484375 -6.984375 1.484375 -6.59375 L 1.484375 -2.484375 C 1.484375 -0.953125 2.75 0.234375 4.234375 0.234375 C 5.484375 0.234375 6.46875 -0.78125 6.65625 -2.015625 C 6.6875 -2.234375 6.6875 -2.328125 6.6875 -2.765625 L 6.6875 -6.265625 C 6.6875 -6.625 6.6875 -7.109375 7.8125 -7.109375 L 7.8125 -7.453125 C 7.421875 -7.4375 6.890625 -7.421875 6.515625 -7.421875 C 6.140625 -7.421875 5.609375 -7.4375 5.21875 -7.453125 L 5.21875 -7.109375 C 6.34375 -7.109375 6.34375 -6.59375 6.34375 -6.296875 Z M 6.34375 -2.515625 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph3-9">
|
||||
<path style="stroke:none;" d="M 3.8125 -4.234375 L 2.40625 -4.5625 C 1.734375 -4.734375 1.3125 -5.328125 1.3125 -5.953125 C 1.3125 -6.71875 1.890625 -7.390625 2.75 -7.390625 C 4.5625 -7.390625 4.8125 -5.59375 4.875 -5.109375 C 4.890625 -5.03125 4.890625 -4.96875 5 -4.96875 C 5.140625 -4.96875 5.140625 -5.03125 5.140625 -5.234375 L 5.140625 -7.421875 C 5.140625 -7.609375 5.140625 -7.6875 5.03125 -7.6875 C 4.953125 -7.6875 4.9375 -7.671875 4.859375 -7.546875 L 4.484375 -6.921875 C 4.15625 -7.234375 3.703125 -7.6875 2.734375 -7.6875 C 1.53125 -7.6875 0.609375 -6.734375 0.609375 -5.578125 C 0.609375 -4.671875 1.1875 -3.875 2.046875 -3.578125 C 2.15625 -3.53125 2.71875 -3.40625 3.484375 -3.21875 C 3.78125 -3.140625 4.09375 -3.0625 4.40625 -2.65625 C 4.640625 -2.375 4.75 -2.015625 4.75 -1.65625 C 4.75 -0.890625 4.203125 -0.09375 3.28125 -0.09375 C 2.96875 -0.09375 2.140625 -0.15625 1.5625 -0.6875 C 0.921875 -1.28125 0.890625 -1.96875 0.890625 -2.359375 C 0.875 -2.46875 0.78125 -2.46875 0.75 -2.46875 C 0.609375 -2.46875 0.609375 -2.40625 0.609375 -2.203125 L 0.609375 -0.015625 C 0.609375 0.15625 0.609375 0.234375 0.734375 0.234375 C 0.8125 0.234375 0.8125 0.21875 0.890625 0.09375 C 0.890625 0.09375 0.921875 0.046875 1.28125 -0.53125 C 1.625 -0.15625 2.328125 0.234375 3.296875 0.234375 C 4.5625 0.234375 5.4375 -0.828125 5.4375 -2.03125 C 5.4375 -3.125 4.71875 -4.015625 3.8125 -4.234375 Z M 3.8125 -4.234375 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph3-10">
|
||||
<path style="stroke:none;" d="M 2.421875 -3.984375 L 2.421875 -6.671875 C 2.421875 -7.03125 2.4375 -7.109375 2.953125 -7.109375 L 4.3125 -7.109375 C 5.359375 -7.109375 5.75 -6.1875 5.75 -5.609375 C 5.75 -4.90625 5.21875 -3.984375 4 -3.984375 Z M 5 -3.890625 C 6.046875 -4.09375 6.8125 -4.796875 6.8125 -5.609375 C 6.8125 -6.546875 5.796875 -7.453125 4.390625 -7.453125 L 0.390625 -7.453125 L 0.390625 -7.109375 L 0.65625 -7.109375 C 1.5 -7.109375 1.515625 -6.984375 1.515625 -6.59375 L 1.515625 -0.84375 C 1.515625 -0.453125 1.5 -0.34375 0.65625 -0.34375 L 0.390625 -0.34375 L 0.390625 0 L 4.671875 0 C 6.125 0 7.09375 -0.96875 7.09375 -2 C 7.09375 -2.9375 6.203125 -3.765625 5 -3.890625 Z M 4.3125 -0.34375 L 2.953125 -0.34375 C 2.4375 -0.34375 2.421875 -0.421875 2.421875 -0.78125 L 2.421875 -3.75 L 4.46875 -3.75 C 5.546875 -3.75 6.015625 -2.734375 6.015625 -2 C 6.015625 -1.234375 5.4375 -0.34375 4.3125 -0.34375 Z M 4.3125 -0.34375 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph3-11">
|
||||
<path style="stroke:none;" d="M 0.609375 -3.734375 C 0.609375 -1.46875 2.375 0.234375 4.40625 0.234375 C 6.1875 0.234375 7.25 -1.28125 7.25 -2.546875 C 7.25 -2.65625 7.25 -2.71875 7.109375 -2.71875 C 6.984375 -2.71875 6.984375 -2.65625 6.984375 -2.546875 C 6.890625 -1 5.71875 -0.09375 4.53125 -0.09375 C 3.875 -0.09375 1.734375 -0.46875 1.734375 -3.71875 C 1.734375 -6.984375 3.859375 -7.34375 4.53125 -7.34375 C 5.71875 -7.34375 6.6875 -6.359375 6.90625 -4.765625 C 6.921875 -4.609375 6.921875 -4.578125 7.078125 -4.578125 C 7.25 -4.578125 7.25 -4.609375 7.25 -4.84375 L 7.25 -7.421875 C 7.25 -7.609375 7.25 -7.6875 7.125 -7.6875 C 7.09375 -7.6875 7.046875 -7.6875 6.953125 -7.5625 L 6.40625 -6.75 C 6.015625 -7.140625 5.453125 -7.6875 4.40625 -7.6875 C 2.359375 -7.6875 0.609375 -5.953125 0.609375 -3.734375 Z M 0.609375 -3.734375 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph3-12">
|
||||
<path style="stroke:none;" d="M 1.203125 -3.75 L 1.203125 -0.828125 C 1.203125 -0.34375 1.078125 -0.34375 0.34375 -0.34375 L 0.34375 0 C 0.734375 -0.015625 1.28125 -0.03125 1.578125 -0.03125 C 1.859375 -0.03125 2.4375 -0.015625 2.796875 0 L 2.796875 -0.34375 C 2.078125 -0.34375 1.953125 -0.34375 1.953125 -0.828125 L 1.953125 -2.828125 C 1.953125 -3.96875 2.71875 -4.578125 3.421875 -4.578125 C 4.109375 -4.578125 4.234375 -3.984375 4.234375 -3.375 L 4.234375 -0.828125 C 4.234375 -0.34375 4.109375 -0.34375 3.375 -0.34375 L 3.375 0 C 3.765625 -0.015625 4.3125 -0.03125 4.609375 -0.03125 C 4.890625 -0.03125 5.46875 -0.015625 5.828125 0 L 5.828125 -0.34375 C 5.265625 -0.34375 5 -0.34375 4.984375 -0.671875 L 4.984375 -2.75 C 4.984375 -3.6875 4.984375 -4.03125 4.640625 -4.421875 C 4.5 -4.609375 4.140625 -4.828125 3.5 -4.828125 C 2.703125 -4.828125 2.1875 -4.359375 1.890625 -3.671875 L 1.890625 -4.828125 L 0.34375 -4.703125 L 0.34375 -4.359375 C 1.109375 -4.359375 1.203125 -4.28125 1.203125 -3.75 Z M 1.203125 -3.75 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph3-13">
|
||||
<path style="stroke:none;" d="M 1.890625 -4.359375 L 3.453125 -4.359375 L 3.453125 -4.703125 L 1.890625 -4.703125 L 1.890625 -6.703125 L 1.609375 -6.703125 C 1.609375 -5.8125 1.28125 -4.640625 0.203125 -4.609375 L 0.203125 -4.359375 L 1.140625 -4.359375 L 1.140625 -1.359375 C 1.140625 -0.015625 2.15625 0.125 2.546875 0.125 C 3.3125 0.125 3.625 -0.65625 3.625 -1.359375 L 3.625 -1.96875 L 3.34375 -1.96875 L 3.34375 -1.375 C 3.34375 -0.5625 3.015625 -0.15625 2.625 -0.15625 C 1.890625 -0.15625 1.890625 -1.140625 1.890625 -1.328125 Z M 1.890625 -4.359375 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph3-14">
|
||||
<path style="stroke:none;" d="M 1.9375 -7.5625 L 0.359375 -7.453125 L 0.359375 -7.109375 C 1.125 -7.109375 1.203125 -7.03125 1.203125 -6.5 L 1.203125 -0.828125 C 1.203125 -0.34375 1.09375 -0.34375 0.359375 -0.34375 L 0.359375 0 C 0.71875 -0.015625 1.296875 -0.03125 1.578125 -0.03125 C 1.84375 -0.03125 2.375 -0.015625 2.78125 0 L 2.78125 -0.34375 C 2.046875 -0.34375 1.9375 -0.34375 1.9375 -0.828125 Z M 1.9375 -7.5625 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph3-15">
|
||||
<path style="stroke:none;" d="M 6.46875 -0.6875 C 6.609375 -0.453125 7.046875 -0.015625 7.171875 -0.015625 C 7.265625 -0.015625 7.265625 -0.09375 7.265625 -0.265625 L 7.265625 -2.15625 C 7.265625 -2.578125 7.3125 -2.640625 8.015625 -2.640625 L 8.015625 -2.984375 C 7.609375 -2.96875 7.015625 -2.9375 6.6875 -2.9375 C 6.25 -2.9375 5.328125 -2.9375 4.921875 -2.984375 L 4.921875 -2.640625 L 5.28125 -2.640625 C 6.265625 -2.640625 6.296875 -2.515625 6.296875 -2.109375 L 6.296875 -1.421875 C 6.296875 -0.203125 4.90625 -0.09375 4.609375 -0.09375 C 3.890625 -0.09375 1.734375 -0.484375 1.734375 -3.734375 C 1.734375 -6.984375 3.875 -7.34375 4.53125 -7.34375 C 5.703125 -7.34375 6.703125 -6.375 6.921875 -4.765625 C 6.9375 -4.609375 6.9375 -4.578125 7.09375 -4.578125 C 7.265625 -4.578125 7.265625 -4.609375 7.265625 -4.84375 L 7.265625 -7.421875 C 7.265625 -7.609375 7.265625 -7.6875 7.140625 -7.6875 C 7.09375 -7.6875 7.0625 -7.6875 6.96875 -7.5625 L 6.421875 -6.75 C 6.078125 -7.09375 5.484375 -7.6875 4.40625 -7.6875 C 2.375 -7.6875 0.609375 -5.96875 0.609375 -3.734375 C 0.609375 -1.5 2.359375 0.234375 4.421875 0.234375 C 5.21875 0.234375 6.09375 -0.046875 6.46875 -0.6875 Z M 6.46875 -0.6875 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph3-16">
|
||||
<path style="stroke:none;" d="M 3.625 -0.828125 C 3.671875 -0.390625 3.96875 0.0625 4.484375 0.0625 C 4.71875 0.0625 5.375 -0.09375 5.375 -0.96875 L 5.375 -1.578125 L 5.109375 -1.578125 L 5.109375 -0.96875 C 5.109375 -0.34375 4.828125 -0.265625 4.71875 -0.265625 C 4.359375 -0.265625 4.3125 -0.765625 4.3125 -0.8125 L 4.3125 -3 C 4.3125 -3.453125 4.3125 -3.875 3.921875 -4.28125 C 3.484375 -4.71875 2.9375 -4.890625 2.421875 -4.890625 C 1.53125 -4.890625 0.78125 -4.375 0.78125 -3.65625 C 0.78125 -3.328125 1 -3.140625 1.28125 -3.140625 C 1.578125 -3.140625 1.78125 -3.359375 1.78125 -3.640625 C 1.78125 -3.78125 1.71875 -4.140625 1.21875 -4.140625 C 1.515625 -4.53125 2.046875 -4.640625 2.40625 -4.640625 C 2.9375 -4.640625 3.5625 -4.21875 3.5625 -3.25 L 3.5625 -2.84375 C 3 -2.8125 2.234375 -2.78125 1.546875 -2.453125 C 0.734375 -2.078125 0.453125 -1.515625 0.453125 -1.03125 C 0.453125 -0.15625 1.515625 0.125 2.203125 0.125 C 2.921875 0.125 3.421875 -0.3125 3.625 -0.828125 Z M 3.5625 -2.625 L 3.5625 -1.53125 C 3.5625 -0.484375 2.765625 -0.125 2.28125 -0.125 C 1.75 -0.125 1.296875 -0.5 1.296875 -1.046875 C 1.296875 -1.640625 1.75 -2.546875 3.5625 -2.625 Z M 3.5625 -2.625 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph3-17">
|
||||
<path style="stroke:none;" d="M 4.140625 -0.59375 L 4.140625 0.125 L 5.75 0 L 5.75 -0.34375 C 4.984375 -0.34375 4.890625 -0.421875 4.890625 -0.953125 L 4.890625 -7.5625 L 3.328125 -7.453125 L 3.328125 -7.109375 C 4.09375 -7.109375 4.171875 -7.03125 4.171875 -6.5 L 4.171875 -4.140625 C 3.859375 -4.53125 3.390625 -4.828125 2.796875 -4.828125 C 1.515625 -4.828125 0.375 -3.75 0.375 -2.34375 C 0.375 -0.953125 1.4375 0.125 2.6875 0.125 C 3.375 0.125 3.875 -0.25 4.140625 -0.59375 Z M 4.140625 -3.515625 L 4.140625 -1.28125 C 4.140625 -1.09375 4.140625 -1.0625 4.03125 -0.890625 C 3.703125 -0.359375 3.203125 -0.125 2.734375 -0.125 C 2.25 -0.125 1.859375 -0.40625 1.59375 -0.8125 C 1.3125 -1.265625 1.28125 -1.890625 1.28125 -2.328125 C 1.28125 -2.734375 1.296875 -3.390625 1.609375 -3.875 C 1.84375 -4.21875 2.25 -4.578125 2.84375 -4.578125 C 3.234375 -4.578125 3.6875 -4.421875 4.03125 -3.921875 C 4.140625 -3.734375 4.140625 -3.71875 4.140625 -3.515625 Z M 4.140625 -3.515625 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph3-18">
|
||||
<path style="stroke:none;" d="M 2.421875 -1.875 C 1.46875 -1.875 1.46875 -2.96875 1.46875 -3.21875 C 1.46875 -3.515625 1.484375 -3.859375 1.640625 -4.140625 C 1.734375 -4.265625 1.984375 -4.5625 2.421875 -4.5625 C 3.375 -4.5625 3.375 -3.484375 3.375 -3.234375 C 3.375 -2.9375 3.359375 -2.578125 3.203125 -2.3125 C 3.109375 -2.1875 2.859375 -1.875 2.421875 -1.875 Z M 1.15625 -1.453125 C 1.15625 -1.5 1.15625 -1.75 1.34375 -1.96875 C 1.765625 -1.65625 2.21875 -1.625 2.421875 -1.625 C 3.4375 -1.625 4.1875 -2.375 4.1875 -3.21875 C 4.1875 -3.625 4.015625 -4.03125 3.734375 -4.28125 C 4.140625 -4.640625 4.53125 -4.703125 4.71875 -4.703125 C 4.75 -4.703125 4.796875 -4.703125 4.828125 -4.6875 C 4.71875 -4.640625 4.65625 -4.53125 4.65625 -4.390625 C 4.65625 -4.203125 4.796875 -4.078125 4.96875 -4.078125 C 5.078125 -4.078125 5.296875 -4.15625 5.296875 -4.40625 C 5.296875 -4.59375 5.15625 -4.9375 4.734375 -4.9375 C 4.515625 -4.9375 4.03125 -4.875 3.578125 -4.421875 C 3.125 -4.78125 2.65625 -4.828125 2.421875 -4.828125 C 1.40625 -4.828125 0.65625 -4.0625 0.65625 -3.234375 C 0.65625 -2.75 0.890625 -2.328125 1.171875 -2.109375 C 1.03125 -1.9375 0.828125 -1.578125 0.828125 -1.203125 C 0.828125 -0.859375 0.96875 -0.453125 1.3125 -0.234375 C 0.65625 -0.046875 0.3125 0.421875 0.3125 0.859375 C 0.3125 1.640625 1.390625 2.25 2.71875 2.25 C 4 2.25 5.140625 1.6875 5.140625 0.84375 C 5.140625 0.453125 4.984375 -0.09375 4.421875 -0.40625 C 3.84375 -0.703125 3.21875 -0.703125 2.546875 -0.703125 C 2.28125 -0.703125 1.8125 -0.703125 1.734375 -0.71875 C 1.390625 -0.765625 1.15625 -1.09375 1.15625 -1.453125 Z M 2.71875 2 C 1.625 2 0.875 1.4375 0.875 0.859375 C 0.875 0.359375 1.28125 -0.046875 1.765625 -0.078125 L 2.40625 -0.078125 C 3.34375 -0.078125 4.5625 -0.078125 4.5625 0.859375 C 4.5625 1.453125 3.796875 2 2.71875 2 Z M 2.71875 2 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph3-19">
|
||||
<path style="stroke:none;" d="M 1.875 -4.09375 L 1.875 -4.828125 L 0.3125 -4.703125 L 0.3125 -4.359375 C 1.078125 -4.359375 1.15625 -4.296875 1.15625 -3.8125 L 1.15625 1.28125 C 1.15625 1.78125 1.03125 1.78125 0.3125 1.78125 L 0.3125 2.109375 C 0.671875 2.109375 1.25 2.078125 1.53125 2.078125 C 1.828125 2.078125 2.375 2.109375 2.765625 2.109375 L 2.765625 1.78125 C 2.03125 1.78125 1.90625 1.78125 1.90625 1.28125 L 1.90625 -0.640625 C 1.96875 -0.46875 2.421875 0.125 3.25 0.125 C 4.546875 0.125 5.6875 -0.953125 5.6875 -2.359375 C 5.6875 -3.734375 4.625 -4.828125 3.40625 -4.828125 C 2.546875 -4.828125 2.09375 -4.34375 1.875 -4.09375 Z M 1.90625 -1.25 L 1.90625 -3.671875 C 2.21875 -4.234375 2.765625 -4.546875 3.3125 -4.546875 C 4.109375 -4.546875 4.78125 -3.59375 4.78125 -2.359375 C 4.78125 -1.03125 4.015625 -0.125 3.203125 -0.125 C 2.765625 -0.125 2.359375 -0.34375 2.0625 -0.78125 C 1.90625 -1.015625 1.90625 -1.03125 1.90625 -1.25 Z M 1.90625 -1.25 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph3-20">
|
||||
<path style="stroke:none;" d="M 6.34375 -2.8125 L 6.078125 -2.8125 C 5.953125 -1.703125 5.796875 -0.34375 3.875 -0.34375 L 2.984375 -0.34375 C 2.46875 -0.34375 2.453125 -0.421875 2.453125 -0.78125 L 2.453125 -6.59375 C 2.453125 -6.953125 2.453125 -7.109375 3.484375 -7.109375 L 3.84375 -7.109375 L 3.84375 -7.453125 C 3.453125 -7.421875 2.46875 -7.421875 2.015625 -7.421875 C 1.59375 -7.421875 0.734375 -7.421875 0.359375 -7.453125 L 0.359375 -7.109375 L 0.625 -7.109375 C 1.46875 -7.109375 1.484375 -6.984375 1.484375 -6.59375 L 1.484375 -0.84375 C 1.484375 -0.453125 1.46875 -0.34375 0.625 -0.34375 L 0.359375 -0.34375 L 0.359375 0 L 6.046875 0 Z M 6.34375 -2.8125 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph3-21">
|
||||
<path style="stroke:none;" d="M 4.53125 -3.671875 C 4.8125 -4.359375 5.359375 -4.359375 5.546875 -4.359375 L 5.546875 -4.703125 C 5.296875 -4.671875 4.96875 -4.671875 4.71875 -4.671875 C 4.53125 -4.671875 4.015625 -4.6875 3.78125 -4.703125 L 3.78125 -4.359375 C 4.109375 -4.359375 4.28125 -4.171875 4.28125 -3.890625 C 4.28125 -3.78125 4.28125 -3.765625 4.21875 -3.625 L 3.125 -0.953125 L 1.90625 -3.875 C 1.859375 -3.984375 1.84375 -4.03125 1.84375 -4.078125 C 1.84375 -4.359375 2.25 -4.359375 2.453125 -4.359375 L 2.453125 -4.703125 C 2.171875 -4.6875 1.453125 -4.671875 1.265625 -4.671875 C 0.96875 -4.671875 0.53125 -4.671875 0.203125 -4.703125 L 0.203125 -4.359375 C 0.734375 -4.359375 0.9375 -4.359375 1.09375 -3.984375 L 2.71875 0 C 2.671875 0.140625 2.515625 0.5 2.453125 0.640625 C 2.21875 1.25 1.90625 2 1.203125 2 C 1.15625 2 0.90625 2 0.703125 1.796875 C 1.03125 1.75 1.125 1.515625 1.125 1.34375 C 1.125 1.0625 0.921875 0.890625 0.671875 0.890625 C 0.453125 0.890625 0.203125 1.03125 0.203125 1.359375 C 0.203125 1.84375 0.671875 2.234375 1.203125 2.234375 C 1.890625 2.234375 2.34375 1.609375 2.609375 1 Z M 4.53125 -3.671875 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph3-22">
|
||||
<path style="stroke:none;" d="M 2.265625 -2.109375 C 2.515625 -2.078125 3.40625 -1.890625 3.40625 -1.109375 C 3.40625 -0.5625 3.015625 -0.125 2.171875 -0.125 C 1.25 -0.125 0.859375 -0.734375 0.65625 -1.671875 C 0.625 -1.8125 0.609375 -1.859375 0.5 -1.859375 C 0.359375 -1.859375 0.359375 -1.78125 0.359375 -1.578125 L 0.359375 -0.140625 C 0.359375 0.046875 0.359375 0.125 0.484375 0.125 C 0.53125 0.125 0.546875 0.109375 0.75 -0.09375 C 0.78125 -0.125 0.78125 -0.140625 0.96875 -0.34375 C 1.453125 0.109375 1.9375 0.125 2.171875 0.125 C 3.421875 0.125 3.921875 -0.609375 3.921875 -1.390625 C 3.921875 -1.96875 3.59375 -2.296875 3.46875 -2.4375 C 3.109375 -2.78125 2.6875 -2.875 2.21875 -2.953125 C 1.609375 -3.078125 0.890625 -3.21875 0.890625 -3.84375 C 0.890625 -4.234375 1.171875 -4.671875 2.109375 -4.671875 C 3.296875 -4.671875 3.359375 -3.703125 3.375 -3.359375 C 3.390625 -3.265625 3.484375 -3.265625 3.515625 -3.265625 C 3.65625 -3.265625 3.65625 -3.3125 3.65625 -3.515625 L 3.65625 -4.625 C 3.65625 -4.8125 3.65625 -4.890625 3.53125 -4.890625 C 3.484375 -4.890625 3.453125 -4.890625 3.3125 -4.75 C 3.28125 -4.71875 3.171875 -4.609375 3.125 -4.578125 C 2.71875 -4.890625 2.265625 -4.890625 2.109375 -4.890625 C 0.78125 -4.890625 0.359375 -4.15625 0.359375 -3.546875 C 0.359375 -3.15625 0.53125 -2.859375 0.828125 -2.625 C 1.171875 -2.328125 1.484375 -2.265625 2.265625 -2.109375 Z M 2.265625 -2.109375 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph4-0">
|
||||
<path style="stroke:none;" d=""/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph4-1">
|
||||
<path style="stroke:none;" d="M 4.5625 -6.328125 C 4.640625 -6.484375 4.640625 -6.484375 4.640625 -6.5625 C 4.640625 -6.75 4.5 -6.921875 4.296875 -6.921875 C 4.078125 -6.921875 4 -6.765625 3.953125 -6.640625 L 0.65625 0.234375 C 0.59375 0.40625 0.578125 0.40625 0.578125 0.484375 C 0.578125 0.65625 0.734375 0.828125 0.921875 0.828125 C 1.140625 0.828125 1.21875 0.671875 1.28125 0.546875 Z M 4.5625 -6.328125 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph4-2">
|
||||
<path style="stroke:none;" d="M 3.5625 -0.5 C 3.5625 -0.140625 3.5625 0 3.96875 0 L 4.6875 0 C 4.859375 0 5.109375 0 5.109375 -0.3125 C 5.109375 -0.609375 4.84375 -0.609375 4.703125 -0.609375 L 4.25 -0.609375 L 4.25 -5.6875 C 4.25 -5.984375 4.203125 -6.09375 3.859375 -6.09375 L 3.125 -6.09375 C 2.96875 -6.09375 2.71875 -6.09375 2.71875 -5.78125 C 2.71875 -5.484375 2.984375 -5.484375 3.125 -5.484375 L 3.5625 -5.484375 L 3.5625 -3.90625 C 3.234375 -4.203125 2.828125 -4.359375 2.40625 -4.359375 C 1.3125 -4.359375 0.359375 -3.40625 0.359375 -2.140625 C 0.359375 -0.90625 1.25 0.0625 2.3125 0.0625 C 2.875 0.0625 3.296875 -0.203125 3.5625 -0.5 Z M 3.5625 -2.640625 L 3.5625 -1.9375 C 3.5625 -1.375 3.125 -0.546875 2.359375 -0.546875 C 1.640625 -0.546875 1.046875 -1.25 1.046875 -2.140625 C 1.046875 -3.09375 1.75 -3.75 2.4375 -3.75 C 3.078125 -3.75 3.5625 -3.1875 3.5625 -2.640625 Z M 3.5625 -2.640625 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph4-3">
|
||||
<path style="stroke:none;" d="M 4.234375 -1.90625 C 4.4375 -1.90625 4.625 -1.90625 4.625 -2.265625 C 4.625 -3.40625 3.984375 -4.390625 2.6875 -4.390625 C 1.5 -4.390625 0.546875 -3.390625 0.546875 -2.15625 C 0.546875 -0.953125 1.5625 0.0625 2.84375 0.0625 C 4.15625 0.0625 4.625 -0.84375 4.625 -1.09375 C 4.625 -1.359375 4.34375 -1.359375 4.28125 -1.359375 C 4.09375 -1.359375 4.015625 -1.328125 3.953125 -1.140625 C 3.734375 -0.640625 3.1875 -0.546875 2.90625 -0.546875 C 2.15625 -0.546875 1.421875 -1.046875 1.25 -1.90625 Z M 1.265625 -2.5 C 1.40625 -3.234375 2 -3.78125 2.6875 -3.78125 C 3.203125 -3.78125 3.828125 -3.53125 3.921875 -2.5 Z M 1.265625 -2.5 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph4-4">
|
||||
<path style="stroke:none;" d="M 4.28125 -3.6875 L 4.578125 -3.6875 C 4.734375 -3.6875 4.984375 -3.6875 4.984375 -3.984375 C 4.984375 -4.296875 4.75 -4.296875 4.578125 -4.296875 L 3.421875 -4.296875 C 3.265625 -4.296875 3.015625 -4.296875 3.015625 -4 C 3.015625 -3.6875 3.265625 -3.6875 3.421875 -3.6875 L 3.703125 -3.6875 L 2.609375 -0.484375 L 1.53125 -3.6875 L 1.796875 -3.6875 C 1.953125 -3.6875 2.203125 -3.6875 2.203125 -3.984375 C 2.203125 -4.296875 1.96875 -4.296875 1.796875 -4.296875 L 0.640625 -4.296875 C 0.484375 -4.296875 0.234375 -4.296875 0.234375 -3.984375 C 0.234375 -3.6875 0.484375 -3.6875 0.640625 -3.6875 L 0.9375 -3.6875 L 2.078125 -0.296875 C 2.203125 0.046875 2.40625 0.046875 2.609375 0.046875 C 2.796875 0.046875 3.03125 0.046875 3.140625 -0.296875 Z M 4.28125 -3.6875 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph4-5">
|
||||
<path style="stroke:none;" d="M 2.328125 -1.75 C 1.78125 -1.75 1.359375 -2.21875 1.359375 -2.75 C 1.359375 -3.3125 1.796875 -3.765625 2.328125 -3.765625 C 2.859375 -3.765625 3.28125 -3.296875 3.28125 -2.765625 C 3.28125 -2.1875 2.84375 -1.75 2.328125 -1.75 Z M 1.421875 -1.40625 C 1.453125 -1.390625 1.828125 -1.15625 2.328125 -1.15625 C 3.234375 -1.15625 3.96875 -1.875 3.96875 -2.765625 C 3.96875 -3.0625 3.875 -3.34375 3.703125 -3.625 C 3.921875 -3.75 4.15625 -3.78125 4.28125 -3.796875 C 4.34375 -3.53125 4.578125 -3.453125 4.671875 -3.453125 C 4.84375 -3.453125 5.078125 -3.578125 5.078125 -3.875 C 5.078125 -4.09375 4.890625 -4.40625 4.34375 -4.40625 C 4.234375 -4.40625 3.75 -4.390625 3.296875 -4.0625 C 3.125 -4.171875 2.78125 -4.359375 2.328125 -4.359375 C 1.390625 -4.359375 0.671875 -3.609375 0.671875 -2.765625 C 0.671875 -2.328125 0.84375 -2 1 -1.8125 C 0.890625 -1.65625 0.796875 -1.4375 0.796875 -1.140625 C 0.796875 -0.78125 0.9375 -0.53125 1.03125 -0.421875 C 0.296875 0.03125 0.296875 0.703125 0.296875 0.8125 C 0.296875 1.671875 1.328125 2.28125 2.609375 2.28125 C 3.890625 2.28125 4.9375 1.671875 4.9375 0.8125 C 4.9375 0.453125 4.75 -0.046875 4.25 -0.3125 C 4.109375 -0.390625 3.703125 -0.609375 2.796875 -0.609375 L 2.109375 -0.609375 C 2.03125 -0.609375 1.890625 -0.609375 1.8125 -0.625 C 1.671875 -0.625 1.609375 -0.625 1.484375 -0.765625 C 1.375 -0.90625 1.359375 -1.109375 1.359375 -1.125 C 1.359375 -1.171875 1.390625 -1.3125 1.421875 -1.40625 Z M 2.609375 1.6875 C 1.609375 1.6875 0.875 1.25 0.875 0.8125 C 0.875 0.640625 0.953125 0.3125 1.28125 0.125 C 1.53125 -0.046875 1.609375 -0.046875 2.34375 -0.046875 C 3.234375 -0.046875 4.359375 -0.046875 4.359375 0.8125 C 4.359375 1.25 3.609375 1.6875 2.609375 1.6875 Z M 2.609375 1.6875 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph4-6">
|
||||
<path style="stroke:none;" d="M 3.65625 -0.3125 C 3.875 -0.015625 4.34375 0 4.71875 0 C 5 0 5.21875 0 5.21875 -0.3125 C 5.21875 -0.609375 4.96875 -0.609375 4.828125 -0.609375 C 4.40625 -0.609375 4.3125 -0.65625 4.234375 -0.6875 L 4.234375 -2.84375 C 4.234375 -3.546875 3.6875 -4.390625 2.25 -4.390625 C 1.828125 -4.390625 0.8125 -4.390625 0.8125 -3.65625 C 0.8125 -3.359375 1.015625 -3.203125 1.25 -3.203125 C 1.40625 -3.203125 1.6875 -3.296875 1.6875 -3.65625 C 1.6875 -3.734375 1.703125 -3.75 1.90625 -3.765625 C 2.046875 -3.78125 2.171875 -3.78125 2.265625 -3.78125 C 3.015625 -3.78125 3.53125 -3.46875 3.53125 -2.765625 C 1.78125 -2.734375 0.546875 -2.234375 0.546875 -1.28125 C 0.546875 -0.59375 1.171875 0.0625 2.1875 0.0625 C 2.5625 0.0625 3.1875 -0.015625 3.65625 -0.3125 Z M 3.53125 -2.171875 L 3.53125 -1.328125 C 3.53125 -1.109375 3.53125 -0.890625 3.15625 -0.71875 C 2.796875 -0.546875 2.34375 -0.546875 2.265625 -0.546875 C 1.640625 -0.546875 1.234375 -0.890625 1.234375 -1.28125 C 1.234375 -1.765625 2.09375 -2.140625 3.53125 -2.171875 Z M 3.53125 -2.171875 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph4-7">
|
||||
<path style="stroke:none;" d="M 2.21875 -3.6875 L 3.84375 -3.6875 C 4 -3.6875 4.25 -3.6875 4.25 -3.984375 C 4.25 -4.296875 4 -4.296875 3.84375 -4.296875 L 2.21875 -4.296875 L 2.21875 -5.109375 C 2.21875 -5.296875 2.21875 -5.515625 1.875 -5.515625 C 1.53125 -5.515625 1.53125 -5.3125 1.53125 -5.109375 L 1.53125 -4.296875 L 0.65625 -4.296875 C 0.5 -4.296875 0.25 -4.296875 0.25 -3.984375 C 0.25 -3.6875 0.5 -3.6875 0.640625 -3.6875 L 1.53125 -3.6875 L 1.53125 -1.25 C 1.53125 -0.296875 2.203125 0.0625 2.9375 0.0625 C 3.671875 0.0625 4.46875 -0.375 4.46875 -1.25 C 4.46875 -1.4375 4.46875 -1.640625 4.125 -1.640625 C 3.796875 -1.640625 3.78125 -1.4375 3.78125 -1.265625 C 3.78125 -0.640625 3.203125 -0.546875 2.984375 -0.546875 C 2.21875 -0.546875 2.21875 -1.0625 2.21875 -1.3125 Z M 2.21875 -3.6875 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph4-8">
|
||||
<path style="stroke:none;" d="M 1.65625 -2.625 C 1.65625 -3.21875 2.234375 -3.75 2.859375 -3.75 C 3.59375 -3.75 4.171875 -3.015625 4.171875 -2.15625 C 4.171875 -1.203125 3.484375 -0.546875 2.78125 -0.546875 C 2 -0.546875 1.65625 -1.421875 1.65625 -1.90625 Z M 1.65625 -0.453125 C 2.0625 -0.03125 2.5 0.0625 2.8125 0.0625 C 3.890625 0.0625 4.859375 -0.890625 4.859375 -2.15625 C 4.859375 -3.375 3.984375 -4.359375 2.921875 -4.359375 C 2.4375 -4.359375 2 -4.171875 1.65625 -3.875 C 1.65625 -4.15625 1.640625 -4.296875 1.25 -4.296875 L 0.53125 -4.296875 C 0.375 -4.296875 0.125 -4.296875 0.125 -3.984375 C 0.125 -3.6875 0.375 -3.6875 0.515625 -3.6875 L 0.96875 -3.6875 L 0.96875 1.609375 L 0.53125 1.609375 C 0.375 1.609375 0.125 1.609375 0.125 1.90625 C 0.125 2.21875 0.375 2.21875 0.515625 2.21875 L 2.109375 2.21875 C 2.25 2.21875 2.5 2.21875 2.5 1.90625 C 2.5 1.609375 2.25 1.609375 2.09375 1.609375 L 1.65625 1.609375 Z M 1.65625 -0.453125 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph4-9">
|
||||
<path style="stroke:none;" d="M 3.09375 -5.796875 C 3.09375 -5.953125 3.09375 -6.203125 2.796875 -6.203125 C 2.609375 -6.203125 2.546875 -6.078125 2.5 -5.96875 C 2.125 -5.109375 1.609375 -5 1.421875 -4.984375 C 1.25 -4.96875 1.046875 -4.953125 1.046875 -4.671875 C 1.046875 -4.421875 1.21875 -4.375 1.375 -4.375 C 1.5625 -4.375 1.96875 -4.4375 2.40625 -4.8125 L 2.40625 -0.609375 L 1.5 -0.609375 C 1.34375 -0.609375 1.109375 -0.609375 1.109375 -0.296875 C 1.109375 0 1.359375 0 1.5 0 L 4 0 C 4.15625 0 4.40625 0 4.40625 -0.296875 C 4.40625 -0.609375 4.171875 -0.609375 4 -0.609375 L 3.09375 -0.609375 Z M 3.09375 -5.796875 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph4-10">
|
||||
<path style="stroke:none;" d="M 4.203125 -2.703125 C 4.3125 -2.703125 4.671875 -2.703125 4.671875 -3.046875 C 4.671875 -3.40625 4.3125 -3.40625 4.203125 -3.40625 L 1.03125 -3.40625 C 0.90625 -3.40625 0.5625 -3.40625 0.5625 -3.046875 C 0.5625 -2.703125 0.90625 -2.703125 1.03125 -2.703125 Z M 4.203125 -2.703125 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph4-11">
|
||||
<path style="stroke:none;" d="M 1.65625 -3.875 L 1.65625 -5.6875 C 1.65625 -5.984375 1.59375 -6.09375 1.25 -6.09375 L 0.53125 -6.09375 C 0.375 -6.09375 0.125 -6.09375 0.125 -5.78125 C 0.125 -5.484375 0.375 -5.484375 0.515625 -5.484375 L 0.96875 -5.484375 L 0.96875 -0.40625 C 0.96875 -0.203125 0.96875 0 1.3125 0 C 1.65625 0 1.65625 -0.203125 1.65625 -0.453125 C 2.0625 -0.03125 2.5 0.0625 2.8125 0.0625 C 3.890625 0.0625 4.859375 -0.890625 4.859375 -2.15625 C 4.859375 -3.375 3.984375 -4.359375 2.921875 -4.359375 C 2.4375 -4.359375 2 -4.171875 1.65625 -3.875 Z M 1.65625 -1.90625 L 1.65625 -2.625 C 1.65625 -3.21875 2.234375 -3.75 2.859375 -3.75 C 3.59375 -3.75 4.171875 -3.015625 4.171875 -2.15625 C 4.171875 -1.203125 3.484375 -0.546875 2.78125 -0.546875 C 2 -0.546875 1.65625 -1.421875 1.65625 -1.90625 Z M 1.65625 -1.90625 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph4-12">
|
||||
<path style="stroke:none;" d="M 3.5625 -0.3125 C 3.578125 0 3.78125 0 3.96875 0 L 4.6875 0 C 4.859375 0 5.109375 0 5.109375 -0.3125 C 5.109375 -0.609375 4.84375 -0.609375 4.703125 -0.609375 L 4.25 -0.609375 L 4.25 -3.890625 C 4.25 -4.203125 4.203125 -4.296875 3.859375 -4.296875 L 3.125 -4.296875 C 2.96875 -4.296875 2.71875 -4.296875 2.71875 -3.984375 C 2.71875 -3.6875 2.984375 -3.6875 3.125 -3.6875 L 3.5625 -3.6875 L 3.5625 -1.5625 C 3.5625 -0.671875 2.765625 -0.546875 2.4375 -0.546875 C 1.65625 -0.546875 1.65625 -0.875 1.65625 -1.203125 L 1.65625 -3.890625 C 1.65625 -4.203125 1.59375 -4.296875 1.25 -4.296875 L 0.53125 -4.296875 C 0.375 -4.296875 0.125 -4.296875 0.125 -3.984375 C 0.125 -3.6875 0.375 -3.6875 0.515625 -3.6875 L 0.96875 -3.6875 L 0.96875 -1.140625 C 0.96875 -0.171875 1.65625 0.0625 2.375 0.0625 C 2.796875 0.0625 3.203125 -0.046875 3.5625 -0.3125 Z M 3.5625 -0.3125 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph4-13">
|
||||
<path style="stroke:none;" d="M 2.953125 -5.6875 C 2.953125 -5.984375 2.90625 -6.09375 2.5625 -6.09375 L 0.984375 -6.09375 C 0.828125 -6.09375 0.578125 -6.09375 0.578125 -5.78125 C 0.578125 -5.484375 0.84375 -5.484375 0.984375 -5.484375 L 2.265625 -5.484375 L 2.265625 -0.609375 L 0.984375 -0.609375 C 0.828125 -0.609375 0.578125 -0.609375 0.578125 -0.296875 C 0.578125 0 0.84375 0 0.984375 0 L 4.25 0 C 4.40625 0 4.65625 0 4.65625 -0.296875 C 4.65625 -0.609375 4.421875 -0.609375 4.25 -0.609375 L 2.953125 -0.609375 Z M 2.953125 -5.6875 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph4-14">
|
||||
<path style="stroke:none;" d="M 2.859375 -2.546875 L 4.09375 -3.6875 L 4.4375 -3.6875 C 4.578125 -3.6875 4.84375 -3.6875 4.84375 -3.984375 C 4.84375 -4.296875 4.578125 -4.296875 4.4375 -4.296875 L 2.90625 -4.296875 C 2.734375 -4.296875 2.5 -4.296875 2.5 -3.984375 C 2.5 -3.6875 2.75 -3.6875 2.90625 -3.6875 L 3.265625 -3.6875 L 1.65625 -2.171875 L 1.65625 -5.6875 C 1.65625 -5.984375 1.59375 -6.09375 1.25 -6.09375 L 0.609375 -6.09375 C 0.453125 -6.09375 0.203125 -6.09375 0.203125 -5.796875 C 0.203125 -5.484375 0.453125 -5.484375 0.609375 -5.484375 L 1.09375 -5.484375 L 1.09375 -0.609375 L 0.609375 -0.609375 C 0.453125 -0.609375 0.203125 -0.609375 0.203125 -0.3125 C 0.203125 0 0.453125 0 0.609375 0 L 2.140625 0 C 2.296875 0 2.546875 0 2.546875 -0.296875 C 2.546875 -0.609375 2.296875 -0.609375 2.140625 -0.609375 L 1.65625 -0.609375 L 1.65625 -1.421875 L 2.453125 -2.15625 L 3.640625 -0.609375 C 3.28125 -0.609375 3.078125 -0.609375 3.078125 -0.296875 C 3.078125 0 3.328125 0 3.484375 0 L 4.65625 0 C 4.8125 0 5.0625 0 5.0625 -0.296875 C 5.0625 -0.609375 4.8125 -0.609375 4.65625 -0.609375 L 4.34375 -0.609375 Z M 2.859375 -2.546875 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph4-15">
|
||||
<path style="stroke:none;" d="M 0.671875 -0.578125 C 0.578125 -0.5 0.515625 -0.453125 0.515625 -0.3125 C 0.515625 0 0.765625 0 0.921875 0 L 4.3125 0 C 4.640625 0 4.703125 -0.09375 4.703125 -0.40625 L 4.703125 -0.671875 C 4.703125 -0.859375 4.703125 -1.078125 4.359375 -1.078125 C 4.015625 -1.078125 4.015625 -0.890625 4.015625 -0.609375 L 1.640625 -0.609375 C 2.234375 -1.109375 3.1875 -1.859375 3.625 -2.265625 C 4.25 -2.828125 4.703125 -3.453125 4.703125 -4.25 C 4.703125 -5.453125 3.703125 -6.203125 2.484375 -6.203125 C 1.3125 -6.203125 0.515625 -5.390625 0.515625 -4.53125 C 0.515625 -4.171875 0.796875 -4.0625 0.96875 -4.0625 C 1.171875 -4.0625 1.40625 -4.234375 1.40625 -4.5 C 1.40625 -4.625 1.359375 -4.75 1.265625 -4.828125 C 1.421875 -5.28125 1.890625 -5.59375 2.4375 -5.59375 C 3.25 -5.59375 4.015625 -5.140625 4.015625 -4.25 C 4.015625 -3.5625 3.53125 -2.984375 2.875 -2.4375 Z M 0.671875 -0.578125 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph4-16">
|
||||
<path style="stroke:none;" d="M 3.65625 -3.328125 C 4.21875 -3.6875 4.5 -4.25 4.5 -4.796875 C 4.5 -5.53125 3.765625 -6.203125 2.625 -6.203125 C 1.421875 -6.203125 0.734375 -5.71875 0.734375 -5.03125 C 0.734375 -4.703125 0.984375 -4.5625 1.171875 -4.5625 C 1.390625 -4.5625 1.609375 -4.734375 1.609375 -5.015625 C 1.609375 -5.15625 1.5625 -5.25 1.53125 -5.28125 C 1.828125 -5.59375 2.546875 -5.59375 2.625 -5.59375 C 3.3125 -5.59375 3.8125 -5.234375 3.8125 -4.78125 C 3.8125 -4.484375 3.65625 -4.140625 3.390625 -3.921875 C 3.078125 -3.65625 2.828125 -3.640625 2.46875 -3.625 C 1.890625 -3.578125 1.75 -3.578125 1.75 -3.296875 C 1.75 -2.984375 1.984375 -2.984375 2.140625 -2.984375 L 2.609375 -2.984375 C 3.59375 -2.984375 4.09375 -2.3125 4.09375 -1.734375 C 4.09375 -1.125 3.53125 -0.5 2.625 -0.5 C 2.234375 -0.5 1.46875 -0.609375 1.203125 -1.078125 C 1.25 -1.125 1.328125 -1.1875 1.328125 -1.390625 C 1.328125 -1.625 1.140625 -1.828125 0.890625 -1.828125 C 0.65625 -1.828125 0.4375 -1.671875 0.4375 -1.359375 C 0.4375 -0.46875 1.40625 0.109375 2.625 0.109375 C 3.9375 0.109375 4.78125 -0.8125 4.78125 -1.734375 C 4.78125 -2.4375 4.3125 -3.03125 3.65625 -3.328125 Z M 3.65625 -3.328125 "/>
|
||||
</symbol>
|
||||
</g>
|
||||
<clipPath id="clip1">
|
||||
<path d="M 151 23 L 406.867188 23 L 406.867188 24 L 151 24 Z M 151 23 "/>
|
||||
</clipPath>
|
||||
<clipPath id="clip2">
|
||||
<path d="M 151 43 L 406.867188 43 L 406.867188 44 L 151 44 Z M 151 43 "/>
|
||||
</clipPath>
|
||||
<clipPath id="clip3">
|
||||
<path d="M 151 93 L 406.867188 93 L 406.867188 94 L 151 94 Z M 151 93 "/>
|
||||
</clipPath>
|
||||
<clipPath id="clip4">
|
||||
<path d="M 127 1 L 256 1 L 256 64 L 127 64 Z M 127 1 "/>
|
||||
</clipPath>
|
||||
<clipPath id="clip5">
|
||||
<path d="M 251.753906 0.996094 L 131.90625 0.996094 C 129.703125 0.996094 127.921875 2.78125 127.921875 4.980469 L 127.921875 59.695312 C 127.921875 61.898438 129.703125 63.683594 131.90625 63.683594 L 251.753906 63.683594 C 253.957031 63.683594 255.738281 61.898438 255.738281 59.695312 L 255.738281 4.980469 C 255.738281 2.78125 253.957031 0.996094 251.753906 0.996094 Z M 255.738281 21.246094 L 127.921875 21.246094 M 255.738281 41.496094 L 127.921875 41.496094 "/>
|
||||
</clipPath>
|
||||
<linearGradient id="linear0" gradientUnits="userSpaceOnUse" x1="0" y1="25.003094" x2="0" y2="74.996906" gradientTransform="matrix(2.5567,0,0,-1.25388,63.995,95.033)">
|
||||
<stop offset="0" style="stop-color:rgb(97.000122%,97.999573%,97.999573%);stop-opacity:1;"/>
|
||||
<stop offset="0.125" style="stop-color:rgb(97.149658%,98.098755%,98.098755%);stop-opacity:1;"/>
|
||||
<stop offset="0.25" style="stop-color:rgb(97.44873%,98.298645%,98.298645%);stop-opacity:1;"/>
|
||||
<stop offset="0.375" style="stop-color:rgb(97.749329%,98.498535%,98.498535%);stop-opacity:1;"/>
|
||||
<stop offset="0.5" style="stop-color:rgb(98.048401%,98.698425%,98.698425%);stop-opacity:1;"/>
|
||||
<stop offset="0.625" style="stop-color:rgb(98.348999%,98.898315%,98.898315%);stop-opacity:1;"/>
|
||||
<stop offset="0.75" style="stop-color:rgb(98.648071%,99.098206%,99.098206%);stop-opacity:1;"/>
|
||||
<stop offset="0.875" style="stop-color:rgb(98.948669%,99.298096%,99.298096%);stop-opacity:1;"/>
|
||||
<stop offset="1" style="stop-color:rgb(99.249268%,99.497986%,99.497986%);stop-opacity:1;"/>
|
||||
</linearGradient>
|
||||
<clipPath id="clip6">
|
||||
<path d="M 145 94 L 239 94 L 239 136 L 145 136 Z M 145 94 "/>
|
||||
</clipPath>
|
||||
<clipPath id="clip7">
|
||||
<path d="M 234.480469 94.023438 L 149.179688 94.023438 C 146.976562 94.023438 145.195312 95.804688 145.195312 98.007812 L 145.195312 132.308594 C 145.195312 134.507812 146.976562 136.292969 149.179688 136.292969 L 234.480469 136.292969 C 236.683594 136.292969 238.464844 134.507812 238.464844 132.308594 L 238.464844 98.007812 C 238.464844 95.804688 236.683594 94.023438 234.480469 94.023438 Z M 238.464844 115.65625 L 145.195312 115.65625 "/>
|
||||
</clipPath>
|
||||
<linearGradient id="linear1" gradientUnits="userSpaceOnUse" x1="0" y1="25.002637" x2="0" y2="74.997315" gradientTransform="matrix(1.86569,0,0,-0.8455,98.5455,157.43173)">
|
||||
<stop offset="0" style="stop-color:rgb(84.999084%,90.000916%,90.000916%);stop-opacity:1;"/>
|
||||
<stop offset="0.03125" style="stop-color:rgb(85.139465%,90.093994%,90.093994%);stop-opacity:1;"/>
|
||||
<stop offset="0.0625" style="stop-color:rgb(85.421753%,90.281677%,90.281677%);stop-opacity:1;"/>
|
||||
<stop offset="0.09375" style="stop-color:rgb(85.702515%,90.467834%,90.467834%);stop-opacity:1;"/>
|
||||
<stop offset="0.125" style="stop-color:rgb(85.983276%,90.655518%,90.655518%);stop-opacity:1;"/>
|
||||
<stop offset="0.15625" style="stop-color:rgb(86.265564%,90.843201%,90.843201%);stop-opacity:1;"/>
|
||||
<stop offset="0.1875" style="stop-color:rgb(86.546326%,91.030884%,91.030884%);stop-opacity:1;"/>
|
||||
<stop offset="0.21875" style="stop-color:rgb(86.827087%,91.218567%,91.218567%);stop-opacity:1;"/>
|
||||
<stop offset="0.25" style="stop-color:rgb(87.107849%,91.40625%,91.40625%);stop-opacity:1;"/>
|
||||
<stop offset="0.28125" style="stop-color:rgb(87.390137%,91.593933%,91.593933%);stop-opacity:1;"/>
|
||||
<stop offset="0.3125" style="stop-color:rgb(87.670898%,91.781616%,91.781616%);stop-opacity:1;"/>
|
||||
<stop offset="0.34375" style="stop-color:rgb(87.95166%,91.967773%,91.967773%);stop-opacity:1;"/>
|
||||
<stop offset="0.375" style="stop-color:rgb(88.233948%,92.155457%,92.155457%);stop-opacity:1;"/>
|
||||
<stop offset="0.40625" style="stop-color:rgb(88.514709%,92.34314%,92.34314%);stop-opacity:1;"/>
|
||||
<stop offset="0.4375" style="stop-color:rgb(88.795471%,92.530823%,92.530823%);stop-opacity:1;"/>
|
||||
<stop offset="0.46875" style="stop-color:rgb(89.077759%,92.718506%,92.718506%);stop-opacity:1;"/>
|
||||
<stop offset="0.5" style="stop-color:rgb(89.358521%,92.906189%,92.906189%);stop-opacity:1;"/>
|
||||
<stop offset="0.53125" style="stop-color:rgb(89.639282%,93.093872%,93.093872%);stop-opacity:1;"/>
|
||||
<stop offset="0.5625" style="stop-color:rgb(89.920044%,93.280029%,93.280029%);stop-opacity:1;"/>
|
||||
<stop offset="0.59375" style="stop-color:rgb(90.202332%,93.467712%,93.467712%);stop-opacity:1;"/>
|
||||
<stop offset="0.625" style="stop-color:rgb(90.483093%,93.655396%,93.655396%);stop-opacity:1;"/>
|
||||
<stop offset="0.65625" style="stop-color:rgb(90.763855%,93.843079%,93.843079%);stop-opacity:1;"/>
|
||||
<stop offset="0.6875" style="stop-color:rgb(91.046143%,94.030762%,94.030762%);stop-opacity:1;"/>
|
||||
<stop offset="0.71875" style="stop-color:rgb(91.326904%,94.218445%,94.218445%);stop-opacity:1;"/>
|
||||
<stop offset="0.75" style="stop-color:rgb(91.607666%,94.404602%,94.404602%);stop-opacity:1;"/>
|
||||
<stop offset="0.78125" style="stop-color:rgb(91.889954%,94.592285%,94.592285%);stop-opacity:1;"/>
|
||||
<stop offset="0.8125" style="stop-color:rgb(92.170715%,94.779968%,94.779968%);stop-opacity:1;"/>
|
||||
<stop offset="0.84375" style="stop-color:rgb(92.451477%,94.967651%,94.967651%);stop-opacity:1;"/>
|
||||
<stop offset="0.875" style="stop-color:rgb(92.732239%,95.155334%,95.155334%);stop-opacity:1;"/>
|
||||
<stop offset="0.90625" style="stop-color:rgb(93.014526%,95.341492%,95.341492%);stop-opacity:1;"/>
|
||||
<stop offset="0.9375" style="stop-color:rgb(93.295288%,95.529175%,95.529175%);stop-opacity:1;"/>
|
||||
<stop offset="0.96875" style="stop-color:rgb(93.57605%,95.716858%,95.716858%);stop-opacity:1;"/>
|
||||
<stop offset="1" style="stop-color:rgb(93.858337%,95.904541%,95.904541%);stop-opacity:1;"/>
|
||||
</linearGradient>
|
||||
<clipPath id="clip8">
|
||||
<path d="M 170 169 L 219 169 L 219 187.710938 L 170 187.710938 Z M 170 169 "/>
|
||||
</clipPath>
|
||||
<clipPath id="clip9">
|
||||
<path d="M 168 167 L 216 167 L 216 187 L 168 187 Z M 168 167 "/>
|
||||
</clipPath>
|
||||
<clipPath id="clip10">
|
||||
<path d="M 211.640625 166.632812 L 172.019531 166.632812 C 169.816406 166.632812 168.035156 168.414062 168.035156 170.617188 L 168.035156 182.730469 C 168.035156 184.929688 169.816406 186.714844 172.019531 186.714844 L 211.640625 186.714844 C 213.84375 186.714844 215.625 184.929688 215.625 182.730469 L 215.625 170.617188 C 215.625 168.414062 213.84375 166.632812 211.640625 166.632812 Z M 211.640625 166.632812 "/>
|
||||
</clipPath>
|
||||
<linearGradient id="linear2" gradientUnits="userSpaceOnUse" x1="0" y1="25.002912" x2="0" y2="74.996963" gradientTransform="matrix(0.95195,0,0,-0.40172,144.2325,196.75915)">
|
||||
<stop offset="0" style="stop-color:rgb(97.000122%,97.999573%,97.999573%);stop-opacity:1;"/>
|
||||
<stop offset="0.125" style="stop-color:rgb(97.149658%,98.098755%,98.098755%);stop-opacity:1;"/>
|
||||
<stop offset="0.25" style="stop-color:rgb(97.44873%,98.298645%,98.298645%);stop-opacity:1;"/>
|
||||
<stop offset="0.375" style="stop-color:rgb(97.749329%,98.498535%,98.498535%);stop-opacity:1;"/>
|
||||
<stop offset="0.5" style="stop-color:rgb(98.048401%,98.698425%,98.698425%);stop-opacity:1;"/>
|
||||
<stop offset="0.625" style="stop-color:rgb(98.348999%,98.898315%,98.898315%);stop-opacity:1;"/>
|
||||
<stop offset="0.75" style="stop-color:rgb(98.648071%,99.098206%,99.098206%);stop-opacity:1;"/>
|
||||
<stop offset="0.875" style="stop-color:rgb(98.948669%,99.298096%,99.298096%);stop-opacity:1;"/>
|
||||
<stop offset="1" style="stop-color:rgb(99.249268%,99.497986%,99.497986%);stop-opacity:1;"/>
|
||||
</linearGradient>
|
||||
<clipPath id="clip11">
|
||||
<path d="M 139 138 L 244 138 L 244 187.710938 L 139 187.710938 Z M 139 138 "/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
<g id="surface1">
|
||||
<path style="fill:none;stroke-width:1.99255;stroke-linecap:round;stroke-linejoin:miter;stroke:rgb(8.657837%,31.404114%,58.695984%);stroke-opacity:1;stroke-miterlimit:10;" d="M -47.634688 -93.633656 L -75.978438 -93.633656 L -75.978438 -20.250844 L -64.908125 -20.250844 " transform="matrix(1,0,0,-1,191.83,32.339)"/>
|
||||
<path style="fill:none;stroke-width:1.99255;stroke-linecap:round;stroke-linejoin:miter;stroke:rgb(8.657837%,31.404114%,58.695984%);stroke-opacity:1;stroke-miterlimit:10;" d="M 47.630937 -93.633656 L 75.978594 -93.633656 L 75.978594 -144.332875 L 24.791094 -144.332875 " transform="matrix(1,0,0,-1,191.83,32.339)"/>
|
||||
<g clip-path="url(#clip1)" clip-rule="nonzero">
|
||||
<path style="fill:none;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(69.999695%,69.999695%,69.999695%);stroke-opacity:1;stroke-miterlimit:10;" d="M 214.841875 8.858531 L -40.279219 8.858531 " transform="matrix(1,0,0,-1,191.83,32.339)"/>
|
||||
</g>
|
||||
<g clip-path="url(#clip2)" clip-rule="nonzero">
|
||||
<path style="fill:none;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(69.999695%,69.999695%,69.999695%);stroke-opacity:1;stroke-miterlimit:10;" d="M 214.841875 -11.301625 L -40.279219 -11.301625 " transform="matrix(1,0,0,-1,191.83,32.339)"/>
|
||||
</g>
|
||||
<g clip-path="url(#clip3)" clip-rule="nonzero">
|
||||
<path style="fill:none;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(69.999695%,69.999695%,69.999695%);stroke-opacity:1;stroke-miterlimit:10;" d="M 214.841875 -60.969594 L -40.279219 -60.969594 " transform="matrix(1,0,0,-1,191.83,32.339)"/>
|
||||
</g>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(50%,50%,50%);fill-opacity:0.15;" d="M 254.328125 3.570312 L 134.480469 3.570312 C 132.277344 3.570312 130.492188 5.355469 130.492188 7.554688 L 130.492188 62.269531 C 130.492188 64.472656 132.277344 66.253906 134.480469 66.253906 L 254.328125 66.253906 C 256.53125 66.253906 258.3125 64.472656 258.3125 62.269531 L 258.3125 7.554688 C 258.3125 5.355469 256.53125 3.570312 254.328125 3.570312 Z M 258.3125 23.820312 L 130.492188 23.820312 M 258.3125 44.070312 L 130.492188 44.070312 "/>
|
||||
<g clip-path="url(#clip4)" clip-rule="nonzero">
|
||||
<g clip-path="url(#clip5)" clip-rule="nonzero">
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:url(#linear0);" d="M 127.921875 63.683594 L 127.921875 0.996094 L 255.738281 0.996094 L 255.738281 63.683594 Z M 127.921875 63.683594 "/>
|
||||
</g>
|
||||
</g>
|
||||
<path style="fill:none;stroke-width:1.99255;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(74.472046%,79.733276%,82.038879%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.923906 31.342906 L -59.92375 31.342906 C -62.126875 31.342906 -63.908125 29.55775 -63.908125 27.358531 L -63.908125 -27.356313 C -63.908125 -29.559438 -62.126875 -31.344594 -59.92375 -31.344594 L 59.923906 -31.344594 C 62.127031 -31.344594 63.908281 -29.559438 63.908281 -27.356313 L 63.908281 27.358531 C 63.908281 29.55775 62.127031 31.342906 59.923906 31.342906 Z M 63.908281 11.092906 L -63.908125 11.092906 M 63.908281 -9.157094 L -63.908125 -9.157094 " transform="matrix(1,0,0,-1,191.83,32.339)"/>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph0-1" x="163.243" y="14.58"/>
|
||||
<use xlink:href="#glyph0-2" x="169.469625" y="14.58"/>
|
||||
<use xlink:href="#glyph0-3" x="172.237235" y="14.58"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph0-4" x="177.493503" y="14.58"/>
|
||||
<use xlink:href="#glyph0-5" x="183.028724" y="14.58"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph0-6" x="191.60453" y="14.58"/>
|
||||
<use xlink:href="#glyph0-7" x="199.35344" y="14.58"/>
|
||||
<use xlink:href="#glyph0-8" x="203.780819" y="14.58"/>
|
||||
<use xlink:href="#glyph0-3" x="207.68317" y="14.58"/>
|
||||
<use xlink:href="#glyph0-7" x="213.21839" y="14.58"/>
|
||||
<use xlink:href="#glyph0-9" x="217.64577" y="14.58"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph0-10" x="133.59" y="34.829"/>
|
||||
<use xlink:href="#glyph0-11" x="139.125221" y="34.829"/>
|
||||
<use xlink:href="#glyph0-12" x="144.106521" y="34.829"/>
|
||||
<use xlink:href="#glyph0-13" x="151.30151" y="34.829"/>
|
||||
<use xlink:href="#glyph0-14" x="156.28281" y="34.829"/>
|
||||
<use xlink:href="#glyph0-5" x="161.26411" y="34.829"/>
|
||||
<use xlink:href="#glyph0-5" x="166.522371" y="34.829"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph0-12" x="175.098177" y="34.829"/>
|
||||
<use xlink:href="#glyph0-15" x="182.293166" y="34.829"/>
|
||||
<use xlink:href="#glyph0-3" x="187.274466" y="34.829"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph0-16" x="192.540697" y="34.829"/>
|
||||
<use xlink:href="#glyph0-8" x="196.415152" y="34.829"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph0-15" x="200.30754" y="34.829"/>
|
||||
<use xlink:href="#glyph0-9" x="205.28884" y="34.829"/>
|
||||
<use xlink:href="#glyph0-9" x="208.05645" y="34.829"/>
|
||||
<use xlink:href="#glyph0-7" x="210.82406" y="34.829"/>
|
||||
<use xlink:href="#glyph0-8" x="215.25144" y="34.829"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph0-17" x="222.481299" y="34.829"/>
|
||||
<use xlink:href="#glyph0-8" x="230.091729" y="34.829"/>
|
||||
<use xlink:href="#glyph0-2" x="233.994079" y="34.829"/>
|
||||
<use xlink:href="#glyph0-18" x="236.761689" y="34.829"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph0-7" x="241.740997" y="34.829"/>
|
||||
<use xlink:href="#glyph0-8" x="246.168376" y="34.829"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph0-19" x="168.342" y="55.079"/>
|
||||
<use xlink:href="#glyph0-20" x="176.159652" y="55.079"/>
|
||||
<use xlink:href="#glyph0-21" x="181.140952" y="55.079"/>
|
||||
<use xlink:href="#glyph0-22" x="186.676173" y="55.079"/>
|
||||
<use xlink:href="#glyph0-7" x="191.657473" y="55.079"/>
|
||||
<use xlink:href="#glyph0-16" x="196.084852" y="55.079"/>
|
||||
<use xlink:href="#glyph0-23" x="199.959307" y="55.079"/>
|
||||
<use xlink:href="#glyph0-10" x="206.462893" y="55.079"/>
|
||||
</g>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(50%,50%,50%);fill-opacity:0.15;" d="M 237.054688 96.59375 L 151.753906 96.59375 C 149.550781 96.59375 147.765625 98.378906 147.765625 100.582031 L 147.765625 134.878906 C 147.765625 137.082031 149.550781 138.867188 151.753906 138.867188 L 237.054688 138.867188 C 239.257812 138.867188 241.039062 137.082031 241.039062 134.878906 L 241.039062 100.582031 C 241.039062 98.378906 239.257812 96.59375 237.054688 96.59375 Z M 241.039062 118.230469 L 147.765625 118.230469 "/>
|
||||
<g clip-path="url(#clip6)" clip-rule="nonzero">
|
||||
<g clip-path="url(#clip7)" clip-rule="nonzero">
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:url(#linear1);" d="M 145.195312 136.292969 L 145.195312 94.023438 L 238.464844 94.023438 L 238.464844 136.292969 Z M 145.195312 136.292969 "/>
|
||||
</g>
|
||||
</g>
|
||||
<path style="fill:none;stroke-width:1.99255;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(74.472046%,79.733276%,82.038879%);stroke-opacity:1;stroke-miterlimit:10;" d="M 42.650469 -61.684438 L -42.650313 -61.684438 C -44.853438 -61.684438 -46.634688 -63.465688 -46.634688 -65.668813 L -46.634688 -99.969594 C -46.634688 -102.168813 -44.853438 -103.953969 -42.650313 -103.953969 L 42.650469 -103.953969 C 44.853594 -103.953969 46.634844 -102.168813 46.634844 -99.969594 L 46.634844 -65.668813 C 46.634844 -63.465688 44.853594 -61.684438 42.650469 -61.684438 Z M 46.634844 -83.31725 L -46.634688 -83.31725 " transform="matrix(1,0,0,-1,191.83,32.339)"/>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph1-1" x="150.863" y="108.988"/>
|
||||
<use xlink:href="#glyph1-1" x="159.317717" y="108.988"/>
|
||||
<use xlink:href="#glyph1-2" x="167.772435" y="108.988"/>
|
||||
<use xlink:href="#glyph1-3" x="171.995012" y="108.988"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph1-4" x="184.832505" y="108.988"/>
|
||||
<use xlink:href="#glyph1-5" x="192.79706" y="108.988"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph1-6" x="202.229712" y="108.988"/>
|
||||
<use xlink:href="#glyph1-7" x="208.733341" y="108.988"/>
|
||||
<use xlink:href="#glyph1-8" x="211.985156" y="108.988"/>
|
||||
<use xlink:href="#glyph1-9" x="217.838421" y="108.988"/>
|
||||
<use xlink:href="#glyph1-10" x="222.390962" y="108.988"/>
|
||||
<use xlink:href="#glyph1-11" x="228.244228" y="108.988"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph2-1" x="156.642" y="129.625"/>
|
||||
<use xlink:href="#glyph2-2" x="162.794146" y="129.625"/>
|
||||
<use xlink:href="#glyph2-3" x="168.946292" y="129.625"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph2-4" x="198.506719" y="129.625"/>
|
||||
<use xlink:href="#glyph2-4" x="204.658865" y="129.625"/>
|
||||
<use xlink:href="#glyph2-5" x="210.811011" y="129.625"/>
|
||||
<use xlink:href="#glyph2-6" x="216.963157" y="129.625"/>
|
||||
</g>
|
||||
<path style="fill:none;stroke-width:1.99255;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(74.472046%,79.733276%,82.038879%);stroke-opacity:1;stroke-miterlimit:10;" d="M -1.415938 -83.31725 L -1.415938 -104.950063 " transform="matrix(1,0,0,-1,191.83,32.339)"/>
|
||||
<g clip-path="url(#clip8)" clip-rule="nonzero">
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(50%,50%,50%);fill-opacity:0.15;" d="M 214.214844 169.203125 L 174.59375 169.203125 C 172.390625 169.203125 170.609375 170.988281 170.609375 173.191406 L 170.609375 185.304688 C 170.609375 187.503906 172.390625 189.289062 174.59375 189.289062 L 214.214844 189.289062 C 216.414062 189.289062 218.199219 187.503906 218.199219 185.304688 L 218.199219 173.191406 C 218.199219 170.988281 216.414062 169.203125 214.214844 169.203125 Z M 214.214844 169.203125 "/>
|
||||
</g>
|
||||
<g clip-path="url(#clip9)" clip-rule="nonzero">
|
||||
<g clip-path="url(#clip10)" clip-rule="nonzero">
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:url(#linear2);" d="M 168.035156 186.714844 L 168.035156 166.632812 L 215.625 166.632812 L 215.625 186.714844 Z M 168.035156 186.714844 "/>
|
||||
</g>
|
||||
</g>
|
||||
<g clip-path="url(#clip11)" clip-rule="nonzero">
|
||||
<path style="fill:none;stroke-width:1.99255;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(74.472046%,79.733276%,82.038879%);stroke-opacity:1;stroke-miterlimit:10;" d="M 19.810625 -134.293813 L -19.810469 -134.293813 C -22.013594 -134.293813 -23.794844 -136.075063 -23.794844 -138.278188 L -23.794844 -150.391469 C -23.794844 -152.590688 -22.013594 -154.375844 -19.810469 -154.375844 L 19.810625 -154.375844 C 22.01375 -154.375844 23.795 -152.590688 23.795 -150.391469 L 23.795 -138.278188 C 23.795 -136.075063 22.01375 -134.293813 19.810625 -134.293813 Z M 19.810625 -134.293813 " transform="matrix(1,0,0,-1,191.83,32.339)"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph0-24" x="173.704" y="179.106"/>
|
||||
<use xlink:href="#glyph0-25" x="181.45291" y="179.106"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph0-7" x="187.267084" y="179.106"/>
|
||||
<use xlink:href="#glyph0-3" x="191.694463" y="179.106"/>
|
||||
<use xlink:href="#glyph0-10" x="197.229684" y="179.106"/>
|
||||
<use xlink:href="#glyph0-12" x="202.764904" y="179.106"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph3-1" x="278.176" y="35.158"/>
|
||||
<use xlink:href="#glyph3-2" x="286.509461" y="35.158"/>
|
||||
<use xlink:href="#glyph3-3" x="290.782556" y="35.158"/>
|
||||
<use xlink:href="#glyph3-4" x="293.813104" y="35.158"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph3-5" x="299.265472" y="35.158"/>
|
||||
<use xlink:href="#glyph3-2" x="304.113476" y="35.158"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph3-6" x="312.019301" y="35.158"/>
|
||||
<use xlink:href="#glyph3-7" x="315.353122" y="35.158"/>
|
||||
<use xlink:href="#glyph3-2" x="320.807672" y="35.158"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph3-8" x="328.724406" y="35.158"/>
|
||||
<use xlink:href="#glyph3-9" x="336.906231" y="35.158"/>
|
||||
<use xlink:href="#glyph3-10" x="342.967327" y="35.158"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph3-11" x="354.326973" y="35.158"/>
|
||||
<use xlink:href="#glyph3-7" x="362.205525" y="35.158"/>
|
||||
<use xlink:href="#glyph3-12" x="367.660075" y="35.158"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph3-13" x="373.415716" y="35.158"/>
|
||||
<use xlink:href="#glyph3-2" x="377.658265" y="35.158"/>
|
||||
<use xlink:href="#glyph3-7" x="381.931359" y="35.158"/>
|
||||
<use xlink:href="#glyph3-14" x="387.385909" y="35.158"/>
|
||||
<use xlink:href="#glyph3-14" x="390.416457" y="35.158"/>
|
||||
<use xlink:href="#glyph3-5" x="393.447005" y="35.158"/>
|
||||
<use xlink:href="#glyph3-2" x="398.295009" y="35.158"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph3-15" x="334.1" y="55.315"/>
|
||||
<use xlink:href="#glyph3-16" x="342.660371" y="55.315"/>
|
||||
<use xlink:href="#glyph3-17" x="348.114921" y="55.315"/>
|
||||
<use xlink:href="#glyph3-18" x="354.176017" y="55.315"/>
|
||||
<use xlink:href="#glyph3-5" x="359.630567" y="55.315"/>
|
||||
<use xlink:href="#glyph3-13" x="364.478571" y="55.315"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph3-1" x="372.35385" y="55.315"/>
|
||||
<use xlink:href="#glyph3-2" x="380.687312" y="55.315"/>
|
||||
<use xlink:href="#glyph3-3" x="384.960406" y="55.315"/>
|
||||
<use xlink:href="#glyph3-4" x="387.990954" y="55.315"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph3-5" x="393.443322" y="55.315"/>
|
||||
<use xlink:href="#glyph3-2" x="398.291326" y="55.315"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph3-8" x="338.357" y="104.861"/>
|
||||
<use xlink:href="#glyph3-19" x="346.538825" y="104.861"/>
|
||||
<use xlink:href="#glyph3-19" x="352.599921" y="104.861"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph3-5" x="358.966472" y="104.861"/>
|
||||
<use xlink:href="#glyph3-2" x="363.814476" y="104.861"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph3-20" x="371.720301" y="104.861"/>
|
||||
<use xlink:href="#glyph3-16" x="378.538488" y="104.861"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph3-21" x="383.687583" y="104.861"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph3-5" x="389.139951" y="104.861"/>
|
||||
<use xlink:href="#glyph3-2" x="393.987955" y="104.861"/>
|
||||
<use xlink:href="#glyph3-22" x="398.26105" y="104.861"/>
|
||||
</g>
|
||||
<g style="fill:rgb(8.657837%,31.404114%,58.695984%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph4-1" x="3.902" y="79.677"/>
|
||||
<use xlink:href="#glyph4-2" x="9.132365" y="79.677"/>
|
||||
<use xlink:href="#glyph4-3" x="14.36273" y="79.677"/>
|
||||
<use xlink:href="#glyph4-4" x="19.593095" y="79.677"/>
|
||||
<use xlink:href="#glyph4-1" x="24.82346" y="79.677"/>
|
||||
<use xlink:href="#glyph4-5" x="30.053825" y="79.677"/>
|
||||
<use xlink:href="#glyph4-6" x="35.28419" y="79.677"/>
|
||||
<use xlink:href="#glyph4-2" x="40.514555" y="79.677"/>
|
||||
<use xlink:href="#glyph4-5" x="45.74492" y="79.677"/>
|
||||
<use xlink:href="#glyph4-3" x="50.975285" y="79.677"/>
|
||||
<use xlink:href="#glyph4-7" x="56.20565" y="79.677"/>
|
||||
<use xlink:href="#glyph4-1" x="61.436015" y="79.677"/>
|
||||
<use xlink:href="#glyph4-3" x="66.66638" y="79.677"/>
|
||||
<use xlink:href="#glyph4-8" x="71.896745" y="79.677"/>
|
||||
<use xlink:href="#glyph4-9" x="77.12711" y="79.677"/>
|
||||
<use xlink:href="#glyph4-10" x="82.357475" y="79.677"/>
|
||||
<use xlink:href="#glyph4-11" x="87.58784" y="79.677"/>
|
||||
<use xlink:href="#glyph4-12" x="92.818205" y="79.677"/>
|
||||
<use xlink:href="#glyph4-13" x="98.04857" y="79.677"/>
|
||||
<use xlink:href="#glyph4-14" x="103.278935" y="79.677"/>
|
||||
</g>
|
||||
<g style="fill:rgb(8.657837%,31.404114%,58.695984%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph4-1" x="3.902" y="91.632"/>
|
||||
<use xlink:href="#glyph4-2" x="9.132365" y="91.632"/>
|
||||
<use xlink:href="#glyph4-3" x="14.36273" y="91.632"/>
|
||||
<use xlink:href="#glyph4-4" x="19.593095" y="91.632"/>
|
||||
<use xlink:href="#glyph4-1" x="24.82346" y="91.632"/>
|
||||
<use xlink:href="#glyph4-5" x="30.053825" y="91.632"/>
|
||||
<use xlink:href="#glyph4-6" x="35.28419" y="91.632"/>
|
||||
<use xlink:href="#glyph4-2" x="40.514555" y="91.632"/>
|
||||
<use xlink:href="#glyph4-5" x="45.74492" y="91.632"/>
|
||||
<use xlink:href="#glyph4-3" x="50.975285" y="91.632"/>
|
||||
<use xlink:href="#glyph4-7" x="56.20565" y="91.632"/>
|
||||
<use xlink:href="#glyph4-1" x="61.436015" y="91.632"/>
|
||||
<use xlink:href="#glyph4-3" x="66.66638" y="91.632"/>
|
||||
<use xlink:href="#glyph4-8" x="71.896745" y="91.632"/>
|
||||
<use xlink:href="#glyph4-15" x="77.12711" y="91.632"/>
|
||||
<use xlink:href="#glyph4-10" x="82.357475" y="91.632"/>
|
||||
<use xlink:href="#glyph4-11" x="87.58784" y="91.632"/>
|
||||
<use xlink:href="#glyph4-12" x="92.818205" y="91.632"/>
|
||||
<use xlink:href="#glyph4-13" x="98.04857" y="91.632"/>
|
||||
<use xlink:href="#glyph4-14" x="103.278935" y="91.632"/>
|
||||
</g>
|
||||
<g style="fill:rgb(8.657837%,31.404114%,58.695984%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph4-1" x="3.902" y="103.588"/>
|
||||
<use xlink:href="#glyph4-2" x="9.132365" y="103.588"/>
|
||||
<use xlink:href="#glyph4-3" x="14.36273" y="103.588"/>
|
||||
<use xlink:href="#glyph4-4" x="19.593095" y="103.588"/>
|
||||
<use xlink:href="#glyph4-1" x="24.82346" y="103.588"/>
|
||||
<use xlink:href="#glyph4-5" x="30.053825" y="103.588"/>
|
||||
<use xlink:href="#glyph4-6" x="35.28419" y="103.588"/>
|
||||
<use xlink:href="#glyph4-2" x="40.514555" y="103.588"/>
|
||||
<use xlink:href="#glyph4-5" x="45.74492" y="103.588"/>
|
||||
<use xlink:href="#glyph4-3" x="50.975285" y="103.588"/>
|
||||
<use xlink:href="#glyph4-7" x="56.20565" y="103.588"/>
|
||||
<use xlink:href="#glyph4-1" x="61.436015" y="103.588"/>
|
||||
<use xlink:href="#glyph4-3" x="66.66638" y="103.588"/>
|
||||
<use xlink:href="#glyph4-8" x="71.896745" y="103.588"/>
|
||||
<use xlink:href="#glyph4-16" x="77.12711" y="103.588"/>
|
||||
<use xlink:href="#glyph4-10" x="82.357475" y="103.588"/>
|
||||
<use xlink:href="#glyph4-11" x="87.58784" y="103.588"/>
|
||||
<use xlink:href="#glyph4-12" x="92.818205" y="103.588"/>
|
||||
<use xlink:href="#glyph4-13" x="98.04857" y="103.588"/>
|
||||
<use xlink:href="#glyph4-14" x="103.278935" y="103.588"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 100 KiB |
2261
docs/_images/tikz-6e71605956d62bb837a2533794c8c50348b2f87c.svg
Normal file
|
After Width: | Height: | Size: 6.6 MiB |
|
Before Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 34 KiB |
|
Before Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 54 KiB |
2090
docs/_images/tikz-ae1e764f23cec8b5d67952bc6d8bbe66280e80d1.svg
Normal file
|
After Width: | Height: | Size: 620 KiB |
|
Before Width: | Height: | Size: 79 KiB |
427
docs/_images/tikz-b5a668553fb9bf21fb5abcc4cae46289d11490d1.svg
Normal file
@@ -0,0 +1,427 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="319.45pt" height="64.888pt" viewBox="0 0 319.45 64.888" version="1.1">
|
||||
<defs>
|
||||
<g>
|
||||
<symbol overflow="visible" id="glyph0-0">
|
||||
<path style="stroke:none;" d=""/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-1">
|
||||
<path style="stroke:none;" d="M 2.46875 -3.453125 L 4.3125 -3.453125 C 5.625 -3.453125 6.8125 -4.328125 6.8125 -5.421875 C 6.8125 -6.484375 5.71875 -7.453125 4.234375 -7.453125 L 0.375 -7.453125 L 0.375 -7.109375 L 0.640625 -7.109375 C 1.484375 -7.109375 1.5 -6.984375 1.5 -6.59375 L 1.5 -0.84375 C 1.5 -0.453125 1.484375 -0.34375 0.640625 -0.34375 L 0.375 -0.34375 L 0.375 0 C 0.765625 -0.03125 1.578125 -0.03125 1.984375 -0.03125 C 2.40625 -0.03125 3.21875 -0.03125 3.59375 0 L 3.59375 -0.34375 L 3.34375 -0.34375 C 2.5 -0.34375 2.46875 -0.453125 2.46875 -0.84375 Z M 2.4375 -3.734375 L 2.4375 -6.671875 C 2.4375 -7.03125 2.46875 -7.109375 2.984375 -7.109375 L 3.953125 -7.109375 C 5.6875 -7.109375 5.6875 -5.953125 5.6875 -5.421875 C 5.6875 -4.90625 5.6875 -3.734375 3.953125 -3.734375 Z M 2.4375 -3.734375 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-2">
|
||||
<path style="stroke:none;" d="M 0.609375 -3.734375 C 0.609375 -1.46875 2.375 0.234375 4.40625 0.234375 C 6.1875 0.234375 7.25 -1.28125 7.25 -2.546875 C 7.25 -2.65625 7.25 -2.71875 7.109375 -2.71875 C 6.984375 -2.71875 6.984375 -2.65625 6.984375 -2.546875 C 6.890625 -1 5.71875 -0.09375 4.53125 -0.09375 C 3.875 -0.09375 1.734375 -0.46875 1.734375 -3.71875 C 1.734375 -6.984375 3.859375 -7.34375 4.53125 -7.34375 C 5.71875 -7.34375 6.6875 -6.359375 6.90625 -4.765625 C 6.921875 -4.609375 6.921875 -4.578125 7.078125 -4.578125 C 7.25 -4.578125 7.25 -4.609375 7.25 -4.84375 L 7.25 -7.421875 C 7.25 -7.609375 7.25 -7.6875 7.125 -7.6875 C 7.09375 -7.6875 7.046875 -7.6875 6.953125 -7.5625 L 6.40625 -6.75 C 6.015625 -7.140625 5.453125 -7.6875 4.40625 -7.6875 C 2.359375 -7.6875 0.609375 -5.953125 0.609375 -3.734375 Z M 0.609375 -3.734375 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-3">
|
||||
<path style="stroke:none;" d="M 4.78125 -7.765625 C 4.828125 -7.90625 4.828125 -7.9375 4.828125 -7.96875 C 4.828125 -8.078125 4.734375 -8.171875 4.609375 -8.171875 C 4.453125 -8.171875 4.421875 -8.078125 4.390625 -7.96875 L 0.671875 2.3125 C 0.609375 2.453125 0.609375 2.484375 0.609375 2.515625 C 0.609375 2.625 0.703125 2.71875 0.828125 2.71875 C 0.984375 2.71875 1.03125 2.625 1.0625 2.515625 Z M 4.78125 -7.765625 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-4">
|
||||
<path style="stroke:none;" d="M 3.8125 -4.234375 L 2.40625 -4.5625 C 1.734375 -4.734375 1.3125 -5.328125 1.3125 -5.953125 C 1.3125 -6.71875 1.890625 -7.390625 2.75 -7.390625 C 4.5625 -7.390625 4.8125 -5.59375 4.875 -5.109375 C 4.890625 -5.03125 4.890625 -4.96875 5 -4.96875 C 5.140625 -4.96875 5.140625 -5.03125 5.140625 -5.234375 L 5.140625 -7.421875 C 5.140625 -7.609375 5.140625 -7.6875 5.03125 -7.6875 C 4.953125 -7.6875 4.9375 -7.671875 4.859375 -7.546875 L 4.484375 -6.921875 C 4.15625 -7.234375 3.703125 -7.6875 2.734375 -7.6875 C 1.53125 -7.6875 0.609375 -6.734375 0.609375 -5.578125 C 0.609375 -4.671875 1.1875 -3.875 2.046875 -3.578125 C 2.15625 -3.53125 2.71875 -3.40625 3.484375 -3.21875 C 3.78125 -3.140625 4.09375 -3.0625 4.40625 -2.65625 C 4.640625 -2.375 4.75 -2.015625 4.75 -1.65625 C 4.75 -0.890625 4.203125 -0.09375 3.28125 -0.09375 C 2.96875 -0.09375 2.140625 -0.15625 1.5625 -0.6875 C 0.921875 -1.28125 0.890625 -1.96875 0.890625 -2.359375 C 0.875 -2.46875 0.78125 -2.46875 0.75 -2.46875 C 0.609375 -2.46875 0.609375 -2.40625 0.609375 -2.203125 L 0.609375 -0.015625 C 0.609375 0.15625 0.609375 0.234375 0.734375 0.234375 C 0.8125 0.234375 0.8125 0.21875 0.890625 0.09375 C 0.890625 0.09375 0.921875 0.046875 1.28125 -0.53125 C 1.625 -0.15625 2.328125 0.234375 3.296875 0.234375 C 4.5625 0.234375 5.4375 -0.828125 5.4375 -2.03125 C 5.4375 -3.125 4.71875 -4.015625 3.8125 -4.234375 Z M 3.8125 -4.234375 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-5">
|
||||
<path style="stroke:none;" d="M 6.34375 -7.421875 L 0.359375 -7.421875 L 0.359375 -7.078125 L 0.625 -7.078125 C 1.46875 -7.078125 1.484375 -6.953125 1.484375 -6.5625 L 1.484375 -0.84375 C 1.484375 -0.453125 1.46875 -0.34375 0.625 -0.34375 L 0.359375 -0.34375 L 0.359375 0 C 0.734375 -0.03125 1.59375 -0.03125 2.015625 -0.03125 C 2.46875 -0.03125 3.453125 -0.03125 3.84375 0 L 3.84375 -0.34375 L 3.484375 -0.34375 C 2.453125 -0.34375 2.453125 -0.484375 2.453125 -0.859375 L 2.453125 -3.546875 L 3.390625 -3.546875 C 4.4375 -3.546875 4.546875 -3.203125 4.546875 -2.265625 L 4.828125 -2.265625 L 4.828125 -5.15625 L 4.546875 -5.15625 C 4.546875 -4.25 4.4375 -3.875 3.390625 -3.875 L 2.453125 -3.875 L 2.453125 -6.640625 C 2.453125 -7 2.46875 -7.078125 2.984375 -7.078125 L 4.296875 -7.078125 C 5.9375 -7.078125 6.203125 -6.46875 6.375 -4.96875 L 6.65625 -4.96875 Z M 6.34375 -7.421875 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-6">
|
||||
<path style="stroke:none;" d="M 1.828125 -3.625 L 1.828125 -4.828125 L 0.3125 -4.703125 L 0.3125 -4.359375 C 1.0625 -4.359375 1.15625 -4.28125 1.15625 -3.75 L 1.15625 -0.828125 C 1.15625 -0.34375 1.03125 -0.34375 0.3125 -0.34375 L 0.3125 0 C 0.734375 -0.015625 1.25 -0.03125 1.546875 -0.03125 C 1.984375 -0.03125 2.5 -0.03125 2.9375 0 L 2.9375 -0.34375 L 2.703125 -0.34375 C 1.890625 -0.34375 1.875 -0.453125 1.875 -0.84375 L 1.875 -2.53125 C 1.875 -3.609375 2.328125 -4.578125 3.15625 -4.578125 C 3.234375 -4.578125 3.265625 -4.578125 3.28125 -4.5625 C 3.25 -4.5625 3.03125 -4.421875 3.03125 -4.140625 C 3.03125 -3.84375 3.265625 -3.671875 3.5 -3.671875 C 3.703125 -3.671875 3.96875 -3.8125 3.96875 -4.15625 C 3.96875 -4.5 3.625 -4.828125 3.15625 -4.828125 C 2.359375 -4.828125 1.96875 -4.09375 1.828125 -3.625 Z M 1.828125 -3.625 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-7">
|
||||
<path style="stroke:none;" d="M 3.625 -0.828125 C 3.671875 -0.390625 3.96875 0.0625 4.484375 0.0625 C 4.71875 0.0625 5.375 -0.09375 5.375 -0.96875 L 5.375 -1.578125 L 5.109375 -1.578125 L 5.109375 -0.96875 C 5.109375 -0.34375 4.828125 -0.265625 4.71875 -0.265625 C 4.359375 -0.265625 4.3125 -0.765625 4.3125 -0.8125 L 4.3125 -3 C 4.3125 -3.453125 4.3125 -3.875 3.921875 -4.28125 C 3.484375 -4.71875 2.9375 -4.890625 2.421875 -4.890625 C 1.53125 -4.890625 0.78125 -4.375 0.78125 -3.65625 C 0.78125 -3.328125 1 -3.140625 1.28125 -3.140625 C 1.578125 -3.140625 1.78125 -3.359375 1.78125 -3.640625 C 1.78125 -3.78125 1.71875 -4.140625 1.21875 -4.140625 C 1.515625 -4.53125 2.046875 -4.640625 2.40625 -4.640625 C 2.9375 -4.640625 3.5625 -4.21875 3.5625 -3.25 L 3.5625 -2.84375 C 3 -2.8125 2.234375 -2.78125 1.546875 -2.453125 C 0.734375 -2.078125 0.453125 -1.515625 0.453125 -1.03125 C 0.453125 -0.15625 1.515625 0.125 2.203125 0.125 C 2.921875 0.125 3.421875 -0.3125 3.625 -0.828125 Z M 3.5625 -2.625 L 3.5625 -1.53125 C 3.5625 -0.484375 2.765625 -0.125 2.28125 -0.125 C 1.75 -0.125 1.296875 -0.5 1.296875 -1.046875 C 1.296875 -1.640625 1.75 -2.546875 3.5625 -2.625 Z M 3.5625 -2.625 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-8">
|
||||
<path style="stroke:none;" d="M 1.203125 -3.75 L 1.203125 -0.828125 C 1.203125 -0.34375 1.078125 -0.34375 0.34375 -0.34375 L 0.34375 0 C 0.734375 -0.015625 1.28125 -0.03125 1.578125 -0.03125 C 1.859375 -0.03125 2.4375 -0.015625 2.796875 0 L 2.796875 -0.34375 C 2.078125 -0.34375 1.953125 -0.34375 1.953125 -0.828125 L 1.953125 -2.828125 C 1.953125 -3.96875 2.71875 -4.578125 3.421875 -4.578125 C 4.109375 -4.578125 4.234375 -3.984375 4.234375 -3.375 L 4.234375 -0.828125 C 4.234375 -0.34375 4.109375 -0.34375 3.375 -0.34375 L 3.375 0 C 3.765625 -0.015625 4.3125 -0.03125 4.609375 -0.03125 C 4.890625 -0.03125 5.46875 -0.015625 5.828125 0 L 5.828125 -0.34375 C 5.109375 -0.34375 4.984375 -0.34375 4.984375 -0.828125 L 4.984375 -2.828125 C 4.984375 -3.96875 5.765625 -4.578125 6.453125 -4.578125 C 7.140625 -4.578125 7.265625 -3.984375 7.265625 -3.375 L 7.265625 -0.828125 C 7.265625 -0.34375 7.140625 -0.34375 6.40625 -0.34375 L 6.40625 0 C 6.796875 -0.015625 7.34375 -0.03125 7.640625 -0.03125 C 7.921875 -0.03125 8.5 -0.015625 8.859375 0 L 8.859375 -0.34375 C 8.296875 -0.34375 8.03125 -0.34375 8.015625 -0.671875 L 8.015625 -2.75 C 8.015625 -3.6875 8.015625 -4.03125 7.671875 -4.421875 C 7.53125 -4.609375 7.171875 -4.828125 6.53125 -4.828125 C 5.609375 -4.828125 5.140625 -4.171875 4.953125 -3.75 C 4.796875 -4.703125 3.984375 -4.828125 3.5 -4.828125 C 2.703125 -4.828125 2.1875 -4.359375 1.890625 -3.671875 L 1.890625 -4.828125 L 0.34375 -4.703125 L 0.34375 -4.359375 C 1.109375 -4.359375 1.203125 -4.28125 1.203125 -3.75 Z M 1.203125 -3.75 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-9">
|
||||
<path style="stroke:none;" d="M 1.21875 -2.75 C 1.28125 -4.375 2.203125 -4.640625 2.578125 -4.640625 C 3.703125 -4.640625 3.8125 -3.171875 3.8125 -2.75 Z M 1.203125 -2.515625 L 4.25 -2.515625 C 4.5 -2.515625 4.53125 -2.515625 4.53125 -2.75 C 4.53125 -3.828125 3.9375 -4.890625 2.578125 -4.890625 C 1.3125 -4.890625 0.3125 -3.765625 0.3125 -2.40625 C 0.3125 -0.9375 1.453125 0.125 2.703125 0.125 C 4.03125 0.125 4.53125 -1.09375 4.53125 -1.296875 C 4.53125 -1.40625 4.4375 -1.421875 4.390625 -1.421875 C 4.28125 -1.421875 4.265625 -1.359375 4.25 -1.28125 C 3.859375 -0.15625 2.875 -0.15625 2.765625 -0.15625 C 2.21875 -0.15625 1.78125 -0.484375 1.53125 -0.890625 C 1.203125 -1.40625 1.203125 -2.125 1.203125 -2.515625 Z M 1.203125 -2.515625 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-10">
|
||||
<path style="stroke:none;" d="M 6.75 -3.671875 C 6.953125 -4.203125 7.28125 -4.359375 7.671875 -4.359375 L 7.671875 -4.703125 C 7.421875 -4.671875 7.109375 -4.671875 6.875 -4.671875 C 6.546875 -4.671875 6.0625 -4.6875 5.859375 -4.703125 L 5.859375 -4.359375 C 6.25 -4.359375 6.484375 -4.15625 6.484375 -3.84375 C 6.484375 -3.78125 6.484375 -3.75 6.4375 -3.609375 L 5.4375 -0.8125 L 4.359375 -3.859375 C 4.3125 -3.984375 4.3125 -4.015625 4.3125 -4.0625 C 4.3125 -4.359375 4.734375 -4.359375 4.953125 -4.359375 L 4.953125 -4.703125 C 4.640625 -4.6875 4.078125 -4.671875 3.8125 -4.671875 C 3.484375 -4.671875 3.171875 -4.671875 2.84375 -4.703125 L 2.84375 -4.359375 C 3.25 -4.359375 3.421875 -4.34375 3.53125 -4.203125 C 3.59375 -4.140625 3.703125 -3.8125 3.78125 -3.59375 L 2.84375 -0.953125 L 1.8125 -3.875 C 1.75 -4 1.75 -4.03125 1.75 -4.0625 C 1.75 -4.359375 2.1875 -4.359375 2.40625 -4.359375 L 2.40625 -4.703125 C 2.078125 -4.6875 1.46875 -4.671875 1.203125 -4.671875 C 1.171875 -4.671875 0.59375 -4.671875 0.203125 -4.703125 L 0.203125 -4.359375 C 0.734375 -4.359375 0.875 -4.328125 1 -3.984375 L 2.375 -0.125 C 2.4375 0.03125 2.46875 0.125 2.609375 0.125 C 2.75 0.125 2.765625 0.046875 2.828125 -0.09375 L 3.921875 -3.1875 L 5.03125 -0.09375 C 5.078125 0.03125 5.109375 0.125 5.25 0.125 C 5.40625 0.125 5.4375 0.015625 5.46875 -0.09375 Z M 6.75 -3.671875 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-11">
|
||||
<path style="stroke:none;" d="M 5.140625 -2.328125 C 5.140625 -3.734375 4.046875 -4.890625 2.71875 -4.890625 C 1.359375 -4.890625 0.3125 -3.703125 0.3125 -2.328125 C 0.3125 -0.921875 1.4375 0.125 2.71875 0.125 C 4.03125 0.125 5.140625 -0.953125 5.140625 -2.328125 Z M 2.71875 -0.15625 C 2.25 -0.15625 1.78125 -0.375 1.484375 -0.890625 C 1.203125 -1.359375 1.203125 -2.03125 1.203125 -2.421875 C 1.203125 -2.84375 1.203125 -3.4375 1.46875 -3.921875 C 1.765625 -4.421875 2.28125 -4.640625 2.71875 -4.640625 C 3.203125 -4.640625 3.671875 -4.40625 3.953125 -3.9375 C 4.234375 -3.46875 4.234375 -2.828125 4.234375 -2.421875 C 4.234375 -2.03125 4.234375 -1.4375 3.984375 -0.953125 C 3.75 -0.46875 3.265625 -0.15625 2.71875 -0.15625 Z M 2.71875 -0.15625 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-12">
|
||||
<path style="stroke:none;" d="M 1.15625 -0.828125 C 1.15625 -0.34375 1.03125 -0.34375 0.3125 -0.34375 L 0.3125 0 C 0.671875 -0.015625 1.171875 -0.03125 1.5 -0.03125 C 1.828125 -0.03125 2.25 -0.015625 2.6875 0 L 2.6875 -0.34375 C 1.96875 -0.34375 1.84375 -0.34375 1.84375 -0.828125 L 1.84375 -1.953125 L 2.546875 -2.546875 C 3.375 -1.390625 3.84375 -0.78125 3.84375 -0.59375 C 3.84375 -0.375 3.65625 -0.34375 3.453125 -0.34375 L 3.453125 0 C 3.75 -0.015625 4.390625 -0.03125 4.625 -0.03125 C 4.9375 -0.03125 5.25 -0.015625 5.578125 0 L 5.578125 -0.34375 C 5.171875 -0.34375 4.921875 -0.34375 4.515625 -0.921875 L 3.125 -2.875 C 3.125 -2.890625 3.0625 -2.953125 3.0625 -2.984375 C 3.0625 -3.03125 3.84375 -3.6875 3.953125 -3.78125 C 4.640625 -4.328125 5.09375 -4.359375 5.328125 -4.359375 L 5.328125 -4.703125 C 5 -4.671875 4.859375 -4.671875 4.5625 -4.671875 C 4.171875 -4.671875 3.484375 -4.6875 3.34375 -4.703125 L 3.34375 -4.359375 C 3.546875 -4.359375 3.65625 -4.234375 3.65625 -4.09375 C 3.65625 -3.875 3.5 -3.734375 3.40625 -3.671875 L 1.875 -2.328125 L 1.875 -7.5625 L 0.3125 -7.453125 L 0.3125 -7.109375 C 1.0625 -7.109375 1.15625 -7.03125 1.15625 -6.5 Z M 1.15625 -0.828125 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-13">
|
||||
<path style="stroke:none;" d="M 3.609375 2.625 C 3.609375 2.578125 3.609375 2.5625 3.421875 2.375 C 2.0625 1 1.71875 -1.0625 1.71875 -2.71875 C 1.71875 -4.625 2.125 -6.515625 3.46875 -7.890625 C 3.609375 -8.015625 3.609375 -8.03125 3.609375 -8.078125 C 3.609375 -8.140625 3.5625 -8.171875 3.5 -8.171875 C 3.390625 -8.171875 2.40625 -7.4375 1.765625 -6.046875 C 1.203125 -4.859375 1.078125 -3.640625 1.078125 -2.71875 C 1.078125 -1.875 1.203125 -0.5625 1.796875 0.671875 C 2.453125 2.015625 3.390625 2.71875 3.5 2.71875 C 3.5625 2.71875 3.609375 2.6875 3.609375 2.625 Z M 3.609375 2.625 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-14">
|
||||
<path style="stroke:none;" d="M 3.15625 -2.71875 C 3.15625 -3.578125 3.03125 -4.890625 2.4375 -6.125 C 1.78125 -7.46875 0.84375 -8.171875 0.734375 -8.171875 C 0.671875 -8.171875 0.625 -8.140625 0.625 -8.078125 C 0.625 -8.03125 0.625 -8.015625 0.828125 -7.8125 C 1.890625 -6.734375 2.515625 -5 2.515625 -2.71875 C 2.515625 -0.859375 2.109375 1.0625 0.765625 2.4375 C 0.625 2.5625 0.625 2.578125 0.625 2.625 C 0.625 2.6875 0.671875 2.71875 0.734375 2.71875 C 0.84375 2.71875 1.828125 1.984375 2.46875 0.59375 C 3.015625 -0.59375 3.15625 -1.8125 3.15625 -2.71875 Z M 3.15625 -2.71875 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-15">
|
||||
<path style="stroke:none;" d="M 1.890625 -4.359375 L 3.453125 -4.359375 L 3.453125 -4.703125 L 1.890625 -4.703125 L 1.890625 -6.703125 L 1.609375 -6.703125 C 1.609375 -5.8125 1.28125 -4.640625 0.203125 -4.609375 L 0.203125 -4.359375 L 1.140625 -4.359375 L 1.140625 -1.359375 C 1.140625 -0.015625 2.15625 0.125 2.546875 0.125 C 3.3125 0.125 3.625 -0.65625 3.625 -1.359375 L 3.625 -1.96875 L 3.34375 -1.96875 L 3.34375 -1.375 C 3.34375 -0.5625 3.015625 -0.15625 2.625 -0.15625 C 1.890625 -0.15625 1.890625 -1.140625 1.890625 -1.328125 Z M 1.890625 -4.359375 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-16">
|
||||
<path style="stroke:none;" d="M 4.140625 -0.59375 L 4.140625 0.125 L 5.75 0 L 5.75 -0.34375 C 4.984375 -0.34375 4.890625 -0.421875 4.890625 -0.953125 L 4.890625 -7.5625 L 3.328125 -7.453125 L 3.328125 -7.109375 C 4.09375 -7.109375 4.171875 -7.03125 4.171875 -6.5 L 4.171875 -4.140625 C 3.859375 -4.53125 3.390625 -4.828125 2.796875 -4.828125 C 1.515625 -4.828125 0.375 -3.75 0.375 -2.34375 C 0.375 -0.953125 1.4375 0.125 2.6875 0.125 C 3.375 0.125 3.875 -0.25 4.140625 -0.59375 Z M 4.140625 -3.515625 L 4.140625 -1.28125 C 4.140625 -1.09375 4.140625 -1.0625 4.03125 -0.890625 C 3.703125 -0.359375 3.203125 -0.125 2.734375 -0.125 C 2.25 -0.125 1.859375 -0.40625 1.59375 -0.8125 C 1.3125 -1.265625 1.28125 -1.890625 1.28125 -2.328125 C 1.28125 -2.734375 1.296875 -3.390625 1.609375 -3.875 C 1.84375 -4.21875 2.25 -4.578125 2.84375 -4.578125 C 3.234375 -4.578125 3.6875 -4.421875 4.03125 -3.921875 C 4.140625 -3.734375 4.140625 -3.71875 4.140625 -3.515625 Z M 4.140625 -3.515625 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-17">
|
||||
<path style="stroke:none;" d="M 4.34375 -7.59375 C 4.28125 -7.734375 4.265625 -7.8125 4.09375 -7.8125 C 3.921875 -7.8125 3.875 -7.75 3.828125 -7.59375 L 1.578125 -1.0625 C 1.375 -0.515625 0.9375 -0.34375 0.34375 -0.34375 L 0.34375 0 C 0.59375 -0.015625 1.0625 -0.03125 1.46875 -0.03125 C 1.796875 -0.03125 2.359375 -0.015625 2.71875 0 L 2.71875 -0.34375 C 2.171875 -0.34375 1.890625 -0.609375 1.890625 -0.890625 C 1.890625 -0.921875 1.90625 -1.03125 1.921875 -1.0625 L 2.421875 -2.484375 L 5.109375 -2.484375 L 5.6875 -0.8125 C 5.703125 -0.78125 5.71875 -0.703125 5.71875 -0.671875 C 5.71875 -0.34375 5.109375 -0.34375 4.828125 -0.34375 L 4.828125 0 C 5.21875 -0.03125 5.984375 -0.03125 6.390625 -0.03125 C 6.859375 -0.03125 7.359375 -0.015625 7.8125 0 L 7.8125 -0.34375 L 7.625 -0.34375 C 6.96875 -0.34375 6.8125 -0.421875 6.703125 -0.78125 Z M 3.765625 -6.375 L 5 -2.828125 L 2.546875 -2.828125 Z M 3.765625 -6.375 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-18">
|
||||
<path style="stroke:none;" d="M 1.875 -4.09375 L 1.875 -4.828125 L 0.3125 -4.703125 L 0.3125 -4.359375 C 1.078125 -4.359375 1.15625 -4.296875 1.15625 -3.8125 L 1.15625 1.28125 C 1.15625 1.78125 1.03125 1.78125 0.3125 1.78125 L 0.3125 2.109375 C 0.671875 2.109375 1.25 2.078125 1.53125 2.078125 C 1.828125 2.078125 2.375 2.109375 2.765625 2.109375 L 2.765625 1.78125 C 2.03125 1.78125 1.90625 1.78125 1.90625 1.28125 L 1.90625 -0.640625 C 1.96875 -0.46875 2.421875 0.125 3.25 0.125 C 4.546875 0.125 5.6875 -0.953125 5.6875 -2.359375 C 5.6875 -3.734375 4.625 -4.828125 3.40625 -4.828125 C 2.546875 -4.828125 2.09375 -4.34375 1.875 -4.09375 Z M 1.90625 -1.25 L 1.90625 -3.671875 C 2.21875 -4.234375 2.765625 -4.546875 3.3125 -4.546875 C 4.109375 -4.546875 4.78125 -3.59375 4.78125 -2.359375 C 4.78125 -1.03125 4.015625 -0.125 3.203125 -0.125 C 2.765625 -0.125 2.359375 -0.34375 2.0625 -0.78125 C 1.90625 -1.015625 1.90625 -1.03125 1.90625 -1.25 Z M 1.90625 -1.25 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-19">
|
||||
<path style="stroke:none;" d="M 1.9375 -7.5625 L 0.359375 -7.453125 L 0.359375 -7.109375 C 1.125 -7.109375 1.203125 -7.03125 1.203125 -6.5 L 1.203125 -0.828125 C 1.203125 -0.34375 1.09375 -0.34375 0.359375 -0.34375 L 0.359375 0 C 0.71875 -0.015625 1.296875 -0.03125 1.578125 -0.03125 C 1.84375 -0.03125 2.375 -0.015625 2.78125 0 L 2.78125 -0.34375 C 2.046875 -0.34375 1.9375 -0.34375 1.9375 -0.828125 Z M 1.9375 -7.5625 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-20">
|
||||
<path style="stroke:none;" d="M 1.9375 -4.828125 L 0.40625 -4.703125 L 0.40625 -4.359375 C 1.109375 -4.359375 1.203125 -4.296875 1.203125 -3.765625 L 1.203125 -0.828125 C 1.203125 -0.34375 1.09375 -0.34375 0.359375 -0.34375 L 0.359375 0 C 0.703125 -0.015625 1.296875 -0.03125 1.5625 -0.03125 C 1.9375 -0.03125 2.328125 -0.015625 2.6875 0 L 2.6875 -0.34375 C 1.96875 -0.34375 1.9375 -0.390625 1.9375 -0.8125 Z M 1.96875 -6.71875 C 1.96875 -7.0625 1.703125 -7.296875 1.390625 -7.296875 C 1.0625 -7.296875 0.8125 -7 0.8125 -6.71875 C 0.8125 -6.421875 1.0625 -6.140625 1.390625 -6.140625 C 1.703125 -6.140625 1.96875 -6.375 1.96875 -6.71875 Z M 1.96875 -6.71875 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-21">
|
||||
<path style="stroke:none;" d="M 1.28125 -2.375 C 1.28125 -4.15625 2.171875 -4.609375 2.75 -4.609375 C 2.84375 -4.609375 3.53125 -4.609375 3.921875 -4.203125 C 3.46875 -4.171875 3.40625 -3.84375 3.40625 -3.703125 C 3.40625 -3.421875 3.59375 -3.203125 3.90625 -3.203125 C 4.1875 -3.203125 4.40625 -3.390625 4.40625 -3.71875 C 4.40625 -4.453125 3.578125 -4.890625 2.734375 -4.890625 C 1.375 -4.890625 0.375 -3.703125 0.375 -2.359375 C 0.375 -0.953125 1.453125 0.125 2.71875 0.125 C 4.171875 0.125 4.53125 -1.1875 4.53125 -1.296875 C 4.53125 -1.40625 4.421875 -1.40625 4.390625 -1.40625 C 4.28125 -1.40625 4.265625 -1.359375 4.25 -1.296875 C 3.921875 -0.28125 3.21875 -0.15625 2.8125 -0.15625 C 2.234375 -0.15625 1.28125 -0.625 1.28125 -2.375 Z M 1.28125 -2.375 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-22">
|
||||
<path style="stroke:none;" d="M 1.203125 -3.75 L 1.203125 -0.828125 C 1.203125 -0.34375 1.078125 -0.34375 0.34375 -0.34375 L 0.34375 0 C 0.734375 -0.015625 1.28125 -0.03125 1.578125 -0.03125 C 1.859375 -0.03125 2.4375 -0.015625 2.796875 0 L 2.796875 -0.34375 C 2.078125 -0.34375 1.953125 -0.34375 1.953125 -0.828125 L 1.953125 -2.828125 C 1.953125 -3.96875 2.71875 -4.578125 3.421875 -4.578125 C 4.109375 -4.578125 4.234375 -3.984375 4.234375 -3.375 L 4.234375 -0.828125 C 4.234375 -0.34375 4.109375 -0.34375 3.375 -0.34375 L 3.375 0 C 3.765625 -0.015625 4.3125 -0.03125 4.609375 -0.03125 C 4.890625 -0.03125 5.46875 -0.015625 5.828125 0 L 5.828125 -0.34375 C 5.265625 -0.34375 5 -0.34375 4.984375 -0.671875 L 4.984375 -2.75 C 4.984375 -3.6875 4.984375 -4.03125 4.640625 -4.421875 C 4.5 -4.609375 4.140625 -4.828125 3.5 -4.828125 C 2.703125 -4.828125 2.1875 -4.359375 1.890625 -3.671875 L 1.890625 -4.828125 L 0.34375 -4.703125 L 0.34375 -4.359375 C 1.109375 -4.359375 1.203125 -4.28125 1.203125 -3.75 Z M 1.203125 -3.75 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph1-0">
|
||||
<path style="stroke:none;" d=""/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph1-1">
|
||||
<path style="stroke:none;" d="M 1.8125 -2.875 C 1.8125 -3.515625 2.4375 -4.09375 3.125 -4.09375 C 3.9375 -4.09375 4.5625 -3.296875 4.5625 -2.359375 C 4.5625 -1.3125 3.8125 -0.59375 3.046875 -0.59375 C 2.1875 -0.59375 1.8125 -1.5625 1.8125 -2.078125 Z M 1.8125 -0.484375 C 2.25 -0.03125 2.71875 0.0625 3.078125 0.0625 C 4.265625 0.0625 5.328125 -0.96875 5.328125 -2.359375 C 5.328125 -3.703125 4.359375 -4.765625 3.203125 -4.765625 C 2.671875 -4.765625 2.1875 -4.5625 1.8125 -4.234375 C 1.8125 -4.546875 1.78125 -4.703125 1.375 -4.703125 L 0.578125 -4.703125 C 0.40625 -4.703125 0.125 -4.703125 0.125 -4.359375 C 0.125 -4.03125 0.421875 -4.03125 0.5625 -4.03125 L 1.0625 -4.03125 L 1.0625 1.75 L 0.578125 1.75 C 0.40625 1.75 0.125 1.75 0.125 2.09375 C 0.125 2.421875 0.421875 2.421875 0.5625 2.421875 L 2.296875 2.421875 C 2.453125 2.421875 2.734375 2.421875 2.734375 2.09375 C 2.734375 1.75 2.46875 1.75 2.296875 1.75 L 1.8125 1.75 Z M 1.8125 -0.484375 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph1-2">
|
||||
<path style="stroke:none;" d="M 5.078125 -1.1875 C 5.078125 -1.5 4.765625 -1.5 4.703125 -1.5 C 4.53125 -1.5 4.421875 -1.46875 4.34375 -1.25 C 4.28125 -1.109375 4.0625 -0.59375 3.265625 -0.59375 C 2.328125 -0.59375 1.546875 -1.359375 1.546875 -2.359375 C 1.546875 -2.875 1.859375 -4.140625 3.328125 -4.140625 C 3.5625 -4.140625 3.984375 -4.140625 3.984375 -4.03125 C 3.984375 -3.65625 4.203125 -3.5 4.453125 -3.5 C 4.71875 -3.5 4.953125 -3.6875 4.953125 -4 C 4.953125 -4.796875 3.8125 -4.796875 3.328125 -4.796875 C 1.453125 -4.796875 0.796875 -3.3125 0.796875 -2.359375 C 0.796875 -1.046875 1.828125 0.0625 3.203125 0.0625 C 4.71875 0.0625 5.078125 -1 5.078125 -1.1875 Z M 5.078125 -1.1875 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph1-3">
|
||||
<path style="stroke:none;" d="M 3.25 -2.78125 C 3 -2.828125 2.78125 -2.859375 2.515625 -2.90625 C 2.1875 -2.953125 1.453125 -3.09375 1.453125 -3.515625 C 1.453125 -3.796875 1.796875 -4.140625 2.828125 -4.140625 C 3.734375 -4.140625 3.890625 -3.8125 3.921875 -3.515625 C 3.9375 -3.34375 3.953125 -3.15625 4.296875 -3.15625 C 4.671875 -3.15625 4.671875 -3.375 4.671875 -3.59375 L 4.671875 -4.359375 C 4.671875 -4.53125 4.671875 -4.796875 4.359375 -4.796875 C 4.09375 -4.796875 4.046875 -4.640625 4.03125 -4.5625 C 3.546875 -4.796875 3.0625 -4.796875 2.859375 -4.796875 C 1.03125 -4.796875 0.78125 -3.90625 0.78125 -3.515625 C 0.78125 -2.515625 1.9375 -2.328125 2.9375 -2.171875 C 3.46875 -2.078125 4.34375 -1.9375 4.34375 -1.359375 C 4.34375 -0.953125 3.9375 -0.59375 2.9375 -0.59375 C 2.4375 -0.59375 1.828125 -0.71875 1.546875 -1.578125 C 1.5 -1.765625 1.453125 -1.890625 1.171875 -1.890625 C 0.78125 -1.890625 0.78125 -1.65625 0.78125 -1.4375 L 0.78125 -0.375 C 0.78125 -0.203125 0.78125 0.0625 1.109375 0.0625 C 1.203125 0.0625 1.390625 0.046875 1.515625 -0.34375 C 2.046875 0.046875 2.625 0.0625 2.9375 0.0625 C 4.65625 0.0625 5 -0.84375 5 -1.359375 C 5 -2.5 3.59375 -2.71875 3.25 -2.78125 Z M 3.25 -2.78125 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph1-4">
|
||||
<path style="stroke:none;" d="M 3.90625 -0.546875 C 3.90625 -0.15625 3.90625 0 4.34375 0 L 5.140625 0 C 5.3125 0 5.578125 0 5.578125 -0.34375 C 5.578125 -0.671875 5.296875 -0.671875 5.140625 -0.671875 L 4.65625 -0.671875 L 4.65625 -6.21875 C 4.65625 -6.546875 4.59375 -6.65625 4.21875 -6.65625 L 3.421875 -6.65625 C 3.25 -6.65625 2.984375 -6.65625 2.984375 -6.328125 C 2.984375 -6 3.265625 -6 3.40625 -6 L 3.90625 -6 L 3.90625 -4.28125 C 3.546875 -4.59375 3.09375 -4.765625 2.625 -4.765625 C 1.4375 -4.765625 0.390625 -3.734375 0.390625 -2.34375 C 0.390625 -1 1.375 0.0625 2.53125 0.0625 C 3.140625 0.0625 3.59375 -0.234375 3.90625 -0.546875 Z M 3.90625 -2.890625 L 3.90625 -2.109375 C 3.90625 -1.5 3.40625 -0.59375 2.578125 -0.59375 C 1.796875 -0.59375 1.140625 -1.375 1.140625 -2.34375 C 1.140625 -3.390625 1.90625 -4.09375 2.671875 -4.09375 C 3.375 -4.09375 3.90625 -3.484375 3.90625 -2.890625 Z M 3.90625 -2.890625 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph1-5">
|
||||
<path style="stroke:none;" d="M 3.234375 -2.984375 C 3.53125 -2.921875 4.4375 -2.703125 4.4375 -1.75 C 4.4375 -1.1875 3.96875 -0.546875 3.109375 -0.546875 C 2.796875 -0.546875 2.265625 -0.59375 1.828125 -0.890625 C 1.375 -1.171875 1.328125 -1.640625 1.3125 -1.828125 C 1.3125 -2.015625 1.296875 -2.21875 0.953125 -2.21875 C 0.5625 -2.21875 0.5625 -1.984375 0.5625 -1.765625 L 0.5625 -0.328125 C 0.5625 -0.15625 0.5625 0.125 0.890625 0.125 C 1.140625 0.125 1.203125 -0.03125 1.296875 -0.375 C 1.734375 -0.046875 2.40625 0.125 3.09375 0.125 C 4.359375 0.125 5.140625 -0.84375 5.140625 -1.8125 C 5.140625 -2.515625 4.75 -2.96875 4.625 -3.109375 C 4.171875 -3.546875 3.875 -3.625 3.03125 -3.8125 L 2.15625 -4.015625 C 1.6875 -4.140625 1.28125 -4.53125 1.28125 -5.03125 C 1.28125 -5.59375 1.8125 -6.125 2.578125 -6.125 C 3.875 -6.125 4.03125 -5.09375 4.09375 -4.75 C 4.140625 -4.515625 4.25 -4.453125 4.46875 -4.453125 C 4.859375 -4.453125 4.859375 -4.671875 4.859375 -4.890625 L 4.859375 -6.34375 C 4.859375 -6.515625 4.859375 -6.78125 4.53125 -6.78125 C 4.265625 -6.78125 4.203125 -6.59375 4.125 -6.265625 C 3.671875 -6.65625 3.09375 -6.78125 2.59375 -6.78125 C 1.390625 -6.78125 0.5625 -5.921875 0.5625 -5 C 0.5625 -4.265625 1.0625 -3.546875 1.96875 -3.28125 C 2.015625 -3.265625 3.078125 -3.015625 3.234375 -2.984375 Z M 3.234375 -2.984375 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph1-6">
|
||||
<path style="stroke:none;" d="M 5.28125 -6.34375 C 5.28125 -6.515625 5.28125 -6.78125 4.953125 -6.78125 C 4.75 -6.78125 4.703125 -6.671875 4.640625 -6.59375 C 4.625 -6.546875 4.625 -6.53125 4.484375 -6.265625 C 4.125 -6.5625 3.625 -6.78125 3.0625 -6.78125 C 1.65625 -6.78125 0.4375 -5.328125 0.4375 -3.34375 C 0.4375 -1.34375 1.65625 0.125 3.078125 0.125 C 4.34375 0.125 5.28125 -0.84375 5.28125 -1.828125 C 5.28125 -2.1875 5.015625 -2.1875 4.890625 -2.1875 C 4.796875 -2.1875 4.546875 -2.1875 4.53125 -1.875 C 4.453125 -0.8125 3.5625 -0.546875 3.125 -0.546875 C 2.125 -0.546875 1.1875 -1.703125 1.1875 -3.34375 C 1.1875 -4.96875 2.140625 -6.125 3.109375 -6.125 C 3.765625 -6.125 4.359375 -5.609375 4.515625 -4.734375 C 4.546875 -4.546875 4.5625 -4.375 4.890625 -4.375 C 5.28125 -4.375 5.28125 -4.609375 5.28125 -4.828125 Z M 5.28125 -6.34375 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph1-7">
|
||||
<path style="stroke:none;" d="M 3.984375 -0.34375 C 4.234375 -0.015625 4.75 0 5.171875 0 C 5.46875 0 5.71875 0 5.71875 -0.34375 C 5.71875 -0.671875 5.4375 -0.671875 5.28125 -0.671875 C 4.828125 -0.671875 4.71875 -0.71875 4.625 -0.75 L 4.625 -3.109375 C 4.625 -3.875 4.03125 -4.796875 2.46875 -4.796875 C 2 -4.796875 0.890625 -4.796875 0.890625 -4 C 0.890625 -3.671875 1.109375 -3.5 1.375 -3.5 C 1.53125 -3.5 1.84375 -3.59375 1.859375 -4 C 1.859375 -4.09375 1.859375 -4.09375 2.078125 -4.125 C 2.234375 -4.140625 2.375 -4.140625 2.46875 -4.140625 C 3.296875 -4.140625 3.875 -3.796875 3.875 -3.015625 C 1.9375 -2.984375 0.59375 -2.4375 0.59375 -1.390625 C 0.59375 -0.640625 1.28125 0.0625 2.40625 0.0625 C 2.796875 0.0625 3.484375 -0.015625 3.984375 -0.34375 Z M 3.875 -2.375 L 3.875 -1.46875 C 3.875 -1.203125 3.875 -0.984375 3.453125 -0.78125 C 3.046875 -0.59375 2.5625 -0.59375 2.46875 -0.59375 C 1.796875 -0.59375 1.359375 -0.96875 1.359375 -1.390625 C 1.359375 -1.9375 2.296875 -2.328125 3.875 -2.375 Z M 3.875 -2.375 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph1-8">
|
||||
<path style="stroke:none;" d="M 2.421875 -2.03125 C 2.421875 -3.046875 3.0625 -4.09375 4.390625 -4.09375 C 4.390625 -3.84375 4.578125 -3.625 4.859375 -3.625 C 5.09375 -3.625 5.3125 -3.796875 5.3125 -4.09375 C 5.3125 -4.3125 5.1875 -4.765625 4.28125 -4.765625 C 3.71875 -4.765625 3.015625 -4.5625 2.421875 -3.875 L 2.421875 -4.25 C 2.421875 -4.59375 2.359375 -4.703125 1.984375 -4.703125 L 0.78125 -4.703125 C 0.625 -4.703125 0.34375 -4.703125 0.34375 -4.375 C 0.34375 -4.03125 0.609375 -4.03125 0.78125 -4.03125 L 1.671875 -4.03125 L 1.671875 -0.671875 L 0.78125 -0.671875 C 0.625 -0.671875 0.34375 -0.671875 0.34375 -0.34375 C 0.34375 0 0.609375 0 0.78125 0 L 3.625 0 C 3.796875 0 4.078125 0 4.078125 -0.328125 C 4.078125 -0.671875 3.796875 -0.671875 3.625 -0.671875 L 2.421875 -0.671875 Z M 2.421875 -2.03125 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph1-9">
|
||||
<path style="stroke:none;" d="M 4.6875 -4.03125 L 5.015625 -4.03125 C 5.1875 -4.03125 5.453125 -4.03125 5.453125 -4.359375 C 5.453125 -4.703125 5.1875 -4.703125 5.015625 -4.703125 L 3.734375 -4.703125 C 3.578125 -4.703125 3.296875 -4.703125 3.296875 -4.375 C 3.296875 -4.03125 3.5625 -4.03125 3.734375 -4.03125 L 4.046875 -4.03125 L 2.859375 -0.53125 L 1.671875 -4.03125 L 1.96875 -4.03125 C 2.140625 -4.03125 2.40625 -4.03125 2.40625 -4.359375 C 2.40625 -4.703125 2.15625 -4.703125 1.96875 -4.703125 L 0.703125 -4.703125 C 0.53125 -4.703125 0.265625 -4.703125 0.265625 -4.359375 C 0.265625 -4.03125 0.53125 -4.03125 0.703125 -4.03125 L 1.03125 -4.03125 L 2.28125 -0.328125 C 2.40625 0.046875 2.625 0.046875 2.859375 0.046875 C 3.0625 0.046875 3.3125 0.046875 3.4375 -0.3125 Z M 4.6875 -4.03125 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph2-0">
|
||||
<path style="stroke:none;" d=""/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph2-1">
|
||||
<path style="stroke:none;" d="M 5.0625 -4.453125 L 5.375 -4.453125 C 5.546875 -4.453125 5.875 -4.453125 5.875 -4.8125 C 5.875 -5.15625 5.546875 -5.15625 5.375 -5.15625 L 4.0625 -5.15625 C 3.890625 -5.15625 3.578125 -5.15625 3.578125 -4.8125 C 3.578125 -4.453125 3.890625 -4.453125 4.0625 -4.453125 L 4.359375 -4.453125 L 3.078125 -0.609375 L 1.78125 -4.453125 L 2.078125 -4.453125 C 2.25 -4.453125 2.5625 -4.453125 2.5625 -4.8125 C 2.5625 -5.15625 2.25 -5.15625 2.078125 -5.15625 L 0.765625 -5.15625 C 0.59375 -5.15625 0.28125 -5.15625 0.28125 -4.8125 C 0.28125 -4.453125 0.59375 -4.453125 0.765625 -4.453125 L 1.078125 -4.453125 L 2.453125 -0.34375 C 2.578125 0.0625 2.84375 0.0625 3.078125 0.0625 C 3.296875 0.0625 3.5625 0.0625 3.6875 -0.34375 Z M 5.0625 -4.453125 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph2-2">
|
||||
<path style="stroke:none;" d="M 2.421875 2.65625 C 2.578125 2.65625 2.890625 2.65625 2.890625 2.3125 C 2.890625 1.953125 2.578125 1.953125 2.421875 1.953125 L 1.921875 1.953125 L 1.921875 -0.59375 C 2.21875 -0.28125 2.65625 0.078125 3.328125 0.078125 C 4.59375 0.078125 5.703125 -1.0625 5.703125 -2.578125 C 5.703125 -4.046875 4.703125 -5.21875 3.453125 -5.21875 C 2.578125 -5.21875 2.03125 -4.703125 1.921875 -4.578125 C 1.921875 -4.96875 1.921875 -5.15625 1.453125 -5.15625 L 0.65625 -5.15625 C 0.484375 -5.15625 0.171875 -5.15625 0.171875 -4.8125 C 0.171875 -4.453125 0.484375 -4.453125 0.65625 -4.453125 L 1.140625 -4.453125 L 1.140625 1.953125 L 0.65625 1.953125 C 0.484375 1.953125 0.171875 1.953125 0.171875 2.3125 C 0.171875 2.65625 0.484375 2.65625 0.65625 2.65625 Z M 1.921875 -3.171875 C 1.921875 -3.859375 2.59375 -4.53125 3.375 -4.53125 C 4.234375 -4.53125 4.921875 -3.65625 4.921875 -2.578125 C 4.921875 -1.4375 4.109375 -0.625 3.265625 -0.625 C 2.359375 -0.625 1.921875 -1.640625 1.921875 -2.234375 Z M 1.921875 -3.171875 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph2-3">
|
||||
<path style="stroke:none;" d="M 5.453125 -1.296875 C 5.453125 -1.609375 5.15625 -1.609375 5.0625 -1.609375 C 4.78125 -1.609375 4.734375 -1.515625 4.671875 -1.34375 C 4.40625 -0.6875 3.828125 -0.625 3.53125 -0.625 C 2.515625 -0.625 1.65625 -1.46875 1.65625 -2.578125 C 1.65625 -3.1875 2.015625 -4.5625 3.578125 -4.5625 C 3.890625 -4.5625 4.140625 -4.546875 4.25 -4.53125 C 4.34375 -4.5 4.34375 -4.5 4.34375 -4.4375 C 4.390625 -3.9375 4.75 -3.9375 4.828125 -3.9375 C 5.09375 -3.9375 5.3125 -4.109375 5.3125 -4.4375 C 5.3125 -5.265625 4.109375 -5.265625 3.578125 -5.265625 C 1.546875 -5.265625 0.890625 -3.578125 0.890625 -2.578125 C 0.890625 -1.125 2 0.078125 3.4375 0.078125 C 5.03125 0.078125 5.453125 -1.109375 5.453125 -1.296875 Z M 5.453125 -1.296875 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph2-4">
|
||||
<path style="stroke:none;" d="M 5 -6.8125 C 5 -7.1875 4.921875 -7.296875 4.515625 -7.296875 L 3.734375 -7.296875 C 3.5625 -7.296875 3.25 -7.296875 3.25 -6.953125 C 3.25 -6.609375 3.5625 -6.609375 3.734375 -6.609375 L 4.21875 -6.609375 L 4.21875 -4.625 C 4.03125 -4.8125 3.53125 -5.21875 2.8125 -5.21875 C 1.546875 -5.21875 0.4375 -4.078125 0.4375 -2.5625 C 0.4375 -1.09375 1.46875 0.078125 2.703125 0.078125 C 3.484375 0.078125 4 -0.390625 4.21875 -0.65625 C 4.21875 -0.15625 4.21875 0 4.703125 0 L 5.484375 0 C 5.65625 0 5.96875 0 5.96875 -0.34375 C 5.96875 -0.6875 5.65625 -0.6875 5.484375 -0.6875 L 5 -0.6875 Z M 4.21875 -2.265625 C 4.21875 -1.609375 3.671875 -0.625 2.765625 -0.625 C 1.90625 -0.625 1.21875 -1.5 1.21875 -2.5625 C 1.21875 -3.71875 2.03125 -4.53125 2.875 -4.53125 C 3.65625 -4.53125 4.21875 -3.828125 4.21875 -3.203125 Z M 4.21875 -2.265625 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph2-5">
|
||||
<path style="stroke:none;" d="M 3.609375 -6.78125 C 3.609375 -7.078125 3.375 -7.3125 3.078125 -7.3125 C 2.765625 -7.3125 2.53125 -7.078125 2.53125 -6.78125 C 2.53125 -6.484375 2.765625 -6.234375 3.078125 -6.234375 C 3.375 -6.234375 3.609375 -6.484375 3.609375 -6.78125 Z M 1.546875 -5.15625 C 1.390625 -5.15625 1.078125 -5.15625 1.078125 -4.8125 C 1.078125 -4.453125 1.390625 -4.453125 1.546875 -4.453125 L 2.828125 -4.453125 L 2.828125 -0.6875 L 1.46875 -0.6875 C 1.296875 -0.6875 0.984375 -0.6875 0.984375 -0.34375 C 0.984375 0 1.296875 0 1.46875 0 L 4.796875 0 C 4.953125 0 5.265625 0 5.265625 -0.34375 C 5.265625 -0.6875 4.953125 -0.6875 4.796875 -0.6875 L 3.609375 -0.6875 L 3.609375 -4.65625 C 3.609375 -5.03125 3.53125 -5.15625 3.125 -5.15625 Z M 1.546875 -5.15625 "/>
|
||||
</symbol>
|
||||
</g>
|
||||
<clipPath id="clip2">
|
||||
<path d="M 0.390625 0.160156 L 34.402344 0.160156 L 34.402344 18.730469 L 0.390625 18.730469 Z M 0.390625 0.160156 "/>
|
||||
</clipPath>
|
||||
<clipPath id="clip1">
|
||||
<rect width="35" height="19"/>
|
||||
</clipPath>
|
||||
<g id="surface4" clip-path="url(#clip1)">
|
||||
<g clip-path="url(#clip2)" clip-rule="nonzero">
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(90.194702%,90.194702%,90.194702%);fill-opacity:1;" d="M 18.71875 0.40625 C 16.828125 0.40625 15.152344 1.308594 14.09375 2.707031 C 13.199219 2.140625 12.136719 1.808594 10.996094 1.808594 C 8.117188 1.808594 5.726562 3.910156 5.28125 6.664062 C 2.632812 7.199219 0.640625 9.535156 0.640625 12.339844 C 0.640625 15.539062 3.234375 18.132812 6.433594 18.132812 C 7.738281 18.132812 8.941406 17.699219 9.910156 16.972656 C 10.472656 17.15625 11.074219 17.253906 11.695312 17.253906 C 12.300781 17.253906 12.882812 17.160156 13.429688 16.988281 C 14.457031 17.917969 15.820312 18.484375 17.3125 18.484375 C 18.828125 18.484375 20.210938 17.898438 21.242188 16.945312 C 22.171875 17.582031 23.296875 17.953125 24.507812 17.953125 C 25.46875 17.953125 26.378906 17.722656 27.175781 17.304688 C 27.558594 17.386719 27.960938 17.429688 28.367188 17.429688 C 31.566406 17.429688 34.160156 14.835938 34.160156 11.636719 C 34.160156 8.4375 31.566406 5.847656 28.367188 5.847656 C 28.335938 5.847656 28.304688 5.847656 28.273438 5.847656 C 27.242188 4.597656 25.699219 3.789062 23.964844 3.742188 C 23.039062 1.769531 21.039062 0.40625 18.71875 0.40625 Z M 18.71875 0.40625 "/>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 18.710938 0.160156 C 16.820312 0.160156 15.136719 1.035156 14.03125 2.398438 C 13.136719 1.875 12.101562 1.566406 10.988281 1.566406 C 8.046875 1.566406 5.597656 3.675781 5.066406 6.464844 C 2.386719 7.082031 0.390625 9.476562 0.390625 12.339844 C 0.390625 15.671875 3.09375 18.378906 6.425781 18.378906 C 7.738281 18.378906 8.957031 17.953125 9.945312 17.242188 C 10.5 17.410156 11.085938 17.5 11.691406 17.5 C 12.273438 17.5 12.835938 17.414062 13.371094 17.261719 C 14.425781 18.171875 15.804688 18.730469 17.308594 18.730469 C 18.820312 18.730469 20.199219 18.167969 21.257812 17.25 C 22.195312 17.847656 23.308594 18.203125 24.503906 18.203125 C 25.472656 18.203125 26.390625 17.96875 27.207031 17.558594 C 27.582031 17.632812 27.96875 17.675781 28.363281 17.675781 C 31.695312 17.675781 34.402344 14.96875 34.402344 11.636719 C 34.402344 8.3125 31.703125 5.609375 28.375 5.601562 C 27.332031 4.386719 25.8125 3.597656 24.109375 3.507812 C 23.117188 1.527344 21.074219 0.160156 18.710938 0.160156 Z M 18.710938 0.652344 C 20.9375 0.652344 22.851562 1.960938 23.738281 3.847656 C 23.773438 3.929688 23.863281 3.988281 23.953125 3.988281 C 25.617188 4.035156 27.09375 4.808594 28.082031 6.003906 C 28.128906 6.0625 28.199219 6.097656 28.273438 6.09375 C 28.3125 6.09375 28.339844 6.09375 28.363281 6.09375 C 31.429688 6.09375 33.910156 8.574219 33.910156 11.636719 C 33.910156 14.703125 31.429688 17.183594 28.363281 17.183594 C 27.972656 17.183594 27.585938 17.144531 27.21875 17.066406 C 27.164062 17.054688 27.105469 17.0625 27.054688 17.089844 C 26.292969 17.484375 25.425781 17.710938 24.503906 17.710938 C 23.339844 17.710938 22.265625 17.351562 21.375 16.742188 C 21.28125 16.679688 21.148438 16.691406 21.070312 16.765625 C 20.078125 17.679688 18.761719 18.238281 17.308594 18.238281 C 15.878906 18.238281 14.574219 17.695312 13.59375 16.808594 C 13.527344 16.75 13.433594 16.730469 13.355469 16.753906 C 12.828125 16.921875 12.269531 17.007812 11.691406 17.007812 C 11.09375 17.007812 10.519531 16.914062 9.980469 16.738281 C 9.90625 16.714844 9.816406 16.730469 9.753906 16.777344 C 8.828125 17.472656 7.675781 17.886719 6.425781 17.886719 C 3.359375 17.886719 0.882812 15.40625 0.882812 12.339844 C 0.882812 9.652344 2.789062 7.417969 5.324219 6.90625 C 5.417969 6.886719 5.5 6.800781 5.515625 6.707031 C 5.945312 4.070312 8.230469 2.054688 10.988281 2.054688 C 12.082031 2.054688 13.097656 2.371094 13.957031 2.917969 C 14.058594 2.980469 14.210938 2.953125 14.285156 2.855469 C 15.296875 1.515625 16.902344 0.652344 18.710938 0.652344 Z M 18.710938 0.652344 "/>
|
||||
</g>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(79.998779%,79.998779%,79.998779%);fill-opacity:1;" d="M 18.632812 1.191406 C 16.464844 1.191406 14.601562 2.507812 13.746094 4.402344 C 13.75 4.410156 13.757812 4.414062 13.765625 4.417969 C 14.746094 3.078125 16.308594 2.214844 18.0625 2.214844 C 19.824219 2.214844 21.390625 3.085938 22.371094 4.429688 C 22.359375 4.433594 22.347656 4.4375 22.332031 4.4375 C 22.546875 4.738281 22.730469 5.058594 22.882812 5.398438 C 23.214844 5.40625 23.542969 5.445312 23.859375 5.511719 C 23.867188 5.515625 23.878906 5.515625 23.886719 5.519531 C 24.664062 5.691406 25.378906 6.03125 25.996094 6.503906 C 25.988281 6.503906 25.980469 6.507812 25.972656 6.507812 C 26.292969 6.738281 26.582031 6.996094 26.839844 7.28125 C 26.871094 7.28125 26.902344 7.28125 26.933594 7.28125 C 30.140625 7.28125 32.734375 9.625 32.734375 12.519531 C 32.734375 13.265625 32.566406 13.972656 32.253906 14.613281 C 32.941406 13.753906 33.347656 12.695312 33.347656 11.554688 C 33.347656 8.660156 30.753906 6.3125 27.546875 6.3125 C 27.523438 6.3125 27.496094 6.316406 27.46875 6.316406 C 26.5 5.15625 25.082031 4.40625 23.492188 4.351562 C 22.628906 2.484375 20.777344 1.191406 18.632812 1.191406 Z M 11.019531 2.488281 C 10.882812 2.488281 10.746094 2.492188 10.609375 2.5 C 8.507812 2.640625 6.785156 4.085938 6.121094 6.039062 C 6.960938 4.621094 8.417969 3.640625 10.132812 3.523438 C 11.144531 3.457031 12.105469 3.699219 12.933594 4.175781 C 13.136719 3.855469 13.371094 3.554688 13.632812 3.285156 C 12.867188 2.792969 11.96875 2.503906 11.019531 2.488281 Z M 18.917969 4.320312 C 17.390625 4.324219 15.984375 4.941406 14.976562 5.953125 C 15.09375 6.035156 15.207031 6.117188 15.3125 6.207031 C 16.398438 5.4375 17.769531 5.046875 19.214844 5.210938 C 22.261719 5.554688 24.460938 8.222656 24.128906 11.175781 C 24.089844 11.542969 24.011719 11.898438 23.898438 12.238281 C 24.214844 11.660156 24.417969 11.015625 24.496094 10.324219 C 24.828125 7.371094 22.628906 4.699219 19.582031 4.359375 C 19.359375 4.332031 19.136719 4.320312 18.917969 4.320312 Z M 9.585938 5.871094 C 9.160156 5.871094 8.726562 5.921875 8.292969 6.019531 C 7.039062 6.3125 5.976562 6.996094 5.21875 7.90625 C 5.273438 7.625 5.351562 7.351562 5.445312 7.085938 C 3.808594 7.511719 2.472656 8.648438 1.804688 10.132812 C 2.59375 9.070312 3.769531 8.296875 5.132812 8.011719 C 4.367188 8.984375 3.9375 10.191406 3.964844 11.453125 C 4.300781 9.316406 5.941406 7.476562 8.234375 6.945312 C 9.628906 6.621094 11.015625 6.835938 12.171875 7.453125 C 12.441406 7.296875 12.730469 7.164062 13.03125 7.050781 C 12.074219 6.300781 10.863281 5.871094 9.585938 5.871094 Z M 9.585938 5.871094 "/>
|
||||
</g>
|
||||
<clipPath id="clip3">
|
||||
<path d="M 101 3 L 227 3 L 227 64.886719 L 101 64.886719 Z M 101 3 "/>
|
||||
</clipPath>
|
||||
<clipPath id="clip4">
|
||||
<path d="M 99 1 L 224 1 L 224 64 L 99 64 Z M 99 1 "/>
|
||||
</clipPath>
|
||||
<clipPath id="clip5">
|
||||
<path d="M 219.835938 0.996094 L 103.082031 0.996094 C 100.882812 0.996094 99.097656 2.78125 99.097656 4.980469 L 99.097656 59.90625 C 99.097656 62.109375 100.882812 63.890625 103.082031 63.890625 L 219.835938 63.890625 C 222.039062 63.890625 223.824219 62.109375 223.824219 59.90625 L 223.824219 4.980469 C 223.824219 2.78125 222.039062 0.996094 219.835938 0.996094 Z M 219.835938 0.996094 "/>
|
||||
</clipPath>
|
||||
<linearGradient id="linear0" gradientUnits="userSpaceOnUse" x1="0" y1="25.00283" x2="0" y2="74.99717" gradientTransform="matrix(2.49481,0,0,-1.25806,36.7195,95.347)">
|
||||
<stop offset="0" style="stop-color:rgb(84.999084%,90.000916%,90.000916%);stop-opacity:1;"/>
|
||||
<stop offset="0.03125" style="stop-color:rgb(85.139465%,90.093994%,90.093994%);stop-opacity:1;"/>
|
||||
<stop offset="0.0625" style="stop-color:rgb(85.421753%,90.281677%,90.281677%);stop-opacity:1;"/>
|
||||
<stop offset="0.09375" style="stop-color:rgb(85.702515%,90.467834%,90.467834%);stop-opacity:1;"/>
|
||||
<stop offset="0.125" style="stop-color:rgb(85.983276%,90.655518%,90.655518%);stop-opacity:1;"/>
|
||||
<stop offset="0.15625" style="stop-color:rgb(86.265564%,90.843201%,90.843201%);stop-opacity:1;"/>
|
||||
<stop offset="0.1875" style="stop-color:rgb(86.546326%,91.030884%,91.030884%);stop-opacity:1;"/>
|
||||
<stop offset="0.21875" style="stop-color:rgb(86.827087%,91.218567%,91.218567%);stop-opacity:1;"/>
|
||||
<stop offset="0.25" style="stop-color:rgb(87.107849%,91.40625%,91.40625%);stop-opacity:1;"/>
|
||||
<stop offset="0.28125" style="stop-color:rgb(87.390137%,91.593933%,91.593933%);stop-opacity:1;"/>
|
||||
<stop offset="0.3125" style="stop-color:rgb(87.670898%,91.781616%,91.781616%);stop-opacity:1;"/>
|
||||
<stop offset="0.34375" style="stop-color:rgb(87.95166%,91.967773%,91.967773%);stop-opacity:1;"/>
|
||||
<stop offset="0.375" style="stop-color:rgb(88.233948%,92.155457%,92.155457%);stop-opacity:1;"/>
|
||||
<stop offset="0.40625" style="stop-color:rgb(88.514709%,92.34314%,92.34314%);stop-opacity:1;"/>
|
||||
<stop offset="0.4375" style="stop-color:rgb(88.795471%,92.530823%,92.530823%);stop-opacity:1;"/>
|
||||
<stop offset="0.46875" style="stop-color:rgb(89.077759%,92.718506%,92.718506%);stop-opacity:1;"/>
|
||||
<stop offset="0.5" style="stop-color:rgb(89.358521%,92.906189%,92.906189%);stop-opacity:1;"/>
|
||||
<stop offset="0.53125" style="stop-color:rgb(89.639282%,93.093872%,93.093872%);stop-opacity:1;"/>
|
||||
<stop offset="0.5625" style="stop-color:rgb(89.920044%,93.280029%,93.280029%);stop-opacity:1;"/>
|
||||
<stop offset="0.59375" style="stop-color:rgb(90.202332%,93.467712%,93.467712%);stop-opacity:1;"/>
|
||||
<stop offset="0.625" style="stop-color:rgb(90.483093%,93.655396%,93.655396%);stop-opacity:1;"/>
|
||||
<stop offset="0.65625" style="stop-color:rgb(90.763855%,93.843079%,93.843079%);stop-opacity:1;"/>
|
||||
<stop offset="0.6875" style="stop-color:rgb(91.046143%,94.030762%,94.030762%);stop-opacity:1;"/>
|
||||
<stop offset="0.71875" style="stop-color:rgb(91.326904%,94.218445%,94.218445%);stop-opacity:1;"/>
|
||||
<stop offset="0.75" style="stop-color:rgb(91.607666%,94.404602%,94.404602%);stop-opacity:1;"/>
|
||||
<stop offset="0.78125" style="stop-color:rgb(91.889954%,94.592285%,94.592285%);stop-opacity:1;"/>
|
||||
<stop offset="0.8125" style="stop-color:rgb(92.170715%,94.779968%,94.779968%);stop-opacity:1;"/>
|
||||
<stop offset="0.84375" style="stop-color:rgb(92.451477%,94.967651%,94.967651%);stop-opacity:1;"/>
|
||||
<stop offset="0.875" style="stop-color:rgb(92.732239%,95.155334%,95.155334%);stop-opacity:1;"/>
|
||||
<stop offset="0.90625" style="stop-color:rgb(93.014526%,95.341492%,95.341492%);stop-opacity:1;"/>
|
||||
<stop offset="0.9375" style="stop-color:rgb(93.295288%,95.529175%,95.529175%);stop-opacity:1;"/>
|
||||
<stop offset="0.96875" style="stop-color:rgb(93.57605%,95.716858%,95.716858%);stop-opacity:1;"/>
|
||||
<stop offset="1" style="stop-color:rgb(93.858337%,95.904541%,95.904541%);stop-opacity:1;"/>
|
||||
</linearGradient>
|
||||
<clipPath id="clip6">
|
||||
<path d="M 70 0 L 253 0 L 253 64.886719 L 70 64.886719 Z M 70 0 "/>
|
||||
</clipPath>
|
||||
<clipPath id="clip7">
|
||||
<path d="M 0 15 L 69 15 L 69 50 L 0 50 Z M 0 15 "/>
|
||||
</clipPath>
|
||||
<clipPath id="clip8">
|
||||
<path d="M 64.773438 15.152344 L 4.980469 15.152344 C 2.777344 15.152344 0.996094 16.9375 0.996094 19.136719 L 0.996094 45.75 C 0.996094 47.953125 2.777344 49.738281 4.980469 49.738281 L 64.773438 49.738281 C 66.972656 49.738281 68.757812 47.953125 68.757812 45.75 L 68.757812 19.136719 C 68.757812 16.9375 66.972656 15.152344 64.773438 15.152344 Z M 64.773438 15.152344 "/>
|
||||
</clipPath>
|
||||
<linearGradient id="linear1" gradientUnits="userSpaceOnUse" x1="0" y1="25.002559" x2="0" y2="74.997441" gradientTransform="matrix(1.35542,0,0,-0.69177,-32.89506,67.0325)">
|
||||
<stop offset="0" style="stop-color:rgb(84.999084%,90.000916%,90.000916%);stop-opacity:1;"/>
|
||||
<stop offset="0.03125" style="stop-color:rgb(85.139465%,90.093994%,90.093994%);stop-opacity:1;"/>
|
||||
<stop offset="0.0625" style="stop-color:rgb(85.421753%,90.281677%,90.281677%);stop-opacity:1;"/>
|
||||
<stop offset="0.09375" style="stop-color:rgb(85.702515%,90.467834%,90.467834%);stop-opacity:1;"/>
|
||||
<stop offset="0.125" style="stop-color:rgb(85.983276%,90.655518%,90.655518%);stop-opacity:1;"/>
|
||||
<stop offset="0.15625" style="stop-color:rgb(86.265564%,90.843201%,90.843201%);stop-opacity:1;"/>
|
||||
<stop offset="0.1875" style="stop-color:rgb(86.546326%,91.030884%,91.030884%);stop-opacity:1;"/>
|
||||
<stop offset="0.21875" style="stop-color:rgb(86.827087%,91.218567%,91.218567%);stop-opacity:1;"/>
|
||||
<stop offset="0.25" style="stop-color:rgb(87.107849%,91.40625%,91.40625%);stop-opacity:1;"/>
|
||||
<stop offset="0.28125" style="stop-color:rgb(87.390137%,91.593933%,91.593933%);stop-opacity:1;"/>
|
||||
<stop offset="0.3125" style="stop-color:rgb(87.670898%,91.781616%,91.781616%);stop-opacity:1;"/>
|
||||
<stop offset="0.34375" style="stop-color:rgb(87.95166%,91.967773%,91.967773%);stop-opacity:1;"/>
|
||||
<stop offset="0.375" style="stop-color:rgb(88.233948%,92.155457%,92.155457%);stop-opacity:1;"/>
|
||||
<stop offset="0.40625" style="stop-color:rgb(88.514709%,92.34314%,92.34314%);stop-opacity:1;"/>
|
||||
<stop offset="0.4375" style="stop-color:rgb(88.795471%,92.530823%,92.530823%);stop-opacity:1;"/>
|
||||
<stop offset="0.46875" style="stop-color:rgb(89.077759%,92.718506%,92.718506%);stop-opacity:1;"/>
|
||||
<stop offset="0.5" style="stop-color:rgb(89.358521%,92.906189%,92.906189%);stop-opacity:1;"/>
|
||||
<stop offset="0.53125" style="stop-color:rgb(89.639282%,93.093872%,93.093872%);stop-opacity:1;"/>
|
||||
<stop offset="0.5625" style="stop-color:rgb(89.920044%,93.280029%,93.280029%);stop-opacity:1;"/>
|
||||
<stop offset="0.59375" style="stop-color:rgb(90.202332%,93.467712%,93.467712%);stop-opacity:1;"/>
|
||||
<stop offset="0.625" style="stop-color:rgb(90.483093%,93.655396%,93.655396%);stop-opacity:1;"/>
|
||||
<stop offset="0.65625" style="stop-color:rgb(90.763855%,93.843079%,93.843079%);stop-opacity:1;"/>
|
||||
<stop offset="0.6875" style="stop-color:rgb(91.046143%,94.030762%,94.030762%);stop-opacity:1;"/>
|
||||
<stop offset="0.71875" style="stop-color:rgb(91.326904%,94.218445%,94.218445%);stop-opacity:1;"/>
|
||||
<stop offset="0.75" style="stop-color:rgb(91.607666%,94.404602%,94.404602%);stop-opacity:1;"/>
|
||||
<stop offset="0.78125" style="stop-color:rgb(91.889954%,94.592285%,94.592285%);stop-opacity:1;"/>
|
||||
<stop offset="0.8125" style="stop-color:rgb(92.170715%,94.779968%,94.779968%);stop-opacity:1;"/>
|
||||
<stop offset="0.84375" style="stop-color:rgb(92.451477%,94.967651%,94.967651%);stop-opacity:1;"/>
|
||||
<stop offset="0.875" style="stop-color:rgb(92.732239%,95.155334%,95.155334%);stop-opacity:1;"/>
|
||||
<stop offset="0.90625" style="stop-color:rgb(93.014526%,95.341492%,95.341492%);stop-opacity:1;"/>
|
||||
<stop offset="0.9375" style="stop-color:rgb(93.295288%,95.529175%,95.529175%);stop-opacity:1;"/>
|
||||
<stop offset="0.96875" style="stop-color:rgb(93.57605%,95.716858%,95.716858%);stop-opacity:1;"/>
|
||||
<stop offset="1" style="stop-color:rgb(93.858337%,95.904541%,95.904541%);stop-opacity:1;"/>
|
||||
</linearGradient>
|
||||
<clipPath id="clip9">
|
||||
<path d="M 0 0 L 97 0 L 97 64.886719 L 0 64.886719 Z M 0 0 "/>
|
||||
</clipPath>
|
||||
<clipPath id="clip10">
|
||||
<path d="M 198 22 L 235 22 L 235 43 L 198 43 Z M 198 22 "/>
|
||||
</clipPath>
|
||||
<clipPath id="clip11">
|
||||
<path d="M 230.304688 21.792969 L 202.328125 21.792969 C 200.125 21.792969 198.339844 23.578125 198.339844 25.777344 L 198.339844 39.109375 C 198.339844 41.308594 200.125 43.09375 202.328125 43.09375 L 230.304688 43.09375 C 232.503906 43.09375 234.289062 41.308594 234.289062 39.109375 L 234.289062 25.777344 C 234.289062 23.578125 232.503906 21.792969 230.304688 21.792969 Z M 230.304688 21.792969 "/>
|
||||
</clipPath>
|
||||
<linearGradient id="linear2" gradientUnits="userSpaceOnUse" x1="0" y1="25.002629" x2="0" y2="74.997371" gradientTransform="matrix(0.71901,0,0,-0.42607,180.36456,53.7475)">
|
||||
<stop offset="0" style="stop-color:rgb(96.998596%,97.999573%,97.999573%);stop-opacity:1;"/>
|
||||
<stop offset="0.125" style="stop-color:rgb(97.148132%,98.098755%,98.098755%);stop-opacity:1;"/>
|
||||
<stop offset="0.25" style="stop-color:rgb(97.44873%,98.298645%,98.298645%);stop-opacity:1;"/>
|
||||
<stop offset="0.375" style="stop-color:rgb(97.749329%,98.498535%,98.498535%);stop-opacity:1;"/>
|
||||
<stop offset="0.5" style="stop-color:rgb(98.048401%,98.698425%,98.698425%);stop-opacity:1;"/>
|
||||
<stop offset="0.625" style="stop-color:rgb(98.348999%,98.898315%,98.898315%);stop-opacity:1;"/>
|
||||
<stop offset="0.75" style="stop-color:rgb(98.648071%,99.098206%,99.098206%);stop-opacity:1;"/>
|
||||
<stop offset="0.875" style="stop-color:rgb(98.948669%,99.298096%,99.298096%);stop-opacity:1;"/>
|
||||
<stop offset="1" style="stop-color:rgb(99.249268%,99.497986%,99.497986%);stop-opacity:1;"/>
|
||||
</linearGradient>
|
||||
<clipPath id="clip12">
|
||||
<path d="M 170 0 L 263 0 L 263 64.886719 L 170 64.886719 Z M 170 0 "/>
|
||||
</clipPath>
|
||||
<clipPath id="clip13">
|
||||
<path d="M 285 25 L 319.449219 25 L 319.449219 45 L 285 45 Z M 285 25 "/>
|
||||
</clipPath>
|
||||
<clipPath id="clip14">
|
||||
<path d="M 282 23 L 319 23 L 319 42 L 282 42 Z M 282 23 "/>
|
||||
</clipPath>
|
||||
<clipPath id="clip15">
|
||||
<path d="M 314.46875 23.121094 L 286.496094 23.121094 C 284.292969 23.121094 282.507812 24.90625 282.507812 27.105469 L 282.507812 37.78125 C 282.507812 39.980469 284.292969 41.765625 286.496094 41.765625 L 314.46875 41.765625 C 316.671875 41.765625 318.457031 39.980469 318.457031 37.78125 L 318.457031 27.105469 C 318.457031 24.90625 316.671875 23.121094 314.46875 23.121094 Z M 314.46875 23.121094 "/>
|
||||
</clipPath>
|
||||
<linearGradient id="linear3" gradientUnits="userSpaceOnUse" x1="0" y1="25.001958" x2="0" y2="74.998042" gradientTransform="matrix(0.71901,0,0,-0.37292,264.53188,51.09)">
|
||||
<stop offset="0" style="stop-color:rgb(84.999084%,90.000916%,90.000916%);stop-opacity:1;"/>
|
||||
<stop offset="0.03125" style="stop-color:rgb(85.139465%,90.093994%,90.093994%);stop-opacity:1;"/>
|
||||
<stop offset="0.0625" style="stop-color:rgb(85.421753%,90.281677%,90.281677%);stop-opacity:1;"/>
|
||||
<stop offset="0.09375" style="stop-color:rgb(85.702515%,90.467834%,90.467834%);stop-opacity:1;"/>
|
||||
<stop offset="0.125" style="stop-color:rgb(85.983276%,90.655518%,90.655518%);stop-opacity:1;"/>
|
||||
<stop offset="0.15625" style="stop-color:rgb(86.265564%,90.843201%,90.843201%);stop-opacity:1;"/>
|
||||
<stop offset="0.1875" style="stop-color:rgb(86.546326%,91.030884%,91.030884%);stop-opacity:1;"/>
|
||||
<stop offset="0.21875" style="stop-color:rgb(86.827087%,91.218567%,91.218567%);stop-opacity:1;"/>
|
||||
<stop offset="0.25" style="stop-color:rgb(87.107849%,91.40625%,91.40625%);stop-opacity:1;"/>
|
||||
<stop offset="0.28125" style="stop-color:rgb(87.390137%,91.593933%,91.593933%);stop-opacity:1;"/>
|
||||
<stop offset="0.3125" style="stop-color:rgb(87.670898%,91.781616%,91.781616%);stop-opacity:1;"/>
|
||||
<stop offset="0.34375" style="stop-color:rgb(87.95166%,91.967773%,91.967773%);stop-opacity:1;"/>
|
||||
<stop offset="0.375" style="stop-color:rgb(88.233948%,92.155457%,92.155457%);stop-opacity:1;"/>
|
||||
<stop offset="0.40625" style="stop-color:rgb(88.514709%,92.34314%,92.34314%);stop-opacity:1;"/>
|
||||
<stop offset="0.4375" style="stop-color:rgb(88.795471%,92.530823%,92.530823%);stop-opacity:1;"/>
|
||||
<stop offset="0.46875" style="stop-color:rgb(89.077759%,92.718506%,92.718506%);stop-opacity:1;"/>
|
||||
<stop offset="0.5" style="stop-color:rgb(89.358521%,92.906189%,92.906189%);stop-opacity:1;"/>
|
||||
<stop offset="0.53125" style="stop-color:rgb(89.639282%,93.093872%,93.093872%);stop-opacity:1;"/>
|
||||
<stop offset="0.5625" style="stop-color:rgb(89.920044%,93.280029%,93.280029%);stop-opacity:1;"/>
|
||||
<stop offset="0.59375" style="stop-color:rgb(90.202332%,93.467712%,93.467712%);stop-opacity:1;"/>
|
||||
<stop offset="0.625" style="stop-color:rgb(90.483093%,93.655396%,93.655396%);stop-opacity:1;"/>
|
||||
<stop offset="0.65625" style="stop-color:rgb(90.763855%,93.843079%,93.843079%);stop-opacity:1;"/>
|
||||
<stop offset="0.6875" style="stop-color:rgb(91.046143%,94.030762%,94.030762%);stop-opacity:1;"/>
|
||||
<stop offset="0.71875" style="stop-color:rgb(91.326904%,94.218445%,94.218445%);stop-opacity:1;"/>
|
||||
<stop offset="0.75" style="stop-color:rgb(91.607666%,94.404602%,94.404602%);stop-opacity:1;"/>
|
||||
<stop offset="0.78125" style="stop-color:rgb(91.889954%,94.592285%,94.592285%);stop-opacity:1;"/>
|
||||
<stop offset="0.8125" style="stop-color:rgb(92.170715%,94.779968%,94.779968%);stop-opacity:1;"/>
|
||||
<stop offset="0.84375" style="stop-color:rgb(92.451477%,94.967651%,94.967651%);stop-opacity:1;"/>
|
||||
<stop offset="0.875" style="stop-color:rgb(92.732239%,95.155334%,95.155334%);stop-opacity:1;"/>
|
||||
<stop offset="0.90625" style="stop-color:rgb(93.014526%,95.343018%,95.343018%);stop-opacity:1;"/>
|
||||
<stop offset="0.9375" style="stop-color:rgb(93.295288%,95.529175%,95.529175%);stop-opacity:1;"/>
|
||||
<stop offset="0.96875" style="stop-color:rgb(93.57605%,95.716858%,95.716858%);stop-opacity:1;"/>
|
||||
<stop offset="1" style="stop-color:rgb(93.858337%,95.904541%,95.904541%);stop-opacity:1;"/>
|
||||
</linearGradient>
|
||||
<clipPath id="clip16">
|
||||
<path d="M 254 0 L 319.449219 0 L 319.449219 64.886719 L 254 64.886719 Z M 254 0 "/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
<g id="surface1">
|
||||
<path style="fill:none;stroke-width:1.99255;stroke-linecap:round;stroke-linejoin:miter;stroke:rgb(8.657837%,31.404114%,58.695984%);stroke-opacity:1;stroke-miterlimit:10;" d="M -91.706094 -0.0013125 L -63.358438 -0.0013125 " transform="matrix(1,0,0,-1,161.46,32.444)"/>
|
||||
<path style="fill:none;stroke-width:1.99255;stroke-linecap:round;stroke-linejoin:miter;stroke:rgb(8.657837%,31.404114%,58.695984%);stroke-opacity:1;stroke-miterlimit:10;" d="M 73.825156 -0.0013125 L 120.051719 -0.0013125 " transform="matrix(1,0,0,-1,161.46,32.444)"/>
|
||||
<use xlink:href="#surface4" transform="matrix(1,0,0,1,241,23)"/>
|
||||
<g clip-path="url(#clip3)" clip-rule="nonzero">
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(50%,50%,50%);fill-opacity:0.15;" d="M 222.410156 3.570312 L 105.65625 3.570312 C 103.453125 3.570312 101.671875 5.355469 101.671875 7.554688 L 101.671875 62.480469 C 101.671875 64.679688 103.453125 66.464844 105.65625 66.464844 L 222.410156 66.464844 C 224.613281 66.464844 226.398438 64.679688 226.398438 62.480469 L 226.398438 7.554688 C 226.398438 5.355469 224.613281 3.570312 222.410156 3.570312 Z M 222.410156 3.570312 "/>
|
||||
</g>
|
||||
<g clip-path="url(#clip4)" clip-rule="nonzero">
|
||||
<g clip-path="url(#clip5)" clip-rule="nonzero">
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:url(#linear0);" d="M 99.097656 63.890625 L 99.097656 0.996094 L 223.824219 0.996094 L 223.824219 63.890625 Z M 99.097656 63.890625 "/>
|
||||
</g>
|
||||
</g>
|
||||
<g clip-path="url(#clip6)" clip-rule="nonzero">
|
||||
<path style="fill:none;stroke-width:1.99255;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(74.472046%,79.733276%,82.038879%);stroke-opacity:1;stroke-miterlimit:10;" d="M 58.375937 31.447906 L -58.377969 31.447906 C -60.577188 31.447906 -62.362344 29.66275 -62.362344 27.463531 L -62.362344 -27.46225 C -62.362344 -29.665375 -60.577188 -31.446625 -58.377969 -31.446625 L 58.375937 -31.446625 C 60.579062 -31.446625 62.364219 -29.665375 62.364219 -27.46225 L 62.364219 27.463531 C 62.364219 29.66275 60.579062 31.447906 58.375937 31.447906 Z M 58.375937 31.447906 " transform="matrix(1,0,0,-1,161.46,32.444)"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph0-1" x="144.112" y="14.848"/>
|
||||
<use xlink:href="#glyph0-2" x="151.536733" y="14.848"/>
|
||||
<use xlink:href="#glyph0-3" x="159.415285" y="14.848"/>
|
||||
<use xlink:href="#glyph0-4" x="164.869835" y="14.848"/>
|
||||
<use xlink:href="#glyph0-2" x="170.930931" y="14.848"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph0-5" x="134.99" y="28.397"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph0-6" x="141.206005" y="28.397"/>
|
||||
<use xlink:href="#glyph0-7" x="145.4791" y="28.397"/>
|
||||
<use xlink:href="#glyph0-8" x="150.93365" y="28.397"/>
|
||||
<use xlink:href="#glyph0-9" x="160.024203" y="28.397"/>
|
||||
<use xlink:href="#glyph0-10" x="164.872207" y="28.397"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph0-11" x="172.445304" y="28.397"/>
|
||||
<use xlink:href="#glyph0-6" x="177.899854" y="28.397"/>
|
||||
<use xlink:href="#glyph0-12" x="182.172948" y="28.397"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph0-13" x="140.157" y="41.946"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph1-1" x="144.4" y="41.946"/>
|
||||
<use xlink:href="#glyph1-2" x="150.127278" y="41.946"/>
|
||||
<use xlink:href="#glyph1-3" x="155.854555" y="41.946"/>
|
||||
<use xlink:href="#glyph1-2" x="161.581833" y="41.946"/>
|
||||
<use xlink:href="#glyph1-4" x="167.30911" y="41.946"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph0-11" x="176.672" y="41.946"/>
|
||||
<use xlink:href="#glyph0-6" x="182.12655" y="41.946"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph1-5" x="136.43" y="55.495"/>
|
||||
<use xlink:href="#glyph1-6" x="142.157278" y="55.495"/>
|
||||
<use xlink:href="#glyph1-7" x="147.884555" y="55.495"/>
|
||||
<use xlink:href="#glyph1-8" x="153.611833" y="55.495"/>
|
||||
<use xlink:href="#glyph1-4" x="159.33911" y="55.495"/>
|
||||
<use xlink:href="#glyph1-5" x="165.066388" y="55.495"/>
|
||||
<use xlink:href="#glyph1-9" x="170.793665" y="55.495"/>
|
||||
<use xlink:href="#glyph1-8" x="176.520943" y="55.495"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph0-14" x="182.248" y="55.495"/>
|
||||
</g>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(50%,50%,50%);fill-opacity:0.15;" d="M 67.347656 17.726562 L 7.554688 17.726562 C 5.351562 17.726562 3.566406 19.507812 3.566406 21.710938 L 3.566406 48.324219 C 3.566406 50.527344 5.351562 52.308594 7.554688 52.308594 L 67.347656 52.308594 C 69.546875 52.308594 71.332031 50.527344 71.332031 48.324219 L 71.332031 21.710938 C 71.332031 19.507812 69.546875 17.726562 67.347656 17.726562 Z M 67.347656 17.726562 "/>
|
||||
<g clip-path="url(#clip7)" clip-rule="nonzero">
|
||||
<g clip-path="url(#clip8)" clip-rule="nonzero">
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:url(#linear1);" d="M 0.996094 49.738281 L 0.996094 15.152344 L 68.757812 15.152344 L 68.757812 49.738281 Z M 0.996094 49.738281 "/>
|
||||
</g>
|
||||
</g>
|
||||
<g clip-path="url(#clip9)" clip-rule="nonzero">
|
||||
<path style="fill:none;stroke-width:1.99255;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(74.472046%,79.733276%,82.038879%);stroke-opacity:1;stroke-miterlimit:10;" d="M -96.686563 17.291656 L -156.479531 17.291656 C -158.682656 17.291656 -160.463906 15.5065 -160.463906 13.307281 L -160.463906 -13.306 C -160.463906 -15.509125 -158.682656 -17.294281 -156.479531 -17.294281 L -96.686563 -17.294281 C -94.487344 -17.294281 -92.702188 -15.509125 -92.702188 -13.306 L -92.702188 13.307281 C -92.702188 15.5065 -94.487344 17.291656 -96.686563 17.291656 Z M -96.686563 17.291656 " transform="matrix(1,0,0,-1,161.46,32.444)"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph0-4" x="6.665" y="28.397"/>
|
||||
<use xlink:href="#glyph0-8" x="12.726096" y="28.397"/>
|
||||
<use xlink:href="#glyph0-7" x="21.816649" y="28.397"/>
|
||||
<use xlink:href="#glyph0-6" x="27.271199" y="28.397"/>
|
||||
<use xlink:href="#glyph0-15" x="31.544293" y="28.397"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph0-2" x="39.419573" y="28.397"/>
|
||||
<use xlink:href="#glyph0-7" x="47.298125" y="28.397"/>
|
||||
<use xlink:href="#glyph0-6" x="52.752675" y="28.397"/>
|
||||
<use xlink:href="#glyph0-16" x="57.025769" y="28.397"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph0-17" x="7.15" y="41.946"/>
|
||||
<use xlink:href="#glyph0-18" x="15.331825" y="41.946"/>
|
||||
<use xlink:href="#glyph0-18" x="21.392921" y="41.946"/>
|
||||
<use xlink:href="#glyph0-19" x="27.454017" y="41.946"/>
|
||||
<use xlink:href="#glyph0-20" x="30.484565" y="41.946"/>
|
||||
<use xlink:href="#glyph0-21" x="33.515113" y="41.946"/>
|
||||
<use xlink:href="#glyph0-7" x="38.363117" y="41.946"/>
|
||||
<use xlink:href="#glyph0-15" x="43.817667" y="41.946"/>
|
||||
<use xlink:href="#glyph0-20" x="48.060216" y="41.946"/>
|
||||
<use xlink:href="#glyph0-11" x="51.090764" y="41.946"/>
|
||||
<use xlink:href="#glyph0-22" x="56.545314" y="41.946"/>
|
||||
</g>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(50%,50%,50%);fill-opacity:0.15;" d="M 232.875 24.367188 L 204.902344 24.367188 C 202.699219 24.367188 200.914062 26.152344 200.914062 28.351562 L 200.914062 41.683594 C 200.914062 43.882812 202.699219 45.667969 204.902344 45.667969 L 232.875 45.667969 C 235.078125 45.667969 236.863281 43.882812 236.863281 41.683594 L 236.863281 28.351562 C 236.863281 26.152344 235.078125 24.367188 232.875 24.367188 Z M 232.875 24.367188 "/>
|
||||
<g clip-path="url(#clip10)" clip-rule="nonzero">
|
||||
<g clip-path="url(#clip11)" clip-rule="nonzero">
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:url(#linear2);" d="M 198.339844 43.09375 L 198.339844 21.792969 L 234.289062 21.792969 L 234.289062 43.09375 Z M 198.339844 43.09375 "/>
|
||||
</g>
|
||||
</g>
|
||||
<g clip-path="url(#clip12)" clip-rule="nonzero">
|
||||
<path style="fill:none;stroke-width:1.99255;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(74.472046%,79.733276%,82.038879%);stroke-opacity:1;stroke-miterlimit:10;" d="M 68.844687 10.651031 L 40.868125 10.651031 C 38.665 10.651031 36.879844 8.865875 36.879844 6.666656 L 36.879844 -6.665375 C 36.879844 -8.864594 38.665 -10.64975 40.868125 -10.64975 L 68.844687 -10.64975 C 71.043906 -10.64975 72.829062 -8.864594 72.829062 -6.665375 L 72.829062 6.666656 C 72.829062 8.865875 71.043906 10.651031 68.844687 10.651031 Z M 68.844687 10.651031 " transform="matrix(1,0,0,-1,161.46,32.444)"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph2-1" x="204.011" y="34.769"/>
|
||||
<use xlink:href="#glyph2-2" x="210.163146" y="34.769"/>
|
||||
<use xlink:href="#glyph2-3" x="216.315292" y="34.769"/>
|
||||
<use xlink:href="#glyph2-4" x="222.467438" y="34.769"/>
|
||||
</g>
|
||||
<g clip-path="url(#clip13)" clip-rule="nonzero">
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(50%,50%,50%);fill-opacity:0.15;" d="M 317.042969 25.695312 L 289.066406 25.695312 C 286.867188 25.695312 285.082031 27.480469 285.082031 29.679688 L 285.082031 40.355469 C 285.082031 42.554688 286.867188 44.339844 289.066406 44.339844 L 317.042969 44.339844 C 319.246094 44.339844 321.03125 42.554688 321.03125 40.355469 L 321.03125 29.679688 C 321.03125 27.480469 319.246094 25.695312 317.042969 25.695312 Z M 317.042969 25.695312 "/>
|
||||
</g>
|
||||
<g clip-path="url(#clip14)" clip-rule="nonzero">
|
||||
<g clip-path="url(#clip15)" clip-rule="nonzero">
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:url(#linear3);" d="M 282.507812 41.765625 L 282.507812 23.121094 L 318.457031 23.121094 L 318.457031 41.765625 Z M 282.507812 41.765625 "/>
|
||||
</g>
|
||||
</g>
|
||||
<g clip-path="url(#clip16)" clip-rule="nonzero">
|
||||
<path style="fill:none;stroke-width:1.99255;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(74.472046%,79.733276%,82.038879%);stroke-opacity:1;stroke-miterlimit:10;" d="M 153.00875 9.322906 L 125.036094 9.322906 C 122.832969 9.322906 121.047812 7.53775 121.047812 5.338531 L 121.047812 -5.33725 C 121.047812 -7.536469 122.832969 -9.321625 125.036094 -9.321625 L 153.00875 -9.321625 C 155.211875 -9.321625 156.997031 -7.536469 156.997031 -5.33725 L 156.997031 5.338531 C 156.997031 7.53775 155.211875 9.322906 153.00875 9.322906 Z M 153.00875 9.322906 " transform="matrix(1,0,0,-1,161.46,32.444)"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph2-1" x="288.177" y="36.097"/>
|
||||
<use xlink:href="#glyph2-5" x="294.329146" y="36.097"/>
|
||||
<use xlink:href="#glyph2-3" x="300.481292" y="36.097"/>
|
||||
<use xlink:href="#glyph2-3" x="306.633438" y="36.097"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 64 KiB |
|
Before Width: | Height: | Size: 39 KiB |
1975
docs/_images/tikz-b87c5ab6092153f7f845370e9964b266e5d97f55.svg
Normal file
|
After Width: | Height: | Size: 689 KiB |
|
Before Width: | Height: | Size: 18 KiB |
345
docs/_images/tikz-c523bba45f9fcaa801dd4f6284c7efa1f320c9b1.svg
Normal file
@@ -0,0 +1,345 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="319.45pt" height="37.183pt" viewBox="0 0 319.45 37.183" version="1.1">
|
||||
<defs>
|
||||
<g>
|
||||
<symbol overflow="visible" id="glyph0-0">
|
||||
<path style="stroke:none;" d=""/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-1">
|
||||
<path style="stroke:none;" d="M 6.765625 -6.375 C 6.921875 -6.78125 7.21875 -7.09375 7.96875 -7.109375 L 7.96875 -7.453125 C 7.625 -7.421875 7.1875 -7.421875 6.90625 -7.421875 C 6.578125 -7.421875 5.9375 -7.4375 5.65625 -7.453125 L 5.65625 -7.109375 C 6.234375 -7.09375 6.453125 -6.8125 6.453125 -6.5625 C 6.453125 -6.484375 6.421875 -6.40625 6.40625 -6.34375 L 4.40625 -1.09375 L 2.328125 -6.59375 C 2.25 -6.75 2.25 -6.765625 2.25 -6.796875 C 2.25 -7.109375 2.875 -7.109375 3.15625 -7.109375 L 3.15625 -7.453125 C 2.765625 -7.421875 2 -7.421875 1.59375 -7.421875 C 1.0625 -7.421875 0.59375 -7.4375 0.203125 -7.453125 L 0.203125 -7.109375 C 0.921875 -7.109375 1.125 -7.109375 1.28125 -6.703125 L 3.8125 0 C 3.875 0.203125 3.9375 0.234375 4.078125 0.234375 C 4.265625 0.234375 4.28125 0.1875 4.34375 0.03125 Z M 6.765625 -6.375 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-2">
|
||||
<path style="stroke:none;" d="M 1.9375 -4.828125 L 0.40625 -4.703125 L 0.40625 -4.359375 C 1.109375 -4.359375 1.203125 -4.296875 1.203125 -3.765625 L 1.203125 -0.828125 C 1.203125 -0.34375 1.09375 -0.34375 0.359375 -0.34375 L 0.359375 0 C 0.703125 -0.015625 1.296875 -0.03125 1.5625 -0.03125 C 1.9375 -0.03125 2.328125 -0.015625 2.6875 0 L 2.6875 -0.34375 C 1.96875 -0.34375 1.9375 -0.390625 1.9375 -0.8125 Z M 1.96875 -6.71875 C 1.96875 -7.0625 1.703125 -7.296875 1.390625 -7.296875 C 1.0625 -7.296875 0.8125 -7 0.8125 -6.71875 C 0.8125 -6.421875 1.0625 -6.140625 1.390625 -6.140625 C 1.703125 -6.140625 1.96875 -6.375 1.96875 -6.71875 Z M 1.96875 -6.71875 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-3">
|
||||
<path style="stroke:none;" d="M 1.828125 -3.625 L 1.828125 -4.828125 L 0.3125 -4.703125 L 0.3125 -4.359375 C 1.0625 -4.359375 1.15625 -4.28125 1.15625 -3.75 L 1.15625 -0.828125 C 1.15625 -0.34375 1.03125 -0.34375 0.3125 -0.34375 L 0.3125 0 C 0.734375 -0.015625 1.25 -0.03125 1.546875 -0.03125 C 1.984375 -0.03125 2.5 -0.03125 2.9375 0 L 2.9375 -0.34375 L 2.703125 -0.34375 C 1.890625 -0.34375 1.875 -0.453125 1.875 -0.84375 L 1.875 -2.53125 C 1.875 -3.609375 2.328125 -4.578125 3.15625 -4.578125 C 3.234375 -4.578125 3.265625 -4.578125 3.28125 -4.5625 C 3.25 -4.5625 3.03125 -4.421875 3.03125 -4.140625 C 3.03125 -3.84375 3.265625 -3.671875 3.5 -3.671875 C 3.703125 -3.671875 3.96875 -3.8125 3.96875 -4.15625 C 3.96875 -4.5 3.625 -4.828125 3.15625 -4.828125 C 2.359375 -4.828125 1.96875 -4.09375 1.828125 -3.625 Z M 1.828125 -3.625 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-4">
|
||||
<path style="stroke:none;" d="M 1.890625 -4.359375 L 3.453125 -4.359375 L 3.453125 -4.703125 L 1.890625 -4.703125 L 1.890625 -6.703125 L 1.609375 -6.703125 C 1.609375 -5.8125 1.28125 -4.640625 0.203125 -4.609375 L 0.203125 -4.359375 L 1.140625 -4.359375 L 1.140625 -1.359375 C 1.140625 -0.015625 2.15625 0.125 2.546875 0.125 C 3.3125 0.125 3.625 -0.65625 3.625 -1.359375 L 3.625 -1.96875 L 3.34375 -1.96875 L 3.34375 -1.375 C 3.34375 -0.5625 3.015625 -0.15625 2.625 -0.15625 C 1.890625 -0.15625 1.890625 -1.140625 1.890625 -1.328125 Z M 1.890625 -4.359375 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-5">
|
||||
<path style="stroke:none;" d="M 4.265625 -0.859375 L 4.265625 0.125 L 5.828125 0 L 5.828125 -0.34375 C 5.078125 -0.34375 4.984375 -0.421875 4.984375 -0.953125 L 4.984375 -4.828125 L 3.375 -4.703125 L 3.375 -4.359375 C 4.140625 -4.359375 4.234375 -4.28125 4.234375 -3.75 L 4.234375 -1.8125 C 4.234375 -0.859375 3.703125 -0.125 2.90625 -0.125 C 2 -0.125 1.953125 -0.625 1.953125 -1.203125 L 1.953125 -4.828125 L 0.34375 -4.703125 L 0.34375 -4.359375 C 1.203125 -4.359375 1.203125 -4.328125 1.203125 -3.359375 L 1.203125 -1.71875 C 1.203125 -0.875 1.203125 0.125 2.859375 0.125 C 3.46875 0.125 3.953125 -0.1875 4.265625 -0.859375 Z M 4.265625 -0.859375 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-6">
|
||||
<path style="stroke:none;" d="M 3.625 -0.828125 C 3.671875 -0.390625 3.96875 0.0625 4.484375 0.0625 C 4.71875 0.0625 5.375 -0.09375 5.375 -0.96875 L 5.375 -1.578125 L 5.109375 -1.578125 L 5.109375 -0.96875 C 5.109375 -0.34375 4.828125 -0.265625 4.71875 -0.265625 C 4.359375 -0.265625 4.3125 -0.765625 4.3125 -0.8125 L 4.3125 -3 C 4.3125 -3.453125 4.3125 -3.875 3.921875 -4.28125 C 3.484375 -4.71875 2.9375 -4.890625 2.421875 -4.890625 C 1.53125 -4.890625 0.78125 -4.375 0.78125 -3.65625 C 0.78125 -3.328125 1 -3.140625 1.28125 -3.140625 C 1.578125 -3.140625 1.78125 -3.359375 1.78125 -3.640625 C 1.78125 -3.78125 1.71875 -4.140625 1.21875 -4.140625 C 1.515625 -4.53125 2.046875 -4.640625 2.40625 -4.640625 C 2.9375 -4.640625 3.5625 -4.21875 3.5625 -3.25 L 3.5625 -2.84375 C 3 -2.8125 2.234375 -2.78125 1.546875 -2.453125 C 0.734375 -2.078125 0.453125 -1.515625 0.453125 -1.03125 C 0.453125 -0.15625 1.515625 0.125 2.203125 0.125 C 2.921875 0.125 3.421875 -0.3125 3.625 -0.828125 Z M 3.5625 -2.625 L 3.5625 -1.53125 C 3.5625 -0.484375 2.765625 -0.125 2.28125 -0.125 C 1.75 -0.125 1.296875 -0.5 1.296875 -1.046875 C 1.296875 -1.640625 1.75 -2.546875 3.5625 -2.625 Z M 3.5625 -2.625 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-7">
|
||||
<path style="stroke:none;" d="M 1.9375 -7.5625 L 0.359375 -7.453125 L 0.359375 -7.109375 C 1.125 -7.109375 1.203125 -7.03125 1.203125 -6.5 L 1.203125 -0.828125 C 1.203125 -0.34375 1.09375 -0.34375 0.359375 -0.34375 L 0.359375 0 C 0.71875 -0.015625 1.296875 -0.03125 1.578125 -0.03125 C 1.84375 -0.03125 2.375 -0.015625 2.78125 0 L 2.78125 -0.34375 C 2.046875 -0.34375 1.9375 -0.34375 1.9375 -0.828125 Z M 1.9375 -7.5625 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-8">
|
||||
<path style="stroke:none;" d="M 3.8125 -4.234375 L 2.40625 -4.5625 C 1.734375 -4.734375 1.3125 -5.328125 1.3125 -5.953125 C 1.3125 -6.71875 1.890625 -7.390625 2.75 -7.390625 C 4.5625 -7.390625 4.8125 -5.59375 4.875 -5.109375 C 4.890625 -5.03125 4.890625 -4.96875 5 -4.96875 C 5.140625 -4.96875 5.140625 -5.03125 5.140625 -5.234375 L 5.140625 -7.421875 C 5.140625 -7.609375 5.140625 -7.6875 5.03125 -7.6875 C 4.953125 -7.6875 4.9375 -7.671875 4.859375 -7.546875 L 4.484375 -6.921875 C 4.15625 -7.234375 3.703125 -7.6875 2.734375 -7.6875 C 1.53125 -7.6875 0.609375 -6.734375 0.609375 -5.578125 C 0.609375 -4.671875 1.1875 -3.875 2.046875 -3.578125 C 2.15625 -3.53125 2.71875 -3.40625 3.484375 -3.21875 C 3.78125 -3.140625 4.09375 -3.0625 4.40625 -2.65625 C 4.640625 -2.375 4.75 -2.015625 4.75 -1.65625 C 4.75 -0.890625 4.203125 -0.09375 3.28125 -0.09375 C 2.96875 -0.09375 2.140625 -0.15625 1.5625 -0.6875 C 0.921875 -1.28125 0.890625 -1.96875 0.890625 -2.359375 C 0.875 -2.46875 0.78125 -2.46875 0.75 -2.46875 C 0.609375 -2.46875 0.609375 -2.40625 0.609375 -2.203125 L 0.609375 -0.015625 C 0.609375 0.15625 0.609375 0.234375 0.734375 0.234375 C 0.8125 0.234375 0.8125 0.21875 0.890625 0.09375 C 0.890625 0.09375 0.921875 0.046875 1.28125 -0.53125 C 1.625 -0.15625 2.328125 0.234375 3.296875 0.234375 C 4.5625 0.234375 5.4375 -0.828125 5.4375 -2.03125 C 5.4375 -3.125 4.71875 -4.015625 3.8125 -4.234375 Z M 3.8125 -4.234375 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-9">
|
||||
<path style="stroke:none;" d="M 1.203125 -3.75 L 1.203125 -0.828125 C 1.203125 -0.34375 1.078125 -0.34375 0.34375 -0.34375 L 0.34375 0 C 0.734375 -0.015625 1.28125 -0.03125 1.578125 -0.03125 C 1.859375 -0.03125 2.4375 -0.015625 2.796875 0 L 2.796875 -0.34375 C 2.078125 -0.34375 1.953125 -0.34375 1.953125 -0.828125 L 1.953125 -2.828125 C 1.953125 -3.96875 2.71875 -4.578125 3.421875 -4.578125 C 4.109375 -4.578125 4.234375 -3.984375 4.234375 -3.375 L 4.234375 -0.828125 C 4.234375 -0.34375 4.109375 -0.34375 3.375 -0.34375 L 3.375 0 C 3.765625 -0.015625 4.3125 -0.03125 4.609375 -0.03125 C 4.890625 -0.03125 5.46875 -0.015625 5.828125 0 L 5.828125 -0.34375 C 5.109375 -0.34375 4.984375 -0.34375 4.984375 -0.828125 L 4.984375 -2.828125 C 4.984375 -3.96875 5.765625 -4.578125 6.453125 -4.578125 C 7.140625 -4.578125 7.265625 -3.984375 7.265625 -3.375 L 7.265625 -0.828125 C 7.265625 -0.34375 7.140625 -0.34375 6.40625 -0.34375 L 6.40625 0 C 6.796875 -0.015625 7.34375 -0.03125 7.640625 -0.03125 C 7.921875 -0.03125 8.5 -0.015625 8.859375 0 L 8.859375 -0.34375 C 8.296875 -0.34375 8.03125 -0.34375 8.015625 -0.671875 L 8.015625 -2.75 C 8.015625 -3.6875 8.015625 -4.03125 7.671875 -4.421875 C 7.53125 -4.609375 7.171875 -4.828125 6.53125 -4.828125 C 5.609375 -4.828125 5.140625 -4.171875 4.953125 -3.75 C 4.796875 -4.703125 3.984375 -4.828125 3.5 -4.828125 C 2.703125 -4.828125 2.1875 -4.359375 1.890625 -3.671875 L 1.890625 -4.828125 L 0.34375 -4.703125 L 0.34375 -4.359375 C 1.109375 -4.359375 1.203125 -4.28125 1.203125 -3.75 Z M 1.203125 -3.75 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-10">
|
||||
<path style="stroke:none;" d="M 0.609375 -3.734375 C 0.609375 -1.46875 2.375 0.234375 4.40625 0.234375 C 6.1875 0.234375 7.25 -1.28125 7.25 -2.546875 C 7.25 -2.65625 7.25 -2.71875 7.109375 -2.71875 C 6.984375 -2.71875 6.984375 -2.65625 6.984375 -2.546875 C 6.890625 -1 5.71875 -0.09375 4.53125 -0.09375 C 3.875 -0.09375 1.734375 -0.46875 1.734375 -3.71875 C 1.734375 -6.984375 3.859375 -7.34375 4.53125 -7.34375 C 5.71875 -7.34375 6.6875 -6.359375 6.90625 -4.765625 C 6.921875 -4.609375 6.921875 -4.578125 7.078125 -4.578125 C 7.25 -4.578125 7.25 -4.609375 7.25 -4.84375 L 7.25 -7.421875 C 7.25 -7.609375 7.25 -7.6875 7.125 -7.6875 C 7.09375 -7.6875 7.046875 -7.6875 6.953125 -7.5625 L 6.40625 -6.75 C 6.015625 -7.140625 5.453125 -7.6875 4.40625 -7.6875 C 2.359375 -7.6875 0.609375 -5.953125 0.609375 -3.734375 Z M 0.609375 -3.734375 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-11">
|
||||
<path style="stroke:none;" d="M 4.140625 -0.59375 L 4.140625 0.125 L 5.75 0 L 5.75 -0.34375 C 4.984375 -0.34375 4.890625 -0.421875 4.890625 -0.953125 L 4.890625 -7.5625 L 3.328125 -7.453125 L 3.328125 -7.109375 C 4.09375 -7.109375 4.171875 -7.03125 4.171875 -6.5 L 4.171875 -4.140625 C 3.859375 -4.53125 3.390625 -4.828125 2.796875 -4.828125 C 1.515625 -4.828125 0.375 -3.75 0.375 -2.34375 C 0.375 -0.953125 1.4375 0.125 2.6875 0.125 C 3.375 0.125 3.875 -0.25 4.140625 -0.59375 Z M 4.140625 -3.515625 L 4.140625 -1.28125 C 4.140625 -1.09375 4.140625 -1.0625 4.03125 -0.890625 C 3.703125 -0.359375 3.203125 -0.125 2.734375 -0.125 C 2.25 -0.125 1.859375 -0.40625 1.59375 -0.8125 C 1.3125 -1.265625 1.28125 -1.890625 1.28125 -2.328125 C 1.28125 -2.734375 1.296875 -3.390625 1.609375 -3.875 C 1.84375 -4.21875 2.25 -4.578125 2.84375 -4.578125 C 3.234375 -4.578125 3.6875 -4.421875 4.03125 -3.921875 C 4.140625 -3.734375 4.140625 -3.71875 4.140625 -3.515625 Z M 4.140625 -3.515625 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-12">
|
||||
<path style="stroke:none;" d="M 2.25 -6.421875 C 2.25 -7.078125 1.984375 -7.5625 1.515625 -7.5625 C 1.140625 -7.5625 0.9375 -7.28125 0.9375 -6.984375 C 0.9375 -6.703125 1.125 -6.40625 1.515625 -6.40625 C 1.734375 -6.40625 1.890625 -6.515625 1.953125 -6.59375 C 1.96875 -6.609375 1.96875 -6.625 1.984375 -6.625 C 2 -6.625 2 -6.46875 2 -6.421875 C 2 -6.078125 1.9375 -5.296875 1.25 -4.609375 C 1.109375 -4.484375 1.109375 -4.453125 1.109375 -4.421875 C 1.109375 -4.359375 1.171875 -4.3125 1.21875 -4.3125 C 1.34375 -4.3125 2.25 -5.140625 2.25 -6.421875 Z M 2.25 -6.421875 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-13">
|
||||
<path style="stroke:none;" d="M 2.265625 -2.109375 C 2.515625 -2.078125 3.40625 -1.890625 3.40625 -1.109375 C 3.40625 -0.5625 3.015625 -0.125 2.171875 -0.125 C 1.25 -0.125 0.859375 -0.734375 0.65625 -1.671875 C 0.625 -1.8125 0.609375 -1.859375 0.5 -1.859375 C 0.359375 -1.859375 0.359375 -1.78125 0.359375 -1.578125 L 0.359375 -0.140625 C 0.359375 0.046875 0.359375 0.125 0.484375 0.125 C 0.53125 0.125 0.546875 0.109375 0.75 -0.09375 C 0.78125 -0.125 0.78125 -0.140625 0.96875 -0.34375 C 1.453125 0.109375 1.9375 0.125 2.171875 0.125 C 3.421875 0.125 3.921875 -0.609375 3.921875 -1.390625 C 3.921875 -1.96875 3.59375 -2.296875 3.46875 -2.4375 C 3.109375 -2.78125 2.6875 -2.875 2.21875 -2.953125 C 1.609375 -3.078125 0.890625 -3.21875 0.890625 -3.84375 C 0.890625 -4.234375 1.171875 -4.671875 2.109375 -4.671875 C 3.296875 -4.671875 3.359375 -3.703125 3.375 -3.359375 C 3.390625 -3.265625 3.484375 -3.265625 3.515625 -3.265625 C 3.65625 -3.265625 3.65625 -3.3125 3.65625 -3.515625 L 3.65625 -4.625 C 3.65625 -4.8125 3.65625 -4.890625 3.53125 -4.890625 C 3.484375 -4.890625 3.453125 -4.890625 3.3125 -4.75 C 3.28125 -4.71875 3.171875 -4.609375 3.125 -4.578125 C 2.71875 -4.890625 2.265625 -4.890625 2.109375 -4.890625 C 0.78125 -4.890625 0.359375 -4.15625 0.359375 -3.546875 C 0.359375 -3.15625 0.53125 -2.859375 0.828125 -2.625 C 1.171875 -2.328125 1.484375 -2.265625 2.265625 -2.109375 Z M 2.265625 -2.109375 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-14">
|
||||
<path style="stroke:none;" d="M 2.46875 -3.453125 L 4.3125 -3.453125 C 5.625 -3.453125 6.8125 -4.328125 6.8125 -5.421875 C 6.8125 -6.484375 5.71875 -7.453125 4.234375 -7.453125 L 0.375 -7.453125 L 0.375 -7.109375 L 0.640625 -7.109375 C 1.484375 -7.109375 1.5 -6.984375 1.5 -6.59375 L 1.5 -0.84375 C 1.5 -0.453125 1.484375 -0.34375 0.640625 -0.34375 L 0.375 -0.34375 L 0.375 0 C 0.765625 -0.03125 1.578125 -0.03125 1.984375 -0.03125 C 2.40625 -0.03125 3.21875 -0.03125 3.59375 0 L 3.59375 -0.34375 L 3.34375 -0.34375 C 2.5 -0.34375 2.46875 -0.453125 2.46875 -0.84375 Z M 2.4375 -3.734375 L 2.4375 -6.671875 C 2.4375 -7.03125 2.46875 -7.109375 2.984375 -7.109375 L 3.953125 -7.109375 C 5.6875 -7.109375 5.6875 -5.953125 5.6875 -5.421875 C 5.6875 -4.90625 5.6875 -3.734375 3.953125 -3.734375 Z M 2.4375 -3.734375 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-15">
|
||||
<path style="stroke:none;" d="M 4.78125 -7.765625 C 4.828125 -7.90625 4.828125 -7.9375 4.828125 -7.96875 C 4.828125 -8.078125 4.734375 -8.171875 4.609375 -8.171875 C 4.453125 -8.171875 4.421875 -8.078125 4.390625 -7.96875 L 0.671875 2.3125 C 0.609375 2.453125 0.609375 2.484375 0.609375 2.515625 C 0.609375 2.625 0.703125 2.71875 0.828125 2.71875 C 0.984375 2.71875 1.03125 2.625 1.0625 2.515625 Z M 4.78125 -7.765625 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-16">
|
||||
<path style="stroke:none;" d="M 6.34375 -7.421875 L 0.359375 -7.421875 L 0.359375 -7.078125 L 0.625 -7.078125 C 1.46875 -7.078125 1.484375 -6.953125 1.484375 -6.5625 L 1.484375 -0.84375 C 1.484375 -0.453125 1.46875 -0.34375 0.625 -0.34375 L 0.359375 -0.34375 L 0.359375 0 C 0.734375 -0.03125 1.59375 -0.03125 2.015625 -0.03125 C 2.46875 -0.03125 3.453125 -0.03125 3.84375 0 L 3.84375 -0.34375 L 3.484375 -0.34375 C 2.453125 -0.34375 2.453125 -0.484375 2.453125 -0.859375 L 2.453125 -3.546875 L 3.390625 -3.546875 C 4.4375 -3.546875 4.546875 -3.203125 4.546875 -2.265625 L 4.828125 -2.265625 L 4.828125 -5.15625 L 4.546875 -5.15625 C 4.546875 -4.25 4.4375 -3.875 3.390625 -3.875 L 2.453125 -3.875 L 2.453125 -6.640625 C 2.453125 -7 2.46875 -7.078125 2.984375 -7.078125 L 4.296875 -7.078125 C 5.9375 -7.078125 6.203125 -6.46875 6.375 -4.96875 L 6.65625 -4.96875 Z M 6.34375 -7.421875 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-17">
|
||||
<path style="stroke:none;" d="M 1.21875 -2.75 C 1.28125 -4.375 2.203125 -4.640625 2.578125 -4.640625 C 3.703125 -4.640625 3.8125 -3.171875 3.8125 -2.75 Z M 1.203125 -2.515625 L 4.25 -2.515625 C 4.5 -2.515625 4.53125 -2.515625 4.53125 -2.75 C 4.53125 -3.828125 3.9375 -4.890625 2.578125 -4.890625 C 1.3125 -4.890625 0.3125 -3.765625 0.3125 -2.40625 C 0.3125 -0.9375 1.453125 0.125 2.703125 0.125 C 4.03125 0.125 4.53125 -1.09375 4.53125 -1.296875 C 4.53125 -1.40625 4.4375 -1.421875 4.390625 -1.421875 C 4.28125 -1.421875 4.265625 -1.359375 4.25 -1.28125 C 3.859375 -0.15625 2.875 -0.15625 2.765625 -0.15625 C 2.21875 -0.15625 1.78125 -0.484375 1.53125 -0.890625 C 1.203125 -1.40625 1.203125 -2.125 1.203125 -2.515625 Z M 1.203125 -2.515625 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-18">
|
||||
<path style="stroke:none;" d="M 6.75 -3.671875 C 6.953125 -4.203125 7.28125 -4.359375 7.671875 -4.359375 L 7.671875 -4.703125 C 7.421875 -4.671875 7.109375 -4.671875 6.875 -4.671875 C 6.546875 -4.671875 6.0625 -4.6875 5.859375 -4.703125 L 5.859375 -4.359375 C 6.25 -4.359375 6.484375 -4.15625 6.484375 -3.84375 C 6.484375 -3.78125 6.484375 -3.75 6.4375 -3.609375 L 5.4375 -0.8125 L 4.359375 -3.859375 C 4.3125 -3.984375 4.3125 -4.015625 4.3125 -4.0625 C 4.3125 -4.359375 4.734375 -4.359375 4.953125 -4.359375 L 4.953125 -4.703125 C 4.640625 -4.6875 4.078125 -4.671875 3.8125 -4.671875 C 3.484375 -4.671875 3.171875 -4.671875 2.84375 -4.703125 L 2.84375 -4.359375 C 3.25 -4.359375 3.421875 -4.34375 3.53125 -4.203125 C 3.59375 -4.140625 3.703125 -3.8125 3.78125 -3.59375 L 2.84375 -0.953125 L 1.8125 -3.875 C 1.75 -4 1.75 -4.03125 1.75 -4.0625 C 1.75 -4.359375 2.1875 -4.359375 2.40625 -4.359375 L 2.40625 -4.703125 C 2.078125 -4.6875 1.46875 -4.671875 1.203125 -4.671875 C 1.171875 -4.671875 0.59375 -4.671875 0.203125 -4.703125 L 0.203125 -4.359375 C 0.734375 -4.359375 0.875 -4.328125 1 -3.984375 L 2.375 -0.125 C 2.4375 0.03125 2.46875 0.125 2.609375 0.125 C 2.75 0.125 2.765625 0.046875 2.828125 -0.09375 L 3.921875 -3.1875 L 5.03125 -0.09375 C 5.078125 0.03125 5.109375 0.125 5.25 0.125 C 5.40625 0.125 5.4375 0.015625 5.46875 -0.09375 Z M 6.75 -3.671875 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-19">
|
||||
<path style="stroke:none;" d="M 5.140625 -2.328125 C 5.140625 -3.734375 4.046875 -4.890625 2.71875 -4.890625 C 1.359375 -4.890625 0.3125 -3.703125 0.3125 -2.328125 C 0.3125 -0.921875 1.4375 0.125 2.71875 0.125 C 4.03125 0.125 5.140625 -0.953125 5.140625 -2.328125 Z M 2.71875 -0.15625 C 2.25 -0.15625 1.78125 -0.375 1.484375 -0.890625 C 1.203125 -1.359375 1.203125 -2.03125 1.203125 -2.421875 C 1.203125 -2.84375 1.203125 -3.4375 1.46875 -3.921875 C 1.765625 -4.421875 2.28125 -4.640625 2.71875 -4.640625 C 3.203125 -4.640625 3.671875 -4.40625 3.953125 -3.9375 C 4.234375 -3.46875 4.234375 -2.828125 4.234375 -2.421875 C 4.234375 -2.03125 4.234375 -1.4375 3.984375 -0.953125 C 3.75 -0.46875 3.265625 -0.15625 2.71875 -0.15625 Z M 2.71875 -0.15625 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-20">
|
||||
<path style="stroke:none;" d="M 1.15625 -0.828125 C 1.15625 -0.34375 1.03125 -0.34375 0.3125 -0.34375 L 0.3125 0 C 0.671875 -0.015625 1.171875 -0.03125 1.5 -0.03125 C 1.828125 -0.03125 2.25 -0.015625 2.6875 0 L 2.6875 -0.34375 C 1.96875 -0.34375 1.84375 -0.34375 1.84375 -0.828125 L 1.84375 -1.953125 L 2.546875 -2.546875 C 3.375 -1.390625 3.84375 -0.78125 3.84375 -0.59375 C 3.84375 -0.375 3.65625 -0.34375 3.453125 -0.34375 L 3.453125 0 C 3.75 -0.015625 4.390625 -0.03125 4.625 -0.03125 C 4.9375 -0.03125 5.25 -0.015625 5.578125 0 L 5.578125 -0.34375 C 5.171875 -0.34375 4.921875 -0.34375 4.515625 -0.921875 L 3.125 -2.875 C 3.125 -2.890625 3.0625 -2.953125 3.0625 -2.984375 C 3.0625 -3.03125 3.84375 -3.6875 3.953125 -3.78125 C 4.640625 -4.328125 5.09375 -4.359375 5.328125 -4.359375 L 5.328125 -4.703125 C 5 -4.671875 4.859375 -4.671875 4.5625 -4.671875 C 4.171875 -4.671875 3.484375 -4.6875 3.34375 -4.703125 L 3.34375 -4.359375 C 3.546875 -4.359375 3.65625 -4.234375 3.65625 -4.09375 C 3.65625 -3.875 3.5 -3.734375 3.40625 -3.671875 L 1.875 -2.328125 L 1.875 -7.5625 L 0.3125 -7.453125 L 0.3125 -7.109375 C 1.0625 -7.109375 1.15625 -7.03125 1.15625 -6.5 Z M 1.15625 -0.828125 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-21">
|
||||
<path style="stroke:none;" d="M 4.34375 -7.59375 C 4.28125 -7.734375 4.265625 -7.8125 4.09375 -7.8125 C 3.921875 -7.8125 3.875 -7.75 3.828125 -7.59375 L 1.578125 -1.0625 C 1.375 -0.515625 0.9375 -0.34375 0.34375 -0.34375 L 0.34375 0 C 0.59375 -0.015625 1.0625 -0.03125 1.46875 -0.03125 C 1.796875 -0.03125 2.359375 -0.015625 2.71875 0 L 2.71875 -0.34375 C 2.171875 -0.34375 1.890625 -0.609375 1.890625 -0.890625 C 1.890625 -0.921875 1.90625 -1.03125 1.921875 -1.0625 L 2.421875 -2.484375 L 5.109375 -2.484375 L 5.6875 -0.8125 C 5.703125 -0.78125 5.71875 -0.703125 5.71875 -0.671875 C 5.71875 -0.34375 5.109375 -0.34375 4.828125 -0.34375 L 4.828125 0 C 5.21875 -0.03125 5.984375 -0.03125 6.390625 -0.03125 C 6.859375 -0.03125 7.359375 -0.015625 7.8125 0 L 7.8125 -0.34375 L 7.625 -0.34375 C 6.96875 -0.34375 6.8125 -0.421875 6.703125 -0.78125 Z M 3.765625 -6.375 L 5 -2.828125 L 2.546875 -2.828125 Z M 3.765625 -6.375 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-22">
|
||||
<path style="stroke:none;" d="M 1.875 -4.09375 L 1.875 -4.828125 L 0.3125 -4.703125 L 0.3125 -4.359375 C 1.078125 -4.359375 1.15625 -4.296875 1.15625 -3.8125 L 1.15625 1.28125 C 1.15625 1.78125 1.03125 1.78125 0.3125 1.78125 L 0.3125 2.109375 C 0.671875 2.109375 1.25 2.078125 1.53125 2.078125 C 1.828125 2.078125 2.375 2.109375 2.765625 2.109375 L 2.765625 1.78125 C 2.03125 1.78125 1.90625 1.78125 1.90625 1.28125 L 1.90625 -0.640625 C 1.96875 -0.46875 2.421875 0.125 3.25 0.125 C 4.546875 0.125 5.6875 -0.953125 5.6875 -2.359375 C 5.6875 -3.734375 4.625 -4.828125 3.40625 -4.828125 C 2.546875 -4.828125 2.09375 -4.34375 1.875 -4.09375 Z M 1.90625 -1.25 L 1.90625 -3.671875 C 2.21875 -4.234375 2.765625 -4.546875 3.3125 -4.546875 C 4.109375 -4.546875 4.78125 -3.59375 4.78125 -2.359375 C 4.78125 -1.03125 4.015625 -0.125 3.203125 -0.125 C 2.765625 -0.125 2.359375 -0.34375 2.0625 -0.78125 C 1.90625 -1.015625 1.90625 -1.03125 1.90625 -1.25 Z M 1.90625 -1.25 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-23">
|
||||
<path style="stroke:none;" d="M 1.28125 -2.375 C 1.28125 -4.15625 2.171875 -4.609375 2.75 -4.609375 C 2.84375 -4.609375 3.53125 -4.609375 3.921875 -4.203125 C 3.46875 -4.171875 3.40625 -3.84375 3.40625 -3.703125 C 3.40625 -3.421875 3.59375 -3.203125 3.90625 -3.203125 C 4.1875 -3.203125 4.40625 -3.390625 4.40625 -3.71875 C 4.40625 -4.453125 3.578125 -4.890625 2.734375 -4.890625 C 1.375 -4.890625 0.375 -3.703125 0.375 -2.359375 C 0.375 -0.953125 1.453125 0.125 2.71875 0.125 C 4.171875 0.125 4.53125 -1.1875 4.53125 -1.296875 C 4.53125 -1.40625 4.421875 -1.40625 4.390625 -1.40625 C 4.28125 -1.40625 4.265625 -1.359375 4.25 -1.296875 C 3.921875 -0.28125 3.21875 -0.15625 2.8125 -0.15625 C 2.234375 -0.15625 1.28125 -0.625 1.28125 -2.375 Z M 1.28125 -2.375 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph0-24">
|
||||
<path style="stroke:none;" d="M 1.203125 -3.75 L 1.203125 -0.828125 C 1.203125 -0.34375 1.078125 -0.34375 0.34375 -0.34375 L 0.34375 0 C 0.734375 -0.015625 1.28125 -0.03125 1.578125 -0.03125 C 1.859375 -0.03125 2.4375 -0.015625 2.796875 0 L 2.796875 -0.34375 C 2.078125 -0.34375 1.953125 -0.34375 1.953125 -0.828125 L 1.953125 -2.828125 C 1.953125 -3.96875 2.71875 -4.578125 3.421875 -4.578125 C 4.109375 -4.578125 4.234375 -3.984375 4.234375 -3.375 L 4.234375 -0.828125 C 4.234375 -0.34375 4.109375 -0.34375 3.375 -0.34375 L 3.375 0 C 3.765625 -0.015625 4.3125 -0.03125 4.609375 -0.03125 C 4.890625 -0.03125 5.46875 -0.015625 5.828125 0 L 5.828125 -0.34375 C 5.265625 -0.34375 5 -0.34375 4.984375 -0.671875 L 4.984375 -2.75 C 4.984375 -3.6875 4.984375 -4.03125 4.640625 -4.421875 C 4.5 -4.609375 4.140625 -4.828125 3.5 -4.828125 C 2.703125 -4.828125 2.1875 -4.359375 1.890625 -3.671875 L 1.890625 -4.828125 L 0.34375 -4.703125 L 0.34375 -4.359375 C 1.109375 -4.359375 1.203125 -4.28125 1.203125 -3.75 Z M 1.203125 -3.75 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph1-0">
|
||||
<path style="stroke:none;" d=""/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph1-1">
|
||||
<path style="stroke:none;" d="M 5.0625 -4.453125 L 5.375 -4.453125 C 5.546875 -4.453125 5.875 -4.453125 5.875 -4.8125 C 5.875 -5.15625 5.546875 -5.15625 5.375 -5.15625 L 4.0625 -5.15625 C 3.890625 -5.15625 3.578125 -5.15625 3.578125 -4.8125 C 3.578125 -4.453125 3.890625 -4.453125 4.0625 -4.453125 L 4.359375 -4.453125 L 3.078125 -0.609375 L 1.78125 -4.453125 L 2.078125 -4.453125 C 2.25 -4.453125 2.5625 -4.453125 2.5625 -4.8125 C 2.5625 -5.15625 2.25 -5.15625 2.078125 -5.15625 L 0.765625 -5.15625 C 0.59375 -5.15625 0.28125 -5.15625 0.28125 -4.8125 C 0.28125 -4.453125 0.59375 -4.453125 0.765625 -4.453125 L 1.078125 -4.453125 L 2.453125 -0.34375 C 2.578125 0.0625 2.84375 0.0625 3.078125 0.0625 C 3.296875 0.0625 3.5625 0.0625 3.6875 -0.34375 Z M 5.0625 -4.453125 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph1-2">
|
||||
<path style="stroke:none;" d="M 3.609375 -6.78125 C 3.609375 -7.078125 3.375 -7.3125 3.078125 -7.3125 C 2.765625 -7.3125 2.53125 -7.078125 2.53125 -6.78125 C 2.53125 -6.484375 2.765625 -6.234375 3.078125 -6.234375 C 3.375 -6.234375 3.609375 -6.484375 3.609375 -6.78125 Z M 1.546875 -5.15625 C 1.390625 -5.15625 1.078125 -5.15625 1.078125 -4.8125 C 1.078125 -4.453125 1.390625 -4.453125 1.546875 -4.453125 L 2.828125 -4.453125 L 2.828125 -0.6875 L 1.46875 -0.6875 C 1.296875 -0.6875 0.984375 -0.6875 0.984375 -0.34375 C 0.984375 0 1.296875 0 1.46875 0 L 4.796875 0 C 4.953125 0 5.265625 0 5.265625 -0.34375 C 5.265625 -0.6875 4.953125 -0.6875 4.796875 -0.6875 L 3.609375 -0.6875 L 3.609375 -4.65625 C 3.609375 -5.03125 3.53125 -5.15625 3.125 -5.15625 Z M 1.546875 -5.15625 "/>
|
||||
</symbol>
|
||||
<symbol overflow="visible" id="glyph1-3">
|
||||
<path style="stroke:none;" d="M 5.453125 -1.296875 C 5.453125 -1.609375 5.15625 -1.609375 5.0625 -1.609375 C 4.78125 -1.609375 4.734375 -1.515625 4.671875 -1.34375 C 4.40625 -0.6875 3.828125 -0.625 3.53125 -0.625 C 2.515625 -0.625 1.65625 -1.46875 1.65625 -2.578125 C 1.65625 -3.1875 2.015625 -4.5625 3.578125 -4.5625 C 3.890625 -4.5625 4.140625 -4.546875 4.25 -4.53125 C 4.34375 -4.5 4.34375 -4.5 4.34375 -4.4375 C 4.390625 -3.9375 4.75 -3.9375 4.828125 -3.9375 C 5.09375 -3.9375 5.3125 -4.109375 5.3125 -4.4375 C 5.3125 -5.265625 4.109375 -5.265625 3.578125 -5.265625 C 1.546875 -5.265625 0.890625 -3.578125 0.890625 -2.578125 C 0.890625 -1.125 2 0.078125 3.4375 0.078125 C 5.03125 0.078125 5.453125 -1.109375 5.453125 -1.296875 Z M 5.453125 -1.296875 "/>
|
||||
</symbol>
|
||||
</g>
|
||||
<clipPath id="clip2">
|
||||
<path d="M 1 1 L 43.421875 1 L 43.421875 24 L 1 24 Z M 1 1 "/>
|
||||
</clipPath>
|
||||
<clipPath id="clip3">
|
||||
<path d="M 0.90625 0.984375 L 43.421875 0.984375 L 43.421875 24.199219 L 0.90625 24.199219 Z M 0.90625 0.984375 "/>
|
||||
</clipPath>
|
||||
<clipPath id="clip1">
|
||||
<rect width="44" height="25"/>
|
||||
</clipPath>
|
||||
<g id="surface4" clip-path="url(#clip1)">
|
||||
<g clip-path="url(#clip2)" clip-rule="nonzero">
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(90.194702%,90.194702%,90.194702%);fill-opacity:1;" d="M 23.816406 1.292969 C 21.457031 1.292969 19.359375 2.421875 18.039062 4.171875 C 16.917969 3.460938 15.589844 3.046875 14.164062 3.046875 C 10.5625 3.046875 7.578125 5.675781 7.015625 9.117188 C 3.710938 9.785156 1.21875 12.707031 1.21875 16.210938 C 1.21875 20.210938 4.460938 23.449219 8.457031 23.449219 C 10.089844 23.449219 11.59375 22.910156 12.804688 22 C 13.507812 22.230469 14.257812 22.355469 15.039062 22.355469 C 15.792969 22.355469 16.523438 22.238281 17.207031 22.023438 C 18.492188 23.183594 20.191406 23.890625 22.058594 23.890625 C 23.953125 23.890625 25.679688 23.164062 26.972656 21.96875 C 28.132812 22.765625 29.539062 23.230469 31.054688 23.230469 C 32.257812 23.230469 33.390625 22.9375 34.386719 22.417969 C 34.871094 22.519531 35.367188 22.574219 35.878906 22.574219 C 39.878906 22.574219 43.121094 19.332031 43.121094 15.332031 C 43.121094 11.335938 39.878906 8.09375 35.878906 8.09375 C 35.839844 8.09375 35.800781 8.097656 35.761719 8.097656 C 34.472656 6.535156 32.542969 5.523438 30.375 5.464844 C 29.21875 3 26.71875 1.292969 23.816406 1.292969 Z M 23.816406 1.292969 "/>
|
||||
</g>
|
||||
<g clip-path="url(#clip3)" clip-rule="nonzero">
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 23.808594 0.984375 C 21.445312 0.984375 19.34375 2.082031 17.957031 3.78125 C 16.839844 3.128906 15.542969 2.742188 14.15625 2.742188 C 10.476562 2.742188 7.417969 5.378906 6.75 8.867188 C 3.402344 9.636719 0.90625 12.632812 0.90625 16.210938 C 0.90625 20.375 4.289062 23.757812 8.453125 23.757812 C 10.09375 23.757812 11.613281 23.230469 12.851562 22.339844 C 13.542969 22.546875 14.273438 22.664062 15.03125 22.664062 C 15.761719 22.664062 16.464844 22.554688 17.128906 22.363281 C 18.453125 23.503906 20.171875 24.199219 22.054688 24.199219 C 23.941406 24.199219 25.667969 23.496094 26.988281 22.347656 C 28.164062 23.097656 29.554688 23.539062 31.046875 23.539062 C 32.261719 23.539062 33.410156 23.246094 34.425781 22.738281 C 34.894531 22.828125 35.378906 22.878906 35.875 22.878906 C 40.039062 22.878906 43.421875 19.5 43.421875 15.335938 C 43.421875 11.175781 40.046875 7.796875 35.890625 7.789062 C 34.585938 6.273438 32.683594 5.28125 30.554688 5.171875 C 29.316406 2.695312 26.761719 0.984375 23.808594 0.984375 Z M 23.808594 1.597656 C 26.589844 1.597656 28.984375 3.234375 30.089844 5.59375 C 30.136719 5.699219 30.246094 5.769531 30.359375 5.773438 C 32.4375 5.828125 34.285156 6.796875 35.519531 8.292969 C 35.578125 8.363281 35.671875 8.40625 35.761719 8.40625 C 35.808594 8.402344 35.84375 8.402344 35.875 8.402344 C 39.707031 8.402344 42.808594 11.5 42.808594 15.335938 C 42.808594 19.167969 39.707031 22.265625 35.875 22.265625 C 35.382812 22.265625 34.902344 22.214844 34.441406 22.121094 C 34.375 22.105469 34.300781 22.113281 34.238281 22.148438 C 33.285156 22.640625 32.199219 22.921875 31.046875 22.921875 C 29.59375 22.921875 28.25 22.476562 27.136719 21.714844 C 27.023438 21.636719 26.855469 21.648438 26.753906 21.742188 C 25.519531 22.886719 23.871094 23.582031 22.054688 23.582031 C 20.265625 23.582031 18.636719 22.90625 17.410156 21.796875 C 17.328125 21.726562 17.210938 21.699219 17.109375 21.730469 C 16.457031 21.9375 15.757812 22.046875 15.03125 22.046875 C 14.285156 22.046875 13.566406 21.929688 12.894531 21.710938 C 12.800781 21.679688 12.691406 21.699219 12.613281 21.757812 C 11.453125 22.628906 10.015625 23.144531 8.453125 23.144531 C 4.617188 23.144531 1.519531 20.042969 1.519531 16.210938 C 1.519531 12.851562 3.90625 10.054688 7.070312 9.417969 C 7.191406 9.394531 7.292969 9.289062 7.3125 9.167969 C 7.851562 5.871094 10.703125 3.355469 14.15625 3.355469 C 15.519531 3.355469 16.792969 3.75 17.863281 4.429688 C 17.992188 4.511719 18.183594 4.480469 18.273438 4.355469 C 19.539062 2.683594 21.546875 1.597656 23.808594 1.597656 Z M 23.808594 1.597656 "/>
|
||||
</g>
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(79.998779%,79.998779%,79.998779%);fill-opacity:1;" d="M 23.707031 2.273438 C 21 2.273438 18.667969 3.921875 17.597656 6.289062 C 17.609375 6.296875 17.613281 6.300781 17.625 6.308594 C 18.851562 4.632812 20.800781 3.554688 23 3.554688 C 25.199219 3.554688 27.15625 4.640625 28.386719 6.324219 C 28.367188 6.328125 28.351562 6.332031 28.335938 6.335938 C 28.601562 6.707031 28.832031 7.109375 29.023438 7.53125 C 29.441406 7.542969 29.847656 7.59375 30.242188 7.679688 C 30.253906 7.679688 30.265625 7.683594 30.277344 7.683594 C 31.25 7.898438 32.144531 8.324219 32.914062 8.914062 C 32.90625 8.917969 32.894531 8.917969 32.882812 8.921875 C 33.285156 9.207031 33.648438 9.535156 33.972656 9.886719 C 34.011719 9.886719 34.050781 9.886719 34.089844 9.886719 C 38.09375 9.886719 41.339844 12.820312 41.339844 16.4375 C 41.339844 17.367188 41.125 18.253906 40.738281 19.054688 C 41.597656 17.976562 42.105469 16.65625 42.105469 15.230469 C 42.105469 11.613281 38.859375 8.679688 34.855469 8.679688 C 34.820312 8.679688 34.789062 8.679688 34.753906 8.679688 C 33.542969 7.230469 31.773438 6.292969 29.785156 6.226562 C 28.703125 3.890625 26.390625 2.273438 23.707031 2.273438 Z M 14.191406 3.894531 C 14.023438 3.894531 13.851562 3.898438 13.679688 3.910156 C 11.050781 4.085938 8.902344 5.894531 8.070312 8.332031 C 9.121094 6.5625 10.941406 5.335938 13.085938 5.191406 C 14.347656 5.109375 15.550781 5.410156 16.585938 6.003906 C 16.839844 5.601562 17.132812 5.230469 17.460938 4.894531 C 16.5 4.277344 15.378906 3.914062 14.191406 3.894531 Z M 24.066406 6.1875 C 22.160156 6.191406 20.402344 6.964844 19.140625 8.226562 C 19.285156 8.328125 19.425781 8.433594 19.5625 8.546875 C 20.914062 7.582031 22.632812 7.097656 24.4375 7.296875 C 28.246094 7.726562 30.996094 11.066406 30.582031 14.757812 C 30.53125 15.214844 30.433594 15.660156 30.292969 16.082031 C 30.6875 15.363281 30.945312 14.554688 31.039062 13.695312 C 31.457031 10 28.703125 6.660156 24.894531 6.234375 C 24.617188 6.203125 24.339844 6.1875 24.066406 6.1875 Z M 12.402344 8.125 C 11.867188 8.125 11.328125 8.1875 10.785156 8.3125 C 9.214844 8.675781 7.886719 9.53125 6.941406 10.671875 C 7.007812 10.316406 7.105469 9.976562 7.226562 9.644531 C 5.179688 10.175781 3.507812 11.597656 2.671875 13.453125 C 3.65625 12.125 5.128906 11.160156 6.835938 10.800781 C 5.875 12.015625 5.339844 13.527344 5.375 15.101562 C 5.792969 12.433594 7.84375 10.132812 10.710938 9.464844 C 12.453125 9.0625 14.1875 9.332031 15.632812 10.105469 C 15.96875 9.910156 16.332031 9.742188 16.707031 9.601562 C 15.511719 8.660156 13.996094 8.125 12.402344 8.125 Z M 12.402344 8.125 "/>
|
||||
</g>
|
||||
<clipPath id="clip4">
|
||||
<path d="M 101 3 L 227 3 L 227 37.183594 L 101 37.183594 Z M 101 3 "/>
|
||||
</clipPath>
|
||||
<clipPath id="clip5">
|
||||
<path d="M 99 1 L 224 1 L 224 36 L 99 36 Z M 99 1 "/>
|
||||
</clipPath>
|
||||
<clipPath id="clip6">
|
||||
<path d="M 219.835938 0.996094 L 103.082031 0.996094 C 100.882812 0.996094 99.097656 2.78125 99.097656 4.980469 L 99.097656 32.203125 C 99.097656 34.402344 100.882812 36.1875 103.082031 36.1875 L 219.835938 36.1875 C 222.039062 36.1875 223.824219 34.402344 223.824219 32.203125 L 223.824219 4.980469 C 223.824219 2.78125 222.039062 0.996094 219.835938 0.996094 Z M 219.835938 0.996094 "/>
|
||||
</clipPath>
|
||||
<linearGradient id="linear0" gradientUnits="userSpaceOnUse" x1="0" y1="25.002813" x2="0" y2="74.997187" gradientTransform="matrix(2.49481,0,0,-0.7039,36.7195,53.786)">
|
||||
<stop offset="0" style="stop-color:rgb(96.998596%,97.999573%,97.999573%);stop-opacity:1;"/>
|
||||
<stop offset="0.125" style="stop-color:rgb(97.148132%,98.098755%,98.098755%);stop-opacity:1;"/>
|
||||
<stop offset="0.25" style="stop-color:rgb(97.44873%,98.298645%,98.298645%);stop-opacity:1;"/>
|
||||
<stop offset="0.375" style="stop-color:rgb(97.749329%,98.498535%,98.498535%);stop-opacity:1;"/>
|
||||
<stop offset="0.5" style="stop-color:rgb(98.048401%,98.698425%,98.698425%);stop-opacity:1;"/>
|
||||
<stop offset="0.625" style="stop-color:rgb(98.348999%,98.898315%,98.898315%);stop-opacity:1;"/>
|
||||
<stop offset="0.75" style="stop-color:rgb(98.648071%,99.098206%,99.098206%);stop-opacity:1;"/>
|
||||
<stop offset="0.875" style="stop-color:rgb(98.948669%,99.298096%,99.298096%);stop-opacity:1;"/>
|
||||
<stop offset="1" style="stop-color:rgb(99.249268%,99.497986%,99.497986%);stop-opacity:1;"/>
|
||||
</linearGradient>
|
||||
<clipPath id="clip7">
|
||||
<path d="M 70 0 L 253 0 L 253 37.183594 L 70 37.183594 Z M 70 0 "/>
|
||||
</clipPath>
|
||||
<clipPath id="clip8">
|
||||
<path d="M 3 3 L 72 3 L 72 37.183594 L 3 37.183594 Z M 3 3 "/>
|
||||
</clipPath>
|
||||
<clipPath id="clip9">
|
||||
<path d="M 0 1 L 69 1 L 69 36 L 0 36 Z M 0 1 "/>
|
||||
</clipPath>
|
||||
<clipPath id="clip10">
|
||||
<path d="M 64.773438 1.296875 L 4.980469 1.296875 C 2.777344 1.296875 0.996094 3.082031 0.996094 5.285156 L 0.996094 31.898438 C 0.996094 34.097656 2.777344 35.882812 4.980469 35.882812 L 64.773438 35.882812 C 66.972656 35.882812 68.757812 34.097656 68.757812 31.898438 L 68.757812 5.285156 C 68.757812 3.082031 66.972656 1.296875 64.773438 1.296875 Z M 64.773438 1.296875 "/>
|
||||
</clipPath>
|
||||
<linearGradient id="linear1" gradientUnits="userSpaceOnUse" x1="0" y1="25.002559" x2="0" y2="74.997441" gradientTransform="matrix(1.35542,0,0,-0.69177,-32.89506,53.1795)">
|
||||
<stop offset="0" style="stop-color:rgb(84.999084%,90.000916%,90.000916%);stop-opacity:1;"/>
|
||||
<stop offset="0.03125" style="stop-color:rgb(85.139465%,90.093994%,90.093994%);stop-opacity:1;"/>
|
||||
<stop offset="0.0625" style="stop-color:rgb(85.421753%,90.281677%,90.281677%);stop-opacity:1;"/>
|
||||
<stop offset="0.09375" style="stop-color:rgb(85.702515%,90.467834%,90.467834%);stop-opacity:1;"/>
|
||||
<stop offset="0.125" style="stop-color:rgb(85.983276%,90.655518%,90.655518%);stop-opacity:1;"/>
|
||||
<stop offset="0.15625" style="stop-color:rgb(86.265564%,90.843201%,90.843201%);stop-opacity:1;"/>
|
||||
<stop offset="0.1875" style="stop-color:rgb(86.546326%,91.030884%,91.030884%);stop-opacity:1;"/>
|
||||
<stop offset="0.21875" style="stop-color:rgb(86.827087%,91.218567%,91.218567%);stop-opacity:1;"/>
|
||||
<stop offset="0.25" style="stop-color:rgb(87.107849%,91.40625%,91.40625%);stop-opacity:1;"/>
|
||||
<stop offset="0.28125" style="stop-color:rgb(87.390137%,91.593933%,91.593933%);stop-opacity:1;"/>
|
||||
<stop offset="0.3125" style="stop-color:rgb(87.670898%,91.781616%,91.781616%);stop-opacity:1;"/>
|
||||
<stop offset="0.34375" style="stop-color:rgb(87.95166%,91.967773%,91.967773%);stop-opacity:1;"/>
|
||||
<stop offset="0.375" style="stop-color:rgb(88.233948%,92.155457%,92.155457%);stop-opacity:1;"/>
|
||||
<stop offset="0.40625" style="stop-color:rgb(88.514709%,92.34314%,92.34314%);stop-opacity:1;"/>
|
||||
<stop offset="0.4375" style="stop-color:rgb(88.795471%,92.530823%,92.530823%);stop-opacity:1;"/>
|
||||
<stop offset="0.46875" style="stop-color:rgb(89.077759%,92.718506%,92.718506%);stop-opacity:1;"/>
|
||||
<stop offset="0.5" style="stop-color:rgb(89.358521%,92.906189%,92.906189%);stop-opacity:1;"/>
|
||||
<stop offset="0.53125" style="stop-color:rgb(89.639282%,93.093872%,93.093872%);stop-opacity:1;"/>
|
||||
<stop offset="0.5625" style="stop-color:rgb(89.920044%,93.280029%,93.280029%);stop-opacity:1;"/>
|
||||
<stop offset="0.59375" style="stop-color:rgb(90.202332%,93.467712%,93.467712%);stop-opacity:1;"/>
|
||||
<stop offset="0.625" style="stop-color:rgb(90.483093%,93.655396%,93.655396%);stop-opacity:1;"/>
|
||||
<stop offset="0.65625" style="stop-color:rgb(90.763855%,93.843079%,93.843079%);stop-opacity:1;"/>
|
||||
<stop offset="0.6875" style="stop-color:rgb(91.046143%,94.030762%,94.030762%);stop-opacity:1;"/>
|
||||
<stop offset="0.71875" style="stop-color:rgb(91.326904%,94.218445%,94.218445%);stop-opacity:1;"/>
|
||||
<stop offset="0.75" style="stop-color:rgb(91.607666%,94.404602%,94.404602%);stop-opacity:1;"/>
|
||||
<stop offset="0.78125" style="stop-color:rgb(91.889954%,94.592285%,94.592285%);stop-opacity:1;"/>
|
||||
<stop offset="0.8125" style="stop-color:rgb(92.170715%,94.779968%,94.779968%);stop-opacity:1;"/>
|
||||
<stop offset="0.84375" style="stop-color:rgb(92.451477%,94.967651%,94.967651%);stop-opacity:1;"/>
|
||||
<stop offset="0.875" style="stop-color:rgb(92.732239%,95.155334%,95.155334%);stop-opacity:1;"/>
|
||||
<stop offset="0.90625" style="stop-color:rgb(93.014526%,95.341492%,95.341492%);stop-opacity:1;"/>
|
||||
<stop offset="0.9375" style="stop-color:rgb(93.295288%,95.529175%,95.529175%);stop-opacity:1;"/>
|
||||
<stop offset="0.96875" style="stop-color:rgb(93.57605%,95.716858%,95.716858%);stop-opacity:1;"/>
|
||||
<stop offset="1" style="stop-color:rgb(93.858337%,95.904541%,95.904541%);stop-opacity:1;"/>
|
||||
</linearGradient>
|
||||
<clipPath id="clip11">
|
||||
<path d="M 0 0 L 97 0 L 97 37.183594 L 0 37.183594 Z M 0 0 "/>
|
||||
</clipPath>
|
||||
<clipPath id="clip12">
|
||||
<path d="M 285 11 L 319.449219 11 L 319.449219 31 L 285 31 Z M 285 11 "/>
|
||||
</clipPath>
|
||||
<clipPath id="clip13">
|
||||
<path d="M 282 9 L 319 9 L 319 28 L 282 28 Z M 282 9 "/>
|
||||
</clipPath>
|
||||
<clipPath id="clip14">
|
||||
<path d="M 314.46875 9.269531 L 286.496094 9.269531 C 284.292969 9.269531 282.507812 11.054688 282.507812 13.253906 L 282.507812 23.929688 C 282.507812 26.128906 284.292969 27.914062 286.496094 27.914062 L 314.46875 27.914062 C 316.671875 27.914062 318.457031 26.128906 318.457031 23.929688 L 318.457031 13.253906 C 318.457031 11.054688 316.671875 9.269531 314.46875 9.269531 Z M 314.46875 9.269531 "/>
|
||||
</clipPath>
|
||||
<linearGradient id="linear2" gradientUnits="userSpaceOnUse" x1="0" y1="25.001958" x2="0" y2="74.998042" gradientTransform="matrix(0.71901,0,0,-0.37292,264.53188,37.237)">
|
||||
<stop offset="0" style="stop-color:rgb(84.999084%,90.000916%,90.000916%);stop-opacity:1;"/>
|
||||
<stop offset="0.03125" style="stop-color:rgb(85.139465%,90.093994%,90.093994%);stop-opacity:1;"/>
|
||||
<stop offset="0.0625" style="stop-color:rgb(85.421753%,90.281677%,90.281677%);stop-opacity:1;"/>
|
||||
<stop offset="0.09375" style="stop-color:rgb(85.702515%,90.467834%,90.467834%);stop-opacity:1;"/>
|
||||
<stop offset="0.125" style="stop-color:rgb(85.983276%,90.655518%,90.655518%);stop-opacity:1;"/>
|
||||
<stop offset="0.15625" style="stop-color:rgb(86.265564%,90.843201%,90.843201%);stop-opacity:1;"/>
|
||||
<stop offset="0.1875" style="stop-color:rgb(86.546326%,91.030884%,91.030884%);stop-opacity:1;"/>
|
||||
<stop offset="0.21875" style="stop-color:rgb(86.827087%,91.218567%,91.218567%);stop-opacity:1;"/>
|
||||
<stop offset="0.25" style="stop-color:rgb(87.107849%,91.40625%,91.40625%);stop-opacity:1;"/>
|
||||
<stop offset="0.28125" style="stop-color:rgb(87.390137%,91.593933%,91.593933%);stop-opacity:1;"/>
|
||||
<stop offset="0.3125" style="stop-color:rgb(87.670898%,91.781616%,91.781616%);stop-opacity:1;"/>
|
||||
<stop offset="0.34375" style="stop-color:rgb(87.95166%,91.967773%,91.967773%);stop-opacity:1;"/>
|
||||
<stop offset="0.375" style="stop-color:rgb(88.233948%,92.155457%,92.155457%);stop-opacity:1;"/>
|
||||
<stop offset="0.40625" style="stop-color:rgb(88.514709%,92.34314%,92.34314%);stop-opacity:1;"/>
|
||||
<stop offset="0.4375" style="stop-color:rgb(88.795471%,92.530823%,92.530823%);stop-opacity:1;"/>
|
||||
<stop offset="0.46875" style="stop-color:rgb(89.077759%,92.718506%,92.718506%);stop-opacity:1;"/>
|
||||
<stop offset="0.5" style="stop-color:rgb(89.358521%,92.906189%,92.906189%);stop-opacity:1;"/>
|
||||
<stop offset="0.53125" style="stop-color:rgb(89.639282%,93.093872%,93.093872%);stop-opacity:1;"/>
|
||||
<stop offset="0.5625" style="stop-color:rgb(89.920044%,93.280029%,93.280029%);stop-opacity:1;"/>
|
||||
<stop offset="0.59375" style="stop-color:rgb(90.202332%,93.467712%,93.467712%);stop-opacity:1;"/>
|
||||
<stop offset="0.625" style="stop-color:rgb(90.483093%,93.655396%,93.655396%);stop-opacity:1;"/>
|
||||
<stop offset="0.65625" style="stop-color:rgb(90.763855%,93.843079%,93.843079%);stop-opacity:1;"/>
|
||||
<stop offset="0.6875" style="stop-color:rgb(91.046143%,94.030762%,94.030762%);stop-opacity:1;"/>
|
||||
<stop offset="0.71875" style="stop-color:rgb(91.326904%,94.218445%,94.218445%);stop-opacity:1;"/>
|
||||
<stop offset="0.75" style="stop-color:rgb(91.607666%,94.404602%,94.404602%);stop-opacity:1;"/>
|
||||
<stop offset="0.78125" style="stop-color:rgb(91.889954%,94.592285%,94.592285%);stop-opacity:1;"/>
|
||||
<stop offset="0.8125" style="stop-color:rgb(92.170715%,94.779968%,94.779968%);stop-opacity:1;"/>
|
||||
<stop offset="0.84375" style="stop-color:rgb(92.451477%,94.967651%,94.967651%);stop-opacity:1;"/>
|
||||
<stop offset="0.875" style="stop-color:rgb(92.732239%,95.155334%,95.155334%);stop-opacity:1;"/>
|
||||
<stop offset="0.90625" style="stop-color:rgb(93.014526%,95.343018%,95.343018%);stop-opacity:1;"/>
|
||||
<stop offset="0.9375" style="stop-color:rgb(93.295288%,95.529175%,95.529175%);stop-opacity:1;"/>
|
||||
<stop offset="0.96875" style="stop-color:rgb(93.57605%,95.716858%,95.716858%);stop-opacity:1;"/>
|
||||
<stop offset="1" style="stop-color:rgb(93.858337%,95.904541%,95.904541%);stop-opacity:1;"/>
|
||||
</linearGradient>
|
||||
<clipPath id="clip15">
|
||||
<path d="M 254 0 L 319.449219 0 L 319.449219 37.183594 L 254 37.183594 Z M 254 0 "/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
<g id="surface1">
|
||||
<path style="fill:none;stroke-width:1.99255;stroke-linecap:round;stroke-linejoin:miter;stroke:rgb(8.657837%,31.404114%,58.695984%);stroke-opacity:1;stroke-miterlimit:10;" d="M -91.706094 0.00115625 L -63.358438 0.00115625 " transform="matrix(1,0,0,-1,161.46,18.591)"/>
|
||||
<path style="fill:none;stroke-width:1.99255;stroke-linecap:round;stroke-linejoin:miter;stroke:rgb(8.657837%,31.404114%,58.695984%);stroke-opacity:1;stroke-miterlimit:10;" d="M 63.360312 0.00115625 L 120.051719 0.00115625 " transform="matrix(1,0,0,-1,161.46,18.591)"/>
|
||||
<use xlink:href="#surface4" transform="matrix(1,0,0,1,231,6)"/>
|
||||
<g clip-path="url(#clip4)" clip-rule="nonzero">
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(50%,50%,50%);fill-opacity:0.15;" d="M 222.410156 3.570312 L 105.65625 3.570312 C 103.453125 3.570312 101.671875 5.351562 101.671875 7.554688 L 101.671875 34.773438 C 101.671875 36.976562 103.453125 38.761719 105.65625 38.761719 L 222.410156 38.761719 C 224.613281 38.761719 226.398438 36.976562 226.398438 34.773438 L 226.398438 7.554688 C 226.398438 5.351562 224.613281 3.570312 222.410156 3.570312 Z M 222.410156 3.570312 "/>
|
||||
</g>
|
||||
<g clip-path="url(#clip5)" clip-rule="nonzero">
|
||||
<g clip-path="url(#clip6)" clip-rule="nonzero">
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:url(#linear0);" d="M 99.097656 36.1875 L 99.097656 0.996094 L 223.824219 0.996094 L 223.824219 36.1875 Z M 99.097656 36.1875 "/>
|
||||
</g>
|
||||
</g>
|
||||
<g clip-path="url(#clip7)" clip-rule="nonzero">
|
||||
<path style="fill:none;stroke-width:1.99255;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(74.472046%,79.733276%,82.038879%);stroke-opacity:1;stroke-miterlimit:10;" d="M 58.375937 17.594906 L -58.377969 17.594906 C -60.577188 17.594906 -62.362344 15.80975 -62.362344 13.610531 L -62.362344 -13.612125 C -62.362344 -15.811344 -60.577188 -17.5965 -58.377969 -17.5965 L 58.375937 -17.5965 C 60.579062 -17.5965 62.364219 -15.811344 62.364219 -13.612125 L 62.364219 13.610531 C 62.364219 15.80975 60.579062 17.594906 58.375937 17.594906 Z M 58.375937 17.594906 " transform="matrix(1,0,0,-1,161.46,18.591)"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph0-1" x="110.627" y="14.241"/>
|
||||
<use xlink:href="#glyph0-2" x="118.808825" y="14.241"/>
|
||||
<use xlink:href="#glyph0-3" x="121.839373" y="14.241"/>
|
||||
<use xlink:href="#glyph0-4" x="126.112467" y="14.241"/>
|
||||
<use xlink:href="#glyph0-5" x="130.355016" y="14.241"/>
|
||||
<use xlink:href="#glyph0-6" x="136.416112" y="14.241"/>
|
||||
<use xlink:href="#glyph0-7" x="141.870662" y="14.241"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph0-8" x="148.533941" y="14.241"/>
|
||||
<use xlink:href="#glyph0-9" x="154.595037" y="14.241"/>
|
||||
<use xlink:href="#glyph0-6" x="163.68559" y="14.241"/>
|
||||
<use xlink:href="#glyph0-3" x="169.14014" y="14.241"/>
|
||||
<use xlink:href="#glyph0-4" x="173.413234" y="14.241"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph0-10" x="181.288513" y="14.241"/>
|
||||
<use xlink:href="#glyph0-6" x="189.167065" y="14.241"/>
|
||||
<use xlink:href="#glyph0-3" x="194.621615" y="14.241"/>
|
||||
<use xlink:href="#glyph0-11" x="198.89471" y="14.241"/>
|
||||
<use xlink:href="#glyph0-12" x="204.955806" y="14.241"/>
|
||||
<use xlink:href="#glyph0-13" x="207.986354" y="14.241"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph0-14" x="115.824" y="27.79"/>
|
||||
<use xlink:href="#glyph0-10" x="123.248733" y="27.79"/>
|
||||
<use xlink:href="#glyph0-15" x="131.127285" y="27.79"/>
|
||||
<use xlink:href="#glyph0-8" x="136.581835" y="27.79"/>
|
||||
<use xlink:href="#glyph0-10" x="142.642931" y="27.79"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph0-16" x="154.154214" y="27.79"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph0-3" x="160.370219" y="27.79"/>
|
||||
<use xlink:href="#glyph0-6" x="164.643313" y="27.79"/>
|
||||
<use xlink:href="#glyph0-9" x="170.097863" y="27.79"/>
|
||||
<use xlink:href="#glyph0-17" x="179.188416" y="27.79"/>
|
||||
<use xlink:href="#glyph0-18" x="184.03642" y="27.79"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph0-19" x="191.609518" y="27.79"/>
|
||||
<use xlink:href="#glyph0-3" x="197.064068" y="27.79"/>
|
||||
<use xlink:href="#glyph0-20" x="201.337162" y="27.79"/>
|
||||
</g>
|
||||
<g clip-path="url(#clip8)" clip-rule="nonzero">
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(50%,50%,50%);fill-opacity:0.15;" d="M 67.347656 3.871094 L 7.554688 3.871094 C 5.351562 3.871094 3.566406 5.65625 3.566406 7.855469 L 3.566406 34.472656 C 3.566406 36.671875 5.351562 38.457031 7.554688 38.457031 L 67.347656 38.457031 C 69.546875 38.457031 71.332031 36.671875 71.332031 34.472656 L 71.332031 7.855469 C 71.332031 5.65625 69.546875 3.871094 67.347656 3.871094 Z M 67.347656 3.871094 "/>
|
||||
</g>
|
||||
<g clip-path="url(#clip9)" clip-rule="nonzero">
|
||||
<g clip-path="url(#clip10)" clip-rule="nonzero">
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:url(#linear1);" d="M 0.996094 35.882812 L 0.996094 1.296875 L 68.757812 1.296875 L 68.757812 35.882812 Z M 0.996094 35.882812 "/>
|
||||
</g>
|
||||
</g>
|
||||
<g clip-path="url(#clip11)" clip-rule="nonzero">
|
||||
<path style="fill:none;stroke-width:1.99255;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(74.472046%,79.733276%,82.038879%);stroke-opacity:1;stroke-miterlimit:10;" d="M -96.686563 17.294125 L -156.479531 17.294125 C -158.682656 17.294125 -160.463906 15.508969 -160.463906 13.305844 L -160.463906 -13.307437 C -160.463906 -15.506656 -158.682656 -17.291812 -156.479531 -17.291812 L -96.686563 -17.291812 C -94.487344 -17.291812 -92.702188 -15.506656 -92.702188 -13.307437 L -92.702188 13.305844 C -92.702188 15.508969 -94.487344 17.294125 -96.686563 17.294125 Z M -96.686563 17.294125 " transform="matrix(1,0,0,-1,161.46,18.591)"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph0-8" x="6.665" y="14.544"/>
|
||||
<use xlink:href="#glyph0-9" x="12.726096" y="14.544"/>
|
||||
<use xlink:href="#glyph0-6" x="21.816649" y="14.544"/>
|
||||
<use xlink:href="#glyph0-3" x="27.271199" y="14.544"/>
|
||||
<use xlink:href="#glyph0-4" x="31.544293" y="14.544"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph0-10" x="39.419573" y="14.544"/>
|
||||
<use xlink:href="#glyph0-6" x="47.298125" y="14.544"/>
|
||||
<use xlink:href="#glyph0-3" x="52.752675" y="14.544"/>
|
||||
<use xlink:href="#glyph0-11" x="57.025769" y="14.544"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph0-21" x="7.15" y="28.093"/>
|
||||
<use xlink:href="#glyph0-22" x="15.331825" y="28.093"/>
|
||||
<use xlink:href="#glyph0-22" x="21.392921" y="28.093"/>
|
||||
<use xlink:href="#glyph0-7" x="27.454017" y="28.093"/>
|
||||
<use xlink:href="#glyph0-2" x="30.484565" y="28.093"/>
|
||||
<use xlink:href="#glyph0-23" x="33.515113" y="28.093"/>
|
||||
<use xlink:href="#glyph0-6" x="38.363117" y="28.093"/>
|
||||
<use xlink:href="#glyph0-4" x="43.817667" y="28.093"/>
|
||||
<use xlink:href="#glyph0-2" x="48.060216" y="28.093"/>
|
||||
<use xlink:href="#glyph0-19" x="51.090764" y="28.093"/>
|
||||
<use xlink:href="#glyph0-24" x="56.545314" y="28.093"/>
|
||||
</g>
|
||||
<g clip-path="url(#clip12)" clip-rule="nonzero">
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(50%,50%,50%);fill-opacity:0.15;" d="M 317.042969 11.84375 L 289.066406 11.84375 C 286.867188 11.84375 285.082031 13.625 285.082031 15.828125 L 285.082031 26.5 C 285.082031 28.703125 286.867188 30.488281 289.066406 30.488281 L 317.042969 30.488281 C 319.246094 30.488281 321.03125 28.703125 321.03125 26.5 L 321.03125 15.828125 C 321.03125 13.625 319.246094 11.84375 317.042969 11.84375 Z M 317.042969 11.84375 "/>
|
||||
</g>
|
||||
<g clip-path="url(#clip13)" clip-rule="nonzero">
|
||||
<g clip-path="url(#clip14)" clip-rule="nonzero">
|
||||
<path style=" stroke:none;fill-rule:nonzero;fill:url(#linear2);" d="M 282.507812 27.914062 L 282.507812 9.269531 L 318.457031 9.269531 L 318.457031 27.914062 Z M 282.507812 27.914062 "/>
|
||||
</g>
|
||||
</g>
|
||||
<g clip-path="url(#clip15)" clip-rule="nonzero">
|
||||
<path style="fill:none;stroke-width:1.99255;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(74.472046%,79.733276%,82.038879%);stroke-opacity:1;stroke-miterlimit:10;" d="M 153.00875 9.321469 L 125.036094 9.321469 C 122.832969 9.321469 121.047812 7.536313 121.047812 5.337094 L 121.047812 -5.338687 C 121.047812 -7.537906 122.832969 -9.323062 125.036094 -9.323062 L 153.00875 -9.323062 C 155.211875 -9.323062 156.997031 -7.537906 156.997031 -5.338687 L 156.997031 5.337094 C 156.997031 7.536313 155.211875 9.321469 153.00875 9.321469 Z M 153.00875 9.321469 " transform="matrix(1,0,0,-1,161.46,18.591)"/>
|
||||
</g>
|
||||
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
||||
<use xlink:href="#glyph1-1" x="288.177" y="22.244"/>
|
||||
<use xlink:href="#glyph1-2" x="294.329146" y="22.244"/>
|
||||
<use xlink:href="#glyph1-3" x="300.481292" y="22.244"/>
|
||||
<use xlink:href="#glyph1-3" x="306.633438" y="22.244"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 51 KiB |
2401
docs/_images/tikz-ce55fa00e38973c00fdf255926bb46304226f2dc.svg
Normal file
|
After Width: | Height: | Size: 381 KiB |
|
Before Width: | Height: | Size: 15 KiB |
4909
docs/_images/tikz-f675fc9e85a93771428d0790db395907b3f662fe.svg
Normal file
|
After Width: | Height: | Size: 478 KiB |
1967
docs/_images/tikz-f7010fa8209b3752026a52619d57bbebb8fa2bcd.svg
Normal file
|
After Width: | Height: | Size: 600 KiB |
@@ -19,7 +19,9 @@ The Android Smart Card Emulator allows the emulation of a contact-less smart car
|
||||
The emulator uses Android's |HCE| to fetch APDUs from a contact-less reader.
|
||||
The app allows to process the Command APDUs either by delegating them to a
|
||||
remote virtual smart card or by a built-in Java Card simulator. The response
|
||||
APDUs are then returned to the smart card reader.
|
||||
APDUs are then returned to the smart card reader. Together with
|
||||
:ref:`tcardemulator` it is also possible to use a smartwatch as communication
|
||||
device instead of the phone.
|
||||
|
||||
With the built-in Java Card runtime of jCardSim_ the app includes the following
|
||||
Applets:
|
||||
@@ -48,11 +50,11 @@ a simple interface through a socket communication.
|
||||
:stringsubst:
|
||||
:libs: arrows, calc, fit, patterns, plotmarks, shapes.geometric, shapes.misc, shapes.symbols, shapes.arrows, shapes.callouts, shapes.multipart, shapes.gates.logic.US, shapes.gates.logic.IEC, er, automata, backgrounds, chains, topaths, trees, petri, mindmap, matrix, calendar, folding, fadings, through, positioning, scopes, decorations.fractals, decorations.shapes, decorations.text, decorations.pathmorphing, decorations.pathreplacing, decorations.footprints, decorations.markings, shadows
|
||||
|
||||
\input{%(wd)s/bilder/tikzstyles.tex}
|
||||
\node (reader) {\includegraphics[width=3cm]{%(wd)s/bilder/my_cardreader.pdf}};
|
||||
\input{$wd/bilder/tikzstyles.tex}
|
||||
\node (reader) {\includegraphics[width=3cm]{$wd/bilder/my_cardreader.pdf}};
|
||||
\node [below=0cm of reader, kleiner] {Contact-less Reader};
|
||||
\node (phone) [right=1cm of reader] {\includegraphics[width=3cm]{%(wd)s/bilder/smartphone.pdf}};
|
||||
\node (app) [at=(phone.center)] {\includegraphics[width=2.8cm, height=4.9cm]{%(wd)s/bilder/ACardEmulator.png}};
|
||||
\node (phone) [right=1cm of reader] {\includegraphics[width=3cm]{$wd/bilder/smartphone.pdf}};
|
||||
\node (app) [at=(phone.center)] {\includegraphics[width=2.8cm, height=4.9cm]{$wd/bilder/ACardEmulator.png}};
|
||||
|
||||
\begin{pgfonlayer}{background}
|
||||
\draw [rfid] (reader.center) -- (phone.west) ;
|
||||
@@ -62,34 +64,34 @@ a simple interface through a socket communication.
|
||||
:stringsubst:
|
||||
:libs: arrows, calc, fit, patterns, plotmarks, shapes.geometric, shapes.misc, shapes.symbols, shapes.arrows, shapes.callouts, shapes.multipart, shapes.gates.logic.US, shapes.gates.logic.IEC, er, automata, backgrounds, chains, topaths, trees, petri, mindmap, matrix, calendar, folding, fadings, through, positioning, scopes, decorations.fractals, decorations.shapes, decorations.text, decorations.pathmorphing, decorations.pathreplacing, decorations.footprints, decorations.markings, shadows
|
||||
|
||||
\input{%(wd)s/bilder/tikzstyles.tex}
|
||||
\node (reader) {\includegraphics[width=3cm]{%(wd)s/bilder/my_cardreader.pdf}};
|
||||
\input{$wd/bilder/tikzstyles.tex}
|
||||
\node (reader) {\includegraphics[width=3cm]{$wd/bilder/my_cardreader.pdf}};
|
||||
\node [below=0cm of reader, kleiner] {Contact-less Reader};
|
||||
\node (phone) [right=1cm of reader] {\includegraphics[width=3cm]{%(wd)s/bilder/smartphone.pdf}};
|
||||
\node (app) [at=(phone.center)] {\includegraphics[width=2.8cm, height=4.9cm]{%(wd)s/bilder/ACardEmulator.png}};
|
||||
\node (phone) [right=1cm of reader] {\includegraphics[width=3cm]{$wd/bilder/smartphone.pdf}};
|
||||
\node (app) [at=(phone.center)] {\includegraphics[width=2.8cm, height=4.9cm]{$wd/bilder/ACardEmulator.png}};
|
||||
\node (vicc) [aktivbox, right=2cm of phone, kleiner] {\texttt{vicc --reversed}};
|
||||
|
||||
\begin{pgfonlayer}{background}
|
||||
\draw [rfid] (reader.center) -- (phone.west) ;
|
||||
\path[linie] (phone) edge node {\includegraphics[width=1.5cm]{%(wd)s/bilder/simplecloud.pdf}} (vicc) ;
|
||||
\path[linie] (phone) edge node {\includegraphics[width=1.5cm]{$wd/bilder/simplecloud.pdf}} (vicc) ;
|
||||
\end{pgfonlayer}
|
||||
|
||||
.. tikz:: Relaying a contact-based smart card with pcsc-relay
|
||||
:stringsubst:
|
||||
:libs: arrows, calc, fit, patterns, plotmarks, shapes.geometric, shapes.misc, shapes.symbols, shapes.arrows, shapes.callouts, shapes.multipart, shapes.gates.logic.US, shapes.gates.logic.IEC, er, automata, backgrounds, chains, topaths, trees, petri, mindmap, matrix, calendar, folding, fadings, through, positioning, scopes, decorations.fractals, decorations.shapes, decorations.text, decorations.pathmorphing, decorations.pathreplacing, decorations.footprints, decorations.markings, shadows
|
||||
|
||||
\input{%(wd)s/bilder/tikzstyles.tex}
|
||||
\node (reader) {\includegraphics[width=3cm]{%(wd)s/bilder/my_cardreader.pdf}};
|
||||
\input{$wd/bilder/tikzstyles.tex}
|
||||
\node (reader) {\includegraphics[width=3cm]{$wd/bilder/my_cardreader.pdf}};
|
||||
\node [below=0cm of reader, kleiner] {Contact-less Reader};
|
||||
\node (phone) [right=1cm of reader] {\includegraphics[width=3cm]{%(wd)s/bilder/smartphone.pdf}};
|
||||
\node (app) [at=(phone.center)] {\includegraphics[width=2.8cm, height=4.9cm]{%(wd)s/bilder/ACardEmulator.png}};
|
||||
\node (phone) [right=1cm of reader] {\includegraphics[width=3cm]{$wd/bilder/smartphone.pdf}};
|
||||
\node (app) [at=(phone.center)] {\includegraphics[width=2.8cm, height=4.9cm]{$wd/bilder/ACardEmulator.png}};
|
||||
\node (pcsc-relay) [aktivbox, right=2cm of phone, kleiner] {\texttt{pcsc-relay --emulator=vpcd}};
|
||||
\node (card) [below=.5cm of pcsc-relay)] {\includegraphics[width=0.8cm]{%(wd)s/bilder/smartcard.pdf}};
|
||||
\node (reader2) [below=1cm of pcsc-relay] {\includegraphics[width=1.3cm]{%(wd)s/bilder/my_cardreader.pdf}};
|
||||
\node (card) [below=.5cm of pcsc-relay)] {\includegraphics[width=0.8cm]{$wd/bilder/smartcard.pdf}};
|
||||
\node (reader2) [below=1cm of pcsc-relay] {\includegraphics[width=1.3cm]{$wd/bilder/my_cardreader.pdf}};
|
||||
|
||||
\begin{pgfonlayer}{background}
|
||||
\draw [rfid] (reader.center) -- (phone.west) ;
|
||||
\path[linie] (phone) edge node {\includegraphics[width=1.5cm]{%(wd)s/bilder/simplecloud.pdf}} (pcsc-relay) ;
|
||||
\path[linie] (phone) edge node {\includegraphics[width=1.5cm]{$wd/bilder/simplecloud.pdf}} (pcsc-relay) ;
|
||||
\path[linie] (pcsc-relay) edge (reader2) ;
|
||||
\end{pgfonlayer}
|
||||
|
||||
|
||||
70
docs/_sources/TCardEmulator/README.txt
Normal file
@@ -0,0 +1,70 @@
|
||||
.. highlight:: sh
|
||||
|
||||
.. |HCE| replace:: :abbr:`HCE (host card emulation)`
|
||||
|
||||
.. _tcardemulator:
|
||||
|
||||
################################################################################
|
||||
Tizen Smart Card Emulator
|
||||
################################################################################
|
||||
|
||||
.. sidebar:: Use a Tizen smartwatch as contact-less smart card
|
||||
|
||||
:License:
|
||||
GPL version 3
|
||||
:Tested Platform:
|
||||
Tizen (Samsung Gear S2)
|
||||
|
||||
The Tizen Smart Card Emulator allows the emulation of a contact-less smart card.
|
||||
The emulator uses Tizen's |HCE| to fetch APDUs from a contact-less reader.
|
||||
The headless Tizen service delegates the Command APDUs via Samsung's Accessory
|
||||
Protocol to the :ref:`acardemulator`. The android app processes the commands and
|
||||
sends responses back to the contact-less reader via the Tizen Smart Card
|
||||
Emulator.
|
||||
|
||||
You may also attach your own simulation by using the Samsung Accessory Protocol
|
||||
for communicating with the tizen service.
|
||||
|
||||
.. tikz:: Simulate a contact-less smart card with Android Smart Card Emulator
|
||||
:stringsubst:
|
||||
:libs: arrows, calc, fit, patterns, plotmarks, shapes.geometric, shapes.misc, shapes.symbols, shapes.arrows, shapes.callouts, shapes.multipart, shapes.gates.logic.US, shapes.gates.logic.IEC, er, automata, backgrounds, chains, topaths, trees, petri, mindmap, matrix, calendar, folding, fadings, through, positioning, scopes, decorations.fractals, decorations.shapes, decorations.text, decorations.pathmorphing, decorations.pathreplacing, decorations.footprints, decorations.markings, shadows
|
||||
|
||||
\input{$wd/bilder/tikzstyles.tex}
|
||||
\node (reader) {\includegraphics[width=3cm]{$wd/bilder/my_cardreader.pdf}};
|
||||
\node [below=0cm of reader, kleiner] {Contact-less Reader};
|
||||
\node (gears2) [right=1cm of reader] {\includegraphics[width=3cm]{$wd/bilder/gears2.jpg}};
|
||||
\node (phone) [right=-.5cm of gears2] {\includegraphics[width=3cm]{$wd/bilder/smartphone.pdf}};
|
||||
\node (app) [at=(phone.center)] {\includegraphics[width=2.8cm, height=4.9cm]{$wd/bilder/ACardEmulator.png}};
|
||||
|
||||
\begin{pgfonlayer}{background}
|
||||
\draw [rfid] (reader.center) -- (gears2.west) ;
|
||||
\end{pgfonlayer}
|
||||
|
||||
|
||||
********************
|
||||
Download and Install
|
||||
********************
|
||||
|
||||
To manually compile the app you need to fetch the sources and initialize the
|
||||
submodules::
|
||||
|
||||
git clone https://github.com/frankmorgner/vsmartcard.git
|
||||
|
||||
We use `Tizen SDK`_ to build and deploy the application. Use
|
||||
:menuselection:`Import...` to select :menuselection:`Tizen --> Tizen Project`.
|
||||
In the next dialog choose :file:`Tizen/TCardEmulator`. To be able to build and
|
||||
install the Tizen service on the smartwatch, you need to `install the
|
||||
appropriate SDK extensions and register as app developer`_.
|
||||
|
||||
|
||||
.. include:: questions.txt
|
||||
|
||||
|
||||
********************
|
||||
Notes and References
|
||||
********************
|
||||
|
||||
.. target-notes::
|
||||
|
||||
.. _Tizen SDK: https://developer.tizen.org/development/tools/download
|
||||
.. _`install the appropriate SDK extensions and register as app developer`: https://developer.tizen.org/community/tip-tech/tizen-sdk-install-guide-certificate-extensions-included
|
||||
@@ -24,34 +24,34 @@ also |PACE| can be performed by the emulator.
|
||||
:stringsubst:
|
||||
:libs: arrows, calc, fit, patterns, plotmarks, shapes.geometric, shapes.misc, shapes.symbols, shapes.arrows, shapes.callouts, shapes.multipart, shapes.gates.logic.US, shapes.gates.logic.IEC, er, automata, backgrounds, chains, topaths, trees, petri, mindmap, matrix, calendar, folding, fadings, through, positioning, scopes, decorations.fractals, decorations.shapes, decorations.text, decorations.pathmorphing, decorations.pathreplacing, decorations.footprints, decorations.markings, shadows
|
||||
|
||||
\input{%(wd)s/bilder/tikzstyles.tex}
|
||||
\input{$wd/bilder/tikzstyles.tex}
|
||||
\tikzstyle{bla}=[kleiner, text width=.45\textwidth]
|
||||
|
||||
\node (reader)
|
||||
{\includegraphics[width=1cm]{%(wd)s/bilder/my_cardreader.pdf}};
|
||||
{\includegraphics[width=1cm]{$wd/bilder/my_cardreader.pdf}};
|
||||
\node (readertext) [right=0of reader, bla]
|
||||
{Smartphone provides smart card reader via USB};
|
||||
\node (display) [below=0of reader]
|
||||
{\includegraphics[width=1cm]{%(wd)s/bilder/display.pdf}};
|
||||
{\includegraphics[width=1cm]{$wd/bilder/display.pdf}};
|
||||
\node (displaytext) [right=0of display, bla]
|
||||
{Secure display of service provider and purpose of transaction};
|
||||
\node (keyboard) [below=0of display]
|
||||
{\includegraphics[width=1cm]{%(wd)s/bilder/keyboard.pdf}};
|
||||
{\includegraphics[width=1cm]{$wd/bilder/keyboard.pdf}};
|
||||
\node (keyboardtext) [right=0of keyboard, bla]
|
||||
{Secure PIN Entry};
|
||||
\node (firewall) [below=0of keyboard]
|
||||
{\includegraphics[width=1cm]{%(wd)s/bilder/Firewall.pdf}};
|
||||
{\includegraphics[width=1cm]{$wd/bilder/Firewall.pdf}};
|
||||
\node (firewalltext) [right=0of firewall, bla]
|
||||
{Verification of terminal authentication and sanitiy checks};
|
||||
|
||||
\node (features) [fit=(display) (keyboard) (reader) (firewall)] {};
|
||||
|
||||
\node (moko) [left=0of features.west] {\includegraphics[height=4cm]{%(wd)s/bilder/phone-fic-neo-freerunner.pdf}};
|
||||
\node (moko) [left=0of features.west] {\includegraphics[height=4cm]{$wd/bilder/phone-fic-neo-freerunner.pdf}};
|
||||
|
||||
\node (epa) [left=1.5of moko, yshift=-2cm]
|
||||
{\includegraphics[width=3cm]{%(wd)s/bilder/nPA_VS.png}};
|
||||
{\includegraphics[width=3cm]{$wd/bilder/nPA_VS.png}};
|
||||
\node (pc) [left=1.5of moko, yshift=1.5cm]
|
||||
{\includegraphics[width=3cm]{%(wd)s/bilder/computer-tango.pdf}};
|
||||
{\includegraphics[width=3cm]{$wd/bilder/computer-tango.pdf}};
|
||||
|
||||
\begin{pgfonlayer}{background}
|
||||
|
||||
@@ -116,7 +116,7 @@ tools.
|
||||
:stringsubst:
|
||||
:libs: arrows, calc, fit, patterns, plotmarks, shapes.geometric, shapes.misc, shapes.symbols, shapes.arrows, shapes.callouts, shapes.multipart, shapes.gates.logic.US, shapes.gates.logic.IEC, er, automata, backgrounds, chains, topaths, trees, petri, mindmap, matrix, calendar, folding, fadings, through, positioning, scopes, decorations.fractals, decorations.shapes, decorations.text, decorations.pathmorphing, decorations.pathreplacing, decorations.footprints, decorations.markings, shadows
|
||||
|
||||
\input{%(wd)s/bilder/tikzstyles.tex}
|
||||
\input{$wd/bilder/tikzstyles.tex}
|
||||
\tikzstyle{schicht}=[text width=5cm, align=right]
|
||||
\tikzstyle{fade down}=[path fading=south, color=huslateblue]
|
||||
|
||||
@@ -182,7 +182,7 @@ modern Windows and Unix-like systems by default.
|
||||
:stringsubst:
|
||||
:libs: arrows, calc, fit, patterns, plotmarks, shapes.geometric, shapes.misc, shapes.symbols, shapes.arrows, shapes.callouts, shapes.multipart, shapes.gates.logic.US, shapes.gates.logic.IEC, er, automata, backgrounds, chains, topaths, trees, petri, mindmap, matrix, calendar, folding, fadings, through, positioning, scopes, decorations.fractals, decorations.shapes, decorations.text, decorations.pathmorphing, decorations.pathreplacing, decorations.footprints, decorations.markings, shadows
|
||||
|
||||
\input{%(wd)s/bilder/tikzstyles.tex}
|
||||
\input{$wd/bilder/tikzstyles.tex}
|
||||
\tikzstyle{keks}=[to path={-- ++(.1,0) |- (\tikztotarget)}]
|
||||
|
||||
\tikzstyle{bla}=[shape=rectangle split, rectangle split parts=2,
|
||||
@@ -194,13 +194,13 @@ modern Windows and Unix-like systems by default.
|
||||
|
||||
\node (basis) [below=3of ccid-emulator]
|
||||
{\includegraphics[keepaspectratio, height=2cm,
|
||||
width=2cm]{%(wd)s/bilder/moko/basisleser_plain_klein.png}};
|
||||
width=2cm]{$wd/bilder/moko/basisleser_plain_klein.png}};
|
||||
\node (basisbeschreibung) [below=0cm of basis, kleiner, text width=2cm]
|
||||
{Reiner SCT RFID basis};
|
||||
|
||||
\node (npa) [left=1.5of basis]
|
||||
{\includegraphics[keepaspectratio, height=3cm,
|
||||
width=3cm]{%(wd)s/bilder/nPA_VS.png}};
|
||||
width=3cm]{$wd/bilder/nPA_VS.png}};
|
||||
\node (npabeschreibung) [below=0cm of npa, kleiner]
|
||||
{German identity card};
|
||||
|
||||
@@ -240,14 +240,14 @@ modern Windows and Unix-like systems by default.
|
||||
(funktionenchat) (funktionenpace), box, inner sep=.5cm] {};
|
||||
\node (boxbild) at (box.north west)
|
||||
{\includegraphics[keepaspectratio, height=1.5cm,
|
||||
width=1.5cm]{%(wd)s/bilder/moko/moko_reader.png}};
|
||||
width=1.5cm]{$wd/bilder/moko/moko_reader.png}};
|
||||
\node [right=0cm of boxbild.east, yshift=.3cm]
|
||||
{Openmoko Neo FreeRunner};
|
||||
\end{pgfonlayer}
|
||||
|
||||
\node (a) [above=1of npa]
|
||||
{\includegraphics[keepaspectratio, height=3cm,
|
||||
width=3cm]{%(wd)s/bilder/computer-tango.pdf}};
|
||||
width=3cm]{$wd/bilder/computer-tango.pdf}};
|
||||
|
||||
|
||||
\begin{pgfonlayer}{background}
|
||||
|
||||
@@ -14,7 +14,7 @@ or smart cards themselves.
|
||||
:stringsubst:
|
||||
:libs: arrows, calc, fit, patterns, plotmarks, shapes.geometric, shapes.misc, shapes.symbols, shapes.arrows, shapes.callouts, shapes.multipart, shapes.gates.logic.US, shapes.gates.logic.IEC, er, automata, backgrounds, chains, topaths, trees, petri, mindmap, matrix, calendar, folding, fadings, through, positioning, scopes, decorations.fractals, decorations.shapes, decorations.text, decorations.pathmorphing, decorations.pathreplacing, decorations.footprints, decorations.markings, shadows
|
||||
|
||||
\input{%(wd)s/bilder/tikzstyles.tex}
|
||||
\input{$wd/bilder/tikzstyles.tex}
|
||||
\tikzstyle{bla}=[box, klein, rounded rectangle, inner sep=.3cm]
|
||||
\node (a) {};
|
||||
|
||||
@@ -48,6 +48,7 @@ Currently the following projects are part of |vsmartcard|:
|
||||
virtualsmartcard/README
|
||||
remote-reader/README
|
||||
ACardEmulator/README
|
||||
TCardEmulator/README
|
||||
pcsc-relay/README
|
||||
ccid/README
|
||||
|
||||
|
||||
@@ -37,7 +37,7 @@ relayed to one of the following:
|
||||
:stringsubst:
|
||||
:libs: arrows, calc, fit, patterns, plotmarks, shapes.geometric, shapes.misc, shapes.symbols, shapes.arrows, shapes.callouts, shapes.multipart, shapes.gates.logic.US, shapes.gates.logic.IEC, er, automata, backgrounds, chains, topaths, trees, petri, mindmap, matrix, calendar, folding, fadings, through, positioning, scopes, decorations.fractals, decorations.shapes, decorations.text, decorations.pathmorphing, decorations.pathreplacing, decorations.footprints, decorations.markings, shadows
|
||||
|
||||
\input{%(wd)s/bilder/tikzstyles.tex}
|
||||
\input{$wd/bilder/tikzstyles.tex}
|
||||
\node (pcsc-relay) {\texttt{pcsc-relay}};
|
||||
|
||||
\node [kleiner, right=2cm of pcsc-relay, yshift=.9cm]
|
||||
@@ -87,7 +87,7 @@ to completely emulate an ISO/IEC 14443 smart card.
|
||||
:stringsubst:
|
||||
:libs: arrows, calc, fit, patterns, plotmarks, shapes.geometric, shapes.misc, shapes.symbols, shapes.arrows, shapes.callouts, shapes.multipart, shapes.gates.logic.US, shapes.gates.logic.IEC, er, automata, backgrounds, chains, topaths, trees, petri, mindmap, matrix, calendar, folding, fadings, through, positioning, scopes, decorations.fractals, decorations.shapes, decorations.text, decorations.pathmorphing, decorations.pathreplacing, decorations.footprints, decorations.markings, shadows
|
||||
|
||||
\input{%(wd)s/bilder/tikzstyles.tex}
|
||||
\input{$wd/bilder/tikzstyles.tex}
|
||||
\tikzstyle{bla}=[shape=rectangle split, rectangle split parts=2,
|
||||
every text node part/.style={align=center, klein}, text width=7cm,
|
||||
every second node part/.style={kleiner}, inner sep=0pt]
|
||||
@@ -96,7 +96,7 @@ to completely emulate an ISO/IEC 14443 smart card.
|
||||
|
||||
\node (touchatag)
|
||||
{\includegraphics[keepaspectratio, height=2cm,
|
||||
width=2cm]{%(wd)s/bilder/touchatag.png}};
|
||||
width=2cm]{$wd/bilder/touchatag.png}};
|
||||
\node (touchatagbeschreibung) [below=0cm of touchatag, kleiner]
|
||||
{touchatag};
|
||||
|
||||
@@ -143,14 +143,14 @@ to completely emulate an ISO/IEC 14443 smart card.
|
||||
(funktionenpace), box, inner sep=.5cm] {};
|
||||
\node (boxbild) at (box.north west)
|
||||
{\includegraphics[keepaspectratio, height=1.5cm,
|
||||
width=1.5cm]{%(wd)s/bilder/moko/moko_reader.png}};
|
||||
width=1.5cm]{$wd/bilder/moko/moko_reader.png}};
|
||||
\node [right=0cm of boxbild.east, yshift=.3cm]
|
||||
{Openmoko Neo FreeRunner};
|
||||
\end{pgfonlayer}
|
||||
|
||||
\node (a) [left=1.5of box]
|
||||
{\includegraphics[keepaspectratio, height=4cm,
|
||||
width=4cm]{%(wd)s/bilder/ivak_kiosk-terminal.pdf}};
|
||||
width=4cm]{$wd/bilder/ivak_kiosk-terminal.pdf}};
|
||||
\node (e) [below=0cm of a, text width=2.5cm, align=center]
|
||||
{(Public) Terminal};
|
||||
|
||||
|
||||
@@ -25,20 +25,20 @@ contact-less card is detected.
|
||||
:stringsubst:
|
||||
:libs: arrows, calc, fit, patterns, plotmarks, shapes.geometric, shapes.misc, shapes.symbols, shapes.arrows, shapes.callouts, shapes.multipart, shapes.gates.logic.US, shapes.gates.logic.IEC, er, automata, backgrounds, chains, topaths, trees, petri, mindmap, matrix, calendar, folding, fadings, through, positioning, scopes, decorations.fractals, decorations.shapes, decorations.text, decorations.pathmorphing, decorations.pathreplacing, decorations.footprints, decorations.markings, shadows
|
||||
|
||||
\input{%(wd)s/bilder/tikzstyles.tex}
|
||||
\input{$wd/bilder/tikzstyles.tex}
|
||||
\node (pcsc) [klein, aktivbox, inner xsep=.75cm, align=center] {PC/SC\\Framework};
|
||||
\node (sca) [aktivbox, klein, left=.75cm of pcsc, align=center] {Smart Card\\Application};
|
||||
\node (vpcd) [box, at=(pcsc.east), kleiner] {\texttt{vpcd}};
|
||||
\node (phone) [right=2cm of vpcd] {\includegraphics[width=3cm]{%(wd)s/bilder/smartphone.pdf}};
|
||||
\node (app) [at=(phone.center)] {\includegraphics[width=2.8cm, height=4.9cm]{%(wd)s/bilder/remote-reader.png}};
|
||||
\node (card) [right=0cm of phone, rotate=45] {\includegraphics[width=2cm]{%(wd)s/bilder/smartcard.pdf}};
|
||||
\node (phone) [right=2cm of vpcd] {\includegraphics[width=3cm]{$wd/bilder/smartphone.pdf}};
|
||||
\node (app) [at=(phone.center)] {\includegraphics[width=2.8cm, height=4.9cm]{$wd/bilder/remote-reader.png}};
|
||||
\node (card) [right=0cm of phone, rotate=45] {\includegraphics[width=2cm]{$wd/bilder/smartcard.pdf}};
|
||||
|
||||
\begin{pgfonlayer}{background}
|
||||
\node (box) [box, fit=(pcsc) (sca) (vpcd), inner ysep=1.5em] {};
|
||||
\node [at=(box.north west)] {\includegraphics[width=1cm]{%(wd)s/bilder/computer-tango.pdf}};
|
||||
\node [at=(box.north west)] {\includegraphics[width=1cm]{$wd/bilder/computer-tango.pdf}};
|
||||
\path[linie]
|
||||
(sca) edge (pcsc)
|
||||
(vpcd) edge node {\includegraphics[width=1.5cm]{%(wd)s/bilder/simplecloud.pdf}} (app)
|
||||
(vpcd) edge node {\includegraphics[width=1.5cm]{$wd/bilder/simplecloud.pdf}} (app)
|
||||
;
|
||||
\draw [rfid] (phone.center) -- (card.center) ;
|
||||
\end{pgfonlayer}
|
||||
@@ -59,23 +59,23 @@ other computer, the :ref:`vicc` in relay mode can be used:
|
||||
:stringsubst:
|
||||
:libs: arrows, calc, fit, patterns, plotmarks, shapes.geometric, shapes.misc, shapes.symbols, shapes.arrows, shapes.callouts, shapes.multipart, shapes.gates.logic.US, shapes.gates.logic.IEC, er, automata, backgrounds, chains, topaths, trees, petri, mindmap, matrix, calendar, folding, fadings, through, positioning, scopes, decorations.fractals, decorations.shapes, decorations.text, decorations.pathmorphing, decorations.pathreplacing, decorations.footprints, decorations.markings, shadows
|
||||
|
||||
\input{%(wd)s/bilder/tikzstyles.tex}
|
||||
\input{$wd/bilder/tikzstyles.tex}
|
||||
\node (pcsc) [klein, aktivbox, inner xsep=.75cm, align=center] {PC/SC\\Framework};
|
||||
\node (sca) [aktivbox, klein, left=.75cm of pcsc, align=center] {Smart Card\\Application};
|
||||
\node (vpcd) [box, at=(pcsc.east), kleiner] {\texttt{vpcd}};
|
||||
\node (pcsc2) [klein, aktivbox, inner xsep=.75cm, align=center, below=2.5cm of vpcd] {PC/SC\\Framework};
|
||||
\node (vicc) [aktivbox, left=1cm of pcsc2, kleiner] {\texttt{vicc -t relay}};
|
||||
\node (reader) [right=1cm of pcsc2] {\includegraphics[width=2cm]{%(wd)s/bilder/my_cardreader.pdf}};
|
||||
\node (card) [at=(reader.east), rotate=45] {\includegraphics[width=2cm]{%(wd)s/bilder/smartcard.pdf}};
|
||||
\node (reader) [right=1cm of pcsc2] {\includegraphics[width=2cm]{$wd/bilder/my_cardreader.pdf}};
|
||||
\node (card) [at=(reader.east), rotate=45] {\includegraphics[width=2cm]{$wd/bilder/smartcard.pdf}};
|
||||
|
||||
\begin{pgfonlayer}{background}
|
||||
\node (box) [box, fit=(pcsc) (sca) (vpcd), inner ysep=1.5em] {};
|
||||
\node (box2) [box, fit=(vicc) (pcsc2), inner ysep=1.5em] {};
|
||||
\node [at=(box.north west)] {\includegraphics[width=1cm]{%(wd)s/bilder/computer-tango.pdf}};
|
||||
\node [at=(box2.north west)] {\includegraphics[width=1cm]{%(wd)s/bilder/computer-tango.pdf}};
|
||||
\node [at=(box.north west)] {\includegraphics[width=1cm]{$wd/bilder/computer-tango.pdf}};
|
||||
\node [at=(box2.north west)] {\includegraphics[width=1cm]{$wd/bilder/computer-tango.pdf}};
|
||||
\path[linie]
|
||||
(sca) edge (pcsc)
|
||||
(vpcd) edge [out=south, in=north] node {\includegraphics[width=1.5cm]{%(wd)s/bilder/simplecloud.pdf}} (vicc)
|
||||
(vpcd) edge [out=south, in=north] node {\includegraphics[width=1.5cm]{$wd/bilder/simplecloud.pdf}} (vicc)
|
||||
(vicc) edge (pcsc2)
|
||||
(pcsc2) edge [usb] (reader.center)
|
||||
;
|
||||
|
||||
@@ -49,7 +49,7 @@ The file :file:`utils.py` was taken from Henryk Plötz's cyberflex-shell_.
|
||||
:stringsubst:
|
||||
:libs: arrows, calc, fit, patterns, plotmarks, shapes.geometric, shapes.misc, shapes.symbols, shapes.arrows, shapes.callouts, shapes.multipart, shapes.gates.logic.US, shapes.gates.logic.IEC, er, automata, backgrounds, chains, topaths, trees, petri, mindmap, matrix, calendar, folding, fadings, through, positioning, scopes, decorations.fractals, decorations.shapes, decorations.text, decorations.pathmorphing, decorations.pathreplacing, decorations.footprints, decorations.markings, shadows
|
||||
|
||||
\input{%(wd)s/bilder/tikzstyles.tex}
|
||||
\input{$wd/bilder/tikzstyles.tex}
|
||||
\node (pcsclite)
|
||||
[klein, aktivbox, inner xsep=.7cm, text width=3cm]
|
||||
{PC/SC Framework\\\
|
||||
@@ -62,7 +62,7 @@ The file :file:`utils.py` was taken from Henryk Plötz's cyberflex-shell_.
|
||||
\begin{pgfonlayer}{background}
|
||||
\path[linie]
|
||||
(sca) edge (pcsclite)
|
||||
(vpcd) edge node {\includegraphics[width=1.2cm]{%(wd)s/bilder/simplecloud.pdf}} (vicc)
|
||||
(vpcd) edge node {\includegraphics[width=1.2cm]{$wd/bilder/simplecloud.pdf}} (vicc)
|
||||
;
|
||||
\end{pgfonlayer}
|
||||
|
||||
@@ -76,7 +76,7 @@ The file :file:`utils.py` was taken from Henryk Plötz's cyberflex-shell_.
|
||||
:stringsubst:
|
||||
:libs: arrows, calc, fit, patterns, plotmarks, shapes.geometric, shapes.misc, shapes.symbols, shapes.arrows, shapes.callouts, shapes.multipart, shapes.gates.logic.US, shapes.gates.logic.IEC, er, automata, backgrounds, chains, topaths, trees, petri, mindmap, matrix, calendar, folding, fadings, through, positioning, scopes, decorations.fractals, decorations.shapes, decorations.text, decorations.pathmorphing, decorations.pathreplacing, decorations.footprints, decorations.markings, shadows
|
||||
|
||||
\input{%(wd)s/bilder/tikzstyles.tex}
|
||||
\input{$wd/bilder/tikzstyles.tex}
|
||||
\node (pcsclite)
|
||||
[klein, box, text width=4cm]
|
||||
{Virtual Smart Card's\\
|
||||
@@ -88,7 +88,7 @@ The file :file:`utils.py` was taken from Henryk Plötz's cyberflex-shell_.
|
||||
\begin{pgfonlayer}{background}
|
||||
\path[linie]
|
||||
(sca) edge (pcsclite)
|
||||
(pcsclite) edge node {\includegraphics[width=1.5cm]{%(wd)s/bilder/simplecloud.pdf}} (vicc)
|
||||
(pcsclite) edge node {\includegraphics[width=1.5cm]{$wd/bilder/simplecloud.pdf}} (vicc)
|
||||
;
|
||||
\end{pgfonlayer}
|
||||
|
||||
|
||||
74
docs/_static/basic.css
vendored
@@ -4,7 +4,7 @@
|
||||
*
|
||||
* Sphinx stylesheet -- basic theme.
|
||||
*
|
||||
* :copyright: Copyright 2007-2015 by the Sphinx team, see AUTHORS.
|
||||
* :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
|
||||
* :license: BSD, see LICENSE for details.
|
||||
*
|
||||
*/
|
||||
@@ -197,10 +197,7 @@ h3:hover > a.headerlink,
|
||||
h4:hover > a.headerlink,
|
||||
h5:hover > a.headerlink,
|
||||
h6:hover > a.headerlink,
|
||||
dt:hover > a.headerlink,
|
||||
caption:hover > a.headerlink,
|
||||
p.caption:hover > a.headerlink,
|
||||
div.code-block-caption:hover > a.headerlink {
|
||||
dt:hover > a.headerlink {
|
||||
visibility: visible;
|
||||
}
|
||||
|
||||
@@ -317,13 +314,6 @@ table.docutils {
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
table caption span.caption-number {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
table caption span.caption-text {
|
||||
}
|
||||
|
||||
table.docutils td, table.docutils th {
|
||||
padding: 1px 8px 1px 5px;
|
||||
border-top: 0;
|
||||
@@ -354,25 +344,6 @@ table.citation td {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
/* -- figures --------------------------------------------------------------- */
|
||||
|
||||
div.figure {
|
||||
margin: 0.5em;
|
||||
padding: 0.5em;
|
||||
}
|
||||
|
||||
div.figure p.caption {
|
||||
padding: 0.3em;
|
||||
}
|
||||
|
||||
div.figure p.caption span.caption-number {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
div.figure p.caption span.caption-text {
|
||||
}
|
||||
|
||||
|
||||
/* -- other body styles ----------------------------------------------------- */
|
||||
|
||||
ol.arabic {
|
||||
@@ -435,10 +406,6 @@ dl.glossary dt {
|
||||
font-size: 1.3em;
|
||||
}
|
||||
|
||||
.sig-paren {
|
||||
font-size: larger;
|
||||
}
|
||||
|
||||
.versionmodified {
|
||||
font-style: italic;
|
||||
}
|
||||
@@ -504,51 +471,22 @@ table.highlighttable td {
|
||||
padding: 0 0.5em 0 0.5em;
|
||||
}
|
||||
|
||||
div.code-block-caption {
|
||||
padding: 2px 5px;
|
||||
font-size: small;
|
||||
}
|
||||
|
||||
div.code-block-caption code {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
div.code-block-caption + div > div.highlight > pre {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
div.code-block-caption span.caption-number {
|
||||
padding: 0.1em 0.3em;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
div.code-block-caption span.caption-text {
|
||||
}
|
||||
|
||||
div.literal-block-wrapper {
|
||||
padding: 1em 1em 0;
|
||||
}
|
||||
|
||||
div.literal-block-wrapper div.highlight {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
code.descname {
|
||||
tt.descname {
|
||||
background-color: transparent;
|
||||
font-weight: bold;
|
||||
font-size: 1.2em;
|
||||
}
|
||||
|
||||
code.descclassname {
|
||||
tt.descclassname {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
code.xref, a code {
|
||||
tt.xref, a tt {
|
||||
background-color: transparent;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
h1 code, h2 code, h3 code, h4 code, h5 code, h6 code {
|
||||
h1 tt, h2 tt, h3 tt, h4 tt, h5 tt, h6 tt {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
|
||||
29
docs/_static/doctools.js
vendored
@@ -4,7 +4,7 @@
|
||||
*
|
||||
* Sphinx JavaScript utilities for all documentation.
|
||||
*
|
||||
* :copyright: Copyright 2007-2015 by the Sphinx team, see AUTHORS.
|
||||
* :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
|
||||
* :license: BSD, see LICENSE for details.
|
||||
*
|
||||
*/
|
||||
@@ -91,30 +91,6 @@ jQuery.fn.highlightText = function(text, className) {
|
||||
});
|
||||
};
|
||||
|
||||
/*
|
||||
* backward compatibility for jQuery.browser
|
||||
* This will be supported until firefox bug is fixed.
|
||||
*/
|
||||
if (!jQuery.browser) {
|
||||
jQuery.uaMatch = function(ua) {
|
||||
ua = ua.toLowerCase();
|
||||
|
||||
var match = /(chrome)[ \/]([\w.]+)/.exec(ua) ||
|
||||
/(webkit)[ \/]([\w.]+)/.exec(ua) ||
|
||||
/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) ||
|
||||
/(msie) ([\w.]+)/.exec(ua) ||
|
||||
ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) ||
|
||||
[];
|
||||
|
||||
return {
|
||||
browser: match[ 1 ] || "",
|
||||
version: match[ 2 ] || "0"
|
||||
};
|
||||
};
|
||||
jQuery.browser = {};
|
||||
jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Small JavaScript module for the documentation.
|
||||
*/
|
||||
@@ -176,10 +152,9 @@ var Documentation = {
|
||||
|
||||
/**
|
||||
* workaround a firefox stupidity
|
||||
* see: https://bugzilla.mozilla.org/show_bug.cgi?id=645075
|
||||
*/
|
||||
fixFirefoxAnchorBug : function() {
|
||||
if (document.location.hash)
|
||||
if (document.location.hash && $.browser.mozilla)
|
||||
window.setTimeout(function() {
|
||||
document.location.href += '';
|
||||
}, 10);
|
||||
|
||||
BIN
docs/_static/down-pressed.png
vendored
|
Before Width: | Height: | Size: 347 B After Width: | Height: | Size: 368 B |
BIN
docs/_static/down.png
vendored
|
Before Width: | Height: | Size: 347 B After Width: | Height: | Size: 363 B |
BIN
docs/_static/file.png
vendored
|
Before Width: | Height: | Size: 358 B After Width: | Height: | Size: 392 B |
10308
docs/_static/jquery-1.11.1.js
vendored
9408
docs/_static/jquery.js
vendored
BIN
docs/_static/minus.png
vendored
|
Before Width: | Height: | Size: 173 B After Width: | Height: | Size: 199 B |
BIN
docs/_static/plus.png
vendored
|
Before Width: | Height: | Size: 173 B After Width: | Height: | Size: 199 B |
49
docs/_static/searchtools.js
vendored
@@ -4,13 +4,12 @@
|
||||
*
|
||||
* Sphinx JavaScript utilties for the full-text search.
|
||||
*
|
||||
* :copyright: Copyright 2007-2015 by the Sphinx team, see AUTHORS.
|
||||
* :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
|
||||
* :license: BSD, see LICENSE for details.
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
/* Non-minified version JS is _stemmer.js if file is provided */
|
||||
/**
|
||||
* Porter Stemmer
|
||||
*/
|
||||
@@ -374,7 +373,8 @@ var Search = {
|
||||
}
|
||||
|
||||
// lookup as search terms in fulltext
|
||||
results = results.concat(this.performTermsSearch(searchterms, excluded, terms, titleterms));
|
||||
results = results.concat(this.performTermsSearch(searchterms, excluded, terms, Scorer.term))
|
||||
.concat(this.performTermsSearch(searchterms, excluded, titleterms, Scorer.title));
|
||||
|
||||
// let the scorer override scores with a custom scoring function
|
||||
if (Scorer.score) {
|
||||
@@ -439,7 +439,7 @@ var Search = {
|
||||
dataType: "text",
|
||||
complete: function(jqxhr, textstatus) {
|
||||
var data = jqxhr.responseText;
|
||||
if (data !== '' && data !== undefined) {
|
||||
if (data !== '') {
|
||||
listItem.append(Search.makeSearchSummary(data, searchterms, hlterms));
|
||||
}
|
||||
Search.output.append(listItem);
|
||||
@@ -538,47 +538,23 @@ var Search = {
|
||||
/**
|
||||
* search for full-text terms in the index
|
||||
*/
|
||||
performTermsSearch : function(searchterms, excluded, terms, titleterms) {
|
||||
performTermsSearch : function(searchterms, excluded, terms, score) {
|
||||
var filenames = this._index.filenames;
|
||||
var titles = this._index.titles;
|
||||
|
||||
var i, j, file;
|
||||
var i, j, file, files;
|
||||
var fileMap = {};
|
||||
var scoreMap = {};
|
||||
var results = [];
|
||||
|
||||
// perform the search on the required terms
|
||||
for (i = 0; i < searchterms.length; i++) {
|
||||
var word = searchterms[i];
|
||||
var files = [];
|
||||
var _o = [
|
||||
{files: terms[word], score: Scorer.term},
|
||||
{files: titleterms[word], score: Scorer.title}
|
||||
];
|
||||
|
||||
// no match but word was a required one
|
||||
if ($u.every(_o, function(o){return o.files === undefined;})) {
|
||||
if ((files = terms[word]) === undefined)
|
||||
break;
|
||||
if (files.length === undefined) {
|
||||
files = [files];
|
||||
}
|
||||
// found search word in contents
|
||||
$u.each(_o, function(o) {
|
||||
var _files = o.files;
|
||||
if (_files === undefined)
|
||||
return
|
||||
|
||||
if (_files.length === undefined)
|
||||
_files = [_files];
|
||||
files = files.concat(_files);
|
||||
|
||||
// set score for the word in each file to Scorer.term
|
||||
for (j = 0; j < _files.length; j++) {
|
||||
file = _files[j];
|
||||
if (!(file in scoreMap))
|
||||
scoreMap[file] = {}
|
||||
scoreMap[file][word] = o.score;
|
||||
}
|
||||
});
|
||||
|
||||
// create the mapping
|
||||
for (j = 0; j < files.length; j++) {
|
||||
file = files[j];
|
||||
@@ -600,9 +576,7 @@ var Search = {
|
||||
// ensure that none of the excluded terms is in the search result
|
||||
for (i = 0; i < excluded.length; i++) {
|
||||
if (terms[excluded[i]] == file ||
|
||||
titleterms[excluded[i]] == file ||
|
||||
$u.contains(terms[excluded[i]] || [], file) ||
|
||||
$u.contains(titleterms[excluded[i]] || [], file)) {
|
||||
$u.contains(terms[excluded[i]] || [], file)) {
|
||||
valid = false;
|
||||
break;
|
||||
}
|
||||
@@ -610,9 +584,6 @@ var Search = {
|
||||
|
||||
// if we have still a valid result we can add it to the result list
|
||||
if (valid) {
|
||||
// select one (max) score for the file.
|
||||
// for better ranking, we should calculate ranking by using words statistics like basic tf-idf...
|
||||
var score = $u.max($u.map(fileMap[file], function(w){return scoreMap[file][w]}));
|
||||
results.push([filenames[file], titles[file], '', null, score]);
|
||||
}
|
||||
}
|
||||
|
||||
999
docs/_static/underscore-1.3.1.js
vendored
@@ -1,999 +0,0 @@
|
||||
// Underscore.js 1.3.1
|
||||
// (c) 2009-2012 Jeremy Ashkenas, DocumentCloud Inc.
|
||||
// Underscore is freely distributable under the MIT license.
|
||||
// Portions of Underscore are inspired or borrowed from Prototype,
|
||||
// Oliver Steele's Functional, and John Resig's Micro-Templating.
|
||||
// For all details and documentation:
|
||||
// http://documentcloud.github.com/underscore
|
||||
|
||||
(function() {
|
||||
|
||||
// Baseline setup
|
||||
// --------------
|
||||
|
||||
// Establish the root object, `window` in the browser, or `global` on the server.
|
||||
var root = this;
|
||||
|
||||
// Save the previous value of the `_` variable.
|
||||
var previousUnderscore = root._;
|
||||
|
||||
// Establish the object that gets returned to break out of a loop iteration.
|
||||
var breaker = {};
|
||||
|
||||
// Save bytes in the minified (but not gzipped) version:
|
||||
var ArrayProto = Array.prototype, ObjProto = Object.prototype, FuncProto = Function.prototype;
|
||||
|
||||
// Create quick reference variables for speed access to core prototypes.
|
||||
var slice = ArrayProto.slice,
|
||||
unshift = ArrayProto.unshift,
|
||||
toString = ObjProto.toString,
|
||||
hasOwnProperty = ObjProto.hasOwnProperty;
|
||||
|
||||
// All **ECMAScript 5** native function implementations that we hope to use
|
||||
// are declared here.
|
||||
var
|
||||
nativeForEach = ArrayProto.forEach,
|
||||
nativeMap = ArrayProto.map,
|
||||
nativeReduce = ArrayProto.reduce,
|
||||
nativeReduceRight = ArrayProto.reduceRight,
|
||||
nativeFilter = ArrayProto.filter,
|
||||
nativeEvery = ArrayProto.every,
|
||||
nativeSome = ArrayProto.some,
|
||||
nativeIndexOf = ArrayProto.indexOf,
|
||||
nativeLastIndexOf = ArrayProto.lastIndexOf,
|
||||
nativeIsArray = Array.isArray,
|
||||
nativeKeys = Object.keys,
|
||||
nativeBind = FuncProto.bind;
|
||||
|
||||
// Create a safe reference to the Underscore object for use below.
|
||||
var _ = function(obj) { return new wrapper(obj); };
|
||||
|
||||
// Export the Underscore object for **Node.js**, with
|
||||
// backwards-compatibility for the old `require()` API. If we're in
|
||||
// the browser, add `_` as a global object via a string identifier,
|
||||
// for Closure Compiler "advanced" mode.
|
||||
if (typeof exports !== 'undefined') {
|
||||
if (typeof module !== 'undefined' && module.exports) {
|
||||
exports = module.exports = _;
|
||||
}
|
||||
exports._ = _;
|
||||
} else {
|
||||
root['_'] = _;
|
||||
}
|
||||
|
||||
// Current version.
|
||||
_.VERSION = '1.3.1';
|
||||
|
||||
// Collection Functions
|
||||
// --------------------
|
||||
|
||||
// The cornerstone, an `each` implementation, aka `forEach`.
|
||||
// Handles objects with the built-in `forEach`, arrays, and raw objects.
|
||||
// Delegates to **ECMAScript 5**'s native `forEach` if available.
|
||||
var each = _.each = _.forEach = function(obj, iterator, context) {
|
||||
if (obj == null) return;
|
||||
if (nativeForEach && obj.forEach === nativeForEach) {
|
||||
obj.forEach(iterator, context);
|
||||
} else if (obj.length === +obj.length) {
|
||||
for (var i = 0, l = obj.length; i < l; i++) {
|
||||
if (i in obj && iterator.call(context, obj[i], i, obj) === breaker) return;
|
||||
}
|
||||
} else {
|
||||
for (var key in obj) {
|
||||
if (_.has(obj, key)) {
|
||||
if (iterator.call(context, obj[key], key, obj) === breaker) return;
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
// Return the results of applying the iterator to each element.
|
||||
// Delegates to **ECMAScript 5**'s native `map` if available.
|
||||
_.map = _.collect = function(obj, iterator, context) {
|
||||
var results = [];
|
||||
if (obj == null) return results;
|
||||
if (nativeMap && obj.map === nativeMap) return obj.map(iterator, context);
|
||||
each(obj, function(value, index, list) {
|
||||
results[results.length] = iterator.call(context, value, index, list);
|
||||
});
|
||||
if (obj.length === +obj.length) results.length = obj.length;
|
||||
return results;
|
||||
};
|
||||
|
||||
// **Reduce** builds up a single result from a list of values, aka `inject`,
|
||||
// or `foldl`. Delegates to **ECMAScript 5**'s native `reduce` if available.
|
||||
_.reduce = _.foldl = _.inject = function(obj, iterator, memo, context) {
|
||||
var initial = arguments.length > 2;
|
||||
if (obj == null) obj = [];
|
||||
if (nativeReduce && obj.reduce === nativeReduce) {
|
||||
if (context) iterator = _.bind(iterator, context);
|
||||
return initial ? obj.reduce(iterator, memo) : obj.reduce(iterator);
|
||||
}
|
||||
each(obj, function(value, index, list) {
|
||||
if (!initial) {
|
||||
memo = value;
|
||||
initial = true;
|
||||
} else {
|
||||
memo = iterator.call(context, memo, value, index, list);
|
||||
}
|
||||
});
|
||||
if (!initial) throw new TypeError('Reduce of empty array with no initial value');
|
||||
return memo;
|
||||
};
|
||||
|
||||
// The right-associative version of reduce, also known as `foldr`.
|
||||
// Delegates to **ECMAScript 5**'s native `reduceRight` if available.
|
||||
_.reduceRight = _.foldr = function(obj, iterator, memo, context) {
|
||||
var initial = arguments.length > 2;
|
||||
if (obj == null) obj = [];
|
||||
if (nativeReduceRight && obj.reduceRight === nativeReduceRight) {
|
||||
if (context) iterator = _.bind(iterator, context);
|
||||
return initial ? obj.reduceRight(iterator, memo) : obj.reduceRight(iterator);
|
||||
}
|
||||
var reversed = _.toArray(obj).reverse();
|
||||
if (context && !initial) iterator = _.bind(iterator, context);
|
||||
return initial ? _.reduce(reversed, iterator, memo, context) : _.reduce(reversed, iterator);
|
||||
};
|
||||
|
||||
// Return the first value which passes a truth test. Aliased as `detect`.
|
||||
_.find = _.detect = function(obj, iterator, context) {
|
||||
var result;
|
||||
any(obj, function(value, index, list) {
|
||||
if (iterator.call(context, value, index, list)) {
|
||||
result = value;
|
||||
return true;
|
||||
}
|
||||
});
|
||||
return result;
|
||||
};
|
||||
|
||||
// Return all the elements that pass a truth test.
|
||||
// Delegates to **ECMAScript 5**'s native `filter` if available.
|
||||
// Aliased as `select`.
|
||||
_.filter = _.select = function(obj, iterator, context) {
|
||||
var results = [];
|
||||
if (obj == null) return results;
|
||||
if (nativeFilter && obj.filter === nativeFilter) return obj.filter(iterator, context);
|
||||
each(obj, function(value, index, list) {
|
||||
if (iterator.call(context, value, index, list)) results[results.length] = value;
|
||||
});
|
||||
return results;
|
||||
};
|
||||
|
||||
// Return all the elements for which a truth test fails.
|
||||
_.reject = function(obj, iterator, context) {
|
||||
var results = [];
|
||||
if (obj == null) return results;
|
||||
each(obj, function(value, index, list) {
|
||||
if (!iterator.call(context, value, index, list)) results[results.length] = value;
|
||||
});
|
||||
return results;
|
||||
};
|
||||
|
||||
// Determine whether all of the elements match a truth test.
|
||||
// Delegates to **ECMAScript 5**'s native `every` if available.
|
||||
// Aliased as `all`.
|
||||
_.every = _.all = function(obj, iterator, context) {
|
||||
var result = true;
|
||||
if (obj == null) return result;
|
||||
if (nativeEvery && obj.every === nativeEvery) return obj.every(iterator, context);
|
||||
each(obj, function(value, index, list) {
|
||||
if (!(result = result && iterator.call(context, value, index, list))) return breaker;
|
||||
});
|
||||
return result;
|
||||
};
|
||||
|
||||
// Determine if at least one element in the object matches a truth test.
|
||||
// Delegates to **ECMAScript 5**'s native `some` if available.
|
||||
// Aliased as `any`.
|
||||
var any = _.some = _.any = function(obj, iterator, context) {
|
||||
iterator || (iterator = _.identity);
|
||||
var result = false;
|
||||
if (obj == null) return result;
|
||||
if (nativeSome && obj.some === nativeSome) return obj.some(iterator, context);
|
||||
each(obj, function(value, index, list) {
|
||||
if (result || (result = iterator.call(context, value, index, list))) return breaker;
|
||||
});
|
||||
return !!result;
|
||||
};
|
||||
|
||||
// Determine if a given value is included in the array or object using `===`.
|
||||
// Aliased as `contains`.
|
||||
_.include = _.contains = function(obj, target) {
|
||||
var found = false;
|
||||
if (obj == null) return found;
|
||||
if (nativeIndexOf && obj.indexOf === nativeIndexOf) return obj.indexOf(target) != -1;
|
||||
found = any(obj, function(value) {
|
||||
return value === target;
|
||||
});
|
||||
return found;
|
||||
};
|
||||
|
||||
// Invoke a method (with arguments) on every item in a collection.
|
||||
_.invoke = function(obj, method) {
|
||||
var args = slice.call(arguments, 2);
|
||||
return _.map(obj, function(value) {
|
||||
return (_.isFunction(method) ? method || value : value[method]).apply(value, args);
|
||||
});
|
||||
};
|
||||
|
||||
// Convenience version of a common use case of `map`: fetching a property.
|
||||
_.pluck = function(obj, key) {
|
||||
return _.map(obj, function(value){ return value[key]; });
|
||||
};
|
||||
|
||||
// Return the maximum element or (element-based computation).
|
||||
_.max = function(obj, iterator, context) {
|
||||
if (!iterator && _.isArray(obj)) return Math.max.apply(Math, obj);
|
||||
if (!iterator && _.isEmpty(obj)) return -Infinity;
|
||||
var result = {computed : -Infinity};
|
||||
each(obj, function(value, index, list) {
|
||||
var computed = iterator ? iterator.call(context, value, index, list) : value;
|
||||
computed >= result.computed && (result = {value : value, computed : computed});
|
||||
});
|
||||
return result.value;
|
||||
};
|
||||
|
||||
// Return the minimum element (or element-based computation).
|
||||
_.min = function(obj, iterator, context) {
|
||||
if (!iterator && _.isArray(obj)) return Math.min.apply(Math, obj);
|
||||
if (!iterator && _.isEmpty(obj)) return Infinity;
|
||||
var result = {computed : Infinity};
|
||||
each(obj, function(value, index, list) {
|
||||
var computed = iterator ? iterator.call(context, value, index, list) : value;
|
||||
computed < result.computed && (result = {value : value, computed : computed});
|
||||
});
|
||||
return result.value;
|
||||
};
|
||||
|
||||
// Shuffle an array.
|
||||
_.shuffle = function(obj) {
|
||||
var shuffled = [], rand;
|
||||
each(obj, function(value, index, list) {
|
||||
if (index == 0) {
|
||||
shuffled[0] = value;
|
||||
} else {
|
||||
rand = Math.floor(Math.random() * (index + 1));
|
||||
shuffled[index] = shuffled[rand];
|
||||
shuffled[rand] = value;
|
||||
}
|
||||
});
|
||||
return shuffled;
|
||||
};
|
||||
|
||||
// Sort the object's values by a criterion produced by an iterator.
|
||||
_.sortBy = function(obj, iterator, context) {
|
||||
return _.pluck(_.map(obj, function(value, index, list) {
|
||||
return {
|
||||
value : value,
|
||||
criteria : iterator.call(context, value, index, list)
|
||||
};
|
||||
}).sort(function(left, right) {
|
||||
var a = left.criteria, b = right.criteria;
|
||||
return a < b ? -1 : a > b ? 1 : 0;
|
||||
}), 'value');
|
||||
};
|
||||
|
||||
// Groups the object's values by a criterion. Pass either a string attribute
|
||||
// to group by, or a function that returns the criterion.
|
||||
_.groupBy = function(obj, val) {
|
||||
var result = {};
|
||||
var iterator = _.isFunction(val) ? val : function(obj) { return obj[val]; };
|
||||
each(obj, function(value, index) {
|
||||
var key = iterator(value, index);
|
||||
(result[key] || (result[key] = [])).push(value);
|
||||
});
|
||||
return result;
|
||||
};
|
||||
|
||||
// Use a comparator function to figure out at what index an object should
|
||||
// be inserted so as to maintain order. Uses binary search.
|
||||
_.sortedIndex = function(array, obj, iterator) {
|
||||
iterator || (iterator = _.identity);
|
||||
var low = 0, high = array.length;
|
||||
while (low < high) {
|
||||
var mid = (low + high) >> 1;
|
||||
iterator(array[mid]) < iterator(obj) ? low = mid + 1 : high = mid;
|
||||
}
|
||||
return low;
|
||||
};
|
||||
|
||||
// Safely convert anything iterable into a real, live array.
|
||||
_.toArray = function(iterable) {
|
||||
if (!iterable) return [];
|
||||
if (iterable.toArray) return iterable.toArray();
|
||||
if (_.isArray(iterable)) return slice.call(iterable);
|
||||
if (_.isArguments(iterable)) return slice.call(iterable);
|
||||
return _.values(iterable);
|
||||
};
|
||||
|
||||
// Return the number of elements in an object.
|
||||
_.size = function(obj) {
|
||||
return _.toArray(obj).length;
|
||||
};
|
||||
|
||||
// Array Functions
|
||||
// ---------------
|
||||
|
||||
// Get the first element of an array. Passing **n** will return the first N
|
||||
// values in the array. Aliased as `head`. The **guard** check allows it to work
|
||||
// with `_.map`.
|
||||
_.first = _.head = function(array, n, guard) {
|
||||
return (n != null) && !guard ? slice.call(array, 0, n) : array[0];
|
||||
};
|
||||
|
||||
// Returns everything but the last entry of the array. Especcialy useful on
|
||||
// the arguments object. Passing **n** will return all the values in
|
||||
// the array, excluding the last N. The **guard** check allows it to work with
|
||||
// `_.map`.
|
||||
_.initial = function(array, n, guard) {
|
||||
return slice.call(array, 0, array.length - ((n == null) || guard ? 1 : n));
|
||||
};
|
||||
|
||||
// Get the last element of an array. Passing **n** will return the last N
|
||||
// values in the array. The **guard** check allows it to work with `_.map`.
|
||||
_.last = function(array, n, guard) {
|
||||
if ((n != null) && !guard) {
|
||||
return slice.call(array, Math.max(array.length - n, 0));
|
||||
} else {
|
||||
return array[array.length - 1];
|
||||
}
|
||||
};
|
||||
|
||||
// Returns everything but the first entry of the array. Aliased as `tail`.
|
||||
// Especially useful on the arguments object. Passing an **index** will return
|
||||
// the rest of the values in the array from that index onward. The **guard**
|
||||
// check allows it to work with `_.map`.
|
||||
_.rest = _.tail = function(array, index, guard) {
|
||||
return slice.call(array, (index == null) || guard ? 1 : index);
|
||||
};
|
||||
|
||||
// Trim out all falsy values from an array.
|
||||
_.compact = function(array) {
|
||||
return _.filter(array, function(value){ return !!value; });
|
||||
};
|
||||
|
||||
// Return a completely flattened version of an array.
|
||||
_.flatten = function(array, shallow) {
|
||||
return _.reduce(array, function(memo, value) {
|
||||
if (_.isArray(value)) return memo.concat(shallow ? value : _.flatten(value));
|
||||
memo[memo.length] = value;
|
||||
return memo;
|
||||
}, []);
|
||||
};
|
||||
|
||||
// Return a version of the array that does not contain the specified value(s).
|
||||
_.without = function(array) {
|
||||
return _.difference(array, slice.call(arguments, 1));
|
||||
};
|
||||
|
||||
// Produce a duplicate-free version of the array. If the array has already
|
||||
// been sorted, you have the option of using a faster algorithm.
|
||||
// Aliased as `unique`.
|
||||
_.uniq = _.unique = function(array, isSorted, iterator) {
|
||||
var initial = iterator ? _.map(array, iterator) : array;
|
||||
var result = [];
|
||||
_.reduce(initial, function(memo, el, i) {
|
||||
if (0 == i || (isSorted === true ? _.last(memo) != el : !_.include(memo, el))) {
|
||||
memo[memo.length] = el;
|
||||
result[result.length] = array[i];
|
||||
}
|
||||
return memo;
|
||||
}, []);
|
||||
return result;
|
||||
};
|
||||
|
||||
// Produce an array that contains the union: each distinct element from all of
|
||||
// the passed-in arrays.
|
||||
_.union = function() {
|
||||
return _.uniq(_.flatten(arguments, true));
|
||||
};
|
||||
|
||||
// Produce an array that contains every item shared between all the
|
||||
// passed-in arrays. (Aliased as "intersect" for back-compat.)
|
||||
_.intersection = _.intersect = function(array) {
|
||||
var rest = slice.call(arguments, 1);
|
||||
return _.filter(_.uniq(array), function(item) {
|
||||
return _.every(rest, function(other) {
|
||||
return _.indexOf(other, item) >= 0;
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
// Take the difference between one array and a number of other arrays.
|
||||
// Only the elements present in just the first array will remain.
|
||||
_.difference = function(array) {
|
||||
var rest = _.flatten(slice.call(arguments, 1));
|
||||
return _.filter(array, function(value){ return !_.include(rest, value); });
|
||||
};
|
||||
|
||||
// Zip together multiple lists into a single array -- elements that share
|
||||
// an index go together.
|
||||
_.zip = function() {
|
||||
var args = slice.call(arguments);
|
||||
var length = _.max(_.pluck(args, 'length'));
|
||||
var results = new Array(length);
|
||||
for (var i = 0; i < length; i++) results[i] = _.pluck(args, "" + i);
|
||||
return results;
|
||||
};
|
||||
|
||||
// If the browser doesn't supply us with indexOf (I'm looking at you, **MSIE**),
|
||||
// we need this function. Return the position of the first occurrence of an
|
||||
// item in an array, or -1 if the item is not included in the array.
|
||||
// Delegates to **ECMAScript 5**'s native `indexOf` if available.
|
||||
// If the array is large and already in sort order, pass `true`
|
||||
// for **isSorted** to use binary search.
|
||||
_.indexOf = function(array, item, isSorted) {
|
||||
if (array == null) return -1;
|
||||
var i, l;
|
||||
if (isSorted) {
|
||||
i = _.sortedIndex(array, item);
|
||||
return array[i] === item ? i : -1;
|
||||
}
|
||||
if (nativeIndexOf && array.indexOf === nativeIndexOf) return array.indexOf(item);
|
||||
for (i = 0, l = array.length; i < l; i++) if (i in array && array[i] === item) return i;
|
||||
return -1;
|
||||
};
|
||||
|
||||
// Delegates to **ECMAScript 5**'s native `lastIndexOf` if available.
|
||||
_.lastIndexOf = function(array, item) {
|
||||
if (array == null) return -1;
|
||||
if (nativeLastIndexOf && array.lastIndexOf === nativeLastIndexOf) return array.lastIndexOf(item);
|
||||
var i = array.length;
|
||||
while (i--) if (i in array && array[i] === item) return i;
|
||||
return -1;
|
||||
};
|
||||
|
||||
// Generate an integer Array containing an arithmetic progression. A port of
|
||||
// the native Python `range()` function. See
|
||||
// [the Python documentation](http://docs.python.org/library/functions.html#range).
|
||||
_.range = function(start, stop, step) {
|
||||
if (arguments.length <= 1) {
|
||||
stop = start || 0;
|
||||
start = 0;
|
||||
}
|
||||
step = arguments[2] || 1;
|
||||
|
||||
var len = Math.max(Math.ceil((stop - start) / step), 0);
|
||||
var idx = 0;
|
||||
var range = new Array(len);
|
||||
|
||||
while(idx < len) {
|
||||
range[idx++] = start;
|
||||
start += step;
|
||||
}
|
||||
|
||||
return range;
|
||||
};
|
||||
|
||||
// Function (ahem) Functions
|
||||
// ------------------
|
||||
|
||||
// Reusable constructor function for prototype setting.
|
||||
var ctor = function(){};
|
||||
|
||||
// Create a function bound to a given object (assigning `this`, and arguments,
|
||||
// optionally). Binding with arguments is also known as `curry`.
|
||||
// Delegates to **ECMAScript 5**'s native `Function.bind` if available.
|
||||
// We check for `func.bind` first, to fail fast when `func` is undefined.
|
||||
_.bind = function bind(func, context) {
|
||||
var bound, args;
|
||||
if (func.bind === nativeBind && nativeBind) return nativeBind.apply(func, slice.call(arguments, 1));
|
||||
if (!_.isFunction(func)) throw new TypeError;
|
||||
args = slice.call(arguments, 2);
|
||||
return bound = function() {
|
||||
if (!(this instanceof bound)) return func.apply(context, args.concat(slice.call(arguments)));
|
||||
ctor.prototype = func.prototype;
|
||||
var self = new ctor;
|
||||
var result = func.apply(self, args.concat(slice.call(arguments)));
|
||||
if (Object(result) === result) return result;
|
||||
return self;
|
||||
};
|
||||
};
|
||||
|
||||
// Bind all of an object's methods to that object. Useful for ensuring that
|
||||
// all callbacks defined on an object belong to it.
|
||||
_.bindAll = function(obj) {
|
||||
var funcs = slice.call(arguments, 1);
|
||||
if (funcs.length == 0) funcs = _.functions(obj);
|
||||
each(funcs, function(f) { obj[f] = _.bind(obj[f], obj); });
|
||||
return obj;
|
||||
};
|
||||
|
||||
// Memoize an expensive function by storing its results.
|
||||
_.memoize = function(func, hasher) {
|
||||
var memo = {};
|
||||
hasher || (hasher = _.identity);
|
||||
return function() {
|
||||
var key = hasher.apply(this, arguments);
|
||||
return _.has(memo, key) ? memo[key] : (memo[key] = func.apply(this, arguments));
|
||||
};
|
||||
};
|
||||
|
||||
// Delays a function for the given number of milliseconds, and then calls
|
||||
// it with the arguments supplied.
|
||||
_.delay = function(func, wait) {
|
||||
var args = slice.call(arguments, 2);
|
||||
return setTimeout(function(){ return func.apply(func, args); }, wait);
|
||||
};
|
||||
|
||||
// Defers a function, scheduling it to run after the current call stack has
|
||||
// cleared.
|
||||
_.defer = function(func) {
|
||||
return _.delay.apply(_, [func, 1].concat(slice.call(arguments, 1)));
|
||||
};
|
||||
|
||||
// Returns a function, that, when invoked, will only be triggered at most once
|
||||
// during a given window of time.
|
||||
_.throttle = function(func, wait) {
|
||||
var context, args, timeout, throttling, more;
|
||||
var whenDone = _.debounce(function(){ more = throttling = false; }, wait);
|
||||
return function() {
|
||||
context = this; args = arguments;
|
||||
var later = function() {
|
||||
timeout = null;
|
||||
if (more) func.apply(context, args);
|
||||
whenDone();
|
||||
};
|
||||
if (!timeout) timeout = setTimeout(later, wait);
|
||||
if (throttling) {
|
||||
more = true;
|
||||
} else {
|
||||
func.apply(context, args);
|
||||
}
|
||||
whenDone();
|
||||
throttling = true;
|
||||
};
|
||||
};
|
||||
|
||||
// Returns a function, that, as long as it continues to be invoked, will not
|
||||
// be triggered. The function will be called after it stops being called for
|
||||
// N milliseconds.
|
||||
_.debounce = function(func, wait) {
|
||||
var timeout;
|
||||
return function() {
|
||||
var context = this, args = arguments;
|
||||
var later = function() {
|
||||
timeout = null;
|
||||
func.apply(context, args);
|
||||
};
|
||||
clearTimeout(timeout);
|
||||
timeout = setTimeout(later, wait);
|
||||
};
|
||||
};
|
||||
|
||||
// Returns a function that will be executed at most one time, no matter how
|
||||
// often you call it. Useful for lazy initialization.
|
||||
_.once = function(func) {
|
||||
var ran = false, memo;
|
||||
return function() {
|
||||
if (ran) return memo;
|
||||
ran = true;
|
||||
return memo = func.apply(this, arguments);
|
||||
};
|
||||
};
|
||||
|
||||
// Returns the first function passed as an argument to the second,
|
||||
// allowing you to adjust arguments, run code before and after, and
|
||||
// conditionally execute the original function.
|
||||
_.wrap = function(func, wrapper) {
|
||||
return function() {
|
||||
var args = [func].concat(slice.call(arguments, 0));
|
||||
return wrapper.apply(this, args);
|
||||
};
|
||||
};
|
||||
|
||||
// Returns a function that is the composition of a list of functions, each
|
||||
// consuming the return value of the function that follows.
|
||||
_.compose = function() {
|
||||
var funcs = arguments;
|
||||
return function() {
|
||||
var args = arguments;
|
||||
for (var i = funcs.length - 1; i >= 0; i--) {
|
||||
args = [funcs[i].apply(this, args)];
|
||||
}
|
||||
return args[0];
|
||||
};
|
||||
};
|
||||
|
||||
// Returns a function that will only be executed after being called N times.
|
||||
_.after = function(times, func) {
|
||||
if (times <= 0) return func();
|
||||
return function() {
|
||||
if (--times < 1) { return func.apply(this, arguments); }
|
||||
};
|
||||
};
|
||||
|
||||
// Object Functions
|
||||
// ----------------
|
||||
|
||||
// Retrieve the names of an object's properties.
|
||||
// Delegates to **ECMAScript 5**'s native `Object.keys`
|
||||
_.keys = nativeKeys || function(obj) {
|
||||
if (obj !== Object(obj)) throw new TypeError('Invalid object');
|
||||
var keys = [];
|
||||
for (var key in obj) if (_.has(obj, key)) keys[keys.length] = key;
|
||||
return keys;
|
||||
};
|
||||
|
||||
// Retrieve the values of an object's properties.
|
||||
_.values = function(obj) {
|
||||
return _.map(obj, _.identity);
|
||||
};
|
||||
|
||||
// Return a sorted list of the function names available on the object.
|
||||
// Aliased as `methods`
|
||||
_.functions = _.methods = function(obj) {
|
||||
var names = [];
|
||||
for (var key in obj) {
|
||||
if (_.isFunction(obj[key])) names.push(key);
|
||||
}
|
||||
return names.sort();
|
||||
};
|
||||
|
||||
// Extend a given object with all the properties in passed-in object(s).
|
||||
_.extend = function(obj) {
|
||||
each(slice.call(arguments, 1), function(source) {
|
||||
for (var prop in source) {
|
||||
obj[prop] = source[prop];
|
||||
}
|
||||
});
|
||||
return obj;
|
||||
};
|
||||
|
||||
// Fill in a given object with default properties.
|
||||
_.defaults = function(obj) {
|
||||
each(slice.call(arguments, 1), function(source) {
|
||||
for (var prop in source) {
|
||||
if (obj[prop] == null) obj[prop] = source[prop];
|
||||
}
|
||||
});
|
||||
return obj;
|
||||
};
|
||||
|
||||
// Create a (shallow-cloned) duplicate of an object.
|
||||
_.clone = function(obj) {
|
||||
if (!_.isObject(obj)) return obj;
|
||||
return _.isArray(obj) ? obj.slice() : _.extend({}, obj);
|
||||
};
|
||||
|
||||
// Invokes interceptor with the obj, and then returns obj.
|
||||
// The primary purpose of this method is to "tap into" a method chain, in
|
||||
// order to perform operations on intermediate results within the chain.
|
||||
_.tap = function(obj, interceptor) {
|
||||
interceptor(obj);
|
||||
return obj;
|
||||
};
|
||||
|
||||
// Internal recursive comparison function.
|
||||
function eq(a, b, stack) {
|
||||
// Identical objects are equal. `0 === -0`, but they aren't identical.
|
||||
// See the Harmony `egal` proposal: http://wiki.ecmascript.org/doku.php?id=harmony:egal.
|
||||
if (a === b) return a !== 0 || 1 / a == 1 / b;
|
||||
// A strict comparison is necessary because `null == undefined`.
|
||||
if (a == null || b == null) return a === b;
|
||||
// Unwrap any wrapped objects.
|
||||
if (a._chain) a = a._wrapped;
|
||||
if (b._chain) b = b._wrapped;
|
||||
// Invoke a custom `isEqual` method if one is provided.
|
||||
if (a.isEqual && _.isFunction(a.isEqual)) return a.isEqual(b);
|
||||
if (b.isEqual && _.isFunction(b.isEqual)) return b.isEqual(a);
|
||||
// Compare `[[Class]]` names.
|
||||
var className = toString.call(a);
|
||||
if (className != toString.call(b)) return false;
|
||||
switch (className) {
|
||||
// Strings, numbers, dates, and booleans are compared by value.
|
||||
case '[object String]':
|
||||
// Primitives and their corresponding object wrappers are equivalent; thus, `"5"` is
|
||||
// equivalent to `new String("5")`.
|
||||
return a == String(b);
|
||||
case '[object Number]':
|
||||
// `NaN`s are equivalent, but non-reflexive. An `egal` comparison is performed for
|
||||
// other numeric values.
|
||||
return a != +a ? b != +b : (a == 0 ? 1 / a == 1 / b : a == +b);
|
||||
case '[object Date]':
|
||||
case '[object Boolean]':
|
||||
// Coerce dates and booleans to numeric primitive values. Dates are compared by their
|
||||
// millisecond representations. Note that invalid dates with millisecond representations
|
||||
// of `NaN` are not equivalent.
|
||||
return +a == +b;
|
||||
// RegExps are compared by their source patterns and flags.
|
||||
case '[object RegExp]':
|
||||
return a.source == b.source &&
|
||||
a.global == b.global &&
|
||||
a.multiline == b.multiline &&
|
||||
a.ignoreCase == b.ignoreCase;
|
||||
}
|
||||
if (typeof a != 'object' || typeof b != 'object') return false;
|
||||
// Assume equality for cyclic structures. The algorithm for detecting cyclic
|
||||
// structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`.
|
||||
var length = stack.length;
|
||||
while (length--) {
|
||||
// Linear search. Performance is inversely proportional to the number of
|
||||
// unique nested structures.
|
||||
if (stack[length] == a) return true;
|
||||
}
|
||||
// Add the first object to the stack of traversed objects.
|
||||
stack.push(a);
|
||||
var size = 0, result = true;
|
||||
// Recursively compare objects and arrays.
|
||||
if (className == '[object Array]') {
|
||||
// Compare array lengths to determine if a deep comparison is necessary.
|
||||
size = a.length;
|
||||
result = size == b.length;
|
||||
if (result) {
|
||||
// Deep compare the contents, ignoring non-numeric properties.
|
||||
while (size--) {
|
||||
// Ensure commutative equality for sparse arrays.
|
||||
if (!(result = size in a == size in b && eq(a[size], b[size], stack))) break;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// Objects with different constructors are not equivalent.
|
||||
if ('constructor' in a != 'constructor' in b || a.constructor != b.constructor) return false;
|
||||
// Deep compare objects.
|
||||
for (var key in a) {
|
||||
if (_.has(a, key)) {
|
||||
// Count the expected number of properties.
|
||||
size++;
|
||||
// Deep compare each member.
|
||||
if (!(result = _.has(b, key) && eq(a[key], b[key], stack))) break;
|
||||
}
|
||||
}
|
||||
// Ensure that both objects contain the same number of properties.
|
||||
if (result) {
|
||||
for (key in b) {
|
||||
if (_.has(b, key) && !(size--)) break;
|
||||
}
|
||||
result = !size;
|
||||
}
|
||||
}
|
||||
// Remove the first object from the stack of traversed objects.
|
||||
stack.pop();
|
||||
return result;
|
||||
}
|
||||
|
||||
// Perform a deep comparison to check if two objects are equal.
|
||||
_.isEqual = function(a, b) {
|
||||
return eq(a, b, []);
|
||||
};
|
||||
|
||||
// Is a given array, string, or object empty?
|
||||
// An "empty" object has no enumerable own-properties.
|
||||
_.isEmpty = function(obj) {
|
||||
if (_.isArray(obj) || _.isString(obj)) return obj.length === 0;
|
||||
for (var key in obj) if (_.has(obj, key)) return false;
|
||||
return true;
|
||||
};
|
||||
|
||||
// Is a given value a DOM element?
|
||||
_.isElement = function(obj) {
|
||||
return !!(obj && obj.nodeType == 1);
|
||||
};
|
||||
|
||||
// Is a given value an array?
|
||||
// Delegates to ECMA5's native Array.isArray
|
||||
_.isArray = nativeIsArray || function(obj) {
|
||||
return toString.call(obj) == '[object Array]';
|
||||
};
|
||||
|
||||
// Is a given variable an object?
|
||||
_.isObject = function(obj) {
|
||||
return obj === Object(obj);
|
||||
};
|
||||
|
||||
// Is a given variable an arguments object?
|
||||
_.isArguments = function(obj) {
|
||||
return toString.call(obj) == '[object Arguments]';
|
||||
};
|
||||
if (!_.isArguments(arguments)) {
|
||||
_.isArguments = function(obj) {
|
||||
return !!(obj && _.has(obj, 'callee'));
|
||||
};
|
||||
}
|
||||
|
||||
// Is a given value a function?
|
||||
_.isFunction = function(obj) {
|
||||
return toString.call(obj) == '[object Function]';
|
||||
};
|
||||
|
||||
// Is a given value a string?
|
||||
_.isString = function(obj) {
|
||||
return toString.call(obj) == '[object String]';
|
||||
};
|
||||
|
||||
// Is a given value a number?
|
||||
_.isNumber = function(obj) {
|
||||
return toString.call(obj) == '[object Number]';
|
||||
};
|
||||
|
||||
// Is the given value `NaN`?
|
||||
_.isNaN = function(obj) {
|
||||
// `NaN` is the only value for which `===` is not reflexive.
|
||||
return obj !== obj;
|
||||
};
|
||||
|
||||
// Is a given value a boolean?
|
||||
_.isBoolean = function(obj) {
|
||||
return obj === true || obj === false || toString.call(obj) == '[object Boolean]';
|
||||
};
|
||||
|
||||
// Is a given value a date?
|
||||
_.isDate = function(obj) {
|
||||
return toString.call(obj) == '[object Date]';
|
||||
};
|
||||
|
||||
// Is the given value a regular expression?
|
||||
_.isRegExp = function(obj) {
|
||||
return toString.call(obj) == '[object RegExp]';
|
||||
};
|
||||
|
||||
// Is a given value equal to null?
|
||||
_.isNull = function(obj) {
|
||||
return obj === null;
|
||||
};
|
||||
|
||||
// Is a given variable undefined?
|
||||
_.isUndefined = function(obj) {
|
||||
return obj === void 0;
|
||||
};
|
||||
|
||||
// Has own property?
|
||||
_.has = function(obj, key) {
|
||||
return hasOwnProperty.call(obj, key);
|
||||
};
|
||||
|
||||
// Utility Functions
|
||||
// -----------------
|
||||
|
||||
// Run Underscore.js in *noConflict* mode, returning the `_` variable to its
|
||||
// previous owner. Returns a reference to the Underscore object.
|
||||
_.noConflict = function() {
|
||||
root._ = previousUnderscore;
|
||||
return this;
|
||||
};
|
||||
|
||||
// Keep the identity function around for default iterators.
|
||||
_.identity = function(value) {
|
||||
return value;
|
||||
};
|
||||
|
||||
// Run a function **n** times.
|
||||
_.times = function (n, iterator, context) {
|
||||
for (var i = 0; i < n; i++) iterator.call(context, i);
|
||||
};
|
||||
|
||||
// Escape a string for HTML interpolation.
|
||||
_.escape = function(string) {
|
||||
return (''+string).replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/"/g, '"').replace(/'/g, ''').replace(/\//g,'/');
|
||||
};
|
||||
|
||||
// Add your own custom functions to the Underscore object, ensuring that
|
||||
// they're correctly added to the OOP wrapper as well.
|
||||
_.mixin = function(obj) {
|
||||
each(_.functions(obj), function(name){
|
||||
addToWrapper(name, _[name] = obj[name]);
|
||||
});
|
||||
};
|
||||
|
||||
// Generate a unique integer id (unique within the entire client session).
|
||||
// Useful for temporary DOM ids.
|
||||
var idCounter = 0;
|
||||
_.uniqueId = function(prefix) {
|
||||
var id = idCounter++;
|
||||
return prefix ? prefix + id : id;
|
||||
};
|
||||
|
||||
// By default, Underscore uses ERB-style template delimiters, change the
|
||||
// following template settings to use alternative delimiters.
|
||||
_.templateSettings = {
|
||||
evaluate : /<%([\s\S]+?)%>/g,
|
||||
interpolate : /<%=([\s\S]+?)%>/g,
|
||||
escape : /<%-([\s\S]+?)%>/g
|
||||
};
|
||||
|
||||
// When customizing `templateSettings`, if you don't want to define an
|
||||
// interpolation, evaluation or escaping regex, we need one that is
|
||||
// guaranteed not to match.
|
||||
var noMatch = /.^/;
|
||||
|
||||
// Within an interpolation, evaluation, or escaping, remove HTML escaping
|
||||
// that had been previously added.
|
||||
var unescape = function(code) {
|
||||
return code.replace(/\\\\/g, '\\').replace(/\\'/g, "'");
|
||||
};
|
||||
|
||||
// JavaScript micro-templating, similar to John Resig's implementation.
|
||||
// Underscore templating handles arbitrary delimiters, preserves whitespace,
|
||||
// and correctly escapes quotes within interpolated code.
|
||||
_.template = function(str, data) {
|
||||
var c = _.templateSettings;
|
||||
var tmpl = 'var __p=[],print=function(){__p.push.apply(__p,arguments);};' +
|
||||
'with(obj||{}){__p.push(\'' +
|
||||
str.replace(/\\/g, '\\\\')
|
||||
.replace(/'/g, "\\'")
|
||||
.replace(c.escape || noMatch, function(match, code) {
|
||||
return "',_.escape(" + unescape(code) + "),'";
|
||||
})
|
||||
.replace(c.interpolate || noMatch, function(match, code) {
|
||||
return "'," + unescape(code) + ",'";
|
||||
})
|
||||
.replace(c.evaluate || noMatch, function(match, code) {
|
||||
return "');" + unescape(code).replace(/[\r\n\t]/g, ' ') + ";__p.push('";
|
||||
})
|
||||
.replace(/\r/g, '\\r')
|
||||
.replace(/\n/g, '\\n')
|
||||
.replace(/\t/g, '\\t')
|
||||
+ "');}return __p.join('');";
|
||||
var func = new Function('obj', '_', tmpl);
|
||||
if (data) return func(data, _);
|
||||
return function(data) {
|
||||
return func.call(this, data, _);
|
||||
};
|
||||
};
|
||||
|
||||
// Add a "chain" function, which will delegate to the wrapper.
|
||||
_.chain = function(obj) {
|
||||
return _(obj).chain();
|
||||
};
|
||||
|
||||
// The OOP Wrapper
|
||||
// ---------------
|
||||
|
||||
// If Underscore is called as a function, it returns a wrapped object that
|
||||
// can be used OO-style. This wrapper holds altered versions of all the
|
||||
// underscore functions. Wrapped objects may be chained.
|
||||
var wrapper = function(obj) { this._wrapped = obj; };
|
||||
|
||||
// Expose `wrapper.prototype` as `_.prototype`
|
||||
_.prototype = wrapper.prototype;
|
||||
|
||||
// Helper function to continue chaining intermediate results.
|
||||
var result = function(obj, chain) {
|
||||
return chain ? _(obj).chain() : obj;
|
||||
};
|
||||
|
||||
// A method to easily add functions to the OOP wrapper.
|
||||
var addToWrapper = function(name, func) {
|
||||
wrapper.prototype[name] = function() {
|
||||
var args = slice.call(arguments);
|
||||
unshift.call(args, this._wrapped);
|
||||
return result(func.apply(_, args), this._chain);
|
||||
};
|
||||
};
|
||||
|
||||
// Add all of the Underscore functions to the wrapper object.
|
||||
_.mixin(_);
|
||||
|
||||
// Add all mutator Array functions to the wrapper.
|
||||
each(['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'], function(name) {
|
||||
var method = ArrayProto[name];
|
||||
wrapper.prototype[name] = function() {
|
||||
var wrapped = this._wrapped;
|
||||
method.apply(wrapped, arguments);
|
||||
var length = wrapped.length;
|
||||
if ((name == 'shift' || name == 'splice') && length === 0) delete wrapped[0];
|
||||
return result(wrapped, this._chain);
|
||||
};
|
||||
});
|
||||
|
||||
// Add all accessor Array functions to the wrapper.
|
||||
each(['concat', 'join', 'slice'], function(name) {
|
||||
var method = ArrayProto[name];
|
||||
wrapper.prototype[name] = function() {
|
||||
return result(method.apply(this._wrapped, arguments), this._chain);
|
||||
};
|
||||
});
|
||||
|
||||
// Start chaining a wrapped Underscore object.
|
||||
wrapper.prototype.chain = function() {
|
||||
this._chain = true;
|
||||
return this;
|
||||
};
|
||||
|
||||
// Extracts the result from a wrapped and chained object.
|
||||
wrapper.prototype.value = function() {
|
||||
return this._wrapped;
|
||||
};
|
||||
|
||||
}).call(this);
|
||||
1446
docs/_static/underscore.js
vendored
BIN
docs/_static/up-pressed.png
vendored
|
Before Width: | Height: | Size: 345 B After Width: | Height: | Size: 372 B |
BIN
docs/_static/up.png
vendored
|
Before Width: | Height: | Size: 345 B After Width: | Height: | Size: 363 B |
30
docs/_static/websupport.js
vendored
@@ -4,7 +4,7 @@
|
||||
*
|
||||
* sphinx.websupport utilties for all documentation.
|
||||
*
|
||||
* :copyright: Copyright 2007-2015 by the Sphinx team, see AUTHORS.
|
||||
* :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
|
||||
* :license: BSD, see LICENSE for details.
|
||||
*
|
||||
*/
|
||||
@@ -50,51 +50,51 @@
|
||||
}
|
||||
|
||||
function initEvents() {
|
||||
$(document).on("click", 'a.comment-close', function(event) {
|
||||
$('a.comment-close').live("click", function(event) {
|
||||
event.preventDefault();
|
||||
hide($(this).attr('id').substring(2));
|
||||
});
|
||||
$(document).on("click", 'a.vote', function(event) {
|
||||
$('a.vote').live("click", function(event) {
|
||||
event.preventDefault();
|
||||
handleVote($(this));
|
||||
});
|
||||
$(document).on("click", 'a.reply', function(event) {
|
||||
$('a.reply').live("click", function(event) {
|
||||
event.preventDefault();
|
||||
openReply($(this).attr('id').substring(2));
|
||||
});
|
||||
$(document).on("click", 'a.close-reply', function(event) {
|
||||
$('a.close-reply').live("click", function(event) {
|
||||
event.preventDefault();
|
||||
closeReply($(this).attr('id').substring(2));
|
||||
});
|
||||
$(document).on("click", 'a.sort-option', function(event) {
|
||||
$('a.sort-option').live("click", function(event) {
|
||||
event.preventDefault();
|
||||
handleReSort($(this));
|
||||
});
|
||||
$(document).on("click", 'a.show-proposal', function(event) {
|
||||
$('a.show-proposal').live("click", function(event) {
|
||||
event.preventDefault();
|
||||
showProposal($(this).attr('id').substring(2));
|
||||
});
|
||||
$(document).on("click", 'a.hide-proposal', function(event) {
|
||||
$('a.hide-proposal').live("click", function(event) {
|
||||
event.preventDefault();
|
||||
hideProposal($(this).attr('id').substring(2));
|
||||
});
|
||||
$(document).on("click", 'a.show-propose-change', function(event) {
|
||||
$('a.show-propose-change').live("click", function(event) {
|
||||
event.preventDefault();
|
||||
showProposeChange($(this).attr('id').substring(2));
|
||||
});
|
||||
$(document).on("click", 'a.hide-propose-change', function(event) {
|
||||
$('a.hide-propose-change').live("click", function(event) {
|
||||
event.preventDefault();
|
||||
hideProposeChange($(this).attr('id').substring(2));
|
||||
});
|
||||
$(document).on("click", 'a.accept-comment', function(event) {
|
||||
$('a.accept-comment').live("click", function(event) {
|
||||
event.preventDefault();
|
||||
acceptComment($(this).attr('id').substring(2));
|
||||
});
|
||||
$(document).on("click", 'a.delete-comment', function(event) {
|
||||
$('a.delete-comment').live("click", function(event) {
|
||||
event.preventDefault();
|
||||
deleteComment($(this).attr('id').substring(2));
|
||||
});
|
||||
$(document).on("click", 'a.comment-markup', function(event) {
|
||||
$('a.comment-markup').live("click", function(event) {
|
||||
event.preventDefault();
|
||||
toggleCommentMarkupBox($(this).attr('id').substring(2));
|
||||
});
|
||||
@@ -700,8 +700,8 @@
|
||||
(<a href="#" class="comment-markup" id="ab<%id%>">markup</a>):</p>\
|
||||
<div class="comment-markup-box" id="mb<%id%>">\
|
||||
reStructured text markup: <i>*emph*</i>, <b>**strong**</b>, \
|
||||
<code>``code``</code>, \
|
||||
code blocks: <code>::</code> and an indented block after blank line</div>\
|
||||
<tt>``code``</tt>, \
|
||||
code blocks: <tt>::</tt> and an indented block after blank line</div>\
|
||||
<form method="post" id="cf<%id%>" class="comment-form" action="">\
|
||||
<textarea name="comment" cols="80"></textarea>\
|
||||
<p class="propose-button">\
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>USB CCID Emulator — vsmartcard 2017-01-08 documentation</title>
|
||||
<title>USB CCID Emulator — 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" />
|
||||
@@ -15,7 +15,7 @@
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: '../',
|
||||
VERSION: '2017-01-08',
|
||||
VERSION: '2017-01-16',
|
||||
COLLAPSE_INDEX: false,
|
||||
FILE_SUFFIX: '.html',
|
||||
HAS_SOURCE: true
|
||||
@@ -29,7 +29,7 @@
|
||||
<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-08 documentation" href="../index.html" />
|
||||
<link rel="top" title="vsmartcard 2017-01-16 documentation" href="../index.html" />
|
||||
<link rel="next" title="Creating a Virtual Smart Card" href="../virtualsmartcard/api.html" />
|
||||
<link rel="prev" title="PC/SC Relay" href="../pcsc-relay/README.html" />
|
||||
<meta charset='utf-8'>
|
||||
@@ -38,7 +38,7 @@
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
|
||||
</head>
|
||||
<body role="document">
|
||||
<body>
|
||||
|
||||
<a href="https://github.com/frankmorgner/vsmartcard"
|
||||
class="visible-desktop hidden-xs"><img
|
||||
@@ -85,6 +85,7 @@
|
||||
<li class="toctree-l1"><a class="reference internal" href="../virtualsmartcard/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 current"><a class="current reference internal" href="">USB CCID Emulator</a></li>
|
||||
</ul>
|
||||
@@ -180,34 +181,34 @@ standard USB CCID reader. USB CCID Emulator can be used as trusted intermediary
|
||||
enabling secure PIN entry and PIN modification. In combination with <a class="reference external" href="https://github.com/frankmorgner/OpenSC">OpenSC</a> <a class="footnote-reference" href="#id4" id="id5">[2]</a>
|
||||
also <abbr title="Password Authenticated Connection Establishment">PACE</abbr> can be performed by the emulator.</p>
|
||||
<div class="figure">
|
||||
<p><img src="../_images/tikz-1d33e42386e7cbcfb6928b3734eb67c93a087f5f.png" alt="\input{%(wd)s/bilder/tikzstyles.tex}
|
||||
<p><img src="../_images/tikz-1281452b980f69540bc7520179e10f3ccc59fe36.svg" alt="\input{$wd/bilder/tikzstyles.tex}
|
||||
\tikzstyle{bla}=[kleiner, text width=.45\textwidth]
|
||||
|
||||
\node (reader)
|
||||
{\includegraphics[width=1cm]{%(wd)s/bilder/my_cardreader.pdf}};
|
||||
{\includegraphics[width=1cm]{$wd/bilder/my_cardreader.pdf}};
|
||||
\node (readertext) [right=0of reader, bla]
|
||||
{Smartphone provides smart card reader via USB};
|
||||
\node (display) [below=0of reader]
|
||||
{\includegraphics[width=1cm]{%(wd)s/bilder/display.pdf}};
|
||||
{\includegraphics[width=1cm]{$wd/bilder/display.pdf}};
|
||||
\node (displaytext) [right=0of display, bla]
|
||||
{Secure display of service provider and purpose of transaction};
|
||||
\node (keyboard) [below=0of display]
|
||||
{\includegraphics[width=1cm]{%(wd)s/bilder/keyboard.pdf}};
|
||||
{\includegraphics[width=1cm]{$wd/bilder/keyboard.pdf}};
|
||||
\node (keyboardtext) [right=0of keyboard, bla]
|
||||
{Secure PIN Entry};
|
||||
\node (firewall) [below=0of keyboard]
|
||||
{\includegraphics[width=1cm]{%(wd)s/bilder/Firewall.pdf}};
|
||||
{\includegraphics[width=1cm]{$wd/bilder/Firewall.pdf}};
|
||||
\node (firewalltext) [right=0of firewall, bla]
|
||||
{Verification of terminal authentication and sanitiy checks};
|
||||
|
||||
\node (features) [fit=(display) (keyboard) (reader) (firewall)] {};
|
||||
|
||||
\node (moko) [left=0of features.west] {\includegraphics[height=4cm]{%(wd)s/bilder/phone-fic-neo-freerunner.pdf}};
|
||||
\node (moko) [left=0of features.west] {\includegraphics[height=4cm]{$wd/bilder/phone-fic-neo-freerunner.pdf}};
|
||||
|
||||
\node (epa) [left=1.5of moko, yshift=-2cm]
|
||||
{\includegraphics[width=3cm]{%(wd)s/bilder/nPA_VS.png}};
|
||||
{\includegraphics[width=3cm]{$wd/bilder/nPA_VS.png}};
|
||||
\node (pc) [left=1.5of moko, yshift=1.5cm]
|
||||
{\includegraphics[width=3cm]{%(wd)s/bilder/computer-tango.pdf}};
|
||||
{\includegraphics[width=3cm]{$wd/bilder/computer-tango.pdf}};
|
||||
|
||||
\begin{pgfonlayer}{background}
|
||||
|
||||
@@ -242,21 +243,21 @@ their PC/SC counterpart:</p>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody valign="top">
|
||||
<tr class="row-even"><td><code class="docutils literal"><span class="pre">PC_to_RDR_XfrBlock</span></code></td>
|
||||
<td><code class="docutils literal"><span class="pre">SCardTransmit</span></code></td>
|
||||
<tr class="row-even"><td><tt class="docutils literal"><span class="pre">PC_to_RDR_XfrBlock</span></tt></td>
|
||||
<td><tt class="docutils literal"><span class="pre">SCardTransmit</span></tt></td>
|
||||
</tr>
|
||||
<tr class="row-odd"><td><code class="docutils literal"><span class="pre">PC_to_RDR_Secure</span></code></td>
|
||||
<td><code class="docutils literal"><span class="pre">FEATURE_VERIFY_PIN_DIRECT</span></code>, <code class="docutils literal"><span class="pre">FEATURE_MODIFY_PIN_DIRECT</span></code></td>
|
||||
<tr class="row-odd"><td><tt class="docutils literal"><span class="pre">PC_to_RDR_Secure</span></tt></td>
|
||||
<td><tt class="docutils literal"><span class="pre">FEATURE_VERIFY_PIN_DIRECT</span></tt>, <tt class="docutils literal"><span class="pre">FEATURE_MODIFY_PIN_DIRECT</span></tt></td>
|
||||
</tr>
|
||||
<tr class="row-even"><td><code class="docutils literal"><span class="pre">PC_to_RDR_Secure</span></code> (proprietary)</td>
|
||||
<td><code class="docutils literal"><span class="pre">FEATURE_EXECUTE_PACE</span></code></td>
|
||||
<tr class="row-even"><td><tt class="docutils literal"><span class="pre">PC_to_RDR_Secure</span></tt> (proprietary)</td>
|
||||
<td><tt class="docutils literal"><span class="pre">FEATURE_EXECUTE_PACE</span></tt></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p>PIN verification/modification and <abbr title="Password Authenticated Connection Establishment">PACE</abbr> can also be started by the application
|
||||
transmitting (SCardTransmit) specially crafted APDUs. Only the alternative
|
||||
initialization of <abbr title="Password Authenticated Connection Establishment">PACE</abbr> using SCardControl requires patching the driver
|
||||
(available for libccid, see <code class="file docutils literal"><span class="pre">patches</span></code>). The pseudo APDUs with no need for
|
||||
(available for libccid, see <tt class="file docutils literal"><span class="pre">patches</span></tt>). The pseudo APDUs with no need for
|
||||
patches are defined as follows (see <a class="reference external" href="https://www.bsi.bund.de/DE/Publikationen/TechnischeRichtlinien/tr03119/index_htm.html">BSI TR-03119 1.3</a> <a class="footnote-reference" href="#id13" id="id14">[6]</a> p. 33-34):</p>
|
||||
<table border="1" class="docutils">
|
||||
<colgroup>
|
||||
@@ -285,40 +286,40 @@ patches are defined as follows (see <a class="reference external" href="https://
|
||||
</thead>
|
||||
<tbody valign="top">
|
||||
<tr class="row-odd"><td>GetReaderPACECapabilities</td>
|
||||
<td><code class="docutils literal"><span class="pre">0xFF</span></code></td>
|
||||
<td><code class="docutils literal"><span class="pre">0x9A</span></code></td>
|
||||
<td><code class="docutils literal"><span class="pre">0x04</span></code></td>
|
||||
<td><code class="docutils literal"><span class="pre">0x01</span></code></td>
|
||||
<td><tt class="docutils literal"><span class="pre">0xFF</span></tt></td>
|
||||
<td><tt class="docutils literal"><span class="pre">0x9A</span></tt></td>
|
||||
<td><tt class="docutils literal"><span class="pre">0x04</span></tt></td>
|
||||
<td><tt class="docutils literal"><span class="pre">0x01</span></tt></td>
|
||||
<td>(No Data)</td>
|
||||
<td><code class="docutils literal"><span class="pre">PACECapabilities</span></code></td>
|
||||
<td rowspan="4"><code class="docutils literal"><span class="pre">0x9000</span></code>
|
||||
<td><tt class="docutils literal"><span class="pre">PACECapabilities</span></tt></td>
|
||||
<td rowspan="4"><tt class="docutils literal"><span class="pre">0x9000</span></tt>
|
||||
or other
|
||||
in case of
|
||||
an error</td>
|
||||
</tr>
|
||||
<tr class="row-even"><td>EstablishPACEChannel</td>
|
||||
<td><code class="docutils literal"><span class="pre">0xFF</span></code></td>
|
||||
<td><code class="docutils literal"><span class="pre">0x9A</span></code></td>
|
||||
<td><code class="docutils literal"><span class="pre">0x04</span></code></td>
|
||||
<td><code class="docutils literal"><span class="pre">0x02</span></code></td>
|
||||
<td><code class="docutils literal"><span class="pre">EstablishPACEChannelInput</span></code></td>
|
||||
<td><code class="docutils literal"><span class="pre">EstablishPACEChannelOutput</span></code></td>
|
||||
<td><tt class="docutils literal"><span class="pre">0xFF</span></tt></td>
|
||||
<td><tt class="docutils literal"><span class="pre">0x9A</span></tt></td>
|
||||
<td><tt class="docutils literal"><span class="pre">0x04</span></tt></td>
|
||||
<td><tt class="docutils literal"><span class="pre">0x02</span></tt></td>
|
||||
<td><tt class="docutils literal"><span class="pre">EstablishPACEChannelInput</span></tt></td>
|
||||
<td><tt class="docutils literal"><span class="pre">EstablishPACEChannelOutput</span></tt></td>
|
||||
</tr>
|
||||
<tr class="row-odd"><td>DestroyPACEChannel</td>
|
||||
<td><code class="docutils literal"><span class="pre">0xFF</span></code></td>
|
||||
<td><code class="docutils literal"><span class="pre">0x9A</span></code></td>
|
||||
<td><code class="docutils literal"><span class="pre">0x04</span></code></td>
|
||||
<td><code class="docutils literal"><span class="pre">0x03</span></code></td>
|
||||
<td><tt class="docutils literal"><span class="pre">0xFF</span></tt></td>
|
||||
<td><tt class="docutils literal"><span class="pre">0x9A</span></tt></td>
|
||||
<td><tt class="docutils literal"><span class="pre">0x04</span></tt></td>
|
||||
<td><tt class="docutils literal"><span class="pre">0x03</span></tt></td>
|
||||
<td>(No Data)</td>
|
||||
<td>(No Data)</td>
|
||||
</tr>
|
||||
<tr class="row-even"><td>Verify/Modify PIN</td>
|
||||
<td><code class="docutils literal"><span class="pre">0xFF</span></code></td>
|
||||
<td><code class="docutils literal"><span class="pre">0x9A</span></code></td>
|
||||
<td><code class="docutils literal"><span class="pre">0x04</span></code></td>
|
||||
<td><code class="docutils literal"><span class="pre">0x10</span></code></td>
|
||||
<td>Coding as <code class="docutils literal"><span class="pre">PC_to_RDR_Secure</span></code></td>
|
||||
<td>Coding as <code class="docutils literal"><span class="pre">RDR_to_PC_DataBlock</span></code></td>
|
||||
<td><tt class="docutils literal"><span class="pre">0xFF</span></tt></td>
|
||||
<td><tt class="docutils literal"><span class="pre">0x9A</span></tt></td>
|
||||
<td><tt class="docutils literal"><span class="pre">0x04</span></tt></td>
|
||||
<td><tt class="docutils literal"><span class="pre">0x10</span></tt></td>
|
||||
<td>Coding as <tt class="docutils literal"><span class="pre">PC_to_RDR_Secure</span></tt></td>
|
||||
<td>Coding as <tt class="docutils literal"><span class="pre">RDR_to_PC_DataBlock</span></tt></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
@@ -326,7 +327,7 @@ an error</td>
|
||||
code are based on the GadgetFS example and on the source code of the OpenSC
|
||||
tools.</p>
|
||||
<div class="figure">
|
||||
<p><img src="../_images/tikz-927bd7fae1f8e258ad3c3c1b60bc0dc90153b26f.png" alt="\input{%(wd)s/bilder/tikzstyles.tex}
|
||||
<p><img src="../_images/tikz-5b402031da401947efbeae7481d47bd35196791d.svg" alt="\input{$wd/bilder/tikzstyles.tex}
|
||||
\tikzstyle{schicht}=[text width=5cm, align=right]
|
||||
\tikzstyle{fade down}=[path fading=south, color=huslateblue]
|
||||
|
||||
@@ -386,7 +387,7 @@ at ($($(ccid.two west)+(-3,0)$)!.5!(kernel.three west)$)
|
||||
needs a usable PC/SC middleware with USB CCID driver. This is the case for most
|
||||
modern Windows and Unix-like systems by default.</p>
|
||||
<div class="figure">
|
||||
<p><img src="../_images/tikz-051059070b2965bd273ce76c4955237e978bf27c.png" alt="\input{%(wd)s/bilder/tikzstyles.tex}
|
||||
<p><img src="../_images/tikz-6e71605956d62bb837a2533794c8c50348b2f87c.svg" alt="\input{$wd/bilder/tikzstyles.tex}
|
||||
\tikzstyle{keks}=[to path={-- ++(.1,0) |- (\tikztotarget)}]
|
||||
|
||||
\tikzstyle{bla}=[shape=rectangle split, rectangle split parts=2,
|
||||
@@ -398,13 +399,13 @@ every second node part/.style={kleiner}, inner sep=0pt]
|
||||
|
||||
\node (basis) [below=3of ccid-emulator]
|
||||
{\includegraphics[keepaspectratio, height=2cm,
|
||||
width=2cm]{%(wd)s/bilder/moko/basisleser_plain_klein.png}};
|
||||
width=2cm]{$wd/bilder/moko/basisleser_plain_klein.png}};
|
||||
\node (basisbeschreibung) [below=0cm of basis, kleiner, text width=2cm]
|
||||
{Reiner SCT RFID basis};
|
||||
|
||||
\node (npa) [left=1.5of basis]
|
||||
{\includegraphics[keepaspectratio, height=3cm,
|
||||
width=3cm]{%(wd)s/bilder/nPA_VS.png}};
|
||||
width=3cm]{$wd/bilder/nPA_VS.png}};
|
||||
\node (npabeschreibung) [below=0cm of npa, kleiner]
|
||||
{German identity card};
|
||||
|
||||
@@ -444,14 +445,14 @@ every second node part/.style={kleiner}, inner sep=0pt]
|
||||
(funktionenchat) (funktionenpace), box, inner sep=.5cm] {};
|
||||
\node (boxbild) at (box.north west)
|
||||
{\includegraphics[keepaspectratio, height=1.5cm,
|
||||
width=1.5cm]{%(wd)s/bilder/moko/moko_reader.png}};
|
||||
width=1.5cm]{$wd/bilder/moko/moko_reader.png}};
|
||||
\node [right=0cm of boxbild.east, yshift=.3cm]
|
||||
{Openmoko Neo FreeRunner};
|
||||
\end{pgfonlayer}
|
||||
|
||||
\node (a) [above=1of npa]
|
||||
{\includegraphics[keepaspectratio, height=3cm,
|
||||
width=3cm]{%(wd)s/bilder/computer-tango.pdf}};
|
||||
width=3cm]{$wd/bilder/computer-tango.pdf}};
|
||||
|
||||
|
||||
\begin{pgfonlayer}{background}
|
||||
@@ -476,14 +477,14 @@ still available on <a class="reference external" href="http://sourceforge.net/pr
|
||||
<div class="section" id="installation-on-linux-unix-and-similar">
|
||||
<h3>Installation on Linux, Unix and similar<a class="headerlink" href="#installation-on-linux-unix-and-similar" title="Permalink to this headline">¶</a></h3>
|
||||
<p>The USB CCID Emulator uses the GNU Build System to compile and install. If you are
|
||||
unfamiliar with it, please have a look at <code class="file docutils literal"><span class="pre">INSTALL</span></code>. If you can not find
|
||||
unfamiliar with it, please have a look at <tt class="file docutils literal"><span class="pre">INSTALL</span></tt>. If you can not find
|
||||
it, you are probably working bleeding edge in the repository. Run the
|
||||
following command in <code class="file docutils literal"><span class="pre">ccid-emulator</span></code> to get the missing standard
|
||||
following command in <tt class="file docutils literal"><span class="pre">ccid-emulator</span></tt> to get the missing standard
|
||||
auxiliary files:</p>
|
||||
<div class="highlight-sh"><div class="highlight"><pre>autoreconf --verbose --install
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>To configure (<strong class="command">configure --help</strong> lists possible options), build and
|
||||
<p>To configure (<strong class="command">configure –help</strong> lists possible options), build and
|
||||
install the USB CCID Emulator now do the following:</p>
|
||||
<div class="highlight-sh"><div class="highlight"><pre>./configure
|
||||
make
|
||||
@@ -524,7 +525,7 @@ loading the module, you maybe want to check out <a class="reference external" hr
|
||||
<div class="section" id="hints-on-opensc">
|
||||
<h3>Hints on OpenSC<a class="headerlink" href="#hints-on-opensc" title="Permalink to this headline">¶</a></h3>
|
||||
<p>USB CCID Emulator needs the OpenSC components to be
|
||||
installed (especially <code class="file docutils literal"><span class="pre">libopensc.so</span></code>). Here is an example of how to get
|
||||
installed (especially <tt class="file docutils literal"><span class="pre">libopensc.so</span></tt>). Here is an example of how to get
|
||||
the standard installation of OpenSC without <abbr title="Password Authenticated Connection Establishment">PACE</abbr>:</p>
|
||||
<div class="highlight-sh"><div class="highlight"><pre><span class="nv">PREFIX</span><span class="o">=</span>/tmp/install
|
||||
<span class="nv">VSMARTCARD</span><span class="o">=</span><span class="nv">$PWD</span>/vsmartcard
|
||||
@@ -538,7 +539,7 @@ autoreconf --verbose --install
|
||||
make install <span class="o">&&</span> <span class="nb">cd</span> -
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Now <code class="file docutils literal"><span class="pre">libopensc.so</span></code> should be located in <code class="docutils literal"><span class="pre">$PREFIX/lib</span></code>. Here is how to
|
||||
<p>Now <tt class="file docutils literal"><span class="pre">libopensc.so</span></tt> should be located in <tt class="docutils literal"><span class="pre">$PREFIX/lib</span></tt>. Here is how to
|
||||
configure the USB CCID Emulator to use it:</p>
|
||||
<div class="highlight-sh"><div class="highlight"><pre><span class="nb">cd</span> <span class="nv">$VSMARTCARD</span>/ccid
|
||||
./configure --prefix<span class="o">=</span><span class="nv">$PREFIX</span> <span class="nv">OPENSC_LIBS</span><span class="o">=</span><span class="s2">"-L</span><span class="nv">$PREFIX</span><span class="s2">/lib -lopensc"</span>
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>Welcome to the Virtual Smart Card Architecture documentation! — vsmartcard 2017-01-08 documentation</title>
|
||||
<title>Welcome to the Virtual Smart Card Architecture documentation! — 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" />
|
||||
@@ -15,7 +15,7 @@
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: './',
|
||||
VERSION: '2017-01-08',
|
||||
VERSION: '2017-01-16',
|
||||
COLLAPSE_INDEX: false,
|
||||
FILE_SUFFIX: '.html',
|
||||
HAS_SOURCE: true
|
||||
@@ -29,7 +29,7 @@
|
||||
<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-08 documentation" href="#" />
|
||||
<link rel="top" title="vsmartcard 2017-01-16 documentation" href="#" />
|
||||
<link rel="next" title="Virtual Smart Card" href="virtualsmartcard/README.html" />
|
||||
<meta charset='utf-8'>
|
||||
<meta http-equiv='X-UA-Compatible' content='IE=edge,chrome=1'>
|
||||
@@ -37,7 +37,7 @@
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
|
||||
</head>
|
||||
<body role="document">
|
||||
<body>
|
||||
|
||||
<a href="https://github.com/frankmorgner/vsmartcard"
|
||||
class="visible-desktop hidden-xs"><img
|
||||
@@ -84,6 +84,7 @@
|
||||
<li class="toctree-l1"><a class="reference internal" href="virtualsmartcard/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>
|
||||
@@ -152,7 +153,7 @@
|
||||
projects concerned with the emulation of different types of smart card readers
|
||||
or smart cards themselves.</p>
|
||||
<div class="figure">
|
||||
<p><img src="_images/tikz-a5bd0f208250d3d2c73ee51206b50fa3496b49e8.png" alt="\input{%(wd)s/bilder/tikzstyles.tex}
|
||||
<p><img src="_images/tikz-2debc244e414ed09dc8909102139ca8f37bae82b.svg" alt="\input{$wd/bilder/tikzstyles.tex}
|
||||
\tikzstyle{bla}=[box, klein, rounded rectangle, inner sep=.3cm]
|
||||
\node (a) {};
|
||||
|
||||
@@ -188,6 +189,9 @@ edge [out=0, in=180] (vsc.center)
|
||||
<li class="toctree-l1"><a class="reference internal" href="ACardEmulator/README.html">Android Smart Card Emulator</a><ul class="simple">
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="TCardEmulator/README.html">Tizen Smart Card Emulator</a><ul class="simple">
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="pcsc-relay/README.html">PC/SC Relay</a><ul class="simple">
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<meta content="0;URL='https://github.com/frankmorgner/OpenSC'" http-equiv="refresh" />
|
||||
|
||||
<title>nPA Smart Card Library — vsmartcard 2017-01-08 documentation</title>
|
||||
<title>nPA Smart Card Library — 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" />
|
||||
@@ -16,7 +16,7 @@
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: '../',
|
||||
VERSION: '2017-01-08',
|
||||
VERSION: '2017-01-16',
|
||||
COLLAPSE_INDEX: false,
|
||||
FILE_SUFFIX: '.html',
|
||||
HAS_SOURCE: true
|
||||
@@ -30,14 +30,14 @@
|
||||
<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-08 documentation" href="../index.html" />
|
||||
<link rel="top" title="vsmartcard 2017-01-16 documentation" href="../index.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 role="document">
|
||||
<body>
|
||||
|
||||
<a href="https://github.com/frankmorgner/vsmartcard"
|
||||
class="visible-desktop hidden-xs"><img
|
||||
@@ -84,6 +84,7 @@
|
||||
<li class="toctree-l1"><a class="reference internal" href="../virtualsmartcard/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>
|
||||
|
||||
BIN
docs/objects.inv
@@ -5,7 +5,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>PC/SC Relay — vsmartcard 2017-01-08 documentation</title>
|
||||
<title>PC/SC Relay — 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" />
|
||||
@@ -15,7 +15,7 @@
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: '../',
|
||||
VERSION: '2017-01-08',
|
||||
VERSION: '2017-01-16',
|
||||
COLLAPSE_INDEX: false,
|
||||
FILE_SUFFIX: '.html',
|
||||
HAS_SOURCE: true
|
||||
@@ -29,16 +29,16 @@
|
||||
<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-08 documentation" href="../index.html" />
|
||||
<link rel="top" title="vsmartcard 2017-01-16 documentation" href="../index.html" />
|
||||
<link rel="next" title="USB CCID Emulator" href="../ccid/README.html" />
|
||||
<link rel="prev" title="Android Smart Card Emulator" href="../ACardEmulator/README.html" />
|
||||
<link rel="prev" title="Tizen Smart Card Emulator" href="../TCardEmulator/README.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 role="document">
|
||||
<body>
|
||||
|
||||
<a href="https://github.com/frankmorgner/vsmartcard"
|
||||
class="visible-desktop hidden-xs"><img
|
||||
@@ -85,6 +85,7 @@
|
||||
<li class="toctree-l1"><a class="reference internal" href="../virtualsmartcard/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 current"><a class="current reference internal" href="">PC/SC Relay</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../ccid/README.html">USB CCID Emulator</a></li>
|
||||
</ul>
|
||||
@@ -126,7 +127,7 @@
|
||||
|
||||
|
||||
<li>
|
||||
<a href="../ACardEmulator/README.html" title="Previous Chapter: Android Smart Card Emulator"><span class="glyphicon glyphicon-chevron-left visible-sm"></span><span class="hidden-sm hidden-tablet">« Android Smart Ca...</span>
|
||||
<a href="../TCardEmulator/README.html" title="Previous Chapter: Tizen Smart Card Emulator"><span class="glyphicon glyphicon-chevron-left visible-sm"></span><span class="hidden-sm hidden-tablet">« Tizen Smart Card...</span>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
@@ -187,7 +188,7 @@ emulators are supported:</p>
|
||||
<ul class="simple">
|
||||
<li><a class="reference external" href="http://nfc-tools.org/index.php?title=Devices_compatibility_matrix">Hardware supported by libnfc</a> <a class="footnote-reference" href="#id1" id="id2">[1]</a></li>
|
||||
<li><a class="reference external" href="http://www.openpcd.org/OpenPICC">OpenPICC</a> <a class="footnote-reference" href="#id5" id="id6">[3]</a></li>
|
||||
<li><a class="reference internal" href="../ACardEmulator/README.html#acardemulator"><span>Android Smart Card Emulator</span></a></li>
|
||||
<li><a class="reference internal" href="../ACardEmulator/README.html#acardemulator"><em>Android Smart Card Emulator</em></a></li>
|
||||
</ul>
|
||||
<p>Command APDUs are received with the contact-less interface and relayed. The
|
||||
Response APDUs are then sent back via RFID. The contact-less data will be
|
||||
@@ -196,12 +197,12 @@ relayed to one of the following:</p>
|
||||
<li>to a <em>real</em> smart card inserted into one of the systems’ smart card readers.
|
||||
The smart card reader must be accessible with PC/SC. The smart card may be
|
||||
contact-based <em>or</em> contact-less.</li>
|
||||
<li>to a <a class="reference internal" href="../virtualsmartcard/README.html#vicc"><span>Virtual Smart Card</span></a> that directly connects to <strong class="command">pcsc-relay</strong>. The virtual
|
||||
<li>to a <a class="reference internal" href="../virtualsmartcard/README.html#vicc"><em>Virtual Smart Card</em></a> that directly connects to <strong class="command">pcsc-relay</strong>. The virtual
|
||||
smart card’s native interface is used and (despite its name) PC/SC Relay
|
||||
does not need to access PC/SC in this case.</li>
|
||||
</ul>
|
||||
<div class="figure">
|
||||
<p><img src="../_images/tikz-8fc7b6e929778eb1580309be9c7c7aef1d76d34c.png" alt="\input{%(wd)s/bilder/tikzstyles.tex}
|
||||
<p><img src="../_images/tikz-115ce7f91e19ed28b7af35a9f18aa096148209ea.svg" alt="\input{$wd/bilder/tikzstyles.tex}
|
||||
\node (pcsc-relay) {\texttt{pcsc-relay}};
|
||||
|
||||
\node [kleiner, right=2cm of pcsc-relay, yshift=.9cm]
|
||||
@@ -242,10 +243,10 @@ edge [out=0, in=180] (acardemulator.west)
|
||||
;
|
||||
\end{pgfonlayer}" /></p>
|
||||
<p class="caption">Debug, Analyze and Emulate with PC/SC Relay</p></div><p>With PC/SC Relay you can relay a contact-less or contact based smart card
|
||||
over a long distance. Also you can use it in combination with the <a class="reference internal" href="../virtualsmartcard/README.html#vicc"><span>Virtual Smart Card</span></a>
|
||||
over a long distance. Also you can use it in combination with the <a class="reference internal" href="../virtualsmartcard/README.html#vicc"><em>Virtual Smart Card</em></a>
|
||||
to completely emulate an ISO/IEC 14443 smart card.</p>
|
||||
<div class="figure">
|
||||
<p><img src="../_images/tikz-af7c500944810aa476bbd56c4c9693e6faec1d17.png" alt="\input{%(wd)s/bilder/tikzstyles.tex}
|
||||
<p><img src="../_images/tikz-0405e52eb98193c32482e91a30737e1e9684bad0.svg" alt="\input{$wd/bilder/tikzstyles.tex}
|
||||
\tikzstyle{bla}=[shape=rectangle split, rectangle split parts=2,
|
||||
every text node part/.style={align=center, klein}, text width=7cm,
|
||||
every second node part/.style={kleiner}, inner sep=0pt]
|
||||
@@ -254,7 +255,7 @@ every second node part/.style={kleiner}, inner sep=0pt]
|
||||
|
||||
\node (touchatag)
|
||||
{\includegraphics[keepaspectratio, height=2cm,
|
||||
width=2cm]{%(wd)s/bilder/touchatag.png}};
|
||||
width=2cm]{$wd/bilder/touchatag.png}};
|
||||
\node (touchatagbeschreibung) [below=0cm of touchatag, kleiner]
|
||||
{touchatag};
|
||||
|
||||
@@ -301,14 +302,14 @@ every second node part/.style={kleiner}, inner sep=0pt]
|
||||
(funktionenpace), box, inner sep=.5cm] {};
|
||||
\node (boxbild) at (box.north west)
|
||||
{\includegraphics[keepaspectratio, height=1.5cm,
|
||||
width=1.5cm]{%(wd)s/bilder/moko/moko_reader.png}};
|
||||
width=1.5cm]{$wd/bilder/moko/moko_reader.png}};
|
||||
\node [right=0cm of boxbild.east, yshift=.3cm]
|
||||
{Openmoko Neo FreeRunner};
|
||||
\end{pgfonlayer}
|
||||
|
||||
\node (a) [left=1.5of box]
|
||||
{\includegraphics[keepaspectratio, height=4cm,
|
||||
width=4cm]{%(wd)s/bilder/ivak_kiosk-terminal.pdf}};
|
||||
width=4cm]{$wd/bilder/ivak_kiosk-terminal.pdf}};
|
||||
\node (e) [below=0cm of a, text width=2.5cm, align=center]
|
||||
{(Public) Terminal};
|
||||
|
||||
@@ -348,14 +349,14 @@ still available on <a class="reference external" href="http://sourceforge.net/pr
|
||||
<div class="section" id="installation-on-linux-unix-and-similar">
|
||||
<h3>Installation on Linux, Unix and similar<a class="headerlink" href="#installation-on-linux-unix-and-similar" title="Permalink to this headline">¶</a></h3>
|
||||
<p>The PC/SC Relay uses the GNU Build System to compile and install. If you are
|
||||
unfamiliar with it, please have a look at <code class="file docutils literal"><span class="pre">INSTALL</span></code>. If you can not find
|
||||
unfamiliar with it, please have a look at <tt class="file docutils literal"><span class="pre">INSTALL</span></tt>. If you can not find
|
||||
it, you are probably working bleeding edge in the repository. Run the
|
||||
following command in <code class="file docutils literal"><span class="pre">pcsc-relay</span></code> to get the missing standard
|
||||
following command in <tt class="file docutils literal"><span class="pre">pcsc-relay</span></tt> to get the missing standard
|
||||
auxiliary files:</p>
|
||||
<div class="highlight-sh"><div class="highlight"><pre>autoreconf --verbose --install
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>To configure (<strong class="command">configure --help</strong> lists possible options), build and
|
||||
<p>To configure (<strong class="command">configure –help</strong> lists possible options), build and
|
||||
install the PC/SC Relay now do the following:</p>
|
||||
<div class="highlight-sh"><div class="highlight"><pre>./configure
|
||||
make
|
||||
@@ -379,7 +380,7 @@ make install
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Building PC/SC Relay with libnfc is done best using <strong class="command">pkg-config</strong>. The file
|
||||
<code class="file docutils literal"><span class="pre">libnfc.pc</span></code> should be located in <code class="docutils literal"><span class="pre">$INSTALL/lib/pkgconfig</span></code>. Here is how to
|
||||
<tt class="file docutils literal"><span class="pre">libnfc.pc</span></tt> should be located in <tt class="docutils literal"><span class="pre">$INSTALL/lib/pkgconfig</span></tt>. Here is how to
|
||||
configure PC/SC Relay to use it:</p>
|
||||
<div class="highlight-sh"><div class="highlight"><pre>./configure <span class="nv">PKG_CONFIG_PATH</span><span class="o">=</span><span class="nv">$PREFIX</span>/lib/pkgconfig
|
||||
</pre></div>
|
||||
@@ -391,23 +392,23 @@ configure PC/SC Relay to use it:</p>
|
||||
Android 4.4 and later. This mode activates the app if the terminal issues a
|
||||
SELECT command with one of the app’s application identifiers. By default, the
|
||||
app only registers for the AIDs for which it has a built-in emulator (see
|
||||
<code class="file docutils literal"><span class="pre">ACardEmulator/app/src/main/res/xml/aid_list.xml</span></code>).</p>
|
||||
<tt class="file docutils literal"><span class="pre">ACardEmulator/app/src/main/res/xml/aid_list.xml</span></tt>).</p>
|
||||
<p>If used together with PC/SC Relay, you need to change add AIDs to match the
|
||||
applications on the relayed card. Otherwise the app will not be activated when
|
||||
it should relay command APDUs to PC/SC Relay.</p>
|
||||
<p>Modify the Smart Card Emulator settings to use <code class="docutils literal"><span class="pre">Remote</span> <span class="pre">Virtual</span> <span class="pre">Smart</span> <span class="pre">Card</span></code> as
|
||||
<span class="guilabel">Smart Card Emulator</span>. Now start <strong class="command">pcsc-relay</strong> by specifying
|
||||
<p>Modify the Smart Card Emulator settings to use <tt class="docutils literal"><span class="pre">Remote</span> <span class="pre">Virtual</span> <span class="pre">Smart</span> <span class="pre">Card</span></tt> as
|
||||
<em class="guilabel">Smart Card Emulator</em>. Now start <strong class="command">pcsc-relay</strong> by specifying
|
||||
usage of the vpcd emulator:</p>
|
||||
<div class="highlight-sh"><div class="highlight"><pre>pcsc-relay --emulator vpcd
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>In the app, change the <span class="guilabel">VICC Hostname</span> and <span class="guilabel">VICC Port</span> to
|
||||
<p>In the app, change the <em class="guilabel">VICC Hostname</em> and <em class="guilabel">VICC Port</em> to
|
||||
match the location where <strong class="command">pcsc-relay</strong> is waiting for an incoming
|
||||
connection. When the app receives a SELECT command to one of the configured
|
||||
AIDs, it will connect to <strong class="command">pcsc-relay</strong>, which will then relay the
|
||||
command for processing.</p>
|
||||
<p>Compiling and installing Android Smart Card Emulator is covered in its
|
||||
<a class="reference internal" href="../ACardEmulator/README.html#acardemulator-install"><span>Download and Install</span></a> section.</p>
|
||||
<a class="reference internal" href="../ACardEmulator/README.html#acardemulator-install"><em>Download and Install</em></a> section.</p>
|
||||
</div>
|
||||
<div class="section" id="hints-on-pc-sc-middleware">
|
||||
<h3>Hints on PC/SC middleware<a class="headerlink" href="#hints-on-pc-sc-middleware" title="Permalink to this headline">¶</a></h3>
|
||||
@@ -474,21 +475,21 @@ command APDU and transmits a response APDU back to the terminal:</p>
|
||||
</colgroup>
|
||||
<thead valign="bottom">
|
||||
<tr class="row-odd"><th class="head">Option</th>
|
||||
<th class="head"><code class="docutils literal"><span class="pre">--emulator</span></code></th>
|
||||
<th class="head"><tt class="docutils literal"><span class="pre">--emulator</span></tt></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody valign="top">
|
||||
<tr class="row-even"><td>Emulation hardware supported via libnfc</td>
|
||||
<td><code class="docutils literal"><span class="pre">libnfc</span></code></td>
|
||||
<td><tt class="docutils literal"><span class="pre">libnfc</span></tt></td>
|
||||
</tr>
|
||||
<tr class="row-odd"><td>Emulation with OpenPICC</td>
|
||||
<td><code class="docutils literal"><span class="pre">openpicc</span></code></td>
|
||||
<td><tt class="docutils literal"><span class="pre">openpicc</span></tt></td>
|
||||
</tr>
|
||||
<tr class="row-even"><td>Android Smart Card Emulator</td>
|
||||
<td><code class="docutils literal"><span class="pre">vpcd</span></code></td>
|
||||
<td><tt class="docutils literal"><span class="pre">vpcd</span></tt></td>
|
||||
</tr>
|
||||
<tr class="row-odd"><td>Virtual Smart Card</td>
|
||||
<td><code class="docutils literal"><span class="pre">vpcd</span></code></td>
|
||||
<td><tt class="docutils literal"><span class="pre">vpcd</span></tt></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
@@ -501,21 +502,21 @@ a response APDU from a given command APDU:</p>
|
||||
</colgroup>
|
||||
<thead valign="bottom">
|
||||
<tr class="row-odd"><th class="head">Option</th>
|
||||
<th class="head"><code class="docutils literal"><span class="pre">--connector</span></code></th>
|
||||
<th class="head"><tt class="docutils literal"><span class="pre">--connector</span></tt></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody valign="top">
|
||||
<tr class="row-even"><td>Contact-based Smart Card in PC/SC Reader</td>
|
||||
<td><code class="docutils literal"><span class="pre">pcsc</span></code></td>
|
||||
<td><tt class="docutils literal"><span class="pre">pcsc</span></tt></td>
|
||||
</tr>
|
||||
<tr class="row-odd"><td>Contact-less Smart Card in PC/SC Reader</td>
|
||||
<td><code class="docutils literal"><span class="pre">pcsc</span></code></td>
|
||||
<td><tt class="docutils literal"><span class="pre">pcsc</span></tt></td>
|
||||
</tr>
|
||||
<tr class="row-even"><td>Contact-less Smart Card in Remote Smart Card Reader</td>
|
||||
<td><code class="docutils literal"><span class="pre">vicc</span></code></td>
|
||||
<td><tt class="docutils literal"><span class="pre">vicc</span></tt></td>
|
||||
</tr>
|
||||
<tr class="row-odd"><td>Virtual Smart Card</td>
|
||||
<td><code class="docutils literal"><span class="pre">vicc</span></code></td>
|
||||
<td><tt class="docutils literal"><span class="pre">vicc</span></tt></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>Remote Smart Card Reader — vsmartcard 2017-01-08 documentation</title>
|
||||
<title>Remote Smart Card Reader — 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" />
|
||||
@@ -15,7 +15,7 @@
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: '../',
|
||||
VERSION: '2017-01-08',
|
||||
VERSION: '2017-01-16',
|
||||
COLLAPSE_INDEX: false,
|
||||
FILE_SUFFIX: '.html',
|
||||
HAS_SOURCE: true
|
||||
@@ -29,7 +29,7 @@
|
||||
<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-08 documentation" href="../index.html" />
|
||||
<link rel="top" title="vsmartcard 2017-01-16 documentation" href="../index.html" />
|
||||
<link rel="next" title="Android Smart Card Emulator" href="../ACardEmulator/README.html" />
|
||||
<link rel="prev" title="Virtual Smart Card" href="../virtualsmartcard/README.html" />
|
||||
<meta charset='utf-8'>
|
||||
@@ -38,7 +38,7 @@
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
|
||||
</head>
|
||||
<body role="document">
|
||||
<body>
|
||||
|
||||
<a href="https://github.com/frankmorgner/vsmartcard"
|
||||
class="visible-desktop hidden-xs"><img
|
||||
@@ -85,6 +85,7 @@
|
||||
<li class="toctree-l1"><a class="reference internal" href="../virtualsmartcard/README.html">Virtual Smart Card</a></li>
|
||||
<li class="toctree-l1 current"><a class="current reference internal" href="">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>
|
||||
@@ -173,20 +174,20 @@ smartcard reader. On the host computer a special smart card driver, <abbr title=
|
||||
be installed. The app establishes a connection to <abbr title="virtual smart card reader">vpcd</abbr> over the network when a
|
||||
contact-less card is detected.</p>
|
||||
<div class="figure">
|
||||
<p><img src="../_images/tikz-45ae84ddba64f581420710f06ccc0cdc632a6e9b.png" alt="\input{%(wd)s/bilder/tikzstyles.tex}
|
||||
<p><img src="../_images/tikz-ce55fa00e38973c00fdf255926bb46304226f2dc.svg" alt="\input{$wd/bilder/tikzstyles.tex}
|
||||
\node (pcsc) [klein, aktivbox, inner xsep=.75cm, align=center] {PC/SC\\Framework};
|
||||
\node (sca) [aktivbox, klein, left=.75cm of pcsc, align=center] {Smart Card\\Application};
|
||||
\node (vpcd) [box, at=(pcsc.east), kleiner] {\texttt{vpcd}};
|
||||
\node (phone) [right=2cm of vpcd] {\includegraphics[width=3cm]{%(wd)s/bilder/smartphone.pdf}};
|
||||
\node (app) [at=(phone.center)] {\includegraphics[width=2.8cm, height=4.9cm]{%(wd)s/bilder/remote-reader.png}};
|
||||
\node (card) [right=0cm of phone, rotate=45] {\includegraphics[width=2cm]{%(wd)s/bilder/smartcard.pdf}};
|
||||
\node (phone) [right=2cm of vpcd] {\includegraphics[width=3cm]{$wd/bilder/smartphone.pdf}};
|
||||
\node (app) [at=(phone.center)] {\includegraphics[width=2.8cm, height=4.9cm]{$wd/bilder/remote-reader.png}};
|
||||
\node (card) [right=0cm of phone, rotate=45] {\includegraphics[width=2cm]{$wd/bilder/smartcard.pdf}};
|
||||
|
||||
\begin{pgfonlayer}{background}
|
||||
\node (box) [box, fit=(pcsc) (sca) (vpcd), inner ysep=1.5em] {};
|
||||
\node [at=(box.north west)] {\includegraphics[width=1cm]{%(wd)s/bilder/computer-tango.pdf}};
|
||||
\node [at=(box.north west)] {\includegraphics[width=1cm]{$wd/bilder/computer-tango.pdf}};
|
||||
\path[linie]
|
||||
(sca) edge (pcsc)
|
||||
(vpcd) edge node {\includegraphics[width=1.5cm]{%(wd)s/bilder/simplecloud.pdf}} (app)
|
||||
(vpcd) edge node {\includegraphics[width=1.5cm]{$wd/bilder/simplecloud.pdf}} (app)
|
||||
;
|
||||
\draw [rfid] (phone.center) -- (card.center) ;
|
||||
\end{pgfonlayer}" /></p>
|
||||
@@ -197,28 +198,28 @@ contact-less card is detected.</p>
|
||||
<li>permissions for a data connection (communication with <abbr title="virtual smart card reader">vpcd</abbr>) and for using
|
||||
NFC (communication to the card); scanning the configuration via QR code
|
||||
requires permission to access the camera</li>
|
||||
<li><abbr title="virtual smart card reader">vpcd</abbr> <a class="reference internal" href="../virtualsmartcard/README.html#vicc-install"><span>installed on the host computer</span></a></li>
|
||||
<li><abbr title="virtual smart card reader">vpcd</abbr> <a class="reference internal" href="../virtualsmartcard/README.html#vicc-install"><em>installed on the host computer</em></a></li>
|
||||
</ul>
|
||||
<p>For remotely accessing a traditional smart card reader on one computer from an
|
||||
other computer, the <a class="reference internal" href="../virtualsmartcard/README.html#vicc"><span>Virtual Smart Card</span></a> in relay mode can be used:</p>
|
||||
other computer, the <a class="reference internal" href="../virtualsmartcard/README.html#vicc"><em>Virtual Smart Card</em></a> in relay mode can be used:</p>
|
||||
<div class="figure">
|
||||
<p><img src="../_images/tikz-b656c61c22449778b2d8a4e7cff12ff17b559524.png" alt="\input{%(wd)s/bilder/tikzstyles.tex}
|
||||
<p><img src="../_images/tikz-f675fc9e85a93771428d0790db395907b3f662fe.svg" alt="\input{$wd/bilder/tikzstyles.tex}
|
||||
\node (pcsc) [klein, aktivbox, inner xsep=.75cm, align=center] {PC/SC\\Framework};
|
||||
\node (sca) [aktivbox, klein, left=.75cm of pcsc, align=center] {Smart Card\\Application};
|
||||
\node (vpcd) [box, at=(pcsc.east), kleiner] {\texttt{vpcd}};
|
||||
\node (pcsc2) [klein, aktivbox, inner xsep=.75cm, align=center, below=2.5cm of vpcd] {PC/SC\\Framework};
|
||||
\node (vicc) [aktivbox, left=1cm of pcsc2, kleiner] {\texttt{vicc -t relay}};
|
||||
\node (reader) [right=1cm of pcsc2] {\includegraphics[width=2cm]{%(wd)s/bilder/my_cardreader.pdf}};
|
||||
\node (card) [at=(reader.east), rotate=45] {\includegraphics[width=2cm]{%(wd)s/bilder/smartcard.pdf}};
|
||||
\node (reader) [right=1cm of pcsc2] {\includegraphics[width=2cm]{$wd/bilder/my_cardreader.pdf}};
|
||||
\node (card) [at=(reader.east), rotate=45] {\includegraphics[width=2cm]{$wd/bilder/smartcard.pdf}};
|
||||
|
||||
\begin{pgfonlayer}{background}
|
||||
\node (box) [box, fit=(pcsc) (sca) (vpcd), inner ysep=1.5em] {};
|
||||
\node (box2) [box, fit=(vicc) (pcsc2), inner ysep=1.5em] {};
|
||||
\node [at=(box.north west)] {\includegraphics[width=1cm]{%(wd)s/bilder/computer-tango.pdf}};
|
||||
\node [at=(box2.north west)] {\includegraphics[width=1cm]{%(wd)s/bilder/computer-tango.pdf}};
|
||||
\node [at=(box.north west)] {\includegraphics[width=1cm]{$wd/bilder/computer-tango.pdf}};
|
||||
\node [at=(box2.north west)] {\includegraphics[width=1cm]{$wd/bilder/computer-tango.pdf}};
|
||||
\path[linie]
|
||||
(sca) edge (pcsc)
|
||||
(vpcd) edge [out=south, in=north] node {\includegraphics[width=1.5cm]{%(wd)s/bilder/simplecloud.pdf}} (vicc)
|
||||
(vpcd) edge [out=south, in=north] node {\includegraphics[width=1.5cm]{$wd/bilder/simplecloud.pdf}} (vicc)
|
||||
(vicc) edge (pcsc2)
|
||||
(pcsc2) edge [usb] (reader.center)
|
||||
;
|
||||
@@ -239,8 +240,8 @@ but it generally concerns <em>all</em> contact-less smart cards.</p>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>We use <a class="reference external" href="http://developer.android.com/sdk/installing/studio.html">Android Studio</a> <a class="footnote-reference" href="#id1" id="id2">[1]</a> to build and deploy the application. Use
|
||||
<span class="menuselection">File ‣ Open</span> to select <code class="file docutils literal"><span class="pre">vsmartcard/remote-reader</span></code>.
|
||||
Attach your smartphone and choose <span class="menuselection">Run ‣ Run ‘app’</span>.</p>
|
||||
<em class="menuselection">File ‣ Open</em> to select <tt class="file docutils literal"><span class="pre">vsmartcard/remote-reader</span></tt>.
|
||||
Attach your smartphone and choose <em class="menuselection">Run ‣ Run ‘app’</em>.</p>
|
||||
<p>On the host system, where the smart card at the phone’s NFC interface is relayed to,
|
||||
<abbr title="virtual smart card reader">vpcd</abbr> needs to be installed. It can be installed on Windows and Unix. On the
|
||||
host computer, <strong class="command">vpcd-config</strong> prints a QR code to configure the Remote
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>Search — vsmartcard 2017-01-08 documentation</title>
|
||||
<title>Search — 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" />
|
||||
@@ -15,7 +15,7 @@
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: './',
|
||||
VERSION: '2017-01-08',
|
||||
VERSION: '2017-01-16',
|
||||
COLLAPSE_INDEX: false,
|
||||
FILE_SUFFIX: '.html',
|
||||
HAS_SOURCE: true
|
||||
@@ -30,7 +30,7 @@
|
||||
<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-08 documentation" href="index.html" />
|
||||
<link rel="top" title="vsmartcard 2017-01-16 documentation" href="index.html" />
|
||||
<script type="text/javascript">
|
||||
jQuery(function() { Search.loadIndex("searchindex.js"); });
|
||||
</script>
|
||||
@@ -44,7 +44,7 @@
|
||||
|
||||
|
||||
</head>
|
||||
<body role="document">
|
||||
<body>
|
||||
|
||||
<a href="https://github.com/frankmorgner/vsmartcard"
|
||||
class="visible-desktop hidden-xs"><img
|
||||
@@ -91,6 +91,7 @@
|
||||
<li class="toctree-l1"><a class="reference internal" href="virtualsmartcard/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>
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>Virtual Smart Card — vsmartcard 2017-01-08 documentation</title>
|
||||
<title>Virtual Smart Card — 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" />
|
||||
@@ -15,7 +15,7 @@
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: '../',
|
||||
VERSION: '2017-01-08',
|
||||
VERSION: '2017-01-16',
|
||||
COLLAPSE_INDEX: false,
|
||||
FILE_SUFFIX: '.html',
|
||||
HAS_SOURCE: true
|
||||
@@ -29,7 +29,7 @@
|
||||
<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-08 documentation" href="../index.html" />
|
||||
<link rel="top" title="vsmartcard 2017-01-16 documentation" href="../index.html" />
|
||||
<link rel="next" title="Remote Smart Card Reader" href="../remote-reader/README.html" />
|
||||
<link rel="prev" title="Welcome to the Virtual Smart Card Architecture documentation!" href="../index.html" />
|
||||
<meta charset='utf-8'>
|
||||
@@ -38,7 +38,7 @@
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
|
||||
</head>
|
||||
<body role="document">
|
||||
<body>
|
||||
|
||||
<a href="https://github.com/frankmorgner/vsmartcard"
|
||||
class="visible-desktop hidden-xs"><img
|
||||
@@ -85,6 +85,7 @@
|
||||
<li class="toctree-l1 current"><a class="current reference internal" href="">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>
|
||||
@@ -203,11 +204,11 @@ the PC/SC API. By default <abbr title="virtual smart card reader">vpcd</abbr> o
|
||||
need to run on the same machine as the <abbr title="virtual smart card reader">vpcd</abbr>, they can connect over the
|
||||
internet for example.</p>
|
||||
<p>Although the Virtual Smart Card is a software emulator, you can use
|
||||
<a class="reference internal" href="../pcsc-relay/README.html#pcsc-relay"><span>PC/SC Relay</span></a> to make it accessible to an external contact-less smart card
|
||||
<a class="reference internal" href="../pcsc-relay/README.html#pcsc-relay"><em>PC/SC Relay</em></a> to make it accessible to an external contact-less smart card
|
||||
reader.</p>
|
||||
<p>The file <code class="file docutils literal"><span class="pre">utils.py</span></code> was taken from Henryk Plötz’s <a class="reference external" href="https://github.com/henryk/cyberflex-shell">cyberflex-shell</a> <a class="footnote-reference" href="#id1" id="id2">[1]</a>.</p>
|
||||
<p>The file <tt class="file docutils literal"><span class="pre">utils.py</span></tt> was taken from Henryk Plötz’s <a class="reference external" href="https://github.com/henryk/cyberflex-shell">cyberflex-shell</a> <a class="footnote-reference" href="#id1" id="id2">[1]</a>.</p>
|
||||
<div class="figure">
|
||||
<p><img src="../_images/tikz-c2b6e0c4be766388efb50a965bcb6f691308c688.png" alt="\input{%(wd)s/bilder/tikzstyles.tex}
|
||||
<p><img src="../_images/tikz-b5a668553fb9bf21fb5abcc4cae46289d11490d1.svg" alt="\input{$wd/bilder/tikzstyles.tex}
|
||||
\node (pcsclite)
|
||||
[klein, aktivbox, inner xsep=.7cm, text width=3cm]
|
||||
{PC/SC Framework\\\
|
||||
@@ -220,17 +221,17 @@ reader.</p>
|
||||
\begin{pgfonlayer}{background}
|
||||
\path[linie]
|
||||
(sca) edge (pcsclite)
|
||||
(vpcd) edge node {\includegraphics[width=1.2cm]{%(wd)s/bilder/simplecloud.pdf}} (vicc)
|
||||
(vpcd) edge node {\includegraphics[width=1.2cm]{$wd/bilder/simplecloud.pdf}} (vicc)
|
||||
;
|
||||
\end{pgfonlayer}" /></p>
|
||||
<p class="caption">Virtual Smart Card used with PCSC-Lite or WinSCard</p></div><div class="versionadded">
|
||||
<p><span class="versionmodified">New in version 0.7: </span>The Virtual Smart Card optionally brings its own standalone implementation of
|
||||
PC/SC. This allows accessing <abbr title="virtual smart card">vpicc</abbr> without PCSC-Lite. Our PC/SC
|
||||
implementation acts as replacement for <code class="docutils literal"><span class="pre">libpcsclite</span></code> which can lead to
|
||||
implementation acts as replacement for <tt class="docutils literal"><span class="pre">libpcsclite</span></tt> which can lead to
|
||||
problems when used in parallel with PCSC-Lite.</p>
|
||||
</div>
|
||||
<div class="figure">
|
||||
<p><img src="../_images/tikz-e85c075dfcf44812d62f226411c87c9477920e37.png" alt="\input{%(wd)s/bilder/tikzstyles.tex}
|
||||
<p><img src="../_images/tikz-c523bba45f9fcaa801dd4f6284c7efa1f320c9b1.svg" alt="\input{$wd/bilder/tikzstyles.tex}
|
||||
\node (pcsclite)
|
||||
[klein, box, text width=4cm]
|
||||
{Virtual Smart Card's\\
|
||||
@@ -242,22 +243,22 @@ PC/SC Framework
|
||||
\begin{pgfonlayer}{background}
|
||||
\path[linie]
|
||||
(sca) edge (pcsclite)
|
||||
(pcsclite) edge node {\includegraphics[width=1.5cm]{%(wd)s/bilder/simplecloud.pdf}} (vicc)
|
||||
(pcsclite) edge node {\includegraphics[width=1.5cm]{$wd/bilder/simplecloud.pdf}} (vicc)
|
||||
;
|
||||
\end{pgfonlayer}" /></p>
|
||||
<p class="caption">Virtual Smart Card used with its own PC/SC implementation</p></div><p>On Android, where a traditional PC/SC framework is not available, you can use
|
||||
our framework to make your real contact-less smart accessible through PKCS#11.
|
||||
For example, an email signing application can use the PKCS#11 interface of
|
||||
OpenSC, which is linked against our PC/SC implementation. Then an Android App
|
||||
(e.g. <a class="reference internal" href="../remote-reader/README.html#remote-reader"><span>Remote Smart Card Reader</span></a>) can connect as <abbr title="virtual smart card">vpicc</abbr> delegating all requests and
|
||||
(e.g. <a class="reference internal" href="../remote-reader/README.html#remote-reader"><em>Remote Smart Card Reader</em></a>) can connect as <abbr title="virtual smart card">vpicc</abbr> delegating all requests and
|
||||
responses via NFC to a contact-less smart card that signs the mail.</p>
|
||||
<p>Depending on your usage of the <abbr title="virtual smart card">vpicc</abbr> you may need to install the following:</p>
|
||||
<ul class="simple">
|
||||
<li><a class="reference external" href="http://www.python.org/">Python</a> <a class="footnote-reference" href="#id5" id="id6">[3]</a></li>
|
||||
<li><a class="reference external" href="http://pyscard.sourceforge.net/">pyscard</a> <a class="footnote-reference" href="#id7" id="id8">[4]</a> (relaying a local smart card with <code class="xref std std-option docutils literal"><span class="pre">--type=relay</span></code>)</li>
|
||||
<li><a class="reference external" href="http://pyscard.sourceforge.net/">pyscard</a> <a class="footnote-reference" href="#id7" id="id8">[4]</a> (relaying a local smart card with <em class="xref std std-option">--type=relay</em>)</li>
|
||||
<li><a class="reference external" href="http://pycrypto.org/">PyCrypto</a> <a class="footnote-reference" href="#id9" id="id10">[5]</a>, <a class="reference external" href="https://www.dlitz.net/software/python-pbkdf2/">PBKDF2</a> <a class="footnote-reference" href="#id11" id="id12">[6]</a>, <a class="reference external" href="http://www.pythonware.com/products/pil/">PIL</a> <a class="footnote-reference" href="#id17" id="id18">[9]</a>, <a class="reference external" href="https://docs.python.org/3.3/library/readline.html">readline</a> <a class="footnote-reference" href="#id13" id="id14">[7]</a> or <a class="reference external" href="https://pypi.python.org/pypi/pyreadline">PyReadline</a> <a class="footnote-reference" href="#id15" id="id16">[8]</a> (emulation of electronic
|
||||
passport with <code class="xref std std-option docutils literal"><span class="pre">--type=ePass</span></code>)</li>
|
||||
<li><a class="reference external" href="https://github.com/frankmorgner/openpace">OpenPACE</a> <a class="footnote-reference" href="#id19" id="id20">[10]</a> (emulation of German identity card with <code class="xref std std-option docutils literal"><span class="pre">--type=nPA</span></code>)</li>
|
||||
passport with <em class="xref std std-option">--type=ePass</em>)</li>
|
||||
<li><a class="reference external" href="https://github.com/frankmorgner/openpace">OpenPACE</a> <a class="footnote-reference" href="#id19" id="id20">[10]</a> (emulation of German identity card with <em class="xref std std-option">--type=nPA</em>)</li>
|
||||
<li><a class="reference external" href="https://fukuchi.org/works/qrencode/">libqrencode</a> <a class="footnote-reference" href="#id21" id="id22">[11]</a> (to print a QR code on the command line for <cite>vpcd-config</cite>; an
|
||||
URL will be printed if libqrencode is not available)</li>
|
||||
</ul>
|
||||
@@ -275,14 +276,14 @@ still available on <a class="reference external" href="http://sourceforge.net/pr
|
||||
<div class="section" id="installation-on-linux-unix-and-similar">
|
||||
<h3>Installation on Linux, Unix and similar<a class="headerlink" href="#installation-on-linux-unix-and-similar" title="Permalink to this headline">¶</a></h3>
|
||||
<p>The Virtual Smart Card uses the GNU Build System to compile and install. If you are
|
||||
unfamiliar with it, please have a look at <code class="file docutils literal"><span class="pre">INSTALL</span></code>. If you can not find
|
||||
unfamiliar with it, please have a look at <tt class="file docutils literal"><span class="pre">INSTALL</span></tt>. If you can not find
|
||||
it, you are probably working bleeding edge in the repository. Run the
|
||||
following command in <code class="file docutils literal"><span class="pre">virtualsmartcard</span></code> to get the missing standard
|
||||
following command in <tt class="file docutils literal"><span class="pre">virtualsmartcard</span></tt> to get the missing standard
|
||||
auxiliary files:</p>
|
||||
<div class="highlight-sh"><div class="highlight"><pre>autoreconf --verbose --install
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>To configure (<strong class="command">configure --help</strong> lists possible options), build and
|
||||
<p>To configure (<strong class="command">configure –help</strong> lists possible options), build and
|
||||
install the Virtual Smart Card now do the following:</p>
|
||||
<div class="highlight-sh"><div class="highlight"><pre>./configure --sysconfdir<span class="o">=</span>/etc
|
||||
make
|
||||
@@ -293,12 +294,12 @@ make install
|
||||
<div class="section" id="building-and-installing-vpcd-on-mac-os-x">
|
||||
<h3>Building and installing <abbr title="virtual smart card reader">vpcd</abbr> on Mac OS X<a class="headerlink" href="#building-and-installing-vpcd-on-mac-os-x" title="Permalink to this headline">¶</a></h3>
|
||||
<p>Mac OS X 10.9 and earlier is using PCSC-Lite as smart card service which allows
|
||||
using the standard routine for <a class="reference internal" href="#vicc-install"><span>installation on Unix</span></a>.</p>
|
||||
using the standard routine for <a class="reference internal" href="#vicc-install"><em>installation on Unix</em></a>.</p>
|
||||
<p>Mac OS X 10.10 (and later) ships with a proprietary implementation of the PC/SC
|
||||
layer instead of with PCSC-Lite. As far as we know, this means that smart card
|
||||
readers must be USB devices instead of directly allowing a more generic type of
|
||||
reader. To make <abbr title="virtual smart card reader">vpcd</abbr> work we simply configure it to pretend being a USB smart
|
||||
card reader with an <code class="file docutils literal"><span class="pre">Ìnfo.plist</span></code>:</p>
|
||||
card reader with an <tt class="file docutils literal"><span class="pre">Ìnfo.plist</span></tt>:</p>
|
||||
<div class="highlight-sh"><div class="highlight"><pre>./configure --prefix<span class="o">=</span>/ --enable-infoplist
|
||||
make
|
||||
make install
|
||||
@@ -327,18 +328,18 @@ git submodule update --init --recursive
|
||||
</div>
|
||||
</li>
|
||||
<li><p class="first">In Visual Studio open <abbr title="virtual smart card reader">vpcd</abbr>‘s solution
|
||||
<code class="file docutils literal"><span class="pre">virtualsmartcard\win32\BixVReader.sln</span></code> and ensure with the
|
||||
<tt class="file docutils literal"><span class="pre">virtualsmartcard\win32\BixVReader.sln</span></tt> and ensure with the
|
||||
configuration manager, that the project is built for your platform (i.e.
|
||||
<code class="docutils literal"><span class="pre">x64</span></code> or <code class="docutils literal"><span class="pre">x82</span></code>).</p>
|
||||
<tt class="docutils literal"><span class="pre">x64</span></tt> or <tt class="docutils literal"><span class="pre">x82</span></tt>).</p>
|
||||
</li>
|
||||
<li><p class="first">If you can successfully <span class="guilabel">Build the solution</span>, you can find
|
||||
the installer (<code class="file docutils literal"><span class="pre">BixVReaderInstaller.msi</span></code>) in
|
||||
<code class="file docutils literal"><span class="pre">virtualsmartcard\win32\BixVReaderInstaller\bin\*Release</span></code></p>
|
||||
<li><p class="first">If you can successfully <em class="guilabel">Build the solution</em>, you can find
|
||||
the installer (<tt class="file docutils literal"><span class="pre">BixVReaderInstaller.msi</span></tt>) in
|
||||
<tt class="file docutils literal"><span class="pre">virtualsmartcard\win32\BixVReaderInstaller\bin\*Release</span></tt></p>
|
||||
</li>
|
||||
<li><p class="first">To install <abbr title="virtual smart card reader">vpcd</abbr>, double click <code class="file docutils literal"><span class="pre">BixVReaderInstaller.msi</span></code>. Since we
|
||||
<li><p class="first">To install <abbr title="virtual smart card reader">vpcd</abbr>, double click <tt class="file docutils literal"><span class="pre">BixVReaderInstaller.msi</span></tt>. Since we
|
||||
are currently not signing the Installer, this will yield a warning about an
|
||||
unverified driver software publisher on Windows 8 and later. Click
|
||||
<span class="guilabel">Install this driver software anyway</span>.</p>
|
||||
<em class="guilabel">Install this driver software anyway</em>.</p>
|
||||
</li>
|
||||
</ol>
|
||||
<p>For debugging <abbr title="virtual smart card reader">vpcd</abbr> and building the driver with an older version of Visual
|
||||
@@ -351,35 +352,35 @@ Reader</a> <a class="footnote-reference" href="#id23" id="id25">[12]</a> for det
|
||||
<div class="section" id="using-the-virtual-smart-card">
|
||||
<h2>Using the Virtual Smart Card<a class="headerlink" href="#using-the-virtual-smart-card" title="Permalink to this headline">¶</a></h2>
|
||||
<p>The protocol between <abbr title="virtual smart card reader">vpcd</abbr> and <abbr title="virtual smart card">vpicc</abbr> as well as details on extending <abbr title="virtual smart card">vpicc</abbr>
|
||||
with a different card emulator are covered in <a class="reference internal" href="api.html#virtualsmartcard-api"><span>Creating a Virtual Smart Card</span></a>. Here
|
||||
with a different card emulator are covered in <a class="reference internal" href="api.html#virtualsmartcard-api"><em>Creating a Virtual Smart Card</em></a>. Here
|
||||
we will focus on configuring and running the provided modules.</p>
|
||||
<div class="section" id="configuring-vpcd-on-unix">
|
||||
<span id="vicc-config"></span><h3>Configuring <abbr title="virtual smart card reader">vpcd</abbr> on Unix<a class="headerlink" href="#configuring-vpcd-on-unix" title="Permalink to this headline">¶</a></h3>
|
||||
<p>The configuration file of <abbr title="virtual smart card reader">vpcd</abbr> is usually placed into
|
||||
<code class="file docutils literal"><span class="pre">/etc/reader.conf.d/</span></code>. For older versions of PCSC-Lite you
|
||||
<tt class="file docutils literal"><span class="pre">/etc/reader.conf.d/</span></tt>. For older versions of PCSC-Lite you
|
||||
need to run <strong class="command">update-reader.conf</strong> to update <strong class="command">pcscd</strong>‘s main
|
||||
configuration file. The PC/SC daemon should read it and load the
|
||||
<abbr title="virtual smart card reader">vpcd</abbr> on startup. In debug mode <strong class="command">pcscd -f -d</strong> should say something
|
||||
like “Attempting startup of Virtual PCD” when loading <abbr title="virtual smart card reader">vpcd</abbr>.</p>
|
||||
<p>By default, <abbr title="virtual smart card reader">vpcd</abbr> opens a socket for <abbr title="virtual smart card">vpicc</abbr> and waits for incoming
|
||||
connections. The port to open should be specified in <code class="docutils literal"><span class="pre">CHANNELID</span></code> and
|
||||
<code class="docutils literal"><span class="pre">DEVICENAME</span></code>:</p>
|
||||
connections. The port to open should be specified in <tt class="docutils literal"><span class="pre">CHANNELID</span></tt> and
|
||||
<tt class="docutils literal"><span class="pre">DEVICENAME</span></tt>:</p>
|
||||
<div class="highlight-sh"><div class="highlight"><pre>FRIENDLYNAME <span class="s2">"Virtual PCD"</span>
|
||||
<span class="hll">DEVICENAME /dev/null:0x8C7B
|
||||
</span>LIBPATH /usr/lib/pcsc/drivers/serial/libifdvpcd.so
|
||||
<span class="hll">CHANNELID 0x8C7B
|
||||
</span></pre></div>
|
||||
</div>
|
||||
<p>If the first part of the <code class="docutils literal"><span class="pre">DEVICENAME</span></code> is different from <code class="docutils literal"><span class="pre">/dev/null</span></code>, <abbr title="virtual smart card reader">vpcd</abbr>
|
||||
<p>If the first part of the <tt class="docutils literal"><span class="pre">DEVICENAME</span></tt> is different from <tt class="docutils literal"><span class="pre">/dev/null</span></tt>, <abbr title="virtual smart card reader">vpcd</abbr>
|
||||
will use this string as a hostname for connecting to a waiting <abbr title="virtual smart card">vpicc</abbr>. <abbr title="virtual smart card">vpicc</abbr>
|
||||
needs to be started with <code class="xref std std-option docutils literal"><span class="pre">--reversed</span></code> in this case.</p>
|
||||
needs to be started with <em class="xref std std-option">--reversed</em> in this case.</p>
|
||||
</div>
|
||||
<div class="section" id="configuring-vpcd-on-mac-os-x">
|
||||
<h3>Configuring <abbr title="virtual smart card reader">vpcd</abbr> on Mac OS X<a class="headerlink" href="#configuring-vpcd-on-mac-os-x" title="Permalink to this headline">¶</a></h3>
|
||||
<p>Mac OS X 10.9 and earlier is using PCSC-Lite as smart card service which allows
|
||||
using the standard routine for <a class="reference internal" href="#vicc-config"><span>configuration on Unix</span></a>.</p>
|
||||
using the standard routine for <a class="reference internal" href="#vicc-config"><em>configuration on Unix</em></a>.</p>
|
||||
<p>On Mac OS X 10.10 you should have configured the generation of
|
||||
<code class="file docutils literal"><span class="pre">Info.plist</span></code> at compile time. Now do the following for registering <abbr title="virtual smart card reader">vpcd</abbr>
|
||||
<tt class="file docutils literal"><span class="pre">Info.plist</span></tt> at compile time. Now do the following for registering <abbr title="virtual smart card reader">vpcd</abbr>
|
||||
as USB device:</p>
|
||||
<ol class="arabic">
|
||||
<li><p class="first">Choose an USB device (e.g. mass storage, phone, mouse, ...), which will be
|
||||
@@ -390,7 +391,7 @@ used to start <abbr title="virtual smart card reader">vpcd</abbr>. Plug it into
|
||||
</pre></div>
|
||||
</div>
|
||||
</li>
|
||||
<li><p class="first">Change <code class="file docutils literal"><span class="pre">/usr/libexec/SmartCardServices/drivers/ifd-vpcd.bundle/Info.plist</span></code>
|
||||
<li><p class="first">Change <tt class="file docutils literal"><span class="pre">/usr/libexec/SmartCardServices/drivers/ifd-vpcd.bundle/Info.plist</span></tt>
|
||||
to match your product and vendor ID:</p>
|
||||
</li>
|
||||
</ol>
|
||||
@@ -446,8 +447,8 @@ to match your product and vendor ID:</p>
|
||||
</plist>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Note that <code class="docutils literal"><span class="pre">ifdFriendlyName</span></code> can be used in the same way as <code class="docutils literal"><span class="pre">DEVICENAME</span></code>
|
||||
<a class="reference internal" href="#vicc-config"><span>described above</span></a>.</p>
|
||||
<p>Note that <tt class="docutils literal"><span class="pre">ifdFriendlyName</span></tt> can be used in the same way as <tt class="docutils literal"><span class="pre">DEVICENAME</span></tt>
|
||||
<a class="reference internal" href="#vicc-config"><em>described above</em></a>.</p>
|
||||
<ol class="arabic" start="4">
|
||||
<li><p class="first">Restart the PC/SC service:</p>
|
||||
<div class="highlight-sh"><div class="highlight"><pre>sudo killall -SIGKILL -m .*com.apple.ifdreader
|
||||
@@ -460,13 +461,13 @@ stopped when you unplug the device.</p>
|
||||
</div>
|
||||
<div class="section" id="configuring-vpcd-on-windows">
|
||||
<h3>Configuring <abbr title="virtual smart card reader">vpcd</abbr> on Windows<a class="headerlink" href="#configuring-vpcd-on-windows" title="Permalink to this headline">¶</a></h3>
|
||||
<p>The configuration file <code class="file docutils literal"><span class="pre">BixVReader.ini</span></code> of <abbr title="virtual smart card reader">vpcd</abbr> is installed to
|
||||
<code class="file docutils literal"><span class="pre">C:\Windows</span></code> (<span class="target" id="index-0"></span><code class="xref std std-envvar docutils literal"><span class="pre">%SystemRoot%</span></code>). The user mode device driver
|
||||
<p>The configuration file <tt class="file docutils literal"><span class="pre">BixVReader.ini</span></tt> of <abbr title="virtual smart card reader">vpcd</abbr> is installed to
|
||||
<tt class="file docutils literal"><span class="pre">C:\Windows</span></tt> (<span class="target" id="index-0"></span><tt class="xref std std-envvar docutils literal"><span class="pre">%SystemRoot%</span></tt>). The user mode device driver
|
||||
framework (<strong class="command">WUDFHost.exe</strong>) should read it automatically and load the
|
||||
<abbr title="virtual smart card reader">vpcd</abbr> on startup. The Windows Device Manager <strong class="command">mmc devmgmt.msc</strong> should
|
||||
list the <span class="guilabel">Bix Virtual Smart Card Reader</span>.</p>
|
||||
list the <em class="guilabel">Bix Virtual Smart Card Reader</em>.</p>
|
||||
<p><abbr title="virtual smart card reader">vpcd</abbr> opens a socket for <abbr title="virtual smart card">vpicc</abbr> and waits for incoming connections. The port
|
||||
to open should be specified in <code class="docutils literal"><span class="pre">TCP_PORT</span></code>:</p>
|
||||
to open should be specified in <tt class="docutils literal"><span class="pre">TCP_PORT</span></tt>:</p>
|
||||
<div class="highlight-sh"><div class="highlight"><pre><span class="o">[</span>Driver<span class="o">]</span>
|
||||
<span class="nv">NumReaders</span><span class="o">=</span>3
|
||||
|
||||
@@ -491,7 +492,7 @@ to open should be specified in <code class="docutils literal"><span class="pre">
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Currently it is not possible to configure the Windows driver to connect to an
|
||||
<abbr title="virtual smart card">vpicc</abbr> running with <code class="xref std std-option docutils literal"><span class="pre">--reversed</span></code>.</p>
|
||||
<abbr title="virtual smart card">vpicc</abbr> running with <em class="xref std std-option">--reversed</em>.</p>
|
||||
</div>
|
||||
<div class="section" id="running-vpicc">
|
||||
<h3>Running <abbr title="virtual smart card">vpicc</abbr><a class="headerlink" href="#running-vpicc" title="Permalink to this headline">¶</a></h3>
|
||||
@@ -499,7 +500,7 @@ to open should be specified in <code class="docutils literal"><span class="pre">
|
||||
dependencies listed above need to be installed seperately. You can start the
|
||||
<abbr title="virtual smart card">vpicc</abbr> via <strong class="command">python.exe vicc.py</strong>. On all other systems an executable
|
||||
script <strong class="command">vicc</strong> is installed using the autotools.</p>
|
||||
<p>The <abbr title="virtual smart card">vpicc</abbr> option <code class="xref std std-option docutils literal"><span class="pre">--help</span></code> gives an overview about the command line
|
||||
<p>The <abbr title="virtual smart card">vpicc</abbr> option <em class="xref std std-option">--help</em> gives an overview about the command line
|
||||
switches:</p>
|
||||
<div class="highlight-text"><div class="highlight"><pre>usage: vicc [-h] [-t {iso7816,cryptoflex,ePass,nPA,relay,handler_test}] [-v]
|
||||
[-f FILE] [-H HOSTNAME] [-P PORT] [-R] [--version]
|
||||
@@ -570,9 +571,9 @@ Report bugs to https://github.com/frankmorgner/vsmartcard/issues
|
||||
<div class="versionadded">
|
||||
<p><span class="versionmodified">New in version 0.7: </span>We implemented <strong class="command">vpcd-config</strong> which tries to guess the local IP
|
||||
address and outputs <abbr title="virtual smart card reader">vpcd</abbr>‘s configuration. <abbr title="virtual smart card">vpicc</abbr>‘s options should be
|
||||
chosen accordingly (<code class="xref std std-option docutils literal"><span class="pre">--hostname</span></code> and <code class="xref std std-option docutils literal"><span class="pre">--port</span></code>)
|
||||
chosen accordingly (<em class="xref std std-option">--hostname</em> and <em class="xref std std-option">--port</em>)
|
||||
<strong class="command">vpcd-config</strong> also prints a QR code for configuration of the
|
||||
<a class="reference internal" href="../remote-reader/README.html#remote-reader"><span>Remote Smart Card Reader</span></a>.</p>
|
||||
<a class="reference internal" href="../remote-reader/README.html#remote-reader"><em>Remote Smart Card Reader</em></a>.</p>
|
||||
</div>
|
||||
<p>When <abbr title="virtual smart card reader">vpcd</abbr> and <abbr title="virtual smart card">vpicc</abbr> are connected you should be able to access the card
|
||||
through the PC/SC API. You can use the <strong class="command">opensc-explorer</strong> or
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>Creating a Virtual Smart Card — vsmartcard 2017-01-08 documentation</title>
|
||||
<title>Creating a Virtual Smart Card — 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" />
|
||||
@@ -15,7 +15,7 @@
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: '../',
|
||||
VERSION: '2017-01-08',
|
||||
VERSION: '2017-01-16',
|
||||
COLLAPSE_INDEX: false,
|
||||
FILE_SUFFIX: '.html',
|
||||
HAS_SOURCE: true
|
||||
@@ -29,7 +29,7 @@
|
||||
<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-08 documentation" href="../index.html" />
|
||||
<link rel="top" title="vsmartcard 2017-01-16 documentation" href="../index.html" />
|
||||
<link rel="next" title="virtualsmartcard Package" href="api/virtualsmartcard.html" />
|
||||
<link rel="prev" title="USB CCID Emulator" href="../ccid/README.html" />
|
||||
<meta charset='utf-8'>
|
||||
@@ -38,7 +38,7 @@
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
|
||||
</head>
|
||||
<body role="document">
|
||||
<body>
|
||||
|
||||
<a href="https://github.com/frankmorgner/vsmartcard"
|
||||
class="visible-desktop hidden-xs"><img
|
||||
@@ -85,6 +85,7 @@
|
||||
<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>
|
||||
@@ -157,8 +158,8 @@
|
||||
|
||||
<div class="section" id="creating-a-virtual-smart-card">
|
||||
<span id="virtualsmartcard-api"></span><h1>Creating a Virtual Smart Card<a class="headerlink" href="#creating-a-virtual-smart-card" title="Permalink to this headline">¶</a></h1>
|
||||
<p><abbr title="virtual smart card reader">vpcd</abbr> communicates over a socked with <abbr title="virtual smart card">vpicc</abbr> usually on port <code class="docutils literal"><span class="pre">0x8C7B</span></code>
|
||||
(configurably via <code class="file docutils literal"><span class="pre">/etc/reader.conf.d/vpcd</span></code>). So you can connect
|
||||
<p><abbr title="virtual smart card reader">vpcd</abbr> communicates over a socked with <abbr title="virtual smart card">vpicc</abbr> usually on port <tt class="docutils literal"><span class="pre">0x8C7B</span></tt>
|
||||
(configurably via <tt class="file docutils literal"><span class="pre">/etc/reader.conf.d/vpcd</span></tt>). So you can connect
|
||||
virtually any program to the virtual smart card reader, as long as you respect
|
||||
the following protocol:</p>
|
||||
<table border="1" class="docutils" id="vpcd-commands">
|
||||
@@ -179,29 +180,29 @@ the following protocol:</p>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody valign="top">
|
||||
<tr class="row-odd"><td><code class="docutils literal"><span class="pre">0x00</span> <span class="pre">0x01</span></code></td>
|
||||
<td><code class="docutils literal"><span class="pre">0x00</span></code> (Power Off)</td>
|
||||
<tr class="row-odd"><td><tt class="docutils literal"><span class="pre">0x00</span> <span class="pre">0x01</span></tt></td>
|
||||
<td><tt class="docutils literal"><span class="pre">0x00</span></tt> (Power Off)</td>
|
||||
<td> </td>
|
||||
<td>(No Response)</td>
|
||||
</tr>
|
||||
<tr class="row-even"><td><code class="docutils literal"><span class="pre">0x00</span> <span class="pre">0x01</span></code></td>
|
||||
<td><code class="docutils literal"><span class="pre">0x01</span></code> (Power On)</td>
|
||||
<tr class="row-even"><td><tt class="docutils literal"><span class="pre">0x00</span> <span class="pre">0x01</span></tt></td>
|
||||
<td><tt class="docutils literal"><span class="pre">0x01</span></tt> (Power On)</td>
|
||||
<td> </td>
|
||||
<td>(No Response)</td>
|
||||
</tr>
|
||||
<tr class="row-odd"><td><code class="docutils literal"><span class="pre">0x00</span> <span class="pre">0x01</span></code></td>
|
||||
<td><code class="docutils literal"><span class="pre">0x02</span></code> (Reset)</td>
|
||||
<tr class="row-odd"><td><tt class="docutils literal"><span class="pre">0x00</span> <span class="pre">0x01</span></tt></td>
|
||||
<td><tt class="docutils literal"><span class="pre">0x02</span></tt> (Reset)</td>
|
||||
<td> </td>
|
||||
<td>(No Response)</td>
|
||||
</tr>
|
||||
<tr class="row-even"><td><code class="docutils literal"><span class="pre">0x00</span> <span class="pre">0x01</span></code></td>
|
||||
<td><code class="docutils literal"><span class="pre">0x04</span></code> (Get ATR)</td>
|
||||
<td><code class="docutils literal"><span class="pre">0xXX</span> <span class="pre">0xXX</span></code></td>
|
||||
<tr class="row-even"><td><tt class="docutils literal"><span class="pre">0x00</span> <span class="pre">0x01</span></tt></td>
|
||||
<td><tt class="docutils literal"><span class="pre">0x04</span></tt> (Get ATR)</td>
|
||||
<td><tt class="docutils literal"><span class="pre">0xXX</span> <span class="pre">0xXX</span></tt></td>
|
||||
<td>(ATR)</td>
|
||||
</tr>
|
||||
<tr class="row-odd"><td><code class="docutils literal"><span class="pre">0xXX</span> <span class="pre">0xXX</span></code></td>
|
||||
<tr class="row-odd"><td><tt class="docutils literal"><span class="pre">0xXX</span> <span class="pre">0xXX</span></tt></td>
|
||||
<td>(APDU)</td>
|
||||
<td><code class="docutils literal"><span class="pre">0xXX</span> <span class="pre">0xXX</span></code></td>
|
||||
<td><tt class="docutils literal"><span class="pre">0xXX</span> <span class="pre">0xXX</span></tt></td>
|
||||
<td>(R-APDU)</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
@@ -255,14 +256,14 @@ ISO 7816. But as for most complex software you need to know where you need to
|
||||
hook into. Here we only want to give an overview to the design, the complete
|
||||
details can be found in section <a class="reference internal" href="#documentation-to-virtual-smart-card">Documentation to Virtual Smart Card</a>.</p>
|
||||
<p>Back to the cryptoflex example.
|
||||
<a class="reference internal" href="api/virtualsmartcard.VirtualSmartcard.html#virtualsmartcard.VirtualSmartcard.VirtualICC" title="virtualsmartcard.VirtualSmartcard.VirtualICC"><code class="xref py py-class docutils literal"><span class="pre">VirtualICC</span></code></a> provides the connection
|
||||
<a class="reference internal" href="api/virtualsmartcard.VirtualSmartcard.html#virtualsmartcard.VirtualSmartcard.VirtualICC" title="virtualsmartcard.VirtualSmartcard.VirtualICC"><tt class="xref py py-class docutils literal"><span class="pre">VirtualICC</span></tt></a> provides the connection
|
||||
to the virtual smart card reader. It fetches an <abbr title="Application Protocol Data Unit">APDU</abbr> and other requests from
|
||||
the <abbr title="virtual smart card reader">vpcd</abbr>. In <a class="reference internal" href="api/virtualsmartcard.VirtualSmartcard.html#virtualsmartcard.VirtualSmartcard.VirtualICC" title="virtualsmartcard.VirtualSmartcard.VirtualICC"><code class="xref py py-class docutils literal"><span class="pre">VirtualICC</span></code></a> an <abbr title="Application Protocol Data Unit">APDU</abbr>
|
||||
the <abbr title="virtual smart card reader">vpcd</abbr>. In <a class="reference internal" href="api/virtualsmartcard.VirtualSmartcard.html#virtualsmartcard.VirtualSmartcard.VirtualICC" title="virtualsmartcard.VirtualSmartcard.VirtualICC"><tt class="xref py py-class docutils literal"><span class="pre">VirtualICC</span></tt></a> an <abbr title="Application Protocol Data Unit">APDU</abbr>
|
||||
is only a buffer that is forwarded to the smart card OS. First we modify
|
||||
<a class="reference internal" href="api/virtualsmartcard.VirtualSmartcard.html#virtualsmartcard.VirtualSmartcard.VirtualICC" title="virtualsmartcard.VirtualSmartcard.VirtualICC"><code class="xref py py-class docutils literal"><span class="pre">VirtualICC</span></code></a> to recognize a new type
|
||||
<code class="docutils literal"><span class="pre">"cryptoflex"</span></code> and to load
|
||||
<a class="reference internal" href="api/virtualsmartcard.cards.cryptoflex.html#virtualsmartcard.cards.cryptoflex.CryptoflexOS" title="virtualsmartcard.cards.cryptoflex.CryptoflexOS"><code class="xref py py-class docutils literal"><span class="pre">CryptoflexOS</span></code></a>. The
|
||||
<a class="reference internal" href="api/virtualsmartcard.CardGenerator.html#module-virtualsmartcard.CardGenerator" title="virtualsmartcard.CardGenerator"><code class="xref py py-class docutils literal"><span class="pre">CardGenerator</span></code></a> is used to create a file system and a
|
||||
<a class="reference internal" href="api/virtualsmartcard.VirtualSmartcard.html#virtualsmartcard.VirtualSmartcard.VirtualICC" title="virtualsmartcard.VirtualSmartcard.VirtualICC"><tt class="xref py py-class docutils literal"><span class="pre">VirtualICC</span></tt></a> to recognize a new type
|
||||
<tt class="docutils literal"><span class="pre">"cryptoflex"</span></tt> and to load
|
||||
<a class="reference internal" href="api/virtualsmartcard.cards.cryptoflex.html#virtualsmartcard.cards.cryptoflex.CryptoflexOS" title="virtualsmartcard.cards.cryptoflex.CryptoflexOS"><tt class="xref py py-class docutils literal"><span class="pre">CryptoflexOS</span></tt></a>. The
|
||||
<a class="reference internal" href="api/virtualsmartcard.CardGenerator.html#module-virtualsmartcard.CardGenerator" title="virtualsmartcard.CardGenerator"><tt class="xref py py-class docutils literal"><span class="pre">CardGenerator</span></tt></a> is used to create a file system and a
|
||||
<abbr title="Secure Access Module">SAM</abbr> specific to the cryptoflex (we come back to this later).</p>
|
||||
<div class="highlight-python"><div class="highlight"><pre> <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">datasetfile</span><span class="p">,</span> <span class="n">card_type</span><span class="p">,</span> <span class="n">host</span><span class="p">,</span> <span class="n">port</span><span class="p">,</span>
|
||||
<span class="n">readernum</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">ef_cardsecurity</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">ef_cardaccess</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span>
|
||||
@@ -359,7 +360,7 @@ is only a buffer that is forwarded to the smart card OS. First we modify
|
||||
<p>Responses from our cryptoflex card look the same as for the 7816 card. But when
|
||||
a command was successfull (or not) there is a little difference in what is
|
||||
returned. So we need to edit
|
||||
<a class="reference internal" href="api/virtualsmartcard.cards.cryptoflex.html#virtualsmartcard.cards.cryptoflex.CryptoflexOS.formatResult" title="virtualsmartcard.cards.cryptoflex.CryptoflexOS.formatResult"><code class="xref py py-class docutils literal"><span class="pre">formatResult</span></code></a>, which is
|
||||
<a class="reference internal" href="api/virtualsmartcard.cards.cryptoflex.html#virtualsmartcard.cards.cryptoflex.CryptoflexOS.formatResult" title="virtualsmartcard.cards.cryptoflex.CryptoflexOS.formatResult"><tt class="xref py py-class docutils literal"><span class="pre">formatResult</span></tt></a>, which is
|
||||
called to encode the <abbr title="status bytes SW 1 and SW 2">SWs</abbr> and the resulting data.</p>
|
||||
<div class="highlight-python"><div class="highlight"><pre> <span class="k">def</span> <span class="nf">formatResult</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">ins</span><span class="p">,</span> <span class="n">le</span><span class="p">,</span> <span class="n">data</span><span class="p">,</span> <span class="n">sw</span><span class="p">):</span>
|
||||
<span class="k">if</span> <span class="n">le</span> <span class="o">==</span> <span class="mi">0</span> <span class="ow">and</span> <span class="nb">len</span><span class="p">(</span><span class="n">data</span><span class="p">):</span>
|
||||
@@ -383,15 +384,15 @@ called to encode the <abbr title="status bytes SW 1 and SW 2">SWs</abbr> and the
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Note that this also requires some insight knowledge about how
|
||||
<a class="reference internal" href="api/virtualsmartcard.VirtualSmartcard.html#virtualsmartcard.VirtualSmartcard.Iso7816OS" title="virtualsmartcard.VirtualSmartcard.Iso7816OS"><code class="xref py py-class docutils literal"><span class="pre">Iso7816OS</span></code></a> works.</p>
|
||||
<a class="reference internal" href="api/virtualsmartcard.VirtualSmartcard.html#virtualsmartcard.VirtualSmartcard.Iso7816OS" title="virtualsmartcard.VirtualSmartcard.Iso7816OS"><tt class="xref py py-class docutils literal"><span class="pre">Iso7816OS</span></tt></a> works.</p>
|
||||
<p>The previously created <abbr title="Secure Access Module">SAM</abbr> handles keys, encryption, secure messaging and so
|
||||
on (we will not go into more details here). The file system creates, selects
|
||||
and reads contents of files or directories. File handling for our cryptoflex
|
||||
card is similar to ISO 7816, but the meaning of P1, P2 and the <abbr title="Application Protocol Data Unit">APDU</abbr> data is
|
||||
completely different when creating a file on the smart card. So we derive
|
||||
<a class="reference internal" href="api/virtualsmartcard.cards.cryptoflex.html#virtualsmartcard.cards.cryptoflex.CryptoflexMF" title="virtualsmartcard.cards.cryptoflex.CryptoflexMF"><code class="xref py py-class docutils literal"><span class="pre">CryptoflexMF</span></code></a> from
|
||||
<a class="reference internal" href="api/virtualsmartcard.SmartcardFilesystem.html#virtualsmartcard.SmartcardFilesystem.MF" title="virtualsmartcard.SmartcardFilesystem.MF"><code class="xref py py-class docutils literal"><span class="pre">MF</span></code></a> and modify
|
||||
<a class="reference internal" href="api/virtualsmartcard.cards.cryptoflex.html#virtualsmartcard.cards.cryptoflex.CryptoflexMF.create" title="virtualsmartcard.cards.cryptoflex.CryptoflexMF.create"><code class="xref py py-class docutils literal"><span class="pre">create</span></code></a> to our needs.</p>
|
||||
<a class="reference internal" href="api/virtualsmartcard.cards.cryptoflex.html#virtualsmartcard.cards.cryptoflex.CryptoflexMF" title="virtualsmartcard.cards.cryptoflex.CryptoflexMF"><tt class="xref py py-class docutils literal"><span class="pre">CryptoflexMF</span></tt></a> from
|
||||
<a class="reference internal" href="api/virtualsmartcard.SmartcardFilesystem.html#virtualsmartcard.SmartcardFilesystem.MF" title="virtualsmartcard.SmartcardFilesystem.MF"><tt class="xref py py-class docutils literal"><span class="pre">MF</span></tt></a> and modify
|
||||
<a class="reference internal" href="api/virtualsmartcard.cards.cryptoflex.html#virtualsmartcard.cards.cryptoflex.CryptoflexMF.create" title="virtualsmartcard.cards.cryptoflex.CryptoflexMF.create"><tt class="xref py py-class docutils literal"><span class="pre">create</span></tt></a> to our needs.</p>
|
||||
<div class="highlight-python"><div class="highlight"><pre> <span class="k">def</span> <span class="nf">create</span><span class="p">(</span><span class="n">p1</span><span class="p">,</span> <span class="n">p2</span><span class="p">,</span> <span class="n">data</span><span class="p">):</span>
|
||||
|
||||
<span class="k">if</span> <span class="n">data</span><span class="p">[</span><span class="mi">0</span><span class="p">:</span><span class="mi">2</span><span class="p">]</span> <span class="o">!=</span> <span class="s">"</span><span class="se">\xff\xff</span><span class="s">"</span><span class="p">:</span>
|
||||
@@ -445,11 +446,11 @@ your modifications...</p>
|
||||
magic that is done while parsing a buffer (an <abbr title="Application Protocol Data Unit">APDU</abbr>). As example we will
|
||||
connect to an other smart card using PC/SC and forward it to <abbr title="virtual smart card reader">vpcd</abbr>.</p>
|
||||
<p>As before with the cryptoflex card, we let
|
||||
<a class="reference internal" href="api/virtualsmartcard.VirtualSmartcard.html#virtualsmartcard.VirtualSmartcard.VirtualICC" title="virtualsmartcard.VirtualSmartcard.VirtualICC"><code class="xref py py-class docutils literal"><span class="pre">VirtualICC</span></code></a> recognize the new type
|
||||
<code class="docutils literal"><span class="pre">"relay"</span></code>. <a class="reference internal" href="api/virtualsmartcard.cards.Relay.html#virtualsmartcard.cards.Relay.RelayOS" title="virtualsmartcard.cards.Relay.RelayOS"><code class="xref py py-class docutils literal"><span class="pre">RelayOS</span></code></a> overwrites all
|
||||
<a class="reference internal" href="api/virtualsmartcard.VirtualSmartcard.html#virtualsmartcard.VirtualSmartcard.VirtualICC" title="virtualsmartcard.VirtualSmartcard.VirtualICC"><tt class="xref py py-class docutils literal"><span class="pre">VirtualICC</span></tt></a> recognize the new type
|
||||
<tt class="docutils literal"><span class="pre">"relay"</span></tt>. <a class="reference internal" href="api/virtualsmartcard.cards.Relay.html#virtualsmartcard.cards.Relay.RelayOS" title="virtualsmartcard.cards.Relay.RelayOS"><tt class="xref py py-class docutils literal"><span class="pre">RelayOS</span></tt></a> overwrites all
|
||||
main functions from the template
|
||||
<a class="reference internal" href="api/virtualsmartcard.VirtualSmartcard.html#virtualsmartcard.VirtualSmartcard.SmartcardOS" title="virtualsmartcard.VirtualSmartcard.SmartcardOS"><code class="xref py py-class docutils literal"><span class="pre">SmartcardOS</span></code></a>. Its functions correspond
|
||||
to the <a class="reference internal" href="#vpcd-commands"><span>commands sent by vpcd</span></a>. If you know how to use
|
||||
<a class="reference internal" href="api/virtualsmartcard.VirtualSmartcard.html#virtualsmartcard.VirtualSmartcard.SmartcardOS" title="virtualsmartcard.VirtualSmartcard.SmartcardOS"><tt class="xref py py-class docutils literal"><span class="pre">SmartcardOS</span></tt></a>. Its functions correspond
|
||||
to the <a class="reference internal" href="#vpcd-commands"><em>commands sent by vpcd</em></a>. If you know how to use
|
||||
<a class="reference external" href="http://pyscard.sourceforge.net/">pyscard</a> then the rest is pretty straight
|
||||
forward, but see yourself...</p>
|
||||
<div class="highlight-python"><div class="highlight"><pre><span class="k">class</span> <span class="nc">RelayOS</span><span class="p">(</span><span class="n">SmartcardOS</span><span class="p">):</span>
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>CardGenerator Module — vsmartcard 2017-01-08 documentation</title>
|
||||
<title>CardGenerator 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" />
|
||||
@@ -15,7 +15,7 @@
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: '../../',
|
||||
VERSION: '2017-01-08',
|
||||
VERSION: '2017-01-16',
|
||||
COLLAPSE_INDEX: false,
|
||||
FILE_SUFFIX: '.html',
|
||||
HAS_SOURCE: true
|
||||
@@ -29,7 +29,7 @@
|
||||
<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-08 documentation" href="../../index.html" />
|
||||
<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="ConstantDefinitions Module" href="virtualsmartcard.ConstantDefinitions.html" />
|
||||
<link rel="prev" title="utils_test Module" href="virtualsmartcard.tests.utils_test.html" />
|
||||
@@ -39,7 +39,7 @@
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
|
||||
</head>
|
||||
<body role="document">
|
||||
<body>
|
||||
|
||||
<a href="https://github.com/frankmorgner/vsmartcard"
|
||||
class="visible-desktop hidden-xs"><img
|
||||
@@ -86,6 +86,7 @@
|
||||
<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>
|
||||
@@ -158,20 +159,20 @@
|
||||
</p>
|
||||
<span class="target" id="module-virtualsmartcard.CardGenerator"></span><dl class="class">
|
||||
<dt id="virtualsmartcard.CardGenerator.CardGenerator">
|
||||
<em class="property">class </em><code class="descclassname">virtualsmartcard.CardGenerator.</code><code class="descname">CardGenerator</code><span class="sig-paren">(</span><em>card_type=None</em>, <em>sam=None</em>, <em>mf=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.CardGenerator.CardGenerator" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p>
|
||||
<em class="property">class </em><tt class="descclassname">virtualsmartcard.CardGenerator.</tt><tt class="descname">CardGenerator</tt><big>(</big><em>card_type=None</em>, <em>sam=None</em>, <em>mf=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.CardGenerator.CardGenerator" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <tt class="xref py py-class docutils literal"><span class="pre">object</span></tt></p>
|
||||
<p>This class is used to generate the SAM and filesystem for the
|
||||
different supported card types. It is also able used for persistent storage
|
||||
(in encrypted form) of the card on disks.</p>
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.CardGenerator.CardGenerator._CardGenerator__generate_cryptoflex">
|
||||
<code class="descname">_CardGenerator__generate_cryptoflex</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.CardGenerator.CardGenerator._CardGenerator__generate_cryptoflex" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">_CardGenerator__generate_cryptoflex</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.CardGenerator.CardGenerator._CardGenerator__generate_cryptoflex" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Generate the Filesystem and SAM of a cryptoflex card</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.CardGenerator.CardGenerator._CardGenerator__generate_ePass">
|
||||
<code class="descname">_CardGenerator__generate_ePass</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.CardGenerator.CardGenerator._CardGenerator__generate_ePass" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">_CardGenerator__generate_ePass</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.CardGenerator.CardGenerator._CardGenerator__generate_ePass" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Generate the MF and SAM of an ICAO passport. This method is
|
||||
responsible for generating the filesystem and filling it with content.
|
||||
Therefore it must interact with the user by prompting for the MRZ and
|
||||
@@ -180,35 +181,35 @@ optionally for the path to a photo.</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.CardGenerator.CardGenerator._CardGenerator__generate_iso_card">
|
||||
<code class="descname">_CardGenerator__generate_iso_card</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.CardGenerator.CardGenerator._CardGenerator__generate_iso_card" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">_CardGenerator__generate_iso_card</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.CardGenerator.CardGenerator._CardGenerator__generate_iso_card" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.CardGenerator.CardGenerator._CardGenerator__generate_nPA">
|
||||
<code class="descname">_CardGenerator__generate_nPA</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.CardGenerator.CardGenerator._CardGenerator__generate_nPA" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">_CardGenerator__generate_nPA</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.CardGenerator.CardGenerator._CardGenerator__generate_nPA" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.CardGenerator.CardGenerator.generateCard">
|
||||
<code class="descname">generateCard</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.CardGenerator.CardGenerator.generateCard" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">generateCard</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.CardGenerator.CardGenerator.generateCard" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Generate a new card</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.CardGenerator.CardGenerator.getCard">
|
||||
<code class="descname">getCard</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.CardGenerator.CardGenerator.getCard" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">getCard</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.CardGenerator.CardGenerator.getCard" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Get the MF and SAM from the current card</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.CardGenerator.CardGenerator.readDatagroups">
|
||||
<code class="descname">readDatagroups</code><span class="sig-paren">(</span><em>datasetfile</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.CardGenerator.CardGenerator.readDatagroups" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">readDatagroups</tt><big>(</big><em>datasetfile</em><big>)</big><a class="headerlink" href="#virtualsmartcard.CardGenerator.CardGenerator.readDatagroups" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Read Datagroups from file</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.CardGenerator.CardGenerator.setCard">
|
||||
<code class="descname">setCard</code><span class="sig-paren">(</span><em>mf=None</em>, <em>sam=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.CardGenerator.CardGenerator.setCard" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">setCard</tt><big>(</big><em>mf=None</em>, <em>sam=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.CardGenerator.CardGenerator.setCard" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Set the MF and SAM of the current card</p>
|
||||
</dd></dl>
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>ConstantDefinitions Module — vsmartcard 2017-01-08 documentation</title>
|
||||
<title>ConstantDefinitions 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" />
|
||||
@@ -15,7 +15,7 @@
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: '../../',
|
||||
VERSION: '2017-01-08',
|
||||
VERSION: '2017-01-16',
|
||||
COLLAPSE_INDEX: false,
|
||||
FILE_SUFFIX: '.html',
|
||||
HAS_SOURCE: true
|
||||
@@ -29,7 +29,7 @@
|
||||
<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-08 documentation" href="../../index.html" />
|
||||
<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="CryptoUtils Module" href="virtualsmartcard.CryptoUtils.html" />
|
||||
<link rel="prev" title="CardGenerator Module" href="virtualsmartcard.CardGenerator.html" />
|
||||
@@ -39,7 +39,7 @@
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
|
||||
</head>
|
||||
<body role="document">
|
||||
<body>
|
||||
|
||||
<a href="https://github.com/frankmorgner/vsmartcard"
|
||||
class="visible-desktop hidden-xs"><img
|
||||
@@ -86,6 +86,7 @@
|
||||
<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>
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>CryptoUtils Module — vsmartcard 2017-01-08 documentation</title>
|
||||
<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" />
|
||||
@@ -15,7 +15,7 @@
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: '../../',
|
||||
VERSION: '2017-01-08',
|
||||
VERSION: '2017-01-16',
|
||||
COLLAPSE_INDEX: false,
|
||||
FILE_SUFFIX: '.html',
|
||||
HAS_SOURCE: true
|
||||
@@ -29,7 +29,7 @@
|
||||
<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-08 documentation" href="../../index.html" />
|
||||
<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" />
|
||||
@@ -39,7 +39,7 @@
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
|
||||
</head>
|
||||
<body role="document">
|
||||
<body>
|
||||
|
||||
<a href="https://github.com/frankmorgner/vsmartcard"
|
||||
class="visible-desktop hidden-xs"><img
|
||||
@@ -86,6 +86,7 @@
|
||||
<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>
|
||||
@@ -152,14 +153,14 @@
|
||||
<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">
|
||||
<code class="descclassname">virtualsmartcard.CryptoUtils.</code><code class="descname">_makesalt</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.CryptoUtils._makesalt" title="Permalink to this definition">¶</a></dt>
|
||||
<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">
|
||||
<code class="descclassname">virtualsmartcard.CryptoUtils.</code><code class="descname">append_padding</code><span class="sig-paren">(</span><em>blocklen</em>, <em>data</em>, <em>padding_class=1</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.CryptoUtils.append_padding" title="Permalink to this definition">¶</a></dt>
|
||||
<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.
|
||||
@@ -168,13 +169,13 @@ Different types of padding may be selected via the padding_class parameter</p>
|
||||
|
||||
<dl class="function">
|
||||
<dt id="virtualsmartcard.CryptoUtils.calculate_MAC">
|
||||
<code class="descclassname">virtualsmartcard.CryptoUtils.</code><code class="descname">calculate_MAC</code><span class="sig-paren">(</span><em>session_key</em>, <em>message</em>, <em>iv='\x00\x00\x00\x00\x00\x00\x00\x00'</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.CryptoUtils.calculate_MAC" title="Permalink to this definition">¶</a></dt>
|
||||
<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">
|
||||
<code class="descclassname">virtualsmartcard.CryptoUtils.</code><code class="descname">cipher</code><span class="sig-paren">(</span><em>do_encrypt</em>, <em>cipherspec</em>, <em>key</em>, <em>data</em>, <em>iv=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.CryptoUtils.cipher" title="Permalink to this definition">¶</a></dt>
|
||||
<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>
|
||||
@@ -182,7 +183,7 @@ cipherspec must be of the form “cipher-mode”, or “cipher”
|
||||
|
||||
<dl class="function">
|
||||
<dt id="virtualsmartcard.CryptoUtils.crypto_checksum">
|
||||
<code class="descclassname">virtualsmartcard.CryptoUtils.</code><code class="descname">crypto_checksum</code><span class="sig-paren">(</span><em>algo</em>, <em>key</em>, <em>data</em>, <em>iv=None</em>, <em>ssc=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.CryptoUtils.crypto_checksum" title="Permalink to this definition">¶</a></dt>
|
||||
<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" />
|
||||
@@ -206,42 +207,42 @@ Only used by the “CC” algorithm</li>
|
||||
|
||||
<dl class="function">
|
||||
<dt id="virtualsmartcard.CryptoUtils.decrypt">
|
||||
<code class="descclassname">virtualsmartcard.CryptoUtils.</code><code class="descname">decrypt</code><span class="sig-paren">(</span><em>cipherspec</em>, <em>key</em>, <em>data</em>, <em>iv=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.CryptoUtils.decrypt" title="Permalink to this definition">¶</a></dt>
|
||||
<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">
|
||||
<code class="descclassname">virtualsmartcard.CryptoUtils.</code><code class="descname">encrypt</code><span class="sig-paren">(</span><em>cipherspec</em>, <em>key</em>, <em>data</em>, <em>iv=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.CryptoUtils.encrypt" title="Permalink to this definition">¶</a></dt>
|
||||
<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">
|
||||
<code class="descclassname">virtualsmartcard.CryptoUtils.</code><code class="descname">get_cipher</code><span class="sig-paren">(</span><em>cipherspec</em>, <em>key</em>, <em>iv=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.CryptoUtils.get_cipher" title="Permalink to this definition">¶</a></dt>
|
||||
<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">
|
||||
<code class="descclassname">virtualsmartcard.CryptoUtils.</code><code class="descname">get_cipher_blocklen</code><span class="sig-paren">(</span><em>cipherspec</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.CryptoUtils.get_cipher_blocklen" title="Permalink to this definition">¶</a></dt>
|
||||
<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">
|
||||
<code class="descclassname">virtualsmartcard.CryptoUtils.</code><code class="descname">get_cipher_keylen</code><span class="sig-paren">(</span><em>cipherspec</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.CryptoUtils.get_cipher_keylen" title="Permalink to this definition">¶</a></dt>
|
||||
<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">
|
||||
<code class="descclassname">virtualsmartcard.CryptoUtils.</code><code class="descname">hash</code><span class="sig-paren">(</span><em>hashmethod</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.CryptoUtils.hash" title="Permalink to this definition">¶</a></dt>
|
||||
<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">
|
||||
<code class="descclassname">virtualsmartcard.CryptoUtils.</code><code class="descname">operation_on_string</code><span class="sig-paren">(</span><em>string1</em>, <em>string2</em>, <em>op</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.CryptoUtils.operation_on_string" title="Permalink to this definition">¶</a></dt>
|
||||
<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">
|
||||
<code class="descclassname">virtualsmartcard.CryptoUtils.</code><code class="descname">strip_padding</code><span class="sig-paren">(</span><em>blocklen</em>, <em>data</em>, <em>padding_class=1</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.CryptoUtils.strip_padding" title="Permalink to this definition">¶</a></dt>
|
||||
<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>
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>SEutils Module — vsmartcard 2017-01-08 documentation</title>
|
||||
<title>SEutils 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" />
|
||||
@@ -15,7 +15,7 @@
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: '../../',
|
||||
VERSION: '2017-01-08',
|
||||
VERSION: '2017-01-16',
|
||||
COLLAPSE_INDEX: false,
|
||||
FILE_SUFFIX: '.html',
|
||||
HAS_SOURCE: true
|
||||
@@ -29,7 +29,7 @@
|
||||
<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-08 documentation" href="../../index.html" />
|
||||
<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="SWutils Module" href="virtualsmartcard.SWutils.html" />
|
||||
<link rel="prev" title="CryptoUtils Module" href="virtualsmartcard.CryptoUtils.html" />
|
||||
@@ -39,7 +39,7 @@
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
|
||||
</head>
|
||||
<body role="document">
|
||||
<body>
|
||||
|
||||
<a href="https://github.com/frankmorgner/vsmartcard"
|
||||
class="visible-desktop hidden-xs"><img
|
||||
@@ -86,6 +86,7 @@
|
||||
<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>
|
||||
@@ -159,7 +160,7 @@
|
||||
</p>
|
||||
<span class="target" id="module-virtualsmartcard.SEutils"></span><dl class="class">
|
||||
<dt id="virtualsmartcard.SEutils.ControlReferenceTemplate">
|
||||
<em class="property">class </em><code class="descclassname">virtualsmartcard.SEutils.</code><code class="descname">ControlReferenceTemplate</code><span class="sig-paren">(</span><em>tag</em>, <em>config=''</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.SEutils.ControlReferenceTemplate" title="Permalink to this definition">¶</a></dt>
|
||||
<em class="property">class </em><tt class="descclassname">virtualsmartcard.SEutils.</tt><tt class="descname">ControlReferenceTemplate</tt><big>(</big><em>tag</em>, <em>config=''</em><big>)</big><a class="headerlink" href="#virtualsmartcard.SEutils.ControlReferenceTemplate" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Control Reference Templates are used to configure the Security
|
||||
Environments. They specify which algorithms to use in which mode of
|
||||
operation and with which keys. There are six different types of Control
|
||||
@@ -167,7 +168,7 @@ Reference Template:
|
||||
HT, AT, KT, CCT, DST, CT-sym, CT-asym.</p>
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.SEutils.ControlReferenceTemplate._ControlReferenceTemplate__replace_tag">
|
||||
<code class="descname">_ControlReferenceTemplate__replace_tag</code><span class="sig-paren">(</span><em>tag</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.SEutils.ControlReferenceTemplate._ControlReferenceTemplate__replace_tag" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">_ControlReferenceTemplate__replace_tag</tt><big>(</big><em>tag</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.SEutils.ControlReferenceTemplate._ControlReferenceTemplate__replace_tag" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Adjust the config string using a given tag, value combination. If the
|
||||
config string already contains a tag, value pair for the given tag,
|
||||
replace it. Otherwise append tag, length and value to the config
|
||||
@@ -176,7 +177,7 @@ string.</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.SEutils.ControlReferenceTemplate._ControlReferenceTemplate__set_algo">
|
||||
<code class="descname">_ControlReferenceTemplate__set_algo</code><span class="sig-paren">(</span><em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.SEutils.ControlReferenceTemplate._ControlReferenceTemplate__set_algo" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">_ControlReferenceTemplate__set_algo</tt><big>(</big><em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.SEutils.ControlReferenceTemplate._ControlReferenceTemplate__set_algo" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Set the algorithm to be used by this CRT. The algorithms are specified
|
||||
in a global dictionary. New cards may add or modify this table in order
|
||||
to support new or different algorithms.</p>
|
||||
@@ -192,17 +193,17 @@ to support new or different algorithms.</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.SEutils.ControlReferenceTemplate._ControlReferenceTemplate__set_iv">
|
||||
<code class="descname">_ControlReferenceTemplate__set_iv</code><span class="sig-paren">(</span><em>tag</em>, <em>length</em>, <em>value</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.SEutils.ControlReferenceTemplate._ControlReferenceTemplate__set_iv" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">_ControlReferenceTemplate__set_iv</tt><big>(</big><em>tag</em>, <em>length</em>, <em>value</em><big>)</big><a class="headerlink" href="#virtualsmartcard.SEutils.ControlReferenceTemplate._ControlReferenceTemplate__set_iv" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.SEutils.ControlReferenceTemplate._ControlReferenceTemplate__set_key">
|
||||
<code class="descname">_ControlReferenceTemplate__set_key</code><span class="sig-paren">(</span><em>tag</em>, <em>value</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.SEutils.ControlReferenceTemplate._ControlReferenceTemplate__set_key" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">_ControlReferenceTemplate__set_key</tt><big>(</big><em>tag</em>, <em>value</em><big>)</big><a class="headerlink" href="#virtualsmartcard.SEutils.ControlReferenceTemplate._ControlReferenceTemplate__set_key" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.SEutils.ControlReferenceTemplate.parse_SE_config">
|
||||
<code class="descname">parse_SE_config</code><span class="sig-paren">(</span><em>config</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.SEutils.ControlReferenceTemplate.parse_SE_config" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">parse_SE_config</tt><big>(</big><em>config</em><big>)</big><a class="headerlink" href="#virtualsmartcard.SEutils.ControlReferenceTemplate.parse_SE_config" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Parse a control reference template as given e.g. in an MSE APDU.</p>
|
||||
<table class="docutils field-list" frame="void" rules="none">
|
||||
<col class="field-name" />
|
||||
@@ -216,7 +217,7 @@ to support new or different algorithms.</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.SEutils.ControlReferenceTemplate.to_string">
|
||||
<code class="descname">to_string</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.SEutils.ControlReferenceTemplate.to_string" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">to_string</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.SEutils.ControlReferenceTemplate.to_string" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Return the content of the CRT, encoded as TLV data in a string</p>
|
||||
</dd></dl>
|
||||
|
||||
@@ -224,25 +225,25 @@ to support new or different algorithms.</p>
|
||||
|
||||
<dl class="class">
|
||||
<dt id="virtualsmartcard.SEutils.Security_Environment">
|
||||
<em class="property">class </em><code class="descclassname">virtualsmartcard.SEutils.</code><code class="descname">Security_Environment</code><span class="sig-paren">(</span><em>MF</em>, <em>SAM</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.SEutils.Security_Environment" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p>
|
||||
<em class="property">class </em><tt class="descclassname">virtualsmartcard.SEutils.</tt><tt class="descname">Security_Environment</tt><big>(</big><em>MF</em>, <em>SAM</em><big>)</big><a class="headerlink" href="#virtualsmartcard.SEutils.Security_Environment" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <tt class="xref py py-class docutils literal"><span class="pre">object</span></tt></p>
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.SEutils.Security_Environment._set_SE">
|
||||
<code class="descname">_set_SE</code><span class="sig-paren">(</span><em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.SEutils.Security_Environment._set_SE" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">_set_SE</tt><big>(</big><em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.SEutils.Security_Environment._set_SE" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Manipulate the current Security Environment. P2 is the tag of a
|
||||
control reference template, data contains control reference objects</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.SEutils.Security_Environment.compute_cryptographic_checksum">
|
||||
<code class="descname">compute_cryptographic_checksum</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.SEutils.Security_Environment.compute_cryptographic_checksum" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">compute_cryptographic_checksum</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.SEutils.Security_Environment.compute_cryptographic_checksum" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Compute a cryptographic checksum (e.g. MAC) for the given data.
|
||||
Algorithm and key are specified in the current SE</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.SEutils.Security_Environment.compute_digital_signature">
|
||||
<code class="descname">compute_digital_signature</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.SEutils.Security_Environment.compute_digital_signature" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">compute_digital_signature</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.SEutils.Security_Environment.compute_digital_signature" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Compute a digital signature for the given data.
|
||||
Algorithm and key are specified in the current SE</p>
|
||||
<table class="docutils field-list" frame="void" rules="none">
|
||||
@@ -262,7 +263,7 @@ is included in the data field.</li>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.SEutils.Security_Environment.decipher">
|
||||
<code class="descname">decipher</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.SEutils.Security_Environment.decipher" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">decipher</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.SEutils.Security_Environment.decipher" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Decipher data using key, algorithm, IV and Padding specified
|
||||
by the current Security environment.</p>
|
||||
<table class="docutils field-list" frame="void" rules="none">
|
||||
@@ -277,7 +278,7 @@ by the current Security environment.</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.SEutils.Security_Environment.encipher">
|
||||
<code class="descname">encipher</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.SEutils.Security_Environment.encipher" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">encipher</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.SEutils.Security_Environment.encipher" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Encipher data using key, algorithm, IV and Padding specified
|
||||
by the current Security environment.</p>
|
||||
<table class="docutils field-list" frame="void" rules="none">
|
||||
@@ -292,7 +293,7 @@ by the current Security environment.</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.SEutils.Security_Environment.generate_public_key_pair">
|
||||
<code class="descname">generate_public_key_pair</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.SEutils.Security_Environment.generate_public_key_pair" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">generate_public_key_pair</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.SEutils.Security_Environment.generate_public_key_pair" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>The GENERATE PUBLIC-KEY PAIR command either initiates the generation
|
||||
and storing of a key pair, i.e., a public key and a private key, in the
|
||||
card, or accesses a key pair previously generated in the card.</p>
|
||||
@@ -315,7 +316,7 @@ P1-P2 different from ‘0000’</li>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.SEutils.Security_Environment.hash">
|
||||
<code class="descname">hash</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.SEutils.Security_Environment.hash" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">hash</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.SEutils.Security_Environment.hash" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Hash the given data using the algorithm specified by the current
|
||||
Security environment.</p>
|
||||
<table class="docutils field-list" frame="void" rules="none">
|
||||
@@ -330,7 +331,7 @@ Security environment.</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.SEutils.Security_Environment.manage_security_environment">
|
||||
<code class="descname">manage_security_environment</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.SEutils.Security_Environment.manage_security_environment" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">manage_security_environment</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.SEutils.Security_Environment.manage_security_environment" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>This method is used to store, restore or erase Security Environments
|
||||
or to manipulate the various parameters of the current SE.
|
||||
P1 specifies the operation to perform, p2 is either the SEID for the
|
||||
@@ -553,7 +554,7 @@ authentication and key agreement</td>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.SEutils.Security_Environment.parse_SM_CAPDU">
|
||||
<code class="descname">parse_SM_CAPDU</code><span class="sig-paren">(</span><em>CAPDU</em>, <em>authenticate_header</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.SEutils.Security_Environment.parse_SM_CAPDU" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">parse_SM_CAPDU</tt><big>(</big><em>CAPDU</em>, <em>authenticate_header</em><big>)</big><a class="headerlink" href="#virtualsmartcard.SEutils.Security_Environment.parse_SM_CAPDU" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>This methods parses a data field including Secure Messaging objects.
|
||||
SM_header indicates whether or not the header of the message shall be
|
||||
authenticated. It returns an unprotected command APDU</p>
|
||||
@@ -577,7 +578,7 @@ included in authentication mechanisms</li>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.SEutils.Security_Environment.perform_security_operation">
|
||||
<code class="descname">perform_security_operation</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.SEutils.Security_Environment.perform_security_operation" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">perform_security_operation</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.SEutils.Security_Environment.perform_security_operation" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>In the end this command is nothing but a big switch for all the other
|
||||
commands in ISO 7816-8. It will invoke the appropriate command and
|
||||
return its result</p>
|
||||
@@ -585,7 +586,7 @@ return its result</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.SEutils.Security_Environment.protect_response">
|
||||
<code class="descname">protect_response</code><span class="sig-paren">(</span><em>sw</em>, <em>result</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.SEutils.Security_Environment.protect_response" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">protect_response</tt><big>(</big><em>sw</em>, <em>result</em><big>)</big><a class="headerlink" href="#virtualsmartcard.SEutils.Security_Environment.protect_response" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>This method protects a response APDU using secure messaging mechanisms</p>
|
||||
<table class="docutils field-list" frame="void" rules="none">
|
||||
<col class="field-name" />
|
||||
@@ -599,7 +600,7 @@ return its result</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.SEutils.Security_Environment.verify_certificate">
|
||||
<code class="descname">verify_certificate</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.SEutils.Security_Environment.verify_certificate" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">verify_certificate</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.SEutils.Security_Environment.verify_certificate" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Verify a certificate send by the terminal using the internal trust
|
||||
anchors.
|
||||
This method is currently not implemented.</p>
|
||||
@@ -607,7 +608,7 @@ This method is currently not implemented.</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.SEutils.Security_Environment.verify_cryptographic_checksum">
|
||||
<code class="descname">verify_cryptographic_checksum</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.SEutils.Security_Environment.verify_cryptographic_checksum" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">verify_cryptographic_checksum</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.SEutils.Security_Environment.verify_cryptographic_checksum" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Verify the cryptographic checksum contained in the data field.
|
||||
Data field must contain a cryptographic checksum (tag 0x8E) and a plain
|
||||
value (tag 0x80)</p>
|
||||
@@ -615,7 +616,7 @@ value (tag 0x80)</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.SEutils.Security_Environment.verify_digital_signature">
|
||||
<code class="descname">verify_digital_signature</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.SEutils.Security_Environment.verify_digital_signature" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">verify_digital_signature</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.SEutils.Security_Environment.verify_digital_signature" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Verify the digital signature contained in the data field. Data must
|
||||
contain a data to sign (tag 0x9A, 0xAC or 0xBC) and a digital signature
|
||||
(0x9E)</p>
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>SWutils Module — vsmartcard 2017-01-08 documentation</title>
|
||||
<title>SWutils 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" />
|
||||
@@ -15,7 +15,7 @@
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: '../../',
|
||||
VERSION: '2017-01-08',
|
||||
VERSION: '2017-01-16',
|
||||
COLLAPSE_INDEX: false,
|
||||
FILE_SUFFIX: '.html',
|
||||
HAS_SOURCE: true
|
||||
@@ -29,7 +29,7 @@
|
||||
<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-08 documentation" href="../../index.html" />
|
||||
<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="SmartcardFilesystem Module" href="virtualsmartcard.SmartcardFilesystem.html" />
|
||||
<link rel="prev" title="SEutils Module" href="virtualsmartcard.SEutils.html" />
|
||||
@@ -39,7 +39,7 @@
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
|
||||
</head>
|
||||
<body role="document">
|
||||
<body>
|
||||
|
||||
<a href="https://github.com/frankmorgner/vsmartcard"
|
||||
class="visible-desktop hidden-xs"><img
|
||||
@@ -86,6 +86,7 @@
|
||||
<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>
|
||||
@@ -158,16 +159,16 @@
|
||||
</p>
|
||||
<span class="target" id="module-virtualsmartcard.SWutils"></span><dl class="exception">
|
||||
<dt id="virtualsmartcard.SWutils.SwError">
|
||||
<em class="property">exception </em><code class="descclassname">virtualsmartcard.SWutils.</code><code class="descname">SwError</code><span class="sig-paren">(</span><em>sw</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.SWutils.SwError" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">exceptions.Exception</span></code></p>
|
||||
<em class="property">exception </em><tt class="descclassname">virtualsmartcard.SWutils.</tt><tt class="descname">SwError</tt><big>(</big><em>sw</em><big>)</big><a class="headerlink" href="#virtualsmartcard.SWutils.SwError" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <tt class="xref py py-class docutils literal"><span class="pre">exceptions.Exception</span></tt></p>
|
||||
<dl class="attribute">
|
||||
<dt id="virtualsmartcard.SWutils.SwError.args">
|
||||
<code class="descname">args</code><a class="headerlink" href="#virtualsmartcard.SWutils.SwError.args" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">args</tt><a class="headerlink" href="#virtualsmartcard.SWutils.SwError.args" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="attribute">
|
||||
<dt id="virtualsmartcard.SWutils.SwError.message">
|
||||
<code class="descname">message</code><a class="headerlink" href="#virtualsmartcard.SWutils.SwError.message" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">message</tt><a class="headerlink" href="#virtualsmartcard.SWutils.SwError.message" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>SmartcardSAM Module — vsmartcard 2017-01-08 documentation</title>
|
||||
<title>SmartcardSAM 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" />
|
||||
@@ -15,7 +15,7 @@
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: '../../',
|
||||
VERSION: '2017-01-08',
|
||||
VERSION: '2017-01-16',
|
||||
COLLAPSE_INDEX: false,
|
||||
FILE_SUFFIX: '.html',
|
||||
HAS_SOURCE: true
|
||||
@@ -29,7 +29,7 @@
|
||||
<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-08 documentation" href="../../index.html" />
|
||||
<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="TLVutils Module" href="virtualsmartcard.TLVutils.html" />
|
||||
<link rel="prev" title="SmartcardFilesystem Module" href="virtualsmartcard.SmartcardFilesystem.html" />
|
||||
@@ -39,7 +39,7 @@
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
|
||||
</head>
|
||||
<body role="document">
|
||||
<body>
|
||||
|
||||
<a href="https://github.com/frankmorgner/vsmartcard"
|
||||
class="visible-desktop hidden-xs"><img
|
||||
@@ -86,6 +86,7 @@
|
||||
<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>
|
||||
@@ -158,15 +159,15 @@
|
||||
</p>
|
||||
<span class="target" id="module-virtualsmartcard.SmartcardSAM"></span><dl class="class">
|
||||
<dt id="virtualsmartcard.SmartcardSAM.SAM">
|
||||
<em class="property">class </em><code class="descclassname">virtualsmartcard.SmartcardSAM.</code><code class="descname">SAM</code><span class="sig-paren">(</span><em>PIN</em>, <em>cardNumber</em>, <em>mf=None</em>, <em>cardSecret=None</em>, <em>default_se=<class 'virtualsmartcard.SEutils.Security_Environment'></em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.SmartcardSAM.SAM" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p>
|
||||
<em class="property">class </em><tt class="descclassname">virtualsmartcard.SmartcardSAM.</tt><tt class="descname">SAM</tt><big>(</big><em>PIN</em>, <em>cardNumber</em>, <em>mf=None</em>, <em>cardSecret=None</em>, <em>default_se=<class 'virtualsmartcard.SEutils.Security_Environment'></em><big>)</big><a class="headerlink" href="#virtualsmartcard.SmartcardSAM.SAM" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <tt class="xref py py-class docutils literal"><span class="pre">object</span></tt></p>
|
||||
<p>This class is used to store the data needed by the SAM.
|
||||
It includes the PIN, the master key of the SAM and a hashmap containing all
|
||||
the keys used by the file encryption system. The keys in the hashmap are
|
||||
indexed via the path to the corresponding container.</p>
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.SmartcardSAM.SAM.FSdecrypt">
|
||||
<code class="descname">FSdecrypt</code><span class="sig-paren">(</span><em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.SmartcardSAM.SAM.FSdecrypt" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">FSdecrypt</tt><big>(</big><em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.SmartcardSAM.SAM.FSdecrypt" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Decrypt the given data, using the parameters stored in the SAM.
|
||||
Right now we do not encrypt the data. In memory encryption might or
|
||||
might not be added in a future version.</p>
|
||||
@@ -174,7 +175,7 @@ might not be added in a future version.</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.SmartcardSAM.SAM.FSencrypt">
|
||||
<code class="descname">FSencrypt</code><span class="sig-paren">(</span><em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.SmartcardSAM.SAM.FSencrypt" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">FSencrypt</tt><big>(</big><em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.SmartcardSAM.SAM.FSencrypt" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Encrypt the given data, using the parameters stored in the SAM.
|
||||
Right now we do not encrypt the data. In memory encryption might or
|
||||
might not be added in a future version.</p>
|
||||
@@ -182,7 +183,7 @@ might not be added in a future version.</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.SmartcardSAM.SAM._get_referenced_key">
|
||||
<code class="descname">_get_referenced_key</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.SmartcardSAM.SAM._get_referenced_key" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">_get_referenced_key</tt><big>(</big><em>p1</em>, <em>p2</em><big>)</big><a class="headerlink" href="#virtualsmartcard.SmartcardSAM.SAM._get_referenced_key" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>This method returns the key specified by the p2 parameter. The key may
|
||||
be stored on the cards filesystem.</p>
|
||||
<table class="docutils field-list" frame="void" rules="none">
|
||||
@@ -322,54 +323,54 @@ key)</td>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.SmartcardSAM.SAM.change_reference_data">
|
||||
<code class="descname">change_reference_data</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.SmartcardSAM.SAM.change_reference_data" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">change_reference_data</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.SmartcardSAM.SAM.change_reference_data" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Change the specified referenced data (e.g. CHV) of the card</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.SmartcardSAM.SAM.erase_SE">
|
||||
<code class="descname">erase_SE</code><span class="sig-paren">(</span><em>SEID</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.SmartcardSAM.SAM.erase_SE" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">erase_SE</tt><big>(</big><em>SEID</em><big>)</big><a class="headerlink" href="#virtualsmartcard.SmartcardSAM.SAM.erase_SE" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Erases a Security Environment stored under SEID from the SAM</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.SmartcardSAM.SAM.external_authenticate">
|
||||
<code class="descname">external_authenticate</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.SmartcardSAM.SAM.external_authenticate" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">external_authenticate</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.SmartcardSAM.SAM.external_authenticate" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Authenticate the terminal to the card. Check whether Terminal correctly
|
||||
encrypted the given challenge or not</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.SmartcardSAM.SAM.generate_public_key_pair">
|
||||
<code class="descname">generate_public_key_pair</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.SmartcardSAM.SAM.generate_public_key_pair" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">generate_public_key_pair</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.SmartcardSAM.SAM.generate_public_key_pair" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.SmartcardSAM.SAM.get_card_number">
|
||||
<code class="descname">get_card_number</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.SmartcardSAM.SAM.get_card_number" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">get_card_number</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.SmartcardSAM.SAM.get_card_number" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.SmartcardSAM.SAM.get_challenge">
|
||||
<code class="descname">get_challenge</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.SmartcardSAM.SAM.get_challenge" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">get_challenge</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.SmartcardSAM.SAM.get_challenge" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Generate a random number of maximum 8 Byte and return it.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.SmartcardSAM.SAM.internal_authenticate">
|
||||
<code class="descname">internal_authenticate</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.SmartcardSAM.SAM.internal_authenticate" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">internal_authenticate</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.SmartcardSAM.SAM.internal_authenticate" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Authenticate card to terminal. Encrypt the challenge of the terminal
|
||||
to prove key posession</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.SmartcardSAM.SAM.manage_security_environment">
|
||||
<code class="descname">manage_security_environment</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.SmartcardSAM.SAM.manage_security_environment" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">manage_security_environment</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.SmartcardSAM.SAM.manage_security_environment" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.SmartcardSAM.SAM.mutual_authenticate">
|
||||
<code class="descname">mutual_authenticate</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>mutual_challenge</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.SmartcardSAM.SAM.mutual_authenticate" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">mutual_authenticate</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>mutual_challenge</em><big>)</big><a class="headerlink" href="#virtualsmartcard.SmartcardSAM.SAM.mutual_authenticate" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Takes an encrypted challenge in the form
|
||||
‘Terminal Challenge | Card Challenge | Card number’
|
||||
and checks it for validity. If the challenge is successful
|
||||
@@ -379,39 +380,39 @@ returns this value</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.SmartcardSAM.SAM.parse_SM_CAPDU">
|
||||
<code class="descname">parse_SM_CAPDU</code><span class="sig-paren">(</span><em>CAPDU</em>, <em>header_authentication</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.SmartcardSAM.SAM.parse_SM_CAPDU" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">parse_SM_CAPDU</tt><big>(</big><em>CAPDU</em>, <em>header_authentication</em><big>)</big><a class="headerlink" href="#virtualsmartcard.SmartcardSAM.SAM.parse_SM_CAPDU" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Parse a command APDU protected by Secure Messaging and return the
|
||||
unprotected command APDU</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.SmartcardSAM.SAM.perform_security_operation">
|
||||
<code class="descname">perform_security_operation</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.SmartcardSAM.SAM.perform_security_operation" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">perform_security_operation</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.SmartcardSAM.SAM.perform_security_operation" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.SmartcardSAM.SAM.protect_result">
|
||||
<code class="descname">protect_result</code><span class="sig-paren">(</span><em>sw</em>, <em>unprotected_result</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.SmartcardSAM.SAM.protect_result" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">protect_result</tt><big>(</big><em>sw</em>, <em>unprotected_result</em><big>)</big><a class="headerlink" href="#virtualsmartcard.SmartcardSAM.SAM.protect_result" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Protect a plain response APDU by Secure Messaging</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.SmartcardSAM.SAM.restore_SE">
|
||||
<code class="descname">restore_SE</code><span class="sig-paren">(</span><em>SEID</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.SmartcardSAM.SAM.restore_SE" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">restore_SE</tt><big>(</big><em>SEID</em><big>)</big><a class="headerlink" href="#virtualsmartcard.SmartcardSAM.SAM.restore_SE" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Restores a Security Environment from the SAM and replaces the current
|
||||
SE with it.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.SmartcardSAM.SAM.set_MF">
|
||||
<code class="descname">set_MF</code><span class="sig-paren">(</span><em>mf</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.SmartcardSAM.SAM.set_MF" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">set_MF</tt><big>(</big><em>mf</em><big>)</big><a class="headerlink" href="#virtualsmartcard.SmartcardSAM.SAM.set_MF" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Setter function for the internal reference to the Filesystem. The SAM
|
||||
needs a reference to the filesystem in order to store/retrieve keys.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.SmartcardSAM.SAM.set_asym_algorithm">
|
||||
<code class="descname">set_asym_algorithm</code><span class="sig-paren">(</span><em>cipher</em>, <em>keytype</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.SmartcardSAM.SAM.set_asym_algorithm" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">set_asym_algorithm</tt><big>(</big><em>cipher</em>, <em>keytype</em><big>)</big><a class="headerlink" href="#virtualsmartcard.SmartcardSAM.SAM.set_asym_algorithm" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><table class="docutils field-list" frame="void" rules="none">
|
||||
<col class="field-name" />
|
||||
<col class="field-body" />
|
||||
@@ -428,14 +429,14 @@ needs a reference to the filesystem in order to store/retrieve keys.</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.SmartcardSAM.SAM.store_SE">
|
||||
<code class="descname">store_SE</code><span class="sig-paren">(</span><em>SEID</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.SmartcardSAM.SAM.store_SE" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">store_SE</tt><big>(</big><em>SEID</em><big>)</big><a class="headerlink" href="#virtualsmartcard.SmartcardSAM.SAM.store_SE" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Stores the current Security environment in the secure access module.
|
||||
The SEID is used as a reference to identify the SE.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.SmartcardSAM.SAM.verify">
|
||||
<code class="descname">verify</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>PIN</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.SmartcardSAM.SAM.verify" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">verify</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>PIN</em><big>)</big><a class="headerlink" href="#virtualsmartcard.SmartcardSAM.SAM.verify" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Authenticate the card user. Check if he entered a valid PIN.
|
||||
If the PIN is invalid decrement retry counter. If retry counter
|
||||
equals zero, block the card until reset with correct PUK</p>
|
||||
@@ -445,7 +446,7 @@ equals zero, block the card until reset with correct PUK</p>
|
||||
|
||||
<dl class="function">
|
||||
<dt id="virtualsmartcard.SmartcardSAM.get_referenced_cipher">
|
||||
<code class="descclassname">virtualsmartcard.SmartcardSAM.</code><code class="descname">get_referenced_cipher</code><span class="sig-paren">(</span><em>p1</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.SmartcardSAM.get_referenced_cipher" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descclassname">virtualsmartcard.SmartcardSAM.</tt><tt class="descname">get_referenced_cipher</tt><big>(</big><em>p1</em><big>)</big><a class="headerlink" href="#virtualsmartcard.SmartcardSAM.get_referenced_cipher" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>P1 defines the algorithm and mode to use. We dispatch it and return a
|
||||
string that is understood by CryptoUtils.py functions</p>
|
||||
</dd></dl>
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>TLVutils Module — vsmartcard 2017-01-08 documentation</title>
|
||||
<title>TLVutils 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" />
|
||||
@@ -15,7 +15,7 @@
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: '../../',
|
||||
VERSION: '2017-01-08',
|
||||
VERSION: '2017-01-16',
|
||||
COLLAPSE_INDEX: false,
|
||||
FILE_SUFFIX: '.html',
|
||||
HAS_SOURCE: true
|
||||
@@ -29,7 +29,7 @@
|
||||
<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-08 documentation" href="../../index.html" />
|
||||
<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="VirtualSmartcard Module" href="virtualsmartcard.VirtualSmartcard.html" />
|
||||
<link rel="prev" title="SmartcardSAM Module" href="virtualsmartcard.SmartcardSAM.html" />
|
||||
@@ -39,7 +39,7 @@
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
|
||||
</head>
|
||||
<body role="document">
|
||||
<body>
|
||||
|
||||
<a href="https://github.com/frankmorgner/vsmartcard"
|
||||
class="visible-desktop hidden-xs"><img
|
||||
@@ -86,6 +86,7 @@
|
||||
<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>
|
||||
@@ -152,77 +153,77 @@
|
||||
<h1>TLVutils Module<a class="headerlink" href="#tlvutils-module" title="Permalink to this headline">¶</a></h1>
|
||||
<span class="target" id="module-virtualsmartcard.TLVutils"></span><dl class="function">
|
||||
<dt id="virtualsmartcard.TLVutils.bertlv_pack">
|
||||
<code class="descclassname">virtualsmartcard.TLVutils.</code><code class="descname">bertlv_pack</code><span class="sig-paren">(</span><em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.TLVutils.bertlv_pack" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descclassname">virtualsmartcard.TLVutils.</tt><tt class="descname">bertlv_pack</tt><big>(</big><em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.TLVutils.bertlv_pack" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Packs a bertlv list of 3-tuples (tag, length, newvalue) into a string</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="function">
|
||||
<dt id="virtualsmartcard.TLVutils.bertlv_unpack">
|
||||
<code class="descclassname">virtualsmartcard.TLVutils.</code><code class="descname">bertlv_unpack</code><span class="sig-paren">(</span><em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.TLVutils.bertlv_unpack" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descclassname">virtualsmartcard.TLVutils.</tt><tt class="descname">bertlv_unpack</tt><big>(</big><em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.TLVutils.bertlv_unpack" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Unpacks a bertlv coded string into a list of 3-tuples (tag, length,
|
||||
newvalue).</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="function">
|
||||
<dt id="virtualsmartcard.TLVutils.decodeDiscretionaryDataObjects">
|
||||
<code class="descclassname">virtualsmartcard.TLVutils.</code><code class="descname">decodeDiscretionaryDataObjects</code><span class="sig-paren">(</span><em>tlv_data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.TLVutils.decodeDiscretionaryDataObjects" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descclassname">virtualsmartcard.TLVutils.</tt><tt class="descname">decodeDiscretionaryDataObjects</tt><big>(</big><em>tlv_data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.TLVutils.decodeDiscretionaryDataObjects" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="function">
|
||||
<dt id="virtualsmartcard.TLVutils.decodeExtendedHeaderList">
|
||||
<code class="descclassname">virtualsmartcard.TLVutils.</code><code class="descname">decodeExtendedHeaderList</code><span class="sig-paren">(</span><em>tlv_data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.TLVutils.decodeExtendedHeaderList" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descclassname">virtualsmartcard.TLVutils.</tt><tt class="descname">decodeExtendedHeaderList</tt><big>(</big><em>tlv_data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.TLVutils.decodeExtendedHeaderList" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="function">
|
||||
<dt id="virtualsmartcard.TLVutils.decodeHeaderList">
|
||||
<code class="descclassname">virtualsmartcard.TLVutils.</code><code class="descname">decodeHeaderList</code><span class="sig-paren">(</span><em>tlv_data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.TLVutils.decodeHeaderList" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descclassname">virtualsmartcard.TLVutils.</tt><tt class="descname">decodeHeaderList</tt><big>(</big><em>tlv_data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.TLVutils.decodeHeaderList" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="function">
|
||||
<dt id="virtualsmartcard.TLVutils.decodeOffsetDataObjects">
|
||||
<code class="descclassname">virtualsmartcard.TLVutils.</code><code class="descname">decodeOffsetDataObjects</code><span class="sig-paren">(</span><em>tlv_data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.TLVutils.decodeOffsetDataObjects" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descclassname">virtualsmartcard.TLVutils.</tt><tt class="descname">decodeOffsetDataObjects</tt><big>(</big><em>tlv_data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.TLVutils.decodeOffsetDataObjects" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="function">
|
||||
<dt id="virtualsmartcard.TLVutils.decodeTagList">
|
||||
<code class="descclassname">virtualsmartcard.TLVutils.</code><code class="descname">decodeTagList</code><span class="sig-paren">(</span><em>tlv_data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.TLVutils.decodeTagList" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descclassname">virtualsmartcard.TLVutils.</tt><tt class="descname">decodeTagList</tt><big>(</big><em>tlv_data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.TLVutils.decodeTagList" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="function">
|
||||
<dt id="virtualsmartcard.TLVutils.encodeDataOffsetObjects">
|
||||
<code class="descclassname">virtualsmartcard.TLVutils.</code><code class="descname">encodeDataOffsetObjects</code><span class="sig-paren">(</span><em>datalist</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.TLVutils.encodeDataOffsetObjects" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descclassname">virtualsmartcard.TLVutils.</tt><tt class="descname">encodeDataOffsetObjects</tt><big>(</big><em>datalist</em><big>)</big><a class="headerlink" href="#virtualsmartcard.TLVutils.encodeDataOffsetObjects" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="function">
|
||||
<dt id="virtualsmartcard.TLVutils.encodeDiscretionaryDataObjects">
|
||||
<code class="descclassname">virtualsmartcard.TLVutils.</code><code class="descname">encodeDiscretionaryDataObjects</code><span class="sig-paren">(</span><em>datalist</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.TLVutils.encodeDiscretionaryDataObjects" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descclassname">virtualsmartcard.TLVutils.</tt><tt class="descname">encodeDiscretionaryDataObjects</tt><big>(</big><em>datalist</em><big>)</big><a class="headerlink" href="#virtualsmartcard.TLVutils.encodeDiscretionaryDataObjects" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="function">
|
||||
<dt id="virtualsmartcard.TLVutils.encodebertlvDatalist">
|
||||
<code class="descclassname">virtualsmartcard.TLVutils.</code><code class="descname">encodebertlvDatalist</code><span class="sig-paren">(</span><em>tag</em>, <em>datalist</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.TLVutils.encodebertlvDatalist" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descclassname">virtualsmartcard.TLVutils.</tt><tt class="descname">encodebertlvDatalist</tt><big>(</big><em>tag</em>, <em>datalist</em><big>)</big><a class="headerlink" href="#virtualsmartcard.TLVutils.encodebertlvDatalist" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="function">
|
||||
<dt id="virtualsmartcard.TLVutils.pack">
|
||||
<code class="descclassname">virtualsmartcard.TLVutils.</code><code class="descname">pack</code><span class="sig-paren">(</span><em>tlv_data</em>, <em>recalculate_length=False</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.TLVutils.pack" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descclassname">virtualsmartcard.TLVutils.</tt><tt class="descname">pack</tt><big>(</big><em>tlv_data</em>, <em>recalculate_length=False</em><big>)</big><a class="headerlink" href="#virtualsmartcard.TLVutils.pack" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="function">
|
||||
<dt id="virtualsmartcard.TLVutils.simpletlv_pack">
|
||||
<code class="descclassname">virtualsmartcard.TLVutils.</code><code class="descname">simpletlv_pack</code><span class="sig-paren">(</span><em>tlv_data</em>, <em>recalculate_length=False</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.TLVutils.simpletlv_pack" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descclassname">virtualsmartcard.TLVutils.</tt><tt class="descname">simpletlv_pack</tt><big>(</big><em>tlv_data</em>, <em>recalculate_length=False</em><big>)</big><a class="headerlink" href="#virtualsmartcard.TLVutils.simpletlv_pack" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="function">
|
||||
<dt id="virtualsmartcard.TLVutils.simpletlv_unpack">
|
||||
<code class="descclassname">virtualsmartcard.TLVutils.</code><code class="descname">simpletlv_unpack</code><span class="sig-paren">(</span><em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.TLVutils.simpletlv_unpack" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descclassname">virtualsmartcard.TLVutils.</tt><tt class="descname">simpletlv_unpack</tt><big>(</big><em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.TLVutils.simpletlv_unpack" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Unpacks a simpletlv coded string into a list of 3-tuples (tag, length,
|
||||
newvalue).</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="function">
|
||||
<dt id="virtualsmartcard.TLVutils.tlv_find_tag">
|
||||
<code class="descclassname">virtualsmartcard.TLVutils.</code><code class="descname">tlv_find_tag</code><span class="sig-paren">(</span><em>tlv_data</em>, <em>tag</em>, <em>num_results=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.TLVutils.tlv_find_tag" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descclassname">virtualsmartcard.TLVutils.</tt><tt class="descname">tlv_find_tag</tt><big>(</big><em>tlv_data</em>, <em>tag</em>, <em>num_results=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.TLVutils.tlv_find_tag" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Find (and return) all instances of tag in the given tlv structure (as
|
||||
returned by unpack).
|
||||
If num_results is specified then at most that many results will be
|
||||
@@ -231,7 +232,7 @@ returned.</p>
|
||||
|
||||
<dl class="function">
|
||||
<dt id="virtualsmartcard.TLVutils.tlv_find_tags">
|
||||
<code class="descclassname">virtualsmartcard.TLVutils.</code><code class="descname">tlv_find_tags</code><span class="sig-paren">(</span><em>tlv_data</em>, <em>tags</em>, <em>num_results=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.TLVutils.tlv_find_tags" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descclassname">virtualsmartcard.TLVutils.</tt><tt class="descname">tlv_find_tags</tt><big>(</big><em>tlv_data</em>, <em>tags</em>, <em>num_results=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.TLVutils.tlv_find_tags" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Find (and return) all instances of tags in the given tlv structure (as
|
||||
returned by unpack). If num_results is specified then at most that many
|
||||
results will be returned.</p>
|
||||
@@ -239,12 +240,12 @@ results will be returned.</p>
|
||||
|
||||
<dl class="function">
|
||||
<dt id="virtualsmartcard.TLVutils.tlv_unpack">
|
||||
<code class="descclassname">virtualsmartcard.TLVutils.</code><code class="descname">tlv_unpack</code><span class="sig-paren">(</span><em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.TLVutils.tlv_unpack" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descclassname">virtualsmartcard.TLVutils.</tt><tt class="descname">tlv_unpack</tt><big>(</big><em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.TLVutils.tlv_unpack" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="function">
|
||||
<dt id="virtualsmartcard.TLVutils.unpack">
|
||||
<code class="descclassname">virtualsmartcard.TLVutils.</code><code class="descname">unpack</code><span class="sig-paren">(</span><em>data</em>, <em>with_marks=None</em>, <em>offset=0</em>, <em>include_filler=False</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.TLVutils.unpack" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descclassname">virtualsmartcard.TLVutils.</tt><tt class="descname">unpack</tt><big>(</big><em>data</em>, <em>with_marks=None</em>, <em>offset=0</em>, <em>include_filler=False</em><big>)</big><a class="headerlink" href="#virtualsmartcard.TLVutils.unpack" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>VirtualSmartcard Module — vsmartcard 2017-01-08 documentation</title>
|
||||
<title>VirtualSmartcard 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" />
|
||||
@@ -15,7 +15,7 @@
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: '../../',
|
||||
VERSION: '2017-01-08',
|
||||
VERSION: '2017-01-16',
|
||||
COLLAPSE_INDEX: false,
|
||||
FILE_SUFFIX: '.html',
|
||||
HAS_SOURCE: true
|
||||
@@ -29,7 +29,7 @@
|
||||
<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-08 documentation" href="../../index.html" />
|
||||
<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="utils Module" href="virtualsmartcard.utils.html" />
|
||||
<link rel="prev" title="TLVutils Module" href="virtualsmartcard.TLVutils.html" />
|
||||
@@ -39,7 +39,7 @@
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
|
||||
</head>
|
||||
<body role="document">
|
||||
<body>
|
||||
|
||||
<a href="https://github.com/frankmorgner/vsmartcard"
|
||||
class="visible-desktop hidden-xs"><img
|
||||
@@ -86,6 +86,7 @@
|
||||
<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>
|
||||
@@ -160,37 +161,37 @@
|
||||
</p>
|
||||
<span class="target" id="module-virtualsmartcard.VirtualSmartcard"></span><dl class="class">
|
||||
<dt id="virtualsmartcard.VirtualSmartcard.Iso7816OS">
|
||||
<em class="property">class </em><code class="descclassname">virtualsmartcard.VirtualSmartcard.</code><code class="descname">Iso7816OS</code><span class="sig-paren">(</span><em>mf</em>, <em>sam</em>, <em>ins2handler=None</em>, <em>extended_length=False</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.VirtualSmartcard.Iso7816OS" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <a class="reference internal" href="#virtualsmartcard.VirtualSmartcard.SmartcardOS" title="virtualsmartcard.VirtualSmartcard.SmartcardOS"><code class="xref py py-class docutils literal"><span class="pre">virtualsmartcard.VirtualSmartcard.SmartcardOS</span></code></a></p>
|
||||
<em class="property">class </em><tt class="descclassname">virtualsmartcard.VirtualSmartcard.</tt><tt class="descname">Iso7816OS</tt><big>(</big><em>mf</em>, <em>sam</em>, <em>ins2handler=None</em>, <em>extended_length=False</em><big>)</big><a class="headerlink" href="#virtualsmartcard.VirtualSmartcard.Iso7816OS" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <a class="reference internal" href="#virtualsmartcard.VirtualSmartcard.SmartcardOS" title="virtualsmartcard.VirtualSmartcard.SmartcardOS"><tt class="xref py py-class docutils literal"><span class="pre">virtualsmartcard.VirtualSmartcard.SmartcardOS</span></tt></a></p>
|
||||
<dl class="attribute">
|
||||
<dt id="virtualsmartcard.VirtualSmartcard.Iso7816OS.SAM">
|
||||
<code class="descname">SAM</code><a class="headerlink" href="#virtualsmartcard.VirtualSmartcard.Iso7816OS.SAM" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">SAM</tt><a class="headerlink" href="#virtualsmartcard.VirtualSmartcard.Iso7816OS.SAM" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>secure access module</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.VirtualSmartcard.Iso7816OS.execute">
|
||||
<code class="descname">execute</code><span class="sig-paren">(</span><em>msg</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.VirtualSmartcard.Iso7816OS.execute" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">execute</tt><big>(</big><em>msg</em><big>)</big><a class="headerlink" href="#virtualsmartcard.VirtualSmartcard.Iso7816OS.execute" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.VirtualSmartcard.Iso7816OS.formatResult">
|
||||
<code class="descname">formatResult</code><span class="sig-paren">(</span><em>seekable</em>, <em>le</em>, <em>data</em>, <em>sw</em>, <em>sm</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.VirtualSmartcard.Iso7816OS.formatResult" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">formatResult</tt><big>(</big><em>seekable</em>, <em>le</em>, <em>data</em>, <em>sw</em>, <em>sm</em><big>)</big><a class="headerlink" href="#virtualsmartcard.VirtualSmartcard.Iso7816OS.formatResult" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.VirtualSmartcard.Iso7816OS.getATR">
|
||||
<code class="descname">getATR</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.VirtualSmartcard.Iso7816OS.getATR" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">getATR</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.VirtualSmartcard.Iso7816OS.getATR" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.VirtualSmartcard.Iso7816OS.getResponse">
|
||||
<code class="descname">getResponse</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.VirtualSmartcard.Iso7816OS.getResponse" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">getResponse</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.VirtualSmartcard.Iso7816OS.getResponse" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="staticmethod">
|
||||
<dt id="virtualsmartcard.VirtualSmartcard.Iso7816OS.makeATR">
|
||||
<em class="property">static </em><code class="descname">makeATR</code><span class="sig-paren">(</span><em>**args</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.VirtualSmartcard.Iso7816OS.makeATR" title="Permalink to this definition">¶</a></dt>
|
||||
<em class="property">static </em><tt class="descname">makeATR</tt><big>(</big><em>**args</em><big>)</big><a class="headerlink" href="#virtualsmartcard.VirtualSmartcard.Iso7816OS.makeATR" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Calculate Answer to Reset (ATR) and returns the bitstring.</p>
|
||||
<blockquote>
|
||||
<div><ul>
|
||||
@@ -230,48 +231,48 @@ meaning see ISO 7816-4).</p>
|
||||
|
||||
<dl class="staticmethod">
|
||||
<dt id="virtualsmartcard.VirtualSmartcard.Iso7816OS.makeThirdSoftwareFunctionTable">
|
||||
<em class="property">static </em><code class="descname">makeThirdSoftwareFunctionTable</code><span class="sig-paren">(</span><em>commandChainging=False</em>, <em>extendedLe=False</em>, <em>assignLogicalChannel=0</em>, <em>maximumChannels=0</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.VirtualSmartcard.Iso7816OS.makeThirdSoftwareFunctionTable" title="Permalink to this definition">¶</a></dt>
|
||||
<em class="property">static </em><tt class="descname">makeThirdSoftwareFunctionTable</tt><big>(</big><em>commandChainging=False</em>, <em>extendedLe=False</em>, <em>assignLogicalChannel=0</em>, <em>maximumChannels=0</em><big>)</big><a class="headerlink" href="#virtualsmartcard.VirtualSmartcard.Iso7816OS.makeThirdSoftwareFunctionTable" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Returns a byte according to the third software function table from the
|
||||
historical bytes of the card capabilities.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="attribute">
|
||||
<dt id="virtualsmartcard.VirtualSmartcard.Iso7816OS.mf">
|
||||
<code class="descname">mf</code><a class="headerlink" href="#virtualsmartcard.VirtualSmartcard.Iso7816OS.mf" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">mf</tt><a class="headerlink" href="#virtualsmartcard.VirtualSmartcard.Iso7816OS.mf" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>master file</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.VirtualSmartcard.Iso7816OS.powerDown">
|
||||
<code class="descname">powerDown</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.VirtualSmartcard.Iso7816OS.powerDown" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">powerDown</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.VirtualSmartcard.Iso7816OS.powerDown" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Powers down the card</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.VirtualSmartcard.Iso7816OS.powerUp">
|
||||
<code class="descname">powerUp</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.VirtualSmartcard.Iso7816OS.powerUp" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">powerUp</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.VirtualSmartcard.Iso7816OS.powerUp" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.VirtualSmartcard.Iso7816OS.reset">
|
||||
<code class="descname">reset</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.VirtualSmartcard.Iso7816OS.reset" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">reset</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.VirtualSmartcard.Iso7816OS.reset" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="staticmethod">
|
||||
<dt id="virtualsmartcard.VirtualSmartcard.Iso7816OS.seekable">
|
||||
<em class="property">static </em><code class="descname">seekable</code><span class="sig-paren">(</span><em>ins</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.VirtualSmartcard.Iso7816OS.seekable" title="Permalink to this definition">¶</a></dt>
|
||||
<em class="property">static </em><tt class="descname">seekable</tt><big>(</big><em>ins</em><big>)</big><a class="headerlink" href="#virtualsmartcard.VirtualSmartcard.Iso7816OS.seekable" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
||||
<dl class="class">
|
||||
<dt id="virtualsmartcard.VirtualSmartcard.SmartcardOS">
|
||||
<em class="property">class </em><code class="descclassname">virtualsmartcard.VirtualSmartcard.</code><code class="descname">SmartcardOS</code><a class="headerlink" href="#virtualsmartcard.VirtualSmartcard.SmartcardOS" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p>
|
||||
<em class="property">class </em><tt class="descclassname">virtualsmartcard.VirtualSmartcard.</tt><tt class="descname">SmartcardOS</tt><a class="headerlink" href="#virtualsmartcard.VirtualSmartcard.SmartcardOS" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <tt class="xref py py-class docutils literal"><span class="pre">object</span></tt></p>
|
||||
<p>Base class for a smart card OS</p>
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.VirtualSmartcard.SmartcardOS.execute">
|
||||
<code class="descname">execute</code><span class="sig-paren">(</span><em>msg</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.VirtualSmartcard.SmartcardOS.execute" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">execute</tt><big>(</big><em>msg</em><big>)</big><a class="headerlink" href="#virtualsmartcard.VirtualSmartcard.SmartcardOS.execute" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Returns response to the given APDU as string of characters</p>
|
||||
<table class="docutils field-list" frame="void" rules="none">
|
||||
<col class="field-name" />
|
||||
@@ -285,25 +286,25 @@ historical bytes of the card capabilities.</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.VirtualSmartcard.SmartcardOS.getATR">
|
||||
<code class="descname">getATR</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.VirtualSmartcard.SmartcardOS.getATR" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">getATR</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.VirtualSmartcard.SmartcardOS.getATR" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Returns the ATR of the card as string of characters</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.VirtualSmartcard.SmartcardOS.powerDown">
|
||||
<code class="descname">powerDown</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.VirtualSmartcard.SmartcardOS.powerDown" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">powerDown</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.VirtualSmartcard.SmartcardOS.powerDown" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Powers down the card</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.VirtualSmartcard.SmartcardOS.powerUp">
|
||||
<code class="descname">powerUp</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.VirtualSmartcard.SmartcardOS.powerUp" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">powerUp</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.VirtualSmartcard.SmartcardOS.powerUp" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Powers up the card</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.VirtualSmartcard.SmartcardOS.reset">
|
||||
<code class="descname">reset</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.VirtualSmartcard.SmartcardOS.reset" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">reset</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.VirtualSmartcard.SmartcardOS.reset" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Performs a warm reset of the card (no power down)</p>
|
||||
</dd></dl>
|
||||
|
||||
@@ -311,8 +312,8 @@ historical bytes of the card capabilities.</p>
|
||||
|
||||
<dl class="class">
|
||||
<dt id="virtualsmartcard.VirtualSmartcard.VirtualICC">
|
||||
<em class="property">class </em><code class="descclassname">virtualsmartcard.VirtualSmartcard.</code><code class="descname">VirtualICC</code><span class="sig-paren">(</span><em>datasetfile</em>, <em>card_type</em>, <em>host</em>, <em>port</em>, <em>readernum=None</em>, <em>ef_cardsecurity=None</em>, <em>ef_cardaccess=None</em>, <em>ca_key=None</em>, <em>cvca=None</em>, <em>disable_checks=False</em>, <em>esign_key=None</em>, <em>esign_ca_cert=None</em>, <em>esign_cert=None</em>, <em>logginglevel=20</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.VirtualSmartcard.VirtualICC" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p>
|
||||
<em class="property">class </em><tt class="descclassname">virtualsmartcard.VirtualSmartcard.</tt><tt class="descname">VirtualICC</tt><big>(</big><em>datasetfile</em>, <em>card_type</em>, <em>host</em>, <em>port</em>, <em>readernum=None</em>, <em>ef_cardsecurity=None</em>, <em>ef_cardaccess=None</em>, <em>ca_key=None</em>, <em>cvca=None</em>, <em>disable_checks=False</em>, <em>esign_key=None</em>, <em>esign_ca_cert=None</em>, <em>esign_cert=None</em>, <em>logginglevel=20</em><big>)</big><a class="headerlink" href="#virtualsmartcard.VirtualSmartcard.VirtualICC" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <tt class="xref py py-class docutils literal"><span class="pre">object</span></tt></p>
|
||||
<p>This class is responsible for maintaining the communication of the virtual
|
||||
PCD and the emulated smartcard. vpicc and vpcd communicate via a socket.
|
||||
The vpcd sends command APDUs (which it receives from an application) to the
|
||||
@@ -321,30 +322,30 @@ produces a response APDU. This RAPDU is then passed back by the vicc to
|
||||
the vpcd, which forwards it to the application.</p>
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.VirtualSmartcard.VirtualICC._VirtualICC__recvFromVPICC">
|
||||
<code class="descname">_VirtualICC__recvFromVPICC</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.VirtualSmartcard.VirtualICC._VirtualICC__recvFromVPICC" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">_VirtualICC__recvFromVPICC</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.VirtualSmartcard.VirtualICC._VirtualICC__recvFromVPICC" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Receive a message from the vpcd</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.VirtualSmartcard.VirtualICC._VirtualICC__sendToVPICC">
|
||||
<code class="descname">_VirtualICC__sendToVPICC</code><span class="sig-paren">(</span><em>msg</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.VirtualSmartcard.VirtualICC._VirtualICC__sendToVPICC" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">_VirtualICC__sendToVPICC</tt><big>(</big><em>msg</em><big>)</big><a class="headerlink" href="#virtualsmartcard.VirtualSmartcard.VirtualICC._VirtualICC__sendToVPICC" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Send a message to the vpcd</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="staticmethod">
|
||||
<dt id="virtualsmartcard.VirtualSmartcard.VirtualICC.connectToPort">
|
||||
<em class="property">static </em><code class="descname">connectToPort</code><span class="sig-paren">(</span><em>host</em>, <em>port</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.VirtualSmartcard.VirtualICC.connectToPort" title="Permalink to this definition">¶</a></dt>
|
||||
<em class="property">static </em><tt class="descname">connectToPort</tt><big>(</big><em>host</em>, <em>port</em><big>)</big><a class="headerlink" href="#virtualsmartcard.VirtualSmartcard.VirtualICC.connectToPort" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Open a connection to a given host on a given port.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="staticmethod">
|
||||
<dt id="virtualsmartcard.VirtualSmartcard.VirtualICC.openPort">
|
||||
<em class="property">static </em><code class="descname">openPort</code><span class="sig-paren">(</span><em>port</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.VirtualSmartcard.VirtualICC.openPort" title="Permalink to this definition">¶</a></dt>
|
||||
<em class="property">static </em><tt class="descname">openPort</tt><big>(</big><em>port</em><big>)</big><a class="headerlink" href="#virtualsmartcard.VirtualSmartcard.VirtualICC.openPort" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.VirtualSmartcard.VirtualICC.run">
|
||||
<code class="descname">run</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.VirtualSmartcard.VirtualICC.run" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">run</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.VirtualSmartcard.VirtualICC.run" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Main loop of the vpicc. Receives command APDUs via a socket from the
|
||||
vpcd, dispatches them to the emulated smartcard and sends the resulting
|
||||
respsonse APDU back to the vpcd.</p>
|
||||
@@ -352,14 +353,14 @@ respsonse APDU back to the vpcd.</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.VirtualSmartcard.VirtualICC.signalHandler">
|
||||
<code class="descname">signalHandler</code><span class="sig-paren">(</span><em>sig=None</em>, <em>frame=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.VirtualSmartcard.VirtualICC.signalHandler" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">signalHandler</tt><big>(</big><em>sig=None</em>, <em>frame=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.VirtualSmartcard.VirtualICC.signalHandler" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Basically this signal handler just surpresses a traceback from being
|
||||
printed when the user presses crtl-c</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.VirtualSmartcard.VirtualICC.stop">
|
||||
<code class="descname">stop</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.VirtualSmartcard.VirtualICC.stop" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">stop</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.VirtualSmartcard.VirtualICC.stop" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>HandlerTest Module — vsmartcard 2017-01-08 documentation</title>
|
||||
<title>HandlerTest 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" />
|
||||
@@ -15,7 +15,7 @@
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: '../../',
|
||||
VERSION: '2017-01-08',
|
||||
VERSION: '2017-01-16',
|
||||
COLLAPSE_INDEX: false,
|
||||
FILE_SUFFIX: '.html',
|
||||
HAS_SOURCE: true
|
||||
@@ -29,7 +29,7 @@
|
||||
<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-08 documentation" href="../../index.html" />
|
||||
<link rel="top" title="vsmartcard 2017-01-16 documentation" href="../../index.html" />
|
||||
<link rel="up" title="cards Package" href="virtualsmartcard.cards.html" />
|
||||
<link rel="next" title="Relay Module" href="virtualsmartcard.cards.Relay.html" />
|
||||
<link rel="prev" title="cards Package" href="virtualsmartcard.cards.html" />
|
||||
@@ -39,7 +39,7 @@
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
|
||||
</head>
|
||||
<body role="document">
|
||||
<body>
|
||||
|
||||
<a href="https://github.com/frankmorgner/vsmartcard"
|
||||
class="visible-desktop hidden-xs"><img
|
||||
@@ -86,6 +86,7 @@
|
||||
<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>
|
||||
@@ -159,41 +160,41 @@
|
||||
</p>
|
||||
<span class="target" id="module-virtualsmartcard.cards.HandlerTest"></span><dl class="class">
|
||||
<dt id="virtualsmartcard.cards.HandlerTest.HandlerTestOS">
|
||||
<em class="property">class </em><code class="descclassname">virtualsmartcard.cards.HandlerTest.</code><code class="descname">HandlerTestOS</code><a class="headerlink" href="#virtualsmartcard.cards.HandlerTest.HandlerTestOS" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <a class="reference internal" href="virtualsmartcard.VirtualSmartcard.html#virtualsmartcard.VirtualSmartcard.SmartcardOS" title="virtualsmartcard.VirtualSmartcard.SmartcardOS"><code class="xref py py-class docutils literal"><span class="pre">virtualsmartcard.VirtualSmartcard.SmartcardOS</span></code></a></p>
|
||||
<em class="property">class </em><tt class="descclassname">virtualsmartcard.cards.HandlerTest.</tt><tt class="descname">HandlerTestOS</tt><a class="headerlink" href="#virtualsmartcard.cards.HandlerTest.HandlerTestOS" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <a class="reference internal" href="virtualsmartcard.VirtualSmartcard.html#virtualsmartcard.VirtualSmartcard.SmartcardOS" title="virtualsmartcard.VirtualSmartcard.SmartcardOS"><tt class="xref py py-class docutils literal"><span class="pre">virtualsmartcard.VirtualSmartcard.SmartcardOS</span></tt></a></p>
|
||||
<p>This class implements the commands used for the PC/SC-lite smart card
|
||||
reader driver tester. See <a class="reference external" href="http://pcsclite.alioth.debian.org/pcsclite.html">http://pcsclite.alioth.debian.org/pcsclite.html</a>
|
||||
and handler_test(1).</p>
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.HandlerTest.HandlerTestOS._HandlerTestOS__output_from_le">
|
||||
<code class="descname">_HandlerTestOS__output_from_le</code><span class="sig-paren">(</span><em>msg</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.HandlerTest.HandlerTestOS._HandlerTestOS__output_from_le" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">_HandlerTestOS__output_from_le</tt><big>(</big><em>msg</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.HandlerTest.HandlerTestOS._HandlerTestOS__output_from_le" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.HandlerTest.HandlerTestOS.execute">
|
||||
<code class="descname">execute</code><span class="sig-paren">(</span><em>msg</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.HandlerTest.HandlerTestOS.execute" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">execute</tt><big>(</big><em>msg</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.HandlerTest.HandlerTestOS.execute" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.HandlerTest.HandlerTestOS.getATR">
|
||||
<code class="descname">getATR</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.HandlerTest.HandlerTestOS.getATR" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">getATR</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.HandlerTest.HandlerTestOS.getATR" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.HandlerTest.HandlerTestOS.powerDown">
|
||||
<code class="descname">powerDown</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.HandlerTest.HandlerTestOS.powerDown" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">powerDown</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.HandlerTest.HandlerTestOS.powerDown" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Powers down the card</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.HandlerTest.HandlerTestOS.powerUp">
|
||||
<code class="descname">powerUp</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.HandlerTest.HandlerTestOS.powerUp" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">powerUp</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.HandlerTest.HandlerTestOS.powerUp" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Powers up the card</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.HandlerTest.HandlerTestOS.reset">
|
||||
<code class="descname">reset</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.HandlerTest.HandlerTestOS.reset" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">reset</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.HandlerTest.HandlerTestOS.reset" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Performs a warm reset of the card (no power down)</p>
|
||||
</dd></dl>
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>Relay Module — vsmartcard 2017-01-08 documentation</title>
|
||||
<title>Relay 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" />
|
||||
@@ -15,7 +15,7 @@
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: '../../',
|
||||
VERSION: '2017-01-08',
|
||||
VERSION: '2017-01-16',
|
||||
COLLAPSE_INDEX: false,
|
||||
FILE_SUFFIX: '.html',
|
||||
HAS_SOURCE: true
|
||||
@@ -29,7 +29,7 @@
|
||||
<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-08 documentation" href="../../index.html" />
|
||||
<link rel="top" title="vsmartcard 2017-01-16 documentation" href="../../index.html" />
|
||||
<link rel="up" title="cards Package" href="virtualsmartcard.cards.html" />
|
||||
<link rel="next" title="cryptoflex Module" href="virtualsmartcard.cards.cryptoflex.html" />
|
||||
<link rel="prev" title="HandlerTest Module" href="virtualsmartcard.cards.HandlerTest.html" />
|
||||
@@ -39,7 +39,7 @@
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
|
||||
</head>
|
||||
<body role="document">
|
||||
<body>
|
||||
|
||||
<a href="https://github.com/frankmorgner/vsmartcard"
|
||||
class="visible-desktop hidden-xs"><img
|
||||
@@ -86,6 +86,7 @@
|
||||
<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>
|
||||
@@ -159,41 +160,41 @@
|
||||
</p>
|
||||
<span class="target" id="module-virtualsmartcard.cards.Relay"></span><dl class="class">
|
||||
<dt id="virtualsmartcard.cards.Relay.RelayOS">
|
||||
<em class="property">class </em><code class="descclassname">virtualsmartcard.cards.Relay.</code><code class="descname">RelayOS</code><span class="sig-paren">(</span><em>readernum</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.Relay.RelayOS" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <a class="reference internal" href="virtualsmartcard.VirtualSmartcard.html#virtualsmartcard.VirtualSmartcard.SmartcardOS" title="virtualsmartcard.VirtualSmartcard.SmartcardOS"><code class="xref py py-class docutils literal"><span class="pre">virtualsmartcard.VirtualSmartcard.SmartcardOS</span></code></a></p>
|
||||
<em class="property">class </em><tt class="descclassname">virtualsmartcard.cards.Relay.</tt><tt class="descname">RelayOS</tt><big>(</big><em>readernum</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.Relay.RelayOS" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <a class="reference internal" href="virtualsmartcard.VirtualSmartcard.html#virtualsmartcard.VirtualSmartcard.SmartcardOS" title="virtualsmartcard.VirtualSmartcard.SmartcardOS"><tt class="xref py py-class docutils literal"><span class="pre">virtualsmartcard.VirtualSmartcard.SmartcardOS</span></tt></a></p>
|
||||
<p>This class implements relaying of a (physical) smartcard. The RelayOS
|
||||
forwards the command APDUs received from the vpcd to the real smartcard via
|
||||
an actual smart card reader and sends the responses back to the vpcd.
|
||||
This class can be used to implement relay or MitM attacks.</p>
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.Relay.RelayOS.cleanup">
|
||||
<code class="descname">cleanup</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.Relay.RelayOS.cleanup" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">cleanup</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.Relay.RelayOS.cleanup" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Close the connection to the physical card</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.Relay.RelayOS.execute">
|
||||
<code class="descname">execute</code><span class="sig-paren">(</span><em>msg</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.Relay.RelayOS.execute" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">execute</tt><big>(</big><em>msg</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.Relay.RelayOS.execute" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.Relay.RelayOS.getATR">
|
||||
<code class="descname">getATR</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.Relay.RelayOS.getATR" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">getATR</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.Relay.RelayOS.getATR" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.Relay.RelayOS.powerDown">
|
||||
<code class="descname">powerDown</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.Relay.RelayOS.powerDown" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">powerDown</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.Relay.RelayOS.powerDown" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.Relay.RelayOS.powerUp">
|
||||
<code class="descname">powerUp</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.Relay.RelayOS.powerUp" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">powerUp</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.Relay.RelayOS.powerUp" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.Relay.RelayOS.reset">
|
||||
<code class="descname">reset</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.Relay.RelayOS.reset" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">reset</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.Relay.RelayOS.reset" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>cryptoflex Module — vsmartcard 2017-01-08 documentation</title>
|
||||
<title>cryptoflex 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" />
|
||||
@@ -15,7 +15,7 @@
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: '../../',
|
||||
VERSION: '2017-01-08',
|
||||
VERSION: '2017-01-16',
|
||||
COLLAPSE_INDEX: false,
|
||||
FILE_SUFFIX: '.html',
|
||||
HAS_SOURCE: true
|
||||
@@ -29,7 +29,7 @@
|
||||
<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-08 documentation" href="../../index.html" />
|
||||
<link rel="top" title="vsmartcard 2017-01-16 documentation" href="../../index.html" />
|
||||
<link rel="up" title="cards Package" href="virtualsmartcard.cards.html" />
|
||||
<link rel="next" title="ePass Module" href="virtualsmartcard.cards.ePass.html" />
|
||||
<link rel="prev" title="Relay Module" href="virtualsmartcard.cards.Relay.html" />
|
||||
@@ -39,7 +39,7 @@
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
|
||||
</head>
|
||||
<body role="document">
|
||||
<body>
|
||||
|
||||
<a href="https://github.com/frankmorgner/vsmartcard"
|
||||
class="visible-desktop hidden-xs"><img
|
||||
@@ -86,6 +86,7 @@
|
||||
<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>
|
||||
@@ -168,24 +169,24 @@
|
||||
</p>
|
||||
<span class="target" id="module-virtualsmartcard.cards.cryptoflex"></span><dl class="class">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexMF">
|
||||
<em class="property">class </em><code class="descclassname">virtualsmartcard.cards.cryptoflex.</code><code class="descname">CryptoflexMF</code><span class="sig-paren">(</span><em>filedescriptor=56</em>, <em>lifecycle=5</em>, <em>simpletlv_data=None</em>, <em>bertlv_data=None</em>, <em>dfname=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <a class="reference internal" href="virtualsmartcard.SmartcardFilesystem.html#virtualsmartcard.SmartcardFilesystem.MF" title="virtualsmartcard.SmartcardFilesystem.MF"><code class="xref py py-class docutils literal"><span class="pre">virtualsmartcard.SmartcardFilesystem.MF</span></code></a></p>
|
||||
<em class="property">class </em><tt class="descclassname">virtualsmartcard.cards.cryptoflex.</tt><tt class="descname">CryptoflexMF</tt><big>(</big><em>filedescriptor=56</em>, <em>lifecycle=5</em>, <em>simpletlv_data=None</em>, <em>bertlv_data=None</em>, <em>dfname=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <a class="reference internal" href="virtualsmartcard.SmartcardFilesystem.html#virtualsmartcard.SmartcardFilesystem.MF" title="virtualsmartcard.SmartcardFilesystem.MF"><tt class="xref py py-class docutils literal"><span class="pre">virtualsmartcard.SmartcardFilesystem.MF</span></tt></a></p>
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexMF._selectFile">
|
||||
<code class="descname">_selectFile</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF._selectFile" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">_selectFile</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF._selectFile" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Returns the file specified by ‘p1’ and ‘data’ from the select
|
||||
file command APDU.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexMF.append">
|
||||
<code class="descname">append</code><span class="sig-paren">(</span><em>file</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.append" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">append</tt><big>(</big><em>file</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.append" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Appends ‘file’ to the content of the DF.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexMF.appendRecord">
|
||||
<code class="descname">appendRecord</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.appendRecord" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">appendRecord</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.appendRecord" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Function for instruction 0xe2. Takes the parameter bytes ‘p1’, ‘p2’ as
|
||||
integers and ‘data’ as binary string.</p>
|
||||
<table class="docutils field-list" frame="void" rules="none">
|
||||
@@ -201,30 +202,30 @@ data as binary string.</td>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexMF.appendrecord">
|
||||
<code class="descname">appendrecord</code><span class="sig-paren">(</span><em>*argz</em>, <em>**args</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.appendrecord" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">appendrecord</tt><big>(</big><em>*argz</em>, <em>**args</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.appendrecord" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Only a template, will raise an error.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="attribute">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexMF.bertlv_data">
|
||||
<code class="descname">bertlv_data</code><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.bertlv_data" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">bertlv_data</tt><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.bertlv_data" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>list of (tag, length, value)-tuples of BER-TLV coded data objects (encrypted)</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="attribute">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexMF.content">
|
||||
<code class="descname">content</code><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.content" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">content</tt><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.content" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>list of files of the DF</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="staticmethod">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexMF.create">
|
||||
<em class="property">static </em><code class="descname">create</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.create" title="Permalink to this definition">¶</a></dt>
|
||||
<em class="property">static </em><tt class="descname">create</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.create" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexMF.createFile">
|
||||
<code class="descname">createFile</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.createFile" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">createFile</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.createFile" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Function for instruction 0xe0. Takes the parameter bytes ‘p1’, ‘p2’ as
|
||||
integers and ‘data’ as binary string.</p>
|
||||
<table class="docutils field-list" frame="void" rules="none">
|
||||
@@ -240,31 +241,31 @@ data as binary string.</td>
|
||||
|
||||
<dl class="attribute">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexMF.current">
|
||||
<code class="descname">current</code><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.current" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">current</tt><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.current" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>the currently selected file</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexMF.currentDF">
|
||||
<code class="descname">currentDF</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.currentDF" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">currentDF</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.currentDF" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Returns the current DF.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexMF.currentEF">
|
||||
<code class="descname">currentEF</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.currentEF" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">currentEF</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.currentEF" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Returns the current EF or None if not available.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="attribute">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexMF.data">
|
||||
<code class="descname">data</code><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.data" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">data</tt><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.data" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>unknown</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexMF.dataObjectHandlingDecodeEncapsulated">
|
||||
<code class="descname">dataObjectHandlingDecodeEncapsulated</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.dataObjectHandlingDecodeEncapsulated" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">dataObjectHandlingDecodeEncapsulated</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.dataObjectHandlingDecodeEncapsulated" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Decodes ‘p1’, ‘p2’ and ‘data’ from a data object handling command (i.
|
||||
e. get/put data) with <em>odd</em> instruction code.</p>
|
||||
<table class="docutils field-list" frame="void" rules="none">
|
||||
@@ -281,7 +282,7 @@ SIMPLE-TLV data objects False otherwise and a list of
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexMF.dataObjectHandlingDecodePlain">
|
||||
<code class="descname">dataObjectHandlingDecodePlain</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.dataObjectHandlingDecodePlain" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">dataObjectHandlingDecodePlain</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.dataObjectHandlingDecodePlain" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Decodes ‘p1’, ‘p2’ and ‘data’ from a data object handling command (i.
|
||||
e. get/put data) with <em>even</em> instruction code.</p>
|
||||
<table class="docutils field-list" frame="void" rules="none">
|
||||
@@ -298,7 +299,7 @@ SIMPLE-TLV data objects False otherwise and a list of
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexMF.dataUnitsDecodeEncapsulated">
|
||||
<code class="descname">dataUnitsDecodeEncapsulated</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.dataUnitsDecodeEncapsulated" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">dataUnitsDecodeEncapsulated</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.dataUnitsDecodeEncapsulated" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Decodes ‘p1’, ‘p2’ and ‘data’ from a data unit command (i. e.
|
||||
read/write/update/search/erase binary) with <em>odd</em> instruction code.</p>
|
||||
<dl class="docutils">
|
||||
@@ -309,17 +310,17 @@ read/write/update/search/erase binary) with <em>odd</em> instruction code.</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexMF.dataUnitsDecodePlain">
|
||||
<code class="descname">dataUnitsDecodePlain</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.dataUnitsDecodePlain" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">dataUnitsDecodePlain</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.dataUnitsDecodePlain" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexMF.decrypt">
|
||||
<code class="descname">decrypt</code><span class="sig-paren">(</span><em>path</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.decrypt" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">decrypt</tt><big>(</big><em>path</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.decrypt" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexMF.deleteFile">
|
||||
<code class="descname">deleteFile</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.deleteFile" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">deleteFile</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.deleteFile" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Function for instruction 0xe4. Takes the parameter bytes ‘p1’, ‘p2’ as
|
||||
integers and ‘data’ as binary string.</p>
|
||||
<table class="docutils field-list" frame="void" rules="none">
|
||||
@@ -335,13 +336,13 @@ data as binary string.</td>
|
||||
|
||||
<dl class="attribute">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexMF.dfname">
|
||||
<code class="descname">dfname</code><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.dfname" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">dfname</tt><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.dfname" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>string with up to 16 bytes. DF name,which can also be used as applicationidentifier.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dl class="staticmethod">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexMF.encodeFileControlParameter">
|
||||
<code class="descname">encodeFileControlParameter</code><span class="sig-paren">(</span><em>file</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.encodeFileControlParameter" title="Permalink to this definition">¶</a></dt>
|
||||
<em class="property">static </em><tt class="descname">encodeFileControlParameter</tt><big>(</big><em>file</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.encodeFileControlParameter" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Returns a string of TLV-coded file control information of ‘file’. Note:
|
||||
The result is not prepended with tag and length for neither TCP, FMD
|
||||
nor FCI template.</p>
|
||||
@@ -349,12 +350,12 @@ nor FCI template.</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexMF.encrypt">
|
||||
<code class="descname">encrypt</code><span class="sig-paren">(</span><em>path</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.encrypt" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">encrypt</tt><big>(</big><em>path</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.encrypt" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexMF.eraseBinaryEncapsulated">
|
||||
<code class="descname">eraseBinaryEncapsulated</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.eraseBinaryEncapsulated" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">eraseBinaryEncapsulated</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.eraseBinaryEncapsulated" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Function for instruction 0x0f. Takes the parameter bytes ‘p1’, ‘p2’ as
|
||||
integers and ‘data’ as binary string.</p>
|
||||
<table class="docutils field-list" frame="void" rules="none">
|
||||
@@ -370,7 +371,7 @@ data as binary string.</td>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexMF.eraseBinaryPlain">
|
||||
<code class="descname">eraseBinaryPlain</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.eraseBinaryPlain" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">eraseBinaryPlain</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.eraseBinaryPlain" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Function for instruction 0x0e. Takes the parameter bytes ‘p1’, ‘p2’ as
|
||||
integers and ‘data’ as binary string.</p>
|
||||
<table class="docutils field-list" frame="void" rules="none">
|
||||
@@ -386,7 +387,7 @@ data as binary string.</td>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexMF.eraseRecord">
|
||||
<code class="descname">eraseRecord</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.eraseRecord" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">eraseRecord</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.eraseRecord" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Function for instruction 0x0c. Takes the parameter bytes ‘p1’, ‘p2’ as
|
||||
integers and ‘data’ as binary string.</p>
|
||||
<table class="docutils field-list" frame="void" rules="none">
|
||||
@@ -402,31 +403,31 @@ data as binary string.</td>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexMF.erasebinary">
|
||||
<code class="descname">erasebinary</code><span class="sig-paren">(</span><em>*argz</em>, <em>**args</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.erasebinary" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">erasebinary</tt><big>(</big><em>*argz</em>, <em>**args</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.erasebinary" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Only a template, will raise an error.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="attribute">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexMF.fid">
|
||||
<code class="descname">fid</code><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.fid" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">fid</tt><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.fid" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>file identifier</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="attribute">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexMF.filedescriptor">
|
||||
<code class="descname">filedescriptor</code><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.filedescriptor" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">filedescriptor</tt><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.filedescriptor" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>file descriptor byte</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="attribute">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexMF.firstSFT">
|
||||
<code class="descname">firstSFT</code><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.firstSFT" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">firstSFT</tt><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.firstSFT" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>string of length 1. The firstsoftware function table from thehistorical bytes.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexMF.getDataEncapsulated">
|
||||
<code class="descname">getDataEncapsulated</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.getDataEncapsulated" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">getDataEncapsulated</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.getDataEncapsulated" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Function for instruction 0xcb. Takes the parameter bytes ‘p1’, ‘p2’ as
|
||||
integers and ‘data’ as binary string.</p>
|
||||
<table class="docutils field-list" frame="void" rules="none">
|
||||
@@ -442,7 +443,7 @@ data as binary string.</td>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexMF.getDataPlain">
|
||||
<code class="descname">getDataPlain</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.getDataPlain" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">getDataPlain</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.getDataPlain" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Function for instruction 0xca. Takes the parameter bytes ‘p1’, ‘p2’ as
|
||||
integers and ‘data’ as binary string.</p>
|
||||
<table class="docutils field-list" frame="void" rules="none">
|
||||
@@ -458,7 +459,7 @@ data as binary string.</td>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexMF.getdata">
|
||||
<code class="descname">getdata</code><span class="sig-paren">(</span><em>isSimpleTlv</em>, <em>requestedTL</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.getdata" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">getdata</tt><big>(</big><em>isSimpleTlv</em>, <em>requestedTL</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.getdata" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Returns a string of either the file’s BER-TLV or the file’s SIMPLE-TLV
|
||||
coded data objects depending on the bool ‘isSimpleTlv’. ‘requestedTL’
|
||||
is a list of (tag, length)-tuples that specify which tags should be
|
||||
@@ -467,39 +468,39 @@ returned in what size.</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexMF.getpath">
|
||||
<code class="descname">getpath</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.getpath" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">getpath</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.getpath" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Returns the path to this file beginning with the MF’s fid.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="attribute">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexMF.lifecycle">
|
||||
<code class="descname">lifecycle</code><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.lifecycle" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">lifecycle</tt><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.lifecycle" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>life cycle byte</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dl class="staticmethod">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexMF.makeFirstSoftwareFunctionTable">
|
||||
<code class="descname">makeFirstSoftwareFunctionTable</code><span class="sig-paren">(</span><em>DFSelectionByFullDFName=True</em>, <em>DFSelectionByPartialDFName=True</em>, <em>DFSelectionByPath=True</em>, <em>DFSelectionByFID=True</em>, <em>DFSelectionByApplication_implicite=True</em>, <em>ShortFIDSupported=True</em>, <em>RecordNumberSupported=True</em>, <em>RecordIdentifierSupported=True</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.makeFirstSoftwareFunctionTable" title="Permalink to this definition">¶</a></dt>
|
||||
<em class="property">static </em><tt class="descname">makeFirstSoftwareFunctionTable</tt><big>(</big><em>DFSelectionByFullDFName=True</em>, <em>DFSelectionByPartialDFName=True</em>, <em>DFSelectionByPath=True</em>, <em>DFSelectionByFID=True</em>, <em>DFSelectionByApplication_implicite=True</em>, <em>ShortFIDSupported=True</em>, <em>RecordNumberSupported=True</em>, <em>RecordIdentifierSupported=True</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.makeFirstSoftwareFunctionTable" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Returns a byte according to the first software function table from the
|
||||
historical bytes of the card capabilities.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dl class="staticmethod">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexMF.makeSecondSoftwareFunctionTable">
|
||||
<code class="descname">makeSecondSoftwareFunctionTable</code><span class="sig-paren">(</span><em>DCB=1</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.makeSecondSoftwareFunctionTable" title="Permalink to this definition">¶</a></dt>
|
||||
<em class="property">static </em><tt class="descname">makeSecondSoftwareFunctionTable</tt><big>(</big><em>DCB=1</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.makeSecondSoftwareFunctionTable" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>The second software function table from the historical bytes contains
|
||||
the data coding byte.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="attribute">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexMF.parent">
|
||||
<code class="descname">parent</code><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.parent" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">parent</tt><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.parent" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>parent DF</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexMF.putDataEncapsulated">
|
||||
<code class="descname">putDataEncapsulated</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.putDataEncapsulated" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">putDataEncapsulated</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.putDataEncapsulated" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Function for instruction 0xdb. Takes the parameter bytes ‘p1’, ‘p2’ as
|
||||
integers and ‘data’ as binary string.</p>
|
||||
<table class="docutils field-list" frame="void" rules="none">
|
||||
@@ -515,7 +516,7 @@ data as binary string.</td>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexMF.putDataPlain">
|
||||
<code class="descname">putDataPlain</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.putDataPlain" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">putDataPlain</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.putDataPlain" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Function for instruction 0xda. Takes the parameter bytes ‘p1’, ‘p2’ as
|
||||
integers and ‘data’ as binary string.</p>
|
||||
<table class="docutils field-list" frame="void" rules="none">
|
||||
@@ -531,7 +532,7 @@ data as binary string.</td>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexMF.putdata">
|
||||
<code class="descname">putdata</code><span class="sig-paren">(</span><em>isSimpleTlv</em>, <em>newtlvlist</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.putdata" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">putdata</tt><big>(</big><em>isSimpleTlv</em>, <em>newtlvlist</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.putdata" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Sets either the file’s BER-TLV or the file’s SIMPLE-TLV coded data
|
||||
objects depending on the bool ‘isSimpleTlv’. ‘newtlvlist’ is a list of
|
||||
(tag, length, value)-tuples of new data.</p>
|
||||
@@ -539,7 +540,7 @@ objects depending on the bool ‘isSimpleTlv’. ‘newtlvlist’
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexMF.readBinaryEncapsulated">
|
||||
<code class="descname">readBinaryEncapsulated</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.readBinaryEncapsulated" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">readBinaryEncapsulated</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.readBinaryEncapsulated" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Function for instruction 0xb1. Takes the parameter bytes ‘p1’, ‘p2’ as
|
||||
integers and ‘data’ as binary string.</p>
|
||||
<table class="docutils field-list" frame="void" rules="none">
|
||||
@@ -555,7 +556,7 @@ data as binary string.</td>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexMF.readBinaryPlain">
|
||||
<code class="descname">readBinaryPlain</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.readBinaryPlain" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">readBinaryPlain</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.readBinaryPlain" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Function for instruction 0xb0. Takes the parameter bytes ‘p1’, ‘p2’ as
|
||||
integers and ‘data’ as binary string.</p>
|
||||
<table class="docutils field-list" frame="void" rules="none">
|
||||
@@ -571,7 +572,7 @@ data as binary string.</td>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexMF.readRecordEncapsulated">
|
||||
<code class="descname">readRecordEncapsulated</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.readRecordEncapsulated" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">readRecordEncapsulated</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.readRecordEncapsulated" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Function for instruction 0xb3. Takes the parameter bytes ‘p1’, ‘p2’ as
|
||||
integers and ‘data’ as binary string.</p>
|
||||
<table class="docutils field-list" frame="void" rules="none">
|
||||
@@ -587,7 +588,7 @@ data as binary string.</td>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexMF.readRecordPlain">
|
||||
<code class="descname">readRecordPlain</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.readRecordPlain" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">readRecordPlain</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.readRecordPlain" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Function for instruction 0xb2. Takes the parameter bytes ‘p1’, ‘p2’ as
|
||||
integers and ‘data’ as binary string.</p>
|
||||
<table class="docutils field-list" frame="void" rules="none">
|
||||
@@ -603,46 +604,46 @@ data as binary string.</td>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexMF.readbinary">
|
||||
<code class="descname">readbinary</code><span class="sig-paren">(</span><em>*argz</em>, <em>**args</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.readbinary" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">readbinary</tt><big>(</big><em>*argz</em>, <em>**args</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.readbinary" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Only a template, will raise an error.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexMF.readrecord">
|
||||
<code class="descname">readrecord</code><span class="sig-paren">(</span><em>*argz</em>, <em>**args</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.readrecord" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">readrecord</tt><big>(</big><em>*argz</em>, <em>**args</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.readrecord" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Only a template, will raise an error.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexMF.recordHandlingDecode">
|
||||
<code class="descname">recordHandlingDecode</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.recordHandlingDecode" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">recordHandlingDecode</tt><big>(</big><em>p1</em>, <em>p2</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.recordHandlingDecode" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexMF.remove">
|
||||
<code class="descname">remove</code><span class="sig-paren">(</span><em>file</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.remove" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">remove</tt><big>(</big><em>file</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.remove" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Removes ‘file’ from the content of the DF</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexMF.searchBinaryEncapsulated">
|
||||
<code class="descname">searchBinaryEncapsulated</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.searchBinaryEncapsulated" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">searchBinaryEncapsulated</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.searchBinaryEncapsulated" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexMF.searchBinaryPlain">
|
||||
<code class="descname">searchBinaryPlain</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.searchBinaryPlain" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">searchBinaryPlain</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.searchBinaryPlain" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="attribute">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexMF.secondSFT">
|
||||
<code class="descname">secondSFT</code><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.secondSFT" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">secondSFT</tt><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.secondSFT" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>string of length 1. The secondsoftware function table from thehistorical bytes.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexMF.select">
|
||||
<code class="descname">select</code><span class="sig-paren">(</span><em>attribute</em>, <em>value</em>, <em>reference=0</em>, <em>index_current=0</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.select" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">select</tt><big>(</big><em>attribute</em>, <em>value</em>, <em>reference=0</em>, <em>index_current=0</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.select" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Returns the first file of the DF, that has the ‘attribute’ with the
|
||||
specified ‘value’. For partial DF name selection you must specify the
|
||||
first/last/next or previous occurence with ‘reference’ and the index of
|
||||
@@ -651,7 +652,7 @@ the current file ‘index_current’ (-1 for None).</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexMF.selectFile">
|
||||
<code class="descname">selectFile</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.selectFile" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">selectFile</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.selectFile" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Function for instruction 0xa4. Takes the parameter bytes ‘p1’, ‘p2’ as
|
||||
integers and ‘data’ as binary string. Returns the status bytes as two
|
||||
byte long integer and the response data as binary string.</p>
|
||||
@@ -659,13 +660,13 @@ byte long integer and the response data as binary string.</p>
|
||||
|
||||
<dl class="attribute">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexMF.simpletlv_data">
|
||||
<code class="descname">simpletlv_data</code><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.simpletlv_data" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">simpletlv_data</tt><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.simpletlv_data" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>list of (tag, length, value)-tuples of SIMPLE-TLV coded data objects (encrypted)</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexMF.updateBinaryEncapsulated">
|
||||
<code class="descname">updateBinaryEncapsulated</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.updateBinaryEncapsulated" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">updateBinaryEncapsulated</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.updateBinaryEncapsulated" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Function for instruction 0xd7. Takes the parameter bytes ‘p1’, ‘p2’ as
|
||||
integers and ‘data’ as binary string.</p>
|
||||
<table class="docutils field-list" frame="void" rules="none">
|
||||
@@ -681,7 +682,7 @@ data as binary string.</td>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexMF.updateBinaryPlain">
|
||||
<code class="descname">updateBinaryPlain</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.updateBinaryPlain" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">updateBinaryPlain</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.updateBinaryPlain" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Function for instruction 0xd6. Takes the parameter bytes ‘p1’, ‘p2’ as
|
||||
integers and ‘data’ as binary string.</p>
|
||||
<table class="docutils field-list" frame="void" rules="none">
|
||||
@@ -697,7 +698,7 @@ data as binary string.</td>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexMF.updateRecordEncapsulated">
|
||||
<code class="descname">updateRecordEncapsulated</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.updateRecordEncapsulated" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">updateRecordEncapsulated</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.updateRecordEncapsulated" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Function for instruction 0xdd. Takes the parameter bytes ‘p1’, ‘p2’ as
|
||||
integers and ‘data’ as binary string.</p>
|
||||
<table class="docutils field-list" frame="void" rules="none">
|
||||
@@ -713,7 +714,7 @@ data as binary string.</td>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexMF.updateRecordPlain">
|
||||
<code class="descname">updateRecordPlain</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.updateRecordPlain" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">updateRecordPlain</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.updateRecordPlain" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Function for instruction 0xdc. Takes the parameter bytes ‘p1’, ‘p2’ as
|
||||
integers and ‘data’ as binary string.</p>
|
||||
<table class="docutils field-list" frame="void" rules="none">
|
||||
@@ -729,19 +730,19 @@ data as binary string.</td>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexMF.updatebinary">
|
||||
<code class="descname">updatebinary</code><span class="sig-paren">(</span><em>*argz</em>, <em>**args</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.updatebinary" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">updatebinary</tt><big>(</big><em>*argz</em>, <em>**args</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.updatebinary" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Only a template, will raise an error.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexMF.updaterecord">
|
||||
<code class="descname">updaterecord</code><span class="sig-paren">(</span><em>*argz</em>, <em>**args</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.updaterecord" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">updaterecord</tt><big>(</big><em>*argz</em>, <em>**args</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.updaterecord" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Only a template, will raise an error.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexMF.writeBinaryEncapsulated">
|
||||
<code class="descname">writeBinaryEncapsulated</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.writeBinaryEncapsulated" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">writeBinaryEncapsulated</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.writeBinaryEncapsulated" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Function for instruction 0xd1. Takes the parameter bytes ‘p1’, ‘p2’ as
|
||||
integers and ‘data’ as binary string. Returns the status bytes as two
|
||||
byte long integer and the response data as binary string.</p>
|
||||
@@ -749,7 +750,7 @@ byte long integer and the response data as binary string.</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexMF.writeBinaryPlain">
|
||||
<code class="descname">writeBinaryPlain</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.writeBinaryPlain" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">writeBinaryPlain</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.writeBinaryPlain" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Function for instruction 0xd0. Takes the parameter bytes ‘p1’, ‘p2’ as
|
||||
integers and ‘data’ as binary string.</p>
|
||||
<table class="docutils field-list" frame="void" rules="none">
|
||||
@@ -765,7 +766,7 @@ data as binary string.</td>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexMF.writeRecord">
|
||||
<code class="descname">writeRecord</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.writeRecord" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">writeRecord</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.writeRecord" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Function for instruction 0xd2. Takes the parameter bytes ‘p1’, ‘p2’ as
|
||||
integers and ‘data’ as binary string.</p>
|
||||
<table class="docutils field-list" frame="void" rules="none">
|
||||
@@ -781,13 +782,13 @@ data as binary string.</td>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexMF.writebinary">
|
||||
<code class="descname">writebinary</code><span class="sig-paren">(</span><em>*argz</em>, <em>**args</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.writebinary" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">writebinary</tt><big>(</big><em>*argz</em>, <em>**args</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.writebinary" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Only a template, will raise an error.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexMF.writerecord">
|
||||
<code class="descname">writerecord</code><span class="sig-paren">(</span><em>*argz</em>, <em>**args</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.writerecord" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">writerecord</tt><big>(</big><em>*argz</em>, <em>**args</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexMF.writerecord" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Only a template, will raise an error.</p>
|
||||
</dd></dl>
|
||||
|
||||
@@ -795,37 +796,37 @@ data as binary string.</td>
|
||||
|
||||
<dl class="class">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexOS">
|
||||
<em class="property">class </em><code class="descclassname">virtualsmartcard.cards.cryptoflex.</code><code class="descname">CryptoflexOS</code><span class="sig-paren">(</span><em>mf</em>, <em>sam</em>, <em>ins2handler=None</em>, <em>maxle=256</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexOS" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <a class="reference internal" href="virtualsmartcard.VirtualSmartcard.html#virtualsmartcard.VirtualSmartcard.Iso7816OS" title="virtualsmartcard.VirtualSmartcard.Iso7816OS"><code class="xref py py-class docutils literal"><span class="pre">virtualsmartcard.VirtualSmartcard.Iso7816OS</span></code></a></p>
|
||||
<em class="property">class </em><tt class="descclassname">virtualsmartcard.cards.cryptoflex.</tt><tt class="descname">CryptoflexOS</tt><big>(</big><em>mf</em>, <em>sam</em>, <em>ins2handler=None</em>, <em>maxle=256</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexOS" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <a class="reference internal" href="virtualsmartcard.VirtualSmartcard.html#virtualsmartcard.VirtualSmartcard.Iso7816OS" title="virtualsmartcard.VirtualSmartcard.Iso7816OS"><tt class="xref py py-class docutils literal"><span class="pre">virtualsmartcard.VirtualSmartcard.Iso7816OS</span></tt></a></p>
|
||||
<dl class="attribute">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexOS.SAM">
|
||||
<code class="descname">SAM</code><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexOS.SAM" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">SAM</tt><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexOS.SAM" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>secure access module</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexOS.execute">
|
||||
<code class="descname">execute</code><span class="sig-paren">(</span><em>msg</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexOS.execute" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">execute</tt><big>(</big><em>msg</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexOS.execute" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexOS.formatResult">
|
||||
<code class="descname">formatResult</code><span class="sig-paren">(</span><em>ins</em>, <em>le</em>, <em>data</em>, <em>sw</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexOS.formatResult" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">formatResult</tt><big>(</big><em>ins</em>, <em>le</em>, <em>data</em>, <em>sw</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexOS.formatResult" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexOS.getATR">
|
||||
<code class="descname">getATR</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexOS.getATR" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">getATR</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexOS.getATR" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexOS.getResponse">
|
||||
<code class="descname">getResponse</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexOS.getResponse" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">getResponse</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexOS.getResponse" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dl class="staticmethod">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexOS.makeATR">
|
||||
<code class="descname">makeATR</code><span class="sig-paren">(</span><em>**args</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexOS.makeATR" title="Permalink to this definition">¶</a></dt>
|
||||
<em class="property">static </em><tt class="descname">makeATR</tt><big>(</big><em>**args</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexOS.makeATR" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Calculate Answer to Reset (ATR) and returns the bitstring.</p>
|
||||
<blockquote>
|
||||
<div><ul>
|
||||
@@ -863,49 +864,49 @@ meaning see ISO 7816-4).</p>
|
||||
<p>T0, TDi and TCK are automatically calculated.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dl class="staticmethod">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexOS.makeThirdSoftwareFunctionTable">
|
||||
<code class="descname">makeThirdSoftwareFunctionTable</code><span class="sig-paren">(</span><em>commandChainging=False</em>, <em>extendedLe=False</em>, <em>assignLogicalChannel=0</em>, <em>maximumChannels=0</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexOS.makeThirdSoftwareFunctionTable" title="Permalink to this definition">¶</a></dt>
|
||||
<em class="property">static </em><tt class="descname">makeThirdSoftwareFunctionTable</tt><big>(</big><em>commandChainging=False</em>, <em>extendedLe=False</em>, <em>assignLogicalChannel=0</em>, <em>maximumChannels=0</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexOS.makeThirdSoftwareFunctionTable" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Returns a byte according to the third software function table from the
|
||||
historical bytes of the card capabilities.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="attribute">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexOS.mf">
|
||||
<code class="descname">mf</code><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexOS.mf" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">mf</tt><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexOS.mf" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>master file</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexOS.powerDown">
|
||||
<code class="descname">powerDown</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexOS.powerDown" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">powerDown</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexOS.powerDown" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Powers down the card</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexOS.powerUp">
|
||||
<code class="descname">powerUp</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexOS.powerUp" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">powerUp</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexOS.powerUp" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexOS.reset">
|
||||
<code class="descname">reset</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexOS.reset" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">reset</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexOS.reset" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dl class="staticmethod">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexOS.seekable">
|
||||
<code class="descname">seekable</code><span class="sig-paren">(</span><em>ins</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexOS.seekable" title="Permalink to this definition">¶</a></dt>
|
||||
<em class="property">static </em><tt class="descname">seekable</tt><big>(</big><em>ins</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexOS.seekable" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
||||
<dl class="class">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexSAM">
|
||||
<em class="property">class </em><code class="descclassname">virtualsmartcard.cards.cryptoflex.</code><code class="descname">CryptoflexSAM</code><span class="sig-paren">(</span><em>mf=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexSAM" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <a class="reference internal" href="virtualsmartcard.SmartcardSAM.html#virtualsmartcard.SmartcardSAM.SAM" title="virtualsmartcard.SmartcardSAM.SAM"><code class="xref py py-class docutils literal"><span class="pre">virtualsmartcard.SmartcardSAM.SAM</span></code></a></p>
|
||||
<em class="property">class </em><tt class="descclassname">virtualsmartcard.cards.cryptoflex.</tt><tt class="descname">CryptoflexSAM</tt><big>(</big><em>mf=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexSAM" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <a class="reference internal" href="virtualsmartcard.SmartcardSAM.html#virtualsmartcard.SmartcardSAM.SAM" title="virtualsmartcard.SmartcardSAM.SAM"><tt class="xref py py-class docutils literal"><span class="pre">virtualsmartcard.SmartcardSAM.SAM</span></tt></a></p>
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexSAM.FSdecrypt">
|
||||
<code class="descname">FSdecrypt</code><span class="sig-paren">(</span><em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexSAM.FSdecrypt" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">FSdecrypt</tt><big>(</big><em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexSAM.FSdecrypt" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Decrypt the given data, using the parameters stored in the SAM.
|
||||
Right now we do not encrypt the data. In memory encryption might or
|
||||
might not be added in a future version.</p>
|
||||
@@ -913,7 +914,7 @@ might not be added in a future version.</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexSAM.FSencrypt">
|
||||
<code class="descname">FSencrypt</code><span class="sig-paren">(</span><em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexSAM.FSencrypt" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">FSencrypt</tt><big>(</big><em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexSAM.FSencrypt" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Encrypt the given data, using the parameters stored in the SAM.
|
||||
Right now we do not encrypt the data. In memory encryption might or
|
||||
might not be added in a future version.</p>
|
||||
@@ -921,7 +922,7 @@ might not be added in a future version.</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexSAM._get_referenced_key">
|
||||
<code class="descname">_get_referenced_key</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexSAM._get_referenced_key" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">_get_referenced_key</tt><big>(</big><em>p1</em>, <em>p2</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexSAM._get_referenced_key" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>This method returns the key specified by the p2 parameter. The key may
|
||||
be stored on the cards filesystem.</p>
|
||||
<table class="docutils field-list" frame="void" rules="none">
|
||||
@@ -1061,52 +1062,52 @@ key)</td>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexSAM.change_reference_data">
|
||||
<code class="descname">change_reference_data</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexSAM.change_reference_data" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">change_reference_data</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexSAM.change_reference_data" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Change the specified referenced data (e.g. CHV) of the card</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexSAM.erase_SE">
|
||||
<code class="descname">erase_SE</code><span class="sig-paren">(</span><em>SEID</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexSAM.erase_SE" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">erase_SE</tt><big>(</big><em>SEID</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexSAM.erase_SE" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Erases a Security Environment stored under SEID from the SAM</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexSAM.external_authenticate">
|
||||
<code class="descname">external_authenticate</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexSAM.external_authenticate" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">external_authenticate</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexSAM.external_authenticate" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Authenticate the terminal to the card. Check whether Terminal correctly
|
||||
encrypted the given challenge or not</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexSAM.generate_public_key_pair">
|
||||
<code class="descname">generate_public_key_pair</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexSAM.generate_public_key_pair" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">generate_public_key_pair</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexSAM.generate_public_key_pair" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexSAM.get_card_number">
|
||||
<code class="descname">get_card_number</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexSAM.get_card_number" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">get_card_number</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexSAM.get_card_number" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexSAM.get_challenge">
|
||||
<code class="descname">get_challenge</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexSAM.get_challenge" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">get_challenge</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexSAM.get_challenge" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Generate a random number of maximum 8 Byte and return it.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexSAM.internal_authenticate">
|
||||
<code class="descname">internal_authenticate</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexSAM.internal_authenticate" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">internal_authenticate</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexSAM.internal_authenticate" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexSAM.manage_security_environment">
|
||||
<code class="descname">manage_security_environment</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexSAM.manage_security_environment" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">manage_security_environment</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexSAM.manage_security_environment" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexSAM.mutual_authenticate">
|
||||
<code class="descname">mutual_authenticate</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>mutual_challenge</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexSAM.mutual_authenticate" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">mutual_authenticate</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>mutual_challenge</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexSAM.mutual_authenticate" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Takes an encrypted challenge in the form
|
||||
‘Terminal Challenge | Card Challenge | Card number’
|
||||
and checks it for validity. If the challenge is successful
|
||||
@@ -1116,19 +1117,19 @@ returns this value</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexSAM.parse_SM_CAPDU">
|
||||
<code class="descname">parse_SM_CAPDU</code><span class="sig-paren">(</span><em>CAPDU</em>, <em>header_authentication</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexSAM.parse_SM_CAPDU" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">parse_SM_CAPDU</tt><big>(</big><em>CAPDU</em>, <em>header_authentication</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexSAM.parse_SM_CAPDU" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Parse a command APDU protected by Secure Messaging and return the
|
||||
unprotected command APDU</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexSAM.perform_security_operation">
|
||||
<code class="descname">perform_security_operation</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexSAM.perform_security_operation" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">perform_security_operation</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexSAM.perform_security_operation" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexSAM.pezorform_security_operation">
|
||||
<code class="descname">pezorform_security_operation</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexSAM.pezorform_security_operation" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">pezorform_security_operation</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexSAM.pezorform_security_operation" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>In the cryptoflex card, this is the verify key command. A key is send
|
||||
to the card in plain text and compared to a key stored in the card.
|
||||
This is used for authentication</p>
|
||||
@@ -1146,27 +1147,27 @@ This is used for authentication</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexSAM.protect_result">
|
||||
<code class="descname">protect_result</code><span class="sig-paren">(</span><em>sw</em>, <em>unprotected_result</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexSAM.protect_result" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">protect_result</tt><big>(</big><em>sw</em>, <em>unprotected_result</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexSAM.protect_result" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Protect a plain response APDU by Secure Messaging</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexSAM.restore_SE">
|
||||
<code class="descname">restore_SE</code><span class="sig-paren">(</span><em>SEID</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexSAM.restore_SE" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">restore_SE</tt><big>(</big><em>SEID</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexSAM.restore_SE" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Restores a Security Environment from the SAM and replaces the current
|
||||
SE with it.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexSAM.set_MF">
|
||||
<code class="descname">set_MF</code><span class="sig-paren">(</span><em>mf</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexSAM.set_MF" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">set_MF</tt><big>(</big><em>mf</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexSAM.set_MF" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Setter function for the internal reference to the Filesystem. The SAM
|
||||
needs a reference to the filesystem in order to store/retrieve keys.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexSAM.set_asym_algorithm">
|
||||
<code class="descname">set_asym_algorithm</code><span class="sig-paren">(</span><em>cipher</em>, <em>keytype</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexSAM.set_asym_algorithm" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">set_asym_algorithm</tt><big>(</big><em>cipher</em>, <em>keytype</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexSAM.set_asym_algorithm" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><table class="docutils field-list" frame="void" rules="none">
|
||||
<col class="field-name" />
|
||||
<col class="field-body" />
|
||||
@@ -1183,14 +1184,14 @@ needs a reference to the filesystem in order to store/retrieve keys.</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexSAM.store_SE">
|
||||
<code class="descname">store_SE</code><span class="sig-paren">(</span><em>SEID</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexSAM.store_SE" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">store_SE</tt><big>(</big><em>SEID</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexSAM.store_SE" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Stores the current Security environment in the secure access module.
|
||||
The SEID is used as a reference to identify the SE.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexSAM.verify">
|
||||
<code class="descname">verify</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>PIN</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexSAM.verify" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">verify</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>PIN</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexSAM.verify" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Authenticate the card user. Check if he entered a valid PIN.
|
||||
If the PIN is invalid decrement retry counter. If retry counter
|
||||
equals zero, block the card until reset with correct PUK</p>
|
||||
@@ -1200,25 +1201,25 @@ equals zero, block the card until reset with correct PUK</p>
|
||||
|
||||
<dl class="class">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexSE">
|
||||
<em class="property">class </em><code class="descclassname">virtualsmartcard.cards.cryptoflex.</code><code class="descname">CryptoflexSE</code><span class="sig-paren">(</span><em>MF</em>, <em>SAM</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexSE" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <a class="reference internal" href="virtualsmartcard.SEutils.html#virtualsmartcard.SEutils.Security_Environment" title="virtualsmartcard.SEutils.Security_Environment"><code class="xref py py-class docutils literal"><span class="pre">virtualsmartcard.SEutils.Security_Environment</span></code></a></p>
|
||||
<em class="property">class </em><tt class="descclassname">virtualsmartcard.cards.cryptoflex.</tt><tt class="descname">CryptoflexSE</tt><big>(</big><em>MF</em>, <em>SAM</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexSE" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <a class="reference internal" href="virtualsmartcard.SEutils.html#virtualsmartcard.SEutils.Security_Environment" title="virtualsmartcard.SEutils.Security_Environment"><tt class="xref py py-class docutils literal"><span class="pre">virtualsmartcard.SEutils.Security_Environment</span></tt></a></p>
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexSE._set_SE">
|
||||
<code class="descname">_set_SE</code><span class="sig-paren">(</span><em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexSE._set_SE" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">_set_SE</tt><big>(</big><em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexSE._set_SE" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Manipulate the current Security Environment. P2 is the tag of a
|
||||
control reference template, data contains control reference objects</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexSE.compute_cryptographic_checksum">
|
||||
<code class="descname">compute_cryptographic_checksum</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexSE.compute_cryptographic_checksum" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">compute_cryptographic_checksum</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexSE.compute_cryptographic_checksum" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Compute a cryptographic checksum (e.g. MAC) for the given data.
|
||||
Algorithm and key are specified in the current SE</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexSE.compute_digital_signature">
|
||||
<code class="descname">compute_digital_signature</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexSE.compute_digital_signature" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">compute_digital_signature</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexSE.compute_digital_signature" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Compute a digital signature for the given data.
|
||||
Algorithm and key are specified in the current SE</p>
|
||||
<table class="docutils field-list" frame="void" rules="none">
|
||||
@@ -1238,7 +1239,7 @@ is included in the data field.</li>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexSE.decipher">
|
||||
<code class="descname">decipher</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexSE.decipher" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">decipher</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexSE.decipher" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Decipher data using key, algorithm, IV and Padding specified
|
||||
by the current Security environment.</p>
|
||||
<table class="docutils field-list" frame="void" rules="none">
|
||||
@@ -1253,7 +1254,7 @@ by the current Security environment.</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexSE.encipher">
|
||||
<code class="descname">encipher</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexSE.encipher" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">encipher</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexSE.encipher" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Encipher data using key, algorithm, IV and Padding specified
|
||||
by the current Security environment.</p>
|
||||
<table class="docutils field-list" frame="void" rules="none">
|
||||
@@ -1268,7 +1269,7 @@ by the current Security environment.</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexSE.generate_public_key_pair">
|
||||
<code class="descname">generate_public_key_pair</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexSE.generate_public_key_pair" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">generate_public_key_pair</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexSE.generate_public_key_pair" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>In the Cryptoflex card this command only supports RSA keys.</p>
|
||||
<table class="docutils field-list" frame="void" rules="none">
|
||||
<col class="field-name" />
|
||||
@@ -1288,7 +1289,7 @@ by the current Security environment.</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexSE.hash">
|
||||
<code class="descname">hash</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexSE.hash" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">hash</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexSE.hash" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Hash the given data using the algorithm specified by the current
|
||||
Security environment.</p>
|
||||
<table class="docutils field-list" frame="void" rules="none">
|
||||
@@ -1303,7 +1304,7 @@ Security environment.</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexSE.manage_security_environment">
|
||||
<code class="descname">manage_security_environment</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexSE.manage_security_environment" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">manage_security_environment</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexSE.manage_security_environment" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>This method is used to store, restore or erase Security Environments
|
||||
or to manipulate the various parameters of the current SE.
|
||||
P1 specifies the operation to perform, p2 is either the SEID for the
|
||||
@@ -1526,7 +1527,7 @@ authentication and key agreement</td>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexSE.parse_SM_CAPDU">
|
||||
<code class="descname">parse_SM_CAPDU</code><span class="sig-paren">(</span><em>CAPDU</em>, <em>authenticate_header</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexSE.parse_SM_CAPDU" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">parse_SM_CAPDU</tt><big>(</big><em>CAPDU</em>, <em>authenticate_header</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexSE.parse_SM_CAPDU" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>This methods parses a data field including Secure Messaging objects.
|
||||
SM_header indicates whether or not the header of the message shall be
|
||||
authenticated. It returns an unprotected command APDU</p>
|
||||
@@ -1550,7 +1551,7 @@ included in authentication mechanisms</li>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexSE.perform_security_operation">
|
||||
<code class="descname">perform_security_operation</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexSE.perform_security_operation" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">perform_security_operation</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexSE.perform_security_operation" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>In the end this command is nothing but a big switch for all the other
|
||||
commands in ISO 7816-8. It will invoke the appropriate command and
|
||||
return its result</p>
|
||||
@@ -1558,7 +1559,7 @@ return its result</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexSE.protect_response">
|
||||
<code class="descname">protect_response</code><span class="sig-paren">(</span><em>sw</em>, <em>result</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexSE.protect_response" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">protect_response</tt><big>(</big><em>sw</em>, <em>result</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexSE.protect_response" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>This method protects a response APDU using secure messaging mechanisms</p>
|
||||
<table class="docutils field-list" frame="void" rules="none">
|
||||
<col class="field-name" />
|
||||
@@ -1572,7 +1573,7 @@ return its result</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexSE.verify_certificate">
|
||||
<code class="descname">verify_certificate</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexSE.verify_certificate" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">verify_certificate</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexSE.verify_certificate" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Verify a certificate send by the terminal using the internal trust
|
||||
anchors.
|
||||
This method is currently not implemented.</p>
|
||||
@@ -1580,7 +1581,7 @@ This method is currently not implemented.</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexSE.verify_cryptographic_checksum">
|
||||
<code class="descname">verify_cryptographic_checksum</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexSE.verify_cryptographic_checksum" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">verify_cryptographic_checksum</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexSE.verify_cryptographic_checksum" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Verify the cryptographic checksum contained in the data field.
|
||||
Data field must contain a cryptographic checksum (tag 0x8E) and a plain
|
||||
value (tag 0x80)</p>
|
||||
@@ -1588,7 +1589,7 @@ value (tag 0x80)</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.cryptoflex.CryptoflexSE.verify_digital_signature">
|
||||
<code class="descname">verify_digital_signature</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexSE.verify_digital_signature" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">verify_digital_signature</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.cryptoflex.CryptoflexSE.verify_digital_signature" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Verify the digital signature contained in the data field. Data must
|
||||
contain a data to sign (tag 0x9A, 0xAC or 0xBC) and a digital signature
|
||||
(0x9E)</p>
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>ePass Module — vsmartcard 2017-01-08 documentation</title>
|
||||
<title>ePass 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" />
|
||||
@@ -15,7 +15,7 @@
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: '../../',
|
||||
VERSION: '2017-01-08',
|
||||
VERSION: '2017-01-16',
|
||||
COLLAPSE_INDEX: false,
|
||||
FILE_SUFFIX: '.html',
|
||||
HAS_SOURCE: true
|
||||
@@ -29,7 +29,7 @@
|
||||
<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-08 documentation" href="../../index.html" />
|
||||
<link rel="top" title="vsmartcard 2017-01-16 documentation" href="../../index.html" />
|
||||
<link rel="up" title="cards Package" href="virtualsmartcard.cards.html" />
|
||||
<link rel="next" title="nPA Module" href="virtualsmartcard.cards.nPA.html" />
|
||||
<link rel="prev" title="cryptoflex Module" href="virtualsmartcard.cards.cryptoflex.html" />
|
||||
@@ -39,7 +39,7 @@
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
|
||||
</head>
|
||||
<body role="document">
|
||||
<body>
|
||||
|
||||
<a href="https://github.com/frankmorgner/vsmartcard"
|
||||
class="visible-desktop hidden-xs"><img
|
||||
@@ -86,6 +86,7 @@
|
||||
<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>
|
||||
@@ -161,13 +162,13 @@
|
||||
</p>
|
||||
<span class="target" id="module-virtualsmartcard.cards.ePass"></span><dl class="class">
|
||||
<dt id="virtualsmartcard.cards.ePass.PassportSAM">
|
||||
<em class="property">class </em><code class="descclassname">virtualsmartcard.cards.ePass.</code><code class="descname">PassportSAM</code><span class="sig-paren">(</span><em>mf</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.ePass.PassportSAM" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <a class="reference internal" href="virtualsmartcard.SmartcardSAM.html#virtualsmartcard.SmartcardSAM.SAM" title="virtualsmartcard.SmartcardSAM.SAM"><code class="xref py py-class docutils literal"><span class="pre">virtualsmartcard.SmartcardSAM.SAM</span></code></a></p>
|
||||
<em class="property">class </em><tt class="descclassname">virtualsmartcard.cards.ePass.</tt><tt class="descname">PassportSAM</tt><big>(</big><em>mf</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.ePass.PassportSAM" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <a class="reference internal" href="virtualsmartcard.SmartcardSAM.html#virtualsmartcard.SmartcardSAM.SAM" title="virtualsmartcard.SmartcardSAM.SAM"><tt class="xref py py-class docutils literal"><span class="pre">virtualsmartcard.SmartcardSAM.SAM</span></tt></a></p>
|
||||
<p>SAM for ICAO ePassport. Implements Basic access control and key derivation
|
||||
for Secure Messaging.</p>
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.ePass.PassportSAM.FSdecrypt">
|
||||
<code class="descname">FSdecrypt</code><span class="sig-paren">(</span><em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.ePass.PassportSAM.FSdecrypt" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">FSdecrypt</tt><big>(</big><em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.ePass.PassportSAM.FSdecrypt" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Decrypt the given data, using the parameters stored in the SAM.
|
||||
Right now we do not encrypt the data. In memory encryption might or
|
||||
might not be added in a future version.</p>
|
||||
@@ -175,7 +176,7 @@ might not be added in a future version.</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.ePass.PassportSAM.FSencrypt">
|
||||
<code class="descname">FSencrypt</code><span class="sig-paren">(</span><em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.ePass.PassportSAM.FSencrypt" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">FSencrypt</tt><big>(</big><em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.ePass.PassportSAM.FSencrypt" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Encrypt the given data, using the parameters stored in the SAM.
|
||||
Right now we do not encrypt the data. In memory encryption might or
|
||||
might not be added in a future version.</p>
|
||||
@@ -183,7 +184,7 @@ might not be added in a future version.</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.ePass.PassportSAM._PassportSAM__computeKeys">
|
||||
<code class="descname">_PassportSAM__computeKeys</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.ePass.PassportSAM._PassportSAM__computeKeys" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">_PassportSAM__computeKeys</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.ePass.PassportSAM._PassportSAM__computeKeys" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Computes the keys depending on the machine readable
|
||||
zone of the passport according to TR-PKI mrtds ICC read-only
|
||||
access v1.1 annex E.1.</p>
|
||||
@@ -191,7 +192,7 @@ access v1.1 annex E.1.</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.ePass.PassportSAM._get_referenced_key">
|
||||
<code class="descname">_get_referenced_key</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.ePass.PassportSAM._get_referenced_key" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">_get_referenced_key</tt><big>(</big><em>p1</em>, <em>p2</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.ePass.PassportSAM._get_referenced_key" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>This method returns the key specified by the p2 parameter. The key may
|
||||
be stored on the cards filesystem.</p>
|
||||
<table class="docutils field-list" frame="void" rules="none">
|
||||
@@ -331,13 +332,13 @@ key)</td>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.ePass.PassportSAM.change_reference_data">
|
||||
<code class="descname">change_reference_data</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.ePass.PassportSAM.change_reference_data" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">change_reference_data</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.ePass.PassportSAM.change_reference_data" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Change the specified referenced data (e.g. CHV) of the card</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="staticmethod">
|
||||
<dt id="virtualsmartcard.cards.ePass.PassportSAM.derive_key">
|
||||
<em class="property">static </em><code class="descname">derive_key</code><span class="sig-paren">(</span><em>seed</em>, <em>c</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.ePass.PassportSAM.derive_key" title="Permalink to this definition">¶</a></dt>
|
||||
<em class="property">static </em><tt class="descname">derive_key</tt><big>(</big><em>seed</em>, <em>c</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.ePass.PassportSAM.derive_key" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Derive a key according to TR-PKI mrtds ICC read-only access v1.1
|
||||
annex E.1.
|
||||
c is either 1 for encryption or 2 for MAC computation.
|
||||
@@ -347,48 +348,48 @@ Note: Does not adjust parity. Nobody uses that anyway ...</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.ePass.PassportSAM.erase_SE">
|
||||
<code class="descname">erase_SE</code><span class="sig-paren">(</span><em>SEID</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.ePass.PassportSAM.erase_SE" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">erase_SE</tt><big>(</big><em>SEID</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.ePass.PassportSAM.erase_SE" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Erases a Security Environment stored under SEID from the SAM</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.ePass.PassportSAM.external_authenticate">
|
||||
<code class="descname">external_authenticate</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>resp_data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.ePass.PassportSAM.external_authenticate" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">external_authenticate</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>resp_data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.ePass.PassportSAM.external_authenticate" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Performs the basic access control protocol as defined in
|
||||
the ICAO MRTD standard</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.ePass.PassportSAM.generate_public_key_pair">
|
||||
<code class="descname">generate_public_key_pair</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.ePass.PassportSAM.generate_public_key_pair" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">generate_public_key_pair</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.ePass.PassportSAM.generate_public_key_pair" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.ePass.PassportSAM.get_card_number">
|
||||
<code class="descname">get_card_number</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.ePass.PassportSAM.get_card_number" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">get_card_number</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.ePass.PassportSAM.get_card_number" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.ePass.PassportSAM.get_challenge">
|
||||
<code class="descname">get_challenge</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.ePass.PassportSAM.get_challenge" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">get_challenge</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.ePass.PassportSAM.get_challenge" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Generate a random number of maximum 8 Byte and return it.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.ePass.PassportSAM.internal_authenticate">
|
||||
<code class="descname">internal_authenticate</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.ePass.PassportSAM.internal_authenticate" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">internal_authenticate</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.ePass.PassportSAM.internal_authenticate" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Authenticate card to terminal. Encrypt the challenge of the terminal
|
||||
to prove key posession</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.ePass.PassportSAM.manage_security_environment">
|
||||
<code class="descname">manage_security_environment</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.ePass.PassportSAM.manage_security_environment" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">manage_security_environment</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.ePass.PassportSAM.manage_security_environment" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.ePass.PassportSAM.mutual_authenticate">
|
||||
<code class="descname">mutual_authenticate</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>mutual_challenge</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.ePass.PassportSAM.mutual_authenticate" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">mutual_authenticate</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>mutual_challenge</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.ePass.PassportSAM.mutual_authenticate" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Takes an encrypted challenge in the form
|
||||
‘Terminal Challenge | Card Challenge | Card number’
|
||||
and checks it for validity. If the challenge is successful
|
||||
@@ -398,39 +399,39 @@ returns this value</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.ePass.PassportSAM.parse_SM_CAPDU">
|
||||
<code class="descname">parse_SM_CAPDU</code><span class="sig-paren">(</span><em>CAPDU</em>, <em>header_authentication</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.ePass.PassportSAM.parse_SM_CAPDU" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">parse_SM_CAPDU</tt><big>(</big><em>CAPDU</em>, <em>header_authentication</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.ePass.PassportSAM.parse_SM_CAPDU" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Parse a command APDU protected by Secure Messaging and return the
|
||||
unprotected command APDU</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.ePass.PassportSAM.perform_security_operation">
|
||||
<code class="descname">perform_security_operation</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.ePass.PassportSAM.perform_security_operation" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">perform_security_operation</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.ePass.PassportSAM.perform_security_operation" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.ePass.PassportSAM.protect_result">
|
||||
<code class="descname">protect_result</code><span class="sig-paren">(</span><em>sw</em>, <em>unprotected_result</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.ePass.PassportSAM.protect_result" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">protect_result</tt><big>(</big><em>sw</em>, <em>unprotected_result</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.ePass.PassportSAM.protect_result" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Protect a plain response APDU by Secure Messaging</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.ePass.PassportSAM.restore_SE">
|
||||
<code class="descname">restore_SE</code><span class="sig-paren">(</span><em>SEID</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.ePass.PassportSAM.restore_SE" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">restore_SE</tt><big>(</big><em>SEID</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.ePass.PassportSAM.restore_SE" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Restores a Security Environment from the SAM and replaces the current
|
||||
SE with it.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.ePass.PassportSAM.set_MF">
|
||||
<code class="descname">set_MF</code><span class="sig-paren">(</span><em>mf</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.ePass.PassportSAM.set_MF" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">set_MF</tt><big>(</big><em>mf</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.ePass.PassportSAM.set_MF" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Setter function for the internal reference to the Filesystem. The SAM
|
||||
needs a reference to the filesystem in order to store/retrieve keys.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.ePass.PassportSAM.set_asym_algorithm">
|
||||
<code class="descname">set_asym_algorithm</code><span class="sig-paren">(</span><em>cipher</em>, <em>keytype</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.ePass.PassportSAM.set_asym_algorithm" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">set_asym_algorithm</tt><big>(</big><em>cipher</em>, <em>keytype</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.ePass.PassportSAM.set_asym_algorithm" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><table class="docutils field-list" frame="void" rules="none">
|
||||
<col class="field-name" />
|
||||
<col class="field-body" />
|
||||
@@ -447,14 +448,14 @@ needs a reference to the filesystem in order to store/retrieve keys.</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.ePass.PassportSAM.store_SE">
|
||||
<code class="descname">store_SE</code><span class="sig-paren">(</span><em>SEID</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.ePass.PassportSAM.store_SE" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">store_SE</tt><big>(</big><em>SEID</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.ePass.PassportSAM.store_SE" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Stores the current Security environment in the secure access module.
|
||||
The SEID is used as a reference to identify the SE.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.ePass.PassportSAM.verify">
|
||||
<code class="descname">verify</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>PIN</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.ePass.PassportSAM.verify" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">verify</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>PIN</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.ePass.PassportSAM.verify" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Authenticate the card user. Check if he entered a valid PIN.
|
||||
If the PIN is invalid decrement retry counter. If retry counter
|
||||
equals zero, block the card until reset with correct PUK</p>
|
||||
@@ -464,27 +465,27 @@ equals zero, block the card until reset with correct PUK</p>
|
||||
|
||||
<dl class="class">
|
||||
<dt id="virtualsmartcard.cards.ePass.ePass_SE">
|
||||
<em class="property">class </em><code class="descclassname">virtualsmartcard.cards.ePass.</code><code class="descname">ePass_SE</code><span class="sig-paren">(</span><em>MF</em>, <em>SAM</em>, <em>ssc=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.ePass.ePass_SE" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <a class="reference internal" href="virtualsmartcard.SEutils.html#virtualsmartcard.SEutils.Security_Environment" title="virtualsmartcard.SEutils.Security_Environment"><code class="xref py py-class docutils literal"><span class="pre">virtualsmartcard.SEutils.Security_Environment</span></code></a></p>
|
||||
<em class="property">class </em><tt class="descclassname">virtualsmartcard.cards.ePass.</tt><tt class="descname">ePass_SE</tt><big>(</big><em>MF</em>, <em>SAM</em>, <em>ssc=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.ePass.ePass_SE" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <a class="reference internal" href="virtualsmartcard.SEutils.html#virtualsmartcard.SEutils.Security_Environment" title="virtualsmartcard.SEutils.Security_Environment"><tt class="xref py py-class docutils literal"><span class="pre">virtualsmartcard.SEutils.Security_Environment</span></tt></a></p>
|
||||
<p>This class implements the Security Environment of the ICAO Passports. It
|
||||
is required in order to use the send sequence counter for secure messaging.</p>
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.ePass.ePass_SE._set_SE">
|
||||
<code class="descname">_set_SE</code><span class="sig-paren">(</span><em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.ePass.ePass_SE._set_SE" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">_set_SE</tt><big>(</big><em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.ePass.ePass_SE._set_SE" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Manipulate the current Security Environment. P2 is the tag of a
|
||||
control reference template, data contains control reference objects</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.ePass.ePass_SE.compute_cryptographic_checksum">
|
||||
<code class="descname">compute_cryptographic_checksum</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.ePass.ePass_SE.compute_cryptographic_checksum" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">compute_cryptographic_checksum</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.ePass.ePass_SE.compute_cryptographic_checksum" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Compute a cryptographic checksum (e.g. MAC) for the given data.
|
||||
The ePass uses a Send Sequence Counter for MAC calculation</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.ePass.ePass_SE.compute_digital_signature">
|
||||
<code class="descname">compute_digital_signature</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.ePass.ePass_SE.compute_digital_signature" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">compute_digital_signature</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.ePass.ePass_SE.compute_digital_signature" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Compute a digital signature for the given data.
|
||||
Algorithm and key are specified in the current SE</p>
|
||||
<table class="docutils field-list" frame="void" rules="none">
|
||||
@@ -504,7 +505,7 @@ is included in the data field.</li>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.ePass.ePass_SE.decipher">
|
||||
<code class="descname">decipher</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.ePass.ePass_SE.decipher" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">decipher</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.ePass.ePass_SE.decipher" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Decipher data using key, algorithm, IV and Padding specified
|
||||
by the current Security environment.</p>
|
||||
<table class="docutils field-list" frame="void" rules="none">
|
||||
@@ -519,7 +520,7 @@ by the current Security environment.</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.ePass.ePass_SE.encipher">
|
||||
<code class="descname">encipher</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.ePass.ePass_SE.encipher" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">encipher</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.ePass.ePass_SE.encipher" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Encipher data using key, algorithm, IV and Padding specified
|
||||
by the current Security environment.</p>
|
||||
<table class="docutils field-list" frame="void" rules="none">
|
||||
@@ -534,7 +535,7 @@ by the current Security environment.</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.ePass.ePass_SE.generate_public_key_pair">
|
||||
<code class="descname">generate_public_key_pair</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.ePass.ePass_SE.generate_public_key_pair" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">generate_public_key_pair</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.ePass.ePass_SE.generate_public_key_pair" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>The GENERATE PUBLIC-KEY PAIR command either initiates the generation
|
||||
and storing of a key pair, i.e., a public key and a private key, in the
|
||||
card, or accesses a key pair previously generated in the card.</p>
|
||||
@@ -557,7 +558,7 @@ P1-P2 different from ‘0000’</li>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.ePass.ePass_SE.hash">
|
||||
<code class="descname">hash</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.ePass.ePass_SE.hash" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">hash</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.ePass.ePass_SE.hash" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Hash the given data using the algorithm specified by the current
|
||||
Security environment.</p>
|
||||
<table class="docutils field-list" frame="void" rules="none">
|
||||
@@ -572,7 +573,7 @@ Security environment.</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.ePass.ePass_SE.manage_security_environment">
|
||||
<code class="descname">manage_security_environment</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.ePass.ePass_SE.manage_security_environment" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">manage_security_environment</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.ePass.ePass_SE.manage_security_environment" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>This method is used to store, restore or erase Security Environments
|
||||
or to manipulate the various parameters of the current SE.
|
||||
P1 specifies the operation to perform, p2 is either the SEID for the
|
||||
@@ -795,7 +796,7 @@ authentication and key agreement</td>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.ePass.ePass_SE.parse_SM_CAPDU">
|
||||
<code class="descname">parse_SM_CAPDU</code><span class="sig-paren">(</span><em>CAPDU</em>, <em>authenticate_header</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.ePass.ePass_SE.parse_SM_CAPDU" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">parse_SM_CAPDU</tt><big>(</big><em>CAPDU</em>, <em>authenticate_header</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.ePass.ePass_SE.parse_SM_CAPDU" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>This methods parses a data field including Secure Messaging objects.
|
||||
SM_header indicates whether or not the header of the message shall be
|
||||
authenticated. It returns an unprotected command APDU</p>
|
||||
@@ -819,7 +820,7 @@ included in authentication mechanisms</li>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.ePass.ePass_SE.perform_security_operation">
|
||||
<code class="descname">perform_security_operation</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.ePass.ePass_SE.perform_security_operation" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">perform_security_operation</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.ePass.ePass_SE.perform_security_operation" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>In the end this command is nothing but a big switch for all the other
|
||||
commands in ISO 7816-8. It will invoke the appropriate command and
|
||||
return its result</p>
|
||||
@@ -827,7 +828,7 @@ return its result</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.ePass.ePass_SE.protect_response">
|
||||
<code class="descname">protect_response</code><span class="sig-paren">(</span><em>sw</em>, <em>result</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.ePass.ePass_SE.protect_response" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">protect_response</tt><big>(</big><em>sw</em>, <em>result</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.ePass.ePass_SE.protect_response" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>This method protects a response APDU using secure messaging mechanisms</p>
|
||||
<table class="docutils field-list" frame="void" rules="none">
|
||||
<col class="field-name" />
|
||||
@@ -841,7 +842,7 @@ return its result</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.ePass.ePass_SE.verify_certificate">
|
||||
<code class="descname">verify_certificate</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.ePass.ePass_SE.verify_certificate" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">verify_certificate</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.ePass.ePass_SE.verify_certificate" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Verify a certificate send by the terminal using the internal trust
|
||||
anchors.
|
||||
This method is currently not implemented.</p>
|
||||
@@ -849,7 +850,7 @@ This method is currently not implemented.</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.ePass.ePass_SE.verify_cryptographic_checksum">
|
||||
<code class="descname">verify_cryptographic_checksum</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.ePass.ePass_SE.verify_cryptographic_checksum" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">verify_cryptographic_checksum</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.ePass.ePass_SE.verify_cryptographic_checksum" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Verify the cryptographic checksum contained in the data field.
|
||||
Data field must contain a cryptographic checksum (tag 0x8E) and a plain
|
||||
value (tag 0x80)</p>
|
||||
@@ -857,7 +858,7 @@ value (tag 0x80)</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.ePass.ePass_SE.verify_digital_signature">
|
||||
<code class="descname">verify_digital_signature</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.ePass.ePass_SE.verify_digital_signature" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">verify_digital_signature</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.ePass.ePass_SE.verify_digital_signature" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Verify the digital signature contained in the data field. Data must
|
||||
contain a data to sign (tag 0x9A, 0xAC or 0xBC) and a digital signature
|
||||
(0x9E)</p>
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>cards Package — vsmartcard 2017-01-08 documentation</title>
|
||||
<title>cards Package — 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" />
|
||||
@@ -15,7 +15,7 @@
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: '../../',
|
||||
VERSION: '2017-01-08',
|
||||
VERSION: '2017-01-16',
|
||||
COLLAPSE_INDEX: false,
|
||||
FILE_SUFFIX: '.html',
|
||||
HAS_SOURCE: true
|
||||
@@ -29,7 +29,7 @@
|
||||
<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-08 documentation" href="../../index.html" />
|
||||
<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="HandlerTest Module" href="virtualsmartcard.cards.HandlerTest.html" />
|
||||
<link rel="prev" title="virtualsmartcard Package" href="virtualsmartcard.html" />
|
||||
@@ -39,7 +39,7 @@
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
|
||||
</head>
|
||||
<body role="document">
|
||||
<body>
|
||||
|
||||
<a href="https://github.com/frankmorgner/vsmartcard"
|
||||
class="visible-desktop hidden-xs"><img
|
||||
@@ -86,6 +86,7 @@
|
||||
<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>
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>nPA Module — vsmartcard 2017-01-08 documentation</title>
|
||||
<title>nPA 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" />
|
||||
@@ -15,7 +15,7 @@
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: '../../',
|
||||
VERSION: '2017-01-08',
|
||||
VERSION: '2017-01-16',
|
||||
COLLAPSE_INDEX: false,
|
||||
FILE_SUFFIX: '.html',
|
||||
HAS_SOURCE: true
|
||||
@@ -29,7 +29,7 @@
|
||||
<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-08 documentation" href="../../index.html" />
|
||||
<link rel="top" title="vsmartcard 2017-01-16 documentation" href="../../index.html" />
|
||||
<link rel="up" title="cards Package" href="virtualsmartcard.cards.html" />
|
||||
<link rel="next" title="tests Package" href="virtualsmartcard.tests.html" />
|
||||
<link rel="prev" title="ePass Module" href="virtualsmartcard.cards.ePass.html" />
|
||||
@@ -39,7 +39,7 @@
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
|
||||
</head>
|
||||
<body role="document">
|
||||
<body>
|
||||
|
||||
<a href="https://github.com/frankmorgner/vsmartcard"
|
||||
class="visible-desktop hidden-xs"><img
|
||||
@@ -86,6 +86,7 @@
|
||||
<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>
|
||||
@@ -166,37 +167,37 @@
|
||||
</p>
|
||||
<span class="target" id="module-virtualsmartcard.cards.nPA"></span><dl class="class">
|
||||
<dt id="virtualsmartcard.cards.nPA.NPAOS">
|
||||
<em class="property">class </em><code class="descclassname">virtualsmartcard.cards.nPA.</code><code class="descname">NPAOS</code><span class="sig-paren">(</span><em>mf</em>, <em>sam</em>, <em>ins2handler=None</em>, <em>maxle=65536</em>, <em>ef_cardsecurity=None</em>, <em>ef_cardaccess=None</em>, <em>ca_key=None</em>, <em>cvca=None</em>, <em>disable_checks=False</em>, <em>esign_key=None</em>, <em>esign_ca_cert=None</em>, <em>esign_cert=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.nPA.NPAOS" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <a class="reference internal" href="virtualsmartcard.VirtualSmartcard.html#virtualsmartcard.VirtualSmartcard.Iso7816OS" title="virtualsmartcard.VirtualSmartcard.Iso7816OS"><code class="xref py py-class docutils literal"><span class="pre">virtualsmartcard.VirtualSmartcard.Iso7816OS</span></code></a></p>
|
||||
<em class="property">class </em><tt class="descclassname">virtualsmartcard.cards.nPA.</tt><tt class="descname">NPAOS</tt><big>(</big><em>mf</em>, <em>sam</em>, <em>ins2handler=None</em>, <em>maxle=65536</em>, <em>ef_cardsecurity=None</em>, <em>ef_cardaccess=None</em>, <em>ca_key=None</em>, <em>cvca=None</em>, <em>disable_checks=False</em>, <em>esign_key=None</em>, <em>esign_ca_cert=None</em>, <em>esign_cert=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.nPA.NPAOS" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <a class="reference internal" href="virtualsmartcard.VirtualSmartcard.html#virtualsmartcard.VirtualSmartcard.Iso7816OS" title="virtualsmartcard.VirtualSmartcard.Iso7816OS"><tt class="xref py py-class docutils literal"><span class="pre">virtualsmartcard.VirtualSmartcard.Iso7816OS</span></tt></a></p>
|
||||
<dl class="attribute">
|
||||
<dt id="virtualsmartcard.cards.nPA.NPAOS.SAM">
|
||||
<code class="descname">SAM</code><a class="headerlink" href="#virtualsmartcard.cards.nPA.NPAOS.SAM" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">SAM</tt><a class="headerlink" href="#virtualsmartcard.cards.nPA.NPAOS.SAM" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>secure access module</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.nPA.NPAOS.execute">
|
||||
<code class="descname">execute</code><span class="sig-paren">(</span><em>msg</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.nPA.NPAOS.execute" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">execute</tt><big>(</big><em>msg</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.nPA.NPAOS.execute" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.nPA.NPAOS.formatResult">
|
||||
<code class="descname">formatResult</code><span class="sig-paren">(</span><em>seekable</em>, <em>le</em>, <em>data</em>, <em>sw</em>, <em>sm</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.nPA.NPAOS.formatResult" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">formatResult</tt><big>(</big><em>seekable</em>, <em>le</em>, <em>data</em>, <em>sw</em>, <em>sm</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.nPA.NPAOS.formatResult" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.nPA.NPAOS.getATR">
|
||||
<code class="descname">getATR</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.nPA.NPAOS.getATR" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">getATR</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.nPA.NPAOS.getATR" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.nPA.NPAOS.getResponse">
|
||||
<code class="descname">getResponse</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.nPA.NPAOS.getResponse" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">getResponse</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.nPA.NPAOS.getResponse" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dl class="staticmethod">
|
||||
<dt id="virtualsmartcard.cards.nPA.NPAOS.makeATR">
|
||||
<code class="descname">makeATR</code><span class="sig-paren">(</span><em>**args</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.nPA.NPAOS.makeATR" title="Permalink to this definition">¶</a></dt>
|
||||
<em class="property">static </em><tt class="descname">makeATR</tt><big>(</big><em>**args</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.nPA.NPAOS.makeATR" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Calculate Answer to Reset (ATR) and returns the bitstring.</p>
|
||||
<blockquote>
|
||||
<div><ul>
|
||||
@@ -234,69 +235,69 @@ meaning see ISO 7816-4).</p>
|
||||
<p>T0, TDi and TCK are automatically calculated.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dl class="staticmethod">
|
||||
<dt id="virtualsmartcard.cards.nPA.NPAOS.makeThirdSoftwareFunctionTable">
|
||||
<code class="descname">makeThirdSoftwareFunctionTable</code><span class="sig-paren">(</span><em>commandChainging=False</em>, <em>extendedLe=False</em>, <em>assignLogicalChannel=0</em>, <em>maximumChannels=0</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.nPA.NPAOS.makeThirdSoftwareFunctionTable" title="Permalink to this definition">¶</a></dt>
|
||||
<em class="property">static </em><tt class="descname">makeThirdSoftwareFunctionTable</tt><big>(</big><em>commandChainging=False</em>, <em>extendedLe=False</em>, <em>assignLogicalChannel=0</em>, <em>maximumChannels=0</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.nPA.NPAOS.makeThirdSoftwareFunctionTable" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Returns a byte according to the third software function table from the
|
||||
historical bytes of the card capabilities.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="attribute">
|
||||
<dt id="virtualsmartcard.cards.nPA.NPAOS.mf">
|
||||
<code class="descname">mf</code><a class="headerlink" href="#virtualsmartcard.cards.nPA.NPAOS.mf" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">mf</tt><a class="headerlink" href="#virtualsmartcard.cards.nPA.NPAOS.mf" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>master file</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.nPA.NPAOS.powerDown">
|
||||
<code class="descname">powerDown</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.nPA.NPAOS.powerDown" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">powerDown</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.nPA.NPAOS.powerDown" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Powers down the card</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.nPA.NPAOS.powerUp">
|
||||
<code class="descname">powerUp</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.nPA.NPAOS.powerUp" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">powerUp</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.nPA.NPAOS.powerUp" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.nPA.NPAOS.reset">
|
||||
<code class="descname">reset</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.nPA.NPAOS.reset" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">reset</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.nPA.NPAOS.reset" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dl class="staticmethod">
|
||||
<dt id="virtualsmartcard.cards.nPA.NPAOS.seekable">
|
||||
<code class="descname">seekable</code><span class="sig-paren">(</span><em>ins</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.nPA.NPAOS.seekable" title="Permalink to this definition">¶</a></dt>
|
||||
<em class="property">static </em><tt class="descname">seekable</tt><big>(</big><em>ins</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.nPA.NPAOS.seekable" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
||||
<dl class="class">
|
||||
<dt id="virtualsmartcard.cards.nPA.nPA_AT_CRT">
|
||||
<em class="property">class </em><code class="descclassname">virtualsmartcard.cards.nPA.</code><code class="descname">nPA_AT_CRT</code><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_AT_CRT" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <a class="reference internal" href="virtualsmartcard.SEutils.html#virtualsmartcard.SEutils.ControlReferenceTemplate" title="virtualsmartcard.SEutils.ControlReferenceTemplate"><code class="xref py py-class docutils literal"><span class="pre">virtualsmartcard.SEutils.ControlReferenceTemplate</span></code></a></p>
|
||||
<em class="property">class </em><tt class="descclassname">virtualsmartcard.cards.nPA.</tt><tt class="descname">nPA_AT_CRT</tt><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_AT_CRT" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <a class="reference internal" href="virtualsmartcard.SEutils.html#virtualsmartcard.SEutils.ControlReferenceTemplate" title="virtualsmartcard.SEutils.ControlReferenceTemplate"><tt class="xref py py-class docutils literal"><span class="pre">virtualsmartcard.SEutils.ControlReferenceTemplate</span></tt></a></p>
|
||||
<dl class="attribute">
|
||||
<dt id="virtualsmartcard.cards.nPA.nPA_AT_CRT.PACE_CAN">
|
||||
<code class="descname">PACE_CAN</code><em class="property"> = 2</em><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_AT_CRT.PACE_CAN" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">PACE_CAN</tt><em class="property"> = 2</em><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_AT_CRT.PACE_CAN" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="attribute">
|
||||
<dt id="virtualsmartcard.cards.nPA.nPA_AT_CRT.PACE_MRZ">
|
||||
<code class="descname">PACE_MRZ</code><em class="property"> = 1</em><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_AT_CRT.PACE_MRZ" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">PACE_MRZ</tt><em class="property"> = 1</em><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_AT_CRT.PACE_MRZ" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="attribute">
|
||||
<dt id="virtualsmartcard.cards.nPA.nPA_AT_CRT.PACE_PIN">
|
||||
<code class="descname">PACE_PIN</code><em class="property"> = 3</em><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_AT_CRT.PACE_PIN" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">PACE_PIN</tt><em class="property"> = 3</em><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_AT_CRT.PACE_PIN" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="attribute">
|
||||
<dt id="virtualsmartcard.cards.nPA.nPA_AT_CRT.PACE_PUK">
|
||||
<code class="descname">PACE_PUK</code><em class="property"> = 4</em><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_AT_CRT.PACE_PUK" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">PACE_PUK</tt><em class="property"> = 4</em><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_AT_CRT.PACE_PUK" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.nPA.nPA_AT_CRT._ControlReferenceTemplate__replace_tag">
|
||||
<code class="descname">_ControlReferenceTemplate__replace_tag</code><span class="sig-paren">(</span><em>tag</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_AT_CRT._ControlReferenceTemplate__replace_tag" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">_ControlReferenceTemplate__replace_tag</tt><big>(</big><em>tag</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_AT_CRT._ControlReferenceTemplate__replace_tag" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Adjust the config string using a given tag, value combination. If the
|
||||
config string already contains a tag, value pair for the given tag,
|
||||
replace it. Otherwise append tag, length and value to the config
|
||||
@@ -305,7 +306,7 @@ string.</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.nPA.nPA_AT_CRT._ControlReferenceTemplate__set_algo">
|
||||
<code class="descname">_ControlReferenceTemplate__set_algo</code><span class="sig-paren">(</span><em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_AT_CRT._ControlReferenceTemplate__set_algo" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">_ControlReferenceTemplate__set_algo</tt><big>(</big><em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_AT_CRT._ControlReferenceTemplate__set_algo" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Set the algorithm to be used by this CRT. The algorithms are specified
|
||||
in a global dictionary. New cards may add or modify this table in order
|
||||
to support new or different algorithms.</p>
|
||||
@@ -321,42 +322,42 @@ to support new or different algorithms.</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.nPA.nPA_AT_CRT._ControlReferenceTemplate__set_iv">
|
||||
<code class="descname">_ControlReferenceTemplate__set_iv</code><span class="sig-paren">(</span><em>tag</em>, <em>length</em>, <em>value</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_AT_CRT._ControlReferenceTemplate__set_iv" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">_ControlReferenceTemplate__set_iv</tt><big>(</big><em>tag</em>, <em>length</em>, <em>value</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_AT_CRT._ControlReferenceTemplate__set_iv" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.nPA.nPA_AT_CRT._ControlReferenceTemplate__set_key">
|
||||
<code class="descname">_ControlReferenceTemplate__set_key</code><span class="sig-paren">(</span><em>tag</em>, <em>value</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_AT_CRT._ControlReferenceTemplate__set_key" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">_ControlReferenceTemplate__set_key</tt><big>(</big><em>tag</em>, <em>value</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_AT_CRT._ControlReferenceTemplate__set_key" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.nPA.nPA_AT_CRT.keyref_is_can">
|
||||
<code class="descname">keyref_is_can</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_AT_CRT.keyref_is_can" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">keyref_is_can</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_AT_CRT.keyref_is_can" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.nPA.nPA_AT_CRT.keyref_is_mrz">
|
||||
<code class="descname">keyref_is_mrz</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_AT_CRT.keyref_is_mrz" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">keyref_is_mrz</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_AT_CRT.keyref_is_mrz" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.nPA.nPA_AT_CRT.keyref_is_pin">
|
||||
<code class="descname">keyref_is_pin</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_AT_CRT.keyref_is_pin" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">keyref_is_pin</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_AT_CRT.keyref_is_pin" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.nPA.nPA_AT_CRT.keyref_is_puk">
|
||||
<code class="descname">keyref_is_puk</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_AT_CRT.keyref_is_puk" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">keyref_is_puk</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_AT_CRT.keyref_is_puk" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.nPA.nPA_AT_CRT.parse_SE_config">
|
||||
<code class="descname">parse_SE_config</code><span class="sig-paren">(</span><em>config</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_AT_CRT.parse_SE_config" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">parse_SE_config</tt><big>(</big><em>config</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_AT_CRT.parse_SE_config" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.nPA.nPA_AT_CRT.to_string">
|
||||
<code class="descname">to_string</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_AT_CRT.to_string" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">to_string</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_AT_CRT.to_string" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Return the content of the CRT, encoded as TLV data in a string</p>
|
||||
</dd></dl>
|
||||
|
||||
@@ -364,11 +365,11 @@ to support new or different algorithms.</p>
|
||||
|
||||
<dl class="class">
|
||||
<dt id="virtualsmartcard.cards.nPA.nPA_SAM">
|
||||
<em class="property">class </em><code class="descclassname">virtualsmartcard.cards.nPA.</code><code class="descname">nPA_SAM</code><span class="sig-paren">(</span><em>eid_pin</em>, <em>can</em>, <em>mrz</em>, <em>puk</em>, <em>qes_pin</em>, <em>mf</em>, <em>default_se=<class 'virtualsmartcard.cards.nPA.nPA_SE'></em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SAM" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <a class="reference internal" href="virtualsmartcard.SmartcardSAM.html#virtualsmartcard.SmartcardSAM.SAM" title="virtualsmartcard.SmartcardSAM.SAM"><code class="xref py py-class docutils literal"><span class="pre">virtualsmartcard.SmartcardSAM.SAM</span></code></a></p>
|
||||
<em class="property">class </em><tt class="descclassname">virtualsmartcard.cards.nPA.</tt><tt class="descname">nPA_SAM</tt><big>(</big><em>eid_pin</em>, <em>can</em>, <em>mrz</em>, <em>puk</em>, <em>qes_pin</em>, <em>mf</em>, <em>default_se=<class 'virtualsmartcard.cards.nPA.nPA_SE'></em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SAM" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <a class="reference internal" href="virtualsmartcard.SmartcardSAM.html#virtualsmartcard.SmartcardSAM.SAM" title="virtualsmartcard.SmartcardSAM.SAM"><tt class="xref py py-class docutils literal"><span class="pre">virtualsmartcard.SmartcardSAM.SAM</span></tt></a></p>
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.nPA.nPA_SAM.FSdecrypt">
|
||||
<code class="descname">FSdecrypt</code><span class="sig-paren">(</span><em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SAM.FSdecrypt" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">FSdecrypt</tt><big>(</big><em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SAM.FSdecrypt" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Decrypt the given data, using the parameters stored in the SAM.
|
||||
Right now we do not encrypt the data. In memory encryption might or
|
||||
might not be added in a future version.</p>
|
||||
@@ -376,7 +377,7 @@ might not be added in a future version.</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.nPA.nPA_SAM.FSencrypt">
|
||||
<code class="descname">FSencrypt</code><span class="sig-paren">(</span><em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SAM.FSencrypt" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">FSencrypt</tt><big>(</big><em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SAM.FSencrypt" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Encrypt the given data, using the parameters stored in the SAM.
|
||||
Right now we do not encrypt the data. In memory encryption might or
|
||||
might not be added in a future version.</p>
|
||||
@@ -384,7 +385,7 @@ might not be added in a future version.</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.nPA.nPA_SAM._get_referenced_key">
|
||||
<code class="descname">_get_referenced_key</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SAM._get_referenced_key" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">_get_referenced_key</tt><big>(</big><em>p1</em>, <em>p2</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SAM._get_referenced_key" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>This method returns the key specified by the p2 parameter. The key may
|
||||
be stored on the cards filesystem.</p>
|
||||
<table class="docutils field-list" frame="void" rules="none">
|
||||
@@ -524,56 +525,56 @@ key)</td>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.nPA.nPA_SAM.change_reference_data">
|
||||
<code class="descname">change_reference_data</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SAM.change_reference_data" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">change_reference_data</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SAM.change_reference_data" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Change the specified referenced data (e.g. CHV) of the card</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.nPA.nPA_SAM.erase_SE">
|
||||
<code class="descname">erase_SE</code><span class="sig-paren">(</span><em>SEID</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SAM.erase_SE" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">erase_SE</tt><big>(</big><em>SEID</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SAM.erase_SE" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Erases a Security Environment stored under SEID from the SAM</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.nPA.nPA_SAM.external_authenticate">
|
||||
<code class="descname">external_authenticate</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SAM.external_authenticate" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">external_authenticate</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SAM.external_authenticate" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.nPA.nPA_SAM.general_authenticate">
|
||||
<code class="descname">general_authenticate</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SAM.general_authenticate" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">general_authenticate</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SAM.general_authenticate" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.nPA.nPA_SAM.generate_public_key_pair">
|
||||
<code class="descname">generate_public_key_pair</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SAM.generate_public_key_pair" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">generate_public_key_pair</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SAM.generate_public_key_pair" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.nPA.nPA_SAM.get_card_number">
|
||||
<code class="descname">get_card_number</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SAM.get_card_number" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">get_card_number</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SAM.get_card_number" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.nPA.nPA_SAM.get_challenge">
|
||||
<code class="descname">get_challenge</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SAM.get_challenge" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">get_challenge</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SAM.get_challenge" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.nPA.nPA_SAM.internal_authenticate">
|
||||
<code class="descname">internal_authenticate</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SAM.internal_authenticate" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">internal_authenticate</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SAM.internal_authenticate" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Authenticate card to terminal. Encrypt the challenge of the terminal
|
||||
to prove key posession</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.nPA.nPA_SAM.manage_security_environment">
|
||||
<code class="descname">manage_security_environment</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SAM.manage_security_environment" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">manage_security_environment</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SAM.manage_security_environment" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.nPA.nPA_SAM.mutual_authenticate">
|
||||
<code class="descname">mutual_authenticate</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>mutual_challenge</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SAM.mutual_authenticate" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">mutual_authenticate</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>mutual_challenge</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SAM.mutual_authenticate" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Takes an encrypted challenge in the form
|
||||
‘Terminal Challenge | Card Challenge | Card number’
|
||||
and checks it for validity. If the challenge is successful
|
||||
@@ -583,41 +584,41 @@ returns this value</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.nPA.nPA_SAM.parse_SM_CAPDU">
|
||||
<code class="descname">parse_SM_CAPDU</code><span class="sig-paren">(</span><em>CAPDU</em>, <em>header_authentication</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SAM.parse_SM_CAPDU" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">parse_SM_CAPDU</tt><big>(</big><em>CAPDU</em>, <em>header_authentication</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SAM.parse_SM_CAPDU" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.nPA.nPA_SAM.perform_security_operation">
|
||||
<code class="descname">perform_security_operation</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SAM.perform_security_operation" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">perform_security_operation</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SAM.perform_security_operation" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.nPA.nPA_SAM.protect_result">
|
||||
<code class="descname">protect_result</code><span class="sig-paren">(</span><em>sw</em>, <em>unprotected_result</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SAM.protect_result" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">protect_result</tt><big>(</big><em>sw</em>, <em>unprotected_result</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SAM.protect_result" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.nPA.nPA_SAM.reset_retry_counter">
|
||||
<code class="descname">reset_retry_counter</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SAM.reset_retry_counter" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">reset_retry_counter</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SAM.reset_retry_counter" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.nPA.nPA_SAM.restore_SE">
|
||||
<code class="descname">restore_SE</code><span class="sig-paren">(</span><em>SEID</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SAM.restore_SE" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">restore_SE</tt><big>(</big><em>SEID</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SAM.restore_SE" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Restores a Security Environment from the SAM and replaces the current
|
||||
SE with it.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.nPA.nPA_SAM.set_MF">
|
||||
<code class="descname">set_MF</code><span class="sig-paren">(</span><em>mf</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SAM.set_MF" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">set_MF</tt><big>(</big><em>mf</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SAM.set_MF" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Setter function for the internal reference to the Filesystem. The SAM
|
||||
needs a reference to the filesystem in order to store/retrieve keys.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.nPA.nPA_SAM.set_asym_algorithm">
|
||||
<code class="descname">set_asym_algorithm</code><span class="sig-paren">(</span><em>cipher</em>, <em>keytype</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SAM.set_asym_algorithm" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">set_asym_algorithm</tt><big>(</big><em>cipher</em>, <em>keytype</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SAM.set_asym_algorithm" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><table class="docutils field-list" frame="void" rules="none">
|
||||
<col class="field-name" />
|
||||
<col class="field-body" />
|
||||
@@ -634,103 +635,103 @@ needs a reference to the filesystem in order to store/retrieve keys.</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.nPA.nPA_SAM.store_SE">
|
||||
<code class="descname">store_SE</code><span class="sig-paren">(</span><em>SEID</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SAM.store_SE" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">store_SE</tt><big>(</big><em>SEID</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SAM.store_SE" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Stores the current Security environment in the secure access module.
|
||||
The SEID is used as a reference to identify the SE.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.nPA.nPA_SAM.verify">
|
||||
<code class="descname">verify</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SAM.verify" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">verify</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SAM.verify" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
||||
<dl class="class">
|
||||
<dt id="virtualsmartcard.cards.nPA.nPA_SE">
|
||||
<em class="property">class </em><code class="descclassname">virtualsmartcard.cards.nPA.</code><code class="descname">nPA_SE</code><span class="sig-paren">(</span><em>MF</em>, <em>SAM</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SE" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <a class="reference internal" href="virtualsmartcard.SEutils.html#virtualsmartcard.SEutils.Security_Environment" title="virtualsmartcard.SEutils.Security_Environment"><code class="xref py py-class docutils literal"><span class="pre">virtualsmartcard.SEutils.Security_Environment</span></code></a></p>
|
||||
<em class="property">class </em><tt class="descclassname">virtualsmartcard.cards.nPA.</tt><tt class="descname">nPA_SE</tt><big>(</big><em>MF</em>, <em>SAM</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SE" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <a class="reference internal" href="virtualsmartcard.SEutils.html#virtualsmartcard.SEutils.Security_Environment" title="virtualsmartcard.SEutils.Security_Environment"><tt class="xref py py-class docutils literal"><span class="pre">virtualsmartcard.SEutils.Security_Environment</span></tt></a></p>
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.nPA.nPA_SE._nPA_SE__eac_ca">
|
||||
<code class="descname">_nPA_SE__eac_ca</code><span class="sig-paren">(</span><em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SE._nPA_SE__eac_ca" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">_nPA_SE__eac_ca</tt><big>(</big><em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SE._nPA_SE__eac_ca" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.nPA.nPA_SE._nPA_SE__eac_pace_step1">
|
||||
<code class="descname">_nPA_SE__eac_pace_step1</code><span class="sig-paren">(</span><em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SE._nPA_SE__eac_pace_step1" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">_nPA_SE__eac_pace_step1</tt><big>(</big><em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SE._nPA_SE__eac_pace_step1" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.nPA.nPA_SE._nPA_SE__eac_pace_step2">
|
||||
<code class="descname">_nPA_SE__eac_pace_step2</code><span class="sig-paren">(</span><em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SE._nPA_SE__eac_pace_step2" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">_nPA_SE__eac_pace_step2</tt><big>(</big><em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SE._nPA_SE__eac_pace_step2" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.nPA.nPA_SE._nPA_SE__eac_pace_step3">
|
||||
<code class="descname">_nPA_SE__eac_pace_step3</code><span class="sig-paren">(</span><em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SE._nPA_SE__eac_pace_step3" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">_nPA_SE__eac_pace_step3</tt><big>(</big><em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SE._nPA_SE__eac_pace_step3" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.nPA.nPA_SE._nPA_SE__eac_pace_step4">
|
||||
<code class="descname">_nPA_SE__eac_pace_step4</code><span class="sig-paren">(</span><em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SE._nPA_SE__eac_pace_step4" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">_nPA_SE__eac_pace_step4</tt><big>(</big><em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SE._nPA_SE__eac_pace_step4" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="staticmethod">
|
||||
<dt id="virtualsmartcard.cards.nPA.nPA_SE._nPA_SE__pack_general_authenticate">
|
||||
<em class="property">static </em><code class="descname">_nPA_SE__pack_general_authenticate</code><span class="sig-paren">(</span><em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SE._nPA_SE__pack_general_authenticate" title="Permalink to this definition">¶</a></dt>
|
||||
<em class="property">static </em><tt class="descname">_nPA_SE__pack_general_authenticate</tt><big>(</big><em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SE._nPA_SE__pack_general_authenticate" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="staticmethod">
|
||||
<dt id="virtualsmartcard.cards.nPA.nPA_SE._nPA_SE__unpack_general_authenticate">
|
||||
<em class="property">static </em><code class="descname">_nPA_SE__unpack_general_authenticate</code><span class="sig-paren">(</span><em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SE._nPA_SE__unpack_general_authenticate" title="Permalink to this definition">¶</a></dt>
|
||||
<em class="property">static </em><tt class="descname">_nPA_SE__unpack_general_authenticate</tt><big>(</big><em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SE._nPA_SE__unpack_general_authenticate" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.nPA.nPA_SE._set_SE">
|
||||
<code class="descname">_set_SE</code><span class="sig-paren">(</span><em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SE._set_SE" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">_set_SE</tt><big>(</big><em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SE._set_SE" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.nPA.nPA_SE.compute_cryptographic_checksum">
|
||||
<code class="descname">compute_cryptographic_checksum</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SE.compute_cryptographic_checksum" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">compute_cryptographic_checksum</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SE.compute_cryptographic_checksum" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.nPA.nPA_SE.compute_digital_signature">
|
||||
<code class="descname">compute_digital_signature</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SE.compute_digital_signature" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">compute_digital_signature</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SE.compute_digital_signature" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.nPA.nPA_SE.decipher">
|
||||
<code class="descname">decipher</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SE.decipher" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">decipher</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SE.decipher" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="attribute">
|
||||
<dt id="virtualsmartcard.cards.nPA.nPA_SE.eac_step">
|
||||
<code class="descname">eac_step</code><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SE.eac_step" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">eac_step</tt><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SE.eac_step" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>next step to performed for EAC</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.nPA.nPA_SE.encipher">
|
||||
<code class="descname">encipher</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SE.encipher" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">encipher</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SE.encipher" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.nPA.nPA_SE.external_authenticate">
|
||||
<code class="descname">external_authenticate</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SE.external_authenticate" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">external_authenticate</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SE.external_authenticate" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Authenticate the terminal to the card. Check whether Terminal correctly
|
||||
encrypted the given challenge or not</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.nPA.nPA_SE.general_authenticate">
|
||||
<code class="descname">general_authenticate</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SE.general_authenticate" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">general_authenticate</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SE.general_authenticate" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.nPA.nPA_SE.generate_public_key_pair">
|
||||
<code class="descname">generate_public_key_pair</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SE.generate_public_key_pair" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">generate_public_key_pair</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SE.generate_public_key_pair" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>The GENERATE PUBLIC-KEY PAIR command either initiates the generation
|
||||
and storing of a key pair, i.e., a public key and a private key, in the
|
||||
card, or accesses a key pair previously generated in the card.</p>
|
||||
@@ -753,7 +754,7 @@ P1-P2 different from ‘0000’</li>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.nPA.nPA_SE.hash">
|
||||
<code class="descname">hash</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SE.hash" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">hash</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SE.hash" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Hash the given data using the algorithm specified by the current
|
||||
Security environment.</p>
|
||||
<table class="docutils field-list" frame="void" rules="none">
|
||||
@@ -768,7 +769,7 @@ Security environment.</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.nPA.nPA_SE.manage_security_environment">
|
||||
<code class="descname">manage_security_environment</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SE.manage_security_environment" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">manage_security_environment</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SE.manage_security_environment" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>This method is used to store, restore or erase Security Environments
|
||||
or to manipulate the various parameters of the current SE.
|
||||
P1 specifies the operation to perform, p2 is either the SEID for the
|
||||
@@ -991,7 +992,7 @@ authentication and key agreement</td>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.nPA.nPA_SE.parse_SM_CAPDU">
|
||||
<code class="descname">parse_SM_CAPDU</code><span class="sig-paren">(</span><em>CAPDU</em>, <em>authenticate_header</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SE.parse_SM_CAPDU" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">parse_SM_CAPDU</tt><big>(</big><em>CAPDU</em>, <em>authenticate_header</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SE.parse_SM_CAPDU" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>This methods parses a data field including Secure Messaging objects.
|
||||
SM_header indicates whether or not the header of the message shall be
|
||||
authenticated. It returns an unprotected command APDU</p>
|
||||
@@ -1015,7 +1016,7 @@ included in authentication mechanisms</li>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.nPA.nPA_SE.perform_security_operation">
|
||||
<code class="descname">perform_security_operation</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SE.perform_security_operation" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">perform_security_operation</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SE.perform_security_operation" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>In the end this command is nothing but a big switch for all the other
|
||||
commands in ISO 7816-8. It will invoke the appropriate command and
|
||||
return its result</p>
|
||||
@@ -1023,7 +1024,7 @@ return its result</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.nPA.nPA_SE.protect_response">
|
||||
<code class="descname">protect_response</code><span class="sig-paren">(</span><em>sw</em>, <em>result</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SE.protect_response" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">protect_response</tt><big>(</big><em>sw</em>, <em>result</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SE.protect_response" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>This method protects a response APDU using secure messaging mechanisms</p>
|
||||
<table class="docutils field-list" frame="void" rules="none">
|
||||
<col class="field-name" />
|
||||
@@ -1037,12 +1038,12 @@ return its result</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.nPA.nPA_SE.verify_certificate">
|
||||
<code class="descname">verify_certificate</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SE.verify_certificate" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">verify_certificate</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SE.verify_certificate" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.nPA.nPA_SE.verify_cryptographic_checksum">
|
||||
<code class="descname">verify_cryptographic_checksum</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SE.verify_cryptographic_checksum" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">verify_cryptographic_checksum</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SE.verify_cryptographic_checksum" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Verify the cryptographic checksum contained in the data field.
|
||||
Data field must contain a cryptographic checksum (tag 0x8E) and a plain
|
||||
value (tag 0x80)</p>
|
||||
@@ -1050,7 +1051,7 @@ value (tag 0x80)</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.cards.nPA.nPA_SE.verify_digital_signature">
|
||||
<code class="descname">verify_digital_signature</code><span class="sig-paren">(</span><em>p1</em>, <em>p2</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SE.verify_digital_signature" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">verify_digital_signature</tt><big>(</big><em>p1</em>, <em>p2</em>, <em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.cards.nPA.nPA_SE.verify_digital_signature" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Verify the digital signature contained in the data field. Data must
|
||||
contain a data to sign (tag 0x9A, 0xAC or 0xBC) and a digital signature
|
||||
(0x9E)</p>
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>virtualsmartcard Package — vsmartcard 2017-01-08 documentation</title>
|
||||
<title>virtualsmartcard Package — 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" />
|
||||
@@ -15,7 +15,7 @@
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: '../../',
|
||||
VERSION: '2017-01-08',
|
||||
VERSION: '2017-01-16',
|
||||
COLLAPSE_INDEX: false,
|
||||
FILE_SUFFIX: '.html',
|
||||
HAS_SOURCE: true
|
||||
@@ -29,7 +29,7 @@
|
||||
<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-08 documentation" href="../../index.html" />
|
||||
<link rel="top" title="vsmartcard 2017-01-16 documentation" href="../../index.html" />
|
||||
<link rel="up" title="Creating a Virtual Smart Card" href="../api.html" />
|
||||
<link rel="next" title="cards Package" href="virtualsmartcard.cards.html" />
|
||||
<link rel="prev" title="Creating a Virtual Smart Card" href="../api.html" />
|
||||
@@ -39,7 +39,7 @@
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
|
||||
</head>
|
||||
<body role="document">
|
||||
<body>
|
||||
|
||||
<a href="https://github.com/frankmorgner/vsmartcard"
|
||||
class="visible-desktop hidden-xs"><img
|
||||
@@ -86,6 +86,7 @@
|
||||
<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>
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>CryptoUtils_test Module — vsmartcard 2017-01-08 documentation</title>
|
||||
<title>CryptoUtils_test 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" />
|
||||
@@ -15,7 +15,7 @@
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: '../../',
|
||||
VERSION: '2017-01-08',
|
||||
VERSION: '2017-01-16',
|
||||
COLLAPSE_INDEX: false,
|
||||
FILE_SUFFIX: '.html',
|
||||
HAS_SOURCE: true
|
||||
@@ -29,7 +29,7 @@
|
||||
<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-08 documentation" href="../../index.html" />
|
||||
<link rel="top" title="vsmartcard 2017-01-16 documentation" href="../../index.html" />
|
||||
<link rel="up" title="tests Package" href="virtualsmartcard.tests.html" />
|
||||
<link rel="next" title="SmartcardSAM_test Module" href="virtualsmartcard.tests.SmartcardSAM_test.html" />
|
||||
<link rel="prev" title="CardGenerator_test Module" href="virtualsmartcard.tests.CardGenerator_test.html" />
|
||||
@@ -39,7 +39,7 @@
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
|
||||
</head>
|
||||
<body role="document">
|
||||
<body>
|
||||
|
||||
<a href="https://github.com/frankmorgner/vsmartcard"
|
||||
class="visible-desktop hidden-xs"><img
|
||||
@@ -86,6 +86,7 @@
|
||||
<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>
|
||||
@@ -159,37 +160,37 @@
|
||||
</p>
|
||||
<span class="target" id="module-virtualsmartcard.tests.CryptoUtils_test"></span><dl class="class">
|
||||
<dt id="virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils">
|
||||
<em class="property">class </em><code class="descclassname">virtualsmartcard.tests.CryptoUtils_test.</code><code class="descname">TestCryptoUtils</code><span class="sig-paren">(</span><em>methodName='runTest'</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">unittest.case.TestCase</span></code></p>
|
||||
<em class="property">class </em><tt class="descclassname">virtualsmartcard.tests.CryptoUtils_test.</tt><tt class="descname">TestCryptoUtils</tt><big>(</big><em>methodName='runTest'</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <tt class="xref py py-class docutils literal"><span class="pre">unittest.case.TestCase</span></tt></p>
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils._addSkip">
|
||||
<code class="descname">_addSkip</code><span class="sig-paren">(</span><em>result</em>, <em>reason</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils._addSkip" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">_addSkip</tt><big>(</big><em>result</em>, <em>reason</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils._addSkip" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils._baseAssertEqual">
|
||||
<code class="descname">_baseAssertEqual</code><span class="sig-paren">(</span><em>first</em>, <em>second</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils._baseAssertEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">_baseAssertEqual</tt><big>(</big><em>first</em>, <em>second</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils._baseAssertEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>The default assertEqual implementation, not type specific.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="attribute">
|
||||
<dt id="virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils._classSetupFailed">
|
||||
<code class="descname">_classSetupFailed</code><em class="property"> = False</em><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils._classSetupFailed" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">_classSetupFailed</tt><em class="property"> = False</em><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils._classSetupFailed" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils._deprecate">
|
||||
<code class="descname">_deprecate</code><span class="sig-paren">(</span><em>original_func</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils._deprecate" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">_deprecate</tt><big>(</big><em>original_func</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils._deprecate" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="attribute">
|
||||
<dt id="virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils._diffThreshold">
|
||||
<code class="descname">_diffThreshold</code><em class="property"> = 65536</em><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils._diffThreshold" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">_diffThreshold</tt><em class="property"> = 65536</em><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils._diffThreshold" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils._formatMessage">
|
||||
<code class="descname">_formatMessage</code><span class="sig-paren">(</span><em>msg</em>, <em>standardMsg</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils._formatMessage" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">_formatMessage</tt><big>(</big><em>msg</em>, <em>standardMsg</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils._formatMessage" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Honour the longMessage attribute when generating failure messages.
|
||||
If longMessage is False this means:
|
||||
* Use only an explicit message if it is provided
|
||||
@@ -201,7 +202,7 @@ If longMessage is False this means:
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils._getAssertEqualityFunc">
|
||||
<code class="descname">_getAssertEqualityFunc</code><span class="sig-paren">(</span><em>first</em>, <em>second</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils._getAssertEqualityFunc" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">_getAssertEqualityFunc</tt><big>(</big><em>first</em>, <em>second</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils._getAssertEqualityFunc" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Get a detailed comparison function for the types of the two args.</p>
|
||||
<p>Returns: A callable accepting (first, second, msg=None) that will
|
||||
raise a failure exception if first != second with a useful human
|
||||
@@ -210,12 +211,12 @@ readable error message for those types.</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils._truncateMessage">
|
||||
<code class="descname">_truncateMessage</code><span class="sig-paren">(</span><em>message</em>, <em>diff</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils._truncateMessage" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">_truncateMessage</tt><big>(</big><em>message</em>, <em>diff</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils._truncateMessage" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.addCleanup">
|
||||
<code class="descname">addCleanup</code><span class="sig-paren">(</span><em>function</em>, <em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.addCleanup" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">addCleanup</tt><big>(</big><em>function</em>, <em>*args</em>, <em>**kwargs</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.addCleanup" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Add a function, with arguments, to be called when the test is
|
||||
completed. Functions added are called on a LIFO basis and are
|
||||
called after tearDown on test failure or success.</p>
|
||||
@@ -224,7 +225,7 @@ called after tearDown on test failure or success.</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.addTypeEqualityFunc">
|
||||
<code class="descname">addTypeEqualityFunc</code><span class="sig-paren">(</span><em>typeobj</em>, <em>function</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.addTypeEqualityFunc" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">addTypeEqualityFunc</tt><big>(</big><em>typeobj</em>, <em>function</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.addTypeEqualityFunc" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Add a type specific assertEqual style function to compare a type.</p>
|
||||
<p>This method is for use by TestCase subclasses that need to register
|
||||
their own type equality functions to provide nicer error messages.</p>
|
||||
@@ -243,7 +244,7 @@ useful error message when the two arguments are not equal.</dd>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertAlmostEqual">
|
||||
<code class="descname">assertAlmostEqual</code><span class="sig-paren">(</span><em>first</em>, <em>second</em>, <em>places=None</em>, <em>msg=None</em>, <em>delta=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertAlmostEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertAlmostEqual</tt><big>(</big><em>first</em>, <em>second</em>, <em>places=None</em>, <em>msg=None</em>, <em>delta=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertAlmostEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Fail if the two objects are unequal as determined by their
|
||||
difference rounded to the given number of decimal places
|
||||
(default 7) and comparing to zero, or by comparing that the
|
||||
@@ -256,7 +257,7 @@ compare almost equal.</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertAlmostEquals">
|
||||
<code class="descname">assertAlmostEquals</code><span class="sig-paren">(</span><em>first</em>, <em>second</em>, <em>places=None</em>, <em>msg=None</em>, <em>delta=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertAlmostEquals" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertAlmostEquals</tt><big>(</big><em>first</em>, <em>second</em>, <em>places=None</em>, <em>msg=None</em>, <em>delta=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertAlmostEquals" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Fail if the two objects are unequal as determined by their
|
||||
difference rounded to the given number of decimal places
|
||||
(default 7) and comparing to zero, or by comparing that the
|
||||
@@ -269,87 +270,87 @@ compare almost equal.</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertDictContainsSubset">
|
||||
<code class="descname">assertDictContainsSubset</code><span class="sig-paren">(</span><em>expected</em>, <em>actual</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertDictContainsSubset" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertDictContainsSubset</tt><big>(</big><em>expected</em>, <em>actual</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertDictContainsSubset" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Checks whether actual is a superset of expected.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertDictEqual">
|
||||
<code class="descname">assertDictEqual</code><span class="sig-paren">(</span><em>d1</em>, <em>d2</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertDictEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertDictEqual</tt><big>(</big><em>d1</em>, <em>d2</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertDictEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertEqual">
|
||||
<code class="descname">assertEqual</code><span class="sig-paren">(</span><em>first</em>, <em>second</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertEqual</tt><big>(</big><em>first</em>, <em>second</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Fail if the two objects are unequal as determined by the ‘==’
|
||||
operator.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertEquals">
|
||||
<code class="descname">assertEquals</code><span class="sig-paren">(</span><em>first</em>, <em>second</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertEquals" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertEquals</tt><big>(</big><em>first</em>, <em>second</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertEquals" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Fail if the two objects are unequal as determined by the ‘==’
|
||||
operator.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertFalse">
|
||||
<code class="descname">assertFalse</code><span class="sig-paren">(</span><em>expr</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertFalse" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertFalse</tt><big>(</big><em>expr</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertFalse" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Check that the expression is false.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertGreater">
|
||||
<code class="descname">assertGreater</code><span class="sig-paren">(</span><em>a</em>, <em>b</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertGreater" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertGreater</tt><big>(</big><em>a</em>, <em>b</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertGreater" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Just like self.assertTrue(a > b), but with a nicer default message.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertGreaterEqual">
|
||||
<code class="descname">assertGreaterEqual</code><span class="sig-paren">(</span><em>a</em>, <em>b</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertGreaterEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertGreaterEqual</tt><big>(</big><em>a</em>, <em>b</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertGreaterEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Just like self.assertTrue(a >= b), but with a nicer default message.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertIn">
|
||||
<code class="descname">assertIn</code><span class="sig-paren">(</span><em>member</em>, <em>container</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertIn" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertIn</tt><big>(</big><em>member</em>, <em>container</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertIn" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Just like self.assertTrue(a in b), but with a nicer default message.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertIs">
|
||||
<code class="descname">assertIs</code><span class="sig-paren">(</span><em>expr1</em>, <em>expr2</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertIs" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertIs</tt><big>(</big><em>expr1</em>, <em>expr2</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertIs" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Just like self.assertTrue(a is b), but with a nicer default message.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertIsInstance">
|
||||
<code class="descname">assertIsInstance</code><span class="sig-paren">(</span><em>obj</em>, <em>cls</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertIsInstance" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertIsInstance</tt><big>(</big><em>obj</em>, <em>cls</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertIsInstance" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Same as self.assertTrue(isinstance(obj, cls)), with a nicer
|
||||
default message.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertIsNone">
|
||||
<code class="descname">assertIsNone</code><span class="sig-paren">(</span><em>obj</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertIsNone" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertIsNone</tt><big>(</big><em>obj</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertIsNone" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Same as self.assertTrue(obj is None), with a nicer default message.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertIsNot">
|
||||
<code class="descname">assertIsNot</code><span class="sig-paren">(</span><em>expr1</em>, <em>expr2</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertIsNot" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertIsNot</tt><big>(</big><em>expr1</em>, <em>expr2</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertIsNot" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Just like self.assertTrue(a is not b), but with a nicer default message.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertIsNotNone">
|
||||
<code class="descname">assertIsNotNone</code><span class="sig-paren">(</span><em>obj</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertIsNotNone" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertIsNotNone</tt><big>(</big><em>obj</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertIsNotNone" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Included for symmetry with assertIsNone.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertItemsEqual">
|
||||
<code class="descname">assertItemsEqual</code><span class="sig-paren">(</span><em>expected_seq</em>, <em>actual_seq</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertItemsEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertItemsEqual</tt><big>(</big><em>expected_seq</em>, <em>actual_seq</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertItemsEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>An unordered sequence specific comparison. It asserts that
|
||||
actual_seq and expected_seq have the same element counts.
|
||||
Equivalent to:</p>
|
||||
@@ -369,19 +370,19 @@ Example:</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertLess">
|
||||
<code class="descname">assertLess</code><span class="sig-paren">(</span><em>a</em>, <em>b</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertLess" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertLess</tt><big>(</big><em>a</em>, <em>b</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertLess" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Just like self.assertTrue(a < b), but with a nicer default message.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertLessEqual">
|
||||
<code class="descname">assertLessEqual</code><span class="sig-paren">(</span><em>a</em>, <em>b</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertLessEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertLessEqual</tt><big>(</big><em>a</em>, <em>b</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertLessEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Just like self.assertTrue(a <= b), but with a nicer default message.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertListEqual">
|
||||
<code class="descname">assertListEqual</code><span class="sig-paren">(</span><em>list1</em>, <em>list2</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertListEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertListEqual</tt><big>(</big><em>list1</em>, <em>list2</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertListEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>A list-specific equality assertion.</p>
|
||||
<dl class="docutils">
|
||||
<dt>Args:</dt>
|
||||
@@ -396,13 +397,13 @@ msg: Optional message to use on failure instead of a list of</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertMultiLineEqual">
|
||||
<code class="descname">assertMultiLineEqual</code><span class="sig-paren">(</span><em>first</em>, <em>second</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertMultiLineEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertMultiLineEqual</tt><big>(</big><em>first</em>, <em>second</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertMultiLineEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Assert that two multi-line strings are equal.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertNotAlmostEqual">
|
||||
<code class="descname">assertNotAlmostEqual</code><span class="sig-paren">(</span><em>first</em>, <em>second</em>, <em>places=None</em>, <em>msg=None</em>, <em>delta=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertNotAlmostEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertNotAlmostEqual</tt><big>(</big><em>first</em>, <em>second</em>, <em>places=None</em>, <em>msg=None</em>, <em>delta=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertNotAlmostEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Fail if the two objects are equal as determined by their
|
||||
difference rounded to the given number of decimal places
|
||||
(default 7) and comparing to zero, or by comparing that the
|
||||
@@ -414,7 +415,7 @@ as significant digits (measured from the most signficant digit).</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertNotAlmostEquals">
|
||||
<code class="descname">assertNotAlmostEquals</code><span class="sig-paren">(</span><em>first</em>, <em>second</em>, <em>places=None</em>, <em>msg=None</em>, <em>delta=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertNotAlmostEquals" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertNotAlmostEquals</tt><big>(</big><em>first</em>, <em>second</em>, <em>places=None</em>, <em>msg=None</em>, <em>delta=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertNotAlmostEquals" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Fail if the two objects are equal as determined by their
|
||||
difference rounded to the given number of decimal places
|
||||
(default 7) and comparing to zero, or by comparing that the
|
||||
@@ -426,39 +427,39 @@ as significant digits (measured from the most signficant digit).</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertNotEqual">
|
||||
<code class="descname">assertNotEqual</code><span class="sig-paren">(</span><em>first</em>, <em>second</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertNotEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertNotEqual</tt><big>(</big><em>first</em>, <em>second</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertNotEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Fail if the two objects are equal as determined by the ‘!=’
|
||||
operator.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertNotEquals">
|
||||
<code class="descname">assertNotEquals</code><span class="sig-paren">(</span><em>first</em>, <em>second</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertNotEquals" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertNotEquals</tt><big>(</big><em>first</em>, <em>second</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertNotEquals" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Fail if the two objects are equal as determined by the ‘!=’
|
||||
operator.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertNotIn">
|
||||
<code class="descname">assertNotIn</code><span class="sig-paren">(</span><em>member</em>, <em>container</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertNotIn" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertNotIn</tt><big>(</big><em>member</em>, <em>container</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertNotIn" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Just like self.assertTrue(a not in b), but with a nicer default message.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertNotIsInstance">
|
||||
<code class="descname">assertNotIsInstance</code><span class="sig-paren">(</span><em>obj</em>, <em>cls</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertNotIsInstance" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertNotIsInstance</tt><big>(</big><em>obj</em>, <em>cls</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertNotIsInstance" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Included for symmetry with assertIsInstance.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertNotRegexpMatches">
|
||||
<code class="descname">assertNotRegexpMatches</code><span class="sig-paren">(</span><em>text</em>, <em>unexpected_regexp</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertNotRegexpMatches" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertNotRegexpMatches</tt><big>(</big><em>text</em>, <em>unexpected_regexp</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertNotRegexpMatches" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Fail the test if the text matches the regular expression.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertRaises">
|
||||
<code class="descname">assertRaises</code><span class="sig-paren">(</span><em>excClass</em>, <em>callableObj=None</em>, <em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertRaises" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertRaises</tt><big>(</big><em>excClass</em>, <em>callableObj=None</em>, <em>*args</em>, <em>**kwargs</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertRaises" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Fail unless an exception of class excClass is raised
|
||||
by callableObj when invoked with arguments args and keyword
|
||||
arguments kwargs. If a different type of exception is
|
||||
@@ -484,7 +485,7 @@ exception after the assertion:</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertRaisesRegexp">
|
||||
<code class="descname">assertRaisesRegexp</code><span class="sig-paren">(</span><em>expected_exception</em>, <em>expected_regexp</em>, <em>callable_obj=None</em>, <em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertRaisesRegexp" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertRaisesRegexp</tt><big>(</big><em>expected_exception</em>, <em>expected_regexp</em>, <em>callable_obj=None</em>, <em>*args</em>, <em>**kwargs</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertRaisesRegexp" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Asserts that the message in a raised exception matches a regexp.</p>
|
||||
<dl class="docutils">
|
||||
<dt>Args:</dt>
|
||||
@@ -501,13 +502,13 @@ kwargs: Extra kwargs.</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertRegexpMatches">
|
||||
<code class="descname">assertRegexpMatches</code><span class="sig-paren">(</span><em>text</em>, <em>expected_regexp</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertRegexpMatches" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertRegexpMatches</tt><big>(</big><em>text</em>, <em>expected_regexp</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertRegexpMatches" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Fail the test unless the text matches the regular expression.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertSequenceEqual">
|
||||
<code class="descname">assertSequenceEqual</code><span class="sig-paren">(</span><em>seq1</em>, <em>seq2</em>, <em>msg=None</em>, <em>seq_type=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertSequenceEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertSequenceEqual</tt><big>(</big><em>seq1</em>, <em>seq2</em>, <em>msg=None</em>, <em>seq_type=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertSequenceEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>An equality assertion for ordered sequences (like lists and tuples).</p>
|
||||
<p>For the purposes of this function, a valid ordered sequence type is one
|
||||
which can be indexed, has a length, and has an equality operator.</p>
|
||||
@@ -528,7 +529,7 @@ seq_type: The expected datatype of the sequences, or None if no</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertSetEqual">
|
||||
<code class="descname">assertSetEqual</code><span class="sig-paren">(</span><em>set1</em>, <em>set2</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertSetEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertSetEqual</tt><big>(</big><em>set1</em>, <em>set2</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertSetEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>A set-specific equality assertion.</p>
|
||||
<dl class="docutils">
|
||||
<dt>Args:</dt>
|
||||
@@ -546,13 +547,13 @@ difference method).</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertTrue">
|
||||
<code class="descname">assertTrue</code><span class="sig-paren">(</span><em>expr</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertTrue" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertTrue</tt><big>(</big><em>expr</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertTrue" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Check that the expression is true.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertTupleEqual">
|
||||
<code class="descname">assertTupleEqual</code><span class="sig-paren">(</span><em>tuple1</em>, <em>tuple2</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertTupleEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertTupleEqual</tt><big>(</big><em>tuple1</em>, <em>tuple2</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assertTupleEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>A tuple-specific equality assertion.</p>
|
||||
<dl class="docutils">
|
||||
<dt>Args:</dt>
|
||||
@@ -567,114 +568,114 @@ msg: Optional message to use on failure instead of a list of</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assert_">
|
||||
<code class="descname">assert_</code><span class="sig-paren">(</span><em>expr</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assert_" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assert_</tt><big>(</big><em>expr</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.assert_" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Check that the expression is true.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.countTestCases">
|
||||
<code class="descname">countTestCases</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.countTestCases" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">countTestCases</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.countTestCases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.debug">
|
||||
<code class="descname">debug</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.debug" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">debug</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.debug" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Run the test without collecting errors in a TestResult</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.defaultTestResult">
|
||||
<code class="descname">defaultTestResult</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.defaultTestResult" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">defaultTestResult</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.defaultTestResult" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.doCleanups">
|
||||
<code class="descname">doCleanups</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.doCleanups" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">doCleanups</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.doCleanups" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Execute all cleanup functions. Normally called for you after
|
||||
tearDown.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.fail">
|
||||
<code class="descname">fail</code><span class="sig-paren">(</span><em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.fail" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">fail</tt><big>(</big><em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.fail" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Fail immediately, with the given message.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.failIf">
|
||||
<code class="descname">failIf</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.failIf" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">failIf</tt><big>(</big><em>*args</em>, <em>**kwargs</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.failIf" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.failIfAlmostEqual">
|
||||
<code class="descname">failIfAlmostEqual</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.failIfAlmostEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">failIfAlmostEqual</tt><big>(</big><em>*args</em>, <em>**kwargs</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.failIfAlmostEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.failIfEqual">
|
||||
<code class="descname">failIfEqual</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.failIfEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">failIfEqual</tt><big>(</big><em>*args</em>, <em>**kwargs</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.failIfEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.failUnless">
|
||||
<code class="descname">failUnless</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.failUnless" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">failUnless</tt><big>(</big><em>*args</em>, <em>**kwargs</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.failUnless" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.failUnlessAlmostEqual">
|
||||
<code class="descname">failUnlessAlmostEqual</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.failUnlessAlmostEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">failUnlessAlmostEqual</tt><big>(</big><em>*args</em>, <em>**kwargs</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.failUnlessAlmostEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.failUnlessEqual">
|
||||
<code class="descname">failUnlessEqual</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.failUnlessEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">failUnlessEqual</tt><big>(</big><em>*args</em>, <em>**kwargs</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.failUnlessEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.failUnlessRaises">
|
||||
<code class="descname">failUnlessRaises</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.failUnlessRaises" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">failUnlessRaises</tt><big>(</big><em>*args</em>, <em>**kwargs</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.failUnlessRaises" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="attribute">
|
||||
<dt id="virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.failureException">
|
||||
<code class="descname">failureException</code><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.failureException" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AssertionError</span></code></p>
|
||||
<tt class="descname">failureException</tt><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.failureException" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>alias of <tt class="xref py py-class docutils literal"><span class="pre">AssertionError</span></tt></p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.id">
|
||||
<code class="descname">id</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.id" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">id</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.id" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="attribute">
|
||||
<dt id="virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.longMessage">
|
||||
<code class="descname">longMessage</code><em class="property"> = False</em><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.longMessage" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">longMessage</tt><em class="property"> = False</em><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.longMessage" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="attribute">
|
||||
<dt id="virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.maxDiff">
|
||||
<code class="descname">maxDiff</code><em class="property"> = 640</em><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.maxDiff" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">maxDiff</tt><em class="property"> = 640</em><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.maxDiff" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.run">
|
||||
<code class="descname">run</code><span class="sig-paren">(</span><em>result=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.run" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">run</tt><big>(</big><em>result=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.run" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.setUp">
|
||||
<code class="descname">setUp</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.setUp" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">setUp</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.setUp" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dl class="classmethod">
|
||||
<dt id="virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.setUpClass">
|
||||
<code class="descname">setUpClass</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.setUpClass" title="Permalink to this definition">¶</a></dt>
|
||||
<em class="property">classmethod </em><tt class="descname">setUpClass</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.setUpClass" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Hook method for setting up class fixture before running tests in the class.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.shortDescription">
|
||||
<code class="descname">shortDescription</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.shortDescription" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">shortDescription</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.shortDescription" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Returns a one-line description of the test, or None if no
|
||||
description has been provided.</p>
|
||||
<p>The default implementation of this method returns the first line of
|
||||
@@ -683,25 +684,25 @@ the specified test method’s docstring.</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.skipTest">
|
||||
<code class="descname">skipTest</code><span class="sig-paren">(</span><em>reason</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.skipTest" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">skipTest</tt><big>(</big><em>reason</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.skipTest" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Skip this test.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.tearDown">
|
||||
<code class="descname">tearDown</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.tearDown" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">tearDown</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.tearDown" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Hook method for deconstructing the test fixture after testing it.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dl class="classmethod">
|
||||
<dt id="virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.tearDownClass">
|
||||
<code class="descname">tearDownClass</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.tearDownClass" title="Permalink to this definition">¶</a></dt>
|
||||
<em class="property">classmethod </em><tt class="descname">tearDownClass</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.tearDownClass" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Hook method for deconstructing the class fixture after running all tests in the class.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.test_padding">
|
||||
<code class="descname">test_padding</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.test_padding" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">test_padding</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.CryptoUtils_test.TestCryptoUtils.test_padding" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>SmartcardSAM_test Module — vsmartcard 2017-01-08 documentation</title>
|
||||
<title>SmartcardSAM_test 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" />
|
||||
@@ -15,7 +15,7 @@
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: '../../',
|
||||
VERSION: '2017-01-08',
|
||||
VERSION: '2017-01-16',
|
||||
COLLAPSE_INDEX: false,
|
||||
FILE_SUFFIX: '.html',
|
||||
HAS_SOURCE: true
|
||||
@@ -29,7 +29,7 @@
|
||||
<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-08 documentation" href="../../index.html" />
|
||||
<link rel="top" title="vsmartcard 2017-01-16 documentation" href="../../index.html" />
|
||||
<link rel="up" title="tests Package" href="virtualsmartcard.tests.html" />
|
||||
<link rel="next" title="utils_test Module" href="virtualsmartcard.tests.utils_test.html" />
|
||||
<link rel="prev" title="CryptoUtils_test Module" href="virtualsmartcard.tests.CryptoUtils_test.html" />
|
||||
@@ -39,7 +39,7 @@
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
|
||||
</head>
|
||||
<body role="document">
|
||||
<body>
|
||||
|
||||
<a href="https://github.com/frankmorgner/vsmartcard"
|
||||
class="visible-desktop hidden-xs"><img
|
||||
@@ -86,6 +86,7 @@
|
||||
<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>
|
||||
@@ -159,37 +160,37 @@
|
||||
</p>
|
||||
<span class="target" id="module-virtualsmartcard.tests.SmartcardSAM_test"></span><dl class="class">
|
||||
<dt id="virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM">
|
||||
<em class="property">class </em><code class="descclassname">virtualsmartcard.tests.SmartcardSAM_test.</code><code class="descname">TestSmartcardSAM</code><span class="sig-paren">(</span><em>methodName='runTest'</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">unittest.case.TestCase</span></code></p>
|
||||
<em class="property">class </em><tt class="descclassname">virtualsmartcard.tests.SmartcardSAM_test.</tt><tt class="descname">TestSmartcardSAM</tt><big>(</big><em>methodName='runTest'</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <tt class="xref py py-class docutils literal"><span class="pre">unittest.case.TestCase</span></tt></p>
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM._addSkip">
|
||||
<code class="descname">_addSkip</code><span class="sig-paren">(</span><em>result</em>, <em>reason</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM._addSkip" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">_addSkip</tt><big>(</big><em>result</em>, <em>reason</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM._addSkip" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM._baseAssertEqual">
|
||||
<code class="descname">_baseAssertEqual</code><span class="sig-paren">(</span><em>first</em>, <em>second</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM._baseAssertEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">_baseAssertEqual</tt><big>(</big><em>first</em>, <em>second</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM._baseAssertEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>The default assertEqual implementation, not type specific.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="attribute">
|
||||
<dt id="virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM._classSetupFailed">
|
||||
<code class="descname">_classSetupFailed</code><em class="property"> = False</em><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM._classSetupFailed" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">_classSetupFailed</tt><em class="property"> = False</em><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM._classSetupFailed" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM._deprecate">
|
||||
<code class="descname">_deprecate</code><span class="sig-paren">(</span><em>original_func</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM._deprecate" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">_deprecate</tt><big>(</big><em>original_func</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM._deprecate" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="attribute">
|
||||
<dt id="virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM._diffThreshold">
|
||||
<code class="descname">_diffThreshold</code><em class="property"> = 65536</em><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM._diffThreshold" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">_diffThreshold</tt><em class="property"> = 65536</em><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM._diffThreshold" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM._formatMessage">
|
||||
<code class="descname">_formatMessage</code><span class="sig-paren">(</span><em>msg</em>, <em>standardMsg</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM._formatMessage" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">_formatMessage</tt><big>(</big><em>msg</em>, <em>standardMsg</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM._formatMessage" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Honour the longMessage attribute when generating failure messages.
|
||||
If longMessage is False this means:
|
||||
* Use only an explicit message if it is provided
|
||||
@@ -201,7 +202,7 @@ If longMessage is False this means:
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM._getAssertEqualityFunc">
|
||||
<code class="descname">_getAssertEqualityFunc</code><span class="sig-paren">(</span><em>first</em>, <em>second</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM._getAssertEqualityFunc" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">_getAssertEqualityFunc</tt><big>(</big><em>first</em>, <em>second</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM._getAssertEqualityFunc" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Get a detailed comparison function for the types of the two args.</p>
|
||||
<p>Returns: A callable accepting (first, second, msg=None) that will
|
||||
raise a failure exception if first != second with a useful human
|
||||
@@ -210,12 +211,12 @@ readable error message for those types.</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM._truncateMessage">
|
||||
<code class="descname">_truncateMessage</code><span class="sig-paren">(</span><em>message</em>, <em>diff</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM._truncateMessage" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">_truncateMessage</tt><big>(</big><em>message</em>, <em>diff</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM._truncateMessage" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.addCleanup">
|
||||
<code class="descname">addCleanup</code><span class="sig-paren">(</span><em>function</em>, <em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.addCleanup" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">addCleanup</tt><big>(</big><em>function</em>, <em>*args</em>, <em>**kwargs</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.addCleanup" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Add a function, with arguments, to be called when the test is
|
||||
completed. Functions added are called on a LIFO basis and are
|
||||
called after tearDown on test failure or success.</p>
|
||||
@@ -224,7 +225,7 @@ called after tearDown on test failure or success.</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.addTypeEqualityFunc">
|
||||
<code class="descname">addTypeEqualityFunc</code><span class="sig-paren">(</span><em>typeobj</em>, <em>function</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.addTypeEqualityFunc" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">addTypeEqualityFunc</tt><big>(</big><em>typeobj</em>, <em>function</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.addTypeEqualityFunc" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Add a type specific assertEqual style function to compare a type.</p>
|
||||
<p>This method is for use by TestCase subclasses that need to register
|
||||
their own type equality functions to provide nicer error messages.</p>
|
||||
@@ -243,7 +244,7 @@ useful error message when the two arguments are not equal.</dd>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertAlmostEqual">
|
||||
<code class="descname">assertAlmostEqual</code><span class="sig-paren">(</span><em>first</em>, <em>second</em>, <em>places=None</em>, <em>msg=None</em>, <em>delta=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertAlmostEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertAlmostEqual</tt><big>(</big><em>first</em>, <em>second</em>, <em>places=None</em>, <em>msg=None</em>, <em>delta=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertAlmostEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Fail if the two objects are unequal as determined by their
|
||||
difference rounded to the given number of decimal places
|
||||
(default 7) and comparing to zero, or by comparing that the
|
||||
@@ -256,7 +257,7 @@ compare almost equal.</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertAlmostEquals">
|
||||
<code class="descname">assertAlmostEquals</code><span class="sig-paren">(</span><em>first</em>, <em>second</em>, <em>places=None</em>, <em>msg=None</em>, <em>delta=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertAlmostEquals" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertAlmostEquals</tt><big>(</big><em>first</em>, <em>second</em>, <em>places=None</em>, <em>msg=None</em>, <em>delta=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertAlmostEquals" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Fail if the two objects are unequal as determined by their
|
||||
difference rounded to the given number of decimal places
|
||||
(default 7) and comparing to zero, or by comparing that the
|
||||
@@ -269,87 +270,87 @@ compare almost equal.</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertDictContainsSubset">
|
||||
<code class="descname">assertDictContainsSubset</code><span class="sig-paren">(</span><em>expected</em>, <em>actual</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertDictContainsSubset" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertDictContainsSubset</tt><big>(</big><em>expected</em>, <em>actual</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertDictContainsSubset" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Checks whether actual is a superset of expected.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertDictEqual">
|
||||
<code class="descname">assertDictEqual</code><span class="sig-paren">(</span><em>d1</em>, <em>d2</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertDictEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertDictEqual</tt><big>(</big><em>d1</em>, <em>d2</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertDictEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertEqual">
|
||||
<code class="descname">assertEqual</code><span class="sig-paren">(</span><em>first</em>, <em>second</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertEqual</tt><big>(</big><em>first</em>, <em>second</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Fail if the two objects are unequal as determined by the ‘==’
|
||||
operator.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertEquals">
|
||||
<code class="descname">assertEquals</code><span class="sig-paren">(</span><em>first</em>, <em>second</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertEquals" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertEquals</tt><big>(</big><em>first</em>, <em>second</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertEquals" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Fail if the two objects are unequal as determined by the ‘==’
|
||||
operator.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertFalse">
|
||||
<code class="descname">assertFalse</code><span class="sig-paren">(</span><em>expr</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertFalse" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertFalse</tt><big>(</big><em>expr</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertFalse" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Check that the expression is false.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertGreater">
|
||||
<code class="descname">assertGreater</code><span class="sig-paren">(</span><em>a</em>, <em>b</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertGreater" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertGreater</tt><big>(</big><em>a</em>, <em>b</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertGreater" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Just like self.assertTrue(a > b), but with a nicer default message.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertGreaterEqual">
|
||||
<code class="descname">assertGreaterEqual</code><span class="sig-paren">(</span><em>a</em>, <em>b</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertGreaterEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertGreaterEqual</tt><big>(</big><em>a</em>, <em>b</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertGreaterEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Just like self.assertTrue(a >= b), but with a nicer default message.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertIn">
|
||||
<code class="descname">assertIn</code><span class="sig-paren">(</span><em>member</em>, <em>container</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertIn" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertIn</tt><big>(</big><em>member</em>, <em>container</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertIn" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Just like self.assertTrue(a in b), but with a nicer default message.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertIs">
|
||||
<code class="descname">assertIs</code><span class="sig-paren">(</span><em>expr1</em>, <em>expr2</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertIs" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertIs</tt><big>(</big><em>expr1</em>, <em>expr2</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertIs" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Just like self.assertTrue(a is b), but with a nicer default message.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertIsInstance">
|
||||
<code class="descname">assertIsInstance</code><span class="sig-paren">(</span><em>obj</em>, <em>cls</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertIsInstance" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertIsInstance</tt><big>(</big><em>obj</em>, <em>cls</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertIsInstance" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Same as self.assertTrue(isinstance(obj, cls)), with a nicer
|
||||
default message.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertIsNone">
|
||||
<code class="descname">assertIsNone</code><span class="sig-paren">(</span><em>obj</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertIsNone" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertIsNone</tt><big>(</big><em>obj</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertIsNone" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Same as self.assertTrue(obj is None), with a nicer default message.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertIsNot">
|
||||
<code class="descname">assertIsNot</code><span class="sig-paren">(</span><em>expr1</em>, <em>expr2</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertIsNot" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertIsNot</tt><big>(</big><em>expr1</em>, <em>expr2</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertIsNot" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Just like self.assertTrue(a is not b), but with a nicer default message.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertIsNotNone">
|
||||
<code class="descname">assertIsNotNone</code><span class="sig-paren">(</span><em>obj</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertIsNotNone" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertIsNotNone</tt><big>(</big><em>obj</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertIsNotNone" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Included for symmetry with assertIsNone.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertItemsEqual">
|
||||
<code class="descname">assertItemsEqual</code><span class="sig-paren">(</span><em>expected_seq</em>, <em>actual_seq</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertItemsEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertItemsEqual</tt><big>(</big><em>expected_seq</em>, <em>actual_seq</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertItemsEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>An unordered sequence specific comparison. It asserts that
|
||||
actual_seq and expected_seq have the same element counts.
|
||||
Equivalent to:</p>
|
||||
@@ -369,19 +370,19 @@ Example:</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertLess">
|
||||
<code class="descname">assertLess</code><span class="sig-paren">(</span><em>a</em>, <em>b</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertLess" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertLess</tt><big>(</big><em>a</em>, <em>b</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertLess" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Just like self.assertTrue(a < b), but with a nicer default message.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertLessEqual">
|
||||
<code class="descname">assertLessEqual</code><span class="sig-paren">(</span><em>a</em>, <em>b</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertLessEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertLessEqual</tt><big>(</big><em>a</em>, <em>b</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertLessEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Just like self.assertTrue(a <= b), but with a nicer default message.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertListEqual">
|
||||
<code class="descname">assertListEqual</code><span class="sig-paren">(</span><em>list1</em>, <em>list2</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertListEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertListEqual</tt><big>(</big><em>list1</em>, <em>list2</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertListEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>A list-specific equality assertion.</p>
|
||||
<dl class="docutils">
|
||||
<dt>Args:</dt>
|
||||
@@ -396,13 +397,13 @@ msg: Optional message to use on failure instead of a list of</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertMultiLineEqual">
|
||||
<code class="descname">assertMultiLineEqual</code><span class="sig-paren">(</span><em>first</em>, <em>second</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertMultiLineEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertMultiLineEqual</tt><big>(</big><em>first</em>, <em>second</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertMultiLineEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Assert that two multi-line strings are equal.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertNotAlmostEqual">
|
||||
<code class="descname">assertNotAlmostEqual</code><span class="sig-paren">(</span><em>first</em>, <em>second</em>, <em>places=None</em>, <em>msg=None</em>, <em>delta=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertNotAlmostEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertNotAlmostEqual</tt><big>(</big><em>first</em>, <em>second</em>, <em>places=None</em>, <em>msg=None</em>, <em>delta=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertNotAlmostEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Fail if the two objects are equal as determined by their
|
||||
difference rounded to the given number of decimal places
|
||||
(default 7) and comparing to zero, or by comparing that the
|
||||
@@ -414,7 +415,7 @@ as significant digits (measured from the most signficant digit).</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertNotAlmostEquals">
|
||||
<code class="descname">assertNotAlmostEquals</code><span class="sig-paren">(</span><em>first</em>, <em>second</em>, <em>places=None</em>, <em>msg=None</em>, <em>delta=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertNotAlmostEquals" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertNotAlmostEquals</tt><big>(</big><em>first</em>, <em>second</em>, <em>places=None</em>, <em>msg=None</em>, <em>delta=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertNotAlmostEquals" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Fail if the two objects are equal as determined by their
|
||||
difference rounded to the given number of decimal places
|
||||
(default 7) and comparing to zero, or by comparing that the
|
||||
@@ -426,39 +427,39 @@ as significant digits (measured from the most signficant digit).</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertNotEqual">
|
||||
<code class="descname">assertNotEqual</code><span class="sig-paren">(</span><em>first</em>, <em>second</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertNotEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertNotEqual</tt><big>(</big><em>first</em>, <em>second</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertNotEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Fail if the two objects are equal as determined by the ‘!=’
|
||||
operator.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertNotEquals">
|
||||
<code class="descname">assertNotEquals</code><span class="sig-paren">(</span><em>first</em>, <em>second</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertNotEquals" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertNotEquals</tt><big>(</big><em>first</em>, <em>second</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertNotEquals" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Fail if the two objects are equal as determined by the ‘!=’
|
||||
operator.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertNotIn">
|
||||
<code class="descname">assertNotIn</code><span class="sig-paren">(</span><em>member</em>, <em>container</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertNotIn" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertNotIn</tt><big>(</big><em>member</em>, <em>container</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertNotIn" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Just like self.assertTrue(a not in b), but with a nicer default message.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertNotIsInstance">
|
||||
<code class="descname">assertNotIsInstance</code><span class="sig-paren">(</span><em>obj</em>, <em>cls</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertNotIsInstance" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertNotIsInstance</tt><big>(</big><em>obj</em>, <em>cls</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertNotIsInstance" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Included for symmetry with assertIsInstance.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertNotRegexpMatches">
|
||||
<code class="descname">assertNotRegexpMatches</code><span class="sig-paren">(</span><em>text</em>, <em>unexpected_regexp</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertNotRegexpMatches" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertNotRegexpMatches</tt><big>(</big><em>text</em>, <em>unexpected_regexp</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertNotRegexpMatches" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Fail the test if the text matches the regular expression.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertRaises">
|
||||
<code class="descname">assertRaises</code><span class="sig-paren">(</span><em>excClass</em>, <em>callableObj=None</em>, <em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertRaises" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertRaises</tt><big>(</big><em>excClass</em>, <em>callableObj=None</em>, <em>*args</em>, <em>**kwargs</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertRaises" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Fail unless an exception of class excClass is raised
|
||||
by callableObj when invoked with arguments args and keyword
|
||||
arguments kwargs. If a different type of exception is
|
||||
@@ -484,7 +485,7 @@ exception after the assertion:</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertRaisesRegexp">
|
||||
<code class="descname">assertRaisesRegexp</code><span class="sig-paren">(</span><em>expected_exception</em>, <em>expected_regexp</em>, <em>callable_obj=None</em>, <em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertRaisesRegexp" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertRaisesRegexp</tt><big>(</big><em>expected_exception</em>, <em>expected_regexp</em>, <em>callable_obj=None</em>, <em>*args</em>, <em>**kwargs</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertRaisesRegexp" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Asserts that the message in a raised exception matches a regexp.</p>
|
||||
<dl class="docutils">
|
||||
<dt>Args:</dt>
|
||||
@@ -501,13 +502,13 @@ kwargs: Extra kwargs.</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertRegexpMatches">
|
||||
<code class="descname">assertRegexpMatches</code><span class="sig-paren">(</span><em>text</em>, <em>expected_regexp</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertRegexpMatches" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertRegexpMatches</tt><big>(</big><em>text</em>, <em>expected_regexp</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertRegexpMatches" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Fail the test unless the text matches the regular expression.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertSequenceEqual">
|
||||
<code class="descname">assertSequenceEqual</code><span class="sig-paren">(</span><em>seq1</em>, <em>seq2</em>, <em>msg=None</em>, <em>seq_type=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertSequenceEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertSequenceEqual</tt><big>(</big><em>seq1</em>, <em>seq2</em>, <em>msg=None</em>, <em>seq_type=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertSequenceEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>An equality assertion for ordered sequences (like lists and tuples).</p>
|
||||
<p>For the purposes of this function, a valid ordered sequence type is one
|
||||
which can be indexed, has a length, and has an equality operator.</p>
|
||||
@@ -528,7 +529,7 @@ seq_type: The expected datatype of the sequences, or None if no</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertSetEqual">
|
||||
<code class="descname">assertSetEqual</code><span class="sig-paren">(</span><em>set1</em>, <em>set2</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertSetEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertSetEqual</tt><big>(</big><em>set1</em>, <em>set2</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertSetEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>A set-specific equality assertion.</p>
|
||||
<dl class="docutils">
|
||||
<dt>Args:</dt>
|
||||
@@ -546,13 +547,13 @@ difference method).</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertTrue">
|
||||
<code class="descname">assertTrue</code><span class="sig-paren">(</span><em>expr</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertTrue" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertTrue</tt><big>(</big><em>expr</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertTrue" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Check that the expression is true.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertTupleEqual">
|
||||
<code class="descname">assertTupleEqual</code><span class="sig-paren">(</span><em>tuple1</em>, <em>tuple2</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertTupleEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertTupleEqual</tt><big>(</big><em>tuple1</em>, <em>tuple2</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assertTupleEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>A tuple-specific equality assertion.</p>
|
||||
<dl class="docutils">
|
||||
<dt>Args:</dt>
|
||||
@@ -567,114 +568,114 @@ msg: Optional message to use on failure instead of a list of</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assert_">
|
||||
<code class="descname">assert_</code><span class="sig-paren">(</span><em>expr</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assert_" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assert_</tt><big>(</big><em>expr</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.assert_" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Check that the expression is true.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.countTestCases">
|
||||
<code class="descname">countTestCases</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.countTestCases" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">countTestCases</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.countTestCases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.debug">
|
||||
<code class="descname">debug</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.debug" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">debug</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.debug" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Run the test without collecting errors in a TestResult</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.defaultTestResult">
|
||||
<code class="descname">defaultTestResult</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.defaultTestResult" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">defaultTestResult</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.defaultTestResult" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.doCleanups">
|
||||
<code class="descname">doCleanups</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.doCleanups" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">doCleanups</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.doCleanups" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Execute all cleanup functions. Normally called for you after
|
||||
tearDown.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.fail">
|
||||
<code class="descname">fail</code><span class="sig-paren">(</span><em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.fail" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">fail</tt><big>(</big><em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.fail" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Fail immediately, with the given message.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.failIf">
|
||||
<code class="descname">failIf</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.failIf" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">failIf</tt><big>(</big><em>*args</em>, <em>**kwargs</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.failIf" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.failIfAlmostEqual">
|
||||
<code class="descname">failIfAlmostEqual</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.failIfAlmostEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">failIfAlmostEqual</tt><big>(</big><em>*args</em>, <em>**kwargs</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.failIfAlmostEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.failIfEqual">
|
||||
<code class="descname">failIfEqual</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.failIfEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">failIfEqual</tt><big>(</big><em>*args</em>, <em>**kwargs</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.failIfEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.failUnless">
|
||||
<code class="descname">failUnless</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.failUnless" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">failUnless</tt><big>(</big><em>*args</em>, <em>**kwargs</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.failUnless" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.failUnlessAlmostEqual">
|
||||
<code class="descname">failUnlessAlmostEqual</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.failUnlessAlmostEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">failUnlessAlmostEqual</tt><big>(</big><em>*args</em>, <em>**kwargs</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.failUnlessAlmostEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.failUnlessEqual">
|
||||
<code class="descname">failUnlessEqual</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.failUnlessEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">failUnlessEqual</tt><big>(</big><em>*args</em>, <em>**kwargs</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.failUnlessEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.failUnlessRaises">
|
||||
<code class="descname">failUnlessRaises</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.failUnlessRaises" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">failUnlessRaises</tt><big>(</big><em>*args</em>, <em>**kwargs</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.failUnlessRaises" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="attribute">
|
||||
<dt id="virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.failureException">
|
||||
<code class="descname">failureException</code><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.failureException" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AssertionError</span></code></p>
|
||||
<tt class="descname">failureException</tt><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.failureException" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>alias of <tt class="xref py py-class docutils literal"><span class="pre">AssertionError</span></tt></p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.id">
|
||||
<code class="descname">id</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.id" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">id</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.id" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="attribute">
|
||||
<dt id="virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.longMessage">
|
||||
<code class="descname">longMessage</code><em class="property"> = False</em><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.longMessage" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">longMessage</tt><em class="property"> = False</em><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.longMessage" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="attribute">
|
||||
<dt id="virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.maxDiff">
|
||||
<code class="descname">maxDiff</code><em class="property"> = 640</em><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.maxDiff" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">maxDiff</tt><em class="property"> = 640</em><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.maxDiff" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.run">
|
||||
<code class="descname">run</code><span class="sig-paren">(</span><em>result=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.run" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">run</tt><big>(</big><em>result=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.run" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.setUp">
|
||||
<code class="descname">setUp</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.setUp" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">setUp</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.setUp" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dl class="classmethod">
|
||||
<dt id="virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.setUpClass">
|
||||
<code class="descname">setUpClass</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.setUpClass" title="Permalink to this definition">¶</a></dt>
|
||||
<em class="property">classmethod </em><tt class="descname">setUpClass</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.setUpClass" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Hook method for setting up class fixture before running tests in the class.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.shortDescription">
|
||||
<code class="descname">shortDescription</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.shortDescription" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">shortDescription</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.shortDescription" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Returns a one-line description of the test, or None if no
|
||||
description has been provided.</p>
|
||||
<p>The default implementation of this method returns the first line of
|
||||
@@ -683,45 +684,45 @@ the specified test method’s docstring.</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.skipTest">
|
||||
<code class="descname">skipTest</code><span class="sig-paren">(</span><em>reason</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.skipTest" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">skipTest</tt><big>(</big><em>reason</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.skipTest" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Skip this test.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.tearDown">
|
||||
<code class="descname">tearDown</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.tearDown" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">tearDown</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.tearDown" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Hook method for deconstructing the test fixture after testing it.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dl class="classmethod">
|
||||
<dt id="virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.tearDownClass">
|
||||
<code class="descname">tearDownClass</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.tearDownClass" title="Permalink to this definition">¶</a></dt>
|
||||
<em class="property">classmethod </em><tt class="descname">tearDownClass</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.tearDownClass" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Hook method for deconstructing the class fixture after running all tests in the class.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.test_counter_decrement">
|
||||
<code class="descname">test_counter_decrement</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.test_counter_decrement" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">test_counter_decrement</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.test_counter_decrement" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.test_external_authenticate">
|
||||
<code class="descname">test_external_authenticate</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.test_external_authenticate" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">test_external_authenticate</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.test_external_authenticate" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.test_incorrect_pin">
|
||||
<code class="descname">test_incorrect_pin</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.test_incorrect_pin" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">test_incorrect_pin</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.test_incorrect_pin" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.test_internal_authenticate">
|
||||
<code class="descname">test_internal_authenticate</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.test_internal_authenticate" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">test_internal_authenticate</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.test_internal_authenticate" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.test_security_environment">
|
||||
<code class="descname">test_security_environment</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.test_security_environment" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">test_security_environment</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.SmartcardSAM_test.TestSmartcardSAM.test_security_environment" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>tests Package — vsmartcard 2017-01-08 documentation</title>
|
||||
<title>tests Package — 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" />
|
||||
@@ -15,7 +15,7 @@
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: '../../',
|
||||
VERSION: '2017-01-08',
|
||||
VERSION: '2017-01-16',
|
||||
COLLAPSE_INDEX: false,
|
||||
FILE_SUFFIX: '.html',
|
||||
HAS_SOURCE: true
|
||||
@@ -29,7 +29,7 @@
|
||||
<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-08 documentation" href="../../index.html" />
|
||||
<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="CardGenerator_test Module" href="virtualsmartcard.tests.CardGenerator_test.html" />
|
||||
<link rel="prev" title="nPA Module" href="virtualsmartcard.cards.nPA.html" />
|
||||
@@ -39,7 +39,7 @@
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
|
||||
</head>
|
||||
<body role="document">
|
||||
<body>
|
||||
|
||||
<a href="https://github.com/frankmorgner/vsmartcard"
|
||||
class="visible-desktop hidden-xs"><img
|
||||
@@ -86,6 +86,7 @@
|
||||
<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>
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>utils_test Module — vsmartcard 2017-01-08 documentation</title>
|
||||
<title>utils_test 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" />
|
||||
@@ -15,7 +15,7 @@
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: '../../',
|
||||
VERSION: '2017-01-08',
|
||||
VERSION: '2017-01-16',
|
||||
COLLAPSE_INDEX: false,
|
||||
FILE_SUFFIX: '.html',
|
||||
HAS_SOURCE: true
|
||||
@@ -29,7 +29,7 @@
|
||||
<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-08 documentation" href="../../index.html" />
|
||||
<link rel="top" title="vsmartcard 2017-01-16 documentation" href="../../index.html" />
|
||||
<link rel="up" title="tests Package" href="virtualsmartcard.tests.html" />
|
||||
<link rel="next" title="CardGenerator Module" href="virtualsmartcard.CardGenerator.html" />
|
||||
<link rel="prev" title="SmartcardSAM_test Module" href="virtualsmartcard.tests.SmartcardSAM_test.html" />
|
||||
@@ -39,7 +39,7 @@
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
|
||||
</head>
|
||||
<body role="document">
|
||||
<body>
|
||||
|
||||
<a href="https://github.com/frankmorgner/vsmartcard"
|
||||
class="visible-desktop hidden-xs"><img
|
||||
@@ -86,6 +86,7 @@
|
||||
<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>
|
||||
@@ -159,37 +160,37 @@
|
||||
</p>
|
||||
<span class="target" id="module-virtualsmartcard.tests.utils_test"></span><dl class="class">
|
||||
<dt id="virtualsmartcard.tests.utils_test.TestUtils">
|
||||
<em class="property">class </em><code class="descclassname">virtualsmartcard.tests.utils_test.</code><code class="descname">TestUtils</code><span class="sig-paren">(</span><em>methodName='runTest'</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">unittest.case.TestCase</span></code></p>
|
||||
<em class="property">class </em><tt class="descclassname">virtualsmartcard.tests.utils_test.</tt><tt class="descname">TestUtils</tt><big>(</big><em>methodName='runTest'</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <tt class="xref py py-class docutils literal"><span class="pre">unittest.case.TestCase</span></tt></p>
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.utils_test.TestUtils._addSkip">
|
||||
<code class="descname">_addSkip</code><span class="sig-paren">(</span><em>result</em>, <em>reason</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils._addSkip" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">_addSkip</tt><big>(</big><em>result</em>, <em>reason</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils._addSkip" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.utils_test.TestUtils._baseAssertEqual">
|
||||
<code class="descname">_baseAssertEqual</code><span class="sig-paren">(</span><em>first</em>, <em>second</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils._baseAssertEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">_baseAssertEqual</tt><big>(</big><em>first</em>, <em>second</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils._baseAssertEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>The default assertEqual implementation, not type specific.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="attribute">
|
||||
<dt id="virtualsmartcard.tests.utils_test.TestUtils._classSetupFailed">
|
||||
<code class="descname">_classSetupFailed</code><em class="property"> = False</em><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils._classSetupFailed" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">_classSetupFailed</tt><em class="property"> = False</em><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils._classSetupFailed" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.utils_test.TestUtils._deprecate">
|
||||
<code class="descname">_deprecate</code><span class="sig-paren">(</span><em>original_func</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils._deprecate" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">_deprecate</tt><big>(</big><em>original_func</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils._deprecate" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="attribute">
|
||||
<dt id="virtualsmartcard.tests.utils_test.TestUtils._diffThreshold">
|
||||
<code class="descname">_diffThreshold</code><em class="property"> = 65536</em><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils._diffThreshold" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">_diffThreshold</tt><em class="property"> = 65536</em><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils._diffThreshold" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.utils_test.TestUtils._formatMessage">
|
||||
<code class="descname">_formatMessage</code><span class="sig-paren">(</span><em>msg</em>, <em>standardMsg</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils._formatMessage" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">_formatMessage</tt><big>(</big><em>msg</em>, <em>standardMsg</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils._formatMessage" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Honour the longMessage attribute when generating failure messages.
|
||||
If longMessage is False this means:
|
||||
* Use only an explicit message if it is provided
|
||||
@@ -201,7 +202,7 @@ If longMessage is False this means:
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.utils_test.TestUtils._getAssertEqualityFunc">
|
||||
<code class="descname">_getAssertEqualityFunc</code><span class="sig-paren">(</span><em>first</em>, <em>second</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils._getAssertEqualityFunc" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">_getAssertEqualityFunc</tt><big>(</big><em>first</em>, <em>second</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils._getAssertEqualityFunc" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Get a detailed comparison function for the types of the two args.</p>
|
||||
<p>Returns: A callable accepting (first, second, msg=None) that will
|
||||
raise a failure exception if first != second with a useful human
|
||||
@@ -210,12 +211,12 @@ readable error message for those types.</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.utils_test.TestUtils._truncateMessage">
|
||||
<code class="descname">_truncateMessage</code><span class="sig-paren">(</span><em>message</em>, <em>diff</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils._truncateMessage" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">_truncateMessage</tt><big>(</big><em>message</em>, <em>diff</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils._truncateMessage" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.utils_test.TestUtils.addCleanup">
|
||||
<code class="descname">addCleanup</code><span class="sig-paren">(</span><em>function</em>, <em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.addCleanup" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">addCleanup</tt><big>(</big><em>function</em>, <em>*args</em>, <em>**kwargs</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.addCleanup" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Add a function, with arguments, to be called when the test is
|
||||
completed. Functions added are called on a LIFO basis and are
|
||||
called after tearDown on test failure or success.</p>
|
||||
@@ -224,7 +225,7 @@ called after tearDown on test failure or success.</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.utils_test.TestUtils.addTypeEqualityFunc">
|
||||
<code class="descname">addTypeEqualityFunc</code><span class="sig-paren">(</span><em>typeobj</em>, <em>function</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.addTypeEqualityFunc" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">addTypeEqualityFunc</tt><big>(</big><em>typeobj</em>, <em>function</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.addTypeEqualityFunc" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Add a type specific assertEqual style function to compare a type.</p>
|
||||
<p>This method is for use by TestCase subclasses that need to register
|
||||
their own type equality functions to provide nicer error messages.</p>
|
||||
@@ -243,7 +244,7 @@ useful error message when the two arguments are not equal.</dd>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.utils_test.TestUtils.assertAlmostEqual">
|
||||
<code class="descname">assertAlmostEqual</code><span class="sig-paren">(</span><em>first</em>, <em>second</em>, <em>places=None</em>, <em>msg=None</em>, <em>delta=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.assertAlmostEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertAlmostEqual</tt><big>(</big><em>first</em>, <em>second</em>, <em>places=None</em>, <em>msg=None</em>, <em>delta=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.assertAlmostEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Fail if the two objects are unequal as determined by their
|
||||
difference rounded to the given number of decimal places
|
||||
(default 7) and comparing to zero, or by comparing that the
|
||||
@@ -256,7 +257,7 @@ compare almost equal.</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.utils_test.TestUtils.assertAlmostEquals">
|
||||
<code class="descname">assertAlmostEquals</code><span class="sig-paren">(</span><em>first</em>, <em>second</em>, <em>places=None</em>, <em>msg=None</em>, <em>delta=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.assertAlmostEquals" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertAlmostEquals</tt><big>(</big><em>first</em>, <em>second</em>, <em>places=None</em>, <em>msg=None</em>, <em>delta=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.assertAlmostEquals" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Fail if the two objects are unequal as determined by their
|
||||
difference rounded to the given number of decimal places
|
||||
(default 7) and comparing to zero, or by comparing that the
|
||||
@@ -269,87 +270,87 @@ compare almost equal.</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.utils_test.TestUtils.assertDictContainsSubset">
|
||||
<code class="descname">assertDictContainsSubset</code><span class="sig-paren">(</span><em>expected</em>, <em>actual</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.assertDictContainsSubset" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertDictContainsSubset</tt><big>(</big><em>expected</em>, <em>actual</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.assertDictContainsSubset" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Checks whether actual is a superset of expected.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.utils_test.TestUtils.assertDictEqual">
|
||||
<code class="descname">assertDictEqual</code><span class="sig-paren">(</span><em>d1</em>, <em>d2</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.assertDictEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertDictEqual</tt><big>(</big><em>d1</em>, <em>d2</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.assertDictEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.utils_test.TestUtils.assertEqual">
|
||||
<code class="descname">assertEqual</code><span class="sig-paren">(</span><em>first</em>, <em>second</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.assertEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertEqual</tt><big>(</big><em>first</em>, <em>second</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.assertEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Fail if the two objects are unequal as determined by the ‘==’
|
||||
operator.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.utils_test.TestUtils.assertEquals">
|
||||
<code class="descname">assertEquals</code><span class="sig-paren">(</span><em>first</em>, <em>second</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.assertEquals" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertEquals</tt><big>(</big><em>first</em>, <em>second</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.assertEquals" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Fail if the two objects are unequal as determined by the ‘==’
|
||||
operator.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.utils_test.TestUtils.assertFalse">
|
||||
<code class="descname">assertFalse</code><span class="sig-paren">(</span><em>expr</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.assertFalse" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertFalse</tt><big>(</big><em>expr</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.assertFalse" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Check that the expression is false.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.utils_test.TestUtils.assertGreater">
|
||||
<code class="descname">assertGreater</code><span class="sig-paren">(</span><em>a</em>, <em>b</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.assertGreater" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertGreater</tt><big>(</big><em>a</em>, <em>b</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.assertGreater" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Just like self.assertTrue(a > b), but with a nicer default message.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.utils_test.TestUtils.assertGreaterEqual">
|
||||
<code class="descname">assertGreaterEqual</code><span class="sig-paren">(</span><em>a</em>, <em>b</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.assertGreaterEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertGreaterEqual</tt><big>(</big><em>a</em>, <em>b</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.assertGreaterEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Just like self.assertTrue(a >= b), but with a nicer default message.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.utils_test.TestUtils.assertIn">
|
||||
<code class="descname">assertIn</code><span class="sig-paren">(</span><em>member</em>, <em>container</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.assertIn" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertIn</tt><big>(</big><em>member</em>, <em>container</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.assertIn" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Just like self.assertTrue(a in b), but with a nicer default message.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.utils_test.TestUtils.assertIs">
|
||||
<code class="descname">assertIs</code><span class="sig-paren">(</span><em>expr1</em>, <em>expr2</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.assertIs" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertIs</tt><big>(</big><em>expr1</em>, <em>expr2</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.assertIs" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Just like self.assertTrue(a is b), but with a nicer default message.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.utils_test.TestUtils.assertIsInstance">
|
||||
<code class="descname">assertIsInstance</code><span class="sig-paren">(</span><em>obj</em>, <em>cls</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.assertIsInstance" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertIsInstance</tt><big>(</big><em>obj</em>, <em>cls</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.assertIsInstance" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Same as self.assertTrue(isinstance(obj, cls)), with a nicer
|
||||
default message.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.utils_test.TestUtils.assertIsNone">
|
||||
<code class="descname">assertIsNone</code><span class="sig-paren">(</span><em>obj</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.assertIsNone" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertIsNone</tt><big>(</big><em>obj</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.assertIsNone" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Same as self.assertTrue(obj is None), with a nicer default message.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.utils_test.TestUtils.assertIsNot">
|
||||
<code class="descname">assertIsNot</code><span class="sig-paren">(</span><em>expr1</em>, <em>expr2</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.assertIsNot" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertIsNot</tt><big>(</big><em>expr1</em>, <em>expr2</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.assertIsNot" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Just like self.assertTrue(a is not b), but with a nicer default message.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.utils_test.TestUtils.assertIsNotNone">
|
||||
<code class="descname">assertIsNotNone</code><span class="sig-paren">(</span><em>obj</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.assertIsNotNone" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertIsNotNone</tt><big>(</big><em>obj</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.assertIsNotNone" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Included for symmetry with assertIsNone.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.utils_test.TestUtils.assertItemsEqual">
|
||||
<code class="descname">assertItemsEqual</code><span class="sig-paren">(</span><em>expected_seq</em>, <em>actual_seq</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.assertItemsEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertItemsEqual</tt><big>(</big><em>expected_seq</em>, <em>actual_seq</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.assertItemsEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>An unordered sequence specific comparison. It asserts that
|
||||
actual_seq and expected_seq have the same element counts.
|
||||
Equivalent to:</p>
|
||||
@@ -369,19 +370,19 @@ Example:</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.utils_test.TestUtils.assertLess">
|
||||
<code class="descname">assertLess</code><span class="sig-paren">(</span><em>a</em>, <em>b</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.assertLess" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertLess</tt><big>(</big><em>a</em>, <em>b</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.assertLess" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Just like self.assertTrue(a < b), but with a nicer default message.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.utils_test.TestUtils.assertLessEqual">
|
||||
<code class="descname">assertLessEqual</code><span class="sig-paren">(</span><em>a</em>, <em>b</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.assertLessEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertLessEqual</tt><big>(</big><em>a</em>, <em>b</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.assertLessEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Just like self.assertTrue(a <= b), but with a nicer default message.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.utils_test.TestUtils.assertListEqual">
|
||||
<code class="descname">assertListEqual</code><span class="sig-paren">(</span><em>list1</em>, <em>list2</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.assertListEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertListEqual</tt><big>(</big><em>list1</em>, <em>list2</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.assertListEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>A list-specific equality assertion.</p>
|
||||
<dl class="docutils">
|
||||
<dt>Args:</dt>
|
||||
@@ -396,13 +397,13 @@ msg: Optional message to use on failure instead of a list of</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.utils_test.TestUtils.assertMultiLineEqual">
|
||||
<code class="descname">assertMultiLineEqual</code><span class="sig-paren">(</span><em>first</em>, <em>second</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.assertMultiLineEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertMultiLineEqual</tt><big>(</big><em>first</em>, <em>second</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.assertMultiLineEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Assert that two multi-line strings are equal.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.utils_test.TestUtils.assertNotAlmostEqual">
|
||||
<code class="descname">assertNotAlmostEqual</code><span class="sig-paren">(</span><em>first</em>, <em>second</em>, <em>places=None</em>, <em>msg=None</em>, <em>delta=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.assertNotAlmostEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertNotAlmostEqual</tt><big>(</big><em>first</em>, <em>second</em>, <em>places=None</em>, <em>msg=None</em>, <em>delta=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.assertNotAlmostEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Fail if the two objects are equal as determined by their
|
||||
difference rounded to the given number of decimal places
|
||||
(default 7) and comparing to zero, or by comparing that the
|
||||
@@ -414,7 +415,7 @@ as significant digits (measured from the most signficant digit).</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.utils_test.TestUtils.assertNotAlmostEquals">
|
||||
<code class="descname">assertNotAlmostEquals</code><span class="sig-paren">(</span><em>first</em>, <em>second</em>, <em>places=None</em>, <em>msg=None</em>, <em>delta=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.assertNotAlmostEquals" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertNotAlmostEquals</tt><big>(</big><em>first</em>, <em>second</em>, <em>places=None</em>, <em>msg=None</em>, <em>delta=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.assertNotAlmostEquals" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Fail if the two objects are equal as determined by their
|
||||
difference rounded to the given number of decimal places
|
||||
(default 7) and comparing to zero, or by comparing that the
|
||||
@@ -426,39 +427,39 @@ as significant digits (measured from the most signficant digit).</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.utils_test.TestUtils.assertNotEqual">
|
||||
<code class="descname">assertNotEqual</code><span class="sig-paren">(</span><em>first</em>, <em>second</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.assertNotEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertNotEqual</tt><big>(</big><em>first</em>, <em>second</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.assertNotEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Fail if the two objects are equal as determined by the ‘!=’
|
||||
operator.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.utils_test.TestUtils.assertNotEquals">
|
||||
<code class="descname">assertNotEquals</code><span class="sig-paren">(</span><em>first</em>, <em>second</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.assertNotEquals" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertNotEquals</tt><big>(</big><em>first</em>, <em>second</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.assertNotEquals" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Fail if the two objects are equal as determined by the ‘!=’
|
||||
operator.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.utils_test.TestUtils.assertNotIn">
|
||||
<code class="descname">assertNotIn</code><span class="sig-paren">(</span><em>member</em>, <em>container</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.assertNotIn" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertNotIn</tt><big>(</big><em>member</em>, <em>container</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.assertNotIn" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Just like self.assertTrue(a not in b), but with a nicer default message.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.utils_test.TestUtils.assertNotIsInstance">
|
||||
<code class="descname">assertNotIsInstance</code><span class="sig-paren">(</span><em>obj</em>, <em>cls</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.assertNotIsInstance" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertNotIsInstance</tt><big>(</big><em>obj</em>, <em>cls</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.assertNotIsInstance" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Included for symmetry with assertIsInstance.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.utils_test.TestUtils.assertNotRegexpMatches">
|
||||
<code class="descname">assertNotRegexpMatches</code><span class="sig-paren">(</span><em>text</em>, <em>unexpected_regexp</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.assertNotRegexpMatches" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertNotRegexpMatches</tt><big>(</big><em>text</em>, <em>unexpected_regexp</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.assertNotRegexpMatches" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Fail the test if the text matches the regular expression.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.utils_test.TestUtils.assertRaises">
|
||||
<code class="descname">assertRaises</code><span class="sig-paren">(</span><em>excClass</em>, <em>callableObj=None</em>, <em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.assertRaises" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertRaises</tt><big>(</big><em>excClass</em>, <em>callableObj=None</em>, <em>*args</em>, <em>**kwargs</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.assertRaises" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Fail unless an exception of class excClass is raised
|
||||
by callableObj when invoked with arguments args and keyword
|
||||
arguments kwargs. If a different type of exception is
|
||||
@@ -484,7 +485,7 @@ exception after the assertion:</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.utils_test.TestUtils.assertRaisesRegexp">
|
||||
<code class="descname">assertRaisesRegexp</code><span class="sig-paren">(</span><em>expected_exception</em>, <em>expected_regexp</em>, <em>callable_obj=None</em>, <em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.assertRaisesRegexp" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertRaisesRegexp</tt><big>(</big><em>expected_exception</em>, <em>expected_regexp</em>, <em>callable_obj=None</em>, <em>*args</em>, <em>**kwargs</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.assertRaisesRegexp" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Asserts that the message in a raised exception matches a regexp.</p>
|
||||
<dl class="docutils">
|
||||
<dt>Args:</dt>
|
||||
@@ -501,13 +502,13 @@ kwargs: Extra kwargs.</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.utils_test.TestUtils.assertRegexpMatches">
|
||||
<code class="descname">assertRegexpMatches</code><span class="sig-paren">(</span><em>text</em>, <em>expected_regexp</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.assertRegexpMatches" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertRegexpMatches</tt><big>(</big><em>text</em>, <em>expected_regexp</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.assertRegexpMatches" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Fail the test unless the text matches the regular expression.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.utils_test.TestUtils.assertSequenceEqual">
|
||||
<code class="descname">assertSequenceEqual</code><span class="sig-paren">(</span><em>seq1</em>, <em>seq2</em>, <em>msg=None</em>, <em>seq_type=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.assertSequenceEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertSequenceEqual</tt><big>(</big><em>seq1</em>, <em>seq2</em>, <em>msg=None</em>, <em>seq_type=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.assertSequenceEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>An equality assertion for ordered sequences (like lists and tuples).</p>
|
||||
<p>For the purposes of this function, a valid ordered sequence type is one
|
||||
which can be indexed, has a length, and has an equality operator.</p>
|
||||
@@ -528,7 +529,7 @@ seq_type: The expected datatype of the sequences, or None if no</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.utils_test.TestUtils.assertSetEqual">
|
||||
<code class="descname">assertSetEqual</code><span class="sig-paren">(</span><em>set1</em>, <em>set2</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.assertSetEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertSetEqual</tt><big>(</big><em>set1</em>, <em>set2</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.assertSetEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>A set-specific equality assertion.</p>
|
||||
<dl class="docutils">
|
||||
<dt>Args:</dt>
|
||||
@@ -546,13 +547,13 @@ difference method).</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.utils_test.TestUtils.assertTrue">
|
||||
<code class="descname">assertTrue</code><span class="sig-paren">(</span><em>expr</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.assertTrue" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertTrue</tt><big>(</big><em>expr</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.assertTrue" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Check that the expression is true.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.utils_test.TestUtils.assertTupleEqual">
|
||||
<code class="descname">assertTupleEqual</code><span class="sig-paren">(</span><em>tuple1</em>, <em>tuple2</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.assertTupleEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assertTupleEqual</tt><big>(</big><em>tuple1</em>, <em>tuple2</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.assertTupleEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>A tuple-specific equality assertion.</p>
|
||||
<dl class="docutils">
|
||||
<dt>Args:</dt>
|
||||
@@ -567,115 +568,115 @@ msg: Optional message to use on failure instead of a list of</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.utils_test.TestUtils.assert_">
|
||||
<code class="descname">assert_</code><span class="sig-paren">(</span><em>expr</em>, <em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.assert_" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">assert_</tt><big>(</big><em>expr</em>, <em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.assert_" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Check that the expression is true.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.utils_test.TestUtils.countTestCases">
|
||||
<code class="descname">countTestCases</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.countTestCases" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">countTestCases</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.countTestCases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.utils_test.TestUtils.debug">
|
||||
<code class="descname">debug</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.debug" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">debug</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.debug" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Run the test without collecting errors in a TestResult</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.utils_test.TestUtils.defaultTestResult">
|
||||
<code class="descname">defaultTestResult</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.defaultTestResult" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">defaultTestResult</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.defaultTestResult" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.utils_test.TestUtils.doCleanups">
|
||||
<code class="descname">doCleanups</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.doCleanups" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">doCleanups</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.doCleanups" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Execute all cleanup functions. Normally called for you after
|
||||
tearDown.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.utils_test.TestUtils.fail">
|
||||
<code class="descname">fail</code><span class="sig-paren">(</span><em>msg=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.fail" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">fail</tt><big>(</big><em>msg=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.fail" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Fail immediately, with the given message.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.utils_test.TestUtils.failIf">
|
||||
<code class="descname">failIf</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.failIf" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">failIf</tt><big>(</big><em>*args</em>, <em>**kwargs</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.failIf" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.utils_test.TestUtils.failIfAlmostEqual">
|
||||
<code class="descname">failIfAlmostEqual</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.failIfAlmostEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">failIfAlmostEqual</tt><big>(</big><em>*args</em>, <em>**kwargs</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.failIfAlmostEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.utils_test.TestUtils.failIfEqual">
|
||||
<code class="descname">failIfEqual</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.failIfEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">failIfEqual</tt><big>(</big><em>*args</em>, <em>**kwargs</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.failIfEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.utils_test.TestUtils.failUnless">
|
||||
<code class="descname">failUnless</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.failUnless" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">failUnless</tt><big>(</big><em>*args</em>, <em>**kwargs</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.failUnless" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.utils_test.TestUtils.failUnlessAlmostEqual">
|
||||
<code class="descname">failUnlessAlmostEqual</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.failUnlessAlmostEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">failUnlessAlmostEqual</tt><big>(</big><em>*args</em>, <em>**kwargs</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.failUnlessAlmostEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.utils_test.TestUtils.failUnlessEqual">
|
||||
<code class="descname">failUnlessEqual</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.failUnlessEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">failUnlessEqual</tt><big>(</big><em>*args</em>, <em>**kwargs</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.failUnlessEqual" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.utils_test.TestUtils.failUnlessRaises">
|
||||
<code class="descname">failUnlessRaises</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.failUnlessRaises" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">failUnlessRaises</tt><big>(</big><em>*args</em>, <em>**kwargs</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.failUnlessRaises" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="attribute">
|
||||
<dt id="virtualsmartcard.tests.utils_test.TestUtils.failureException">
|
||||
<code class="descname">failureException</code><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.failureException" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>alias of <code class="xref py py-class docutils literal"><span class="pre">AssertionError</span></code></p>
|
||||
<tt class="descname">failureException</tt><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.failureException" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>alias of <tt class="xref py py-class docutils literal"><span class="pre">AssertionError</span></tt></p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.utils_test.TestUtils.id">
|
||||
<code class="descname">id</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.id" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">id</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.id" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="attribute">
|
||||
<dt id="virtualsmartcard.tests.utils_test.TestUtils.longMessage">
|
||||
<code class="descname">longMessage</code><em class="property"> = False</em><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.longMessage" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">longMessage</tt><em class="property"> = False</em><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.longMessage" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="attribute">
|
||||
<dt id="virtualsmartcard.tests.utils_test.TestUtils.maxDiff">
|
||||
<code class="descname">maxDiff</code><em class="property"> = 640</em><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.maxDiff" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">maxDiff</tt><em class="property"> = 640</em><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.maxDiff" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.utils_test.TestUtils.run">
|
||||
<code class="descname">run</code><span class="sig-paren">(</span><em>result=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.run" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">run</tt><big>(</big><em>result=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.run" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.utils_test.TestUtils.setUp">
|
||||
<code class="descname">setUp</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.setUp" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">setUp</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.setUp" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Hook method for setting up the test fixture before exercising it.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dl class="classmethod">
|
||||
<dt id="virtualsmartcard.tests.utils_test.TestUtils.setUpClass">
|
||||
<code class="descname">setUpClass</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.setUpClass" title="Permalink to this definition">¶</a></dt>
|
||||
<em class="property">classmethod </em><tt class="descname">setUpClass</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.setUpClass" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Hook method for setting up class fixture before running tests in the class.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.utils_test.TestUtils.shortDescription">
|
||||
<code class="descname">shortDescription</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.shortDescription" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">shortDescription</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.shortDescription" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Returns a one-line description of the test, or None if no
|
||||
description has been provided.</p>
|
||||
<p>The default implementation of this method returns the first line of
|
||||
@@ -684,30 +685,30 @@ the specified test method’s docstring.</p>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.utils_test.TestUtils.skipTest">
|
||||
<code class="descname">skipTest</code><span class="sig-paren">(</span><em>reason</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.skipTest" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">skipTest</tt><big>(</big><em>reason</em><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.skipTest" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Skip this test.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.utils_test.TestUtils.tearDown">
|
||||
<code class="descname">tearDown</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.tearDown" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">tearDown</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.tearDown" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Hook method for deconstructing the test fixture after testing it.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dl class="classmethod">
|
||||
<dt id="virtualsmartcard.tests.utils_test.TestUtils.tearDownClass">
|
||||
<code class="descname">tearDownClass</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.tearDownClass" title="Permalink to this definition">¶</a></dt>
|
||||
<em class="property">classmethod </em><tt class="descname">tearDownClass</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.tearDownClass" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Hook method for deconstructing the class fixture after running all tests in the class.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.utils_test.TestUtils.test_CAPDU">
|
||||
<code class="descname">test_CAPDU</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.test_CAPDU" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">test_CAPDU</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.test_CAPDU" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.tests.utils_test.TestUtils.test_RAPDU">
|
||||
<code class="descname">test_RAPDU</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.test_RAPDU" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">test_RAPDU</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.tests.utils_test.TestUtils.test_RAPDU" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>utils Module — vsmartcard 2017-01-08 documentation</title>
|
||||
<title>utils 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" />
|
||||
@@ -15,7 +15,7 @@
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: '../../',
|
||||
VERSION: '2017-01-08',
|
||||
VERSION: '2017-01-16',
|
||||
COLLAPSE_INDEX: false,
|
||||
FILE_SUFFIX: '.html',
|
||||
HAS_SOURCE: true
|
||||
@@ -29,7 +29,7 @@
|
||||
<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-08 documentation" href="../../index.html" />
|
||||
<link rel="top" title="vsmartcard 2017-01-16 documentation" href="../../index.html" />
|
||||
<link rel="up" title="virtualsmartcard Package" href="virtualsmartcard.html" />
|
||||
<link rel="prev" title="VirtualSmartcard Module" href="virtualsmartcard.VirtualSmartcard.html" />
|
||||
<meta charset='utf-8'>
|
||||
@@ -38,7 +38,7 @@
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
|
||||
</head>
|
||||
<body role="document">
|
||||
<body>
|
||||
|
||||
<a href="https://github.com/frankmorgner/vsmartcard"
|
||||
class="visible-desktop hidden-xs"><img
|
||||
@@ -85,6 +85,7 @@
|
||||
<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>
|
||||
@@ -155,38 +156,38 @@
|
||||
</p>
|
||||
<span class="target" id="module-virtualsmartcard.utils"></span><dl class="class">
|
||||
<dt id="virtualsmartcard.utils.APDU">
|
||||
<em class="property">class </em><code class="descclassname">virtualsmartcard.utils.</code><code class="descname">APDU</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.utils.APDU" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p>
|
||||
<em class="property">class </em><tt class="descclassname">virtualsmartcard.utils.</tt><tt class="descname">APDU</tt><big>(</big><em>*args</em>, <em>**kwargs</em><big>)</big><a class="headerlink" href="#virtualsmartcard.utils.APDU" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <tt class="xref py py-class docutils literal"><span class="pre">object</span></tt></p>
|
||||
<p>Base class for an APDU</p>
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.utils.APDU._deldata">
|
||||
<code class="descname">_deldata</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.utils.APDU._deldata" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">_deldata</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.utils.APDU._deldata" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.utils.APDU._format_parts">
|
||||
<code class="descname">_format_parts</code><span class="sig-paren">(</span><em>fields</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.utils.APDU._format_parts" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">_format_parts</tt><big>(</big><em>fields</em><big>)</big><a class="headerlink" href="#virtualsmartcard.utils.APDU._format_parts" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>utility function to be used in __str__ and __repr__</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.utils.APDU._getdata">
|
||||
<code class="descname">_getdata</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.utils.APDU._getdata" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">_getdata</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.utils.APDU._getdata" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.utils.APDU._setbyte">
|
||||
<code class="descname">_setbyte</code><span class="sig-paren">(</span><em>name</em>, <em>value</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.utils.APDU._setbyte" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">_setbyte</tt><big>(</big><em>name</em>, <em>value</em><big>)</big><a class="headerlink" href="#virtualsmartcard.utils.APDU._setbyte" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.utils.APDU._setdata">
|
||||
<code class="descname">_setdata</code><span class="sig-paren">(</span><em>value</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.utils.APDU._setdata" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">_setdata</tt><big>(</big><em>value</em><big>)</big><a class="headerlink" href="#virtualsmartcard.utils.APDU._setdata" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="attribute">
|
||||
<dt id="virtualsmartcard.utils.APDU.data">
|
||||
<code class="descname">data</code><a class="headerlink" href="#virtualsmartcard.utils.APDU.data" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">data</tt><a class="headerlink" href="#virtualsmartcard.utils.APDU.data" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>The data contents of this APDU</p>
|
||||
</dd></dl>
|
||||
|
||||
@@ -194,139 +195,139 @@
|
||||
|
||||
<dl class="class">
|
||||
<dt id="virtualsmartcard.utils.C_APDU">
|
||||
<em class="property">class </em><code class="descclassname">virtualsmartcard.utils.</code><code class="descname">C_APDU</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.utils.C_APDU" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <a class="reference internal" href="#virtualsmartcard.utils.APDU" title="virtualsmartcard.utils.APDU"><code class="xref py py-class docutils literal"><span class="pre">virtualsmartcard.utils.APDU</span></code></a></p>
|
||||
<em class="property">class </em><tt class="descclassname">virtualsmartcard.utils.</tt><tt class="descname">C_APDU</tt><big>(</big><em>*args</em>, <em>**kwargs</em><big>)</big><a class="headerlink" href="#virtualsmartcard.utils.C_APDU" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <a class="reference internal" href="#virtualsmartcard.utils.APDU" title="virtualsmartcard.utils.APDU"><tt class="xref py py-class docutils literal"><span class="pre">virtualsmartcard.utils.APDU</span></tt></a></p>
|
||||
<p>Class for a command APDU</p>
|
||||
<dl class="attribute">
|
||||
<dt id="virtualsmartcard.utils.C_APDU.CLA">
|
||||
<code class="descname">CLA</code><a class="headerlink" href="#virtualsmartcard.utils.C_APDU.CLA" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">CLA</tt><a class="headerlink" href="#virtualsmartcard.utils.C_APDU.CLA" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>The CLA attribute of the APDU</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="attribute">
|
||||
<dt id="virtualsmartcard.utils.C_APDU.INS">
|
||||
<code class="descname">INS</code><a class="headerlink" href="#virtualsmartcard.utils.C_APDU.INS" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">INS</tt><a class="headerlink" href="#virtualsmartcard.utils.C_APDU.INS" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>The INS attribute of the APDU</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="attribute">
|
||||
<dt id="virtualsmartcard.utils.C_APDU.Lc">
|
||||
<code class="descname">Lc</code><a class="headerlink" href="#virtualsmartcard.utils.C_APDU.Lc" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">Lc</tt><a class="headerlink" href="#virtualsmartcard.utils.C_APDU.Lc" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>The Lc attribute of the APDU</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="attribute">
|
||||
<dt id="virtualsmartcard.utils.C_APDU.Le">
|
||||
<code class="descname">Le</code><a class="headerlink" href="#virtualsmartcard.utils.C_APDU.Le" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">Le</tt><a class="headerlink" href="#virtualsmartcard.utils.C_APDU.Le" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>The Le attribute of the APDU</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="attribute">
|
||||
<dt id="virtualsmartcard.utils.C_APDU.P1">
|
||||
<code class="descname">P1</code><a class="headerlink" href="#virtualsmartcard.utils.C_APDU.P1" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">P1</tt><a class="headerlink" href="#virtualsmartcard.utils.C_APDU.P1" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>The P1 attribute of the APDU</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="attribute">
|
||||
<dt id="virtualsmartcard.utils.C_APDU.P2">
|
||||
<code class="descname">P2</code><a class="headerlink" href="#virtualsmartcard.utils.C_APDU.P2" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">P2</tt><a class="headerlink" href="#virtualsmartcard.utils.C_APDU.P2" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>The P2 attribute of the APDU</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.utils.C_APDU._deldata">
|
||||
<code class="descname">_deldata</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.utils.C_APDU._deldata" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">_deldata</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.utils.C_APDU._deldata" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.utils.C_APDU._format_fields">
|
||||
<code class="descname">_format_fields</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.utils.C_APDU._format_fields" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">_format_fields</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.utils.C_APDU._format_fields" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.utils.C_APDU._format_parts">
|
||||
<code class="descname">_format_parts</code><span class="sig-paren">(</span><em>fields</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.utils.C_APDU._format_parts" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">_format_parts</tt><big>(</big><em>fields</em><big>)</big><a class="headerlink" href="#virtualsmartcard.utils.C_APDU._format_parts" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>utility function to be used in __str__ and __repr__</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.utils.C_APDU._getdata">
|
||||
<code class="descname">_getdata</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.utils.C_APDU._getdata" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">_getdata</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.utils.C_APDU._getdata" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.utils.C_APDU._setbyte">
|
||||
<code class="descname">_setbyte</code><span class="sig-paren">(</span><em>name</em>, <em>value</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.utils.C_APDU._setbyte" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">_setbyte</tt><big>(</big><em>name</em>, <em>value</em><big>)</big><a class="headerlink" href="#virtualsmartcard.utils.C_APDU._setbyte" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.utils.C_APDU._setdata">
|
||||
<code class="descname">_setdata</code><span class="sig-paren">(</span><em>value</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.utils.C_APDU._setdata" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">_setdata</tt><big>(</big><em>value</em><big>)</big><a class="headerlink" href="#virtualsmartcard.utils.C_APDU._setdata" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.utils.C_APDU.case">
|
||||
<code class="descname">case</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.utils.C_APDU.case" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">case</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.utils.C_APDU.case" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Return 1, 2, 3 or 4, depending on which ISO case we represent.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="attribute">
|
||||
<dt id="virtualsmartcard.utils.C_APDU.cla">
|
||||
<code class="descname">cla</code><a class="headerlink" href="#virtualsmartcard.utils.C_APDU.cla" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">cla</tt><a class="headerlink" href="#virtualsmartcard.utils.C_APDU.cla" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>The CLA attribute of the APDU</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="attribute">
|
||||
<dt id="virtualsmartcard.utils.C_APDU.data">
|
||||
<code class="descname">data</code><a class="headerlink" href="#virtualsmartcard.utils.C_APDU.data" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">data</tt><a class="headerlink" href="#virtualsmartcard.utils.C_APDU.data" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>The data contents of this APDU</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="attribute">
|
||||
<dt id="virtualsmartcard.utils.C_APDU.effective_Le">
|
||||
<code class="descname">effective_Le</code><a class="headerlink" href="#virtualsmartcard.utils.C_APDU.effective_Le" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">effective_Le</tt><a class="headerlink" href="#virtualsmartcard.utils.C_APDU.effective_Le" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="attribute">
|
||||
<dt id="virtualsmartcard.utils.C_APDU.ins">
|
||||
<code class="descname">ins</code><a class="headerlink" href="#virtualsmartcard.utils.C_APDU.ins" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">ins</tt><a class="headerlink" href="#virtualsmartcard.utils.C_APDU.ins" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>The INS attribute of the APDU</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="attribute">
|
||||
<dt id="virtualsmartcard.utils.C_APDU.lc">
|
||||
<code class="descname">lc</code><a class="headerlink" href="#virtualsmartcard.utils.C_APDU.lc" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">lc</tt><a class="headerlink" href="#virtualsmartcard.utils.C_APDU.lc" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>The Lc attribute of the APDU</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="attribute">
|
||||
<dt id="virtualsmartcard.utils.C_APDU.le">
|
||||
<code class="descname">le</code><a class="headerlink" href="#virtualsmartcard.utils.C_APDU.le" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">le</tt><a class="headerlink" href="#virtualsmartcard.utils.C_APDU.le" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>The Le attribute of the APDU</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="attribute">
|
||||
<dt id="virtualsmartcard.utils.C_APDU.p1">
|
||||
<code class="descname">p1</code><a class="headerlink" href="#virtualsmartcard.utils.C_APDU.p1" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">p1</tt><a class="headerlink" href="#virtualsmartcard.utils.C_APDU.p1" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>The P1 attribute of the APDU</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="attribute">
|
||||
<dt id="virtualsmartcard.utils.C_APDU.p2">
|
||||
<code class="descname">p2</code><a class="headerlink" href="#virtualsmartcard.utils.C_APDU.p2" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">p2</tt><a class="headerlink" href="#virtualsmartcard.utils.C_APDU.p2" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>The P2 attribute of the APDU</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.utils.C_APDU.parse">
|
||||
<code class="descname">parse</code><span class="sig-paren">(</span><em>apdu</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.utils.C_APDU.parse" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">parse</tt><big>(</big><em>apdu</em><big>)</big><a class="headerlink" href="#virtualsmartcard.utils.C_APDU.parse" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Parse a full command APDU and assign the values to our object,
|
||||
overwriting whatever there was.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.utils.C_APDU.render">
|
||||
<code class="descname">render</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.utils.C_APDU.render" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">render</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.utils.C_APDU.render" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Return this APDU as a binary string</p>
|
||||
</dd></dl>
|
||||
|
||||
@@ -334,102 +335,102 @@ overwriting whatever there was.</p>
|
||||
|
||||
<dl class="class">
|
||||
<dt id="virtualsmartcard.utils.R_APDU">
|
||||
<em class="property">class </em><code class="descclassname">virtualsmartcard.utils.</code><code class="descname">R_APDU</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.utils.R_APDU" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <a class="reference internal" href="#virtualsmartcard.utils.APDU" title="virtualsmartcard.utils.APDU"><code class="xref py py-class docutils literal"><span class="pre">virtualsmartcard.utils.APDU</span></code></a></p>
|
||||
<em class="property">class </em><tt class="descclassname">virtualsmartcard.utils.</tt><tt class="descname">R_APDU</tt><big>(</big><em>*args</em>, <em>**kwargs</em><big>)</big><a class="headerlink" href="#virtualsmartcard.utils.R_APDU" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <a class="reference internal" href="#virtualsmartcard.utils.APDU" title="virtualsmartcard.utils.APDU"><tt class="xref py py-class docutils literal"><span class="pre">virtualsmartcard.utils.APDU</span></tt></a></p>
|
||||
<p>Class for a response APDU</p>
|
||||
<dl class="attribute">
|
||||
<dt id="virtualsmartcard.utils.R_APDU.SW">
|
||||
<code class="descname">SW</code><a class="headerlink" href="#virtualsmartcard.utils.R_APDU.SW" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">SW</tt><a class="headerlink" href="#virtualsmartcard.utils.R_APDU.SW" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>The Status Word of this response APDU</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="attribute">
|
||||
<dt id="virtualsmartcard.utils.R_APDU.SW1">
|
||||
<code class="descname">SW1</code><a class="headerlink" href="#virtualsmartcard.utils.R_APDU.SW1" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">SW1</tt><a class="headerlink" href="#virtualsmartcard.utils.R_APDU.SW1" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>The SW1 attribute of the APDU</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="attribute">
|
||||
<dt id="virtualsmartcard.utils.R_APDU.SW2">
|
||||
<code class="descname">SW2</code><a class="headerlink" href="#virtualsmartcard.utils.R_APDU.SW2" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">SW2</tt><a class="headerlink" href="#virtualsmartcard.utils.R_APDU.SW2" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>The SW2 attribute of the APDU</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.utils.R_APDU._deldata">
|
||||
<code class="descname">_deldata</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.utils.R_APDU._deldata" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">_deldata</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.utils.R_APDU._deldata" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.utils.R_APDU._format_fields">
|
||||
<code class="descname">_format_fields</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.utils.R_APDU._format_fields" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">_format_fields</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.utils.R_APDU._format_fields" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.utils.R_APDU._format_parts">
|
||||
<code class="descname">_format_parts</code><span class="sig-paren">(</span><em>fields</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.utils.R_APDU._format_parts" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">_format_parts</tt><big>(</big><em>fields</em><big>)</big><a class="headerlink" href="#virtualsmartcard.utils.R_APDU._format_parts" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>utility function to be used in __str__ and __repr__</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.utils.R_APDU._getdata">
|
||||
<code class="descname">_getdata</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.utils.R_APDU._getdata" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">_getdata</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.utils.R_APDU._getdata" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.utils.R_APDU._getsw">
|
||||
<code class="descname">_getsw</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.utils.R_APDU._getsw" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">_getsw</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.utils.R_APDU._getsw" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.utils.R_APDU._setbyte">
|
||||
<code class="descname">_setbyte</code><span class="sig-paren">(</span><em>name</em>, <em>value</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.utils.R_APDU._setbyte" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">_setbyte</tt><big>(</big><em>name</em>, <em>value</em><big>)</big><a class="headerlink" href="#virtualsmartcard.utils.R_APDU._setbyte" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.utils.R_APDU._setdata">
|
||||
<code class="descname">_setdata</code><span class="sig-paren">(</span><em>value</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.utils.R_APDU._setdata" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">_setdata</tt><big>(</big><em>value</em><big>)</big><a class="headerlink" href="#virtualsmartcard.utils.R_APDU._setdata" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.utils.R_APDU._setsw">
|
||||
<code class="descname">_setsw</code><span class="sig-paren">(</span><em>value</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.utils.R_APDU._setsw" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">_setsw</tt><big>(</big><em>value</em><big>)</big><a class="headerlink" href="#virtualsmartcard.utils.R_APDU._setsw" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="attribute">
|
||||
<dt id="virtualsmartcard.utils.R_APDU.data">
|
||||
<code class="descname">data</code><a class="headerlink" href="#virtualsmartcard.utils.R_APDU.data" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">data</tt><a class="headerlink" href="#virtualsmartcard.utils.R_APDU.data" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>The data contents of this APDU</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.utils.R_APDU.parse">
|
||||
<code class="descname">parse</code><span class="sig-paren">(</span><em>apdu</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.utils.R_APDU.parse" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">parse</tt><big>(</big><em>apdu</em><big>)</big><a class="headerlink" href="#virtualsmartcard.utils.R_APDU.parse" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Parse a full response APDU and assign the values to our object,
|
||||
overwriting whatever there was.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="method">
|
||||
<dt id="virtualsmartcard.utils.R_APDU.render">
|
||||
<code class="descname">render</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.utils.R_APDU.render" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">render</tt><big>(</big><big>)</big><a class="headerlink" href="#virtualsmartcard.utils.R_APDU.render" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Return this APDU as a binary string</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="attribute">
|
||||
<dt id="virtualsmartcard.utils.R_APDU.sw">
|
||||
<code class="descname">sw</code><a class="headerlink" href="#virtualsmartcard.utils.R_APDU.sw" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">sw</tt><a class="headerlink" href="#virtualsmartcard.utils.R_APDU.sw" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>The Status Word of this response APDU</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="attribute">
|
||||
<dt id="virtualsmartcard.utils.R_APDU.sw1">
|
||||
<code class="descname">sw1</code><a class="headerlink" href="#virtualsmartcard.utils.R_APDU.sw1" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">sw1</tt><a class="headerlink" href="#virtualsmartcard.utils.R_APDU.sw1" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>The SW1 attribute of the APDU</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="attribute">
|
||||
<dt id="virtualsmartcard.utils.R_APDU.sw2">
|
||||
<code class="descname">sw2</code><a class="headerlink" href="#virtualsmartcard.utils.R_APDU.sw2" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descname">sw2</tt><a class="headerlink" href="#virtualsmartcard.utils.R_APDU.sw2" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>The SW2 attribute of the APDU</p>
|
||||
</dd></dl>
|
||||
|
||||
@@ -437,18 +438,18 @@ overwriting whatever there was.</p>
|
||||
|
||||
<dl class="function">
|
||||
<dt id="virtualsmartcard.utils._make_byte_property">
|
||||
<code class="descclassname">virtualsmartcard.utils.</code><code class="descname">_make_byte_property</code><span class="sig-paren">(</span><em>prop</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.utils._make_byte_property" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descclassname">virtualsmartcard.utils.</tt><tt class="descname">_make_byte_property</tt><big>(</big><em>prop</em><big>)</big><a class="headerlink" href="#virtualsmartcard.utils._make_byte_property" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Make a byte property(). This is meta code.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="function">
|
||||
<dt id="virtualsmartcard.utils._unformat_hexdump">
|
||||
<code class="descclassname">virtualsmartcard.utils.</code><code class="descname">_unformat_hexdump</code><span class="sig-paren">(</span><em>dump</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.utils._unformat_hexdump" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descclassname">virtualsmartcard.utils.</tt><tt class="descname">_unformat_hexdump</tt><big>(</big><em>dump</em><big>)</big><a class="headerlink" href="#virtualsmartcard.utils._unformat_hexdump" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="function">
|
||||
<dt id="virtualsmartcard.utils.hexdump">
|
||||
<code class="descclassname">virtualsmartcard.utils.</code><code class="descname">hexdump</code><span class="sig-paren">(</span><em>data</em>, <em>indent=0</em>, <em>short=False</em>, <em>linelen=16</em>, <em>offset=0</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.utils.hexdump" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descclassname">virtualsmartcard.utils.</tt><tt class="descname">hexdump</tt><big>(</big><em>data</em>, <em>indent=0</em>, <em>short=False</em>, <em>linelen=16</em>, <em>offset=0</em><big>)</big><a class="headerlink" href="#virtualsmartcard.utils.hexdump" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Generates a nice hexdump of data and returns it. Consecutive lines will
|
||||
be indented with indent spaces. When short is true, will instead generate
|
||||
hexdump without adresses and on one line.</p>
|
||||
@@ -459,18 +460,18 @@ hexdump(‘A’, short=True) -> ‘00 41 (.A)’</p>
|
||||
|
||||
<dl class="function">
|
||||
<dt id="virtualsmartcard.utils.inttostring">
|
||||
<code class="descclassname">virtualsmartcard.utils.</code><code class="descname">inttostring</code><span class="sig-paren">(</span><em>i</em>, <em>length=None</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.utils.inttostring" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descclassname">virtualsmartcard.utils.</tt><tt class="descname">inttostring</tt><big>(</big><em>i</em>, <em>length=None</em><big>)</big><a class="headerlink" href="#virtualsmartcard.utils.inttostring" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="function">
|
||||
<dt id="virtualsmartcard.utils.parse_status">
|
||||
<code class="descclassname">virtualsmartcard.utils.</code><code class="descname">parse_status</code><span class="sig-paren">(</span><em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.utils.parse_status" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descclassname">virtualsmartcard.utils.</tt><tt class="descname">parse_status</tt><big>(</big><em>data</em><big>)</big><a class="headerlink" href="#virtualsmartcard.utils.parse_status" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Parses the Response APDU of a GetStatus command.</p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="function">
|
||||
<dt id="virtualsmartcard.utils.stringtoint">
|
||||
<code class="descclassname">virtualsmartcard.utils.</code><code class="descname">stringtoint</code><span class="sig-paren">(</span><em>str</em><span class="sig-paren">)</span><a class="headerlink" href="#virtualsmartcard.utils.stringtoint" title="Permalink to this definition">¶</a></dt>
|
||||
<tt class="descclassname">virtualsmartcard.utils.</tt><tt class="descname">stringtoint</tt><big>(</big><em>str</em><big>)</big><a class="headerlink" href="#virtualsmartcard.utils.stringtoint" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -37,7 +37,7 @@ relayed to one of the following:
|
||||
:stringsubst:
|
||||
:libs: arrows, calc, fit, patterns, plotmarks, shapes.geometric, shapes.misc, shapes.symbols, shapes.arrows, shapes.callouts, shapes.multipart, shapes.gates.logic.US, shapes.gates.logic.IEC, er, automata, backgrounds, chains, topaths, trees, petri, mindmap, matrix, calendar, folding, fadings, through, positioning, scopes, decorations.fractals, decorations.shapes, decorations.text, decorations.pathmorphing, decorations.pathreplacing, decorations.footprints, decorations.markings, shadows
|
||||
|
||||
\input{%(wd)s/bilder/tikzstyles.tex}
|
||||
\input{$wd/bilder/tikzstyles.tex}
|
||||
\node (pcsc-relay) {\texttt{pcsc-relay}};
|
||||
|
||||
\node [kleiner, right=2cm of pcsc-relay, yshift=.9cm]
|
||||
@@ -87,7 +87,7 @@ to completely emulate an ISO/IEC 14443 smart card.
|
||||
:stringsubst:
|
||||
:libs: arrows, calc, fit, patterns, plotmarks, shapes.geometric, shapes.misc, shapes.symbols, shapes.arrows, shapes.callouts, shapes.multipart, shapes.gates.logic.US, shapes.gates.logic.IEC, er, automata, backgrounds, chains, topaths, trees, petri, mindmap, matrix, calendar, folding, fadings, through, positioning, scopes, decorations.fractals, decorations.shapes, decorations.text, decorations.pathmorphing, decorations.pathreplacing, decorations.footprints, decorations.markings, shadows
|
||||
|
||||
\input{%(wd)s/bilder/tikzstyles.tex}
|
||||
\input{$wd/bilder/tikzstyles.tex}
|
||||
\tikzstyle{bla}=[shape=rectangle split, rectangle split parts=2,
|
||||
every text node part/.style={align=center, klein}, text width=7cm,
|
||||
every second node part/.style={kleiner}, inner sep=0pt]
|
||||
@@ -96,7 +96,7 @@ to completely emulate an ISO/IEC 14443 smart card.
|
||||
|
||||
\node (touchatag)
|
||||
{\includegraphics[keepaspectratio, height=2cm,
|
||||
width=2cm]{%(wd)s/bilder/touchatag.png}};
|
||||
width=2cm]{$wd/bilder/touchatag.png}};
|
||||
\node (touchatagbeschreibung) [below=0cm of touchatag, kleiner]
|
||||
{touchatag};
|
||||
|
||||
@@ -143,14 +143,14 @@ to completely emulate an ISO/IEC 14443 smart card.
|
||||
(funktionenpace), box, inner sep=.5cm] {};
|
||||
\node (boxbild) at (box.north west)
|
||||
{\includegraphics[keepaspectratio, height=1.5cm,
|
||||
width=1.5cm]{%(wd)s/bilder/moko/moko_reader.png}};
|
||||
width=1.5cm]{$wd/bilder/moko/moko_reader.png}};
|
||||
\node [right=0cm of boxbild.east, yshift=.3cm]
|
||||
{Openmoko Neo FreeRunner};
|
||||
\end{pgfonlayer}
|
||||
|
||||
\node (a) [left=1.5of box]
|
||||
{\includegraphics[keepaspectratio, height=4cm,
|
||||
width=4cm]{%(wd)s/bilder/ivak_kiosk-terminal.pdf}};
|
||||
width=4cm]{$wd/bilder/ivak_kiosk-terminal.pdf}};
|
||||
\node (e) [below=0cm of a, text width=2.5cm, align=center]
|
||||
{(Public) Terminal};
|
||||
|
||||
|
||||
@@ -25,20 +25,20 @@ contact-less card is detected.
|
||||
:stringsubst:
|
||||
:libs: arrows, calc, fit, patterns, plotmarks, shapes.geometric, shapes.misc, shapes.symbols, shapes.arrows, shapes.callouts, shapes.multipart, shapes.gates.logic.US, shapes.gates.logic.IEC, er, automata, backgrounds, chains, topaths, trees, petri, mindmap, matrix, calendar, folding, fadings, through, positioning, scopes, decorations.fractals, decorations.shapes, decorations.text, decorations.pathmorphing, decorations.pathreplacing, decorations.footprints, decorations.markings, shadows
|
||||
|
||||
\input{%(wd)s/bilder/tikzstyles.tex}
|
||||
\input{$wd/bilder/tikzstyles.tex}
|
||||
\node (pcsc) [klein, aktivbox, inner xsep=.75cm, align=center] {PC/SC\\Framework};
|
||||
\node (sca) [aktivbox, klein, left=.75cm of pcsc, align=center] {Smart Card\\Application};
|
||||
\node (vpcd) [box, at=(pcsc.east), kleiner] {\texttt{vpcd}};
|
||||
\node (phone) [right=2cm of vpcd] {\includegraphics[width=3cm]{%(wd)s/bilder/smartphone.pdf}};
|
||||
\node (app) [at=(phone.center)] {\includegraphics[width=2.8cm, height=4.9cm]{%(wd)s/bilder/remote-reader.png}};
|
||||
\node (card) [right=0cm of phone, rotate=45] {\includegraphics[width=2cm]{%(wd)s/bilder/smartcard.pdf}};
|
||||
\node (phone) [right=2cm of vpcd] {\includegraphics[width=3cm]{$wd/bilder/smartphone.pdf}};
|
||||
\node (app) [at=(phone.center)] {\includegraphics[width=2.8cm, height=4.9cm]{$wd/bilder/remote-reader.png}};
|
||||
\node (card) [right=0cm of phone, rotate=45] {\includegraphics[width=2cm]{$wd/bilder/smartcard.pdf}};
|
||||
|
||||
\begin{pgfonlayer}{background}
|
||||
\node (box) [box, fit=(pcsc) (sca) (vpcd), inner ysep=1.5em] {};
|
||||
\node [at=(box.north west)] {\includegraphics[width=1cm]{%(wd)s/bilder/computer-tango.pdf}};
|
||||
\node [at=(box.north west)] {\includegraphics[width=1cm]{$wd/bilder/computer-tango.pdf}};
|
||||
\path[linie]
|
||||
(sca) edge (pcsc)
|
||||
(vpcd) edge node {\includegraphics[width=1.5cm]{%(wd)s/bilder/simplecloud.pdf}} (app)
|
||||
(vpcd) edge node {\includegraphics[width=1.5cm]{$wd/bilder/simplecloud.pdf}} (app)
|
||||
;
|
||||
\draw [rfid] (phone.center) -- (card.center) ;
|
||||
\end{pgfonlayer}
|
||||
@@ -59,23 +59,23 @@ other computer, the :ref:`vicc` in relay mode can be used:
|
||||
:stringsubst:
|
||||
:libs: arrows, calc, fit, patterns, plotmarks, shapes.geometric, shapes.misc, shapes.symbols, shapes.arrows, shapes.callouts, shapes.multipart, shapes.gates.logic.US, shapes.gates.logic.IEC, er, automata, backgrounds, chains, topaths, trees, petri, mindmap, matrix, calendar, folding, fadings, through, positioning, scopes, decorations.fractals, decorations.shapes, decorations.text, decorations.pathmorphing, decorations.pathreplacing, decorations.footprints, decorations.markings, shadows
|
||||
|
||||
\input{%(wd)s/bilder/tikzstyles.tex}
|
||||
\input{$wd/bilder/tikzstyles.tex}
|
||||
\node (pcsc) [klein, aktivbox, inner xsep=.75cm, align=center] {PC/SC\\Framework};
|
||||
\node (sca) [aktivbox, klein, left=.75cm of pcsc, align=center] {Smart Card\\Application};
|
||||
\node (vpcd) [box, at=(pcsc.east), kleiner] {\texttt{vpcd}};
|
||||
\node (pcsc2) [klein, aktivbox, inner xsep=.75cm, align=center, below=2.5cm of vpcd] {PC/SC\\Framework};
|
||||
\node (vicc) [aktivbox, left=1cm of pcsc2, kleiner] {\texttt{vicc -t relay}};
|
||||
\node (reader) [right=1cm of pcsc2] {\includegraphics[width=2cm]{%(wd)s/bilder/my_cardreader.pdf}};
|
||||
\node (card) [at=(reader.east), rotate=45] {\includegraphics[width=2cm]{%(wd)s/bilder/smartcard.pdf}};
|
||||
\node (reader) [right=1cm of pcsc2] {\includegraphics[width=2cm]{$wd/bilder/my_cardreader.pdf}};
|
||||
\node (card) [at=(reader.east), rotate=45] {\includegraphics[width=2cm]{$wd/bilder/smartcard.pdf}};
|
||||
|
||||
\begin{pgfonlayer}{background}
|
||||
\node (box) [box, fit=(pcsc) (sca) (vpcd), inner ysep=1.5em] {};
|
||||
\node (box2) [box, fit=(vicc) (pcsc2), inner ysep=1.5em] {};
|
||||
\node [at=(box.north west)] {\includegraphics[width=1cm]{%(wd)s/bilder/computer-tango.pdf}};
|
||||
\node [at=(box2.north west)] {\includegraphics[width=1cm]{%(wd)s/bilder/computer-tango.pdf}};
|
||||
\node [at=(box.north west)] {\includegraphics[width=1cm]{$wd/bilder/computer-tango.pdf}};
|
||||
\node [at=(box2.north west)] {\includegraphics[width=1cm]{$wd/bilder/computer-tango.pdf}};
|
||||
\path[linie]
|
||||
(sca) edge (pcsc)
|
||||
(vpcd) edge [out=south, in=north] node {\includegraphics[width=1.5cm]{%(wd)s/bilder/simplecloud.pdf}} (vicc)
|
||||
(vpcd) edge [out=south, in=north] node {\includegraphics[width=1.5cm]{$wd/bilder/simplecloud.pdf}} (vicc)
|
||||
(vicc) edge (pcsc2)
|
||||
(pcsc2) edge [usb] (reader.center)
|
||||
;
|
||||
|
||||
@@ -49,7 +49,7 @@ The file :file:`utils.py` was taken from Henryk Plötz's cyberflex-shell_.
|
||||
:stringsubst:
|
||||
:libs: arrows, calc, fit, patterns, plotmarks, shapes.geometric, shapes.misc, shapes.symbols, shapes.arrows, shapes.callouts, shapes.multipart, shapes.gates.logic.US, shapes.gates.logic.IEC, er, automata, backgrounds, chains, topaths, trees, petri, mindmap, matrix, calendar, folding, fadings, through, positioning, scopes, decorations.fractals, decorations.shapes, decorations.text, decorations.pathmorphing, decorations.pathreplacing, decorations.footprints, decorations.markings, shadows
|
||||
|
||||
\input{%(wd)s/bilder/tikzstyles.tex}
|
||||
\input{$wd/bilder/tikzstyles.tex}
|
||||
\node (pcsclite)
|
||||
[klein, aktivbox, inner xsep=.7cm, text width=3cm]
|
||||
{PC/SC Framework\\\
|
||||
@@ -62,7 +62,7 @@ The file :file:`utils.py` was taken from Henryk Plötz's cyberflex-shell_.
|
||||
\begin{pgfonlayer}{background}
|
||||
\path[linie]
|
||||
(sca) edge (pcsclite)
|
||||
(vpcd) edge node {\includegraphics[width=1.2cm]{%(wd)s/bilder/simplecloud.pdf}} (vicc)
|
||||
(vpcd) edge node {\includegraphics[width=1.2cm]{$wd/bilder/simplecloud.pdf}} (vicc)
|
||||
;
|
||||
\end{pgfonlayer}
|
||||
|
||||
@@ -76,7 +76,7 @@ The file :file:`utils.py` was taken from Henryk Plötz's cyberflex-shell_.
|
||||
:stringsubst:
|
||||
:libs: arrows, calc, fit, patterns, plotmarks, shapes.geometric, shapes.misc, shapes.symbols, shapes.arrows, shapes.callouts, shapes.multipart, shapes.gates.logic.US, shapes.gates.logic.IEC, er, automata, backgrounds, chains, topaths, trees, petri, mindmap, matrix, calendar, folding, fadings, through, positioning, scopes, decorations.fractals, decorations.shapes, decorations.text, decorations.pathmorphing, decorations.pathreplacing, decorations.footprints, decorations.markings, shadows
|
||||
|
||||
\input{%(wd)s/bilder/tikzstyles.tex}
|
||||
\input{$wd/bilder/tikzstyles.tex}
|
||||
\node (pcsclite)
|
||||
[klein, box, text width=4cm]
|
||||
{@PACKAGE_NAME@'s\\
|
||||
@@ -88,7 +88,7 @@ The file :file:`utils.py` was taken from Henryk Plötz's cyberflex-shell_.
|
||||
\begin{pgfonlayer}{background}
|
||||
\path[linie]
|
||||
(sca) edge (pcsclite)
|
||||
(pcsclite) edge node {\includegraphics[width=1.5cm]{%(wd)s/bilder/simplecloud.pdf}} (vicc)
|
||||
(pcsclite) edge node {\includegraphics[width=1.5cm]{$wd/bilder/simplecloud.pdf}} (vicc)
|
||||
;
|
||||
\end{pgfonlayer}
|
||||
|
||||
|
||||